*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 0%,#26332f,#0b100f 75%);color:#e9e4d5;font:15px/1.6 system-ui,sans-serif}header,main{max-width:1050px;padding:16px 22px;margin:auto}header{text-align:center;padding-bottom:4px}h1{font:500 clamp(36px,6vw,58px)/1.15 Georgia,serif;letter-spacing:.08em;margin:4px 0}header p{margin:6px;color:#aeb9ae}.eyebrow{color:#c4a574;letter-spacing:.25em;font-size:10px}.toolbar,.controls>div{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}button{font:600 13px system-ui;color:#e9e4d5;background:#25392e;border:1px solid #607260;padding:10px 15px;border-radius:5px;cursor:pointer;touch-action:none}button:hover{background:#405544}button:focus-visible{outline:3px solid #e4bf7a;outline-offset:2px}button:disabled{opacity:.5}#start,#retry{background:#d2bd8e;color:#18241e}#status{text-align:center;font-size:13px;color:#d4c7ab;margin:12px 0}#view{width:100%;aspect-ratio:16/9;position:relative;background:#020303;border:1px solid #5c6655;border-radius:6px;overflow:hidden;touch-action:none}canvas,#tmpl{position:absolute;width:100%;height:100%;inset:0}#tmpl{pointer-events:none;transform-origin:top left}#tmpl div{font-size:24px!important}#tmpl>div:last-child{max-width:100%}.crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#ddd8;pointer-events:none}.screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;background:#0b1212ed;z-index:3}.screen strong{font:clamp(22px,3vw,38px) Georgia,serif;color:#dbc99a}.screen p{font-size:14px;max-width:570px}.screen small{color:#9da99d}[hidden]{display:none!important}.controls{margin-top:12px}.controls>div+div{margin-top:8px}aside{border-left:2px solid #8d9d70;padding:0 20px;margin:28px 0;color:#c5cebd}h2{font:24px Georgia,serif}footer{font-size:11px;color:#96a490;text-align:center;margin-top:20px}@media(max-width:550px){header,main{padding:10px}header h1{font-size:34px}.toolbar{gap:5px}button{padding:9px;font-size:11px}#view{aspect-ratio:4/3}canvas{object-fit:contain}#tmpl{top:12.5%;height:75%}.screen{padding:12px}.screen p{font-size:11px;margin:8px 0}#status{font-size:11px}.controls>div{gap:5px}footer{font-size:10px}}