:root{--accent:#277e78;--bg:#f5f6ee;--ink:#26372f;--muted:#637369;--line:#d4ddd3;--paper:#fffefa;--tint:#e7eee3;--radius:16px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}button,input,textarea,select{font:inherit}button,input,textarea,select,a{-webkit-tap-highlight-color:transparent}button,a,input,textarea,select{touch-action:manipulation}button{min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:var(--paper);cursor:pointer;font-weight:550}button:hover:not(:disabled){border-color:var(--accent);background:var(--tint)}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button.primary{background:var(--accent);border-color:var(--accent);color:white}button.primary:hover:not(:disabled){filter:brightness(1.1);background:var(--accent)}button.selected,button[aria-pressed=true]{background:var(--tint);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}button.quiet{background:transparent;border-color:transparent;color:var(--muted)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.wrap{width:min(1120px,100%);margin:auto;padding:0 32px}nav{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding:23px 0}.brand{font-weight:750;font-size:18px;letter-spacing:-.5px}.nav-note{color:var(--muted);font:11px ui-monospace,monospace}.hero{padding:44px 0 30px;max-width:800px}.eyebrow{font:11px ui-monospace,monospace;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);margin:0 0 14px}h1{font:clamp(36px,5vw,60px)/1.07 Georgia,serif;letter-spacing:-2px;margin:0 0 17px}.lead{max-width:570px;margin:0;color:var(--muted);font-size:16px}h2{font:25px Georgia,serif;letter-spacing:-.5px;margin:0 0 12px}h3{font-size:16px;margin:0 0 8px}p{margin:0 0 12px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:24px;min-width:0}.stage{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--paper);position:relative}.split{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:20px}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}.toolbar:last-child{margin-bottom:0}.toolbar label{margin:0}.toolbar .spacer{flex:1}.small{font-size:12px;color:var(--muted)}.mono{font-family:ui-monospace,monospace}.tag{display:inline-block;padding:5px 9px;border-radius:5px;background:var(--tint);color:var(--accent);font:11px ui-monospace,monospace}.divider{border-top:1px solid var(--line);margin:22px 0}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{border:1px solid var(--line);border-radius:10px;padding:14px;background:var(--paper)}.stat strong{display:block;font-size:24px;line-height:1.2;letter-spacing:-1px}.stat span{font:10px ui-monospace,monospace;color:var(--muted)}label{display:block;font-size:13px;color:var(--muted);margin-bottom:15px}input:not([type=range]):not([type=checkbox]),textarea,select{display:block;width:100%;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:9px;padding:11px;margin-top:6px;min-width:0;font-size:16px}input[type=range]{accent-color:var(--accent);width:100%;display:block;margin-top:10px}textarea{resize:vertical;min-height:110px}input[type=checkbox]{accent-color:var(--accent)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.notice{padding:13px 16px;background:var(--tint);border-radius:10px;font-size:13px;color:var(--muted)}.status{min-height:24px;margin:16px 0;font-size:13px;color:var(--accent)}.footnote{font-size:12px;color:var(--muted);line-height:1.7;max-width:800px;margin:25px 0}.empty{padding:24px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:13px}.palette{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.palette button{display:flex;flex-direction:column;gap:4px;align-items:center;font-size:11px;min-height:65px;padding:9px}.palette .emoji{font-size:23px}.canvas-wrap{position:relative}canvas{display:block;width:100%;height:auto;touch-action:none}.stage .stage-label{position:absolute;top:15px;left:15px;padding:5px 10px;border-radius:5px;background:#ffffffd9;color:#26372f;font:10px ui-monospace,monospace;pointer-events:none}.stage-footer{display:flex;justify-content:space-between;gap:12px;padding:13px 18px;border-top:1px solid var(--line);font:11px ui-monospace,monospace;color:var(--muted)}.section{margin-top:30px}.section-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:15px}.section-heading h2{margin:0}.full{grid-column:1 / -1}.pill{border-radius:99px}.danger{color:#a53340}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.row>*{min-width:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}footer{display:flex;justify-content:space-between;gap:20px;padding:23px 0 28px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;margin-top:32px}[hidden]{display:none!important}dialog{width:min(540px,calc(100% - 32px));border:1px solid var(--line);border-radius:16px;padding:24px;background:var(--paper);color:var(--ink);max-height:85vh;overflow:auto}dialog::backdrop{background:#192c295c}.progress{height:7px;border-radius:5px;background:var(--line);overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent)}@media(max-width:840px){.split{grid-template-columns:1fr}.hero{padding:32px 0 24px}.wrap{padding:0 22px}.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.wrap{padding:0 16px}nav{padding:19px 0}.nav-note{font-size:9px}.hero{padding-top:27px}h1{letter-spacing:-1.2px}.panel{padding:18px}.cards{grid-template-columns:1fr}.toolbar{gap:7px}.toolbar button{padding:9px 12px;font-size:13px}.stats{gap:7px}.stat{padding:10px}.stat strong{font-size:21px}.field-row{grid-template-columns:1fr;gap:0}footer{font-size:10px}.section-heading{align-items:flex-start}.palette{grid-template-columns:repeat(3,1fr)}.footnote{font-size:11px}.stage-footer{font-size:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}