/* Owner v2: floating banner titles, complete artwork and an editorial founders letter. */
.home-about-opening,.home-about-page{color:var(--ink);font-family:var(--sans)}
.home-about-scene{margin:0 auto;max-width:1600px}
.home-about-art{position:relative;isolation:isolate;aspect-ratio:16/9;overflow:hidden;background:var(--card)}
.home-about-art img,.home-about-art video{display:block;width:100%;height:100%;object-fit:contain}
.home-about-art video{position:absolute;inset:0;opacity:0;pointer-events:none}
.home-about-scene[data-playing] video{opacity:1}
.home-about-art::after{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(0deg,color-mix(in srgb,var(--scene-surface) 88%,transparent),transparent 68%)}
body[data-route] .home-about-art h1{position:absolute;z-index:2;left:var(--page-gutter);bottom:var(--space-10);margin:0;max-width:calc(100% - 2 * var(--page-gutter));font:550 clamp(36px,4.4vw,66px)/1.04 var(--sans);letter-spacing:-.04em;color:var(--scene-ink);text-shadow:0 1px 18px color-mix(in srgb,var(--scene-surface) 35%,transparent)}
body[data-route="about"] .home-about-art::after{background:linear-gradient(180deg,color-mix(in srgb,var(--scene-surface) 88%,transparent),transparent 62%)}
body[data-route="about"] .home-about-art h1{top:var(--space-10);bottom:auto;font-size:clamp(34px,3.8vw,56px)}
.home-about-caption{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-6);min-height:48px;margin-inline:auto;padding:var(--space-5) var(--page-gutter)}
.home-about-caption p{flex:1;font-size:16px;line-height:1.6;color:var(--ink-soft);margin:0}
.home-about-caption .button{flex:none;font-size:14px;min-height:48px;padding-inline:var(--space-6)}
.home-about-caption [data-study-motion]{flex:none;font:500 12px var(--sans);color:var(--ink-soft);padding:var(--space-3) 0;min-height:44px;border:0;background:transparent;cursor:pointer}
.home-about-caption [data-study-motion][hidden]{display:none!important}
body[data-route="about"] .home-about-caption{padding-block:0}
.home-about-opening :is(a,button):focus-visible,.home-about-page :is(a,button):focus-visible{outline:2px solid var(--focus);outline-offset:4px}
body[data-route="about"] .home-about-founders{display:grid;grid-template-columns:.9fr 1.1fr;align-items:start;gap:var(--space-16);padding-block:var(--space-16)}
.home-about-founders figure{position:sticky;top:calc(var(--hub-header-height,82px) + 24px);margin:0;min-width:0}
.home-about-founders img{display:block;width:100%;height:auto;border-radius:var(--radius-sm)}
.home-about-letter{max-width:62ch}
.home-about-letter p{font-size:16px;line-height:1.8;color:var(--ink-soft);margin:0 0 var(--space-5)}
.home-about-letter .letter-greeting{font-size:22px;line-height:1.5;color:var(--ink);margin-bottom:var(--space-6)}
.home-about-letter .letter-closing{margin-top:var(--space-8);color:var(--ink)}
.letter-signatures{width:min(100%,460px);margin:var(--space-6) 0 var(--space-3)}
.letter-signatures img{display:block;width:100%;height:auto;mix-blend-mode:multiply}
[data-theme="dark"] .letter-signatures img{filter:invert(1);mix-blend-mode:screen}
.home-about-letter .letter-role{font-size:12px;color:var(--ink-faint);margin:0}
@media(max-width:700px){body[data-route] .home-about-art h1{font-size:clamp(24px,6.7vw,30px);left:var(--space-4);bottom:var(--space-4);max-width:calc(100% - 32px)}body[data-route="about"] .home-about-art h1{font-size:clamp(22px,6vw,26px);top:var(--space-4);bottom:auto}.home-about-caption{flex-wrap:wrap;gap:var(--space-3) var(--space-4);padding-block:var(--space-4)}.home-about-caption p{flex-basis:100%;font-size:14px}.home-about-caption .button{font-size:13px;min-height:44px;padding:var(--space-3) var(--space-4)}.home-about-caption [data-study-motion]{font-size:11px;margin-left:auto}body[data-route="about"] .home-about-founders{grid-template-columns:minmax(0,1fr);gap:var(--space-8);padding-block:var(--space-8) var(--space-10)}.home-about-founders figure{position:static}.home-about-letter p{font-size:15px;line-height:1.75}.home-about-letter .letter-greeting{font-size:20px}}
@media(prefers-reduced-motion:reduce){.home-about-art video{display:none}}

