@font-face{font-family:Kalam;src:url('assets/Kalam-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
/* A brief entrance follows the reading order without delaying interaction. */
@keyframes page-arrive{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:no-preference){
 html[data-entry-motion] :is(.header nav,.top-light,.hero-copy>h1,.hero-copy>.intro,.hero-action,.hero-photo):not([data-entry-done]){animation:page-arrive 450ms cubic-bezier(.16,1,.3,1) both;animation-delay:var(--entry-delay,0ms)}
 html[data-entry-motion] .top-light{--entry-delay:40ms}
 html[data-entry-motion] .hero-copy>h1{--entry-delay:90ms}
 html[data-entry-motion] .hero-copy>.intro{--entry-delay:150ms}
 html[data-entry-motion] .hero-action{--entry-delay:210ms}
 html[data-entry-motion] .hero-photo{--entry-delay:260ms}
}
:root{--ink:#293b33;--muted:#59645c;--green:#3c6049;--hand:Kalam,cursive;--paper:#fffef6;--desk:#e8e6df;--rule:#d4ded8;--page-grid:linear-gradient(to right,#74949b26 1px,transparent 1px),linear-gradient(to bottom,#74949b26 1px,transparent 1px);--page-grid-size:24px 24px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px;background-color:var(--paper);background-image:var(--page-grid);background-size:var(--page-grid-size);background-position:0 0}body{margin:0;padding:0;background:transparent;color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #6c8d73;outline-offset:6px}h1,h2,h3,p,figure{margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;left:16px;top:-70px;z-index:20;background:var(--ink);color:#fff;padding:12px}.skip:focus{top:12px}
.notebook-page{position:relative;width:100%;margin:0;border:0;box-shadow:none;isolation:isolate}.wrap{width:min(940px,calc(100% - 160px));margin-inline:auto}.handwritten{--hw-color:currentColor;display:inline;font-size:0;line-height:1.45}.handwritten .hw-sentence{display:inline;white-space:normal}.handwritten .hw-word{display:inline-block;vertical-align:middle;height:var(--letter-size,24px);width:auto;overflow:visible}.handwritten .hw-token{display:inline-block;line-height:1.45}.header{position:relative;display:flex;justify-content:space-between;gap:24px;align-items:center;min-height:104px;padding-block:24px 22px;background:transparent}.brand{display:flex;align-items:center;gap:15px;--letter-size:19px}.brand-detail{--letter-size:14px;color:var(--muted)}nav{display:flex;align-items:center;gap:22px;--letter-size:15px}nav a{display:flex;align-items:center;gap:6px;min-height:44px}nav a:hover{color:#547a5c}.arrow{width:20px;height:20px;display:inline-block;vertical-align:middle;flex-shrink:0}nav .arrow{width:14px;height:14px}
.hero{display:grid;grid-template-columns:1fr .95fr;gap:52px;align-items:center;padding-block:64px 68px}.hero-copy{order:1;min-width:0}h1{--letter-size:51px;font-weight:400;line-height:1.45}.intro{--letter-size:24px;line-height:1.65;margin-top:22px;max-width:440px}.hero-description{font-size:17px;line-height:34px;max-width:385px;margin-top:20px}.session-options{--letter-size:16px;color:var(--green);margin-top:18px;line-height:1.7}.hero-action{margin-top:28px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.hero-action>span{font-size:12px;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;gap:17px;padding:13px 21px;min-height:52px;border:2px solid var(--green);border-radius:46% 52% 44% 49% / 19% 24% 21% 27%;color:var(--green);background:#fffef6aa;--letter-size:19px;box-shadow:1px 1px 0 #53705a35;transition:background .15s,transform .15s}.button:hover{background:#e9efdfa6;transform:rotate(-1deg)}.button .handwritten{white-space:nowrap}.hero-photo{order:2;min-width:0;justify-self:center;width:100%;max-width:365px;padding-top:10px;transform:rotate(4deg)}.polaroid{position:relative;background:#fffefa;padding:14px 14px 18px;box-shadow:1px 3px 4px #332d282b,3px 12px 22px #332d2815;border:1px solid #e1e0d5}.photo-frame{aspect-ratio:1;overflow:hidden;background:#eee}.photo-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--photo-x,50%) var(--photo-y,45%);transform:scale(var(--photo-zoom,1));transform-origin:var(--photo-x,50%) var(--photo-y,45%)}.photo-tape{position:absolute;z-index:2;width:112px;height:35px;background:repeating-linear-gradient(90deg,#d0c59e0a 0,#d0c59e0a 2px,#ece2be22 2px,#ece2be22 4px),#d5c9a299;box-shadow:0 1px 1px #70603213;clip-path:polygon(0 4%,8% 0,14% 5%,22% 1%,30% 4%,37% 0,46% 4%,55% 0,64% 4%,72% 0,81% 4%,91% 0,100% 5%,98% 96%,89% 100%,82% 96%,73% 100%,65% 96%,56% 100%,47% 96%,38% 100%,29% 97%,19% 100%,10% 96%,1% 100%)}.tape-left{top:-4px;left:-25px;transform:rotate(-32deg)}.tape-right{top:-6px;right:-25px;transform:rotate(27deg)}.hero-photo figcaption{padding-top:18px;line-height:1.4;text-align:center}.photo-label{--letter-size:16px;color:#566359;display:block}.photo-credit{display:inline-block;font-size:9px;color:#74796d;text-decoration:underline;text-underline-offset:2px;margin-top:8px}
.subjects{padding-block:28px 52px}.subjects-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.subjects-heading h2{--letter-size:30px;line-height:1.55;font-weight:400}.subjects-heading>p{--letter-size:18px;color:var(--muted);white-space:nowrap;transform:rotate(-4deg)}.subject-list{display:grid;grid-template-columns:repeat(3,1fr);gap:38px;padding-top:32px}.subject-summary{position:relative;padding-top:7px}.subject-summary h3{--letter-size:27px;font-weight:400;line-height:1.5;margin-left:40px}.subject-doodle{position:absolute;left:0;top:7px;--hw-color:#53705a;transform:rotate(-9deg)}.subject-item:nth-child(2) .subject-doodle{transform:rotate(7deg)}.subject-item:nth-child(3) .subject-doodle{transform:rotate(-7deg)}.subject-summary>p{font-size:15px;line-height:30px;margin-top:17px;color:var(--muted)}
.approach-section{background:transparent}.approach{display:grid;grid-template-columns:235px 1fr;gap:35px;align-items:center;padding-block:40px 65px}.approach-copy h2{--letter-size:30px;font-weight:400;line-height:1.6}.approach-copy>p{font-size:16px;line-height:30px;color:var(--muted);margin-top:20px}.approach-copy .demo-instruction{font-size:13px;line-height:25px;max-width:230px;margin-top:23px}.paper-status{font-size:12px;line-height:1.6;margin-top:20px;color:var(--green)}
.contact{display:grid;grid-template-columns:1.25fr 1fr;gap:55px;align-items:center;padding-block:35px 64px}.contact-copy h2{--letter-size:32px;font-weight:400;line-height:1.6}.contact-copy p{font-size:16px;line-height:32px;margin-top:20px;max-width:480px}.email{display:inline-block;font-size:14px;text-decoration:underline;text-underline-offset:5px;margin-top:20px;overflow-wrap:anywhere;max-width:100%}.contact-action{min-width:0}.contact-action>p{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.7}.contact-action .availability{--letter-size:15px;margin-top:20px;line-height:1.9}.footer{display:flex;justify-content:space-between;align-items:center;gap:25px;padding-block:24px 33px;color:var(--muted);font-size:11px}.footer>span:first-child{--letter-size:15px}.footer>span:nth-child(2){font-size:11px}.footer>a{display:flex;gap:5px;align-items:center;--letter-size:13px;min-height:40px}.footer .arrow{width:14px;height:14px}
@media(max-width:1050px){.hero{gap:35px;padding-block:50px 55px}h1{--letter-size:45px}.intro{--letter-size:22px}.brand{--letter-size:17px}.brand-detail{display:none}nav{gap:17px;--letter-size:14px}.subject-list{gap:25px}.approach{grid-template-columns:210px 1fr;gap:25px}.contact{gap:35px}.contact-copy h2{--letter-size:29px}.button{--letter-size:17px;padding:12px 16px;gap:12px}.subjects-heading h2{--letter-size:27px}.subject-summary h3{--letter-size:24px}}
@media(max-width:740px){.wrap{width:calc(100% - 48px)}.header{min-height:84px;gap:15px;padding-block:16px}.brand{--letter-size:18px}nav{gap:0;--letter-size:14px}nav a:not(:last-child){display:none}.hero{grid-template-columns:1fr;gap:40px;padding-block:38px 35px}.hero-photo{order:1;width:calc(100% - 18px);max-width:300px;transform:rotate(3deg)}.hero-copy{order:0}.polaroid{padding:11px 11px 15px}.photo-tape{width:88px;height:29px}.tape-left{left:-19px;top:-3px}.tape-right{right:-18px;top:-4px}.hero-photo figcaption{padding-top:14px}.photo-label{--letter-size:14px}.photo-credit{font-size:8px;margin-top:6px}h1{--letter-size:43px}.intro{--letter-size:22px;margin-top:16px;line-height:1.65}.hero-description{font-size:16px;line-height:32px;margin-top:15px}.session-options{--letter-size:16px;margin-top:13px}.hero-action{margin-top:24px}.button{--letter-size:18px;min-height:52px;padding:12px 18px;gap:14px}.subjects{padding-block:20px 30px}.subjects-heading{display:block}.subjects-heading h2{--letter-size:28px}.subjects-heading>p{--letter-size:17px;display:inline-block;margin-top:13px;transform:rotate(-3deg)}.subject-list{grid-template-columns:1fr;gap:25px;padding-top:25px}.subject-summary{padding-top:0;padding-left:40px}.subject-summary h3{--letter-size:27px;margin:0}.subject-doodle{top:0;left:-3px}.subject-summary>p{font-size:15px;line-height:28px;margin-top:9px}.approach{grid-template-columns:1fr;gap:25px;padding-block:25px 40px}.approach-copy h2{--letter-size:28px}.approach-copy>p{font-size:15px;line-height:30px;margin-top:14px}.approach-copy .demo-instruction{max-width:none;margin-top:17px}.contact{grid-template-columns:1fr;gap:28px;padding-block:24px 34px}.contact-copy h2{--letter-size:29px}.contact-copy p{font-size:15px;line-height:30px;margin-top:17px}.email{font-size:13px;margin-top:15px}.contact-action .availability{--letter-size:15px;max-width:280px}.footer{display:grid;grid-template-columns:1fr;gap:12px;padding-block:22px}.footer>span:first-child{--letter-size:15px}.footer>a{--letter-size:13px;justify-self:start}.footer>span:nth-child(2){font-size:10px}}
@media(max-width:370px){.header{gap:10px}.brand{--letter-size:16px}nav{--letter-size:12px}nav .arrow{display:none}h1{--letter-size:36px}.intro{--letter-size:20px}.button{--letter-size:16px;padding:12px 14px}.subjects-heading h2{--letter-size:25px}.contact-copy h2{--letter-size:26px}.approach-copy h2{--letter-size:26px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.piece,.scribbles,.solution-guides,.solution-footer,.peel-handle,.button{transition:none!important;transition-delay:0s!important}.button:hover{transform:none}}

.light-control{position:relative;width:170px;height:345px;margin:15px auto 0}.light-control[hidden]{display:none}.bulb-fixture{position:absolute;inset:0 auto auto 0;width:170px;height:170px;pointer-events:none}.bulb-fixture svg{display:block;width:100%;height:100%}.bulb-halo,.bulb-lit-glass{opacity:0;transition:opacity .3s}.bulb-lit-glass{stroke:#c2a864;stroke-width:1.4}.is-on .bulb-halo{opacity:1}.is-on .bulb-lit-glass{opacity:.85}.is-on .bulb-filament{stroke:#d7a137;stroke-width:2.4}.pull-chain{position:absolute;left:49px;top:150px;width:72px;height:190px;display:block;border:0;background:transparent;padding:0;cursor:grab;touch-action:none;border-radius:15px}.pull-chain:active{cursor:grabbing}.chain-graphic{width:72px;height:200px;display:block;overflow:visible}.cord-label{position:absolute;left:-10px;top:240px;display:block;color:#607554;font:14px var(--hand);transform:rotate(-8deg);pointer-events:none}.cord-label svg{display:block;width:42px;height:27px;margin-left:58px;margin-top:3px}
@media(max-width:740px){.paper-status{font-size:12px!important}.paper-question .hw-word{height:clamp(10px,2.5vw,18px)}.approach-copy{position:relative;padding-right:0}.light-control{margin:10px auto 0}.paper-demo{padding:0}}
@media(prefers-reduced-motion:reduce){.paper-demo.is-ready .piece,.bulb-halo,.bulb-lit-glass,.paper-question{transition:none!important}}
/* Collapsible local handwriting editor. */
.handwriting-toggle{position:fixed;right:20px;bottom:20px;z-index:40;display:flex;align-items:center;gap:9px;padding:12px 16px;border:1px solid #bfc9ba;border-radius:7px;background:#fffef6;color:#354e3e;box-shadow:0 3px 14px #2e34221c;font:14px Arial,Helvetica,sans-serif;cursor:pointer;min-height:46px}.handwriting-toggle svg{width:20px;height:20px}.handwriting-panel{position:fixed;right:20px;bottom:80px;z-index:45;width:350px;max-width:calc(100% - 32px);max-height:calc(100% - 100px);overflow:auto;overscroll-behavior:contain;background:#fffef7;border:1px solid #c6cdbd;border-radius:9px;box-shadow:0 8px 32px #26301d28;padding:20px 22px;color:#2c3d32;font-family:Arial,Helvetica,sans-serif}.handwriting-toggle[hidden],.handwriting-panel[hidden]{display:none}.handwriting-panel-header{display:flex;align-items:center;justify-content:space-between;gap:15px}.handwriting-panel-header h2{font:600 19px/1.4 Arial,Helvetica,sans-serif;letter-spacing:0}.handwriting-close{font:26px/1 Arial,Helvetica,sans-serif;background:transparent;color:#586450;padding:4px 9px;border:0;cursor:pointer;min-width:38px;min-height:38px}.handwriting-description{font-size:13px;line-height:1.6;color:#687261;margin-top:4px}.handwriting-sample{border-block:1px solid #dce3d5;padding:17px 0 14px;margin-top:14px;--hw-color:#3c6049}.handwriting-sample .hw-word{height:22px}.handwriting-sample .hw-sentence{display:inline-flex}.handwriting-presets{display:flex;gap:7px;margin-top:16px}.handwriting-panel button:not(.handwriting-close){font:13px Arial,Helvetica,sans-serif;cursor:pointer;border:1px solid #c9d2c0;background:#fbfcf6;color:#40553e;border-radius:4px;padding:9px 10px;min-height:36px}.handwriting-presets button{flex:1}.handwriting-panel .handwriting-presets button[aria-pressed=true]{background:#e5eddd;border-color:#6b8961;color:#2b4931}.handwriting-field{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin-top:18px;font-size:13px}.handwriting-field output{color:#63725b;font-variant-numeric:tabular-nums;font-size:12px}.handwriting-field input{grid-column:1/-1;width:100%;margin:0;accent-color:#57734d;cursor:pointer;min-height:24px}.handwriting-actions{display:flex;flex-wrap:wrap;gap:6px;border-top:1px solid #dce3d5;padding-top:15px;margin-top:17px}.handwriting-storage{font-size:11px;line-height:1.6;margin-top:13px;color:#6c7564}.handwriting-toggle:hover{background:#f5f8ed}.handwriting-panel button:hover{filter:brightness(.98)}
@media(max-width:740px){.handwriting-toggle{right:14px;bottom:14px;padding:11px 14px}.handwriting-panel{right:14px;bottom:74px;padding:16px 18px;max-height:calc(100% - 90px)}}

/* Decorative stickers peel for play; they do not trigger any site action. */
.hero,.subjects,.approach,.contact{position:relative}.decor-sticker{position:absolute;display:block;width:52px;height:52px;padding:0;border:0;background:transparent;cursor:grab;touch-action:none;filter:drop-shadow(0 1px 2px #45412a30);--hw-color:currentColor;z-index:2}.decor-sticker:active{cursor:grabbing}.sticker-peel{position:absolute;inset:0;display:block;width:100%;height:100%;opacity:1;overflow:clip}.sticker-face{position:absolute;inset:0;display:grid;place-items:center;border:3px solid #fffefa;background:var(--sticker-fill);border-radius:var(--sticker-radius,50%)}.sticker-face>svg{width:34px;height:34px}.sticker-back{background:#f6f3e8;border-radius:var(--sticker-radius,50%)}.sticker-bottom{background:transparent}.decor-sticker .peel-layer{pointer-events:none}.sticker-star{left:-50px;top:50px;transform:rotate(-13deg);color:#a28b46;--sticker-fill:#f4e9bc}.sticker-bulb{left:62%;top:-12px;transform:rotate(12deg);color:#9b8340;--sticker-fill:#f7eccc;--sticker-radius:9px}.sticker-smile{right:-38px;top:30px;transform:rotate(9deg);color:#647d51;--sticker-fill:#eaf0dc}.sticker-pencil{left:-50px;top:84px;transform:rotate(-16deg);color:#96766a;--sticker-fill:#f4e8e1;--sticker-radius:10px}
@media(max-width:740px){.decor-sticker{width:44px;height:44px}.sticker-face{border-width:2px}.sticker-face>svg{width:28px;height:28px}.sticker-star{left:-14px;top:12px}.sticker-bulb{left:auto;right:0;top:-32px}.sticker-smile{right:0;top:-20px}.sticker-pencil{left:auto;right:10px;top:-24px}}

.sticker-back,.sticker-bottom{display:none}.sticker-ready .sticker-back,.sticker-ready .sticker-bottom{display:block}.decor-sticker:disabled{cursor:default}
/* Reserve quiet paper below the footer for the detached stickers to land. */
.notebook-page{padding-bottom:112px}.decor-sticker.sticker-detached{opacity:0;pointer-events:none}.sticker-floor{position:absolute;inset:0;overflow:clip;pointer-events:none;z-index:25}.loose-sticker{position:absolute;left:0;top:0;display:block;pointer-events:none;filter:drop-shadow(0 3px 3px #45412a35);will-change:transform}.loose-sticker .sticker-face{width:100%;height:100%}.loose-sticker[data-sticker-state=landed]{filter:drop-shadow(0 1px 1px #45412a30);will-change:auto}
/* Scroll-drawn ink follows the words, with marker colour behind the lettering. */
.ink-note-hand{display:inline-block;font-size:0;line-height:0;vertical-align:middle}.ink-note-hand+.handwritten{margin-left:calc(var(--letter-size,24px)*.18)}.ink-note[data-scroll-note=circle]{display:inline-block;white-space:nowrap}.ink-note[data-note-key=grade-range]{margin-left:9px}.scroll-annotation{pointer-events:none!important}.approach-notes{position:relative}

.polaroid:not(:has(figcaption)){padding-bottom:36px}

/* Clear navigation and pricing written directly on the same paper. */

.money-ink{display:inline-flex;align-items:center;gap:2px;vertical-align:middle}.currency-symbol{font:700 calc(var(--letter-size,35px)*.7)/1 var(--hand)}
/* Centered introduction, equal navigation and clear sticker lanes. */
.header{justify-content:center;min-height:88px}.header nav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 30px;width:100%;--letter-size:15px}.header nav a,.header nav a:not(:last-child){display:flex}.hero{display:flex;flex-direction:column;gap:30px;align-items:center;padding-block:30px 8px}.hero-copy{width:100%;text-align:center;order:0}.hero .intro{max-width:620px;margin:20px auto 0}.hero-action{align-items:center;margin-top:22px}.hero-meta{display:flex;justify-content:center;align-items:center;gap:8px;white-space:nowrap;font:12px/1.6 Arial,Helvetica,sans-serif;color:var(--muted)}.hero-photo{order:1;transform:none;max-width:400px;width:calc(100% - 28px);padding-top:0;align-self:center}.hero>.sticker-slot{order:2}.sticker-slot{display:flex;justify-content:flex-start;align-items:center;min-height:68px;width:100%;padding:8px 7px}.sticker-slot .decor-sticker{position:relative;inset:auto;flex-shrink:0}.contact>.sticker-slot{grid-column:1/-1}.subjects{padding-top:14px}.approach{grid-template-columns:minmax(0,1fr) 110px;gap:45px;align-items:start;padding-block:28px 0}.approach-copy>p{max-width:680px;margin-top:18px}.light-control{width:110px;height:216px;margin:45px 0 0}.bulb-mechanism{position:relative;width:170px;height:345px;transform:scale(.62);transform-origin:top left}.bulb-fixture{border:0;padding:0;background:transparent;cursor:pointer}.cord-label{font-size:20px;left:7px;top:240px}.cord-label svg{margin-left:41px}.experience{padding-block:24px 45px}.experience>h2{font-weight:400;--letter-size:32px;line-height:1.5}.experience-list{display:grid;grid-template-columns:1fr 1fr;gap:26px 48px;margin-top:28px}.experience-list h3{font-weight:400;--letter-size:23px;line-height:1.5}.experience-list p{font-size:15px;line-height:28px;color:var(--muted);margin-top:9px}.portrait-card{perspective:1000px;position:relative;width:100%;touch-action:pan-y}.portrait-front{display:block;list-style:none;cursor:pointer;transform:rotate(3deg);user-select:none}.portrait-front::-webkit-details-marker{display:none}.portrait-front:focus-visible{outline:3px solid #6c8d73;outline-offset:8px}.portrait-prompt{display:flex;align-items:center;justify-content:center;gap:16px;padding-top:20px;--letter-size:17px;color:var(--green)}.portrait-prompt>span:last-child{font:25px var(--hand)}.portrait-ready[open]>.portrait-front{display:none}.portrait-back{background:#fffefa;border:1px solid #d4dacb;box-shadow:1px 4px 10px #332d281c;padding:22px 25px 15px;transform-origin:center center}.portrait-back h2{--letter-size:27px;font-weight:400;line-height:1.5;margin-top:20px}.portrait-close{border:0;background:transparent;padding:4px 0;min-height:36px;font:13px Arial,Helvetica,sans-serif;color:var(--green);cursor:pointer;text-decoration:underline;text-underline-offset:4px}.bio-fold{padding-block:22px;border-bottom:1px solid #d6ddcf;transform-origin:top center}.bio-fold:last-child{border-bottom:0}.bio-fold p{font-size:15px;line-height:29px;color:#465548}.portrait-front .photo-frame{pointer-events:none}.portrait-front .photo-tape{pointer-events:none}.polaroid.portrait-front{padding-bottom:22px}
@media(max-width:740px){.header{padding-block:12px;min-height:38px}.header nav{--letter-size:13px;gap:0 15px}.header nav a,.header nav a:not(:last-child){display:flex}.hero{padding-top:20px;gap:26px}.hero .intro{margin-top:16px}.hero-meta{gap:6px;font-size:11px}.hero-photo{max-width:360px}.approach{display:block;padding-top:20px}.approach-copy{padding:0}.approach-copy h2{--letter-size:28px}.light-control{margin:20px auto 0}.experience{padding-top:18px}.experience-list{grid-template-columns:1fr;gap:24px}.portrait-back{padding:18px 21px 10px}.portrait-back h2{--letter-size:25px}.portrait-prompt{--letter-size:16px}.bio-fold{padding-block:19px}.bio-fold p{font-size:15px;line-height:28px}.sticker-slot{min-height:64px}.hero-copy h1{--letter-size:43px}}
@media(max-width:360px){.header nav{column-gap:17px}.hero-copy h1{--letter-size:36px}.hero-meta{font-size:10px;gap:5px}}

.bulb-fixture{pointer-events:auto}.portrait-prompt svg{flex-shrink:0}.portrait-hint{display:block;text-align:center;font:11px/1.6 Arial,Helvetica,sans-serif;color:var(--muted);margin-top:7px}

/* The portrait opens into a folded letter: down on phones, across on wide screens. */
.portrait-back{padding:0;overflow:hidden;perspective:1400px;box-shadow:1px 5px 14px #332d2824}
.portrait-back>.portrait-close{margin:18px 24px 0}
.portrait-back>h2{margin:10px 24px 18px}
.bio-folds{perspective:1200px}
.bio-fold{position:relative;padding:24px;border:0;border-top:1px solid #d9dccf;transform-origin:top center;background:linear-gradient(to bottom,#938e6c12,transparent 14px),#fffefa}
.bio-fold:nth-child(2){background:linear-gradient(to bottom,#938e6c12,transparent 14px),#faf9f0}
.bio-fold:last-child{border:0;border-top:1px solid #d9dccf}
.bio-fold p{margin:0}
@media(min-width:960px){
 .hero-photo:has(.portrait-card[open]:not(.portrait-ready)){width:100%;max-width:none}
 .portrait-front{margin-inline:auto}
 .portrait-back>.portrait-close{margin-top:20px}
 .portrait-back>h2{margin-bottom:20px}
 .bio-folds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #d9dccf}
 .bio-fold,.bio-fold:last-child{min-width:0;border:0;border-left:1px solid #cfd3c4;transform-origin:left center;background:linear-gradient(to right,#938e6c16,transparent 16px),#fffefa}
 .bio-fold:first-child{border-left:0;background:#fffefa}
 .bio-fold:nth-child(2){background:linear-gradient(to right,#938e6c16,transparent 16px),#faf9f0}
 .bio-fold p{font-size:15px;line-height:28px}
}

/* Each dated period has one colored track on the shared desktop scale. */
.experience-timeline{--timeline-label-width:245px;margin-top:24px}
.timeline-axis{position:relative;margin-left:var(--timeline-label-width);height:38px}
.timeline-years{display:grid;grid-template-columns:repeat(var(--timeline-years),minmax(0,1fr));font:14px/1.5 Arial,Helvetica,sans-serif;color:var(--muted);border-bottom:1px solid #aab9a2;padding-bottom:8px}
.timeline-years>span{padding-left:6px;border-left:1px solid #aab9a2}
.timeline-tracks{list-style:none;margin:0;padding:0}
.timeline-track{display:grid;grid-template-columns:var(--timeline-label-width) minmax(0,1fr);min-height:94px}
.timeline-label{padding:14px 24px 16px 0}
.timeline-label h3{--letter-size:21px;font-weight:400;line-height:1.5;color:var(--experience-color)}
.timeline-detail{font-size:14px;line-height:23px;color:var(--muted);margin-top:12px}
.timeline-dates{font:14px/1.7 Arial,Helvetica,sans-serif;color:var(--muted);margin-top:7px}
.timeline-dates p{margin:0}
.timeline-plot{position:relative;min-width:0;background:repeating-linear-gradient(to right,#83928b35 0,#83928b35 1px,transparent 1px,transparent calc(100% / var(--timeline-years)))}
.timeline-bar{position:absolute;left:var(--bar-start);width:var(--bar-width);height:5px;top:38px;transform:translateY(-50%);background:var(--experience-color);z-index:1;border-radius:3px}
.timeline-node{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;position:relative}
.timeline-start-point{position:absolute;left:var(--bar-start);top:38px;transform:translate(-50%,-50%);width:8px;height:8px;border-radius:50%;background:var(--experience-color);z-index:2}
.timeline-dot{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--experience-color);color:#fffefa;box-shadow:0 0 0 3px var(--paper)}
.timeline-dot svg{width:18px;height:18px}
.timeline-end{position:absolute;left:calc(var(--bar-start) + var(--bar-width));top:38px;transform:translate(-50%,-50%);width:9px;height:9px;border-radius:50%;background:var(--experience-color);box-shadow:0 0 0 2px var(--paper);z-index:1}
.timeline-end-ongoing{width:10px;height:10px;border:2px solid var(--experience-color);background:var(--paper)}
.experience-info,.timeline-marker-static{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin:0;padding:0;border:0;background:transparent;color:var(--experience-color);border-radius:50%}
.experience-info{cursor:pointer}
.experience-info:hover,.experience-info[aria-expanded=true]{background:color-mix(in srgb,var(--experience-color) 15%,transparent)}
.experience-info:focus-visible{outline:2px solid var(--experience-color);outline-offset:2px}
.experience-info[hidden],.timeline-node[data-info-ready=true]>.timeline-marker-static,.timeline-detail[hidden],.compact-detail[hidden]{display:none}
.vertical-experience{display:none}
/* Keep the closed lettering control out of the phone reading area. */
@media(max-width:959px){
 .header{flex-wrap:wrap;row-gap:4px}
 .header .handwriting-toggle{position:static;inset:auto;min-height:44px;margin:0 auto 4px;padding:9px 13px;font-size:12px;box-shadow:none}
 .header .handwriting-toggle svg{width:17px;height:17px}
}

/* One hourly-rate comparison; shared, rectangular booking buttons. */
.button{position:relative;isolation:isolate;border:0;border-radius:0;box-shadow:none;transform:none;--letter-size:18px;padding:13.5px 17.5px;gap:12px}
.button .link-outline{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.link-outline path{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.link-outline .outline-second{stroke-width:1;opacity:.45}
.button:hover{transform:none;background:#e9efdfa6}
.hero-meta{flex-wrap:wrap;white-space:normal}
.pricing{padding-block:30px 45px}
.pricing h2{--letter-size:34px;font-weight:400;line-height:1.5}
.pricing h3{--letter-size:24px;font-weight:400;line-height:1.5}
.individual-offer{margin-top:25px}
.session-durations{font:14px/1.8 Arial,Helvetica,sans-serif;color:var(--muted);margin-top:7px}
.individual-rates{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding-block:24px;margin-top:20px;border-block:1px solid #aab9a27a}
.individual-rates article+article{border-left:1px solid #aab9a27a;padding-left:36px}
.individual-rates h4{--letter-size:22px;font-weight:400;line-height:1.5;margin:0}
.hourly-price{display:flex;align-items:center;gap:17px;margin-top:18px;--letter-size:42px;color:var(--green)}
.hourly-price>span:last-child{font:16px/1.5 Arial,Helvetica,sans-serif;color:var(--muted)}
.rate-terms{font:13px/1.8 Arial,Helvetica,sans-serif;color:var(--muted);max-width:650px;margin-top:16px}
.introductory-explanation{margin-top:30px;max-width:760px}
.introductory-explanation p{font:15px/1.8 Arial,Helvetica,sans-serif;margin-top:12px}
.pricing-actions{margin-top:22px}
.group-offer{display:block;margin-top:42px;padding-top:30px;border-top:1px solid #aab9a27a}
.group-offer>p{font:14px/1.8 Arial,Helvetica,sans-serif;margin-top:10px;color:var(--muted);max-width:620px}
.group-rates{border-collapse:collapse;width:min(100%,620px);margin-top:18px;text-align:left;font:15px/1.5 Arial,Helvetica,sans-serif;font-variant-numeric:tabular-nums}
.group-rates th,.group-rates td{padding:12px 10px;border-bottom:1px solid #aab9a255}
.group-rates thead th{font-size:12px;font-weight:400;color:var(--muted);border-bottom:1px solid #aab9a2}
.group-rates tbody th{font-weight:400}
.group-rates th:last-child,.group-rates td{text-align:right}
.group-rates td{font-size:22px;font-weight:600;color:var(--green)}
.group-offer .group-discount-note{font-size:12px;margin-top:12px}
.contact-action .email-option{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 8px;font:13px/1.8 Arial,Helvetica,sans-serif;color:var(--muted);margin-top:20px}
.email-option .email{font:inherit;display:inline;margin:0;text-underline-offset:3px;overflow-wrap:anywhere}
.contact-action .availability{margin-top:12px}
@media(max-width:740px){
 .individual-rates{grid-template-columns:1fr;gap:22px;padding-block:22px}
 .individual-rates article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px}
 .individual-rates article+article{border-left:0;border-top:1px solid #aab9a255;padding:22px 0 0}
 .individual-rates h4{--letter-size:21px}
 .hourly-price{margin:0;--letter-size:36px;gap:13px}
 .hourly-price>span:last-child{font-size:14px}
 .button{--letter-size:17px;gap:10px;padding:12px 14px}
 .introductory-explanation p{font-size:14px;line-height:1.85}
 .group-rates{font-size:14px}
 .group-rates th,.group-rates td{padding-inline:4px}
}

/* Scattered keepsakes get quiet space, rather than sitting over the writing. */
.hero>.sticker-cluster{order:2}
.sticker-cluster{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:76px;padding:8px 24% 8px 12%}
.sticker-cluster .sticker-slot{width:auto;min-height:60px;padding:4px}
.spot-sticker-bulb{justify-content:flex-end;padding-right:9%}
.spot-sticker-smile{padding-left:22%}
.spot-sticker-rocket{justify-content:flex-end;padding-right:26%}
.spot-sticker-pencil{padding-left:58%}
.sticker-star{width:48px;height:48px;transform:rotate(-17deg)}
.sticker-sparkle{width:40px;height:40px;transform:rotate(16deg);color:#a18445;--sticker-fill:#f4e8c8}
.sticker-bulb{transform:rotate(18deg)}
.sticker-smile{transform:rotate(-9deg)}
.sticker-rocket{width:48px;height:48px;transform:rotate(-14deg);color:#9a705c;--sticker-fill:#f2e0d4;--sticker-radius:10px}
.sticker-bookmark{width:44px;height:44px;transform:rotate(12deg);color:#637d8d;--sticker-fill:#e2ebf0;--sticker-radius:8px}
.sticker-pencil{width:50px;height:50px;transform:rotate(-12deg)}
.pricing-heading-decor{display:flex;align-items:center;justify-content:space-between;gap:24px}
.pricing-heading-decor .sticker-slot{width:auto;min-height:60px;padding:4px 12px}
.session-frequency{font:14px/1.8 Arial,Helvetica,sans-serif;color:var(--green);margin-top:5px}
.frequency-mark{display:inline-block;padding:0 5px;text-decoration:underline;text-underline-offset:3px}
.frequency-note{font:12px/1.7 Arial,Helvetica,sans-serif;color:var(--muted);margin-top:4px}
.group-offer .group-organisation{font-size:13px;max-width:620px}
@media(max-width:740px){
 .sticker-cluster{min-height:70px;padding-inline:5% 14%}
 .spot-sticker-bulb{padding-right:4%}
 .spot-sticker-smile{padding-left:16%}
 .spot-sticker-rocket{padding-right:25%}
 .spot-sticker-pencil{padding-left:64%}
 .pricing-heading-decor .sticker-slot{padding-right:7px}
}

/* The selected bundle controls only the post-introductory hourly rate. */
.package-rate{display:inline-flex;vertical-align:middle}
.package-rate[hidden],.package-selector[hidden],.package-fallback[hidden]{display:none}
#afterward-rate{font-size:0;line-height:1}
.package-selector{width:100%;max-width:310px;margin-top:22px}
.package-label{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 12px;font:14px/1.7 Arial,Helvetica,sans-serif;color:var(--muted)}
.package-select-wrap{position:relative;display:inline-block;max-width:100%;margin-left:auto}
.package-terms,.package-fallback{font:12px/1.75 Arial,Helvetica,sans-serif;color:var(--muted);max-width:340px;margin-top:13px}
@media(max-width:740px){
 .afterward-offer .package-selector,.afterward-offer .package-terms,.afterward-offer .package-fallback{grid-column:1/-1;max-width:none}
 .afterward-offer .package-selector{margin-top:3px}
 .afterward-offer .package-terms{margin-top:0}
}

/* Reading-sized secondary copy; navigation retains handwritten lettering. */
.header nav{font:16px/1.5 Arial,Helvetica,sans-serif;--letter-size:16px;--nav-gap:30px;gap:8px var(--nav-gap);flex-wrap:nowrap}
.header nav a{font:inherit;position:relative}

.header .handwriting-toggle{font-size:14px}
.hero-meta{font-size:14px;gap:6px 8px}
.portrait-hint,.portrait-close{font-size:14px}
.session-durations,.session-frequency{font-size:15px}
.frequency-note,.rate-terms,.package-terms,.package-fallback,.group-offer .group-organisation,.group-offer .group-discount-note{font-size:14px}
.group-rates thead th{font-size:14px}
.contact-action>p,.contact-action .email-option,.email-option .email{font-size:14px}
.footer,.footer>span:nth-child(2){font-size:14px}
.footer>a{--letter-size:14px}
.timeline-years,.timeline-dates,.timeline-detail,.compact-dates,.compact-detail{font-size:14px}
.handwriting-description,.handwriting-field,.handwriting-field output,.handwriting-storage{font-size:14px}
.handwriting-panel button:not(.handwriting-close){font-size:14px}
@media(max-width:740px){.header.wrap{width:calc(100% - 24px)}.header nav{display:flex;flex-wrap:nowrap;font-size:clamp(14px,4.4vw,16px);--letter-size:clamp(14px,4.4vw,16px);--nav-gap:clamp(6px,2vw,12px);gap:var(--nav-gap)}.header nav a{flex:0 0 auto;min-width:44px;white-space:nowrap;justify-content:center}}

/* Each subject opens across the page below all three summaries. */
.subject-summary{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.subject-summary>p{margin-bottom:17px}
.subject-toggle,.subject-close,.subject-return{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:8px 12px;border:1.5px solid var(--green);border-radius:2px;background:var(--paper);color:var(--green);font:15px/1.5 Arial,Helvetica,sans-serif;cursor:pointer}
.subject-toggle{margin-top:auto}
.subject-toggle::after{content:"";width:7px;height:7px;flex-shrink:0;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.subject-toggle[aria-expanded=true]{background:#e8eedd}
.subject-toggle[aria-expanded=true]::after{transform:translateY(2px) rotate(225deg)}
.subject-toggle:hover,.subject-close:hover,.subject-return:hover{background:#e8eedd}
.subject-toggle[hidden],.subject-detail[hidden],.subject-close[hidden],.subject-return[hidden]{display:none}
.subject-detail{min-width:0;margin-top:30px;padding:27px 0 24px;border-block:1.5px solid #91a48d;scroll-margin-top:28px}
.subject-detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.subject-detail-heading h3{--letter-size:30px;font-weight:400;line-height:1.6;min-width:0;margin:0}
.subject-detail-heading h3:focus{outline:none}
.subject-detail-heading h3:focus-visible{outline:2px solid #6c8d73;outline-offset:5px}
.subject-close{flex-shrink:0;font-size:14px}
.subject-close span{font-size:22px;line-height:1}
.subject-detail p,.subject-detail li,.subject-detail dd{font:15px/1.85 Arial,Helvetica,sans-serif;color:var(--muted);overflow-wrap:break-word}
.subject-detail-intro{max-width:79ch;margin-top:19px!important;font-size:16px!important;color:var(--ink)!important}
.subject-detail h4{margin:27px 0 10px;font:600 17px/1.5 Arial,Helvetica,sans-serif;color:var(--ink)}
.subject-practice ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 28px;margin:0;padding:0;list-style:none}
.subject-practice li{padding-left:14px;border-left:2px solid #a9b99f}
.subject-detail .subject-practice-note{margin-top:18px;max-width:88ch}
.subject-grade-note{max-width:78ch}
.subject-grade-bands{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 28px;margin-top:20px}
.subject-grade-bands section{min-width:0;border-top:1px solid #b6c3ac;padding-top:13px}
.subject-grade-bands h5{font:600 16px/1.5 Arial,Helvetica,sans-serif;color:var(--green);margin:0 0 8px}
.subject-grade-bands .grade-focus{font-weight:600;color:var(--ink);margin-bottom:6px}
.subject-example{margin-top:25px;padding:1px 0 1px 17px;border-left:3px solid #b9a565}
.subject-example h4{margin-top:0}
.subject-example p{max-width:85ch}
.subject-research dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:21px 32px;margin:0}
.subject-research dt{font:600 15px/1.65 Arial,Helvetica,sans-serif;margin-bottom:5px;color:var(--ink)}
.subject-research dd{margin:0}
.subject-evidence>p{max-width:88ch}
.subject-evidence .subject-evidence-note{font-size:14px;margin-top:12px}
.subject-sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 30px;list-style:none;padding:0;margin:17px 0 0}
.subject-sources li{font-size:14px}
.subject-sources a{display:inline-block;padding-block:3px;text-decoration:underline;text-underline-offset:4px;text-decoration-color:#91a48d}
.subject-sources a:hover{text-decoration-color:var(--green)}
.subject-return{margin-top:24px}
.lesson-routine{display:block;list-style:decimal;margin:26px 0 0;padding:19px 0 19px 24px;border-block:1px solid #b6c3ac;font:700 20px/1.65 Arial,Helvetica,sans-serif;color:var(--green)}
.lesson-routine li{display:list-item;padding-left:4px;margin-bottom:9px}
.lesson-routine li:last-child{margin-bottom:0}
@media(max-width:740px){.lesson-routine{font-size:18px}}
@media(max-width:359px){.lesson-routine{font-size:17px}}
.approach-learning-note{font:14px/1.8 Arial,Helvetica,sans-serif;color:var(--muted);max-width:80ch;margin-top:15px}
.approach-learning-note a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:740px){
 .subject-summary>p{margin-bottom:12px}
 .subject-toggle{margin-top:0}
 .subject-detail-heading{flex-wrap:wrap;gap:10px 15px}
 .subject-detail-heading h3{--letter-size:26px;flex:1 1 200px}
 .subject-close{min-height:40px;padding:6px 10px}
 .subject-practice ul,.subject-grade-bands,.subject-research dl,.subject-sources{grid-template-columns:1fr}
 .subject-practice ul{gap:16px}
 .subject-detail{padding-top:22px}
 .subject-detail h4{margin-top:23px}
 .subject-detail .subject-example h4{margin-top:0}
 .subject-detail p,.subject-detail li,.subject-detail dd{line-height:1.8}
 .subject-grade-bands{gap:20px}
 .subject-example{padding-left:13px}
}

/* The same subject panels follow their own summaries when the cards stack. */
.subject-item{display:contents}
.subject-summary{grid-column:var(--subject-column);grid-row:1}
.subject-detail{grid-column:1/-1}
.subject-list{row-gap:0}
.approach-copy>p{margin-top:14px}
.approach-copy .lesson-routine{margin-top:18px;padding:0 0 0 24px;border:0;max-width:680px}
@media(max-width:740px){
 .subject-list{row-gap:25px}
 .subject-item{display:block;min-width:0}
 .subject-summary{grid-column:auto;grid-row:auto}
 .subject-item .subject-detail{margin-top:21px}
 .approach-copy .lesson-routine{margin-top:17px}
}

.approach-copy .framework-note{margin-top:22px;padding-left:0;border:0;font-size:15px;line-height:1.8}
.framework-note a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:#91a48d}
.approach-copy .approach-feedback{margin-top:18px}

/* The portrait prompt is one handwritten instruction; the bulb closes the page. */
.portrait-prompt{display:block;text-align:center;--letter-size:16px;color:var(--green)}
.portrait-prompt>svg{display:inline-block;vertical-align:middle;margin-left:8px}
.hero-action .hero-duration{margin:0;font:14px/1.6 Arial,Helvetica,sans-serif;color:#6f746e}
.approach{display:block}
.page-light{display:flex;justify-content:center;padding:8px 0 30px}
.page-light .light-control{width:110px;height:216px;margin:0;flex:none}

/* Five equal spaces: both page edges and the three drawn dividers. */
.header.wrap{width:100%}
.header nav{gap:0;--letter-size:20px;font-size:20px;justify-content:space-evenly}
.header nav::before,.header nav::after{content:"";flex:1 1 0;min-width:0}
.header nav a{flex:0 0 auto;min-height:48px;justify-content:center}
.nav-divider{display:flex;flex:1 1 0;min-width:0;align-items:center;justify-content:center;color:var(--green);align-self:stretch}
.nav-divider svg{width:8px;height:26px;flex:none}
@media(max-width:740px){
 .header nav{gap:0;--letter-size:clamp(15px,4.3vw,18px);font-size:clamp(15px,4.3vw,18px)}
 .nav-divider svg{height:22px}
}

/* The open menu is drawn too; no operating-system select menu. */
.package-select-wrap{position:relative;display:block;margin-left:auto}
.package-trigger{display:flex;align-items:center;justify-content:space-between;gap:20px;min-width:158px;min-height:48px;padding:10px 14px;background:var(--paper);color:var(--green);cursor:pointer;--letter-size:19px}
.package-chevron{width:16px;height:12px;flex:none}
.package-trigger[aria-expanded=true] .package-chevron{transform:rotate(180deg)}
.package-options{position:absolute;top:calc(100% + 8px);right:0;width:250px;max-width:calc(100vw - 48px);padding:7px;background:#fffef4;box-shadow:1px 5px 12px #334b3926;z-index:20}
.package-options[hidden],[data-package-label][hidden]{display:none}
.package-option{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:48px;padding:10px 12px;border:0;background:transparent;color:var(--green);text-align:left;cursor:pointer;--letter-size:18px}
.package-option-rate{white-space:nowrap;font:14px/1.5 Arial,Helvetica,sans-serif}
.package-option[aria-selected=true]{background:#e3ead9}
.package-option:hover,.package-option:focus-visible{background:#edf0df;outline:none}


/* Original compact rows, with five closely grouped duration lines between them. */
.compact-ranges{display:none}
@media(max-width:959px){
 .horizontal-experience{display:none}
 .vertical-experience{display:block;margin-top:20px}
 .compact-timeline{position:relative;padding-bottom:8px}
 .compact-timeline[data-ranges-ready=true]>.compact-ranges{display:block}
 .compact-ranges{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
 .compact-events{list-style:none;margin:0;padding:0;position:relative;z-index:1}
 .compact-event{display:grid;grid-template-columns:minmax(0,1.3fr) 10px minmax(95px,1fr);column-gap:10px;align-items:start;min-width:0;min-height:68px;padding-block:12px}
 .compact-name{grid-column:1;grid-row:1;min-width:0;display:flex;gap:4px;align-items:center;line-height:1.5;color:var(--experience-color)}
 .compact-name h3{display:block;flex:0 1 auto;min-width:0;font-weight:400;--letter-size:18px;line-height:1.5}
 .compact-line-strip{grid-column:2;grid-row:1;width:10px;align-self:stretch}
 .compact-dates{grid-column:3;grid-row:1;font:14px/1.7 Arial,Helvetica,sans-serif;color:var(--muted);padding-top:2px;min-width:0;font-variant-numeric:tabular-nums;white-space:nowrap}
 .compact-dates time{white-space:nowrap}
 .compact-date-end{display:block}
 .compact-date-end .range-to{color:var(--muted)}
 .compact-detail{grid-column:1/-1;grid-row:2;font:14px/1.7 Arial,Helvetica,sans-serif;color:var(--ink);margin-top:10px;padding:10px 12px;border-left:2px solid var(--experience-color);background:var(--paper);position:relative;z-index:1}
}

/* The same double-stroke sketch border for all rectangular controls/paper boxes. */
:root{--sketch-box:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22300%22%20height%3D%2264%22%20viewBox%3D%220%200%20300%2064%22%20preserveAspectRatio%3D%22none%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%233c6049%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%205%20C76%203%20205%206%20295%204%20L296%2059%20C220%2061%2090%2057%204%2060%20C3%2042%205%2019%205%205%20Z%22%20stroke-width%3D%221.7%22%20vector-effect%3D%22non-scaling-stroke%22%2F%3E%3Cpath%20d%3D%22M3%207%20C90%206%20205%203%20297%206%20L294%2061%20C210%2058%2090%2062%203%2058%20L4%203%22%20stroke-width%3D%221%22%20opacity%3D%22.48%22%20vector-effect%3D%22non-scaling-stroke%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}
.subject-toggle,.subject-close,.subject-return,.package-trigger,.package-option,.handwriting-panel button:not(.handwriting-close),.handwriting-sample,.polaroid,.portrait-back{position:relative}
.handwriting-toggle,.handwriting-panel,.handwriting-panel button:not(.handwriting-close),.handwriting-sample,.subject-toggle,.subject-close,.subject-return,.package-trigger,.package-options,.polaroid,.portrait-back{border:0;border-radius:0}
:is(.handwriting-toggle,.handwriting-panel,.handwriting-presets button,.handwriting-actions button,.handwriting-sample,.subject-toggle,.subject-close,.subject-return,.package-trigger,.package-options,.package-option:focus-visible,.polaroid,.portrait-back)::before{content:"";position:absolute;inset:0;z-index:1;border:6px solid transparent;border-image-source:var(--sketch-box);border-image-slice:8;border-image-width:6px;border-image-repeat:stretch;pointer-events:none}
@media(max-width:959px){.header .handwriting-toggle{position:relative}}

/* Information stays beside its name; the duration strip contains only lines. */
.timeline-name{display:flex;align-items:center;gap:5px}
.timeline-name h3{min-width:0}
.experience-label-info{width:28px;height:28px;flex:none;vertical-align:middle}
.experience-label-info .experience-info{width:28px;height:28px}
.experience-label-info .timeline-dot,.experience-label-info .timeline-dot svg{width:16px;height:16px}
.experience-label-info .timeline-dot{box-shadow:none}
.experience-label-info:not([data-info-ready=true]){display:none}
@media(max-width:959px){
 .compact-name .experience-label-info{display:inline-flex;width:24px;height:24px;margin-left:0;vertical-align:middle}
 .compact-name .experience-info{width:24px;height:24px}
 .compact-name .experience-label-info:not([data-info-ready=true]){display:none}
}
@media(max-width:359px){.compact-name h3{--letter-size:17px}}

/* The reviewed river sits directly on the existing full-page grid paper. */
.river-experience{max-width:700px;margin-top:24px;min-width:0}
.river-choices{display:flex;flex-wrap:wrap;gap:12px 14px;align-items:stretch}
.river-choice{position:relative;display:inline-flex;flex:1 1 auto;align-items:center;max-width:100%;min-width:0;transition:opacity .15s}
.river-choice>.link-outline{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.river-select{flex:1 1 auto;border:0;background:none;color:inherit;text-align:left;padding:10px 5px 10px 12px;min-height:44px;min-width:0;cursor:pointer;--letter-size:18px}
.river-select .handwritten{line-height:1.4}
.river-company{display:block;font:12px/1.4 Arial,sans-serif;color:var(--muted);margin-top:3px}
.river-choice-info{flex:none;width:32px;height:32px;margin:4px 7px 4px 0;border:1px solid currentColor;border-radius:50%;background:var(--paper);color:inherit;font:italic 14px Georgia,serif;cursor:pointer}
.river-experience[data-selected-experience]:not([data-selected-experience=""]) .river-choice:not([data-active=true]) .link-outline{opacity:.55}
.river-choice[data-active=true] .link-outline path{stroke-width:2.2}
.river-detail-panel{position:relative;margin-top:18px;padding:5px 38px 8px 0;color:var(--muted);font:15px/1.6 Arial,sans-serif;overflow-wrap:anywhere}
.river-detail-content h3{--letter-size:23px;color:var(--ink);font-weight:400;margin-bottom:6px}
.river-detail-content p+p{margin-top:5px}
.river-range{font-weight:600}
.river-clear{position:absolute;right:0;top:0;border:0;background:none;color:var(--green);font:26px Arial,sans-serif;width:36px;height:36px;cursor:pointer}
.river-choices[hidden],.river-detail-panel[hidden],.river-detail-content[hidden],.river-fallback[hidden]{display:none}
.river-fallback details{margin-bottom:15px;font:15px/1.6 Arial,sans-serif}
.river-diagram{display:none;position:relative;min-width:0;margin-top:18px}
.river-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.river-band-control,.river-date-control,.river-hit-area,.river-continuation{cursor:pointer}
.river-band-control:focus-visible{outline:none;filter:drop-shadow(0 0 2px var(--ink))}
.river-date-control:focus-visible{outline:none}
.river-date-control:focus-visible text{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.river-date-control:focus-visible circle{stroke:var(--ink);stroke-width:2px}
[data-river-ready=true] .river-diagram{display:block}
[data-experience-band],[data-boundary-roles]{transition:opacity .15s}
@media(max-width:599px){.river-choices{gap:10px}.river-select{--letter-size:15px;padding:9px 4px 9px 7px}.river-company{font-size:11px}.river-choice-info{margin-right:5px}}
@media(prefers-reduced-motion:reduce){.river-choice,[data-experience-band],[data-boundary-roles]{transition:none}}

/* Selected Support branches framework: alternatives stay adjacent at every width. */
.support-framework{margin-top:18px;color:var(--green)}
.fw-intro{font:16px/1.8 Arial,Helvetica,sans-serif;color:var(--muted);max-width:76ch}
.fw-ongoing{max-width:760px;margin:0 auto 32px;font:15px/1.75 Arial,Helvetica,sans-serif;color:var(--green);text-align:center}
.fw-ongoing h3{font:600 16px/1.5 Arial,Helvetica,sans-serif;margin:0 0 16px}.fw-ongoing>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.fw-ongoing p{margin:0;padding:18px 20px;background:#f0eee6;border-top:2px solid #aaa596}.fw-ongoing strong{display:block;margin-bottom:8px;font-weight:600}.fw-ongoing span{display:block;color:var(--muted)}
.fw-diagram{position:relative;padding:10px 26px 0 36px;isolation:isolate}
.fw-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:-1}
.fw-node{position:relative;min-width:0;padding:16px;background:#fffef7;color:#304e36;margin:0 0 46px}
.fw-node h3{--letter-size:23px;font-weight:400;line-height:1.5;margin:0 0 10px}
.fw-node p{font:15px/1.7 Arial,Helvetica,sans-serif;color:#52604d;margin:0}
.fw-support{background:#fffbed}.fw-question{background:#eff5eb}.fw-success{background:#e8f1df}
.fw-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}
.fw-tools>div{position:relative;min-width:0;padding:12px;background:#fffef8;font:15px/1.5 Arial,Helvetica,sans-serif}
.fw-tools small{display:block;font-size:14px;color:#5d6b54;margin-top:5px}
.fw-routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.fw-routes>div{min-width:0}.fw-routes .fw-node{padding:14px}.fw-routes h3{--letter-size:21px}.fw-routes p{font-size:14px;line-height:1.7;overflow-wrap:anywhere}
.fw-route-label{display:block;font:600 14px/1.5 Arial,Helvetica,sans-serif;color:#496342;margin-bottom:10px}
.fw-next-focus{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;margin-bottom:46px}
.fw-next-focus>div{display:flex}.fw-next-focus .fw-node{flex:1;margin-bottom:0}
.fw-end{text-align:center;margin-bottom:0;padding:14px}.fw-end h3{margin:0}
.fw-feedback{font:14px/1.7 Arial,Helvetica,sans-serif;color:#896522;margin:12px 0 0}
.fw-legend{display:flex;gap:12px 20px;flex-wrap:wrap;margin-top:18px;font:13px/1.6 Arial,Helvetica,sans-serif;color:#66755d}
.fw-legend span{display:inline-flex;align-items:center;gap:8px}.fw-legend i{display:block;width:25px;border-top:2.2px solid #6c8763}.fw-legend .fw-return{border-color:#b48b38}.fw-legend .fw-time{border-color:#6c8763}
:is(.fw-node,.fw-tools>div, .fw-section>summary)::before{content:"";position:absolute;inset:0;z-index:1;border:6px solid transparent;border-image-source:var(--sketch-box);border-image-slice:8;border-image-width:6px;border-image-repeat:stretch;pointer-events:none}
@media(max-width:740px){
 .fw-ongoing>div{grid-template-columns:1fr;gap:12px}.fw-ongoing p{padding:16px 18px}.fw-intro{font-size:15px}
 .fw-diagram{padding-left:22px;padding-right:18px}.fw-node{padding:14px}.fw-node h3{--letter-size:21px}.fw-routes{gap:10px}.fw-routes .fw-node{padding:11px}.fw-routes h3{--letter-size:19px}.fw-route-label{font-size:13px}.fw-tools>div{font-size:14px;padding:11px}.fw-tools small{font-size:13px}
}
@media(max-width:400px){
 .support-framework{margin-inline:-10px}.fw-diagram{padding-left:20px;padding-right:16px}.fw-routes{gap:8px}.fw-routes .fw-node{padding:10px}.fw-routes h3{--letter-size:18px}.fw-tools{gap:8px}.fw-tools>div{padding:10px}.fw-route-label{font-size:12px}.fw-node p{font-size:14px}.fw-legend{font-size:12px;gap:8px 14px}
}
@media(max-width:740px){.fw-next-focus{gap:8px}.fw-next-focus .fw-node{padding:10px 8px}.fw-next-focus h3{--letter-size:17px}.fw-next-focus p{font-size:13px;line-height:1.65}}

/* Native phase disclosures: the current idea starts open, later phases closed. */
.fw-section{margin:0 0 36px;scroll-margin-top:28px;min-width:0}
.fw-section>summary{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:12px 16px;background:#f0f5e9;color:var(--green);--letter-size:22px;cursor:pointer;list-style:none}
.fw-section>summary::-webkit-details-marker{display:none}
.fw-section>summary>span{min-width:0}.fw-section>summary>svg{flex:none;transition:transform .15s}
.fw-section[open]>summary>svg{transform:rotate(180deg)}
.fw-section>summary:focus-visible{outline:3px solid #6c8d73;outline-offset:4px}
.fw-section-content{padding-top:30px;display:flow-root}
.fw-section-content>.fw-node:last-child{margin-bottom:24px}
@media(max-width:740px){.fw-section>summary{--letter-size:20px;padding:12px;gap:10px}}
@media(prefers-reduced-motion:reduce){.fw-section>summary>svg{transition:none}}

/* Prices first; the longer explanations are optional native disclosures. */
.pricing-columns{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr);gap:46px;margin-top:24px;align-items:start}
.pricing-columns>.individual-offer,.pricing-columns>.group-offer{min-width:0;margin:0;padding:0;border:0}
.pricing-columns .individual-rates{gap:20px;margin-top:20px;padding-top:0;border-top:0;padding-bottom:20px}
.pricing-columns .individual-rates article+article{padding-left:20px}
.pricing-columns .hourly-price{gap:10px}
.intro-scope{font:13px/1.6 Arial,Helvetica,sans-serif;color:var(--muted);margin-top:10px}
.pricing-columns .package-selector{margin-top:18px}.pricing-columns .package-label{display:block}.pricing-columns .package-select-wrap{margin:8px 0 0}
.pricing-columns .package-terms{font-size:13px;line-height:1.65;max-width:30ch}
.pricing-columns .group-rates{margin-top:20px;width:100%}.pricing-columns .group-rates thead th{font-size:13px}
.pricing-details{margin-top:12px;min-width:0;max-width:none}
.pricing-details>summary{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:10px 12px;color:var(--green);background:#fffef6a8;--letter-size:18px;cursor:pointer;list-style:none}
.pricing-details>summary::-webkit-details-marker{display:none}.pricing-details>summary>span:last-child{font:22px/1 Arial,Helvetica,sans-serif;flex:none}
.pricing-details[open]>summary>span:last-child{transform:rotate(45deg)}
.pricing-details>summary:focus-visible{outline:3px solid #6c8d73;outline-offset:4px}
.pricing-details>summary::before{content:"";position:absolute;inset:0;z-index:1;border:6px solid transparent;border-image-source:var(--sketch-box);border-image-slice:8;border-image-width:6px;border-image-repeat:stretch;pointer-events:none}
.pricing-details>div{padding:4px 8px 8px}.pricing-details p,.pricing-details .rate-terms,.pricing-details .frequency-note{font:14px/1.8 Arial,Helvetica,sans-serif;color:var(--muted);margin-top:12px;max-width:none}
@media(max-width:740px){
 .pricing-columns{grid-template-columns:1fr;gap:32px}.pricing-columns .individual-rates{gap:20px;padding-block:0 20px}
 .pricing-columns .individual-rates article+article{padding:20px 0 0}.pricing-columns .intro-scope{grid-column:1/-1;margin-top:-8px}
 .pricing-columns .package-selector{margin-top:0}.pricing-columns .package-label{display:flex}.pricing-columns .package-select-wrap{margin:0 0 0 auto}.pricing-columns .package-terms{max-width:none;margin-top:0}
 .pricing-details>summary{--letter-size:17px}
}

/* Shared mode and length controls, with one price panel visible at a time. */
.pricing-calculator{max-width:800px;margin-top:24px}
.pricing-controls{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px 30px;margin-bottom:14px}
.pricing-controls[hidden],.pricing-duration-note[hidden],.pricing-fallback[hidden],.bundle-total[hidden]{display:none}
.pricing-mode,.duration-options{position:relative;display:flex;min-width:0;background:#fffef6;isolation:isolate}
.pricing-mode::before,.duration-options::before{content:"";position:absolute;inset:0;z-index:1;border:6px solid transparent;border-image-source:var(--sketch-box);border-image-slice:8;border-image-width:6px;border-image-repeat:stretch;pointer-events:none}
.pricing-mode button,.duration-options button{position:relative;border:0;background:transparent;color:var(--green);padding:12px 18px;min-height:48px;--letter-size:20px;cursor:pointer;min-width:0}
.pricing-mode button+button,.duration-options button+button{border-left:1.5px solid #5b7b6259}
.pricing-mode [aria-selected=true],.duration-options [aria-pressed=true]{background:#e3ecd8;box-shadow:inset 0 -3px #56734e}
.duration-control>span{display:block;font:14px/1.5 Arial,Helvetica,sans-serif;color:var(--muted);margin-bottom:7px}
.duration-options button{--letter-size:18px;padding:12px 14px}
.pricing-duration-note,.pricing-fallback{font:14px/1.7 Arial,Helvetica,sans-serif;color:var(--muted);margin:0 0 22px}
.pricing-panels{display:block}
[data-pricing-ready=true] .pricing-panels{display:grid}
[data-pricing-ready=true] .pricing-panel{grid-area:1/1}
.pricing-panel[aria-hidden=true]{display:none}
.pricing-panel{min-width:0;margin:0;padding:0;border:0;align-self:start}
.pricing-panel h3{margin:0}.pricing-panel .individual-rates{gap:30px;margin-top:22px;padding-block:0 22px;border-top:0}
.pricing-panel .rate-card{display:block;min-width:0}
.pricing-panel .rate-card+.rate-card{padding-left:28px}
.pricing-panel .hourly-price{margin:15px 0 0;gap:10px;--letter-size:42px}
.lesson-total,.bundle-total{font:14px/1.7 Arial,Helvetica,sans-serif;color:var(--muted);margin-top:8px;font-variant-numeric:tabular-nums}
.pricing-panel .intro-scope{font:13px/1.65 Arial,Helvetica,sans-serif;color:var(--muted);margin-top:14px}
.pricing-panel .package-selector{max-width:100%;margin-top:20px}
.pricing-panel .package-label{display:block;font-size:14px}.pricing-panel .package-select-wrap{margin:7px 0 0}
.pricing-panel .package-terms{font-size:13px;line-height:1.7;margin-top:12px}
.pricing-panel .group-short-note{font:14px/1.7 Arial,Helvetica,sans-serif;color:var(--muted);margin-top:10px}
.group-comparison{width:100%;margin-top:18px}
.group-comparison th:first-child{width:17%;white-space:nowrap}
.group-comparison th:not(:first-child),.group-comparison td{width:41.5%;text-align:right}
.group-comparison .group-hourly{display:flex;justify-content:flex-end;align-items:baseline;gap:6px;--letter-size:29px;font-weight:400;color:var(--green)}
.group-hourly>span:last-child{font:13px/1.5 Arial,Helvetica,sans-serif;color:var(--muted)}
.group-comparison .lesson-total{font-size:13px;margin-top:5px;font-weight:400}
.pricing-panel+.pricing-panel{margin-top:32px}
[data-pricing-ready=true] .pricing-panel+.pricing-panel{margin-top:0}
@media(max-width:740px){
 .pricing-controls{gap:18px;align-items:stretch}.pricing-mode{width:100%}.pricing-mode button{flex:1;padding:12px 10px;--letter-size:19px}
 .duration-control{width:100%}.duration-options button{flex:1;padding:12px 10px;--letter-size:18px}
 .pricing-panel .individual-rates{grid-template-columns:1fr;gap:22px;margin-top:20px}
 .pricing-panel .rate-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:start}
 .pricing-panel .rate-card+.rate-card{padding:20px 0 0}.pricing-panel .rate-card h4{--letter-size:20px;padding-top:4px}
 .pricing-panel .hourly-price{margin:0;--letter-size:34px}.pricing-panel .rate-amount{text-align:right}.lesson-total{font-size:14px;margin-top:5px}
 .pricing-panel .intro-scope,.pricing-panel .package-selector,.pricing-panel .package-terms,.pricing-panel .package-fallback,.pricing-panel .bundle-total{grid-column:1/-1}
 .pricing-panel .intro-scope{margin-top:0}.pricing-panel .package-label{display:flex}.pricing-panel .package-select-wrap{margin:0 0 0 auto}
 .pricing-panel .package-selector{margin-top:8px}.pricing-panel .package-terms{margin-top:0}.bundle-total{margin:0}
 .group-comparison th,.group-comparison td{padding:13px 4px}.group-comparison thead th{font-size:13px;line-height:1.5}
 .group-comparison th:first-child{width:15%}.group-comparison .group-hourly{--letter-size:24px;gap:3px}.group-comparison .lesson-total{font-size:12px}.group-hourly>span:last-child{font-size:12px}
}
@media(max-width:359px){.group-comparison .group-hourly{--letter-size:21px}.pricing-panel .rate-card h4{--letter-size:19px}.group-comparison thead th{font-size:12px}}

/* Matching offer cards, explicit purchase totals, and a quieter mode change. */
.pricing-panel .rate-amount{min-width:0}
.discount-comparison{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font:13px/1.6 Arial,Helvetica,sans-serif;color:var(--muted);margin:12px 0 6px}
.discount-label{color:var(--green);font-weight:600}.discount-comparison s{text-decoration-thickness:1px}
.pricing-panel .discount-comparison+.hourly-price{margin-top:0}
.purchase-total{font:14px/1.7 Arial,Helvetica,sans-serif;font-variant-numeric:tabular-nums;color:var(--green);margin-top:6px;font-weight:700;text-decoration:none}
.purchase-total[hidden],[data-group-calculator][hidden],[data-group-fallback][hidden],.group-price-variant[hidden]{display:none}
.lesson-total.is-total{font-weight:700;color:var(--green);text-decoration:none}
.rate-amount .bundle-total{margin-top:6px;grid-column:auto}
.group-size-control{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-top:20px;font:14px/1.7 Arial,Helvetica,sans-serif;color:var(--muted)}
.group-size-options{position:relative;display:flex;background:var(--paper);isolation:isolate}
.group-size-options::before{content:"";position:absolute;inset:0;z-index:1;border:6px solid transparent;border-image-source:var(--sketch-box);border-image-slice:8;border-image-width:6px;border-image-repeat:stretch;pointer-events:none}
.group-size-options button{border:0;background:transparent;min-height:46px;min-width:52px;padding:10px 17px;color:var(--green);--letter-size:19px;cursor:pointer}
.group-size-options button+button{border-left:1.5px solid #5b7b6259}
.group-size-options [aria-pressed=true]{background:#e3ecd8;box-shadow:inset 0 -3px #56734e}
.pricing-mode button,.duration-options button,.group-size-options button{transition:background-color .16s,box-shadow .16s}
@media(max-width:740px){
 .pricing-panel .rate-card{grid-template-columns:minmax(72px,1fr) minmax(0,1.65fr)}
 .pricing-panel .rate-card h4{padding-top:5px}.pricing-panel .rate-amount .hourly-price{justify-content:flex-end;--letter-size:31px}
 .discount-comparison{justify-content:flex-end;margin-top:0;gap:3px 8px;font-size:12px}
 .purchase-total{font-size:14px}.group-size-control{display:block}.group-size-options{margin-top:8px;max-width:100%}.group-size-options button{flex:1;padding-inline:12px}
 .pricing-panel .rate-amount .hourly-price+.lesson-total{margin-top:7px}
}
@media(prefers-reduced-motion:reduce){.pricing-mode button,.duration-options button,.group-size-options button{transition:none}}

/* Keep related controls compact, with labels beside their choices. */
.pricing-calculator{max-width:none}
.pricing-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"mode length" "group group";gap:14px 28px;align-items:start;margin-bottom:24px}
.pricing-controls:has([data-group-control][hidden]){grid-template-areas:"mode length"}
.pricing-mode{grid-area:mode;justify-self:start}
.duration-control{grid-area:length;display:flex;align-items:center;gap:12px;width:auto}
.duration-control>span{margin:0;flex:none}
.group-size-control{grid-area:group;display:flex;align-items:center;gap:12px;margin:0;justify-self:start}
.group-size-control>span{flex:none}
.duration-options,.group-size-options{margin:0;min-width:0}
.group-size-control[hidden]{display:none}
.pricing-panel .group-short-note{margin:0 0 8px;font-size:14px}
.pricing-panel .group-short-note+.individual-rates{margin-top:0}
.pricing-panel.group-offer .individual-rates{margin-top:12px}
@media(max-width:740px){
 .pricing-controls{grid-template-columns:minmax(0,1fr);grid-template-areas:"mode" "group" "length";gap:14px}
 .pricing-controls:has([data-group-control][hidden]){grid-template-areas:"mode" "length"}
 .pricing-mode{width:100%}
 .duration-control,.group-size-control{width:100%;display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;justify-self:stretch}
 .duration-options,.group-size-options{width:100%;max-width:none}
 .duration-options button{padding-inline:6px;--letter-size:17px}
 .group-size-options button{min-width:0;padding-inline:8px;flex:1}
}

/* Keep the introduction stacked while the experience section uses the wider sheet. */
@media(min-width:960px){
 .hero{display:flex;flex-direction:column;gap:30px;padding-block:44px 24px;align-items:center}
 .hero-copy{text-align:center}
 .hero .intro{margin:20px auto 0;max-width:620px}
 .hero-action{align-items:center}
 .hero-photo{width:calc(100% - 24px);max-width:380px}
 .hero:has(.portrait-card[open]:not(.portrait-ready)) .hero-copy{grid-column:1/-1;text-align:center}
 .hero:has(.portrait-card[open]:not(.portrait-ready)) .intro{margin-inline:auto;max-width:620px}
 .hero:has(.portrait-card[open]:not(.portrait-ready)) .hero-action{align-items:center}
 .hero-photo:has(.portrait-card[open]:not(.portrait-ready)){grid-column:1/-1;grid-row:2}
 .river-experience[data-river-ready=true]{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.5fr);align-items:start;gap:38px;max-width:none}
 .river-sidebar{min-width:0}
 .river-sidebar .river-choices{gap:12px}
 .river-sidebar .river-choice{flex-basis:100%}
 .river-sidebar .river-select{--letter-size:19px;padding-block:12px}
 .river-diagram{margin-top:0}
 .river-detail-panel{font-size:14px;line-height:1.8}
}

/* Adjacent, unlabelled visual toggles retain explicit accessible names. */
.pricing-controls{grid-template-columns:max-content max-content;justify-content:start;column-gap:20px}
.duration-control{display:block}
.duration-control>.sr-only,.group-size-control>.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}
.group-size-control{display:block}
@media(max-width:740px){
 .pricing-controls{grid-template-columns:minmax(0,1fr);column-gap:0}
 .duration-control,.group-size-control{display:block;width:100%}
}

/* A reachable light and physical pull cord at the beginning of the sheet. */
.top-light{display:flex;justify-content:center;padding:0 0 8px}
.top-light .light-control{width:94px;height:190px;margin:0;flex:none}
.top-light .bulb-mechanism{transform:scale(.55)}
.top-light .bulb-fixture{pointer-events:auto}
.top-light .pull-chain{width:84px;left:43px}
.top-light .chain-graphic{margin-left:6px}
.top-light .cord-label{left:-8px;top:242px;color:var(--green)}
@media(min-width:1200px){.top-light{position:absolute;top:110px;right:24px;width:94px;margin:0;padding:0;z-index:3}}

/* Dark grid paper, without filtering the portrait or sticker artwork. */
:root[data-theme=dark]{
 color-scheme:dark;--paper:#18221e;--ink:#e3e9df;--muted:#b6c4b8;--green:#b1d4b5;--rule:#46594b;
 --page-grid:linear-gradient(to right,#9abfa124 1px,transparent 1px),linear-gradient(to bottom,#9abfa124 1px,transparent 1px);
 --theme-surface:#202e26;--theme-selected:#344d39;
 --annotation-underline:#accd9a;--annotation-highlight:#b49d4d55;--annotation-circle:#b7cb94;--annotation-bracket:#b7cb94;--annotation-box:#b1d4b5;
 --route-forward:#accd9a;--route-return:#e0b96a;--route-time:var(--route-forward);
}
:root[data-theme=dark] :is(.button,.pricing-mode,.duration-options,.group-size-options,.package-trigger,.package-options,.handwriting-toggle,.handwriting-panel,.subject-toggle,.subject-close,.subject-return,.pricing-details>summary){background:var(--theme-surface);color:var(--green)}
:root[data-theme=dark] :is(.button:hover,.subject-toggle:hover,.subject-close:hover,.subject-return:hover,.package-option:hover,.package-option:focus-visible,.handwriting-toggle:hover){background:var(--theme-selected)}
:root[data-theme=dark] :is(.pricing-mode [aria-selected=true],.duration-options [aria-pressed=true],.group-size-options [aria-pressed=true],.package-option[aria-selected=true],.subject-toggle[aria-expanded=true]){background:var(--theme-selected);box-shadow:inset 0 -3px #91b28b}
:root[data-theme=dark] :is(.pricing-mode button,.duration-options button,.group-size-options button)+button{border-left-color:#8cab8770}
:root[data-theme=dark] .handwriting-panel{color:var(--ink);box-shadow:0 6px 28px #0006}
:root[data-theme=dark] .handwriting-panel button:not(.handwriting-close){background:var(--theme-surface);color:var(--green)}
:root[data-theme=dark] .handwriting-panel .handwriting-presets button[aria-pressed=true]{background:var(--theme-selected);color:var(--ink)}
:root[data-theme=dark] :is(.handwriting-description,.handwriting-field output,.handwriting-storage,.handwriting-close,.hero-action .hero-duration,.river-company){color:var(--muted)}
:root[data-theme=dark] :is(.handwriting-sample,.subject-doodle){--hw-color:var(--green)}
:root[data-theme=dark] .portrait-back,:root[data-theme=dark] .bio-fold{background:var(--theme-surface);color:var(--ink)}
:root[data-theme=dark] .bio-fold p{color:var(--muted)}
:root[data-theme=dark] .polaroid.portrait-front{color:#3c6049}
:root[data-theme=dark] .portrait-prompt{color:#3c6049}
:root[data-theme=dark] .fw-ongoing p{background:#252e29;color:var(--ink)}
:root[data-theme=dark] .fw-ongoing p{border-color:#6f906f}
:root[data-theme=dark] :is(.fw-legend,.fw-route-label){color:var(--muted)}
:root[data-theme=dark] .fw-feedback{color:#e0bd79}
:root[data-theme=dark] .fw-legend i{border-color:var(--route-forward)}
:root[data-theme=dark] .fw-legend .fw-return{border-color:var(--route-return)}
:root[data-theme=dark] .fw-legend .fw-time{border-color:var(--route-time)}
:root[data-theme=dark] .river-choice{color:var(--river-color)!important}
:root[data-theme=dark] .date-rail text{fill:var(--muted)}
:root[data-theme=dark] .date-rail>.river-date-control:last-child text{fill:#c69bf3}
:root[data-theme=dark] .date-rail>path{stroke:#7c9a83}
:root[data-theme=dark] .timeline-axis-break{stroke:var(--muted)}
:root[data-theme=dark] [data-guide-date]{stroke:#748477}
:root[data-theme=dark] .move-note{fill:var(--muted);stroke:var(--paper)}
:root[data-theme=dark] :is(a,button):focus-visible{outline-color:#b7dba5}
:root[data-theme=dark] .skip{background:var(--ink);color:var(--paper)}

:root[data-theme=dark]{--sketch-box:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22300%22%20height%3D%2264%22%20viewBox%3D%220%200%20300%2064%22%20preserveAspectRatio%3D%22none%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23b1d4b5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%205%20C76%203%20205%206%20295%204%20L296%2059%20C220%2061%2090%2057%204%2060%20C3%2042%205%2019%205%205%20Z%22%20stroke-width%3D%221.7%22%20vector-effect%3D%22non-scaling-stroke%22%2F%3E%3Cpath%20d%3D%22M3%207%20C90%206%20205%203%20297%206%20L294%2061%20C210%2058%2090%2062%203%2058%20L4%203%22%20stroke-width%3D%221%22%20opacity%3D%22.48%22%20vector-effect%3D%22non-scaling-stroke%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}

/* Center the overview; the two roles stay readable above the diagram. */
.approach-copy>h2{text-align:center}
.support-framework .fw-intro{max-width:62ch;text-align:center;margin:12px auto 28px}

/* Conditions belong to the paths; both phases use the same branch structure. */
.fw-branch>.fw-route-label{display:flex;align-items:center;justify-content:center;min-height:3em;margin:0 0 32px;text-align:center;line-height:1.5}
.fw-tools b{overflow-wrap:anywhere}

/* A restrained green/yellow framework; border weight distinguishes roles. */
.support-framework{
 --fw-heading:#304e36;--fw-body:#52604d;--fw-base-bg:#fffef7;
 --fw-check-bg:#eff5eb;--fw-support-bg:#fffbed;--fw-success-bg:#e8f1df;--fw-note-bg:#eff5eb;--fw-tool-bg:#fffef8;
 --fw-header-bg:#3c6049;--fw-header-ink:#fffef6;
 --fw-header-outline:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22300%22%20height%3D%2264%22%20viewBox%3D%220%200%20300%2064%22%20preserveAspectRatio%3D%22none%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%233c6049%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%205%20C76%203%20205%206%20295%204%20L296%2059%20C220%2061%2090%2057%204%2060%20C3%2042%205%2019%205%205%20Z%22%20stroke-width%3D%222.3%22%20vector-effect%3D%22non-scaling-stroke%22%20%2F%3E%3Cpath%20d%3D%22M3%207%20C90%206%20205%203%20297%206%20L294%2061%20C210%2058%2090%2062%203%2058%20L4%203%22%20stroke-width%3D%221.1%22%20opacity%3D%22.48%22%20vector-effect%3D%22non-scaling-stroke%22%20%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
 --fw-note-outline:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22300%22%20height%3D%2264%22%20viewBox%3D%220%200%20300%2064%22%20preserveAspectRatio%3D%22none%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23607b5c%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%205%20C76%203%20205%206%20295%204%20L296%2059%20C220%2061%2090%2057%204%2060%20C3%2042%205%2019%205%205%20Z%22%20stroke-width%3D%221.6%22%20vector-effect%3D%22non-scaling-stroke%22%20stroke-dasharray%3D%226%205%22%20%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
 --fw-tool-outline:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22300%22%20height%3D%2264%22%20viewBox%3D%220%200%20300%2064%22%20preserveAspectRatio%3D%22none%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%236a8061%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%205%20C76%203%20205%206%20295%204%20L296%2059%20C220%2061%2090%2057%204%2060%20C3%2042%205%2019%205%205%20Z%22%20stroke-width%3D%221.3%22%20vector-effect%3D%22non-scaling-stroke%22%20%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}
:root[data-theme=dark] .support-framework{
 --fw-heading:#d4e4ce;--fw-body:#bdcbbd;--fw-base-bg:#202e26;
 --fw-check-bg:#2e4432;--fw-support-bg:#38321f;--fw-success-bg:#354d34;--fw-note-bg:#2e4432;--fw-tool-bg:#202e26;
 --fw-header-bg:#203b29;--fw-header-ink:#edf5e8;
 --fw-header-outline:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22300%22%20height%3D%2264%22%20viewBox%3D%220%200%20300%2064%22%20preserveAspectRatio%3D%22none%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23b1d4b5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%205%20C76%203%20205%206%20295%204%20L296%2059%20C220%2061%2090%2057%204%2060%20C3%2042%205%2019%205%205%20Z%22%20stroke-width%3D%222.3%22%20vector-effect%3D%22non-scaling-stroke%22%20%2F%3E%3Cpath%20d%3D%22M3%207%20C90%206%20205%203%20297%206%20L294%2061%20C210%2058%2090%2062%203%2058%20L4%203%22%20stroke-width%3D%221.1%22%20opacity%3D%22.48%22%20vector-effect%3D%22non-scaling-stroke%22%20%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
 --fw-note-outline:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22300%22%20height%3D%2264%22%20viewBox%3D%220%200%20300%2064%22%20preserveAspectRatio%3D%22none%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23acc69f%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%205%20C76%203%20205%206%20295%204%20L296%2059%20C220%2061%2090%2057%204%2060%20C3%2042%205%2019%205%205%20Z%22%20stroke-width%3D%221.6%22%20vector-effect%3D%22non-scaling-stroke%22%20stroke-dasharray%3D%226%205%22%20%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
 --fw-tool-outline:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22300%22%20height%3D%2264%22%20viewBox%3D%220%200%20300%2064%22%20preserveAspectRatio%3D%22none%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%238fa88a%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%205%20C76%203%20205%206%20295%204%20L296%2059%20C220%2061%2090%2057%204%2060%20C3%2042%205%2019%205%205%20Z%22%20stroke-width%3D%221.3%22%20vector-effect%3D%22non-scaling-stroke%22%20%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}
.support-framework .fw-node{background:var(--fw-base-bg);color:var(--fw-heading)}
.support-framework .fw-node p,.support-framework .fw-tools small{color:var(--fw-body)}
.support-framework .fw-question{background:var(--fw-check-bg)}
.support-framework .fw-support{background:var(--fw-support-bg)}
.support-framework .fw-success{background:var(--fw-success-bg)}
.support-framework .fw-note{background:var(--fw-note-bg);--sketch-box:var(--fw-note-outline)}
.support-framework .fw-tools>div{background:var(--fw-tool-bg);color:var(--fw-heading);--sketch-box:var(--fw-tool-outline)}
.support-framework .fw-section>summary{background:var(--fw-header-bg);color:var(--fw-header-ink);--sketch-box:var(--fw-header-outline)}
.subjects:focus{outline:none}

/* Controls share short, quiet feedback; portrait and cord keep their own motion. */
:is(.subject-toggle,.subject-close,.subject-return,.package-trigger,.package-option,.pricing-mode button,.duration-options button,.group-size-options button,.river-select,.river-choice-info,.handwriting-toggle,.handwriting-panel button){transition:background-color 160ms ease,color 160ms ease,border-color 160ms ease,box-shadow 160ms ease,filter 160ms ease}
.subject-toggle::after,.package-chevron{transition:transform 200ms cubic-bezier(.16,1,.3,1)}
:is(.subject-toggle,.subject-close,.subject-return,.package-trigger,.package-option,.duration-options button,.group-size-options button,.button):active{filter:brightness(.95)}
.fw-section>summary>svg{transition:transform 220ms cubic-bezier(.16,1,.3,1)}
.fw-section[data-motion-open=false]>summary>svg{transform:none}
.fw-section[data-motion-open=true]>summary>svg{transform:rotate(180deg)}
.fw-wires{transition:opacity 100ms ease}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation:none!important;transition:none!important}
}

/* Clear reading hierarchy inside the framework; page headings retain their lettering. */
.support-framework{--fw-border:#a0b296;--fw-header-border:#607c57;--fw-tool-border:#c0ccb6}
:root[data-theme=dark] .support-framework{--fw-border:#6f8c67;--fw-header-border:#a8c79a;--fw-tool-border:#526c4c}
.support-framework .fw-ongoing{margin-bottom:28px;font-size:15px;line-height:1.65}
.support-framework .fw-ongoing>div{gap:24px;text-align:left}
.support-framework .fw-ongoing p{padding:0 0 0 16px;border:0;border-left:2px solid var(--fw-tool-border);background:none}
.support-framework .fw-ongoing strong{margin-bottom:6px}
:root[data-theme=dark] .support-framework .fw-ongoing p{background:none;border-color:var(--fw-tool-border)}
.support-framework .fw-diagram{max-width:840px;margin-inline:auto;padding:8px 28px 0}
.support-framework :is(.fw-node,.fw-tools>div,.fw-section>summary)::before{display:none}
.support-framework .fw-node{padding:18px 20px;margin-bottom:40px;border:1px solid var(--fw-border);border-radius:5px}
.support-framework .fw-node h3{font:600 18px/1.4 Arial,Helvetica,sans-serif;margin:0 0 8px;overflow-wrap:normal}
.support-framework .fw-node p{max-width:66ch;font:16px/1.65 Arial,Helvetica,sans-serif;overflow-wrap:normal}
.support-framework .fw-section{margin-bottom:32px}
.support-framework .fw-section>summary{padding:14px 18px;min-height:56px;border:1.5px solid var(--fw-header-border);border-radius:5px;font:600 19px/1.4 Arial,Helvetica,sans-serif}
.support-framework .fw-section-content{padding-top:28px}
.support-framework .fw-tools{gap:10px;margin-top:16px}
.support-framework .fw-tools>div{padding:12px 14px;border:1px solid var(--fw-tool-border);border-radius:3px;font:600 15px/1.45 Arial,Helvetica,sans-serif}
.support-framework .fw-tools small{font:400 15px/1.55 Arial,Helvetica,sans-serif;margin-top:4px}
.support-framework .fw-routes{gap:16px;align-items:stretch}
.support-framework .fw-branch{display:flex;flex-direction:column}
.support-framework .fw-branch>.fw-route-label{flex:none;min-height:2.8em;margin-bottom:24px;font-size:14px;line-height:1.4}
.support-framework .fw-branch>.fw-node{flex:1;padding:16px}
.support-framework .fw-routes h3{font-size:17px}
.support-framework .fw-routes p{font-size:15px}
.support-framework .fw-next-focus{margin-bottom:40px}
.support-framework .fw-next-focus .fw-node{margin-bottom:0;padding:14px}
.support-framework .fw-next-focus h3{font-size:16px}
.support-framework .fw-next-focus p{font-size:14px}
.support-framework .fw-note{border-style:dashed}
.support-framework .fw-end{margin-bottom:0;padding:14px}
.support-framework .fw-end h3{margin:0;font-size:16px}
@media(max-width:740px){
 .support-framework .fw-ongoing>div{gap:18px}
 .support-framework .fw-ongoing p{padding-left:14px}
 .support-framework .fw-diagram{padding-inline:16px}
 .support-framework .fw-node{padding:15px 14px}
 .support-framework .fw-node h3{font-size:17px}
 .support-framework .fw-routes{gap:10px}
 .support-framework .fw-branch>.fw-node{padding:13px 11px}
 .support-framework .fw-routes h3{font-size:16px}
 .support-framework .fw-routes p{font-size:15px;line-height:1.65}
 .support-framework .fw-tools>div{padding:11px 10px;font-size:15px}
 .support-framework .fw-tools small{font-size:15px}
 .support-framework .fw-section>summary{font-size:18px;padding:13px 14px}
 .support-framework .fw-next-focus{gap:8px}
 .support-framework .fw-next-focus .fw-node{padding:12px 8px}
 .support-framework .fw-next-focus h3{font-size:15px}
 .support-framework .fw-next-focus p{font-size:14px;line-height:1.6}
}
@media(max-width:400px){
 .support-framework .fw-diagram{padding-inline:14px}
 .support-framework .fw-routes{gap:8px}
 .support-framework .fw-branch>.fw-node{padding:12px 9px}
 .support-framework .fw-branch>.fw-route-label{font-size:14px;min-height:2.8em}
 .support-framework .fw-next-focus{gap:6px}
 .support-framework .fw-next-focus .fw-node{padding:12px 6px}
}

/* Read the return condition in the route, beneath its originating card. */
.support-framework .fw-branch>.fw-return-label{align-self:flex-start;display:flex;align-items:center;justify-content:center;flex:none;max-width:calc(100% - 24px);min-height:36px;margin:-16px 0 24px;padding:3px 5px;background:var(--paper);color:#80611f;text-align:center;font:600 13px/1.4 Arial,Helvetica,sans-serif}
.support-framework .fw-branch>[data-return-for=independent]{align-self:flex-end}
.support-framework .fw-return-space{visibility:hidden}
:root[data-theme=dark] .support-framework .fw-return-label{color:#e0b96a}

/* Optional practice flows into independent work on one vertical reading line. */
.support-framework .fw-practice-flow>.fw-node{margin-bottom:0}
.support-framework .fw-practice-condition{display:flex;align-items:center;justify-content:center;min-height:2.8em;width:max-content;max-width:100%;margin:0 auto 24px;font-size:14px;line-height:1.4;text-align:center}
.support-framework .fw-practice-between,.support-framework .fw-independent-after{display:flex;align-items:center;justify-content:space-between;gap:36px;min-height:92px;padding:22px 0 26px}
.support-framework .fw-independent-after{min-height:84px;justify-content:flex-start}
.support-framework .fw-practice-flow .fw-return-label,.support-framework .fw-skip-condition{display:flex;align-items:center;justify-content:center;max-width:calc(50% - 18px);min-height:36px;margin:0;padding:3px 5px;background:var(--paper);text-align:center;font:600 13px/1.4 Arial,Helvetica,sans-serif}
.support-framework .fw-practice-flow .fw-return-label{color:#80611f}
.support-framework .fw-skip-condition{color:var(--green);font-size:14px}
:root[data-theme=dark] .support-framework .fw-practice-flow .fw-return-label{color:#e0b96a}

/* A compact lamp belongs to the header, with the same click/pull controls. */
.header{justify-content:flex-start;gap:16px;align-items:flex-start}
.header>.top-light{position:relative;inset:auto;display:block;flex:0 0 52px;width:52px;height:100px;margin:7px 0 0;padding:0;z-index:3}
.header .top-light .light-control{width:52px;height:100px;margin:0}
.header .top-light .bulb-mechanism{transform:scale(.28)}
.header .top-light .pull-chain{left:0;top:150px;width:170px;height:190px}
.header .top-light .chain-graphic{margin-left:49px}
.header .top-light .cord-label{display:none}
.header>nav{flex:1;min-width:0;width:auto}
@media(max-width:740px){
 .header.wrap{gap:12px;padding-block:8px}
 .header>nav{flex-wrap:wrap;justify-content:center;gap:0 12px;font-size:14px;--letter-size:14px}
 .header>nav .nav-divider{display:none}
 .header>nav a{min-height:44px}
}

/* The folded back is blank; fixed-size paper leaves turn down to reveal the text. */
.portrait-ready{isolation:isolate}
.portrait-ready .portrait-back{padding:0;background:transparent!important;box-shadow:none;border:0;overflow:visible;transform-style:preserve-3d}
.portrait-ready .portrait-back::before{display:none}
.portrait-ready .bio-folds{display:flex;flex-direction:column;width:var(--portrait-panel-width,100%);border:0;perspective:1800px;transform-style:preserve-3d}
.portrait-ready .bio-fold{position:relative;flex:none;width:100%;height:var(--portrait-panel-height,auto);min-width:0;padding:0;border:0;background:transparent!important;transform-style:preserve-3d;transform-origin:center top}
.portrait-ready .bio-fold>.bio-fold{position:absolute;top:100%;left:0}
.portrait-ready .bio-face,.portrait-ready .bio-fold::after{box-sizing:border-box;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#fffefa;border:1px solid #d4dacb;box-shadow:1px 3px 7px #332d2817}
.portrait-ready .bio-face{position:relative;height:100%;padding:18px 22px;overflow:hidden}
.portrait-ready .bio-fold::after{content:"";position:absolute;inset:0;transform:rotateX(180deg);pointer-events:none}
.portrait-ready .portrait-close{margin:0;padding:4px 0;min-height:36px}
.portrait-ready .bio-face h2{margin:10px 0 14px;--letter-size:25px}
.portrait-ready .bio-face p{font:14px/1.6 Arial,Helvetica,sans-serif;margin:0;color:#465548}
.portrait-ready .bio-face p+p{margin-top:12px}
:root[data-theme=dark] .portrait-ready .bio-face,:root[data-theme=dark] .portrait-ready .bio-fold::after{background:var(--theme-surface);border-color:#63765c}
:root[data-theme=dark] .portrait-ready .bio-face p{color:var(--muted)}
@media(min-width:960px){.hero-photo{width:380px;max-width:calc(100% - 28px)}}

/* Keep the introduction together above the portrait at every screen width. */
.hero-copy #hero-title{white-space:nowrap;--letter-size:clamp(30px,10.5vw,51px)}

/* Keep compact navigation quiet and let the active pricing panel determine its height. */
@media(max-width:959px){.header>nav .nav-divider{display:none}.header>nav{column-gap:clamp(12px,3vw,28px)}}
.pricing{padding-bottom:24px}
.pricing+.contact{padding-top:24px}
