/* ============================================================
   AI Agent v1 — base.css
   Design tokens + shared components (nav / ticker / buttons /
   section heads / footer / reveal / lang switcher).
   No external resources. All fonts local (see fonts.css).
   ============================================================ */

:root{
  --cream:#FBF7F0;
  --ink:#2B2B33;
  --term-green:#00DC64;
  --openai:#10A37F;
  --anthropic:#D97757;
  --google:#4285F4;
  --pplx:#20B8CD;
  --xai:#17171C;
  --tier-free:#F2EDE4;
  --tier-pro:#FFE08A;
  --tier-max:#E5C9F4;
  --card-shadow:4px 4px 0 var(--ink);
  --card-shadow-lift:7px 9px 0 var(--ink);
  --r:22px;
  --font-display:'Fredoka',sans-serif;
  --font-body:'Nunito',sans-serif;
  --font-mono:'JetBrains Mono',monospace;
  --font-hand:'Caveat',cursive;
}

/* CJK system-font fallbacks per language (CJK glyphs are not
   bundled locally — webfonts would cost several MB; system fonts
   keep the site light for Firebase / Arweave). */
html[lang="zh-Hant"]{
  --font-display:'Fredoka','PingFang TC','Hiragino Sans CNS','Microsoft JhengHei',sans-serif;
  --font-body:'Nunito','PingFang TC','Hiragino Sans CNS','Microsoft JhengHei',sans-serif;
  --font-hand:'Caveat','PingFang TC','Microsoft JhengHei',cursive;
}
html[lang="ja"]{
  --font-display:'Fredoka','Hiragino Kaku Gothic ProN','Hiragino Sans','Yu Gothic','Meiryo',sans-serif;
  --font-body:'Nunito','Hiragino Kaku Gothic ProN','Hiragino Sans','Yu Gothic','Meiryo',sans-serif;
  --font-hand:'Caveat','Hiragino Kaku Gothic ProN','Yu Gothic',cursive;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:clamp(0.95rem, 0.9rem + 0.3vw, 1.0625rem);
  line-height:1.6;
  overflow-x:hidden;
}
h1,h2,h3,.display{font-family:var(--font-display);}
.mono{font-family:var(--font-mono);}
.hand{font-family:var(--font-hand);}
img{display:block;max-width:100%;}
a{color:inherit;}

/* ============ scroll reveal ============ */
.reveal{opacity:0;transform:translateY(26px);}
.reveal.in{opacity:1;transform:translateY(0);animation:popIn .65s cubic-bezier(.2,1.4,.4,1) backwards;}
@keyframes popIn{
  0%{opacity:0;transform:translateY(26px) scale(.97);}
  70%{opacity:1;transform:translateY(-4px) scale(1.01);}
  100%{opacity:1;transform:translateY(0) scale(1);}
}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;}
  .reveal.in{animation:none;}
  *{animation-duration:.001s !important;transition-duration:.001s !important;}
}

/* ============ nav ============ */
.nav{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;gap:18px;
  padding:14px 28px;
  background:rgba(251,247,240,.88);
  backdrop-filter:blur(8px);
  border-bottom:3px solid var(--ink);
}
.logo{
  display:flex;align-items:center;gap:10px;
  font-family:var(--font-display);font-weight:600;font-size:22px;
  text-decoration:none;
}
.logo-chip{
  width:36px;height:36px;border-radius:12px;
  border:3px solid var(--ink);
  background:linear-gradient(135deg,#F8C8DC,#BFE3C0);
  box-shadow:2px 2px 0 var(--ink);
  display:grid;place-items:center;
  font-family:var(--font-mono);font-size:13px;font-weight:700;
}
.nav-links{display:flex;gap:14px;margin-left:auto;font-weight:700;font-size:15px;align-items:center;}
.nav-links a{text-decoration:none;opacity:.8;transition:opacity .15s;padding:10px 4px;display:inline-block;}
.nav-links a:hover{opacity:1;}
.burger{
  display:none;width:2.75rem;height:2.75rem;flex:none;
  border:3px solid var(--ink);border-radius:14px;background:#fff;
  box-shadow:2px 2px 0 var(--ink);cursor:pointer;
  flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0;
}
.burger span{display:block;width:18px;height:3px;background:var(--ink);border-radius:2px;transition:transform .2s,opacity .2s;}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-menu{
  display:none;position:absolute;top:100%;left:0;right:0;
  background:var(--cream);border-bottom:3px solid var(--ink);
  flex-direction:column;padding:.5rem 1.25rem 1rem;
  box-shadow:0 10px 24px rgba(43,43,51,.12);
}
.mobile-menu.open{display:flex;}
.mobile-menu a{
  text-decoration:none;font-weight:800;font-size:1.0625rem;
  padding:.85rem .25rem;min-height:2.75rem;display:flex;align-items:center;
  border-bottom:2px dashed rgba(43,43,51,.18);
}
.mobile-menu a:last-child{border-bottom:none;}
.lang{
  display:flex;border:3px solid var(--ink);border-radius:999px;overflow:hidden;
  box-shadow:2px 2px 0 var(--ink);background:#fff;margin-left:18px;
  font-family:var(--font-mono);font-size:12px;
}
.lang button{
  border:none;background:transparent;padding:8px 14px;cursor:pointer;
  font:inherit;font-weight:700;color:var(--ink);min-height:2.75rem;
}
.lang-short{display:none;}
.lang button + button{border-left:2px solid var(--ink);}
.lang button.on{background:var(--ink);color:var(--term-green);}

/* ============ ticker ============ */
.ticker{
  background:var(--ink);color:var(--term-green);
  font-family:var(--font-mono);font-size:13px;
  overflow:hidden;white-space:nowrap;position:relative;
  border-bottom:3px solid var(--ink);
  padding:7px 0;
}
.ticker::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,.35) 0 1px,transparent 1px 3px);
}
.ticker-track{display:inline-flex;gap:0;animation:tick 28s linear infinite;}
.ticker span{padding:0 18px;}
.ticker b{color:#fff;font-weight:500;}
@keyframes tick{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ============ buttons ============ */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-display);font-weight:600;font-size:18px;
  padding:14px 26px;border-radius:18px;border:3px solid var(--ink);
  box-shadow:var(--card-shadow);cursor:pointer;text-decoration:none;
  transition:transform .18s cubic-bezier(.2,1.6,.4,1),box-shadow .18s;
  background:#fff;color:var(--ink);white-space:nowrap;
}
.btn:hover{transform:translate(-2px,-4px) rotate(-1.2deg);box-shadow:var(--card-shadow-lift);}
.btn:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink);}
.btn.primary{background:var(--term-green);}
.btn .arr{font-family:var(--font-mono);font-weight:700;}

