:root{color:#000;background:#C0C0C0;font-family:SimSun,serif;font-smooth:never;-webkit-font-smoothing:none}*{box-sizing:border-box;border-radius:0;cursor:crosshair}body{margin:0;min-height:100vh;background:#C0C0C0;color:#000}.terminal{width:min(700px,calc(100% - 26px));margin:13px auto 40px;margin-left:max(13px,calc((100% - 700px)/2 - 5px));border:2px solid #000;box-shadow:5px 5px 0 #000;background:#C0C0C0;padding:18px}header{background:#0000AA;color:#fff;border:2px solid #000;padding:12px;margin-bottom:17px}header p,.errorline{font:12px 'Courier New',monospace;letter-spacing:.08em;margin:0 0 8px}h1,h2{margin:0 0 14px;font-weight:400;line-height:1.1}h1{font-size:clamp(27px,7vw,48px)}h2{font-size:24px}.stage{animation:stutter .35s steps(3,end)}.stage[hidden]{display:none}.stage p,.stage label,.disclaimer{line-height:1.2;text-align:justify}button,textarea{font:16px SimSun,serif;border:2px solid #000;background:#fff;color:#000;box-shadow:5px 5px 0 #000}button{border-style:outset;border-width:3px;padding:10px 14px;margin:8px 9px 7px 0}button:active{border-style:inset;box-shadow:none;transform:translate(5px,5px)}button:disabled{color:#555;background:#888;box-shadow:none}textarea{width:100%;padding:9px;line-height:1.2;cursor:text;resize:vertical}#suggestions,#anchors{display:grid;gap:10px;margin:13px 0}#suggestions button,#anchors button{text-align:left;margin:0;background:#FFFF00}.errorline{color:#FF0000;font-weight:bold}.result-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}.result-heading>div{min-width:0}.result-heading #result-portrait{flex:0 0 112px;width:112px;height:112px;object-fit:cover;border:2px solid #000;transition:none}#analysis-content{white-space:pre-wrap;font:16px/1.2 SimSun,serif;text-align:justify;margin:0;border:2px solid #000;background:#fff;padding:11px;min-height:160px}.disclaimer{font-size:12px;background:#FFFF00;border:2px solid #000;padding:7px}dialog{max-width:min(540px,calc(100% - 28px));border:2px solid #000;box-shadow:5px 5px 0 #000;background:#C0C0C0;padding:18px}dialog::backdrop{background:#0000AA}canvas{display:block;width:100%;height:auto;border:2px solid #000;background:#C0C0C0}@keyframes stutter{0%{visibility:hidden;transform:translate(-8px,4px)}50%{visibility:visible;transform:translate(5px,-2px)}100%{transform:none}}@media(max-width:420px){.terminal{width:calc(100% - 16px);margin:8px auto 24px;padding:12px}h2{font-size:21px}.result-heading #result-portrait{flex-basis:84px;width:84px;height:84px}button{width:100%;margin-right:0}.stage p,.stage label,#analysis-content{line-height:1.18}}
