/* Creator Intelligence project website. Shares tokens with the application.
   Fonts are self-hosted from ./fonts (SIL OFL 1.1). No external requests. */
@font-face{font-family:"Newsreader";src:url("fonts/newsreader-latin-opsz-normal.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url("fonts/newsreader-latin-wght-italic.woff2") format("woff2");font-weight:200 800;font-style:italic;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("fonts/ibm-plex-sans-latin-wght-normal.woff2") format("woff2");font-weight:100 700;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("fonts/ibm-plex-sans-latin-wght-italic.woff2") format("woff2");font-weight:100 700;font-style:italic;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}

:root{
  color-scheme:light;
  --font-display:"Newsreader","Iowan Old Style",Georgia,serif;
  --font-sans:"IBM Plex Sans","Segoe UI",system-ui,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
  --paper:#f3f0e8;--sheet:#fcfbf7;--sunken:#eae6db;
  --ink:#1c1b18;--ink-2:#47433b;--ink-3:#6b665b;
  --rule:#d9d3c5;--rule-strong:#b5ad9b;
  --accent:#2d43b8;--accent-strong:#22338f;--accent-wash:#e3e6f6;
  --positive:#2a6640;--caution:#875608;--caution-wash:#f2e4c4;--danger:#a3242e;
  --night:#1c1b18;--night-2:#26241f;--night-ink:#eeeae1;--night-ink-2:#c6c0b3;--night-rule:#3a362f;
  --ease:cubic-bezier(.2,.7,.2,1);
  --max:1180px;
}
@media (prefers-color-scheme:dark){
  :root{
    color-scheme:dark;
    --paper:#141311;--sheet:#1c1b18;--sunken:#24221e;
    --ink:#eeeae1;--ink-2:#c6c0b3;--ink-3:#9d978a;
    --rule:#33302a;--rule-strong:#4e4a41;
    --accent:#9aa8ff;--accent-strong:#b9c3ff;--accent-wash:#252a47;
    --positive:#7dc495;--caution:#e2b25e;--caution-wash:#3a2e15;--danger:#f2878d;
    --night:#0e0d0c;--night-2:#1a1916;--night-rule:#2d2a25;
  }
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.65 var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3{margin:0;font-weight:500;text-wrap:balance}
p{margin:0 0 16px;text-wrap:pretty}
a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:4px;overflow-wrap:anywhere;transition:color .12s var(--ease)}
a:hover{color:var(--accent-strong);text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
code{font-family:var(--font-mono);font-size:.88em;overflow-wrap:anywhere}
.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}
.skip{position:absolute;left:16px;top:-60px;z-index:20;padding:8px 14px;background:var(--ink);color:var(--paper);border-radius:6px}
.skip:focus{top:12px}
.eyebrow,.kicker{font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.muted{color:var(--ink-3)}

/* Header */
.site-header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:64px}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-family:var(--font-display);font-size:19px;font-weight:500;white-space:nowrap}
.brand:hover{color:var(--ink);text-decoration:none}
.brand svg{flex:none}
.mark-bg{fill:var(--ink)}.mark-arc{stroke:var(--paper)}.mark-dot{fill:#7487f2}
.site-nav{display:flex;align-items:center;gap:4px;font-size:15px}
.site-nav a{padding:8px 10px;border-radius:6px;color:var(--ink-2);text-decoration:none}
.site-nav a:hover{background:var(--sunken);color:var(--ink)}
.site-nav a[aria-current="page"]{color:var(--ink);font-weight:600}
.site-nav .gh{margin-left:8px;border:1px solid var(--rule-strong);display:inline-flex;align-items:center;gap:6px}

/* Buttons */
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 20px;border-radius:6px;border:1px solid transparent;font-weight:500;text-decoration:none;transition:background-color .12s var(--ease),border-color .12s var(--ease),transform .12s var(--ease)}
.button:active{transform:translateY(1px)}
.button.primary{background:var(--ink);color:var(--paper)}
.button.primary:hover{background:var(--accent-strong);color:#fcfbf7}
.button.secondary{border-color:var(--rule-strong);color:var(--ink);background:var(--sheet)}
.button.secondary:hover{border-color:var(--ink-2);color:var(--ink)}
@media (prefers-color-scheme:dark){.button.primary:hover{background:var(--accent);color:#141311}}

/* Hero */
.hero{padding:72px 0 56px;border-bottom:1px solid var(--rule)}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:56px;align-items:start}
.hero h1{font-family:var(--font-display);font-size:clamp(38px,4.6vw,58px);line-height:1.02;letter-spacing:-.025em;margin:18px 0 24px}
.hero h1 em{font-style:italic;color:var(--ink-2)}
.lead{font-size:20px;line-height:1.55;color:var(--ink-2);max-width:40em}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin:32px 0 28px}
.byline{font-size:14px;color:var(--ink-3)}
.youtube-attribution{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;margin-top:28px;font-size:14px;color:var(--ink-3)}
.youtube-attribution a{display:inline-flex;padding:5px 12px;border-radius:6px;background:#0f0f0f}
.youtube-attribution img{display:block;width:168px;height:auto}

/* tools/list panel */
.manifest{border-radius:12px;background:var(--night);color:var(--night-ink);overflow:hidden;box-shadow:0 1px 0 var(--night-rule),0 24px 48px -24px rgb(28 27 24 / 45%);animation:rise .6s var(--ease) both .1s}
.manifest header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--night-rule);font-family:var(--font-mono);font-size:12.5px;color:var(--night-ink-2)}
.manifest header b{color:var(--night-ink);font-weight:500}
.manifest .group{padding:12px 18px 6px}
.manifest .group + .group{border-top:1px solid var(--night-rule)}
.manifest .group p{margin:0 0 6px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#9d978a}
.manifest ul{list-style:none;margin:0;padding:0}
.manifest li{display:flex;align-items:center;gap:10px;padding:3px 0;font-family:var(--font-mono);font-size:13px}
.manifest li::before{content:"";width:7px;height:7px;border-radius:50%;background:#7dc495;flex:none}
.manifest .blocked li{color:#9d978a}
.manifest .blocked li::before{background:transparent;box-shadow:inset 0 0 0 1.5px #9d978a}
.manifest .write li::before{background:#e2b25e}
.manifest footer{padding:12px 18px;border-top:1px solid var(--night-rule);font-size:12.5px;color:#9d978a;display:flex;flex-wrap:wrap;gap:6px 18px}
.manifest footer span{display:inline-flex;align-items:center;gap:7px}
.manifest footer i{width:7px;height:7px;border-radius:50%;display:inline-block}

/* Sections */
section.block{padding:88px 0;border-bottom:1px solid var(--rule)}
.section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:56px;margin-bottom:48px;align-items:end}
.section-head h2{font-family:var(--font-display);font-size:clamp(32px,3.6vw,46px);line-height:1.06;letter-spacing:-.02em;margin-top:10px}
.section-head p{margin:0;color:var(--ink-2);font-size:18px}

/* Ledger of steps */
.ledger{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:2px solid var(--ink)}
.ledger li{padding:22px 24px 8px 0;margin-right:24px;border-right:1px solid var(--rule)}
.ledger li:last-child{border-right:0;margin-right:0}
.ledger .n{font-family:var(--font-mono);font-size:13px;color:var(--accent)}
.ledger h3{font-family:var(--font-display);font-size:26px;margin:6px 0 10px}
.ledger p{font-size:15.5px;color:var(--ink-2);margin-bottom:12px}
.ledger code{font-size:12.5px;color:var(--ink)}

.boundary{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:56px;border:1px solid var(--rule);border-radius:12px;background:var(--sheet);overflow:hidden}
.boundary > div{padding:28px 32px}
.boundary > div + div{border-left:1px solid var(--rule);background:repeating-linear-gradient(-45deg,transparent 0 9px,var(--paper) 9px 11px)}
.boundary h3{font-size:15px;font-weight:600;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.boundary ul{list-style:none;margin:0;padding:0}
.boundary li{position:relative;padding:8px 0 8px 26px;border-top:1px solid var(--rule);font-size:15.5px}
.boundary li:first-child{border-top:0}
.boundary .yes li::before,.boundary .no li::before{position:absolute;left:0;top:8px;font-family:var(--font-mono);font-weight:500}
.boundary .yes li::before{content:"+";color:var(--positive)}
.boundary .no li::before{content:"×";color:var(--danger)}

/* Architecture */
.arch{display:grid;grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr) 72px minmax(0,1.2fr);align-items:center}
.node{border:1px solid var(--rule);border-radius:10px;background:var(--sheet);padding:18px 20px}
.node h3{font-size:15.5px;font-weight:600;margin-bottom:4px}
.node p{font-size:14.5px;color:var(--ink-2);margin:0}
.node .port{display:inline-block;margin-top:10px;font-family:var(--font-mono);font-size:12px;color:var(--ink-3)}
.node.dark{background:var(--night);color:var(--night-ink);border-color:var(--night)}
.node.dark p,.node.dark .port{color:var(--night-ink-2)}
.wire{position:relative;display:flex;align-items:center;justify-content:center}
.wire{align-self:stretch}
.wire::before{content:"";position:absolute;left:4px;right:6px;top:50%;border-top:1.5px solid var(--ink-3)}
.wire::after{content:"";position:absolute;right:5px;top:calc(50% - 4px);width:8px;height:8px;border-top:1.5px solid var(--ink-3);border-right:1.5px solid var(--ink-3);transform:rotate(45deg)}
.wire span{position:relative;top:-22px;background:var(--paper);padding:0 4px;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3);text-align:center;line-height:1.3}
.stack-nodes{display:grid;gap:12px}
.arch-note{margin-top:24px;font-size:15px;color:var(--ink-2);max-width:62em}

/* Install */
.steps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;gap:0}
.steps > li{counter-increment:s;display:grid;grid-template-columns:72px minmax(0,1fr);gap:24px;padding:28px 0;border-top:1px solid var(--rule)}
.steps > li::before{content:counter(s,decimal-leading-zero);font-family:var(--font-display);font-size:40px;line-height:1;color:var(--ink-3)}
.steps h3{font-family:var(--font-display);font-size:26px;margin-bottom:8px}
.steps p{color:var(--ink-2);max-width:62em}
.code{position:relative;margin:16px 0 14px;border-radius:10px;background:var(--night);color:var(--night-ink);overflow:hidden}
.code pre{margin:0;padding:20px 22px;overflow-x:auto;font-family:var(--font-mono);font-size:14px;line-height:1.7;tab-size:2}
.code pre code{font-size:inherit;overflow-wrap:normal}
.code .prompt{color:#9d978a;user-select:none}
.copy{position:absolute;top:10px;right:10px;min-height:32px;padding:0 12px;border:1px solid var(--night-rule);border-radius:6px;background:var(--night-2);color:var(--night-ink-2);font:500 12.5px var(--font-sans);cursor:pointer;transition:color .12s var(--ease),border-color .12s var(--ease)}
.copy:hover{color:var(--night-ink);border-color:#6b665b}
.copy[data-done]{color:#7dc495}
.prereq{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px;padding:0;list-style:none}
.prereq li{font-family:var(--font-mono);font-size:13px;padding:4px 10px;border:1px solid var(--rule-strong);border-radius:5px;background:var(--sheet)}
.callout{margin-top:28px;padding:20px 24px;border-radius:10px;background:var(--caution-wash);color:var(--ink);display:flex;gap:14px}
.callout svg{flex:none;color:var(--caution);margin-top:3px}
.callout p{margin:0}

/* Tables */
.table-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:10px;background:var(--sheet)}
table{width:100%;border-collapse:collapse;font-size:15px}
th,td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--rule);vertical-align:top}
tbody tr:last-child td{border-bottom:0}
th{font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);background:var(--paper)}
td:first-child{font-weight:600;white-space:nowrap}
td code{display:inline-block;margin:0 6px 4px 0;padding:1px 6px;border-radius:4px;background:var(--paper);font-size:13px}
tr.blocked td{color:var(--ink-3)}
.tag{display:inline-flex;align-items:center;gap:6px;font-size:13px;white-space:nowrap}
.tag::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--positive)}
.tag.w::before{background:var(--caution)}
.tag.x::before{background:transparent;box-shadow:inset 0 0 0 1.5px var(--ink-3)}
.after-table{margin-top:20px;color:var(--ink-2);font-size:15.5px;max-width:62em}

/* Limits */
.limits{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 48px;list-style:none;margin:0;padding:0}
.limits li{padding:16px 0 0;border-top:1px solid var(--rule);color:var(--ink-2);font-size:16px}
.limits li strong{display:block;color:var(--ink);font-weight:600;margin-bottom:2px}
.links{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:32px;font-weight:500}

/* Legal documents */
.doc{display:grid;grid-template-columns:220px minmax(0,720px);gap:64px;padding:64px 32px 96px;max-width:var(--max);margin:0 auto}
.doc aside{position:sticky;top:96px;align-self:start;font-size:14px}
.doc aside p{margin-bottom:10px}
.doc aside nav{display:flex;flex-direction:column;border-left:1px solid var(--rule)}
.doc aside nav a{padding:5px 0 5px 14px;margin-left:-1px;border-left:2px solid transparent;color:var(--ink-2);text-decoration:none}
.doc aside nav a:hover{color:var(--ink);border-left-color:var(--rule-strong)}
.legal h1{font-family:var(--font-display);font-size:clamp(38px,5vw,56px);line-height:1.04;letter-spacing:-.02em;margin:12px 0 20px}
.legal h2{font-family:var(--font-display);font-size:27px;margin:44px 0 12px;letter-spacing:-.01em}
.legal p{color:var(--ink-2)}
.legal > p:first-of-type{font-family:var(--font-mono);font-size:13.5px;color:var(--ink-3);padding-bottom:20px;border-bottom:1px solid var(--rule)}

/* Footer */
.site-footer{padding:40px 0 56px;font-size:14.5px;color:var(--ink-3)}
.site-footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px 32px}
.site-footer nav{display:flex;flex-wrap:wrap;gap:6px 20px}
.site-footer a{color:var(--ink-2)}

