/* Panda Tutor page styles for Home, Tools & Activities, About and Contact.
   Generated from the single-file design template. Every class is pv- prefixed
   and bare element rules are scoped under :where(.pv2) (zero specificity, as in the template), so nothing leaks into the rest
   of the site. Chrome (header/footer) and tokens live in panda_chrome.css. */
.pv2 { background: #fff; color: var(--pv-ink); font: 16px/1.5 var(--pv-font); -webkit-font-smoothing: antialiased; }
:where(.pv2) *, :where(.pv2) *::before, :where(.pv2) *::after { box-sizing: border-box; }
/* style.css zeroes every margin; the template relies on the browser default for paragraphs. */
:where(.pv2) p { margin: 1em 0; }
html:has(.pv2) { scroll-behavior: smooth; scroll-padding-top: 100px; }
@media (prefers-reduced-motion: reduce) { html:has(.pv2) { scroll-behavior: auto; } }
:where(.pv2) *{box-sizing:border-box}
:where(.pv2) a{color:inherit;text-decoration:none}
:where(.pv2) button,:where(.pv2) input,:where(.pv2) select{font:inherit}
:where(.pv2) button,:where(.pv2) a,:where(.pv2) input{ -webkit-tap-highlight-color:transparent}
:where(.pv2) button{cursor:pointer}
:where(.pv2) button:focus-visible,:where(.pv2) a:focus-visible,:where(.pv2) input:focus-visible{outline:3px solid #7699ff;outline-offset:5px}
.pv-hero{max-width:1376px;margin:auto;display:grid;grid-template-columns:1.08fr 1fr;padding:60px 48px 38px;min-height:620px;align-items:center}
.pv-eyebrow{font-size:11px;letter-spacing:1.7px;font-weight:700;color:#5b7094}
.pv-spark{color:var(--pv-blue);font-size:21px;margin-right:10px;vertical-align:middle}
:where(.pv2) h1,:where(.pv2) h2,:where(.pv2) h3{font-family:Manrope,sans-serif;font-weight:600;letter-spacing:-2px;line-height:1.1;margin:24px 0}
:where(.pv2) h1{font-size:clamp(48px,5.4vw,78px);letter-spacing:-4px}
:where(.pv2) h1 em{color:var(--pv-blue);font-style:normal}
:where(.pv2) p{color:var(--pv-muted)}
.pv-hero-copy>p{font-size:18px;line-height:1.65;margin:24px 0 30px}
.pv-hero-actions{display:flex;align-items:center;gap:24px}
.pv-button{display:inline-flex;align-items:center;justify-content:center;min-height:49px;padding:14px 23px;border-radius:13px;font-size:14px;font-weight:600;border:0;transition:transform .2s,box-shadow .2s}
.pv-button:hover{transform:translateY(-2px)}
.pv-primary{background:var(--pv-blue);color:white;box-shadow:0 7px 18px #2659ec20}
.pv-text-button{font-size:14px;font-weight:550}
.pv-text-button span{margin-left:7px;color:var(--pv-blue)}
.pv-hero-proof{display:flex;gap:12px;font-size:12px;line-height:1.6;color:#6d7d94;margin-top:39px}
.pv-hero-proof strong{font-weight:500}
.pv-mini-symbol{font-size:29px;color:#7991ba}
.pv-hero-art{height:510px;position:relative;border-radius:50%;background:radial-gradient(ellipse,#dbeaff 0%,#f0f6ff 43%,#fff 70%);display:flex;align-items:center;justify-content:center}
.pv-hero-panda{height:445px;max-width:90%;object-fit:contain;position:relative;z-index:2;filter:drop-shadow(0 26px 25px #142d6c18)}
.pv-orbit-ring{position:absolute;width:450px;height:200px;border:1px solid #d6e4f8;border-radius:50%;transform:rotate(-35deg)}
.pv-r2{transform:rotate(35deg);height:310px;width:440px}
.pv-r3{transform:rotate(85deg);width:470px;height:340px}
.pv-art-note{position:absolute;right:20px;top:0;font-size:9px;letter-spacing:2px;color:#7b91af}
.pv-float-note{position:absolute;background:#ffffffba;backdrop-filter:blur(18px);border:1px solid white;box-shadow:0 15px 40px #20365b0d;z-index:3;border-radius:19px}
.pv-formula{top:60px;left:-15px;padding:17px 22px;transform:rotate(-7deg)}
.pv-formula span{font-size:8px;letter-spacing:1px;color:#7785a0;display:block}
.pv-formula b{display:block;font-size:31px;letter-spacing:-1px;font-family:Manrope;font-weight:500;margin:4px 0}
.pv-formula i{font-size:11px;color:#7c8ba4;font-style:normal}
.pv-discovery{bottom:33px;right:-10px;display:flex;gap:12px;align-items:center;padding:16px 21px;font-size:12px}
.pv-discovery strong{font-weight:400;color:#77839a}
.pv-blue-star{font-size:34px;color:var(--pv-blue)}
.pv-orbit-dot{width:13px;height:13px;border-radius:50%;background:#2f68f8;position:absolute;top:70px;right:48px;box-shadow:0 0 0 7px #e7effe}
.pv-subject-ribbon{max-width:1280px;margin:8px auto 0;display:flex;justify-content:space-between;gap:20px;padding:28px 0;border-block:1px solid var(--pv-line);font-size:14px;align-items:center}
.pv-subject-ribbon>span{font-size:9px;font-weight:700;letter-spacing:1.4px;color:#7c8aa0}
.pv-subject-ribbon a:hover{color:var(--pv-blue)}
.pv-section{max-width:1376px;margin:auto;padding:84px 48px}
.pv-section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:30px}
:where(.pv2) h2{font-size:43px;margin:15px 0 0}
:where(.pv2) h2 span{color:#8997ac}
.pv-section-heading>p{font-size:14px;line-height:1.7;max-width:375px;margin:0 0 4px}
.pv-lab{border:1px solid var(--pv-line);border-radius:26px;overflow:hidden;background:#f7faff}
.pv-lab-top{height:70px;border-bottom:1px solid var(--pv-line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;background:#fff}
.pv-lab-tabs{display:flex;gap:7px}
.pv-lab-tabs button{border:0;background:transparent;padding:10px 17px;border-radius:9px;font-size:13px;color:#78869d}
.pv-lab-tabs button.pv-active{color:var(--pv-blue);background:#edf3ff;font-weight:600}
.pv-live-label{font-size:9px;letter-spacing:1.6px;color:#7a8ba5}
.pv-lab-body{display:grid;grid-template-columns:1fr 315px;min-height:420px}
.pv-lab-visual{position:relative;overflow:hidden;min-height:420px;background:radial-gradient(ellipse at 45% 60%,#dceaff70,transparent 60%),#f8fbff}
.pv-lab-visual canvas{width:100%;height:100%;position:absolute;inset:0}
.pv-canvas-label{position:absolute;left:30px;top:28px;pointer-events:none}
.pv-canvas-label span{font-size:9px;letter-spacing:1.5px;display:block;color:#7a90b1}
.pv-canvas-label b{font-weight:400;font-size:17px;display:block;margin-top:7px;color:#4e6a94}
.pv-canvas-bottom{position:absolute;bottom:24px;left:30px;right:26px;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#7488a6}
.pv-canvas-bottom button{border:1px solid #dce6f5;border-radius:50%;width:35px;height:35px;color:var(--pv-blue);background:white}
.pv-lab-controls{background:white;border-left:1px solid var(--pv-line);padding:30px}
.pv-number-label{font-size:10px;letter-spacing:1.3px;color:#6e83a6}
.pv-lab-controls h3{font-size:28px;letter-spacing:-1px;margin:19px 0 14px}
.pv-lab-controls>p{font-size:13px;line-height:1.7;margin-bottom:27px}
.pv-lab-controls label{display:flex;justify-content:space-between;font-size:12px}
.pv-lab-controls output{color:var(--pv-blue);font-weight:600}
.pv-lab-controls input{width:100%;accent-color:var(--pv-blue);margin:17px 0 0}
.pv-range-ends{display:flex;justify-content:space-between;font-size:10px;color:#8b9ab0}
.pv-lab-insight{display:flex;gap:9px;margin:20px 0}
.pv-lab-insight>span{color:var(--pv-blue);font-size:23px}
.pv-lab-insight p{font-size:11px;margin:3px 0;line-height:1.65}
.pv-light{background:#edf3ff;color:var(--pv-blue);width:100%;font-size:12px;min-height:42px;padding:11px}
@media(min-width:1500px){.pv-hero{padding-top:80px;padding-bottom:60px}}
@media(max-width:1100px){.pv-hero{padding:40px 28px;grid-template-columns:1.1fr 1fr}:where(.pv2) h1{font-size:58px}.pv-hero-actions{flex-wrap:wrap;gap:15px}.pv-hero-art{height:450px}.pv-hero-panda{height:380px}.pv-orbit-ring{max-width:100%}.pv-formula{left:0;top:40px;padding:12px}.pv-formula b{font-size:23px}.pv-discovery{right:0;font-size:10px}.pv-subject-ribbon{margin-inline:28px;flex-wrap:wrap}.pv-section{padding:65px 28px}.pv-lab-body{grid-template-columns:1fr 280px}}
@media(max-width:760px){.pv-hero{padding:35px 24px 28px;grid-template-columns:1fr;text-align:center;gap:20px}.pv-eyebrow{font-size:9px;letter-spacing:1.2px}:where(.pv2) h1{font-size:53px;letter-spacing:-2.8px}.pv-hero-copy>p{font-size:16px}.pv-hero-actions{justify-content:center}.pv-hero-proof{justify-content:center;margin-top:23px}.pv-hero-art{height:400px;max-width:460px;width:100%;margin:auto}.pv-hero-panda{height:365px}.pv-art-note{display:none}.pv-formula{left:0;top:36px}.pv-discovery{bottom:5px;right:0}.pv-orbit-ring{height:200px}.pv-r3{width:380px}.pv-subject-ribbon{justify-content:center;gap:18px;padding:23px 0;font-size:12px}.pv-subject-ribbon>span{width:100%;text-align:center}.pv-section{padding:56px 22px}.pv-section-heading{align-items:start;flex-direction:column;gap:18px}:where(.pv2) h2{font-size:35px;letter-spacing:-1.5px}.pv-lab-top{padding:0 10px;height:60px}.pv-lab-tabs{gap:0}.pv-lab-tabs button{padding:9px 12px;font-size:12px}.pv-live-label{display:none}.pv-lab-body{grid-template-columns:1fr}.pv-lab-visual{min-height:330px}.pv-lab-controls{border-left:0;border-top:1px solid var(--pv-line);padding:24px}.pv-lab-controls h3 br{display:none}.pv-lab-controls>p{font-size:14px}.pv-lab-controls label{font-size:14px}.pv-lab-insight p{font-size:13px}.pv-desktop{display:none}}
@media(prefers-reduced-motion:reduce){:where(.pv2) *,:where(.pv2) *:before,:where(.pv2) *:after{animation:none!important;transition:none!important}}
.pv-discovery-section{padding-top:25px}
.pv-section-link{font-size:14px;color:var(--pv-blue);font-weight:600;white-space:nowrap}
.pv-tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pv-tool-card{border:1px solid var(--pv-line);border-radius:21px;overflow:hidden;background:white;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}
.pv-tool-card:hover{transform:translateY(-5px);box-shadow:0 17px 40px #23437a0c}
.pv-tool-visual{height:220px;position:relative;background:#edf4fe;overflow:hidden}
.pv-tool-visual canvas{width:100%;height:100%}
.pv-tool-kind{position:absolute;left:18px;top:17px;background:#ffffffcc;border:1px solid white;backdrop-filter:blur(10px);border-radius:30px;font-size:10px;padding:5px 11px;color:#496185}
.pv-tool-body{padding:22px}
.pv-tool-body h3{font-size:21px;letter-spacing:-.6px;margin:8px 0 10px}
.pv-tool-body>p{font-size:13px;line-height:1.65;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pv-tool-meta{display:flex;justify-content:space-between;align-items:center;margin-top:23px;font-size:11px;color:#8693a9}
.pv-tool-meta span:last-child{color:var(--pv-blue)}
.pv-teacher-wrap{background:#f3f7fe}
.pv-teacher-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}
.pv-teacher-copy h2{margin:20px 0 24px;line-height:1.15}
.pv-teacher-copy>p{font-size:16px;line-height:1.8}
.pv-teacher-copy .pv-button{margin-top:20px}
.pv-teacher-board{background:#ffffffb8;border:1px solid #fff;box-shadow:0 20px 80px #4166ad10;border-radius:25px;padding:30px;transform:rotate(-2deg)}
.pv-board-heading{display:flex;justify-content:space-between;border-bottom:1px solid var(--pv-line);padding-bottom:20px;font-size:12px}
.pv-board-heading span{color:#8a9ab0}
.pv-board-row{display:flex;gap:18px;margin:25px 0;align-items:center}
.pv-board-row>b{font-size:12px;width:38px;height:38px;display:grid;place-items:center;color:var(--pv-blue);background:#edf3ff;border-radius:12px}
.pv-board-row h4{font-size:14px;margin:0 0 3px;font-weight:600}
.pv-board-row p{font-size:12px;margin:0}
.pv-board-note{background:#eff5ff;padding:17px;border-radius:12px;font-size:12px;color:#6481ab}
.pv-panda-banner{margin:25px 48px 80px;max-width:1280px;background:linear-gradient(110deg,#eaf3ff,#f0f6ff 50%,#dbeaff);border:1px solid #e2edff;border-radius:27px;display:grid;grid-template-columns:1fr 290px;overflow:hidden;min-height:280px;align-items:center;padding:40px 54px}
.pv-panda-banner h2{font-size:36px;margin-top:0}
.pv-panda-banner p{font-size:15px;margin-bottom:24px}
.pv-panda-banner img{height:290px;margin-bottom:-75px;transform:rotate(8deg)}
.pv-faq-grid{display:grid;grid-template-columns:1fr 1.45fr;gap:90px}
.pv-faq-grid h2{margin-bottom:25px}
:where(.pv2) details{border-bottom:1px solid var(--pv-line);padding:20px 0}
:where(.pv2) summary{font-size:15px;cursor:pointer;list-style:none;padding-right:30px;position:relative}
:where(.pv2) summary:after{content:'+';position:absolute;right:4px;font-size:21px;color:#748bad}
:where(.pv2) details[open] summary:after{content:'−'}
:where(.pv2) details p{font-size:14px;line-height:1.8;max-width:95%}
.pv-page-intro{padding-top:60px;padding-bottom:36px}
.pv-page-intro h1{font-size:58px;letter-spacing:-2.8px;margin-bottom:23px}
.pv-page-intro p{font-size:17px;max-width:660px;line-height:1.8}
.pv-library-layout{padding-top:0}
.pv-library-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}
.pv-search-box{display:flex;align-items:center;border:1px solid var(--pv-line);border-radius:12px;background:#f8faff;padding:0 17px;gap:10px;min-width:320px}
.pv-search-box span{font-size:23px;color:#91a1b9}
.pv-search-box input{border:0;background:transparent;outline:0;padding:14px 0;width:100%;font-size:14px;color:var(--pv-ink)}
.pv-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:32px}
.pv-filters button{background:white;border:1px solid var(--pv-line);border-radius:100px;padding:8px 17px;font-size:13px;color:#6b7c96}
.pv-filters button.pv-active{background:var(--pv-ink);border-color:var(--pv-ink);color:white}
.pv-result-count{font-size:12px;color:#7a8ba2}
.pv-empty-state{padding:60px;border:1px dashed var(--pv-line);border-radius:20px;text-align:center;grid-column:1/-1}
.pv-agent-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.pv-agent-card{border:1px solid var(--pv-line);padding:34px;border-radius:23px;background:linear-gradient(145deg,#f4f8ff,white)}
.pv-agent-card>span{font-size:11px;color:var(--pv-blue);letter-spacing:1px}
.pv-agent-card h3{font-size:28px;letter-spacing:-1px}
.pv-agent-card p{font-size:15px;line-height:1.8;min-height:81px}
.pv-agent-card .pv-button{margin-top:20px}
.pv-story-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:center}
.pv-story-grid h2{margin-bottom:30px}
.pv-story-grid p{font-size:17px;line-height:1.9}
.pv-story-image{border-radius:35px;background:radial-gradient(ellipse,#d8e7ff,#f2f7ff 70%);text-align:center;padding:30px}
.pv-story-image img{max-height:380px;max-width:100%}
.pv-principles{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:60px;border-top:1px solid var(--pv-line);padding-top:40px}
.pv-principles h3{font-size:22px;letter-spacing:-.6px}
.pv-principles p{font-size:14px;line-height:1.8}
.pv-contact-panel{padding:45px;border:1px solid var(--pv-line);border-radius:25px;background:#f4f8ff;max-width:750px}
.pv-contact-panel h2{margin:0 0 25px}
.pv-contact-panel p{font-size:16px;line-height:1.8}
.pv-contact-links{display:flex;gap:15px;flex-wrap:wrap;margin-top:30px}
.pv-notice{font-size:12px;color:#7b8fae;margin-top:20px}
.pv-tools-toggle{display:flex;align-items:center;gap:9px;font-size:13px;color:#6c7d99}
.pv-tools-toggle input{accent-color:var(--pv-blue)}
.pv-back-link{font-size:13px;color:var(--pv-blue);display:inline-block;margin-bottom:25px}
.pv-journal-list{margin-top:35px}
.pv-journal-item{display:block;border-top:1px solid var(--pv-line);padding:23px 0}
.pv-journal-item span{font-size:10px;color:#7d91b1;letter-spacing:1px}
.pv-journal-item h3{font-size:23px;letter-spacing:-.6px;margin:9px 0}
.pv-feature-stats{display:flex;gap:30px;margin:24px 0;color:#7b8ca7;font-size:12px}
.pv-feature-stats strong{display:block;color:var(--pv-ink);font-size:28px;font-weight:500}
.pv-concierge-form{display:flex;gap:8px;margin-top:25px;max-width:570px}
.pv-concierge-form input{border:1px solid #cfdef4;min-width:0;background:#ffffffbd;border-radius:12px;padding:13px 16px;flex:1;color:var(--pv-ink);font-size:14px}
.pv-concierge-form .pv-button{white-space:nowrap}
.pv-concierge-examples{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.pv-concierge-examples button{border:1px solid #d9e6fa;background:#ffffff73;padding:6px 10px;border-radius:50px;font-size:11px;color:#6c82a7}
@media(min-width:1376px){.pv-panda-banner{margin-inline:auto}}
@media(max-width:1050px){.pv-teacher-grid,.pv-faq-grid{gap:40px}.pv-tool-grid{gap:16px}.pv-tool-visual{height:190px}.pv-tool-body{padding:18px}.pv-tool-body h3{font-size:19px}.pv-panda-banner{margin-inline:28px}}
@media(max-width:760px){.pv-tool-grid{grid-template-columns:1fr}.pv-tool-visual{height:240px}.pv-tool-body h3{font-size:22px}.pv-tool-body>p{font-size:14px}.pv-tool-meta{font-size:12px}.pv-teacher-grid,.pv-faq-grid,.pv-story-grid{grid-template-columns:1fr;gap:35px}.pv-teacher-board{transform:rotate(-1deg);padding:24px}.pv-panda-banner{margin:0 22px 55px;padding:30px;grid-template-columns:1fr;position:relative}.pv-panda-banner>div{position:relative;z-index:2}.pv-panda-banner img{height:200px;margin:20px auto -80px}.pv-panda-banner h2{font-size:30px}.pv-concierge-form{flex-direction:column}.pv-concierge-form input{min-height:48px}.pv-library-bar{align-items:start;flex-direction:column}.pv-search-box{min-width:0;width:100%}.pv-page-intro h1{font-size:43px;letter-spacing:-2px}.pv-page-intro{padding-top:30px}.pv-filters{gap:7px}.pv-filters button{font-size:12px;padding:7px 13px}.pv-agent-grid,.pv-principles{grid-template-columns:1fr}.pv-agent-card{padding:27px}.pv-agent-card p{min-height:0}.pv-principles{gap:10px}.pv-contact-panel{padding:27px}.pv-contact-panel h2{font-size:30px}.pv-concierge-form .pv-button{min-height:45px}}
.pv-contact-links .pv-light { width: auto; }
.pv-story-image img { height: auto; }
.pv2 .pv-faq-grid a { color: var(--pv-blue); }

/* ---- additions for server-rendered pages ---- */
.pv-chip { background: #fff; border: 1px solid var(--pv-line); border-radius: 100px; padding: 8px 17px; font-size: 13px; color: #6b7c96; font-family: inherit; cursor: pointer; }
.pv-chip.pv-active { background: var(--pv-ink); border-color: var(--pv-ink); color: #fff; }
.pv-tool-card[hidden], .pv-empty-state[hidden] { display: none; }
.pv-section-heading h2 { margin: 15px 0 0; }
.pv-featured { padding-bottom: 20px; }
.pv-banner-title { margin-top: 15px; }
.pv-banner-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.pv-banner-actions .pv-light { width: auto; }
.pv-tool-card { color: inherit; text-decoration: none; }
.pv2 .pv-tool-body > p { color: var(--pv-muted); }
@media (max-width: 760px) { .pv-chip { font-size: 12px; padding: 7px 13px; } }
.pv2 { display: flow-root; }
.pv-panda-banner h2.pv-banner-title { margin: 15px 0 12px; }
.pv-banner-actions { margin-top: 6px; }
body:has(.pv2) main.pv-main { background: #fff; }

/* ---- Home additions: testimonials + concierge reply ---- */
.pv-testimonials h2 { margin-bottom: 30px; }
.pv-quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 30px; }
.pv-quote { margin: 0; border: 1px solid var(--pv-line); border-radius: 21px; padding: 28px; background: #fff; }
.pv-quote blockquote { margin: 0 0 22px; font-size: 16px; line-height: 1.7; color: var(--pv-ink); }
.pv-quote figcaption { display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--pv-muted); }
.pv-quote figcaption b { display: block; color: var(--pv-ink); font-weight: 600; }
.pv-avatar { width: 38px; height: 38px; border-radius: 12px; background: #edf3ff; color: var(--pv-blue); display: grid; place-items: center; font-weight: 700; }
.pt-sample-flag { display: inline-block; margin-top: 8px; font-size: 12px; color: #a35a00; background: #fff4e0; border-radius: 8px; padding: 4px 10px; }
.pv-teacher-link { display: inline-block; margin: 22px 0 0 20px; }
.pv-concierge-reply { margin-top: 20px; max-width: 640px; }
.pv-concierge-text { font-size: 15px; line-height: 1.7; margin: 0 0 12px; color: var(--pv-ink); }
.pv-concierge-error { color: #b3261e; }
.pv-concierge-picks { display: flex; gap: 10px; flex-wrap: wrap; }
.pv-concierge-pick { display: flex; flex-direction: column; gap: 3px; padding: 12px 16px; border: 1px solid #d9e6fa; border-radius: 14px; background: #ffffffb3; min-width: 150px; max-width: 260px; color: var(--pv-ink); text-decoration: none; }
.pv-concierge-pick span { font-size: 11px; letter-spacing: .8px; text-transform: uppercase; color: #6c82a7; }
.pv-concierge-pick b { font-size: 14px; font-weight: 600; }
.pv-concierge-pick:hover { border-color: var(--pv-blue); }
.pv-concierge-form button.pv-primary { border: 0; cursor: pointer; }
.pv-concierge-examples button { cursor: pointer; font-family: inherit; }
@media (max-width: 760px) { .pv-quotes { grid-template-columns: 1fr; } .pv-teacher-link { margin-left: 0; } }
.pv-board-row h4 { font-family: inherit; }
.pv2 { overflow-x: clip; }

/* ---- Blog ---- */
.pv-tool-visual svg { display: block; width: 100%; height: 100%; }
.pv-featured-posts { grid-template-columns: repeat(2, 1fr); }
.pv-post-title { font-size: 21px; letter-spacing: -.6px; margin: 8px 0 10px; }
.pv-journal-list { margin-top: 5px; }
.pv-journal-item { display: block; border-top: 1px solid var(--pv-line); padding: 23px 0; color: inherit; text-decoration: none; }
.pv-journal-item[hidden] { display: none; }
.pv-journal-item:last-child { border-bottom: 1px solid var(--pv-line); }
.pv-journal-item span { font-size: 12px; color: #7d91b1; letter-spacing: 1px; }
.pv-journal-item h3 { font-size: 23px; letter-spacing: -.6px; margin: 9px 0; }
.pv-journal-item:hover h3 { color: var(--pv-blue); }
.pv-journal-item p { font-size: 14px; line-height: 1.7; margin: 0; max-width: 760px; }
.pv-back-link { font-size: 13px; color: var(--pv-blue); display: inline-block; margin-bottom: 25px; text-decoration: none; }
.pv-post { max-width: 860px; padding-top: 60px; }
.pv-post h1 { font-size: clamp(34px, 4.6vw, 54px); letter-spacing: -2.4px; margin: 20px 0 10px; }
.pv-byline { font-size: 13px; margin: 0 0 14px; }
.pv-dek { font-size: 19px; line-height: 1.7; color: var(--pv-muted); margin: 0 0 28px; }
.pv-post-cover { aspect-ratio: 16 / 7; border-radius: 25px; overflow: hidden; margin-bottom: 40px; border: 1px solid var(--pv-line); }
.pv-post-cover svg { display: block; width: 100%; height: 100%; }
.pv-article-body { font-size: 17px; line-height: 1.9; color: var(--pv-ink); }
.pv-article-body p { color: var(--pv-muted); margin: 0 0 1.2em; }
.pv-article-body h2 { font-size: 30px; letter-spacing: -1.2px; margin: 1.9em 0 .6em; }
.pv-article-body h3 { font-size: 22px; letter-spacing: -.6px; margin: 1.6em 0 .5em; }
.pv-article-body ul, .pv-article-body ol { color: var(--pv-muted); margin: 0 0 1.3em; padding-left: 1.4em; }
.pv-article-body li { margin: .4em 0; }
.pv-article-body a { color: var(--pv-blue); text-decoration: underline; text-underline-offset: 3px; }
.pv-article-body strong { color: var(--pv-ink); font-weight: 600; }
.pv-article-body blockquote { margin: 1.6em 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--pv-blue); }
.pv-article-body hr { border: 0; border-top: 1px solid var(--pv-line); margin: 2.4em 0; }
.pv-article-body table { width: 100%; border-collapse: collapse; margin: 1.6em 0; font-size: 15px; display: block; overflow-x: auto; }
.pv-article-body th, .pv-article-body td { border: 1px solid var(--pv-line); padding: 10px 14px; text-align: left; color: var(--pv-muted); }
.pv-article-body th { background: var(--pv-light); color: var(--pv-ink); font-weight: 600; }
.pv-article-body code { background: var(--pv-light); border-radius: 6px; padding: 2px 6px; font-size: .9em; }
.pv-article-body pre { background: var(--pv-light); border-radius: 14px; padding: 18px 20px; overflow-x: auto; line-height: 1.6; }
.pv-article-body pre code { background: none; padding: 0; }
.pv-article-body img { max-width: 100%; height: auto; border-radius: 16px; }
@media (max-width: 760px) { .pv-featured-posts { grid-template-columns: 1fr; } .pv-post { padding-top: 30px; } .pv-article-body { font-size: 16px; } }
.pv-upper { text-transform: uppercase; }

/* Project thumbnails (recoloured copies in images/projects-v2) */
/* Softened so the illustration sits behind the text instead of competing with it:
   faded into the card's pale blue background and slightly desaturated. */
.pv-tool-visual img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: .62; filter: saturate(.7) brightness(1.06); transition: opacity .25s; }
.pv-tool-card:hover .pv-tool-visual img { opacity: .8; }
