/* =====================================================================
   main.css — shared base for index.html and about.html
   Loaded first; page-specific CSS (index.css / about.css) follows.
   ===================================================================== */

/* the `hidden` attribute must beat component display rules (e.g.
   .btn{display:inline-flex}); otherwise JS toggling `hidden` can't hide */
[hidden]{display:none!important}

/* ===== DESIGN TOKENS ===== */
:root {
  --cream:#fffdf7; --cream-2:#f3eee6; --card:#ffffff;
  --sec:clamp(62px,8vw,112px);
  --ink:#0f1117; --ink-soft:#3b404b; --muted:#888e9c;
  --line:rgba(15,17,23,0.10); --line-2:rgba(15,17,23,0.16);
  --teal:#5a6cff; --teal-deep:#2940ff; --teal-ink:#0b1024; --teal-tint:#e9ebff;
  --mint:#CDF4E2; --panel:#080b15;
  --txt:#eef0f7; --txt-soft:rgba(238,240,247,0.62); --txt-mute:rgba(238,240,247,0.40);
  --n-700:#4a4f5a; --n-500:#7b818e; --n-300:#adb3bf; --n-150:#d7dae2;
}

/* ===== RESET & BASE ===== */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);overflow-x:clip;
  font-family:'Geist',-apple-system,system-ui,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.5}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,5vw,56px)}
h1,h2,h3{font-family:'Funnel Display',sans-serif;letter-spacing:-0.03em;line-height:1.02}
section{padding:clamp(56px,8vw,104px) 0}
.cur{font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;letter-spacing:0}
.dot{color:var(--teal)}
.kick{font-family:'Darker Grotesque',sans-serif;font-size:13px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--teal-deep);font-weight:600;display:flex;align-items:center;gap:11px;margin-bottom:20px}
.kick::before{content:'';width:28px;height:2px;background:var(--teal)}
.blurw{display:inline-block}

/* ===== REVEAL ANIMATION ===== */
html.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(0.22,1,0.36,1)}
html.js .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){html.js .reveal{transition:none;opacity:1;transform:none}}

/* ===== HEADER & NAV ===== */
header{position:sticky;top:0;z-index:50;background:rgba(255,253,247,0.82);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:66px}
.nav .lock{transform:translateY(-2px)}
.logo-img{display:block;height:64px;width:auto}
.logo-white{filter:brightness(0) invert(1)}
.nlinks{display:flex;align-items:center;gap:26px}
.nlinks a:not(.btn){font-size:14px;color:var(--ink-soft);text-decoration:none;transition:color .18s}
.nlinks a:not(.btn):hover{color:var(--teal-deep)}

/* ===== BUTTONS ===== */
.btn{font-family:'Geist',sans-serif;font-size:14px;font-weight:500;cursor:pointer;border-radius:999px;
  padding:11px 21px;border:1px solid transparent;display:inline-flex;align-items:center;gap:8px;transition:.18s;text-decoration:none;white-space:nowrap}
.b-ink{background:var(--teal-ink);color:#fff;border-radius:14px}.b-ink:hover{transform:translateY(-1px)}
.b-light{background:var(--cream);color:var(--ink)}.b-light:hover{background:#fff;transform:translateY(-1px)}
.b-ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}.b-ghost:hover{border-color:var(--ink)}

/* ===== HAMBURGER ===== */
.ham{display:none;background:none;border:0;cursor:pointer;width:34px;height:34px;padding:7px;margin-left:4px;flex-direction:column;justify-content:space-between}
.ham span{display:block;height:2px;width:100%;background:var(--ink);border-radius:2px;transition:transform .25s ease,opacity .2s ease}
.ham[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.ham[aria-expanded="true"] span:nth-child(2){opacity:0}
.ham[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
@media(max-width:820px){
  .nlinks .nl-group{display:none}
  .ham{display:inline-flex}
}

/* ===== FOOTER ===== */
footer{position:relative;background:#2940FF;color:var(--cream);padding:28px 0 60px}
.frow2{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.fmeta{font-family:'Instrument Sans',sans-serif;font-weight:500;font-size:12.5px;color:rgba(245,246,250,0.92);line-height:1.8}
.flinks{display:flex;gap:18px;flex-wrap:wrap}
.flinks a{font-family:'Instrument Sans',sans-serif;font-weight:500;font-size:12.5px;color:rgba(245,246,250,0.92);text-decoration:none}
.flinks a:hover{color:var(--cream)}
