:root{font-family:Arial,sans-serif;color:#e2eae6;background:#101c20;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit;background:#263b40;border:1px solid #436065;border-radius:4px;padding:10px 14px}button:hover{background:#355058}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ffac78;outline-offset:3px}main{min-height:100dvh;padding:40px 4vw 24px;max-width:1900px;margin:auto}header{display:flex;justify-content:space-between;gap:30px;align-items:center;padding-bottom:35px;border-bottom:1px solid #344a4d}.eyebrow{font-size:11px;letter-spacing:.23em;color:#90b5b0}h1{font-size:clamp(42px,5.7vw,88px);line-height:1.02;font-weight:500;letter-spacing:-.065em;margin:20px 0 0}h1 em{font-family:Georgia,serif;font-weight:400;color:#a5e7d1}.intro{color:#a3b6b6;font-size:17px;line-height:1.6;max-width:290px}.intro strong{color:#f4e5ce}.intro p{font-size:13px}.workspace{display:grid;grid-template-columns:1.15fr 1fr;gap:3vw;padding:30px 0}.stage{min-width:0}.viewport{height:440px;position:relative;background:radial-gradient(ellipse at 50% 60%,#254047,#15252a 70%);border:1px solid #344a4d;border-radius:8px;overflow:hidden}.viewport canvas{display:block;touch-action:pan-y}.view-label{position:absolute;top:18px;left:20px;pointer-events:none;font-size:10px;letter-spacing:.13em;color:#9bb6b6}.gpu-error{position:absolute;z-index:1;top:40%;padding:30px;color:#ffd3aa;font-size:14px}.metrics{display:flex;justify-content:space-between;gap:15px;margin:22px 0}.metrics b{display:block;font-size:clamp(16px,1.8vw,29px);font-weight:400}.metrics span{display:block;margin-top:8px;color:#94aaa9;font-size:11px}.warning b{color:#ff9d69}.camera{display:flex;gap:24px;align-items:center}.camera label{display:flex;align-items:center;gap:12px;font-size:12px}.camera input{min-width:0;width:130px;accent-color:#a5e7d1}.convention{font-size:11px;color:#91a8aa;line-height:1.7}h2{font-size:13px;letter-spacing:.08em;font-weight:500;text-transform:uppercase;margin:6px 0 16px}aside>p,.lower p{color:#a1b5b5;font-size:12px;line-height:1.6}.masks{display:flex;gap:12px;margin:26px 0 34px}.mask-card{flex:1;min-width:0}.mask-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.mask-title strong{font-size:20px;font-family:Georgia,serif;font-weight:400}.mask-title span{font-size:10px;color:#e6ae89}.grid{display:grid;gap:2px;aspect-ratio:1;background:#0b1519;padding:5px;border:1px solid #344a4d}.grid button{min-width:0;min-height:0;padding:0;border:0;border-radius:0;background:#23373c}.grid button.filled{background:#7de0cc}.grid button.unsupported{background:#ff8c5c;background-image:repeating-linear-gradient(45deg,transparent,transparent 3px,#512d2333 3px,#512d2333 5px)}.mask-card small{font-size:10px;display:block;color:#93aaa8;margin-top:6px}.text-button{padding:6px 0;font-size:10px;border:0;background:none;color:#bbd5cd}.presets,.actions{display:flex;flex-wrap:wrap;gap:8px}.presets button{text-transform:capitalize;font-size:12px}.lower{display:grid;grid-template-columns:1fr 1fr;gap:4vw;border-top:1px solid #344a4d;padding-top:28px}.lower label{display:flex;gap:12px;align-items:center;margin:16px 0;color:#a1b5b5;font-size:12px}.lower input,.lower select{background:#192c31;color:#e2eae6;padding:9px;border:1px solid #436065;max-width:80%}.actions{margin:18px 0}.actions button{font-size:11px}.actions span{font-size:10px;color:#e6ae89;align-self:center}textarea{resize:vertical;min-height:205px;width:100%;background:#0d181c;border:1px solid #344a4d;border-radius:4px;color:#a5d3c8;font:11px/1.7 monospace;padding:15px}details{font-size:12px;margin:20px 0}details p{overflow-wrap:anywhere}footer{margin-top:30px;border-top:1px solid #344a4d;padding-top:20px;font-size:10px;color:#80999a;line-height:1.6}footer [role=status]{font-size:14px;color:#b8e3d4}footer button{font-size:10px;margin-right:8px}@media(max-width:950px){.workspace{grid-template-columns:1fr}.viewport{height:390px}.masks{max-width:650px}.lower{grid-template-columns:1fr}header{align-items:flex-start}.intro{font-size:13px;max-width:220px}}@media(max-width:550px){main{padding:20px 16px}header{display:block}.intro{margin-top:24px;max-width:none}.viewport{height:310px}.camera{gap:12px}.camera input{width:90px}.masks{gap:8px}.grid{gap:1px;padding:3px}.metrics{gap:8px}.metrics b{font-size:18px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
