html,body{color:#f3e6d2;--brass:linear-gradient(to bottom, #e8c98a, #b5904c 55%, #8a6a30);--brass-lit:inset 0 1px 0 #fff5d799;--focus-ring:3px solid #f5d76e;--plaque-right:clamp(.75rem, 2vw, 1.5rem);--plaque-top:clamp(.6rem, 1.5vh, 1rem);background:#140d08;height:100%;margin:0;padding:0;font-family:system-ui,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,Source Han Sans SC,WenQuanYi Zen Hei,sans-serif}header{z-index:4;pointer-events:none;padding:clamp(.7rem,1.8vh,1.15rem) clamp(.95rem,2vw,1.7rem);position:fixed;inset:0 0 auto}header nav{align-items:baseline;width:max-content;display:flex}header nav a{pointer-events:auto;text-decoration:none;transition:color .25s,text-shadow .25s;display:inline-block}header nav a:focus-visible{outline:var(--focus-ring);outline-offset:4px;border-radius:2px}.wordmark{letter-spacing:.32em;text-transform:uppercase;color:#cfa367;text-shadow:0 -1px 1px #000000d9,0 1px #ffd89a2e;font-size:clamp(.74rem,.9vw,.9rem);font-weight:700}.wordmark:hover{color:#f2cd8e;text-shadow:0 -1px 1px #000000d9,0 0 14px #ffc46c66}.lang-switch{letter-spacing:.1em;color:#c99e63;text-shadow:0 -1px 1px #000000d9;border-left:1px solid #0009;margin-left:clamp(.6rem,1.1vw,1rem);padding-left:clamp(.6rem,1.1vw,1rem);font-size:clamp(.72rem,.85vw,.86rem);font-weight:600;box-shadow:-1px 0 #ffd89a21}.lang-switch:hover{color:#e8c489;text-shadow:0 -1px 1px #000000d9,0 0 12px #ffc46c59}main{width:100vw;height:100dvh}.visually-tucked{opacity:0;pointer-events:none;margin:0;position:absolute}#stage{touch-action:none;user-select:none;cursor:crosshair;background:radial-gradient(at 50% 78%,#0000 28%,#0c0704b8 100%),repeating-linear-gradient(90deg,#ffe2b407 0 2px,#0000 2px 34px),linear-gradient(#ffce8c24 0%,#0e08051a 45%,#0e0805b8 100%),linear-gradient(90deg,#35251a 0%,#4b3221 45%,#6a442a 100%);width:100vw;height:100dvh;position:relative;overflow:hidden}#stage:focus-visible{outline:var(--focus-ring);outline-offset:-3px}#hint{text-align:center;color:#f8e8cde0;pointer-events:none;z-index:2;justify-content:center;align-items:center;margin:0;padding:0 2rem;font-size:clamp(1.1rem,3vw,1.6rem);transition:opacity .6s;display:flex;position:absolute;inset:0}#hint[data-faded=true]{opacity:0}.glow{width:var(--glow-size,60px);height:var(--glow-size,60px);background:hsl(var(--hue,0), 90%, 65%);box-shadow:0 0 3rem hsl(var(--hue,0), 90%, 65%);pointer-events:none;z-index:3;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}#cabinet{--cabinet-height:clamp(104px, 21dvh, 240px);--antenna-height:clamp(230px, 45dvh, 500px);width:clamp(300px,62vw,1120px);height:calc(var(--cabinet-height) + var(--antenna-height));pointer-events:none;z-index:1;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.cabinet-body{height:var(--cabinet-height);background:repeating-linear-gradient(92deg,#3a200e8c 0,#5e381a40 3px,#301a0b99 7px,#54311633 11px),linear-gradient(#6b421f 0%,#4a2c14 55%,#2e1a0c 100%);border:2px solid #6b4a2a;border-bottom:none;border-radius:12px 12px 4px 4px;position:absolute;inset:auto 0 0;box-shadow:inset 0 2px #d6a86e73,inset 0 -12px 28px #0000008c,0 -14px 40px #00000080}.screw{background:radial-gradient(circle at 35% 30%,#f0d69a,#a9803a 60%,#6d4c1c);border-radius:50%;width:clamp(12px,1.1vw,20px);height:clamp(12px,1.1vw,20px);position:absolute;top:clamp(12px,3.5dvh,30px);box-shadow:0 1px 2px #0009}.screw:after{content:"";background:#3c280cbf;border-radius:1px;position:absolute;inset:45% 20%}.screw-left{left:clamp(12px,2vw,34px)}.screw-right{right:clamp(12px,2vw,34px)}.nameplate{letter-spacing:.35em;color:#3a2a10;text-shadow:0 1px #ffebbe80;background:var(--brass);box-shadow:var(--brass-lit), 0 1px 3px #00000080;border-radius:3px;padding:.3rem 1.1rem;font-size:clamp(.62rem,1.05vw,1.05rem);font-weight:700;position:absolute;top:clamp(14px,4dvh,34px);left:50%;transform:translate(-50%)}.meter{background:linear-gradient(#120b06,#1d1109 60%,#150d07);border:1px solid #23150a;border-radius:3px;align-items:baseline;gap:.35em;padding:clamp(.15rem,.6dvh,.35rem) clamp(.5rem,1.4vw,1rem);display:flex;position:absolute;top:clamp(46px,12dvh,96px);left:50%;transform:translate(-50%);box-shadow:inset 0 1px 3px #000000e6,0 1px #d6a86e47}.meter-value{min-width:var(--readout-width,6ch);text-align:right;font-variant-numeric:tabular-nums;letter-spacing:.04em;color:#6b4a2a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(.72rem,1.7vw,1.8rem);font-weight:600;transition:color .25s,text-shadow .25s}.meter-unit{letter-spacing:.16em;color:#6b4a2a;font-size:clamp(.55rem,.95vw,.85rem);transition:color .25s}.meter-value[data-live=true]{color:#ffcf7a;text-shadow:0 0 10px #ffba5cbf}.meter-value[data-live=true]+.meter-unit{color:#b78b4f}.antenna{bottom:var(--cabinet-height);background:linear-gradient(90deg,#4a4f5a 0%,#c8ced8 35%,#f2f5fa 48%,#99a1ad 70%,#3d424c 100%);border-radius:3px 3px 0 0;width:clamp(6px,.55vw,11px);position:absolute;box-shadow:0 0 14px #c8d8ff40}.antenna-pitch{height:var(--antenna-height);right:clamp(18px,3vw,60px)}.antenna-volume{height:calc(var(--antenna-height) * .22);left:clamp(16px,3vw,56px)}.antenna-volume-loop{box-sizing:border-box;border:clamp(5px,.5vw,9px) solid #b9c0cc;border-color:#b9c0cc #7d848f #6d747f #b9c0cc;border-radius:50%;width:clamp(58px,15vw,210px);height:clamp(38px,7vw,96px);position:absolute;top:-.4em;right:0;box-shadow:0 0 14px #c8d8ff38,inset 0 0 8px #0000004d}#info-toggle{right:var(--plaque-right);top:var(--plaque-top);z-index:5;font:inherit;letter-spacing:.12em;color:#3a2a10;cursor:pointer;background:var(--brass);box-shadow:var(--brass-lit), 0 2px 6px #0000008c;border:1px solid #6d4f1c;border-radius:4px;padding:.5rem 1rem;font-size:.8rem;font-weight:600;position:fixed}#info-toggle:hover{background:linear-gradient(#f2d79c,#c39d57 55%,#97753a)}#info-toggle:focus-visible{outline:var(--focus-ring);outline-offset:3px}#info-panel{right:var(--plaque-right);top:calc(var(--plaque-top) + 3rem);z-index:5;color:#f2e6cf;background:linear-gradient(#26160af7,#160d06f7);border:1px solid #6d4f1c;border-radius:6px;max-width:min(30rem,100vw - 1.5rem);padding:1.1rem 1.3rem;font-size:.9rem;line-height:1.55;position:fixed;box-shadow:inset 0 1px #e2be824d,0 8px 28px #0009}#info-panel p{margin:0}#info-panel p+p{margin-top:.75rem}:lang(zh) #info-panel{line-height:1.85}
