@font-face{font-family:"Shippori Mincho";src:url(/fonts/shippori-mincho-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/inter-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/inter-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}

:root{
  --bg:#F7F5F0;--bg-2:#EFEBE3;--text:#151515;--muted:#6B665E;--line:rgba(21,21,21,.12);
  --serif:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  --sans:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{background:var(--bg);color:var(--text);font:400 1.0625rem/1.65 var(--sans)}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- teaser ---------- */
.teaser{min-height:100svh;display:grid;place-items:center;padding:8vh 20px 12vh;position:relative;overflow:hidden;
  background:radial-gradient(60% 55% at 50% 42%,#fff 0%,var(--bg) 72%)}
.teaser .inner{display:flex;flex-direction:column;align-items:center;will-change:transform}
.teaser img{width:min(78vw,640px);will-change:transform}
.wordmark{margin-top:clamp(28px,5vh,56px);font:600 clamp(1.6rem,5.2vw,3.4rem)/1 var(--sans);letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;text-align:center}
.tagline{margin-top:18px;font:400 clamp(.72rem,1.4vw,.85rem)/1 var(--sans);letter-spacing:.42em;text-indent:.42em;text-transform:uppercase;color:var(--muted)}
.scroll{position:absolute;left:50%;bottom:28px;translate:-50% 0;transition:opacity .4s;width:1px;height:44px;background:var(--line);overflow:hidden}
.scroll::after{content:"";position:absolute;left:0;top:-50%;width:1px;height:50%;background:var(--text);animation:drop 2.2s cubic-bezier(.6,0,.4,1) infinite}
@keyframes drop{to{top:100%}}

.reveal{opacity:0;transform:translateY(18px);transition:opacity 1.2s cubic-bezier(.2,.7,.2,1),transform 1.2s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.teaser .reveal:nth-child(2){transition-delay:.25s}.teaser .reveal:nth-child(3){transition-delay:.45s}

/* ---------- quote ---------- */
.quote{position:relative;padding:22vh 20px 26vh;background:linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 100%);border-top:1px solid var(--line)}
.quote .inner{max-width:860px;margin:0 auto;will-change:transform}
.nod{display:block;font:600 .72rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-bottom:34px}
.quote blockquote{font:500 clamp(1.9rem,4.6vw,3.3rem)/1.22 var(--serif);letter-spacing:-.005em}
.quote p{margin-top:30px;max-width:56ch;color:var(--muted);font-size:1.12rem}
.quote .punch{margin-top:44px;color:var(--text);font:500 clamp(1.2rem,2.4vw,1.55rem)/1.4 var(--serif)}
.rule{width:56px;height:1px;background:var(--text);margin:52px 0 0}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--line);padding:36px 20px 44px;font-size:.85rem;color:var(--muted)}
.foot .row{max-width:1100px;margin:0 auto;display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;align-items:center}
.foot .mark{font:600 .78rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--text);text-decoration:none}
.foot nav{display:flex;gap:24px}
.foot nav a{text-decoration:none}.foot nav a:hover{color:var(--text)}

/* ---------- legal pages ---------- */
.top{border-bottom:1px solid var(--line);padding:22px 20px}
.top a{font:600 .82rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;text-decoration:none}
.doc{max-width:720px;margin:0 auto;padding:72px 20px 110px}
.doc h1{font:500 clamp(2rem,5vw,2.8rem)/1.15 var(--serif);margin-bottom:28px}
.doc h2{font:600 .78rem/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;margin:38px 0 10px}
.doc p,.doc li{margin-top:8px;color:var(--muted)}
.doc a{color:var(--text)}
.doc img{width:260px;margin:0 auto 28px}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}
