@font-face{font-family:"Figtree";font-style:normal;font-display:swap;font-weight:300 900;src:url(fonts/figtree-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Figtree";font-style:normal;font-display:swap;font-weight:300 900;src:url(fonts/figtree-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{color-scheme:light;--paper:#fff;--ink:#0a0a0a;--muted:oklch(0.44 0.01 275);--line:oklch(0.9 0.01 275);--soft:oklch(0.965 0.016 275);--soft-2:oklch(0.93 0.035 275);--card:#fff;--accent:#4b53c2;--on-accent:#fff;--accent-ink:#3a41a3;--ok:oklch(0.508 0.118 165.6);--ok-soft:oklch(0.962 0.03 166);--wish:oklch(0.55 0.19 2);--amber:oklch(0.555 0.163 49);--band:#4b53c2;--band-ink:#fff;--band-muted:oklch(0.9 0.04 275);--shadow:0 1px 0 oklch(0 0 0/6%),0 30px 60px -30px oklch(0.3 0.08 275/45%);--sl:block;--sd:none}
:root[data-theme=dark]{color-scheme:dark;--paper:#0a0a0a;--ink:oklch(0.96 0.005 275);--muted:oklch(0.74 0.015 275);--line:oklch(0.28 0.015 275);--soft:oklch(0.16 0.02 275);--soft-2:oklch(0.22 0.04 275);--card:oklch(0.14 0.01 275);--accent:#8d9df5;--on-accent:#0a0a0a;--accent-ink:#a9b5f8;--ok:oklch(0.845 0.143 165);--ok-soft:oklch(0.262 0.051 172.5);--wish:oklch(0.81 0.11 2);--amber:oklch(0.879 0.169 91.6);--band:oklch(0.22 0.07 275);--band-ink:oklch(0.97 0.01 275);--band-muted:oklch(0.82 0.05 275);--shadow:0 0 0 1px oklch(1 0 0/8%),0 30px 60px -30px oklch(0 0 0/80%);--sl:none;--sd:block}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper:#0a0a0a;--ink:oklch(0.96 0.005 275);--muted:oklch(0.74 0.015 275);--line:oklch(0.28 0.015 275);--soft:oklch(0.16 0.02 275);--soft-2:oklch(0.22 0.04 275);--card:oklch(0.14 0.01 275);--accent:#8d9df5;--on-accent:#0a0a0a;--accent-ink:#a9b5f8;--ok:oklch(0.845 0.143 165);--ok-soft:oklch(0.262 0.051 172.5);--wish:oklch(0.81 0.11 2);--amber:oklch(0.879 0.169 91.6);--band:oklch(0.22 0.07 275);--band-ink:oklch(0.97 0.01 275);--band-muted:oklch(0.82 0.05 275);--shadow:0 0 0 1px oklch(1 0 0/8%),0 30px 60px -30px oklch(0 0 0/80%);--sl:none;--sd:block}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 18px/1.55 Figtree,system-ui,sans-serif;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;transition:background-color .3s,color .3s}
img{max-width:100%;display:block}
a{color:var(--accent-ink);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
::selection{background:color-mix(in oklch,var(--accent) 30%,transparent)}
h1,h2,h3{margin:0;font-weight:700;letter-spacing:-0.03em;line-height:1.04;text-wrap:balance}
h1{font-size:clamp(42px,7.2vw,88px);letter-spacing:-0.045em;line-height:.98}
h2{font-size:clamp(32px,4.6vw,56px)}
h3{font-size:21px;letter-spacing:-0.015em;line-height:1.2}
p{margin:0;text-wrap:pretty}
.wrap{width:100%;max-width:1200px;margin-inline:auto;padding-inline:clamp(20px,5vw,40px)}
.skip{position:absolute;left:12px;top:-60px;background:var(--accent);color:var(--on-accent);padding:10px 14px;border-radius:10px;z-index:50;font-weight:600}
.skip:focus{top:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--muted)}
.lead{font-size:clamp(19px,2vw,22px);line-height:1.5;color:var(--muted);max-width:34em}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;letter-spacing:.02em;color:var(--accent-ink)}
.eyebrow::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--accent)}
.shot-l{display:var(--sl)}.shot-d{display:var(--sd)}

