/* Kitebook studio pages (home, work front doors): tokens, base, and the "windows" that preview each
   training in its own style. The windows are the seam between Kitebook and a training's own world. */
:root{
  --paper:#EAF0F2; --surface:#FFFFFF; --sky:#DDE9F0; --ink:#17293A; --muted:#5B6D7C; --line:#C9D5DC;
  --gem:#C98A12; --gem-soft:#F6E7C4; --sea:#1C7A72; --sea-soft:#D3ECE8; --rose:#BE3F57; --rose-soft:#F6DCE1;
  --f-display:"Fredoka","Trebuchet MS",system-ui,sans-serif;
  --f-body:"Literata",Georgia,"Times New Roman",serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --paper:#0E1820; --surface:#15222D; --sky:#182A37; --ink:#E4ECF1; --muted:#93A5B3; --line:#2A3B48;
  --gem:#EDB441; --gem-soft:#3A3018; --sea:#43B5A7; --sea-soft:#163834; --rose:#EC7B90; --rose-soft:#3D1F27; color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#0E1820; --surface:#15222D; --sky:#182A37; --ink:#E4ECF1; --muted:#93A5B3; --line:#2A3B48;
  --gem:#EDB441; --gem-soft:#3A3018; --sea:#43B5A7; --sea-soft:#163834; --rose:#EC7B90; --rose-soft:#3D1F27; color-scheme:dark}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
.in{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:600;line-height:1.1;margin:0;letter-spacing:-.005em}
p{margin:0}
a{color:inherit}
.eyebrow{font:500 12px/1.2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.btn{display:inline-flex;align-items:center;gap:8px;font:600 16px/1 var(--f-display);text-decoration:none;border-radius:999px;padding:14px 22px;border:1.5px solid var(--ink);transition:transform .15s;cursor:pointer;background:none;color:var(--ink)}
.btn:hover{transform:translateY(-1px)}
.btn.solid{background:var(--ink);color:var(--surface)}
.btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid var(--gem);outline-offset:3px}
section{padding:64px 0;scroll-margin-top:60px}
.head{display:flex;flex-direction:column;gap:12px;margin-bottom:32px;max-width:62ch}
.head h2{font-size:clamp(30px,4vw,44px)}
.head p{color:var(--muted)}
.lede{font-size:19px;color:var(--muted);max-width:44ch}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:10px}
.card h3{font-size:21px}
.card p{color:var(--muted);font-size:16px}
.pill{display:inline-flex;align-items:center;gap:6px;font:500 12px var(--f-mono);letter-spacing:.04em;padding:4px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:var(--surface)}
footer.site{border-top:1px solid var(--line);padding:28px 0 40px;margin-top:24px}
footer.site .in{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center;font-size:14px;color:var(--muted)}
.sitetabs a.contact{color:var(--surface);background:var(--rose)}
.sitetabs a.contact:hover{color:var(--surface)}

/* ---------- Windows into each training (each in that training's own style) ---------- */
.win{position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 60px -34px rgba(23,41,58,.55);aspect-ratio:16/11;font-size:14px;line-height:1.45;isolation:isolate}
.win .chrome{position:absolute;top:0;left:0;right:0;height:30px;display:flex;align-items:center;gap:6px;padding:0 12px;z-index:2}
.win .chrome i{width:9px;height:9px;border-radius:50%;background:currentColor;opacity:.25}
.win .chrome span{margin-left:8px;font:500 11px var(--f-mono);opacity:.6}
.win .body{position:absolute;inset:30px 0 0;padding:16px 18px;display:flex;flex-direction:column;gap:10px}
/* Echo: dark, glossy chat */
.win.echo{background:#0A0912;color:#F2F0FA;font-family:Inter,system-ui,sans-serif;border-color:#2A2540}
.win.echo::before{content:"";position:absolute;inset:-30%;z-index:-1;background:radial-gradient(40% 40% at 20% 15%,rgba(154,132,255,.35),transparent 70%),radial-gradient(35% 35% at 90% 30%,rgba(255,92,124,.25),transparent 70%)}
.win.echo .orb{width:22px;height:22px;border-radius:50%;flex:none;background:conic-gradient(#9A84FF,#FF5C7C,#FFC64D,#2FD6BF,#9A84FF)}
.win.echo .u{align-self:flex-end;background:#F2F0FA;color:#0A0912;border-radius:16px 16px 4px 16px;padding:8px 12px;max-width:80%}
.win.echo .e{display:flex;gap:9px;align-items:flex-start;max-width:92%}
.win.echo .e p{color:#E6E2F5}
.win.echo .chips{margin-top:auto;display:flex;gap:6px;flex-wrap:wrap}
.win.echo .chips span{border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:5px 10px;font-weight:600;font-size:12px;background:#15131F}
.win.echo .chips span.on{background:#F2F0FA;color:#0A0912}
.win.echo .big{font:800 30px/1 "Bricolage Grotesque",Inter,sans-serif;letter-spacing:-.03em;background:linear-gradient(100deg,#9A84FF,#FF5C7C 50%,#FFC64D);-webkit-background-clip:text;background-clip:text;color:transparent}
/* Tangent: graph paper, cool blues */
.win.tangent{background-color:#F3F5FA;background-image:linear-gradient(#D3DAEA 1px,transparent 1px),linear-gradient(90deg,#D3DAEA 1px,transparent 1px);background-size:22px 22px;color:#0F1630;font-family:Inter,system-ui,sans-serif;border-color:#D3DAEA}
.win.tangent .q{font:700 19px/1.2 "Space Grotesk",Inter,sans-serif;letter-spacing:-.01em}
.win.tangent .bar{height:26px;border-radius:7px;display:grid;overflow:hidden;border:1px solid #C9D3EA}
.win.tangent .bar i{border-right:2px solid #F3F5FA}
.win.tangent .bar i:last-child{border-right:0}
.win.tangent .opts{display:flex;gap:8px;margin-top:auto}
.win.tangent .opts span{flex:1;background:#fff;border:1.5px solid #D3DAEA;border-radius:10px;padding:8px 10px;font-weight:600}
.win.tangent .opts span.on{border-color:#2563EB;background:#DCE7FD}
.win.tangent .tag{font:500 11px "JetBrains Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:#55607A}
/* SkyGems: warm, bookish */
.win.skygems{background:#EAF0F2;color:#17293A;font-family:Literata,Georgia,serif;border-color:#C9D5DC}
.win.skygems .body{flex-direction:row;gap:12px}
.win.skygems .stage{flex:1.1;background:#DDE9F0;border-radius:12px;display:grid;place-items:center}
.win.skygems .page{flex:1;display:flex;flex-direction:column;gap:8px}
.win.skygems .ch{font:600 11px Fredoka,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#5B6D7C}
.win.skygems .mv{margin-top:auto;font:500 13px Fredoka,sans-serif;background:#17293A;color:#fff;border-radius:9px;padding:8px 10px}
.win.skygems em{color:#1C7A72}

/* ---------- Doorway: the window grows into the training's world, then we navigate ---------- */
.door{position:fixed;z-index:200;pointer-events:none;transition:top .55s cubic-bezier(.7,0,.2,1),left .55s cubic-bezier(.7,0,.2,1),width .55s cubic-bezier(.7,0,.2,1),height .55s cubic-bezier(.7,0,.2,1),border-radius .55s}
body.leaving > *:not(.door){transition:opacity .4s;opacity:.0}

@media (max-width:860px){.grid3{grid-template-columns:minmax(0,1fr)}section{padding:44px 0}}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
