@font-face{font-family:"Nunito Sans";src:url("assets/NunitoSans-Variable.ttf") format("truetype");font-style:normal;font-weight:200 900;font-display:swap}
:root{--paper:#191919;--surface:#181819;--ink:#e7e7e7;--muted:#b0b1b2;--line:#404142;--accent:#dedede;--accent-hover:#ededed;--soft:#303133;--button:#006466;--button-hover:#007779;--intro-bg:#181819;--max:1160px;font-family:"Nunito Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;letter-spacing:0;color-scheme:dark;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px;scrollbar-width:thin;scrollbar-color:#555555 var(--paper)}body{margin:0;min-width:280px}body.dialog-open{overflow:hidden}button,input{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}button,a{-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%}button svg,a svg{pointer-events:none}svg{width:20px;height:20px;flex-shrink:0;stroke-width:1.6}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600;letter-spacing:0}p{line-height:1.65}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:5px}a:hover{color:var(--accent-hover)}[hidden]{display:none!important}.container{width:min(var(--max),calc(100% - 96px));margin-inline:auto}.section-pad{padding-block:112px}.eyebrow{font-size:13px;font-weight:600;color:var(--accent);margin-bottom:20px}.accent{color:var(--accent)}.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-link{position:fixed;top:8px;left:10px;z-index:100;padding:12px;background:#252525;color:var(--ink);transform:translateY(-150%)}.skip-link:focus{transform:none}
.site-header{height:82px;max-width:1440px;padding-inline:48px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px;position:relative;z-index:20;background:var(--paper)}.wordmark{font-size:30px;font-weight:750;line-height:1.1}.wordmark span{color:var(--accent)}.desktop-nav{display:flex;gap:30px;font-size:13px}.desktop-nav a{padding:14px 0;color:var(--muted)}.desktop-nav a:hover,.desktop-nav a[aria-current=page]{color:var(--accent)}.desktop-nav a[aria-current=page]{box-shadow:0 1px var(--accent)}.header-actions{display:flex;align-items:center;gap:12px}.button{display:inline-flex;justify-content:center;align-items:center;gap:14px;min-height:48px;border:1px solid #383838;border-radius:999px;background:var(--button);color:#f4f4f4;padding:13px 22px;font-size:13px;font-weight:600;line-height:1.3;transition:background .2s,transform .2s}.button:hover{background:var(--button-hover);color:#f4f4f4;transform:translateY(-1px)}.button-small{min-height:40px;padding:10px 17px;font-size:12px}.button-small svg{width:16px;height:16px}.button-quiet{background:transparent;color:var(--ink);border-color:var(--line)}.button-quiet:hover{background:var(--soft);color:var(--ink)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border:1px solid var(--line);border-radius:50%;color:var(--ink);background:transparent}.icon-button:hover{background:var(--soft)}.menu-toggle{display:none}.mobile-menu{position:absolute;top:76px;inset-inline:16px;background:var(--surface);border:1px solid var(--line);padding:18px;border-radius:8px;box-shadow:0 16px 24px #00000059;display:grid;grid-template-columns:1fr 1fr;gap:6px}.mobile-menu a{padding:12px;font-size:14px;line-height:1.5}
.hero{text-align:center;padding:96px 24px 104px;background:var(--paper)}
.hero h1{font-size:88px;font-weight:650;line-height:1.08}
.hero-copy{max-width:535px;margin:26px auto 28px;font-size:18px;color:var(--muted);line-height:1.65}

.faq-page .faq-heading h1{font-size:48px;font-weight:600;line-height:1.15}
.home-page .hero{padding-bottom:48px}
.hero-proof{background:var(--intro-bg);padding:0 24px 80px}
.proof-scroll{max-width:992px;margin-inline:auto;overflow-x:auto;overscroll-behavior-x:contain}
.proof-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.proof-scroll img{display:block;width:100%;height:auto;max-width:992px;border-radius:0;filter:none;box-shadow:none}
.answer-slide img,.screen-figure>img{border-radius:0;filter:none;box-shadow:none}
.prompt-closeup{display:block;width:100%;height:auto}
.study-modes{margin:28px 0 0}
.study-modes>div{padding:18px 0;border-top:1px solid var(--line)}
.study-modes dt{font-size:13px;font-weight:700;color:var(--ink)}
.study-modes dd{margin:7px 0 0;font-size:15px;line-height:1.65;color:var(--muted)}
@media(max-width:760px){.hero-proof{padding:0 22px 56px}.proof-scroll img{width:760px;max-width:none}.home-page .hero{padding-bottom:36px}}
@media(max-width:760px){.faq-page .faq-heading h1{font-size:34px}}
h2{font-size:48px;line-height:1.08}

.product-section{background:var(--surface)}.product-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;align-items:center}.product-gallery{min-width:0}.gallery-stage{height:600px;display:flex;align-items:center;justify-content:center}.gallery-stage img{width:100%;height:100%;object-fit:contain;animation:photo-in .35s ease}.gallery-controls{display:flex;align-items:center;justify-content:center;gap:22px}.gallery-dots{display:flex;gap:2px}.gallery-dot{border:0;background:none;width:34px;height:34px;padding:10px;position:relative}.gallery-dot:after{content:"";display:block;width:7px;height:7px;border-radius:50%;background:#565656;margin:auto}.gallery-dot.active:after{background:var(--accent);width:9px;height:9px}.gallery-play{width:30px;height:30px;border-color:var(--line)}.gallery-play svg{width:13px;height:13px}.product-info .eyebrow{margin-bottom:18px}.product-info h2{font-size:43px;line-height:1.08}.price{font-size:30px;margin-top:24px;line-height:1.3}.price span{font-size:12px;color:var(--muted);vertical-align:middle}.product-summary{font-size:15px;color:var(--muted);margin-top:20px;max-width:430px}.buy-button{width:100%;max-width:430px;margin-top:28px;background:var(--button);color:#f4f4f4;justify-content:space-between;font-size:14px}.buy-button:hover{background:var(--button-hover);color:#f4f4f4}.purchase-note{font-size:11px;color:var(--muted);margin-top:12px;max-width:430px}.purchase-note+.purchase-note{margin-top:3px}.product-description{margin-top:24px;max-width:430px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.product-description summary{padding:17px 0;font-size:13px}.description-body{max-height:325px;overflow-y:auto;padding:0 16px 20px 0;font-size:13px;color:var(--muted);scrollbar-width:thin;scrollbar-color:#555555 transparent}.description-body p+p{margin-top:14px}
.text-link{font-size:13px;display:inline-flex;gap:10px;align-items:center;color:var(--accent);font-weight:600}.text-link svg{width:16px;height:16px}
.faq-section{background:var(--surface)}.faq-list{min-width:0}.faq-group{font-size:12px;color:var(--accent);font-weight:600;margin:36px 0 16px}.faq-group:first-child{margin-top:0}.faq-list details{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;line-height:1.5}summary::-webkit-details-marker{display:none}summary svg{width:16px;height:16px;transition:transform .2s}details[open]>summary svg{transform:rotate(45deg)}.faq-list summary{padding:22px 0;font-size:15px}.faq-answer{font-size:14px;color:var(--muted);padding:0 24px 22px 0}.faq-answer p+p{margin-top:14px}
.site-footer{background:var(--paper);padding:60px 0 36px;border-top:1px solid var(--line)}.footer-top{display:flex;justify-content:space-between;gap:50px}.footer-top>div>p{margin-top:15px;font-size:12px;color:var(--muted)}.footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 30px;font-size:12px;align-items:start;line-height:1.5}.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:60px}.footer-bottom>p{font-size:11px;color:var(--muted)}.social-links{display:flex;align-items:center;flex-wrap:wrap;gap:20px;font-size:12px}.social-links a{display:flex;align-items:center;gap:4px;min-height:36px}.social-links svg{width:17px;height:17px}.n-footer-legal{border-top:1px solid var(--line);padding-top:30px;margin-top:36px;font-size:11px;line-height:1.8;color:var(--muted);max-width:100%;overflow-wrap:break-word}
dialog{border:1px solid var(--line);padding:0;border-radius:8px;max-width:570px;width:calc(100% - 32px);max-height:calc(100dvh - 40px);color:var(--ink);background:var(--surface);box-shadow:0 18px 80px #0003}dialog::backdrop{background:#000000b3}.dialog-content{padding:36px;position:relative}.dialog-close{position:absolute;right:15px;top:15px;width:32px;height:32px}.dialog-content .eyebrow{margin-bottom:12px}.dialog-content h2{font-size:28px;line-height:1.2;padding-right:20px}.dialog-content>p:not(.eyebrow){font-size:13px;color:var(--muted);margin:16px 0 24px}.policy-check{display:flex;gap:12px;align-items:flex-start;padding:18px 0;border-top:1px solid var(--line);font-size:12px;line-height:1.65}.policy-check input{margin:4px 0 0;accent-color:var(--accent);width:17px;height:17px;flex-shrink:0}.policy-check a{text-decoration:underline;text-underline-offset:3px;color:var(--accent)}.dialog-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:16px}
.contact-page{padding:90px 0 100px}.contact-intro{text-align:center;max-width:620px;margin:0 auto 70px}.contact-intro h1{font-size:64px;font-weight:750;line-height:1.05}.contact-intro>p:not(.eyebrow){font-size:16px;color:var(--muted);margin-top:24px}.contact-channels{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid var(--line)}.contact-channel{padding:40px 45px 40px 0}.contact-channel+.contact-channel{border-left:1px solid var(--line);padding-left:45px;padding-right:0}.contact-channel>svg{color:var(--accent);width:28px;height:28px;margin-bottom:24px}.contact-channel h2{font-size:28px;margin-bottom:16px}.contact-channel p{font-size:14px;color:var(--muted);max-width:410px;margin-bottom:22px}.contact-channel .contact-address{font-size:22px;display:block;overflow-wrap:anywhere;color:var(--accent);margin-bottom:15px}.contact-help{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-top:55px}.contact-help h2{font-size:26px;margin-bottom:20px}.contact-help p,.contact-help li{font-size:14px;color:var(--muted);line-height:1.8}.contact-help ul{padding-left:18px}.contact-help>div>p+p{margin-top:16px}
.mobile-menu a[aria-current=page]{color:var(--accent);background:var(--soft)}

.feature-band{padding:96px 0;background:var(--paper)}
.feature-band-soft{background:var(--surface)}
.feature-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:100px;align-items:center;min-height:420px}
.feature-copy{max-width:500px}
.feature-copy h2{font-size:38px;font-weight:550;line-height:1.22}
.feature-copy>p{font-size:16px;line-height:1.75;color:var(--muted);margin-top:20px}
.feature-copy .text-link{margin-top:24px;font-weight:500}
.screen-figure{margin:0;min-width:0;width:100%;max-width:530px;justify-self:center;text-align:center}
.screen-figure>img{width:100%;height:auto;aspect-ratio:596/398;object-fit:contain;border-radius:0}
.screen-figure figcaption{font-size:11px;line-height:1.6;color:var(--muted);margin-top:18px}
.answer-gallery{min-width:0;width:100%;max-width:596px;justify-self:center}
.answer-slides{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;border-radius:0;scroll-behavior:smooth}
.answer-slides::-webkit-scrollbar{display:none}
.answer-slides:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.answer-slide{flex:0 0 100%;min-width:0;margin:0;scroll-snap-align:start;scroll-snap-stop:always}
.answer-slide img{width:100%;height:auto;aspect-ratio:596/398;object-fit:contain;border-radius:0}
.answer-slide figcaption{text-align:center;color:var(--muted);font-size:12px;line-height:1.6;margin-top:18px}
.answer-controls{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:12px}
.answer-dots{display:flex;align-items:center}
.answer-controls .icon-button{width:36px;height:36px}
.answer-controls .icon-button:disabled{opacity:.3}

