@font-face{font-family:Spectral;src:url('/assets/spectral.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:Spectral;src:url('/assets/spectral-semibold.ttf') format('truetype');font-display:swap;font-weight:600}
@font-face{font-family:Avenir;src:url('/assets/avenir.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:Avenir;src:url('/assets/avenir-demi.ttf') format('truetype');font-display:swap;font-weight:600 800}
:root{--ink:#080909;--paper:#fff;--coral:#f88250;--action:#a73e17;--muted-dark:#bcbab5;--muted-light:#585955;--line:#dcdcd6;--serif:Spectral,Georgia,serif;--sans:Avenir,Arial,sans-serif;--gutter:clamp(24px,6vw,112px);--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased}::selection{background:var(--coral);color:var(--ink)}a{color:inherit;text-decoration:none;text-underline-offset:5px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid var(--coral);outline-offset:6px}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--ink)}::-webkit-scrollbar-thumb{background:#6a625b;border-radius:8px}svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.skip{position:fixed;top:-100px;left:20px;padding:12px;background:var(--paper);color:var(--ink);z-index:100}.skip:focus{top:10px}.footer-links a{transition:color .2s}.footer-links a:hover{color:var(--coral)}
#experience{position:relative;isolation:isolate;overflow:clip}.hero{height:77svh;min-height:650px;position:relative;overflow:hidden;background:#050606}.hero-copy{position:relative;z-index:2;padding:164px var(--gutter) 90px;max-width:920px}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.035em;line-height:1.06;margin:0;text-wrap:balance}h1{font-size:clamp(55px,5.5vw,86px)}em{color:var(--coral);font-style:normal}.hero-copy p{font-size:16px;color:#c5c2bd;line-height:1.65;margin:23px 0 27px}.button{display:inline-flex;align-items:center;gap:32px;min-height:50px;padding:14px 23px;border-radius:9px;font-size:14px;font-weight:600;transition:background .2s,transform .3s var(--ease)}.button:hover{transform:translateY(-3px);background:#ff9c71}.coral{background:var(--coral);color:var(--ink)}.button span{font-size:23px;line-height:1}#space{position:absolute;inset:0;width:100%;height:100%;opacity:1}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#050606a6 0%,#05060673 25%,#0506060a 62%,transparent),linear-gradient(0deg,#05060666,transparent 28%)}.scroll-cue{position:absolute;bottom:26px;left:var(--gutter);z-index:3;color:#bcbab5;display:flex;align-items:center;gap:17px;font-size:12px}.scroll-line{display:inline-block;width:42px;height:1px;background:var(--coral)}.scroll-cue>span:last-child{color:var(--coral);font-size:20px}
.app-intro{background:var(--paper);color:var(--ink);min-height:490px;padding:70px var(--gutter) 100px;position:relative}.intro-copy{max-width:520px}h2{font-size:clamp(44px,4.5vw,70px)}.app-intro em,.light em{color:var(--action)}.app-intro p,.feature p,.download-heading p{font-size:18px;line-height:1.7;max-width:440px;margin:24px 0}.text-link{display:inline-flex;gap:24px;align-items:center;font-size:14px;font-weight:600}.text-link span{font-size:24px}.text-link:hover{color:var(--action)}
.feature{min-height:100svh;position:relative;display:flex;align-items:center;isolation:isolate;padding:145px var(--gutter);overflow:hidden}.feature[data-side=left]{justify-content:flex-end}.feature[data-side=right]{justify-content:flex-start}.feature-copy{width:43%;max-width:550px;z-index:2}.feature p{color:var(--muted-dark)}.feature .small{font-size:15px;line-height:1.7;margin-top:14px}.feature-label{font-size:14px;font-weight:600;margin-top:42px;color:var(--coral)}.light{background:var(--paper);color:var(--ink)}.light p{color:var(--muted-light)}.light .feature-label{color:var(--action)}.dark{background:var(--ink)}.section-word{position:absolute;bottom:-.2em;left:var(--gutter);font-family:var(--serif);font-size:clamp(160px,22vw,360px);line-height:1;color:#ffffff04;letter-spacing:-.04em;pointer-events:none;z-index:0}.light .section-word{color:#08090904}.feature[data-side=left] .section-word{left:auto;right:var(--gutter)}
#phone-stage{position:fixed;inset:0;z-index:10;pointer-events:none;opacity:0;transition:opacity .6s}#phone-stage.ready{opacity:1}#phone{width:100%;height:100%;display:block}.phone-fallback{display:none;position:absolute;width:260px;height:540px;border:7px solid #41413f;border-radius:40px;background:#161917;right:15%;top:30%;box-shadow:20px 35px 70px #0005;padding:75px 30px;text-align:center}.phone-fallback img{width:100%}.no-webgl .phone-fallback{display:block}.no-webgl #phone{display:none}.screen-caption{position:absolute;right:var(--gutter);top:calc(77svh + 100px);font-size:10px;color:#666;z-index:11;letter-spacing:.03em;pointer-events:none}.download{min-height:1100px;height:133svh;background:var(--paper);color:var(--ink);position:relative;padding:100px var(--gutter) 70px;text-align:center;display:flex;flex-direction:column;justify-content:space-between;align-items:center}.download-heading h2{font-size:clamp(50px,5.5vw,84px)}.download-heading em{color:var(--action)}.download-heading p{margin:15px auto 0;color:var(--muted-light);font-size:16px}.download-actions{position:relative;z-index:20;display:flex;flex-direction:column;align-items:center;gap:25px}.store-buttons{display:flex;gap:14px}.store{display:flex;gap:14px;text-align:left;align-items:center;border:0;border-radius:11px;padding:12px 21px;background:var(--ink);color:var(--paper);font-size:19px;min-width:190px;transition:transform .25s var(--ease),background .2s}.store:hover{transform:translateY(-3px);background:#343632}.store svg{width:26px;height:30px}.store small{display:block;font-size:10px;line-height:1.4;color:#c5c5bf}.qr{display:flex;align-items:center;gap:15px;text-align:left}.qr img{width:72px;height:72px;object-fit:contain}.qr p{font-size:13px;line-height:1.6;margin:0}.qr span{font-size:10px;color:var(--muted-light)}.footer{position:relative;z-index:21;background:var(--ink);padding:65px var(--gutter) 25px}.footer-brand img{width:140px;height:76px;object-fit:contain}.footer-links{display:flex;gap:30px;justify-content:flex-end;font-size:13px;margin-top:-35px;margin-bottom:80px;color:#d3d0ca}.footer-bottom{border-top:1px solid #ffffff20;display:flex;align-items:center;justify-content:space-between;padding-top:24px;gap:20px;font-size:11px;color:#aaa9a4}.footer-bottom a{color:#d3d0ca}.footer-bottom button{border:0;background:none;color:#c9c6bf;padding:10px;font-size:11px}.notice{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:60;padding:17px 23px;background:#252724;color:white;box-shadow:0 10px 40px #0004;border-radius:12px;max-width:calc(100% - 32px);font-size:14px;text-align:center}.notice[hidden]{display:none}
.legal-page{background:var(--paper);color:var(--ink)}.legal-page header{padding:25px var(--gutter);background:var(--ink);color:white;display:flex;align-items:center;justify-content:space-between}.legal-page header img{width:110px}.back-link{font-size:14px}.legal-page main{max-width:830px;margin:70px auto;padding:0 28px}.legal-page h1{font-size:50px}.legal-page h2{font-size:27px;margin:42px 0 15px;line-height:1.3;letter-spacing:-.02em}.legal-page p{font-size:16px;line-height:1.8;color:#41433f}.legal-page p a{color:var(--action);text-decoration:underline}.legal-page .legal-date{font-size:12px;color:#666}.legal-page footer{border-top:1px solid var(--line);padding:25px;display:flex;flex-wrap:wrap;gap:25px;justify-content:center;font-size:13px}
@media(min-width:1600px){.hero-copy{padding-top:185px}.hero{min-height:740px}.feature{min-height:920px}}
@media(max-width:800px){:root{--gutter:25px}.hero{height:780px;min-height:0}.hero-copy{padding-top:130px}.hero h1{font-size:clamp(48px,8.5vw,66px)}.hero-copy p{font-size:14px;max-width:340px}.hero-copy .button{font-size:13px}.hero-shade{background:linear-gradient(180deg,#05060650,#05060610 65%,#05060640)}.scroll-cue{bottom:23px;font-size:10px}.app-intro{padding-top:65px;min-height:400px}.intro-copy{max-width:100%}.intro-copy h2{font-size:45px}.app-intro p{font-size:16px;max-width:420px}.feature{padding:85px var(--gutter) 580px;min-height:1050px;align-items:flex-start;justify-content:flex-start!important}.feature-copy{width:100%;max-width:560px}.feature h2{font-size:48px}.feature p{font-size:16px;line-height:1.7;margin:20px 0;max-width:480px}.feature-label{margin-top:27px}.feature .small{font-size:13px;margin-top:10px}.section-word{font-size:160px;bottom:-20px}.download{height:1100px;min-height:1100px;padding-top:75px}.download h2{font-size:48px}.download-heading p{font-size:14px}.store{min-width:0;font-size:16px;padding:12px 15px;gap:10px}.store svg{width:22px}.store-buttons{gap:9px}.footer{padding-top:40px}.footer-links{margin:28px 0 40px;justify-content:flex-start;flex-wrap:wrap;gap:20px;font-size:12px}.footer-bottom{align-items:flex-start;flex-direction:column;gap:12px}.footer-bottom button{padding:0}.screen-caption{top:1050px;right:25px}.phone-fallback{width:210px;height:430px;top:47%;right:10%}}
@media(max-width:400px){.hero h1{font-size:48px}.store{font-size:15px;padding:12px}.store small{font-size:9px}}
.screen-caption{color:#585955;font-size:11px}.store small,.qr span,.scroll-cue{font-size:11px}
/* The opening composition always occupies one viewport: 70% space, 30% white. */
.download{height:100svh;min-height:0;padding:clamp(20px,4svh,44px) var(--gutter);display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(10px,2svh,20px);justify-content:stretch;align-items:center;overflow:hidden}
.download::before{content:"";position:absolute;inset:8% 0 10%;background:radial-gradient(ellipse 45% 54% at 50% 48%,rgba(248,130,80,.18),rgba(248,130,80,.065) 48%,transparent 78%);pointer-events:none}
.download-heading{position:relative;z-index:2;flex:0 0 auto}
.download-heading h2{font-size:clamp(32px,min(5.5vw,6svh),60px)}
.download-heading p{font-size:clamp(13px,1.8svh,16px);margin:10px auto 0}
.download-phone-window{position:relative;width:100%;height:100%;max-height:min(36.5svh,300px);min-height:0;align-self:center;overflow:hidden;transform:translateY(var(--phone-lower-offset,0px))}
.download-phone-window::after{content:"";position:absolute;bottom:6px;left:50%;width:min(26svh,220px);height:12px;transform:translateX(-50%);border-radius:50%;background:rgba(20,22,17,.09);filter:blur(13px);pointer-events:none;opacity:var(--final-shadow-opacity,0)}
.download-actions{gap:clamp(12px,2svh,20px);flex:0 0 auto}
#phone-stage{mask-image:linear-gradient(to bottom,#000 0,#000 var(--phone-fade-start,100%),transparent var(--phone-fade-end,100%));-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 var(--phone-fade-start,100%),transparent var(--phone-fade-end,100%))}
#phone{position:relative;z-index:1}
.phone-atmosphere{position:absolute;top:0;left:0;opacity:0;pointer-events:none;will-change:transform,opacity}
.phone-back-glow{position:absolute;inset:-8% -58% -3%;background:radial-gradient(ellipse at 50% 48%,rgba(248,130,80,.14),rgba(248,130,80,.055) 48%,transparent 74%)}

.hero{height:70svh;min-height:0}
.hero-copy{padding-top:clamp(40px,9svh,100px);padding-bottom:20px}
.hero h1{font-size:clamp(32px,min(5.5vw,8svh),86px)}
.hero-copy p{font-size:clamp(13px,1.8svh,16px);margin:clamp(12px,2svh,23px) 0}
.app-intro{height:30svh;min-height:0;padding:clamp(14px,3svh,36px) var(--gutter);display:flex;align-items:center}
.intro-copy{max-width:52%;width:520px}
.intro-copy h2{font-size:clamp(28px,min(4vw,5.5svh),54px)}
.app-intro p{font-size:clamp(13px,1.8svh,16px);line-height:1.5;margin:clamp(8px,1.3svh,14px) 0}
.screen-caption{top:calc(100svh - 25px)}
.phone-fallback{height:60svh;width:27svh;top:33svh;right:14%;padding:8svh 20px}
@media(max-width:800px){
  .download-phone-window{max-height:215px}

  .hero-copy{padding-top:clamp(35px,8svh,75px)}
  .hero h1{font-size:clamp(30px,min(8.5vw,7svh),60px);max-width:76%}
  .hero-copy p{max-width:60%;line-height:1.5}
  .hero-copy .button{min-height:42px;padding:11px 15px;gap:16px;font-size:12px}
  .intro-copy{max-width:calc(100% - 150px);width:auto}
  .intro-copy h2{font-size:clamp(24px,4.4svh,38px)}
  .app-intro p{font-size:13px;line-height:1.4;margin:8px 0}
  .app-intro .text-link{font-size:12px;gap:14px}
  .phone-fallback{height:40svh;width:18svh;top:48svh;right:5%;padding:6svh 12px}
}
@media(max-height:650px){.scroll-cue{display:none}.hero-copy p{margin:10px 0}.intro-copy h2{font-size:clamp(22px,4.8svh,32px)}.app-intro .text-link{font-size:12px}}
@media(max-width:400px){.store small{font-size:11px}}
/* Native section snapping keeps wheel/trackpad control and aligns settled views. */
html:has(#experience){scroll-snap-type:y mandatory;scroll-padding-top:0;scroll-behavior:smooth}
html:has(#experience).gentle-section-scroll{scroll-snap-type:none}
.hero,.feature,.download{scroll-snap-align:start;scroll-margin-top:0;scroll-snap-stop:normal}
.app-intro{scroll-snap-align:none}
.footer{scroll-snap-align:end;scroll-margin:0}
@media(min-width:801px) and (min-height:650px){
  .feature{height:100svh;min-height:0;padding-top:clamp(40px,10svh,120px);padding-bottom:clamp(40px,10svh,120px)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.scroll-line{transform:none}}

.legal-page .legal-action{display:inline-flex;align-items:center;min-height:48px;padding:12px 22px;border-radius:9px;background:var(--ink);color:var(--paper);font-weight:600;text-decoration:none}.legal-page .legal-action:hover{background:var(--action)}
@media(max-width:600px){.legal-page main{margin:42px auto;padding:0 24px}.legal-page h1{font-size:38px}.legal-page header{gap:18px}.legal-page header img{width:90px}}

/* Compact app introduction remains within the opening white band. */
.intro-copy{width:38vw;max-width:43%}
.intro-copy h2{font-size:clamp(22px,3.8svh,34px);line-height:1.12;color:var(--action)}
.app-intro{padding-top:clamp(10px,2svh,22px);padding-bottom:clamp(10px,2svh,22px)}
.app-intro .intro-tagline{font-family:var(--serif);font-size:clamp(16px,2.5svh,23px);line-height:1.2;color:var(--ink);margin:5px 0}
.app-intro .intro-description{font-size:clamp(12px,1.65svh,15px);line-height:1.45;max-width:600px;margin:7px 0}
.app-intro .text-link{font-size:12px;gap:12px}
.app-intro .text-link span{font-size:18px}
.intro-store{position:absolute;z-index:12;left:var(--qr-x);top:var(--qr-y,0px);transform:translate(-50%,-50%);width:clamp(104px,10vw,148px);display:flex;flex-direction:column;align-items:center;gap:6px;border:1px solid var(--muted-light);border-radius:0;background:var(--paper);color:var(--ink);min-height:48px;padding:10px;text-align:center;font-size:14px;line-height:1.2}
.intro-store-google{--qr-x:48%}
.intro-store-apple{--qr-x:60%}
.intro-store img{display:block;width:clamp(64px,13svh,128px);height:auto;max-width:100%;aspect-ratio:1;background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:6px;flex:none}
.intro-store small{display:block;color:var(--muted-light);font-size:11px;line-height:1.4}
.intro-store:hover{color:var(--action)}
@media(min-width:801px) and (max-width:1400px){
  .intro-store{--qr-y:-72px}
  .intro-store-google{--qr-x:33%}
  .intro-store-apple{--qr-x:47%}
}
.footer-description{max-width:450px;color:var(--muted-dark);font-size:14px;line-height:1.6;margin:16px 0 0}
.mobile-phone-preview{display:none}
.footer-links{margin-top:28px;margin-bottom:48px}
@media(max-width:800px){
  .intro-copy{max-width:calc(100% - 145px);width:660px}
  .intro-copy h2{font-size:clamp(16px,2.5svh,22px)}
  .app-intro .intro-tagline{font-size:clamp(12px,1.85svh,16px);margin:4px 0}
  .app-intro .intro-description{font-size:clamp(11px,1.45svh,13px);line-height:1.3;margin:5px 0}
  .intro-description .intro-mobile-line{display:block}
  .app-intro .text-link{font-size:11px}
  .app-intro{flex-direction:column;align-items:flex-start;justify-content:center;gap:5px}
  .intro-store{top:12px;transform:translate(-50%,-100%);width:clamp(66px,20vw,94px);font-size:11px;min-height:44px;padding:5px;gap:4px;min-width:0}
  .intro-store-google{--qr-x:15%}
  .intro-store-apple{--qr-x:39%}
  .intro-store span{min-width:0}
  .intro-store img{width:100%;max-width:72px;height:auto;padding:3px}
  .intro-store small{font-size:11px}
  .phone-fallback{top:var(--mobile-phone-top,48svh);height:var(--mobile-phone-height,40svh);width:calc(var(--mobile-phone-height,40svh)*.45)}
  .mobile-static-previews .feature{flex-direction:column;align-items:center;gap:28px;padding:70px var(--gutter) 50px;min-height:100svh}
  .mobile-static-previews .feature-copy{flex:none;align-self:flex-start}
  .mobile-static-previews .mobile-phone-preview{display:block;position:relative;isolation:isolate;flex:none;width:min(240px,64vw);margin:0 auto}
  .mobile-phone-preview img{display:block;position:relative;z-index:1;width:100%;height:auto}
  .mobile-phone-preview::before{content:"";position:absolute;inset:0 -30%;z-index:0;background:radial-gradient(ellipse at center,rgba(248,130,80,.12),transparent 72%);pointer-events:none}
  .mobile-phone-preview::after{content:"";position:absolute;bottom:2%;left:15%;right:15%;height:12px;background:rgba(0,0,0,.22);border-radius:50%;filter:blur(10px);pointer-events:none}
  .mobile-phone-preview-flat{border:7px solid #41413f;border-radius:32px;background:var(--ink)}
  .mobile-phone-preview-flat img{border-radius:25px}
  .mobile-static-previews .download-phone-window{mask-image:linear-gradient(to bottom,#000 70%,transparent);-webkit-mask-image:linear-gradient(to bottom,#000 70%,transparent)}
  .mobile-static-previews .download-phone-window .mobile-phone-preview{margin-top:0}
}