/* Home v3: title stays visible in short viewports; compact product introduction. */
body[data-route="index"] .home-about-art::after{background:linear-gradient(180deg,color-mix(in srgb,var(--scene-surface) 82%,transparent),transparent 45%)}
body[data-route="index"] .home-about-art h1{top:var(--space-6);bottom:auto;font-size:clamp(28px,3.2vw,48px);line-height:1.08}
body[data-route="index"] .home-about-art h1 br{display:none}
.home-product-intro{padding-block:var(--space-12);color:var(--ink)}
body[data-route="index"] .home-product-intro h2{font:550 clamp(30px,3.2vw,44px)/1.12 var(--sans);letter-spacing:-.035em;margin:0 0 var(--space-8)}
.home-product-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--space-10);align-items:center}
.home-product-visual{margin:0;min-width:0}
.home-product-visual img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}
.home-product-visual [data-product-theme="dark"]{display:none}
html[data-theme="dark"] .home-product-visual [data-product-theme="light"]{display:none}
html[data-theme="dark"] .home-product-visual [data-product-theme="dark"]{display:block}
.home-product-visual figcaption{font-size:12px;line-height:1.5;color:var(--ink-faint);margin-top:var(--space-2)}
.home-product-copy ul{list-style:none;padding:0;margin:0}
.home-product-copy li+li{border-top:1px solid var(--line)}
.home-product-copy li a{display:block;padding-block:var(--space-4);min-height:48px}
.home-product-copy li a span{display:block;font-size:16px;font-weight:550;line-height:1.4;color:var(--ink)}
.home-product-copy li a small{display:block;font-size:14px;line-height:1.5;color:var(--ink-soft);margin-top:4px}
.home-product-copy li a:hover span{text-decoration:underline;text-underline-offset:4px}
.home-product-copy>.button{display:inline-flex;font-size:14px;min-height:48px;margin-top:var(--space-5)}
.home-product-intro a:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
@media(max-width:700px){body[data-route="index"] .home-about-art h1{top:var(--space-3);font-size:clamp(20px,5.5vw,28px);max-width:calc(100% - 32px)}body[data-route="index"] .home-about-art h1 br{display:block}.home-product-intro{padding-block:var(--space-8)}body[data-route="index"] .home-product-intro h2{margin-bottom:var(--space-5);font-size:30px}.home-product-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-5)}.home-product-copy li a{padding-block:var(--space-3)}.home-product-copy>.button{margin-top:var(--space-4)}}

/* Student reviews: floating type and star shadows, native swiping, no idle motion. */
.home-reviews{padding-block:var(--space-10) var(--space-12);color:var(--ink);font-family:var(--sans);overflow:hidden}
body[data-route="index"] .home-reviews h2{font:550 clamp(30px,3.2vw,44px)/1.12 var(--sans);letter-spacing:-.035em;text-align:center;margin:0 0 var(--space-4)}
.review-track{display:flex;gap:var(--space-6);overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding:var(--space-10) max(24px,calc((100% - min(680px,52vw))/2)) var(--space-12);scrollbar-width:none;touch-action:pan-x pan-y pinch-zoom}
.review-track::-webkit-scrollbar{display:none}
.review-card{box-sizing:border-box;flex:0 0 min(680px,52vw);max-width:none;margin:0;padding:var(--space-12) var(--space-10);background:transparent;border:0;border-radius:0;box-shadow:none;text-align:center;scroll-snap-align:center;scroll-snap-stop:always;transition:transform 280ms cubic-bezier(.2,.8,.2,1)}
.review-stars{display:flex;justify-content:center;gap:var(--space-2);color:var(--accent);margin-bottom:var(--space-6)}
.review-stars svg{width:28px;height:28px;fill:currentColor}
.home-reviews blockquote{margin:0 auto var(--space-8);padding:0;border:0;max-width:25ch;font:500 clamp(24px,2.8vw,36px)/1.3 var(--sans);letter-spacing:-.025em;color:var(--ink)}
.home-reviews figcaption{font:550 16px/1.5 var(--sans);color:var(--ink)}
.review-language{font:400 12px/1.5 var(--sans);color:var(--ink-soft);margin:var(--space-2) 0 0}
.review-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-5)}
.review-controls[hidden]{display:none!important}
.review-controls [data-review-dot]{width:32px;height:32px;padding:0;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--ink);cursor:pointer}
.review-controls [data-review-dot] span{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.35;transition:opacity 180ms ease,transform 180ms ease}
.review-controls [data-review-dot][aria-current="true"] span{opacity:1;transform:scale(1.35)}
.review-controls [data-review-dot]:focus-visible{outline:2px solid var(--ink);outline-offset:0}