/* header */
.site-header{position:sticky;top:0;z-index:20;background:color-mix(in oklch,var(--paper) 82%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:border-color .3s;view-transition-name:site-header}
.site-header.scrolled{border-bottom-color:var(--line)}
.bar{display:flex;align-items:center;gap:20px;height:68px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;margin-right:auto;border-radius:8px}
.brand-mark{width:30px;height:30px;color:var(--accent);flex:none}
.wordmark{width:128px;height:17px;fill:currentColor;flex:none}
.nav{display:flex;align-items:center;gap:4px}
.nav a{color:var(--ink);text-decoration:none;font-weight:500;font-size:16px;padding:8px 12px;white-space:nowrap;border-radius:999px;transition:background-color .2s}
.nav a:hover{background:var(--soft)}
.nav a[aria-current=page]{background:var(--soft-2)}
.icon-btn{width:44px;height:44px;display:grid;place-items:center;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;transition:background-color .2s,transform .2s}
.icon-btn:hover{background:var(--soft)}
.icon-btn:active{transform:scale(.94)}
.icon-btn svg{width:20px;height:20px}
.theme-btn .moon{display:var(--sl)}.theme-btn .sun{display:var(--sd)}
.menu{display:none;position:relative}
.menu summary{list-style:none}
.menu summary::-webkit-details-marker{display:none}
.menu-panel{position:absolute;right:0;top:54px;min-width:220px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:8px;box-shadow:var(--shadow);display:flex;flex-direction:column}
.menu-panel a{padding:12px 14px;border-radius:12px;color:var(--ink);text-decoration:none;font-weight:500}
.menu-panel a:hover{background:var(--soft)}
@media (max-width:960px){.nav{display:none}.menu{display:block}.bar .btn-sm{display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:999px;font:600 17px/1 Figtree,sans-serif;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:transform .2s,background-color .2s,box-shadow .2s}
.btn svg{width:20px;height:20px;flex:none}
.btn-primary{background:var(--accent);color:var(--on-accent)}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 10px 24px -10px var(--accent)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{background:var(--soft)}
.btn-sm{min-height:42px;padding:0 18px;font-size:15px}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.soon{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;padding:5px 11px;border-radius:999px;background:var(--soft-2);color:var(--accent-ink)}
.soon::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{50%{opacity:.35}}

/* sections */
section{position:relative}
.sec{padding-block:clamp(72px,11vw,140px)}
.sec-head{display:flex;flex-direction:column;gap:18px;margin-bottom:clamp(36px,5vw,64px);max-width:760px}

/* hero */
.hero{padding-block:clamp(36px,6vw,72px) clamp(56px,8vw,96px);overflow:clip}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(40px,5vw,56px);align-items:center}
.hero-copy{display:flex;flex-direction:column;gap:24px;align-items:flex-start}
.hero-note{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:15px;color:var(--muted)}
.hero-note span{display:inline-flex;align-items:center;gap:7px}
.hero-note svg{width:16px;height:16px;color:var(--ok)}
.hero-shots{position:relative;padding-bottom:8%;padding-left:12%}
.win{border-radius:14px;overflow:hidden;box-shadow:var(--shadow);background:var(--card);aspect-ratio:16/10}
.win img{width:100%;height:100%;object-fit:cover}
.phone{position:relative;aspect-ratio:390/844;border-radius:13%/6%;overflow:hidden;box-shadow:0 0 0 6px #111,0 0 0 7px oklch(0.6 0 0/35%),var(--shadow);background:var(--paper)}
.phone img{width:100%;height:100%;object-fit:cover}
.hero-shots .phone{position:absolute;left:0;bottom:0;width:30%}
.hero-shots .win{transform-origin:left center}
@media (min-width:1000px){.hero-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.hero-shots{margin-right:-8vw}}
.hero-tag{position:absolute;right:6%;bottom:-2%;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px 14px;display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;box-shadow:var(--shadow)}
.hero-tag i{width:9px;height:9px;border-radius:50%;background:var(--ok);font-style:normal}

/* questions */
.qa{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.qa-row{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding-block:28px;border-bottom:1px solid var(--line);align-items:center}
.qa-q{font-size:clamp(28px,4.2vw,50px);font-weight:700;letter-spacing:-0.035em;line-height:1.05}
.answer{justify-self:start;display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:12px 18px 12px 12px;box-shadow:0 12px 30px -20px oklch(0.3 0.08 275/50%)}
.answer b{display:block;font-weight:600;font-size:16px}
.answer span{font-size:14px;color:var(--muted)}
.answer .dot{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--soft-2);color:var(--accent-ink);flex:none}
.answer .dot.ok{background:var(--ok-soft);color:var(--ok)}
.answer .dot svg{width:20px;height:20px}
@media (min-width:860px){.qa-row{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.answer{justify-self:end}}
.qa-after{margin-top:40px;font-size:clamp(20px,2.2vw,26px);line-height:1.45;max-width:40em;font-weight:500;letter-spacing:-0.01em}
.qa-after strong{color:var(--accent-ink);font-weight:700}

/* features */
.feats{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:14px}
.feat{background:var(--soft);border-radius:24px;padding:26px 24px 28px;display:flex;flex-direction:column;gap:10px;min-height:220px;transition:transform .3s,background-color .3s}
.feat:hover{transform:translateY(-3px);background:var(--soft-2)}
.feat .n{font-size:13px;font-weight:700;color:var(--accent-ink);letter-spacing:.06em;margin-bottom:auto;padding-bottom:28px;display:flex;align-items:center;gap:8px}
.feat .n i{display:inline-block;width:6px;height:6px;border-radius:1.5px;background:var(--accent)}
.feat p{font-size:16px;color:var(--muted);line-height:1.5}
.feat.big{background:var(--accent);color:var(--on-accent)}
.feat.big p,.feat.big .n{color:color-mix(in oklch,var(--on-accent) 82%,var(--accent))}
.feat.big .n i{background:var(--on-accent)}
.feat.big:hover{background:var(--accent)}

/* share */
.share{background:var(--soft)}
.share-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(36px,5vw,64px);align-items:center}
@media (min-width:960px){.share-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}
.house{position:relative;border:2px dashed color-mix(in oklch,var(--accent) 55%,transparent);border-radius:28px;padding:56px clamp(16px,4vw,40px) 40px;background:var(--paper)}
.house-label{position:absolute;top:-14px;left:24px;background:var(--paper);padding:2px 12px;border-radius:999px;font-size:14px;font-weight:600;color:var(--accent-ink);display:flex;gap:8px;align-items:center}
.house-label svg{width:18px;height:18px}
.devices{display:grid;grid-template-columns:minmax(0,.6fr) minmax(0,1fr) minmax(0,1.3fr);align-items:end;gap:8px}
.dev-phone{aspect-ratio:9/17;border:3px solid var(--ink);border-radius:22px;padding:14% 12%;display:grid;place-items:center;background:var(--card);position:relative}
.dev-phone::before{content:"";position:absolute;top:6%;left:50%;width:22%;height:3px;border-radius:2px;background:var(--line);translate:-50% 0}
.qr{width:100%;aspect-ratio:1;display:grid;grid-template-columns:repeat(9,1fr);gap:2px}
.qr i{background:var(--ink);border-radius:1.5px;transform:scale(0);transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.qr i.o{background:transparent}
.dev-laptop{display:flex;flex-direction:column;align-items:center}
.dev-laptop .scr{width:88%;aspect-ratio:16/10.5;border:3px solid var(--ink);border-bottom:0;border-radius:12px 12px 0 0;background:var(--card);position:relative;overflow:hidden;display:grid;place-items:center}
.dev-laptop .base{width:100%;height:12px;border:3px solid var(--ink);border-radius:0 0 12px 12px;background:var(--card)}
.scan{width:38%;aspect-ratio:1;border-radius:10px;position:relative;opacity:.95}
.scan::before{content:"";position:absolute;inset:0;border:3px solid var(--accent);border-radius:10px;-webkit-mask:conic-gradient(#000 0 25%,transparent 0 50%,#000 0 75%,transparent 0) 50%/60% 60%;mask:conic-gradient(#000 0 25%,transparent 0 50%,#000 0 75%,transparent 0) 50%/60% 60%}
.scan::after{content:"";position:absolute;left:8%;right:8%;height:3px;border-radius:2px;background:var(--accent);top:50%;opacity:0}
.synced{position:absolute;top:10px;right:10px;display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--ok);background:var(--ok-soft);padding:4px 9px;border-radius:999px;opacity:0;transform:translateY(-4px);transition:opacity .4s,transform .4s}
.wire{position:relative;height:120px;align-self:center}
.wire svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.wire path{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:3 7;stroke-linecap:round;opacity:.0;transition:opacity .5s}
.pkt{position:absolute;left:0;top:50%;width:9px;height:9px;border-radius:2px;background:var(--accent);opacity:0;offset-path:path("M0 60 C 40 0, 100 0, 140 60");offset-rotate:0deg}
.wifi{position:absolute;left:50%;top:-6px;translate:-50% 0;color:var(--accent);opacity:.9}
.wifi svg{position:static;width:30px;height:30px}
.no-cloud{display:flex;align-items:center;gap:12px;margin-top:28px;font-size:15px;color:var(--muted)}
.no-cloud svg{width:24px;height:24px;flex:none;color:var(--muted)}
.house[data-step="1"] .qr i,.house[data-step="2"] .qr i,.house[data-step="3"] .qr i{transform:scale(1)}
.house[data-step="2"] .scan::after{animation:scanline 1.4s ease-in-out infinite;opacity:1}
.house[data-step="3"] .wire path{opacity:.8;animation:dash 1.2s linear infinite}
.house[data-step="3"] .pkt{animation:flow 2.2s cubic-bezier(.5,0,.5,1) infinite}
.house[data-step="3"] .pkt.b{animation-direction:reverse;animation-delay:1.1s}
.house[data-step="3"] .pkt.c{animation-delay:.55s}
.house[data-step="3"] .synced{opacity:1;transform:none}
@keyframes scanline{0%,100%{top:15%}50%{top:82%}}
@keyframes dash{to{stroke-dashoffset:-20}}
@keyframes flow{0%{offset-distance:0%;opacity:0}12%,88%{opacity:1}100%{offset-distance:100%;opacity:0}}
.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;counter-reset:s}
.steps li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;padding:18px 18px;border-radius:20px;transition:background-color .4s;counter-increment:s}
.steps li::before{content:counter(s);width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-weight:700;background:var(--paper);color:var(--accent-ink);border:1px solid var(--line);transition:background-color .4s,color .4s}
.steps li.on{background:var(--paper)}
.steps li.on::before{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.steps h3{margin-bottom:4px;font-size:20px}
.steps p{font-size:16px;color:var(--muted)}

/* shelf */
.shelf-scroll{overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1*clamp(20px,5vw,40px));padding-inline:clamp(20px,5vw,40px);padding-top:30px;padding-bottom:44px}
.shelf-scroll::-webkit-scrollbar{display:none}
.shelf{display:flex;align-items:flex-end;gap:10px;min-width:max-content;padding-inline:8px;position:relative;margin-inline:auto;width:max-content}
.shelf::after{content:"";position:absolute;left:-16px;right:-16px;bottom:-14px;height:14px;border-radius:4px;background:var(--ink);box-shadow:0 18px 30px -14px oklch(0.2 0.05 275/50%)}
.obj{--c:var(--accent);--fg:var(--on-accent);position:relative;border:0;padding:0;cursor:pointer;background:var(--c);color:var(--fg);font:700 13px/1.1 Figtree,sans-serif;letter-spacing:.01em;display:flex;align-items:center;justify-content:center;transform-origin:bottom center;transition:transform .45s cubic-bezier(.3,1.5,.5,1),filter .3s,box-shadow .3s;box-shadow:inset -4px 0 0 oklch(0 0 0/12%)}
.obj:hover{transform:translateY(-6px)}
.obj[aria-selected=true]{transform:translateY(-18px);box-shadow:inset -4px 0 0 oklch(0 0 0/12%),0 16px 24px -12px oklch(0.2 0.05 275/60%)}
.obj span{pointer-events:none;white-space:nowrap}
.obj.v span{writing-mode:vertical-rl;transform:rotate(180deg)}
.o-book{width:46px;height:208px;border-radius:4px 6px 6px 4px;--c:#4b53c2;--fg:#fff}
.o-book::before,.o-book::after{content:"";position:absolute;left:8px;right:8px;height:2px;background:oklch(1 0 0/45%)}
.o-book::before{top:16px}.o-book::after{bottom:16px}
.o-comic{width:30px;height:236px;border-radius:3px;--c:oklch(0.87 0.12 92);--fg:#0a0a0a}
.o-film{width:28px;height:160px;border-radius:4px;--c:oklch(0.55 0.15 245);--fg:#fff}
.o-show{width:74px;height:168px;border-radius:6px;--c:oklch(0.5 0.16 20);--fg:#fff}
.o-show span{writing-mode:vertical-rl;transform:rotate(180deg)}
.o-show::before{content:"";position:absolute;inset:8px;border:2px solid oklch(1 0 0/35%);border-radius:3px}
.o-game{width:24px;height:140px;border-radius:3px;--c:oklch(0.6 0.2 25);--fg:#fff}
.o-board{width:176px;height:76px;border-radius:6px;--c:oklch(0.68 0.13 165);--fg:#0a0a0a;align-self:flex-end}
.o-board::before{content:"";position:absolute;top:0;left:0;right:0;height:12px;background:oklch(0 0 0/12%);border-radius:6px 6px 0 0}
.o-vinyl{width:156px;height:156px;border-radius:5px;--c:#0a0a0a;--fg:#fff;rotate:-5deg;margin-inline:10px 4px;overflow:hidden}
.o-vinyl::before{content:"";position:absolute;width:132%;aspect-ratio:1;right:-75%;border-radius:50%;background:repeating-radial-gradient(circle,#1c1c1c 0 2px,#111 2px 4px);box-shadow:inset 0 0 0 38px #111}
.o-vinyl span{position:relative;z-index:1;align-self:flex-start;margin-top:14px;margin-right:auto;margin-left:14px}
.o-other{width:112px;height:92px;border-radius:10px;--c:oklch(0.82 0.1 60);--fg:#0a0a0a}
.o-other::before{content:"";position:absolute;inset:auto 0 50% 0;height:2px;background:oklch(0 0 0/15%)}
:root[data-theme=dark] .o-vinyl{--c:#2a2a2e;box-shadow:inset 0 0 0 1px oklch(1 0 0/12%)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .o-vinyl{--c:#2a2a2e;box-shadow:inset 0 0 0 1px oklch(1 0 0/12%)}}
.shelf-card{margin-top:16px;display:grid;grid-template-columns:minmax(0,1fr);gap:20px 48px;background:var(--soft);border-radius:28px;padding:clamp(24px,4vw,40px)}
.shelf-card[hidden]{display:none}
@media (min-width:860px){.shelf-card{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}}
.shelf-card .kind{font-size:14px;font-weight:700;color:var(--accent-ink);letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px}
.shelf-card h3{font-size:clamp(26px,3vw,34px);letter-spacing:-0.03em}
.shelf-card .by{color:var(--muted);margin-top:6px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;background:var(--paper);border:1px solid var(--line);font-size:15px;font-weight:500}
.chip.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.field-l{font-size:13px;font-weight:600;color:var(--muted);margin:0 0 10px}
.shelf-card .col{display:flex;flex-direction:column;gap:18px}
.anim-in{animation:cardIn .45s cubic-bezier(.2,.8,.2,1)}
@keyframes cardIn{from{opacity:0;transform:translateY(10px)}}

/* gallery */
.gal{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:center}
@media (min-width:900px){.gal{grid-template-columns:minmax(0,1fr) minmax(0,.8fr)}}
.gal-tabs{display:flex;flex-direction:column;gap:4px}
.gal-tab{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:18px 22px;border-radius:20px;transition:background-color .3s;position:relative}
.gal-tab:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.gal-tab b{font-size:20px;font-weight:700;letter-spacing:-0.015em;color:var(--muted);transition:color .3s}
.gal-tab span{font-size:16px;color:var(--muted);display:none}
.gal-tab:hover{background:var(--soft)}
.gal-tab[aria-selected=true]{background:var(--soft)}
.gal-tab[aria-selected=true] b{color:var(--ink)}
.gal-tab[aria-selected=true] span{display:block;animation:cardIn .4s}
.gal-stage{position:relative;width:min(340px,78vw);margin-inline:auto}
.gal-stage .phone img{position:absolute;inset:0;opacity:0;transform:scale(1.02);transition:opacity .45s,transform .6s}
.gal-stage .phone img.on{opacity:1;transform:none}
.gal-stage .phone img.shot-l,.gal-stage .phone img.shot-d{display:none}
.gal-stage .phone img.shot-l{display:var(--sl)}.gal-stage .phone img.shot-d{display:var(--sd)}
.gal-stage::before{content:"";position:absolute;inset:8% -14% -6%;border-radius:50%;background:var(--soft-2);filter:blur(40px);z-index:-1}
@media (max-width:899px){.gal-tabs{flex-direction:row;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1*clamp(20px,5vw,40px));padding-inline:clamp(20px,5vw,40px);order:-1}.gal-tab{flex:none;padding:10px 18px;border:1px solid var(--line);border-radius:999px}.gal-tab b{font-size:16px}.gal-tab[aria-selected=true]{background:var(--accent);border-color:var(--accent)}.gal-tab[aria-selected=true] b{color:var(--on-accent)}.gal-tab span{display:none!important}.gal-caption{display:block}}
.gal-caption{display:none;text-align:center;color:var(--muted);font-size:16px;margin-top:24px;min-height:3em}

/* privacy band */
.band{background:var(--band);color:var(--band-ink);border-radius:clamp(0px,3vw,40px);margin-inline:clamp(0px,2vw,24px);overflow:hidden}
.band .lead{color:var(--band-muted)}
.band .eyebrow{color:var(--band-ink)}.band .eyebrow::before{background:var(--band-ink)}
.promises{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:0 40px}
.promises li{padding:20px 0;border-top:1px solid color-mix(in oklch,var(--band-ink) 22%,transparent);display:flex;flex-direction:column;gap:4px}
.promises b{font-size:20px;letter-spacing:-0.015em}
.promises span{color:var(--band-muted);font-size:16px}
.band .btn-ghost{color:var(--band-ink);border-color:color-mix(in oklch,var(--band-ink) 40%,transparent)}
.band .btn-ghost:hover{background:color-mix(in oklch,var(--band-ink) 12%,transparent)}
.band a:not(.btn){color:var(--band-ink)}

/* final */
.final{text-align:center;display:flex;flex-direction:column;align-items:center;gap:24px}
.final .bigmark{width:clamp(120px,18vw,180px);color:var(--accent);cursor:pointer}
.final .btns{justify-content:center}

/* mark */
.mark svg{width:100%;height:auto;display:block;overflow:visible}
.mark rect{transform-box:fill-box;transform-origin:center;transition:transform .7s cubic-bezier(.3,1.4,.5,1)}
.mark.pre rect{transform:translate(var(--x),var(--y)) scale(0)}
.mark.go rect{transition:transform .9s cubic-bezier(.2,1.3,.4,1) var(--d)}
.mark.scatter rect{transform:translate(var(--sx),var(--sy)) scale(.85)}
.mark rect.tw{animation:tw 1.2s ease-in-out}
@keyframes tw{50%{transform:scale(.4)}}

/* pages */
.page-hero{padding-block:clamp(48px,8vw,104px) clamp(32px,5vw,56px);display:flex;flex-direction:column;align-items:flex-start;gap:20px;max-width:860px}
.dl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:16px}
.dl{background:var(--soft);border-radius:28px;padding:28px;display:flex;flex-direction:column;gap:18px;transition:transform .3s}
.dl:hover{transform:translateY(-3px)}
.dl-top{display:flex;align-items:center;gap:14px}
.dl-ico{width:52px;height:52px;border-radius:16px;background:var(--paper);display:grid;place-items:center;color:var(--accent-ink);flex:none;border:1px solid var(--line)}
.dl-ico svg{width:26px;height:26px}
.dl h2{font-size:26px;letter-spacing:-0.025em}
.dl ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;font-size:16px}
.dl li{display:flex;gap:10px;align-items:baseline}
.dl li::before{content:"";width:6px;height:6px;border-radius:1.5px;background:var(--accent);flex:none;translate:0 -2px}
.dl .btn{margin-top:auto;align-self:flex-start}
.btn[aria-disabled=true]{background:var(--paper);color:var(--muted);border:1px dashed var(--line);cursor:default;box-shadow:none;transform:none}
.dl.later{background:transparent;border:1px dashed var(--line)}
.dl-note{font-size:15px;color:var(--muted)}
.dl-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:40px;align-items:end}
.dl-shots{position:relative;padding-left:14%;padding-bottom:6%;max-width:760px}
.dl-shots .phone{position:absolute;left:0;bottom:0;width:26%}
.older{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:flex-start;justify-content:space-between;border-top:1px solid var(--line);margin-top:48px;padding-top:28px;color:var(--muted)}
.older-d summary{list-style:none;cursor:pointer;color:var(--accent-ink);font-weight:600;text-decoration:underline;text-underline-offset:3px;border-radius:6px}
.older-d summary::-webkit-details-marker{display:none}
.older-d p{margin-top:10px;max-width:28em;font-size:16px}
@media (min-width:1000px){.dl-hero{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center}.dl-hero .page-hero{padding-bottom:clamp(32px,5vw,56px)!important}}

.faq{display:flex;flex-direction:column;border-top:1px solid var(--line);max-width:860px}
.faq details{border-bottom:1px solid var(--line);interpolate-size:allow-keywords}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:26px 0;font-size:clamp(20px,2.4vw,26px);font-weight:700;letter-spacing:-0.02em;border-radius:8px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{width:36px;height:36px;border-radius:50%;background:var(--soft);flex:none;position:relative;transition:background-color .3s,transform .4s}
.faq summary .pm::before,.faq summary .pm::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;background:var(--ink);border-radius:2px;translate:-50% -50%;transition:transform .3s}
.faq summary .pm::after{transform:rotate(90deg)}
.faq details[open] summary .pm{background:var(--accent)}
.faq details[open] summary .pm::before,.faq details[open] summary .pm::after{background:var(--on-accent)}
.faq details[open] summary .pm::after{transform:rotate(0)}
.faq details::details-content{block-size:0;overflow:hidden;transition:block-size .4s,content-visibility .4s allow-discrete}
.faq details[open]::details-content{block-size:auto}
.faq .ans{padding:0 0 28px;display:flex;flex-direction:column;gap:12px;color:var(--muted);max-width:44em}
.faq .ans strong{color:var(--ink)}
.faq-aside{margin-top:56px;background:var(--soft);border-radius:28px;padding:clamp(24px,4vw,40px);display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between;max-width:860px}

.prose{max-width:720px;padding-bottom:clamp(72px,10vw,120px)}
.prose h2{font-size:clamp(24px,3vw,30px);margin:48px 0 14px;letter-spacing:-0.02em}
.prose p,.prose li{color:var(--muted)}
.prose p+p{margin-top:14px}
.prose ul{padding-left:22px;display:flex;flex-direction:column;gap:8px;margin:0}
.prose li::marker{color:var(--accent)}
.prose strong{color:var(--ink)}
.prose .updated{display:inline-flex;font-size:14px;font-weight:600;background:var(--soft);padding:6px 12px;border-radius:999px;color:var(--muted)}

.about{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(32px,5vw,72px);padding-bottom:clamp(72px,10vw,120px)}
@media (min-width:900px){.about{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}}
.about .prose{padding:0}
.facts{display:flex;flex-direction:column;gap:12px;align-self:start}
.fact{background:var(--soft);border-radius:22px;padding:22px 24px}
.fact b{display:block;font-size:20px;letter-spacing:-0.015em;margin-bottom:4px}
.fact span{color:var(--muted);font-size:16px}

/* footer */
.site-footer{border-top:1px solid var(--line);margin-top:clamp(40px,6vw,80px);padding-block:48px 36px;font-size:16px}
.foot{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
@media (min-width:820px){.foot{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr)}}
.foot h2{font-size:14px;letter-spacing:.02em;color:var(--muted);font-weight:600;margin-bottom:12px}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.foot a{color:var(--ink);text-decoration:none}
.foot a:hover{text-decoration:underline}
.foot-brand{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.foot-brand p{color:var(--muted);max-width:26em}
.social{display:flex;gap:8px}
.social a{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:background-color .2s}
.social a:hover{background:var(--soft)}
.social svg{width:18px;height:18px;fill:currentColor}
.foot-bottom{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;margin-top:40px;padding-top:24px;border-top:1px solid var(--line);color:var(--muted);font-size:15px}
.lang{display:flex;gap:4px;background:var(--soft);border-radius:999px;padding:4px}
.lang a{padding:6px 14px;border-radius:999px;text-decoration:none;color:var(--muted);font-weight:600;font-size:14px}
.lang a[aria-current=true]{background:var(--paper);color:var(--ink);box-shadow:0 1px 2px oklch(0 0 0/10%)}

/* motion */
.js [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--rd,0s)}
.js [data-reveal].in{opacity:1;transform:none}
.js .hero [data-reveal]{transition-duration:1s}
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.35s}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js [data-reveal]{opacity:1;transform:none}@view-transition{navigation:none}.mark.pre rect{transform:none}}
