:root{color-scheme:dark;font:16px/1.5 system-ui,sans-serif;background:#101b23;color:#e4eee9}*{box-sizing:border-box}body{margin:0;height:100dvh;overflow:hidden}header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:16px 28px;border-bottom:1px solid #344850}h1{font-size:24px;margin:0;font-weight:550}small{letter-spacing:.16em;color:#adc0bc;font-size:10px}a{color:#d0dcaa}main{display:grid;grid-template-columns:minmax(0,4fr) minmax(240px,1fr);height:calc(100dvh - 86px);grid-template-rows:minmax(0,1fr)}.stage{position:relative;min-width:0;min-height:0;overflow:hidden;background:#15252e;display:flex;align-items:center}canvas{display:block;min-height:0;width:100%;height:100%;touch-action:none}.caption{position:absolute;left:24px;bottom:24px;right:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:#d5e3d6;font-size:13px}aside{min-height:0;overflow-y:auto;padding:24px;border-left:1px solid #344850;background:#142029}label{display:block;color:#c0d0cf;font-size:13px;margin-bottom:18px}select,button{font:inherit;background:#20343b;color:#e4eee9;border:1px solid #4a6468;border-radius:5px;padding:10px;min-height:43px}select{width:100%;margin-top:7px}button{cursor:pointer}button:hover{background:#354d50}button:disabled{opacity:.5;cursor:wait}.buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:24px}#perform{background:#46625b}#train{width:100%}p{font-size:13px}#progress{color:#c4d799}.note{color:#99aeac;font-size:12px}details{font-size:12px;margin-top:22px}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px}#training{color:#d9ca9a}a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid #f0dc99;outline-offset:3px}@media(max-width:760px){header{padding:14px;height:76px}main{height:calc(100dvh - 76px);grid-template-columns:1fr;grid-template-rows:minmax(0,4fr) minmax(0,1fr)}.stage{min-height:0}aside{padding:12px;border-left:0;border-top:1px solid #344850;display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;align-content:start}aside label{margin:0}aside p,aside .buttons,aside details,#train{grid-column:1/-1}.caption{left:12px;bottom:12px;font-size:11px}.buttons{grid-template-columns:repeat(4,1fr);margin:0}canvas{min-height:0}#progress{margin:0}}

@media(pointer:coarse){button,select{min-height:48px}}
