:root{color-scheme:dark;--bg:#090f22;--panel:#111a31;--line:#344260;--ink:#edf3ff;--muted:#b3c2d9;--mint:#63e6bd;font:15px/1.5 system-ui,sans-serif;background:var(--bg);color:var(--ink)}
*{box-sizing:border-box}body{margin:0;padding:22px}header,main{max-width:1250px;margin:auto}header{margin-bottom:22px}nav{display:flex;gap:22px;font-size:13px}a{color:var(--mint)}h1{font-size:28px;margin:16px 0 6px;letter-spacing:-.035em}h1 span{font-size:16px;color:var(--muted);font-weight:500;letter-spacing:0;margin-left:10px}p{margin:8px 0}header p{color:var(--muted);max-width:800px}main{display:grid;grid-template-columns:minmax(320px,1fr) minmax(0,1.12fr);gap:28px;align-items:start}.stage-panel{position:sticky;top:16px;min-width:0;border:1px solid var(--line);border-radius:18px;background:#0a1023;overflow:hidden}.stage-head{display:flex;justify-content:space-between;gap:8px;padding:13px 16px;align-items:center}.stage-head strong{overflow-wrap:anywhere}.stage-head span{font-size:12px;color:var(--mint);white-space:nowrap}#stage{width:100%;height:min(68vh,680px);min-height:280px}#stage svg{display:block;width:100%;height:100%}.preview-bar{padding:12px;display:flex;gap:12px;align-items:center;border-top:1px solid var(--line)}.preview-bar span{font-size:12px;color:var(--muted)}button,input,select{font:inherit;color:var(--ink)}button,select,input[type=text]{border:1px solid var(--line);background:#1a2743;border-radius:8px;min-height:44px;padding:8px 12px;max-width:100%}button{cursor:pointer;font-size:13px}button:hover{border-color:var(--mint)}button.primary{background:var(--mint);color:#10271f;border-color:var(--mint);font-weight:650}button:disabled,input:disabled,select:disabled{opacity:.48;cursor:not-allowed}button[aria-pressed=true]{border-color:var(--mint);color:var(--mint)}:focus-visible{outline:3px solid var(--mint);outline-offset:3px}input[type=range]{width:100%;min-width:0;min-height:44px;accent-color:var(--mint);margin:0}input[type=color]{width:100%;min-height:44px;padding:4px;border:1px solid var(--line);border-radius:8px;background:#1a2743}input[type=checkbox]{width:22px;height:22px;accent-color:var(--mint)}input[type=text],select{width:100%;min-width:0}#controls{min-width:0;scroll-margin-top:14px}.actions{display:flex;flex-wrap:wrap;gap:8px}.actions button{flex:1 1 auto}#status{font-size:13px;color:var(--mint);min-height:40px;overflow-wrap:anywhere;margin:12px 0}fieldset,details,.readiness{margin:0 0 14px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);min-inline-size:0}legend,summary{font-weight:650}legend{padding:0 7px}summary{cursor:pointer;min-height:30px}details[open] summary{margin-bottom:14px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.field{display:flex;flex-direction:column;min-width:0;gap:5px;font-size:13px}.field .label-line{display:flex;justify-content:space-between;gap:6px}.field output{color:var(--mint);font-variant-numeric:tabular-nums}.field small{font-size:11px;color:var(--muted)}.field.wide{grid-column:1/-1}.field.check{flex-direction:row;align-items:center;min-height:44px}.hint,.readiness p{font-size:12px;color:var(--muted);line-height:1.65}.readiness{border-left:3px solid var(--mint)}#referenceStatus{font-size:12px;color:var(--mint);overflow-wrap:anywhere}#referenceView{height:230px;position:relative;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#060a15;margin:14px 0;touch-action:none}#referenceImage,#guide{position:absolute;inset:0;pointer-events:none}#referenceImage canvas{display:block;width:100%;height:100%;object-fit:contain}#guide.center:after{content:'';position:absolute;inset:10% 50%;border-left:1px dashed var(--mint)}#guide.thirds{background:linear-gradient(to right,transparent 33.1%,#63e6bd99 33.3%,transparent 33.6%,transparent 66.3%,#63e6bd99 66.6%,transparent 66.9%),linear-gradient(to bottom,transparent 33.1%,#63e6bd99 33.3%,transparent 33.6%,transparent 66.3%,#63e6bd99 66.6%,transparent 66.9%)}dialog{max-width:min(500px,calc(100vw - 24px));max-height:90dvh;overflow:auto;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px}dialog::backdrop{background:#000a}dialog h2{font-size:20px;margin-top:0}dialog p{font-size:13px;color:var(--muted)}#candidateImage canvas{display:block;max-width:100%;max-height:240px;margin:auto;object-fit:contain}#candidateImage{height:240px}.skip{position:absolute;top:-80px;left:20px;background:var(--panel);padding:14px;z-index:10}.skip:focus{top:4px}[hidden]{display:none!important}
@media(max-width:760px){body{padding:12px}header{margin-bottom:12px}header p{font-size:12px}h1{font-size:23px;margin-top:10px}h1 span{display:block;font-size:13px;margin:1px 0}nav{font-size:12px}main{display:block}.stage-panel{top:0;z-index:2;border-radius:12px;margin-bottom:14px;box-shadow:0 8px 18px #0005}.stage-head{padding:7px 12px;font-size:12px}#stage{height:32svh;min-height:190px;max-height:285px}.preview-bar{padding:7px 9px;gap:9px}.preview-bar button{min-height:38px;padding:6px 8px;font-size:12px}.preview-bar span{font-size:10px}.fields{gap:12px}fieldset,details,.readiness{padding:12px}.actions{gap:6px}.actions button{font-size:12px;padding:7px 9px}#controls{scroll-margin-top:390px}.field{font-size:12px}#status{min-height:32px;margin:9px 0}summary{min-height:34px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