.feature-layout-reverse .feature-copy{order:2}
.feature-layout-reverse .screen-figure{order:1}
.study-note{font-size:11px;color:var(--muted);margin-top:20px;line-height:1.7}
.specs-disclosure{margin-top:56px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.specs-disclosure>summary{padding:22px 0;font-size:15px}
.specs{padding-bottom:24px}
.specs table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.7}
.specs th,.specs td{padding:14px 0;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}
.specs th{width:32%;padding-right:24px;font-weight:400;color:var(--muted)}
.specs td{color:#c1c1c1;overflow-wrap:break-word}
.specs tr:last-child th,.specs tr:last-child td{border-bottom:0}
.basic-section{background:var(--surface)}
.basic-inner{display:flex;align-items:center;justify-content:center;gap:36px;padding-block:30px}

.basic-inner h2{font-size:22px;font-weight:550;line-height:1.3}
.basic-inner>div>p{font-size:14px;color:var(--muted);margin-top:8px}
.basic-teaser{margin-top:12px;font-size:12px}
.basic-teaser summary{justify-content:flex-start;gap:16px;width:fit-content;padding:8px 0}
.basic-teaser p{margin-top:8px;color:var(--muted)}
.faq-layout{max-width:760px}
.faq-heading{text-align:center;margin-bottom:42px}
.faq-heading h2{font-size:36px;font-weight:550;line-height:1.2}
.faq-heading>p{max-width:520px;margin:18px auto 0;font-size:14px;color:var(--muted)}
.faq-heading p a,.faq-answer a,.contact-page p a,.contact-help a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}


@keyframes photo-in{from{opacity:.7}to{opacity:1}}
@media(min-width:1600px){.hero{padding-top:112px}.hero h1{font-size:104px}.hero-copy{font-size:18px;max-width:650px}}
@media(max-width:1050px){.container{width:calc(100% - 64px)}.site-header{padding-inline:32px}.desktop-nav{gap:22px}.product-layout{gap:45px}.product-info h2{font-size:36px}.gallery-stage{height:550px}}
@media(max-width:760px){html{scroll-padding-top:24px}.site-header{height:76px;padding-inline:22px;gap:16px}.desktop-nav{display:none}.menu-toggle{display:inline-flex}.header-actions{gap:8px}.wordmark{font-size:27px}.container{width:calc(100% - 44px)}.section-pad{padding-block:72px}.hero{padding:76px 22px 80px}.hero h1{font-size:52px;line-height:1.12}.hero-copy{font-size:15px;max-width:450px;margin:20px auto}h2{font-size:38px}.product-layout{grid-template-columns:1fr;gap:35px}.gallery-stage{height:470px}.product-info h2{font-size:38px}.product-info h2 br{display:none}.product-info .eyebrow{margin-bottom:16px}.product-info .price{margin-top:20px}.product-summary,.buy-button,.purchase-note,.product-description{max-width:none}.buy-button{min-height:52px}.faq-list summary{font-size:14px;padding:20px 0}.footer-top{display:block}.footer-links{margin-top:32px;gap:18px 24px;font-size:12px}.footer-bottom{flex-direction:column;align-items:flex-start;margin-top:32px;gap:20px}.social-links{gap:22px}.n-footer-legal{margin-top:28px;padding-top:24px;font-size:10px}.site-footer{padding:42px 0 calc(32px + env(safe-area-inset-bottom))}.dialog-content{padding:30px 22px 24px}.dialog-content h2{font-size:24px}.policy-check{font-size:12px}.contact-page{padding:55px 0 72px}.contact-intro h1{font-size:45px}.contact-intro{margin-bottom:45px}.contact-intro>p:not(.eyebrow){font-size:15px}.contact-channels{display:block}.contact-channel{padding:30px 0}.contact-channel+.contact-channel{border-left:0;border-top:1px solid var(--line);padding:30px 0}.contact-help{grid-template-columns:1fr;gap:36px;padding-top:36px}.contact-help h2{font-size:24px}.contact-channel .contact-address{font-size:22px}}
@media(max-width:360px){.site-header{padding-inline:16px}.button-small{font-size:11px;padding-inline:12px}.hero h1{font-size:44px}.hero-copy{font-size:14px}.container{width:calc(100% - 32px)}.product-info h2{font-size:32px}.contact-intro h1{font-size:38px}}
@media(max-height:720px){.hero{padding-top:54px;padding-bottom:62px}}
@media(max-height:640px){.hero-copy{font-size:14px}}

@media(max-width:1050px){.feature-layout{gap:56px}.feature-copy h2{font-size:34px}}
@media(max-width:760px){.feature-band{padding:64px 0}.feature-layout{grid-template-columns:1fr;gap:44px;min-height:0}.feature-copy{max-width:500px}.feature-copy h2{font-size:30px}.feature-copy>p{font-size:15px;margin-top:16px}.feature-layout-reverse .feature-copy,.feature-layout-reverse .screen-figure{order:initial}.faq-heading h2{font-size:32px}.faq-heading{margin-bottom:30px}.specs-disclosure{margin-top:42px}.specs th{width:34%;padding-right:16px}.specs table{font-size:12px}.basic-inner{gap:22px}.basic-inner h2{font-size:20px}}
@media(max-width:360px){.feature-copy h2{font-size:27px}.basic-inner{gap:16px}.basic-inner h2{font-size:18px}}