@keyframes rise{from{opacity:0;transform:translateY(10px)}}
.reveal{animation:rise .6s var(--ease) both}

@media (max-width:980px){
  .hero .wrap{grid-template-columns:minmax(0,1fr);gap:40px}
  .section-head{grid-template-columns:minmax(0,1fr);gap:16px;margin-bottom:32px}
  .ledger{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ledger li:nth-child(2){border-right:0;margin-right:0}
  .ledger li:nth-child(n+3){border-top:1px solid var(--rule)}
  .arch{grid-template-columns:minmax(0,1fr);gap:0}
  .wire{height:44px}
  .wire::before{left:50%;right:auto;top:6px;bottom:8px;border-top:0;border-left:1.5px solid var(--ink-3)}
  .wire::after{left:calc(50% - 4px);right:auto;top:auto;bottom:8px;transform:rotate(135deg)}
  .wire span{top:0;left:44px;text-align:left}
  .doc{grid-template-columns:minmax(0,1fr);gap:24px;padding-top:40px}
  .doc aside{position:static}
}
@media (max-width:720px){
  body{font-size:16px}
  .wrap{padding:0 16px}
  .site-header .wrap{min-height:56px;gap:12px}
  .site-nav{gap:0;font-size:14px;overflow-x:auto;scrollbar-width:none;mask-image:linear-gradient(to right,#000 85%,transparent)}
  .site-nav::-webkit-scrollbar{display:none}
  .site-nav a{padding:8px 8px;white-space:nowrap}
  .site-nav .opt{display:none}
  .brand span{display:none}
  .hero{padding:44px 0 40px}
  .lead{font-size:18px}
  .actions .button{flex:1 1 100%}
  section.block{padding:56px 0}
  .ledger{grid-template-columns:minmax(0,1fr)}
  .ledger li{margin-right:0;border-right:0;padding-right:0}
  .ledger li:nth-child(n+2){border-top:1px solid var(--rule)}
  .boundary{grid-template-columns:minmax(0,1fr)}
  .boundary > div{padding:22px 20px}
  .boundary > div + div{border-left:0;border-top:1px solid var(--rule)}
  .steps > li{grid-template-columns:minmax(0,1fr);gap:8px}
  .steps > li::before{font-size:30px}
  .code pre{font-size:12.5px;padding:18px 16px;padding-top:48px}
  th,td{padding:12px}
  .limits{grid-template-columns:minmax(0,1fr)}
  .doc{padding:28px 16px 64px}
  .doc aside nav{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:1ms!important;animation-delay:0s!important;transition-duration:1ms!important}
}
