:root{color-scheme:light;--canvas: #0a4a68;--deep: #06354c;--deepest: #042838;--paper: #f4efd8;--paper-bright: #fffbed;--ink: #052d3d;--whiteprint: #f7f4e8;--muted-blue: #c8e4e7;--muted-paper: #51656b;--cyan: #7fe3e8;--coral: #ff806e;--mint: #8ee0b0;--amber: #f4c867;--danger: #b73535;--rule: rgba(167, 225, 232, .2);--grid: 24px;--sans: "Trebuchet MS", "Avenir Next", system-ui, sans-serif;--mono: ui-monospace, "SFMono-Regular", Consolas, monospace;font-family:var(--sans);font-synthesis:none}*{box-sizing:border-box}html{overflow-x:clip;scroll-behavior:smooth}body{margin:0;min-width:320px;overflow-x:clip;background-color:var(--canvas);background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px),linear-gradient(rgba(167,225,232,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(167,225,232,.08) 1px,transparent 1px);background-size:96px 96px,96px 96px,24px 24px,24px 24px;color:var(--whiteprint);font-size:16px;line-height:1.55}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}a{color:inherit;text-underline-offset:.22em}img,svg{display:block;max-width:100%}[hidden]{display:none!important}.skip-link{position:fixed;z-index:100;left:16px;top:12px;padding:12px 16px;background:var(--paper);color:var(--ink);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:4px solid var(--coral);outline-offset:3px}.offline-banner{padding:10px 24px;background:var(--amber);color:var(--ink);text-align:center;font-weight:700}.site-header,.hero,.problem-rule,.workbench-section,.integration,.studio,.site-footer{width:min(1380px,calc(100% - 64px));margin-inline:auto}.site-header{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:32px;border-bottom:1px solid rgba(200,228,231,.5)}.wordmark{display:inline-flex;align-items:center;gap:10px;color:var(--whiteprint);font:700 .78rem/1.1 var(--mono);letter-spacing:.08em;text-decoration:none}.wordmark svg{width:40px;height:40px;fill:none;stroke:var(--cyan);stroke-width:1.5}.wordmark svg circle:first-child{fill:var(--paper);stroke:none}.wordmark b{color:var(--cyan)}.site-header nav,.site-footer nav{display:flex;align-items:center;gap:28px}.site-header nav a,.site-footer nav a{min-height:44px;display:inline-flex;align-items:center;font-size:.9rem;font-weight:700;text-decoration:none}.site-header nav a:hover,.site-footer nav a:hover{text-decoration:underline}.nav-key{border:1px solid var(--cyan);padding:0 16px}.hero{min-height:min(800px,calc(100svh - 92px));display:grid;grid-template-columns:minmax(0,.82fr) minmax(440px,1.18fr);align-items:center;gap:clamp(36px,7vw,112px);padding-block:72px 84px}.hero-copy{position:relative}.hero-copy:before{content:"";position:absolute;left:-32px;top:3px;width:12px;height:12px;border:1px solid var(--cyan);border-radius:50%;box-shadow:0 64px 0 -5px var(--cyan),0 128px 0 -5px var(--cyan)}.eyebrow,.sheet-code,.index-mark{margin:0 0 16px;color:var(--cyan);font:700 .78rem/1.4 var(--mono);letter-spacing:.11em;text-transform:uppercase}.eyebrow span{color:var(--whiteprint)}h1,h2,h3,p{text-wrap:pretty}h1{max-width:720px;margin:0;font-size:clamp(3rem,6.3vw,6.8rem);line-height:.91;letter-spacing:-.062em}.lede{max-width:58ch;margin:28px 0 0;color:var(--muted-blue);font-size:clamp(1.05rem,1.4vw,1.25rem)}.hero-actions,.export-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.button,button,.button-quiet{min-height:48px;border:2px solid currentColor;border-radius:0;padding:11px 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:transparent;color:inherit;font-weight:800;line-height:1.2;text-decoration:none;cursor:pointer}.button:hover,button:hover{transform:translateY(-1px)}.button:active,button:active{transform:translateY(1px)}.button-primary{border-color:var(--cyan);background:var(--cyan);color:var(--ink)}.button-ghost{border-color:currentColor}.button-quiet{border-style:dashed}button:disabled{cursor:not-allowed;opacity:.45;transform:none}.measure-list{display:flex;gap:0;margin:48px 0 0;padding:0;list-style:none;border-top:1px solid rgba(200,228,231,.45)}.measure-list li{min-width:118px;padding:15px 22px 0 0}.measure-list b,.measure-list span{display:block}.measure-list b{color:var(--whiteprint);font:700 1.1rem var(--mono)}.measure-list span{margin-top:4px;color:var(--muted-blue);font-size:.78rem}.hero-plate{position:relative;margin:0;border:1px solid rgba(127,227,232,.7);background:var(--deep);box-shadow:18px 18px 0 var(--deepest)}.hero-plate:before,.hero-plate:after{content:"";position:absolute;z-index:1;width:22px;height:22px;border:1px solid var(--coral);border-radius:50%}.hero-plate:before{left:-12px;top:-12px}.hero-plate:after{right:-12px;bottom:-12px}.hero-plate img{width:100%;height:auto;aspect-ratio:3 / 2;object-fit:cover}.hero-plate figcaption{display:flex;gap:16px;padding:12px 16px;color:var(--muted-blue);font:.78rem var(--mono);border-top:1px solid rgba(127,227,232,.5)}.hero-plate figcaption span{color:var(--coral);font-weight:800}.problem-rule{display:grid;grid-template-columns:110px minmax(280px,.8fr) minmax(480px,1.2fr);gap:36px;align-items:start;padding-block:68px;border-top:1px solid rgba(200,228,231,.5)}.index-mark{color:var(--coral)}.problem-rule h2,.section-heading h2,.integration h2,.studio h2{margin:0;font-size:clamp(2rem,4vw,4rem);line-height:1.03;letter-spacing:-.04em}.problem-rule p:not(.index-mark),.section-heading>p:last-child{color:var(--muted-blue);max-width:62ch}.path-diagram{display:grid;grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;counter-reset:path}.path-diagram li{position:relative;min-height:130px;padding:18px;border-top:2px solid var(--cyan)}.path-diagram li:not(:last-child):after{content:"→";position:absolute;right:-8px;top:-18px;color:var(--coral);font:700 1.5rem var(--mono)}.path-diagram span,.path-diagram b,.path-diagram small{display:block}.path-diagram span{color:var(--cyan);font:.78rem var(--mono)}.path-diagram b{margin-top:18px;font-size:1.1rem}.path-diagram small{margin-top:6px;color:var(--muted-blue)}.workbench-section{width:100%;max-width:none;padding:92px max(32px,calc((100vw - 1380px)/2));background:var(--deep);border-block:1px solid rgba(127,227,232,.5)}.section-heading{max-width:920px;margin-bottom:42px}.section-heading>p:last-child{font-size:1.08rem}.workbench-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.72fr);gap:28px;align-items:start}.draft-sheet,.replay-console{color:var(--ink);background:var(--paper);box-shadow:10px 10px #031f2c}.draft-sheet{padding:clamp(20px,3vw,40px)}.sheet-head,.console-head{display:flex;justify-content:space-between;align-items:start;gap:20px;padding-bottom:20px;border-bottom:2px solid var(--ink)}.sheet-code{color:var(--muted-paper);margin:0 0 4px}.sheet-head h3,.console-head h3,.export-rail h3{margin:0;font-size:1.4rem}.save-status{margin:0;color:var(--muted-paper);font:.78rem var(--mono);text-align:right}.form-block{padding-block:26px;border-bottom:1px solid #9faaa5}.form-block-title{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.form-block-title h4{margin:0;font-size:1.1rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field-full{grid-column:1 / -1}label.field{display:grid;gap:6px;color:var(--muted-paper);font-size:.84rem;font-weight:800}input,textarea{width:100%;min-height:48px;border:2px solid #385662;border-radius:0;padding:10px 12px;background:var(--paper-bright);color:var(--ink)}textarea{min-height:84px;resize:vertical;line-height:1.45}input::placeholder,textarea::placeholder{color:#6d7d7e;opacity:1}.step-card{position:relative;margin:18px 0 0;padding:22px;border:2px solid var(--ink);background:#fffbed8c}.step-card:before{content:attr(data-index);position:absolute;left:-2px;top:-2px;width:46px;height:46px;display:grid;place-items:center;background:var(--ink);color:var(--paper);font:800 1rem var(--mono)}.step-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-left:42px;margin-bottom:20px}.step-head h5{margin:0;font-size:1rem}.small-button{min-height:44px;padding:8px 12px;color:var(--ink);font-size:.82rem}.danger-button{color:var(--danger)}.event-row{display:grid;grid-template-columns:.85fr .85fr .65fr 1.4fr auto;gap:10px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px dashed #849699}.event-row label{min-width:0}.empty-draft{padding:34px;border:2px dashed #71888c;text-align:center}.empty-draft strong,.empty-draft span{display:block}.empty-draft span{color:var(--muted-paper);margin:8px auto 18px;max-width:42ch}.builder-actions{display:flex;flex-wrap:wrap;gap:10px;padding-top:22px}.replay-console{position:sticky;top:20px;padding:24px}.console-head{margin-bottom:20px}.sim-window{border:2px solid var(--ink);background:var(--canvas)}.sim-window svg{width:100%}.axis{fill:none;stroke:#7fe3e833;stroke-width:1;stroke-dasharray:4 5}.orbit-line{fill:none;stroke:var(--cyan);stroke-width:3;transform-origin:260px 150px;transition:transform .24s ease,stroke .18s ease}.planet{fill:var(--paper);stroke:var(--coral);stroke-width:3}.craft{fill:var(--coral);stroke:var(--paper);stroke-width:2;transition:transform .24s ease}.vector{fill:none;stroke:var(--paper);stroke-width:2}.readout{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;border-top:1px solid var(--cyan);color:var(--muted-blue);font:.72rem var(--mono)}.readout b{color:var(--whiteprint)}.preview-step{min-height:285px;padding:22px 4px 4px}.preview-step .current-flag{color:var(--danger);font:800 .75rem var(--mono);text-transform:uppercase}.preview-step h4{margin:7px 0 16px;font-size:1.35rem}.prompt-box{margin:12px 0;padding:12px;border-left:4px solid var(--ink);background:var(--paper-bright)}.prompt-box b{display:block;color:var(--muted-paper);font:700 .72rem var(--mono);text-transform:uppercase}.prompt-box p{margin:5px 0 0}.event-line{display:flex;gap:10px;margin:8px 0}.event-line:before{content:"→";color:var(--danger);font-weight:800}.replay-controls{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:8px}.replay-controls button{padding-inline:8px;font-size:.84rem}.shortcut-note{color:var(--muted-paper);font:.72rem var(--mono);text-align:center}.transcript{margin-top:16px;border-top:1px solid #849699;padding-top:14px}.transcript summary{min-height:44px;display:flex;align-items:center;font-weight:800;cursor:pointer}.transcript ol{padding-left:28px}.transcript li{margin:9px 0;padding-left:5px}.transcript li[aria-current=step]{font-weight:800}.export-rail{display:grid;grid-template-columns:1fr auto;gap:24px 40px;align-items:center;margin-top:28px;padding:26px 32px;border:1px solid var(--cyan)}.export-rail p{max-width:64ch;color:var(--muted-blue)}.export-actions{justify-content:end;margin:0}#import-json{max-width:240px;border-color:var(--whiteprint);background:transparent;color:var(--whiteprint)}#import-json::file-selector-button{min-height:44px;margin-right:8px;border:1px solid var(--whiteprint);background:transparent;color:var(--whiteprint);font-weight:800}.full-status{grid-column:1 / -1;min-height:1.5em;margin:0!important}.integration{padding-block:104px}.section-heading.light>p:last-child{color:var(--muted-blue)}.code-layout{display:grid;grid-template-columns:.68fr 1.32fr;gap:24px}.code-layout>*{min-width:0}.install-card{display:grid;align-content:start;grid-template-columns:1fr auto;border:1px solid var(--cyan)}.install-card span{grid-column:1 / -1;padding:10px 16px;color:var(--muted-blue);font:.7rem var(--mono);border-bottom:1px solid rgba(127,227,232,.5)}.install-card code{padding:20px 16px;color:var(--whiteprint);font:.9rem var(--mono);overflow-wrap:anywhere}.install-card button{margin:8px;border-color:var(--cyan);color:var(--cyan)}pre{max-width:100%;margin:0;padding:28px;overflow:auto;border:1px solid var(--cyan);background:var(--deepest);color:var(--whiteprint);font:.88rem/1.75 var(--mono);tab-size:2}.code-muted{color:#b8d5d9}.code-string{color:#9ce8c2}.code-number{color:#ffd27b}.api-notes{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;border-top:1px solid rgba(200,228,231,.5)}.api-notes li{padding:20px 20px 0 0}.api-notes b,.api-notes span{display:block}.api-notes span{color:var(--muted-blue);margin-top:4px}.studio{display:grid;grid-template-columns:1fr .85fr;gap:clamp(40px,8vw,120px);align-items:center;padding:80px;color:var(--ink);background:var(--paper);box-shadow:16px 16px 0 var(--deepest)}.studio .eyebrow{color:#246077}.studio-copy>p:not(.eyebrow),.studio-copy li{color:var(--muted-paper)}.studio-copy ul{columns:2;padding-left:20px}.legal-note{font-size:.84rem}.license-panel{min-height:330px;padding:28px;border:2px solid var(--ink);background:var(--paper-bright)}.license-panel h3{margin-top:0;font-size:1.4rem}.license-panel .license-state{display:inline-flex;align-items:center;gap:8px;font:800 .75rem var(--mono);text-transform:uppercase}.license-panel .license-state:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--danger)}.license-panel .license-state.unlocked:before{background:#207848}.license-panel form{display:grid;gap:10px;margin-top:20px}.license-panel .button{width:100%}.quiet-notice{color:var(--danger);font-size:.85rem}.collection-list{margin:18px 0;padding:0;list-style:none;border-top:1px solid #91a09c}.collection-list li{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #bdc5ba}.site-footer{min-height:210px;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:32px;margin-top:100px;border-top:1px solid rgba(200,228,231,.5)}.site-footer p{color:var(--muted-blue)}.site-footer nav{justify-content:end}.footer-mark svg{display:none}.legal-page{min-height:100vh}.legal-shell{width:min(820px,calc(100% - 40px));margin:0 auto;padding:70px 0 100px}.legal-shell .back-link{display:inline-flex;min-height:44px;align-items:center;margin-bottom:46px}.legal-shell h1{font-size:clamp(2.7rem,8vw,5.5rem)}.legal-shell article{margin-top:44px;padding:clamp(24px,6vw,58px);color:var(--ink);background:var(--paper);box-shadow:10px 10px 0 var(--deepest)}.legal-shell h2{margin-top:2em;font-size:1.4rem}.legal-shell article a{color:#075f7b}.legal-shell .updated{font:.78rem var(--mono);color:var(--muted-paper)}@media(max-width:1040px){.site-header nav a:not(.nav-key){display:none}.hero{grid-template-columns:1fr 1fr;gap:38px}.problem-rule{grid-template-columns:70px 1fr}.path-diagram{grid-column:2}.workbench-grid{grid-template-columns:1fr}.replay-console{position:static}.preview-step{min-height:auto}.export-rail{grid-template-columns:1fr}.export-actions{justify-content:start}.code-layout{grid-template-columns:1fr}.studio{padding:52px}.site-footer{grid-template-columns:1fr 1fr}.site-footer nav{grid-column:1 / -1;justify-content:start}}@media(max-width:720px){html{scroll-behavior:auto}.site-header,.hero,.problem-rule,.integration,.studio,.site-footer{width:min(100% - 40px,1380px)}.site-header{min-height:76px}.nav-key{padding:0 10px!important}.hero{min-height:auto;grid-template-columns:1fr;padding-block:56px 74px}.hero-copy:before{display:none}h1{font-size:clamp(3rem,16vw,5rem)}.hero-plate{box-shadow:9px 9px 0 var(--deepest)}.measure-list{flex-wrap:wrap}.problem-rule{grid-template-columns:1fr;padding-block:56px}.path-diagram{grid-column:1;grid-template-columns:1fr}.path-diagram li{min-height:90px}.path-diagram li:not(:last-child):after{content:"↓";right:12px;top:auto;bottom:-18px}.workbench-section{padding:64px 20px}.form-grid,.event-row{grid-template-columns:1fr}.event-row .small-button{justify-self:start}.step-card{padding:18px}.step-head{align-items:start}.replay-controls{grid-template-columns:1fr 1fr}#preview-apply{grid-column:1 / -1;grid-row:1}.export-rail{padding:24px 0;border-inline:0}.export-actions{display:grid;grid-template-columns:1fr;width:100%}#import-json{max-width:none}.api-notes{grid-template-columns:1fr}pre{white-space:pre-wrap;overflow-wrap:anywhere}.studio{grid-template-columns:1fr;padding:30px 22px;box-shadow:8px 8px 0 var(--deepest)}.studio-copy ul{columns:1}.site-footer{grid-template-columns:1fr;padding-block:40px}.site-footer nav{grid-column:auto;flex-wrap:wrap;gap:18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