@media(prefers-reduced-motion:reduce){html,.answer-slides{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* The opening sections share one surface; only the header and hero darken on scroll. */
.home-page .site-header{position:sticky;top:0;max-width:none;background:var(--intro-bg);padding-inline:max(48px,calc((100% - 1344px)/2))}
.home-page .hero{background:var(--intro-bg)}
.home-page .desktop-nav{gap:22px}
.contact-site .desktop-nav{gap:22px}
.social-links a{justify-content:center;min-width:40px;min-height:40px}
.social-links svg{width:20px;height:20px;flex-shrink:0}
.social-links a:hover{color:var(--ink)}
.policy-socials{justify-content:center;margin-top:24px}
.contact-help section>p+p{margin-top:16px}
.contact-channel{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.contact-channel>.button{margin-top:auto;min-width:164px;min-height:48px}
.contact-help{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:0}
.contact-help>section{min-width:0;padding-right:45px}
.contact-help>section+section{padding-left:45px;padding-right:0}
@media(max-width:760px){.contact-help{grid-template-columns:1fr}.contact-help>section,.contact-help>section+section{padding-inline:0}}
@media(max-width:1050px){.contact-site .desktop-nav{gap:14px;font-size:12px}}
@media(max-width:900px){.contact-site .desktop-nav{display:none}.contact-site .menu-toggle{display:inline-flex}}
.study-intro{background:var(--surface);padding:96px 0}
.prompt-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:100px;align-items:center;min-height:320px}
.prompt-preview{margin:0;width:100%;max-width:530px;justify-self:center}
.portal-preview{padding:28px;background:#292a2b;border:1px solid #404142;border-radius:28px;text-align:left}
.portal-label{font-size:16px;font-weight:600;line-height:1.5;color:var(--ink);margin-bottom:16px}
.portal-label span{font-weight:400;color:var(--muted)}
.portal-prompt{font-size:24px;line-height:1.5;padding:22px 24px;min-height:170px;border:1px solid #616364;border-radius:22px;background:#3d3f40;color:#f4f4f4;overflow-wrap:break-word}
.portal-status{display:flex;align-items:center;gap:8px;color:#b8d7d6;font-size:12px;line-height:1.5;margin-top:18px}
.portal-status svg{width:16px;height:16px}
.prompt-preview figcaption{margin-top:16px;font-size:11px;line-height:1.6;color:var(--muted);text-align:center}
.prompt-copy{max-width:500px}
.prompt-copy h2{font-size:38px;font-weight:550;line-height:1.22}
.prompt-copy p{font-size:16px;line-height:1.75;color:var(--muted);margin-top:20px}
.faq-jump{margin-top:22px}
.faq-group{font-size:18px;font-weight:600;color:var(--ink);margin:44px 0 10px;scroll-margin-top:110px}
@media(max-width:1050px){.home-page .site-header{padding-inline:32px}.home-page .desktop-nav{gap:14px;font-size:12px}}
@media(max-width:900px){.home-page .desktop-nav{display:none}.home-page .menu-toggle{display:inline-flex}}
@media(max-width:760px){.home-page .site-header{padding-inline:22px}.study-intro{padding:64px 0}.prompt-layout{grid-template-columns:1fr;gap:36px;min-height:0}.prompt-copy h2{font-size:30px}.prompt-copy p{font-size:15px;margin-top:16px}.faq-group{font-size:17px}}
@media(max-width:360px){.home-page .site-header{padding-inline:16px}}
@media(min-width:761px) and (max-width:1050px){.prompt-layout{gap:56px}.prompt-copy h2{font-size:34px}}
@media(max-width:760px){.portal-preview{padding:22px;border-radius:24px}.portal-prompt{font-size:21px;min-height:160px;padding:18px 20px;border-radius:20px}}

.home-page .hero{min-height:min(760px,calc(100svh - 150px));display:flex;flex-direction:column;align-items:center;justify-content:center;padding:112px 24px 144px}
.home-page .hero-copy{margin-top:32px;margin-bottom:36px}
.hero-proof{padding-top:48px;padding-bottom:112px;background:var(--surface)}
.device-proof{max-width:516px;margin:96px auto 0}
.hero .rotating-headline{display:flex;align-items:baseline;justify-content:center;gap:.24em;max-width:100%;line-height:1.2}
.headline-fixed{white-space:nowrap}
.headline-window{position:relative;display:inline-block;height:1.2em;overflow:hidden;vertical-align:bottom;text-align:left}
.headline-sizer{display:block;visibility:hidden;white-space:nowrap}
.headline-track{position:absolute;top:0;left:0;width:100%;will-change:transform;animation:headline-reel 15s cubic-bezier(.65,0,.25,1) infinite}
.headline-track>span{display:block;height:1.2em;line-height:1.2;white-space:nowrap}
@keyframes headline-reel{0%,15%{transform:translateY(0)}20%,35%{transform:translateY(-16.666667%)}40%,55%{transform:translateY(-33.333333%)}60%,75%{transform:translateY(-50%)}80%,95%{transform:translateY(-66.666667%)}100%{transform:translateY(-83.333333%)}}
@media(min-width:761px) and (max-width:1050px){.hero .rotating-headline{font-size:64px}}
@media(max-width:760px){.hero .rotating-headline{flex-direction:column;align-items:center;gap:0}.headline-window{text-align:center}}
@media(prefers-reduced-motion:reduce){.headline-track{animation:none;transform:none;will-change:auto}}
.hero-policy-note{max-width:400px;margin:24px auto 0;text-align:left;font-size:12px;line-height:1.65;color:var(--muted)}
.hero-policy-note a{font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.hero-policy-note a:hover{color:var(--accent-hover)}
.hero .hero-explore{margin-top:64px;background:#333435;color:var(--ink);border-radius:999px;padding:12px 20px;font-size:14px;min-height:44px}
.hero .hero-explore:hover{background:#414243;color:var(--ink)}
.device-proof .answer-slide img{width:100%;height:auto;aspect-ratio:516/500;object-fit:contain;border-radius:0;filter:none;box-shadow:none}
@media(max-width:760px){.home-page .hero{min-height:calc(100svh - 150px);padding:80px 22px 100px}.hero-proof{padding-top:32px;padding-bottom:72px}.device-proof{margin-top:64px}}




/* --- hero: headline high, legal note and explore button anchored to the
       bottom of the first screen --- */
.home-page .hero{min-height:calc(100svh - 82px);display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding-top:15vh;padding-bottom:40px}
.home-page .hero-top,.home-page .hero-bottom{display:flex;flex-direction:column;align-items:center;width:100%}
.home-page .hero-policy-note{margin-top:0}
.home-page .hero .hero-explore{margin-top:26px}
@media(max-width:760px){.home-page .hero{min-height:calc(100svh - 76px);padding-top:11vh;padding-bottom:28px}}

/* An inline-block with overflow:hidden reports its BOTTOM MARGIN EDGE as its
   baseline, not the text baseline. With align-items:baseline that lifted the
   rotating word ~0.3em above "F*ck being". Both items have identical 1.2em
   line boxes, so aligning their tops aligns their baselines. */
.hero .rotating-headline{align-items:flex-start}

/* --- hero buy card: liquid glass, sits between the headline and the
       legal note so the hero's three groups space out evenly --- */
.hero-buy{
  width:min(400px,100%);
  text-align:left;
  padding:20px 20px 18px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg,rgba(255,255,255,.085),rgba(255,255,255,.045));
  backdrop-filter:blur(22px) saturate(160%);
  -webkit-backdrop-filter:blur(22px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 18px 44px rgba(0,0,0,.34);
}
.hero-buy-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.hero-buy-name{margin:0;font-size:14px;font-weight:600;color:var(--ink);line-height:1.3;max-width:200px}
.hero-buy-price{margin:0;font-size:26px;font-weight:650;letter-spacing:-.01em;color:var(--ink);white-space:nowrap}
.hero-buy-price span{font-size:11px;font-weight:500;color:var(--muted);margin-left:3px}
.hero-buy-list{list-style:none;margin:16px 0 0;padding:16px 0 0;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:9px}
.hero-buy-list li{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--muted);line-height:1.35}
.hero-buy-list i{width:15px;height:15px;flex:none;color:var(--accent)}
.hero-buy-list svg{width:15px;height:15px}
.hero-buy-cta{width:100%;justify-content:center;margin-top:18px;min-height:46px;font-size:15px}
.hero-buy-note{margin:11px 0 0;text-align:center;font-size:11px;color:var(--muted)}
@media(max-width:760px){
  .hero-buy{width:100%;max-width:360px;padding:18px 18px 16px;border-radius:20px}
  .hero-buy-price{font-size:23px}
  .hero-buy-list{margin-top:14px;padding-top:14px;gap:8px}
}
/* lucide swaps the <i> for an <svg>, so colour the svg, not the placeholder */
.hero-buy-list svg{color:var(--button-hover);stroke-width:2.5}
.home-page .hero-bottom{margin-top:26px}
.home-page .hero{padding-top:11vh}

/* --- explore pill: stays on screen while you scroll --- */
.home-page .hero-explore{
  position:fixed;left:50%;bottom:26px;transform:translateX(-50%);
  z-index:30;margin-top:0;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(40,41,43,.72);
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  box-shadow:0 10px 30px rgba(0,0,0,.4);
}
.home-page .hero-explore:hover{background:rgba(56,57,60,.86)}
.home-page .hero{padding-bottom:96px}
@media(max-width:760px){
  .home-page .hero{padding-bottom:84px}
  .home-page .hero-explore{bottom:18px}
}

/* --- hero subjects: text only, drifting, edges faded --- */
.hero-subjects{width:100%;display:flex;flex-direction:column;align-items:center;gap:20px}
.hero-subjects-label{margin:0;font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.subject-marquee{
  position:relative;display:flex;gap:10px;width:100vw;max-width:1180px;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
}
.subject-track{
  list-style:none;margin:0;padding:0;display:flex;gap:10px;flex:none;
  animation:subject-drift 70s linear infinite;
}
.subject-track li{
  padding:10px 18px;border-radius:999px;white-space:nowrap;
  font-size:15px;color:var(--ink);
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.03));
  backdrop-filter:blur(14px) saturate(150%);
  -webkit-backdrop-filter:blur(14px) saturate(150%);
}
@keyframes subject-drift{to{transform:translateX(calc(-100% - 10px))}}
.subject-marquee:hover .subject-track{animation-play-state:paused}
@media(max-width:760px){
  .hero-subjects{gap:16px}
  .subject-track li{font-size:13px;padding:8px 14px}
  /* desktop runs 1180px inside a wider page, so it has gutters; 100vw on a
     phone has none. Inset it and pin the fade in px rather than percent. */
  .subject-marquee{
    width:calc(100vw - 56px);
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent);
    mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent);
  }
}
@media(prefers-reduced-motion:reduce){
  .subject-track{animation:none}
  .subject-track:nth-child(2){display:none}
  .subject-marquee{flex-wrap:wrap;justify-content:center;width:100%;-webkit-mask-image:none;mask-image:none}
  .subject-track{flex-wrap:wrap;justify-content:center}
}

/* fade the explore pill out once the hero is mostly scrolled past */
.home-page .hero-explore{transition:opacity .3s ease,transform .3s ease,visibility .3s}
.home-page .hero-explore.is-past{opacity:0;visibility:hidden;pointer-events:none;transform:translateX(-50%) translateY(10px)}
@media(prefers-reduced-motion:reduce){.home-page .hero-explore{transition:none}}



/* --- Page background, the way muse.ai actually does it: one flat base
       colour, with specific sections given their own tone so the shift
       happens at a deliberate section edge instead of a long fade. --- */
html,body{background:#181819}
body{background-image:none}

/* Dark at the top, then a lighter block for the proof section, so the change
   lands on a crisp section edge the way muse.ai does it. */
.home-page .hero{background:#141516}
.hero-proof{background:#1f1f21}
.feature-band,.study-intro,.product-section,.basic-section{background:#181819}
.site-footer{background:#111113}

/* Header: one constant tone, same as the page base. Invisible over the hero
   (identical colour, so no edge), and it simply reads as a darker bar once a
   lighter section scrolls under it. No scroll-triggered colour change. */
.home-page .site-header{background:#141516;border-bottom:0}

/* --- custom prompt section: a built composition rather than a screenshot --- */
.study-intro .prompt-layout{align-items:center;gap:72px}
.prompt-stage{position:relative;margin:0;display:flex;flex-direction:column;align-items:center;padding:22px 0 0}

.prompt-card{
  position:relative;width:min(430px,100%);
  padding:22px 22px 18px;border-radius:26px;
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(165deg,rgba(255,255,255,.1),rgba(255,255,255,.035) 55%,rgba(255,255,255,.055));
  backdrop-filter:blur(26px) saturate(170%);
  -webkit-backdrop-filter:blur(26px) saturate(170%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    0 2px 6px rgba(0,0,0,.3),
    0 18px 40px rgba(0,0,0,.45),
    0 44px 90px rgba(0,0,0,.4);
  transform:perspective(1200px) rotateX(5deg) rotateY(-7deg);
}
.prompt-label{margin:0 0 12px 2px;font-size:13px;font-weight:600;color:rgba(255,255,255,.82)}
.prompt-label span{font-weight:400;color:var(--muted)}
.prompt-field{
  border-radius:16px;padding:15px 16px;min-height:104px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.07);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.35);
}
.prompt-field p{margin:0;font-size:16px;line-height:1.5;color:#fff}
.prompt-caret{display:inline-block;width:2px;height:1.05em;margin-left:3px;vertical-align:-2px;background:rgba(255,255,255,.9);animation:prompt-blink 1.1s steps(1) infinite}
@keyframes prompt-blink{0%,49%{opacity:1}50%,100%{opacity:0}}
.prompt-status{display:flex;align-items:center;gap:7px;margin:13px 2px 0;font-size:12px;color:var(--muted)}
.prompt-status svg{width:14px;height:14px;color:var(--button-hover);stroke-width:2.5}
.prompt-keyboard{
  width:min(430px,100%);margin:20px 0 0;padding:9px 6px 6px;
  border-radius:20px;background:#0f0f10;
  border:1px solid rgba(255,255,255,.06);
  box-shadow:0 16px 38px rgba(0,0,0,.5);
  transform:perspective(1200px) rotateX(5deg) rotateY(-7deg);
  user-select:none;
}
.kb-row{display:flex;gap:6px;justify-content:center;margin-bottom:7px}
.kb-row-2{padding-inline:20px}
.kb-row span{
  flex:1 1 0;min-width:0;height:34px;border-radius:7px;
  display:flex;align-items:center;justify-content:center;
  font-size:16px;color:#fff;background:#3a3a3c;
}
.kb-row span.is-pressed{background:#5a5a5e}
.kb-row svg{width:17px;height:17px;color:#fff;stroke-width:1.9}
.kb-wide{flex:1.45 1 0}
.kb-num{flex:1.7 1 0;font-size:14px}
.kb-space{flex:5.2 1 0}
.kb-return{flex:1.7 1 0}
.kb-bottom{margin-bottom:2px;padding-inline:4px}
.kb-row span.kb-bare{background:transparent;flex:0 0 auto;width:30px;height:30px}
.prompt-keyboard .kb-bottom{justify-content:space-between;padding-inline:12px;margin-top:2px}
.kb-bare svg{width:19px;height:19px}
.prompt-copy h2{font-size:38px;font-weight:550;line-height:1.22}
.prompt-copy p{font-size:16px;line-height:1.75;color:var(--muted);margin-top:20px}
.faq-jump{margin-top:22px}
.faq-group{font-size:18px;font-weight:600;color:var(--ink);margin:44px 0 10px;scroll-margin-top:110px}
@media(max-width:1050px){.home-page .site-header{padding-inline:32px}.home-page .desktop-nav{gap:14px;font-size:12px}}
@media(max-width:900px){.home-page .desktop-nav{display:none}.home-page .menu-toggle{display:inline-flex}}
@media(max-width:760px){.home-page .site-header{padding-inline:22px}.study-intro{padding:64px 0}.prompt-layout{grid-template-columns:1fr;gap:36px;min-height:0}.prompt-copy h2{font-size:30px}.prompt-copy p{font-size:15px;margin-top:16px}.faq-group{font-size:17px}}
@media(max-width:360px){.home-page .site-header{padding-inline:16px}}
@media(min-width:761px) and (max-width:1050px){.prompt-layout{gap:56px}.prompt-copy h2{font-size:34px}}
@media(max-width:760px){.portal-preview{padding:22px;border-radius:24px}.portal-prompt{font-size:21px;min-height:160px;padding:18px 20px;border-radius:20px}}

.home-page .hero{min-height:min(760px,calc(100svh - 150px));display:flex;flex-direction:column;align-items:center;justify-content:center;padding:112px 24px 144px}
.home-page .hero-copy{margin-top:32px;margin-bottom:36px}
.hero-proof{padding-top:48px;padding-bottom:112px;background:var(--surface)}
.device-proof{max-width:516px;margin:96px auto 0}
.hero .rotating-headline{display:flex;align-items:baseline;justify-content:center;gap:.24em;max-width:100%;line-height:1.2}
.headline-fixed{white-space:nowrap}
.headline-window{position:relative;display:inline-block;height:1.2em;overflow:hidden;vertical-align:bottom;text-align:left}
.headline-sizer{display:block;visibility:hidden;white-space:nowrap}
.headline-track{position:absolute;top:0;left:0;width:100%;will-change:transform;animation:headline-reel 15s cubic-bezier(.65,0,.25,1) infinite}
.headline-track>span{display:block;height:1.2em;line-height:1.2;white-space:nowrap}
@keyframes headline-reel{0%,15%{transform:translateY(0)}20%,35%{transform:translateY(-16.666667%)}40%,55%{transform:translateY(-33.333333%)}60%,75%{transform:translateY(-50%)}80%,95%{transform:translateY(-66.666667%)}100%{transform:translateY(-83.333333%)}}
@media(min-width:761px) and (max-width:1050px){.hero .rotating-headline{font-size:64px}}
@media(max-width:760px){.hero .rotating-headline{flex-direction:column;align-items:center;gap:0}.headline-window{text-align:center}}
@media(prefers-reduced-motion:reduce){.headline-track{animation:none;transform:none;will-change:auto}}
.hero-policy-note{max-width:400px;margin:24px auto 0;text-align:left;font-size:12px;line-height:1.65;color:var(--muted)}
.hero-policy-note a{font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.hero-policy-note a:hover{color:var(--accent-hover)}
.hero .hero-explore{margin-top:64px;background:#333435;color:var(--ink);border-radius:999px;padding:12px 20px;font-size:14px;min-height:44px}
.hero .hero-explore:hover{background:#414243;color:var(--ink)}
.device-proof .answer-slide img{width:100%;height:auto;aspect-ratio:516/500;object-fit:contain;border-radius:0;filter:none;box-shadow:none}
@media(max-width:760px){.home-page .hero{min-height:calc(100svh - 150px);padding:80px 22px 100px}.hero-proof{padding-top:32px;padding-bottom:72px}.device-proof{margin-top:64px}}




/* --- homepage strip: the screens on their own --- */
.calc-strip{
  display:flex;align-items:flex-start;justify-content:center;
  gap:clamp(10px,2.4vw,34px);flex-wrap:nowrap;
  max-width:1180px;margin:0 auto;padding:0 20px;
}
.calc-top{margin:0;flex:1 1 0;min-width:0;max-width:330px;text-align:center}
.calc-shell{
  padding:12px;border-radius:22px;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(165deg,rgba(255,255,255,.095),rgba(255,255,255,.03) 55%,rgba(255,255,255,.055));
  backdrop-filter:blur(24px) saturate(165%);
  -webkit-backdrop-filter:blur(24px) saturate(165%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    0 2px 6px rgba(0,0,0,.3),
    0 16px 36px rgba(0,0,0,.45),
    0 40px 78px rgba(0,0,0,.34);
}
.calc-screen{
  border-radius:11px;overflow:hidden;
  box-shadow:inset 0 2px 7px rgba(0,0,0,.5);
}
.calc-screen img{display:block;width:100%;height:auto}
.calc-top figcaption{margin-top:16px;font-size:14px;color:var(--muted)}
.calc-arrow{flex:none;color:var(--button-hover);opacity:.8;margin-top:72px}
.calc-arrow svg{width:22px;height:22px;stroke-width:2.2}
@media(max-width:900px){
  .calc-strip{flex-wrap:wrap;gap:22px}
  .calc-top{flex:1 1 260px;max-width:300px}
  .calc-arrow{display:none}
  .calc-top figcaption{margin-top:12px;font-size:13px}
}

/* --- strip intro: centred heading and description above the screens --- */
.proof-intro{text-align:center;max-width:720px;margin:0 auto 54px;padding:0 20px}
.proof-intro h2{font-size:42px;font-weight:600;line-height:1.14;margin-bottom:14px}
.proof-intro p{font-size:18px;line-height:1.6;color:var(--muted);max-width:640px;margin:0 auto}
@media(max-width:1050px){.proof-intro h2{font-size:36px}.proof-intro p{font-size:17px}}
@media(max-width:760px){.proof-intro{margin-bottom:38px}.proof-intro h2{font-size:30px}.proof-intro p{font-size:16px}}

/* ===== SECTION TONES (kept last: this stylesheet contains duplicated
        blocks, so these must come after every earlier copy) ===== */
.home-page .site-header{background:#141516;border-bottom:0}
.home-page .hero{background:#141516}
.hero-proof{background:#1f1f21}
.feature-band,.study-intro,.product-section,.basic-section{background:#181819}
.site-footer{background:#111113}


/* ===== TOP SCRIM =====
   The page sits on one light charcoal. A dark band grows down from the top
   of the viewport as you scroll through the hero, with a soft lower edge, and
   ends up as the black bar behind the header. Nothing below the hero moves. */
:root{background:#1f2022}
body{background:transparent;background-image:none}
.home-page .hero,.hero-proof,.connect-band,.replies-band,.chat-band,
.feature-band,.feature-band-soft,.study-intro,.product-section,
.basic-section,.faq-section,.faq-page main,.contact-page,
.site-footer{background:transparent}

/* The header has to stay opaque or content scrolls through it. It uses the
   same scroll value as the scrim, so it fades in exactly in step. */
.site-header{background:rgba(11,11,12,var(--scrim-o,0));border-bottom:0}

.top-scrim{
  position:fixed;inset:0 0 auto 0;height:100vh;z-index:-1;pointer-events:none;
  opacity:var(--scrim-o,0);
  background:linear-gradient(180deg,
    #0b0b0c 0%,
    #0b0b0c var(--scrim-solid,0%),
    rgba(11,11,12,0) calc(var(--scrim-solid,0%) + 26vh));
}
@media(prefers-reduced-motion:reduce){.top-scrim{display:none}}

/* ===== CONNECT SECTION ===== */
.connect-band{padding:112px 0}
.connect-layout{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.connect-stage{display:flex;align-items:center;justify-content:center;gap:26px;padding:10px 0}

/* Full phone, nothing masked off, with the calculator screen breaking out
   of its lower corner so the two read as one scene. */
.connect-stage{position:relative;display:block;max-width:470px;margin:0 auto;padding:14px 0 118px}
.phone-mock{
  width:min(258px,100%);margin:0 auto;padding:14px 12px 16px;border-radius:36px;
  background:#0a0a0b;border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 2px 6px rgba(0,0,0,.35),
             0 24px 52px rgba(0,0,0,.55),0 56px 104px rgba(0,0,0,.45);
  transform:perspective(1300px) rotateX(3deg) rotateY(6deg);
}
.phone-island{
  width:96px;height:23px;margin:0 auto 13px;border-radius:999px;
  background:#000;border:1px solid #2fd159;
  display:flex;align-items:center;justify-content:center;
}
.phone-island .hs-glyph{width:15px;height:15px;color:#2fd159}
.phone-hero{background:#1c1c1e;border-radius:14px;padding:12px;margin-bottom:11px}
.phone-appicon{
  width:30px;height:30px;border-radius:8px;margin-bottom:8px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(180deg,#4cd964,#2aa84a);
}
.phone-appicon .hs-glyph{width:18px;height:18px;color:#fff}
.phone-h1{margin:0 0 4px;font-size:14px;font-weight:700;color:#fff}
.phone-sub{margin:0;font-size:9px;line-height:1.45;color:#8e8e93}
.phone-sub em{font-style:normal;color:#0a84ff}
.phone-card{background:#1c1c1e;border-radius:12px;padding:0 12px;margin-bottom:7px}
.phone-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;font-size:11px;color:#fff}
.phone-row+.phone-row{border-top:1px solid rgba(255,255,255,.1)}
.phone-row b{font-weight:400;color:#8e8e93}
.phone-note{margin:0 4px 11px;font-size:8px;line-height:1.45;color:#8e8e93}
.phone-note:last-child{margin-bottom:0}
.tog{width:30px;height:18px;border-radius:999px;flex:none;position:relative;background:#30d158}
.tog::after{content:"";position:absolute;top:2px;right:2px;width:14px;height:14px;border-radius:50%;background:#fff}

.connect-screen{
  margin:0;position:absolute;right:-56px;bottom:-4px;width:216px;
  text-align:center;z-index:2;transform:rotate(-3deg);
}
.connect-screen .calc-shell{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 2px 6px rgba(0,0,0,.35),
             0 20px 44px rgba(0,0,0,.55),0 48px 90px rgba(0,0,0,.45);
}
.connect-screen figcaption{margin-top:10px;font-size:12px;color:var(--muted)}
.connect-copy h2{font-size:40px;font-weight:600;line-height:1.16;margin-bottom:12px}
.connect-copy p{font-size:18px;line-height:1.62;color:var(--muted);max-width:560px}

@media(max-width:1050px){
  .connect-layout{gap:48px}
  .connect-copy h2{font-size:38px}
  .connect-copy p{font-size:17px}
}
@media(max-width:860px){
  .connect-band{padding:76px 0}
  .connect-layout{grid-template-columns:1fr;gap:44px}
  .connect-copy h2 br{display:none}
  .connect-stage{flex-direction:column;align-items:center;gap:26px}
  .phone-mock{transform:none}
  .connect-screen{position:static;width:min(300px,100%);transform:none;margin-top:8px}
}

/* custom prompt section: copy on the left, render on the right */
.prompt-copy{order:1}
.prompt-stage{order:2}

/* ===== REPLIES SECTION ===== */
.replies-band{padding:112px 0}
.replies-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:90px;align-items:center}
.replies-stage{position:relative;width:min(560px,100%);margin:0 auto;padding:30px 0}
.replies-stage .calc-shell{
  width:min(348px,68%);margin:0 auto;padding:12px;border-radius:22px;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(165deg,rgba(255,255,255,.095),rgba(255,255,255,.03) 55%,rgba(255,255,255,.055));
  backdrop-filter:blur(24px) saturate(165%);
  -webkit-backdrop-filter:blur(24px) saturate(165%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 2px 6px rgba(0,0,0,.3),
             0 18px 40px rgba(0,0,0,.5),0 44px 86px rgba(0,0,0,.4);
}
.replies-stage .calc-screen{border-radius:11px;overflow:hidden;box-shadow:inset 0 2px 7px rgba(0,0,0,.5)}
.replies-stage .calc-screen img{display:block;width:100%;height:auto}

.reply-count{
  position:absolute;top:0;left:50%;transform:translateX(-50%);z-index:3;
  padding:6px 12px;border-radius:999px;font-size:11px;color:var(--muted);
  border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.reply-pill{
  position:absolute;z-index:3;display:flex;align-items:center;gap:9px;
  padding:9px 13px;border-radius:14px;white-space:nowrap;
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(165deg,rgba(38,39,42,.92),rgba(26,27,30,.92));
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  box-shadow:0 2px 5px rgba(0,0,0,.35),0 16px 34px rgba(0,0,0,.5);
}
.reply-typed{left:-38px;top:22%}
.reply-photo{right:-14px;bottom:24%}
.keycap{
  padding:4px 8px;border-radius:5px;font-size:9px;font-weight:700;letter-spacing:.04em;color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 1px 2px rgba(0,0,0,.5);
}
.keycap-alpha{background:linear-gradient(180deg,#5bb573,#3c8a52)}
.keycap-graph{background:linear-gradient(180deg,#4a4e57,#343840)}
.reply-text{font-family:var(--font-mono,ui-monospace,monospace);font-size:11.5px;color:#fff;display:flex;align-items:center}
.reply-caret{display:inline-block;width:2px;height:1em;margin-left:3px;background:rgba(255,255,255,.9);animation:prompt-blink 1.1s steps(1) infinite}
.reply-lcd{
  padding:4px 9px;border-radius:3px;font-family:ui-monospace,monospace;font-size:11px;
  color:#1b2416;background:#9ca98a;box-shadow:inset 0 1px 3px rgba(0,0,0,.3);
}
.replies-copy h2{font-size:42px;font-weight:600;line-height:1.15;margin-bottom:12px}
.replies-copy p{font-size:18px;line-height:1.62;color:var(--muted);max-width:560px}

@media(max-width:1050px){
  .replies-layout{gap:52px}
  .replies-copy h2{font-size:36px}
  .replies-copy p{font-size:17px}
}
@media(max-width:860px){
  .replies-band{padding:76px 0}
  .replies-layout{grid-template-columns:1fr;gap:46px}
  .replies-copy h2 br{display:none}
  .replies-stage{width:min(330px,100%)}
  .replies-stage .calc-shell{width:min(260px,76%)}
  .reply-typed{left:-14px;top:20%}
  .reply-photo{right:-8px;bottom:22%}
}
@media(prefers-reduced-motion:reduce){.reply-caret{animation:none}}

/* the Hold countdown inside the photo-reply pill */
.cd{position:relative;display:inline-block;width:1ch;height:1em;line-height:1;vertical-align:-.12em;text-align:left}
.cd i{position:absolute;left:0;top:0;line-height:1;font-style:normal;opacity:0;animation:none 6s linear infinite}
.cd i:nth-child(1){animation-name:cd1}
.cd i:nth-child(2){animation-name:cd2}
.cd i:nth-child(3){animation-name:cd3}
.cd i:nth-child(4){animation-name:cd4}
.cd i:nth-child(5){animation-name:cd5}
.cd i:nth-child(6){animation-name:cd6}
@keyframes cd1{0%,16.5%{opacity:1}16.6%,100%{opacity:0}}
@keyframes cd2{0%,16.5%{opacity:0}16.6%,33.2%{opacity:1}33.3%,100%{opacity:0}}
@keyframes cd3{0%,33.2%{opacity:0}33.3%,49.9%{opacity:1}50%,100%{opacity:0}}
@keyframes cd4{0%,49.9%{opacity:0}50%,66.5%{opacity:1}66.6%,100%{opacity:0}}
@keyframes cd5{0%,66.5%{opacity:0}66.6%,83.2%{opacity:1}83.3%,100%{opacity:0}}
@keyframes cd6{0%,83.2%{opacity:0}83.3%,100%{opacity:1}}
@media(prefers-reduced-motion:reduce){
  .cd i{animation:none;opacity:0}
  .cd i:nth-child(4){opacity:1}
}

/* ===== CHAT SECTION ===== */
.chat-band{padding:112px 0}
.chat-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:90px;align-items:center}
.chat-copy h2{font-size:42px;font-weight:600;line-height:1.15;margin-bottom:12px}
.chat-copy p{font-size:18px;line-height:1.62;color:var(--muted);max-width:560px}

.chat-stage{position:relative;padding:54px 0 14px}
.flight-track{position:relative;height:150px;max-width:460px;margin:0 auto}

/* the path the message takes */
.flight-line{
  position:absolute;left:14%;right:14%;top:50%;height:1px;
  background:linear-gradient(90deg,rgba(255,255,255,.05),rgba(255,255,255,.16),rgba(255,255,255,.05));
}

/* the two devices, suggested rather than drawn */
.node{position:absolute;top:50%;transform:translateY(-50%);margin:0;text-align:center}
.node-a{left:0}
.node-b{right:0}
.node-body{
  position:relative;display:block;width:52px;height:74px;border-radius:12px;margin:0 auto;
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(165deg,rgba(255,255,255,.1),rgba(255,255,255,.03));
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 12px 28px rgba(0,0,0,.45);
}
.node-body>i{
  position:absolute;left:8px;right:8px;top:9px;height:26px;border-radius:4px;
  background:rgba(156,169,138,.55);
}
.node figcaption{margin-top:11px;font-size:11px;letter-spacing:.05em;color:var(--muted)}

/* the message itself */
.msg{
  position:absolute;top:50%;left:17%;transform:translateY(-50%);
  padding:8px 13px;border-radius:12px;white-space:nowrap;
  font-family:ui-monospace,monospace;font-size:11.5px;color:#fff;
  border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(165deg,rgba(44,46,50,.95),rgba(28,30,34,.95));
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:0 2px 5px rgba(0,0,0,.4),0 14px 30px rgba(0,0,0,.5);
  animation:msg-fly 4.2s cubic-bezier(.45,0,.3,1) infinite;
}
.msg::after{                      /* the trail it drags behind */
  content:"";position:absolute;right:calc(100% + 6px);top:50%;
  width:54px;height:2px;border-radius:2px;transform:translateY(-50%);
  background:linear-gradient(90deg,transparent,var(--button-hover));
  opacity:.55;
}
@keyframes msg-fly{
  0%{left:17%;opacity:0}
  9%{left:17%;opacity:1}
  66%{left:53%;opacity:1}
  79%{left:53%;opacity:0}
  100%{left:17%;opacity:0}
}

/* the far end lights up as it lands */
.node-ping{
  position:absolute;inset:-10px;border-radius:18px;
  border:1.5px solid var(--button-hover);
  animation:node-ping 4.2s ease-out infinite;
}
@keyframes node-ping{
  0%,64%{transform:scale(.82);opacity:0}
  68%{transform:scale(.86);opacity:.7}
  92%,100%{transform:scale(1.5);opacity:0}
}
@media(prefers-reduced-motion:reduce){
  .msg{animation:none;left:35%;opacity:1}
  .node-ping{animation:none;opacity:.25}
}
@media(max-width:1050px){
  .chat-layout{gap:52px}
  .chat-copy h2{font-size:36px}
  .chat-copy p{font-size:17px}
}
@media(max-width:860px){
  .chat-band{padding:76px 0}
  .chat-layout{grid-template-columns:1fr;gap:46px}
  .chat-copy h2 br{display:none}
  .flight-track{height:130px;max-width:320px}
  .node-body{width:44px;height:62px}
  .chat-waves{width:110px;height:110px}
}
@media(prefers-reduced-motion:reduce){.chat-waves span{animation:none;opacity:.25;width:120px;height:120px}}

.chat-stage{padding:16px 0 14px}

/* ===== CHAT: two calculators in profile, taking turns ===== */
.talk{display:flex;align-items:flex-end;justify-content:center;gap:clamp(30px,8vw,88px);padding:6px 0 4px}
.talk-unit{display:flex;flex-direction:column;align-items:center}

.chat-pair{display:flex;align-items:center;justify-content:center;gap:clamp(20px,5vw,54px)}
.chat-unit{margin:0;flex:0 1 196px;min-width:0;text-align:center}
.chat-unit .calc-shell{
  padding:10px;border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(165deg,rgba(255,255,255,.095),rgba(255,255,255,.03) 55%,rgba(255,255,255,.055));
  backdrop-filter:blur(24px) saturate(165%);
  -webkit-backdrop-filter:blur(24px) saturate(165%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 2px 6px rgba(0,0,0,.3),
             0 16px 36px rgba(0,0,0,.5),0 40px 78px rgba(0,0,0,.4);
}
.chat-unit .calc-screen{border-radius:9px;overflow:hidden;box-shadow:inset 0 2px 6px rgba(0,0,0,.5)}
.chat-unit .calc-screen img{display:block;width:100%;height:auto}
.chat-unit figcaption{margin-top:12px;font-size:12px;letter-spacing:.04em;color:var(--muted)}
.chat-left{transform:rotate(-3deg)}
.chat-right{transform:rotate(3deg)}
@media(prefers-reduced-motion:reduce){.bubble{animation:none;opacity:1;transform:none}}

/* ===== MOBILE: one column, centred text, render above the copy ===== */
@media(max-width:860px){
  .connect-layout,.prompt-layout,.replies-layout,.chat-layout{
    grid-template-columns:1fr;gap:34px;
  }
  /* render first, words underneath, on every one of these sections */
  .connect-stage,.prompt-stage,.replies-stage,.chat-stage{order:1}
  .connect-copy,.prompt-copy,.replies-copy,.chat-copy{order:2}

  /* centred, like the proof section */
  .connect-copy,.prompt-copy,.replies-copy,.chat-copy{text-align:center}
  .connect-copy p,.prompt-copy p,.replies-copy p,.chat-copy p{margin-inline:auto}
  .connect-copy h2 br,.prompt-copy h2 br,.replies-copy h2 br,.chat-copy h2 br{display:none}

  /* smaller type so it stops swamping the screen */
  .connect-copy h2,.prompt-copy h2,.replies-copy h2,.chat-copy h2,
  .proof-intro h2{font-size:27px;line-height:1.2;margin-bottom:10px}
  .connect-copy p,.prompt-copy p,.replies-copy p,.chat-copy p,
  .proof-intro p{font-size:15px;line-height:1.6}
  .hero-copy{font-size:15px}

  /* hotspot: phone and calculator side by side rather than stacked */
  .connect-stage{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:14px;max-width:none;padding:8px 0}
  .phone-mock{width:min(190px,52%);transform:none;margin:0}
  .connect-screen{position:static;width:min(160px,44%);transform:none;margin:0}
  .connect-screen figcaption{font-size:11px;margin-top:8px}

  /* keep the breakout pills inside the viewport */
  .replies-stage{width:min(340px,100%)}
  .reply-typed{left:-6px;top:16%}
  .reply-photo{right:-6px;bottom:18%}
  .reply-pill{padding:7px 10px;gap:7px}
  .reply-text{font-size:10.5px}

  .chat-pair{gap:14px}
  .chat-unit{flex:0 1 150px}
}
@media(max-width:400px){
  .connect-copy h2,.prompt-copy h2,.replies-copy h2,.chat-copy h2,
  .proof-intro h2{font-size:24px}
  .connect-copy p,.prompt-copy p,.replies-copy p,.chat-copy p,
  .proof-intro p{font-size:14px}
  .connect-stage{gap:10px}
  .reply-text{font-size:9.5px}
}

/* Learn more: a quiet index of the pages that sit behind the product. */
.learn-band{padding:104px 0 120px}
.learn-layout{
  display:grid;grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);
  gap:72px;align-items:start;max-width:1180px;
}
.learn-intro h2{font-size:40px;font-weight:600;line-height:1.14;letter-spacing:-.01em;margin:0 0 14px}
.learn-intro p{font-size:17px;line-height:1.6;color:var(--muted);margin:0;max-width:30ch}
.learn-list{list-style:none;margin:0;padding:0}
.learn-list li + li{border-top:1px solid rgba(255,255,255,.09)}
.learn-list a{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;
  gap:18px;align-items:start;
  padding:26px 18px 26px 10px;margin-inline:-10px;
  border-radius:14px;text-decoration:none;color:inherit;
  transition:background .2s ease;
}
.learn-list a:hover,.learn-list a:focus-visible{background:rgba(255,255,255,.045)}
.learn-list a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.learn-list a > svg{width:19px;height:19px;color:var(--muted);margin-top:2px;flex:none}
.learn-text{display:block;min-width:0}
.learn-text strong{display:block;font-size:17px;font-weight:600;color:var(--ink);margin-bottom:6px}
.learn-text span{display:block;font-size:15px;line-height:1.55;color:var(--muted)}
.learn-chevron{align-self:center}
.learn-list a > svg.learn-chevron{
  width:17px;height:17px;margin-top:0;color:rgba(255,255,255,.42);
  transition:transform .2s ease,color .2s ease;
}
.learn-list a:hover > svg.learn-chevron{transform:translateX(3px);color:var(--ink)}
@media(max-width:1050px){
  .learn-layout{grid-template-columns:1fr;gap:34px}
  .learn-intro h2{font-size:34px}
  .learn-intro p{max-width:none}
}
@media(max-width:860px){
  .learn-band{padding:72px 0 84px}
  .learn-intro{text-align:center}
  .learn-intro h2{font-size:27px;line-height:1.2;margin-bottom:10px}
  .learn-intro p{font-size:15px;margin-inline:auto}
  .learn-list a{gap:14px;padding:20px 12px 20px 8px}
  .learn-text strong{font-size:15.5px;margin-bottom:4px}
  .learn-text span{font-size:13.5px}
}

/* the learn band rides the same scrim as the rest of the page */
.learn-band{background:transparent}

/* the homepage bar rides the scrim: clear over the hero, solid once scrolled.
   Needs .home-page to outrank the earlier `.home-page .site-header` fill. */
.home-page .site-header{background:rgba(11,11,12,var(--scrim-o,0));border-bottom:0}
.footer-blurb{max-width:46ch;font-size:14px;line-height:1.65;color:var(--muted);margin-top:14px}
@media(max-width:760px){.footer-blurb{max-width:none;font-size:13px;margin-top:12px}}

/* centre the learn band on the page and sit the intro beside the middle of the list */
.learn-layout{margin-inline:auto}
.learn-intro{align-self:center}

/* The header only stuck on the homepage; FAQ and contact scrolled theirs away
   while the policy pages kept theirs. Make every page behave the same. */
.site-header{position:sticky;top:0}

/* --accent is #dedede (an off-white), so the teal needs its own token. This is
   the brand teal already used in the policy pages' own palette. */
:root{--accent-bright:#00d4c8}
summary svg,.n-term-icon{color:var(--accent-bright)}

/* FAQ, matched element by element to the policy pages' computed values.
   Sizes already agreed; the visible difference was letter-spacing, which
   policy-theme.css tracks at -.025em on headings and -.01em on body text. */
.faq-page .faq-section{padding-block:0}
.faq-page .faq-layout{max-width:940px;width:calc(100% - 96px);margin-inline:auto;padding:80px 0 88px}
.faq-page .faq-heading{text-align:left;margin-bottom:34px;max-width:none}
.faq-page .faq-heading .kicker{
  font-size:13px;font-weight:600;line-height:1.65;letter-spacing:.15em;
  text-transform:none;color:var(--muted);margin:0 0 18px;
}
.faq-page .faq-heading h1{
  font-size:56px;font-weight:600;line-height:1.12;letter-spacing:-.025em;
  color:var(--ink);margin:0 0 20px;
}
.faq-page .faq-heading .n-updated{
  font-size:14px;font-weight:400;line-height:1.5;letter-spacing:-.01em;
  color:var(--muted);margin:0 0 22px;
}
.faq-page .faq-heading .faq-intro{
  font-size:18px;font-weight:400;line-height:1.7;letter-spacing:-.01em;
  color:var(--muted);max-width:780px;margin:0;
}
.faq-page .faq-group{
  font-size:20px;font-weight:600;line-height:1.4;letter-spacing:-.025em;
  color:var(--ink);margin:52px 0 4px;scroll-margin-top:110px;
}
.faq-page .faq-group:first-child{margin-top:0}
.faq-page .faq-list details{border-bottom:0;border-top:1px solid var(--line)}
.faq-page .faq-list summary{
  padding:22px 0;gap:20px;font-size:16px;font-weight:500;line-height:1.5;letter-spacing:-.01em;
}
.faq-page .faq-list summary svg{width:20px;height:20px;color:var(--accent-bright);flex:none}
.faq-page .faq-answer{padding:0 28px 24px 0}
.faq-page .faq-answer p,.faq-page .faq-answer li{
  font-size:14px;font-weight:400;line-height:1.8;letter-spacing:normal;color:var(--muted);
}
.faq-page .faq-answer ul,.faq-page .faq-answer ol{padding-left:22px;margin-top:12px}
@media(max-width:900px){
  .faq-page .faq-layout{padding-top:52px}
  .faq-page .faq-heading h1{font-size:44px}
}
@media(max-width:600px){
  .faq-page .faq-layout{width:calc(100% - 44px);padding:42px 0 64px}
  .faq-page .faq-heading h1{font-size:38px}
  .faq-page .faq-heading .faq-intro{font-size:16px}
  .faq-page .faq-group{font-size:18px;margin-top:40px}
  .faq-page .faq-list summary{font-size:15px}
  .faq-page .faq-answer{padding-right:0}
}

/* the policy pages' .n-nav-logo tracks at .02em; .wordmark had none, so the
   same 30px/750 mark came out 3px narrower on the home, FAQ and contact pages */
.wordmark{letter-spacing:.02em}

/* confirmation for a copied email address */
.copy-toast{
  position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(12px);
  z-index:9999;pointer-events:none;opacity:0;
  padding:12px 20px;border-radius:999px;
  font-size:14px;font-weight:500;letter-spacing:-.01em;color:var(--ink);
  background:rgba(20,21,22,.94);border:1px solid var(--line);
  box-shadow:0 10px 30px rgba(0,0,0,.45);
  transition:opacity .2s ease,transform .2s ease;
}
.copy-toast.is-on{opacity:1;transform:translateX(-50%) translateY(0)}
@media(prefers-reduced-motion:reduce){.copy-toast{transition:none}}

/* Closing call to action, then a three-part footer: copyright left,
   links and socials centred, "from Nohli" right. */
.cta-band{background:transparent;padding:120px 0 92px;text-align:center}
.cta-inner{display:flex;flex-direction:column;align-items:center}
.cta-band h2{font-size:48px;font-weight:600;line-height:1.14;letter-spacing:-.025em;margin:0}
.cta-band p{max-width:56ch;margin:18px auto 0;font-size:16px;line-height:1.7;letter-spacing:-.01em;color:var(--muted)}
.cta-button{margin-top:32px;min-height:52px;padding:15px 34px;font-size:14px}
.cta-button svg{width:17px;height:17px}

.site-footer{background:transparent;padding:52px 0 40px;border-top:1px solid var(--line)}
.footer-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:30px}
.footer-copy{margin:0;font-size:13px;letter-spacing:-.01em;color:var(--muted);justify-self:start}
.footer-center{display:flex;flex-direction:column;align-items:center;gap:20px}
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 24px;font-size:13px;margin:0}
.footer-links a{color:var(--muted);transition:color .2s}
.footer-links a:hover{color:var(--ink)}
.footer-from{margin:0;justify-self:end;font-size:13px;letter-spacing:-.01em;color:var(--muted)}
.footer-from span{color:var(--ink);font-weight:750;font-size:16px;letter-spacing:.02em}
.site-footer .social-links{display:flex;gap:10px}
.site-footer .n-footer-legal{
  max-width:900px;margin:34px auto 0;padding-top:26px;border-top:1px solid var(--line);
  font-size:11px;line-height:1.8;color:var(--muted);text-align:center;
}
@media(max-width:1050px){.cta-band h2{font-size:40px}}
@media(max-width:860px){
  .cta-band{padding:80px 0 64px}
  .cta-band h2{font-size:30px}
  .cta-band p{font-size:15px;margin-top:14px}
  .cta-button{margin-top:26px}
  .footer-row{grid-template-columns:1fr;justify-items:center;text-align:center;gap:26px}
  .footer-copy,.footer-from{justify-self:center}
  .footer-links{gap:10px 18px;font-size:12px}
  .site-footer .n-footer-legal{font-size:10px;margin-top:28px}
}

/* Shop: two product cards rather than one full-bleed listing */
.shop-section{background:transparent}
.shop-head{max-width:940px;margin:0 auto 42px}
.shop-head .kicker{font-size:13px;font-weight:600;line-height:1.65;letter-spacing:.15em;color:var(--muted);margin:0 0 18px}
.shop-head h1{font-size:56px;font-weight:600;line-height:1.12;letter-spacing:-.025em;margin:0}
.shop-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;
  max-width:940px;margin:0 auto;align-items:start;
}
.shop-card{
  display:flex;flex-direction:column;
  border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:26px;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.022));
  backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);
}
.shop-media{
  display:flex;align-items:center;justify-content:center;
  height:260px;border-radius:14px;overflow:hidden;margin-bottom:22px;
  background:rgba(0,0,0,.22);
}
.shop-media img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.shop-card .gallery-controls{display:flex;align-items:center;justify-content:center;gap:14px;margin:-8px 0 18px}
.shop-body{display:flex;flex-direction:column}
.shop-card h2{font-size:22px;font-weight:600;line-height:1.3;letter-spacing:-.02em;margin:0 0 10px}
.shop-card .price{font-size:26px;font-weight:600;letter-spacing:-.02em;margin:0 0 14px}
.shop-card .price span{font-size:13px;font-weight:500;color:var(--muted);margin-left:4px}
.shop-card .price-soon{font-size:18px;color:var(--muted)}
.shop-summary{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 20px}
.shop-card .buy-button{align-self:flex-start;min-height:48px;padding:14px 26px;font-size:13px}
.shop-card .purchase-note,.shop-card .study-note{font-size:12px;line-height:1.7;color:var(--muted);margin:16px 0 0}
.shop-card.is-soon .shop-media{background:rgba(0,0,0,.3)}
.shop-card.is-soon .shop-media img{max-height:200px;opacity:.55}
.shop-details{max-width:940px;margin:44px auto 0}
.shop-details details{border-top:1px solid var(--line)}
.shop-details summary{padding:22px 0;font-size:16px;font-weight:500;letter-spacing:-.01em}
@media(max-width:860px){
  .shop-head{margin-bottom:30px}
  .shop-head h1{font-size:38px}
  .shop-grid{grid-template-columns:1fr;gap:20px}
  .shop-media{height:220px}
  .shop-card{padding:22px}
}

/* --- shop card revisions --- */
/* both cards share a height; "Read more" is what grows one */
.shop-grid{align-items:stretch}
.shop-card{height:100%}
.shop-body{flex:1}

/* the fulfilment and study notes carry real terms, so give them weight */
.shop-card .purchase-note,.shop-card .study-note{
  font-size:13px;font-weight:600;line-height:1.65;color:var(--ink);opacity:.82;margin:18px 0 0;
}

.shop-more{margin-top:20px;border-top:1px solid var(--line)}
.shop-more > summary{
  padding:18px 0 0;font-size:14px;font-weight:600;letter-spacing:-.01em;color:var(--ink);
}
.shop-more > summary svg{width:16px;height:16px;color:var(--accent-bright)}
.shop-more-body{padding-top:4px}
.shop-more .product-description,.shop-more .specs-disclosure{border-top:1px solid var(--line);margin-top:14px}
.shop-more summary{cursor:pointer}

/* the Basic Cam shape is a shadow, so it sits smaller and quieter */
.shop-card.is-soon .shop-media img{max-height:150px;opacity:1}
.shop-card.is-soon .shop-media{background:rgba(0,0,0,.34)}

/* every Shop and Buy button lights up on hover */
.header-actions .button,.cta-button,.buy-button,.n-nav-cta{
  transition:background .2s ease,transform .2s ease,box-shadow .25s ease,filter .2s ease;
}
.header-actions .button:hover,.cta-button:hover,.buy-button:hover,.n-nav-cta:hover,
.header-actions .button:focus-visible,.cta-button:focus-visible,
.buy-button:focus-visible,.n-nav-cta:focus-visible{
  background:var(--button-hover);
  filter:brightness(1.14);
  box-shadow:0 0 0 1px rgba(0,212,200,.5),0 10px 30px rgba(0,212,200,.3);
  transform:translateY(-1px);
}
@media(prefers-reduced-motion:reduce){
  .header-actions .button,.cta-button,.buy-button,.n-nav-cta{transition:none}
  .header-actions .button:hover,.cta-button:hover,.buy-button:hover,.n-nav-cta:hover{transform:none}
}

/* the purchase terms read brighter: full ink, heavier, with a soft sheen */
.shop-card .purchase-note,.shop-card .study-note{
  font-size:13px;font-weight:700;line-height:1.65;opacity:1;
  color:#f2f3f3;
  background:linear-gradient(100deg,#ffffff 0%,#cfd3d4 48%,#ffffff 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  text-shadow:none;
}
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .shop-card .purchase-note,.shop-card .study-note{color:#f2f3f3;-webkit-text-fill-color:#f2f3f3}
}
.shop-card.is-soon .study-note{margin-top:14px}

/* the dots row is reserved on both cards so the two titles share a baseline */
.shop-card .gallery-controls{min-height:40px}

/* the Basic Cam shape is presence only, so it sits smaller and dimmer still */
.shop-card.is-soon .shop-media img{max-height:112px}

/* the shipping terms shine constantly: a repeating tile whose two edges are the
   same grey, shifted by exactly one tile per cycle, so the loop never seams */
.shop-card .purchase-note{
  background-image:linear-gradient(100deg,
    #b4babd 0%, #b4babd 28%, #ffffff 44%, #ffffff 56%, #b4babd 72%, #b4babd 100%);
  background-size:220px 100%;
  background-repeat:repeat;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  animation:note-sheen 2.6s linear infinite;
}
@keyframes note-sheen{
  from{background-position:0 0}
  to{background-position:220px 0}
}
@media(prefers-reduced-motion:reduce){
  .shop-card .purchase-note{animation:none}
}

/* "Coming very soon" is the price row's counterpart, so it matches its type
   exactly - only the colour differs - which keeps the summaries on one line */
.shop-card .price-soon{font-size:26px;font-weight:600;letter-spacing:-.02em;color:var(--muted)}
.shop-card.is-soon .shop-media img{max-height:88px}

/* the Basic Cam shadow needs a lit surface to fall on, or black on black
   reads as nothing - a soft pool of light behind it, the shape in pure black */
.shop-card.is-soon .shop-media{
  background:
    radial-gradient(120% 90% at 50% 38%, #32373e 0%, #22252a 42%, #15171a 78%);
}
.shop-card.is-soon .shop-media img{max-height:92px;opacity:.96}

/* the sweep has to be unmistakable: dim base, a wide pure-white core,
   and a halo so the bright pass actually glows */
.shop-card .purchase-note{
  background-image:linear-gradient(100deg,
    #868d92 0%, #868d92 24%, #ffffff 42%, #ffffff 58%, #868d92 76%, #868d92 100%);
  background-size:200px 100%;
  animation:note-sheen 2.2s linear infinite;
  filter:drop-shadow(0 0 7px rgba(255,255,255,.4));
}
@keyframes note-sheen{
  from{background-position:0 0}
  to{background-position:200px 0}
}
@media(prefers-reduced-motion:reduce){
  .shop-card .purchase-note{animation:none;filter:none}
}

/* no halo - the glow read as smoke. Just bright letters with a clean sweep. */
.shop-card .purchase-note{
  background-image:linear-gradient(100deg,
    #d8dcde 0%, #d8dcde 26%, #ffffff 42%, #ffffff 58%, #d8dcde 74%, #d8dcde 100%);
  filter:none;
}
.shop-card .study-note{color:#eceeef;-webkit-text-fill-color:#eceeef}

/* both media panels share the same lit surface */
.shop-card .shop-media{
  background:radial-gradient(120% 90% at 50% 38%, #32373e 0%, #22252a 42%, #15171a 78%);
}
.shop-card.is-soon .shop-media img{max-height:92px}

/* the sweep needs the base a clear step below white or there is nothing to see */
.shop-card .purchase-note{
  background-image:linear-gradient(100deg,
    #9ea5a9 0%, #9ea5a9 26%, #ffffff 42%, #ffffff 58%, #9ea5a9 74%, #9ea5a9 100%);
}

/* the light now leaves the object itself, drawn in the artwork, so the panel
   behind it stays clean - the hatching read as wallpaper */
/* plain sharp shadow, no rays */
.shop-card.is-soon .shop-media img{max-height:92px;width:auto;height:auto}

/* scrollbar: no track, just a pale thumb */
html{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}
*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}
::-webkit-scrollbar{width:11px;height:11px;background:transparent}
::-webkit-scrollbar-track,::-webkit-scrollbar-track-piece,::-webkit-scrollbar-corner{
  background:transparent;border:0;box-shadow:none;
}
::-webkit-scrollbar-thumb{
  background-color:rgba(255,255,255,.3);
  border:3px solid transparent;background-clip:content-box;border-radius:999px;
}
::-webkit-scrollbar-thumb:hover{background-color:rgba(255,255,255,.46);background-clip:content-box}
::-webkit-scrollbar-button{display:none;width:0;height:0}

/* larger product imagery */
.shop-card .shop-media{height:340px}
.shop-card.is-soon .shop-media img{max-height:118px}
@media(max-width:860px){.shop-card .shop-media{height:270px}}
