/* Unfold base styles, shared by every page.
   One capsule is the whole visual language: the nav, buttons, inputs, page transitions and section changes are all
   variations of it. Three theme colors (ink, bone, accent) and one font come from content/site.js; every other shade
   is mixed from them here, so a new palette never needs CSS edits. */
:root{
  --ink:#0C0C0D; --bone:#E7E7E2; --accent:#0A84FF;
  --ink2:color-mix(in srgb,var(--ink) 93%,var(--bone));
  --ink3:color-mix(in srgb,var(--ink) 84%,var(--bone));
  --bone2:color-mix(in srgb,var(--bone) 91%,var(--ink));
  --mute-d:color-mix(in srgb,var(--bone) 55%,var(--ink));
  --mute-l:color-mix(in srgb,var(--ink) 62%,var(--bone));
  --thin-d:color-mix(in srgb,var(--bone) 74%,var(--ink));
  --thin-l:color-mix(in srgb,var(--ink) 45%,var(--bone));
  --line-d:color-mix(in srgb,var(--bone) 13%,transparent);
  /* the photo tint: tones every photo so stock shots of any palette sit together */
  --tint:#C9A27E;
  --f:"Inter","Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.2,.9,.2,1);
  --spring:cubic-bezier(.3,1.5,.5,1);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scrollbar-width:none;-webkit-text-size-adjust:100%}
html::-webkit-scrollbar{display:none}
/* no lone word on the last line of a paragraph */
p{text-wrap:pretty}
body{margin:0;background:var(--bone);color:var(--ink);font-family:var(--f);-webkit-font-smoothing:antialiased;font-optical-sizing:auto;overflow-x:clip}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:90;background:var(--ink)}
main{overflow-x:clip}
img{display:block;max-width:100%}
a{color:inherit}
button,input,textarea{font-family:inherit;color:inherit;-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
[hidden]{display:none!important}
.gut{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.col{max-width:1280px;margin-inline:auto;width:100%}
.mono{font-family:var(--f);font-size:13px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}
/* thin weight needs looser tracking than the bold: at -.055em, and even -.03em, its strokes touched (e-v-e-r) */
.thin{font-weight:200;letter-spacing:-.01em}
.bold{font-weight:720}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- cursor ---------- */
.cur{position:fixed;z-index:300;left:0;top:0;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:99px;background:var(--bone);mix-blend-mode:difference;pointer-events:none;transition:width .45s var(--spring),height .45s var(--spring),margin .45s var(--spring),opacity .3s;will-change:transform}
.cur.text{width:3px;height:28px;margin:-14px 0 0 -1.5px}
@media (hover:none),(pointer:coarse),(max-width:900px){.cur{display:none}}

/* ---------- nav capsule ---------- */
.nav{position:fixed;z-index:100;top:calc(env(safe-area-inset-top,0px) + 12px);left:50%;transform:translateX(-50%);height:46px;display:flex;align-items:center;gap:2px;padding:0 5px 0 18px;border-radius:99px;background:var(--ink);color:var(--bone);box-shadow:0 0 0 1px var(--line-d),0 18px 40px -18px rgba(0,0,0,.6);overflow:hidden;white-space:nowrap}
.nav .wm{font-weight:720;font-size:16px;letter-spacing:-.03em;margin-right:12px;text-decoration:none}
.nav .l{border:0;background:none;color:var(--mute-d);font:500 14px var(--f);padding:8px 11px;border-radius:99px;cursor:pointer;transition:color .2s;text-decoration:none}
.nav .l:hover,.nav .l.on,.nav .l[aria-current="page"]{color:var(--bone)}
.nav .get{border:0;background:var(--bone);color:var(--ink);font:600 14px var(--f);padding:10px 16px;border-radius:99px;cursor:pointer;margin-left:6px;text-decoration:none}
/* phone menu (built in core.js): two bars that turn into a cross, and a panel the capsule grows into */
.mbtn{display:none;position:relative;width:40px;height:36px;border:0;background:none;padding:0;cursor:pointer;margin-left:-4px}
.mbtn:focus-visible{outline-offset:-3px;border-radius:99px}
.mbtn i{position:absolute;left:11px;right:11px;height:1.5px;border-radius:2px;background:currentColor;transition:transform .5s var(--spring)}
.mbtn i:first-child{top:14px}.mbtn i:last-child{top:21px}
.nav.open .mbtn i:first-child{transform:translateY(3.5px) rotate(45deg)}.nav.open .mbtn i:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.mmenu{position:fixed;z-index:99;top:calc(env(safe-area-inset-top,0px) + 8px);left:8px;right:8px;display:none;flex-direction:column;padding:84px 26px 30px;border-radius:32px;background:var(--ink);color:var(--bone);box-shadow:0 0 0 1px var(--line-d),0 30px 60px -30px rgba(0,0,0,.6)}
.mmenu.on{display:flex}
.ml{font-size:clamp(38px,11vw,52px);font-weight:720;letter-spacing:-.04em;line-height:1.12;text-decoration:none;color:var(--bone);padding-block:2px}
.ml[aria-current="page"],.ml.on{color:var(--mute-d)}
@media (max-width:680px){.nav .l{display:none}.mbtn{display:block}}

/* ---------- buttons ---------- */
.cta{border:0;height:58px;padding:0 10px 0 26px;border-radius:99px;background:var(--bone);color:var(--ink);font:620 16px var(--f);letter-spacing:-.02em;display:inline-flex;align-items:center;gap:16px;cursor:pointer;text-decoration:none;white-space:nowrap}
.cta i{width:40px;height:40px;border-radius:99px;background:var(--ink);color:var(--bone);display:grid;place-items:center;flex:none}
.cta svg{width:16px;height:16px;transition:transform .5s var(--spring)}
.cta:hover svg{transform:rotate(45deg)}
.cta.dark{background:var(--ink);color:var(--bone)}
.cta.dark i{background:var(--bone);color:var(--ink)}

/* ---------- footer (inner pages) ---------- */
.foot{background:var(--ink);color:var(--bone);padding-block:72px 28px}
.foot-top{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}
.foot-top .wm{font-size:clamp(56px,9vw,150px);font-weight:720;letter-spacing:-.035em;line-height:.85;text-decoration:none}
.foot-top p{margin:0;max-width:34ch;color:var(--mute-d);font-size:16px;line-height:1.5}
.foot-bot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:56px;padding-top:22px;border-top:1px solid var(--ink3);color:var(--mute-d)}
.foot-bot nav{display:flex;gap:22px;flex-wrap:wrap}
.foot-bot a{text-decoration:none;transition:color .2s}
.foot-bot a:hover{color:var(--bone)}

/* ---------- page transition: the nav capsule swells to cover the screen, then shrinks back on the next page ---------- */
.pt{position:fixed;inset:0;z-index:250;background:var(--ink);pointer-events:none;clip-path:inset(50% 50% 50% 50% round 99px);visibility:hidden}
.pt.on{visibility:visible}
html.arriving .pt{visibility:visible;clip-path:inset(0 0 0 0 round 0)}

/* ---------- headline line masks ---------- */
.ln{display:block;overflow:hidden;padding:0 .12em .2em;margin:0 -.12em -.2em}
.li{display:inline-block}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