.home-reviews :is(button,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:-3px}
.review-track[data-dragging]{cursor:grabbing;scroll-snap-type:none;user-select:none}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.review-card:hover{transform:translateY(-5px)}.review-track[tabindex]{cursor:grab}}
@media(max-width:700px){.home-reviews{padding-block:var(--space-8)}.review-card{padding:var(--space-8) var(--space-6)}.review-track{padding-block:var(--space-6) var(--space-8)}.review-stars svg{width:24px;height:24px}}
@media(prefers-reduced-motion:reduce){.review-card{transition:none}}

/* Shadows belong to the lettering and stars, never a surrounding panel. */
.home-reviews{--review-shadow:color-mix(in srgb,var(--ink) 18%,transparent);--review-edge:color-mix(in srgb,var(--ink) 12%,transparent)}
html[data-theme="dark"] .home-reviews{--review-shadow:color-mix(in srgb,var(--bg) 90%,transparent);--review-edge:color-mix(in srgb,var(--bg) 65%,transparent)}
.home-reviews blockquote{text-shadow:0 2px 1px var(--review-edge),0 14px 7px var(--review-shadow)}
.home-reviews figcaption{text-shadow:0 8px 5px var(--review-shadow)}
.review-stars svg{width:64px;height:64px;filter:drop-shadow(0 2px 0 var(--review-edge)) drop-shadow(0 12px 5px var(--review-shadow))}
@media(max-width:700px){.review-card{padding-inline:var(--space-3)}.review-stars{gap:6px}.review-stars svg{width:44px;height:44px}.home-reviews blockquote{text-shadow:0 2px 1px var(--review-edge),0 10px 6px var(--review-shadow)}}

/* Rating gold resolved from GrindBrand.resolve({lang:"en"}), per owner direction. */
.home-reviews{--review-star-color:#D9A441}
.home-reviews .review-stars{color:var(--review-star-color)}

/* Compact owner-requested looping carousel. */
.home-reviews{padding-block:var(--space-5) var(--space-6)}
body[data-route="index"] .home-reviews h2{font-size:clamp(26px,2.6vw,36px);margin-bottom:var(--space-2)}
.review-track{padding-block:var(--space-3) var(--space-4)}
.review-card{padding-block:var(--space-3);align-self:center}
.review-stars{margin-bottom:var(--space-3)}
.home-reviews blockquote{margin-bottom:var(--space-4);font-size:clamp(22px,2.5vw,32px);line-height:1.25}
.review-controls{gap:0}
.review-track[data-animating]{scroll-snap-type:none}
@media(max-width:700px){.home-reviews{padding-block:var(--space-4)}.review-track{padding-block:var(--space-2) var(--space-3)}.review-card{padding-block:var(--space-2)}.review-language{margin-top:4px}}

/* Keep neighbouring reviews visible while the active review is centred. */
@media(max-width:700px){.review-track{gap:var(--space-2);padding-inline:13vw}.review-card{flex-basis:74vw}.review-stars{gap:4px}.review-stars svg{flex-shrink:0}}