/* ============ section scaffolding ============ */
section{max-width:1200px;margin:0 auto;padding:clamp(3.5rem, 6vw, 5.25rem) clamp(1.25rem, 3vw, 2rem);}
.sec-head{margin-bottom:44px;max-width:640px;}
.kicker{
  display:inline-block;font-family:var(--font-mono);font-size:12px;font-weight:700;
  background:#fff;border:3px solid var(--ink);border-radius:999px;
  padding:4px 14px;box-shadow:2px 2px 0 var(--ink);margin-bottom:16px;
  letter-spacing:.08em;
}
.sec-head h2{font-size:clamp(32px,3.6vw,46px);font-weight:600;line-height:1.1;margin-bottom:10px;}
.sec-head p{font-size:clamp(1rem, 0.95rem + 0.35vw, 1.125rem);opacity:.85;text-wrap:pretty;}

/* ============ footer ============ */
footer{
  background:#0C0C10;color:var(--term-green);
  border-top:3px solid var(--ink);
  font-family:var(--font-mono);
  position:relative;overflow:hidden;
}
footer::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,.4) 0 1px,transparent 1px 3px);
}
.foot-in{max-width:1200px;margin:0 auto;padding:56px 32px 40px;position:relative;z-index:1;}
.foot-rocket{text-align:center;margin-bottom:28px;}
.foot__rocket{height:64px;width:auto;display:inline-block;
  filter:drop-shadow(0 2px 12px rgba(247,147,26,.35));
  transition:transform .28s ease,filter .28s ease;}
@media (max-width:600px){.foot__rocket{height:54px;}}
.type-line{font-size:15px;min-height:48px;margin-bottom:34px;white-space:pre-wrap;}
.type-line .cursor{display:inline-block;width:9px;height:16px;background:var(--term-green);vertical-align:-2px;animation:blink 1s steps(1) infinite;}
@keyframes blink{50%{opacity:0;}}
.foot-grid{display:flex;gap:48px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;}
.foot-links{display:flex;gap:26px;flex-wrap:wrap;font-size:13px;}
.foot-links a{color:var(--term-green);text-decoration:none;opacity:.85;}
.foot-links a:hover{opacity:1;text-decoration:underline;}
.foot-copy{font-size:12px;opacity:.55;color:#9AF5C0;}

/* ============ shared responsive ============ */
@media (max-width:860px){
  .nav-links{display:none;}
  .lang{margin-left:auto;}
  .burger{display:flex;}
}
@media (max-width:640px){
  .nav{padding:10px 16px;gap:10px;}
  .ordinals-tag{display:none;}
  .logo{font-size:1.125rem;}
  .lang-full{display:none;}
  .lang-short{display:inline;}
  .lang button{padding:8px 12px;}
  .ticker{font-size:12px;}
  .foot-grid{flex-direction:column;align-items:flex-start;gap:22px;}
  .foot-links{gap:6px 18px;}
  .foot-links a{padding:10px 2px;display:inline-block;}
  .type-line{font-size:0.8125rem;}
}
