@font-face{font-family:Satoshi;src:url("/assets/fonts/satoshi-400.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Satoshi;src:url("/assets/fonts/satoshi-500.woff2") format("woff2");font-weight:500 600;font-display:swap}
@font-face{font-family:Satoshi;src:url("/assets/fonts/satoshi-700.woff2") format("woff2");font-weight:700 900;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("/assets/fonts/jetbrains-mono-var.woff2") format("woff2");font-weight:300 800;font-display:swap}
:root{
  color-scheme:light;
  --blue:#2f80ff;
  --blue-dark:#175fc5;
  --blue-soft:#eaf3ff;
  --green:#16866a;
  --green-soft:#e9f8f3;
  --red:#c33e51;
  --red-soft:#fff0f2;
  --ink:#122033;
  --muted:#5c6878;
  --line:#d7e0ea;
  --line-strong:#afbdcc;
  --paper:#fff;
  --canvas:#f4f7fb;
  --shadow:0 18px 55px rgba(24,49,83,.09);
  --sans:Satoshi,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Consolas,monospace;
}
[data-theme="dark"]{
  color-scheme:dark;
  --blue:#70aaff;
  --blue-dark:#a8caff;
  --blue-soft:#142a48;
  --green:#54d5ad;
  --green-soft:#12342d;
  --red:#ff8292;
  --red-soft:#3d1820;
  --ink:#f2f6fb;
  --muted:#a8b4c2;
  --line:#344256;
  --line-strong:#53647a;
  --paper:#111a27;
  --canvas:#0b121d;
  --shadow:0 18px 55px rgba(0,0,0,.28);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--canvas);color:var(--ink);font:16px/1.55 var(--sans)}
button,input,select,textarea{font:inherit}
button,a,select,input{touch-action:manipulation}
a{color:var(--blue-dark);text-underline-offset:3px}
.wrap{width:min(1180px,calc(100% - 32px));margin-inline:auto}
.skip-link{position:fixed;z-index:1000;left:16px;top:12px;padding:10px 14px;border-radius:8px;background:var(--ink);color:var(--paper);transform:translateY(-160%)}
.skip-link:focus{transform:none}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hero{padding:54px 0 30px;background:radial-gradient(circle at 82% 5%,rgba(47,128,255,.13),transparent 38%)}
.eyebrow,.panel-kicker,.rail-label{margin:0;color:var(--blue-dark);font:700 12px/1.35 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.hero h1{max-width:900px;margin:12px 0 14px;font:700 clamp(31px,4.4vw,52px)/1.04 var(--sans);letter-spacing:-.04em}
.lede{max-width:860px;margin:0;color:var(--muted);font-size:clamp(17px,2vw,21px)}
.boundary,.preview-boundary{border:1px solid color-mix(in srgb,var(--green) 42%,var(--line));border-radius:12px;background:var(--green-soft);color:var(--ink)}
.boundary{max-width:940px;margin-top:20px;padding:13px 15px}
.studio{padding:10px 0 68px;scroll-margin-top:86px}
.step-rail{margin-bottom:18px;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:0 9px 30px rgba(24,49,83,.05)}
.rail-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 16px 9px}
.rail-head p{margin:0}.rail-head #railProgress{margin-top:2px;color:var(--muted);font-size:14px}
.reset-link{min-height:44px;border:0;background:transparent;color:var(--blue-dark);font-weight:750;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.reset-link:disabled{visibility:hidden}
.stepper{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.stepper li{min-width:0}
.stepper button{display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;column-gap:9px;width:100%;min-height:82px;padding:13px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);text-align:left;cursor:pointer}
.stepper li:last-child button{border-right:0}
.stepper button>span{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;margin-top:1px;border:1px solid var(--line-strong);border-radius:50%;font:700 12px/1 var(--mono)}
.stepper button>b{align-self:end;color:var(--ink);font-size:14px;line-height:1.2}
.stepper button>small{align-self:start;overflow-wrap:anywhere;font-size:12px;line-height:1.35}
.stepper button.active{background:var(--blue-soft);box-shadow:inset 0 3px 0 var(--blue)}
.stepper button.active>span{border-color:var(--blue);background:var(--blue);color:#fff}
.stepper button.done>span{border-color:var(--green);background:var(--green-soft);color:var(--green)}
.stepper button.done>b{color:var(--green)}
.stepper button:disabled{cursor:not-allowed;opacity:.5}
.studio-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
.decision-column{min-width:0}
.panel,.blueprint-preview{border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:var(--shadow)}
.panel{padding:clamp(22px,3.4vw,38px);scroll-margin-top:86px}
.panel[hidden]{display:none}
.panel h2,.terms h2{margin:6px 0 10px;font-size:clamp(26px,3.2vw,38px);line-height:1.13;letter-spacing:-.03em}
.panel h3{margin:28px 0 10px;font-size:19px;line-height:1.3}
.panel-copy{max-width:760px;color:var(--muted)}
.grid{display:grid;gap:16px;margin:22px 0}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
label{display:grid;gap:7px;margin-top:17px;font-weight:700}
input,select,textarea{width:100%;min-height:46px;padding:11px 13px;border:1px solid var(--line-strong);border-radius:10px;background:var(--canvas);color:var(--ink)}
input:hover,select:hover,textarea:hover{border-color:var(--blue)}
:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 52%,transparent);outline-offset:3px}
.seed-row{display:flex;flex-wrap:wrap;gap:8px;margin:17px 0}
.seed-row button{min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink);cursor:pointer;font-weight:700}
.seed-row button:hover{border-color:var(--blue);color:var(--blue-dark)}
.actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:25px}
.actions>:first-child[data-back],.actions>.ghost:first-child{margin-right:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 16px;border:1px solid var(--line-strong);border-radius:10px;background:var(--paper);color:var(--ink);cursor:pointer;font-weight:800;text-decoration:none}
.btn.primary{border-color:var(--blue);background:var(--blue);color:#fff}
.btn.primary:hover{background:var(--blue-dark)}
.btn.danger{border-color:var(--red);color:var(--red);background:var(--red-soft)}
.btn:disabled{cursor:not-allowed;opacity:.48}
.error{margin-top:15px;padding:11px 13px;border-left:4px solid var(--red);border-radius:6px;background:var(--red-soft);color:var(--ink)}
.blueprint-preview{position:sticky;top:82px;padding:21px}
.preview-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.preview-head h2{margin:5px 0 0;font-size:22px;line-height:1.2}
.status-pill{flex:none;padding:5px 9px;border:1px solid var(--line);border-radius:999px;background:var(--canvas);font:700 11px/1.3 var(--mono);text-transform:uppercase}
.preview-copy{margin:17px 0;color:var(--muted)}
.preview-list{margin:0;border-top:1px solid var(--line)}
.preview-list div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.preview-list dt{color:var(--muted);font-size:13px}.preview-list dd{min-width:0;margin:0;overflow-wrap:anywhere;font-weight:700;font-size:14px}
.preview-tests{margin:15px 0}.preview-tests p{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:8px;align-items:center;margin:8px 0;font-size:13px}
.preview-tests span{width:9px;height:9px;border-radius:50%;background:var(--line-strong)}.preview-tests span.pass{background:var(--green)}
.preview-tests b{color:var(--muted)}
.preview-boundary{padding:11px;font-size:13px}
.entity{margin-top:20px}.entity-head{display:flex;justify-content:space-between;gap:16px;align-items:start;padding-bottom:15px;border-bottom:1px solid var(--line)}
.entity-head h3{margin:0 0 4px}.confidence{flex:none;padding:5px 9px;border-radius:999px;background:var(--blue-soft);color:var(--blue-dark);font:700 11px/1.3 var(--mono);text-transform:uppercase}
.facts{display:grid;gap:12px;margin-top:14px}.fact{padding:15px;border:1px solid var(--line);border-radius:12px;background:var(--canvas)}.fact p{margin:0 0 5px}.fact small{color:var(--muted)}.fact label{margin-top:12px}
.confirm{grid-template-columns:22px minmax(0,1fr);align-items:start;margin-top:20px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--canvas)}.confirm input{min-height:22px;height:22px;margin:1px 0 0}.confirm span{font-weight:600}
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}
.choice{display:grid;gap:7px;min-height:132px;padding:15px;border:1px solid var(--line);border-radius:12px;background:var(--canvas);color:var(--ink);cursor:pointer;text-align:left}
.choice[aria-checked="true"]{border-color:var(--blue);background:var(--blue-soft);box-shadow:inset 0 0 0 1px var(--blue)}
.choice strong{font-size:16px}.choice span{color:var(--muted);font-size:13px}
.contract{display:grid;grid-template-columns:minmax(130px,.38fr) minmax(0,1fr);margin:20px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.contract dt,.contract dd{margin:0;padding:11px 13px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.contract dt{background:var(--canvas);font-weight:800;text-transform:capitalize}.contract dd{border-left:1px solid var(--line)}.contract :nth-last-child(-n+2){border-bottom:0}
.architecture{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.arch-node{min-width:0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--canvas)}.arch-node b,.arch-node span{display:block}.arch-node span{margin-top:4px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}
pre{max-height:340px;overflow:auto;margin:12px 0;padding:15px;border:1px solid var(--line);border-radius:12px;background:#0c1624;color:#d9e9ff;font:12px/1.55 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere}
.test-result{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--canvas)}.test-result.pass{border-color:var(--green);background:var(--green-soft)}.test-result.fail{border-color:var(--red);background:var(--red-soft)}
.test-checklist{display:grid;gap:8px}.test-checklist span{display:flex;gap:9px;align-items:center}.test-checklist i{width:10px;height:10px;border-radius:50%;background:var(--line-strong)}.test-checklist span.pass i{background:var(--green)}
.brief{overflow-x:auto}.brief table{width:100%;border-collapse:collapse}.brief th,.brief td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere}.brief th{width:160px;color:var(--muted)}
.terms{padding:0 0 68px}.contract-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:18px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--line)}.contract-grid div{display:grid;gap:4px;padding:15px;background:var(--paper)}.contract-grid span{color:var(--muted);font-size:14px}
footer{border-top:1px solid var(--line);background:var(--paper)}.footer-inner{display:flex;justify-content:space-between;gap:20px;padding:22px 0;color:var(--muted)}.footer-inner nav{display:flex;flex-wrap:wrap;gap:14px}
@media(max-width:980px){.studio-grid{grid-template-columns:1fr}.blueprint-preview{position:static;order:-1}.decision-column{order:1}}
@media(max-width:760px){
  .wrap{width:min(100% - 24px,1180px)}.hero{padding-top:40px}.hero h1{font-size:clamp(30px,11vw,42px)}
  .stepper{grid-template-columns:repeat(2,minmax(0,1fr))}.stepper button{border-top:1px solid var(--line)}.stepper li:nth-child(odd) button{border-left:0}.stepper li:nth-child(even) button{border-right:0}
  .grid.two,.choice-grid,.contract-grid,.architecture{grid-template-columns:1fr}.panel{padding:22px 16px}.contract{grid-template-columns:1fr}.contract dd{border-left:0}.contract :nth-last-child(-n+2){border-bottom:1px solid var(--line)}.contract dd:last-child{border-bottom:0}
  .actions{align-items:stretch}.actions .btn{flex:1 1 100%}.actions>:first-child[data-back],.actions>.ghost:first-child{margin-right:0;order:2}.footer-inner{display:grid}
}
@media(max-width:380px){.rail-head{align-items:flex-start}.stepper button{min-height:76px;padding:10px 8px;column-gap:6px}.stepper button>small{font-size:11px}.preview-list div{grid-template-columns:78px minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
