:root{color-scheme:dark;font:15px system-ui,sans-serif;--block-size:10px}body{margin:0;background:#10131b;color:#e8edf7}main{max-width:1280px;margin:24px auto;padding:0 18px}button,select{padding:8px 12px;background:#252d3d;color:inherit;border:1px solid #52617a;border-radius:5px;margin:4px}.capture-layout{display:grid;grid-template-columns:minmax(0,800px) minmax(250px,1fr);gap:18px;align-items:start}canvas{width:100%;background:#000;border:1px solid #52617a;image-rendering:pixelated}.block-panel{background:#171d28;border:1px solid #52617a;border-radius:6px;padding:12px}.block-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.block-heading h2{font-size:16px;margin:0 0 10px}.block-heading label{font-size:12px;color:#b9c3d4;display:flex;align-items:center;gap:5px}.block-heading input{width:90px}.legend{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:12px;color:#b9c3d4;margin-bottom:10px}.legend span{display:flex;align-items:center;gap:4px}.legend i{width:10px;height:10px;border:1px solid #677187;background:#343b49}.legend i.ok{background:#28a745}.legend i.error{background:#dc3545}.legend i.active{background:#1683ff}#block-grid{display:grid;grid-template-columns:repeat(auto-fill,var(--block-size));grid-auto-rows:var(--block-size);gap:2px;max-height:520px;overflow:auto;align-content:start}#block-grid .block{width:var(--block-size);height:var(--block-size);background:#343b49;border:1px solid #454f60;box-sizing:border-box}#block-grid .block.ok{background:#28a745;border-color:#45c564}#block-grid .block.error{background:#dc3545;border-color:#ff6675}#block-grid .block.current{outline:2px solid #1683ff;outline-offset:1px;position:relative;z-index:1}#block-summary{font-variant-numeric:tabular-nums;font-size:12px;margin:10px 0 0;color:#c8d1df}video{display:none}progress{width:100%;height:18px}pre{max-height:220px;overflow:auto}a{display:inline-block;margin-top:14px;color:#7dc8ff}@media(max-width:900px){.capture-layout{grid-template-columns:1fr}.block-panel{max-width:none}}

:root{font:17px/1.75 ui-rounded,"Hiragino Maru Gothic ProN","Hiragino Maru Gothic Pro","BIZ UDPGothic",system-ui,sans-serif}
.language-nav{display:flex;justify-content:flex-end;gap:8px;margin:0 0 8px}.language-nav a{margin:0;padding:5px 12px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(7,9,18,.55);font-size:.85rem;font-weight:800;text-decoration:none}.language-nav a[aria-current="page"]{border-color:#7dc8ff;background:rgba(22,131,255,.3);color:#fff}
#progress-percent{top:104px}
@media(max-width:600px){#progress-percent{top:140px;right:12px;font-size:clamp(1.25rem,7vw,2rem)!important}.language-nav{flex-wrap:wrap}}
body{min-height:100vh;background:linear-gradient(rgba(7,9,18,.64),rgba(7,9,18,.72)),url("background.jpg") center top/cover fixed no-repeat;color:#f5f7ff}
main{max-width:1280px;margin:24px auto;padding:24px 28px;background:rgba(13,17,29,.66);border:1px solid rgba(255,255,255,.16);border-radius:24px;box-shadow:0 18px 60px rgba(0,0,0,.38);backdrop-filter:blur(3px)}
h1{margin:0 0 8px;line-height:0}
h1 img{display:block;width:100%;max-height:300px;object-fit:contain;object-position:left center;filter:drop-shadow(0 8px 18px rgba(0,0,0,.55))}
h2{font-size:clamp(1.35rem,3vw,1.8rem);line-height:1.35}
p{font-size:1.05rem}
button,select,input{font:inherit}
button,select{padding:10px 16px;border-radius:999px;font-weight:700}
#stop{display:none}
.block-panel{border-radius:16px;background:rgba(23,29,40,.9)}
.capture-layout{grid-template-columns:minmax(0,1fr) minmax(300px,340px)}
.video-stage{position:relative;min-width:0}
.video-stage canvas{display:block;box-sizing:border-box;aspect-ratio:3/2;height:auto;background:#050817 url("background.jpg") center/cover no-repeat}
.video-stage.camera-active canvas{aspect-ratio:auto}
#camera-prompt{position:absolute;z-index:2;top:64%;left:34%;transform:translate(-50%,-50%);width:max-content;max-width:calc(62% - 28px);padding:16px 28px;border:1px solid rgba(255,255,255,.82);border-radius:34px;background:rgba(7,9,18,.4);box-shadow:0 6px 26px rgba(0,0,0,.5);backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2);color:#fff;font-size:clamp(1.45rem,3.4vw,2.1rem);font-weight:900;line-height:1.25;letter-spacing:.045em;text-align:center;text-shadow:0 2px 10px #000;pointer-events:none}
.block-heading{flex-wrap:wrap}
.block-heading h2{font-size:1.1rem;white-space:nowrap}
pre{padding:12px;border-radius:14px;background:rgba(4,7,13,.78);font-size:.85rem;line-height:1.5}
footer{max-width:1280px;margin:0 auto 30px;padding:12px 28px;text-align:center;font-size:1rem;text-shadow:0 2px 8px #000}
@media(max-width:900px){main{margin:10px;padding:18px;border-radius:18px}footer{padding:10px 18px}}
