:root{color-scheme:dark;--bg:#101925;--card:#152332;--ink:#efe9d9;--muted:#a8b5b5;--gold:#e9b96d;--mint:#8ac7b9;--line:#30414b}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 0 0,#243d44 0,transparent 45%),var(--bg);color:var(--ink);font-family:system-ui,sans-serif;font-size:14px}main{max-width:1240px;margin:auto;padding:24px 40px}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:var(--ink);border:1px solid var(--line);background:#1a2a38;border-radius:8px;padding:10px 13px;cursor:pointer;touch-action:manipulation}button:hover{border-color:var(--mint);background:#253a46}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button:disabled{opacity:.4;cursor:default}header{display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--line);padding-bottom:22px}.brand{text-decoration:none;color:var(--ink);font-family:Georgia,serif;font-size:29px;letter-spacing:-3px}.brand span{font-size:18px;color:var(--gold);margin:0 4px}.mast{font-size:10px;letter-spacing:2px;line-height:1.7}.mast small{font-size:11px;color:var(--muted);letter-spacing:.3px}header button{margin-left:auto}.plain{background:transparent;border:none;color:var(--muted);padding:10px}.plain span{border:1px solid var(--line);border-radius:50%;padding:1px 6px;margin-left:6px}.intro{display:flex;align-items:center;justify-content:space-between;margin:32px 0 27px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--mint);margin:0 0 10px}h1{font-family:Georgia,serif;font-size:clamp(35px,4.4vw,59px);font-weight:400;letter-spacing:-2px;margin:0}h1 em{color:var(--gold);font-weight:400}.subtitle{color:var(--muted);margin:12px 0 0;font-size:15px}.chapter{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:9px;letter-spacing:2px;line-height:1.7}.chapter b{font:italic 64px Georgia;color:#486169}nav{display:flex;gap:8px;margin-bottom:22px}nav button{flex:1;text-align:left;padding:11px 14px;font-size:11px;color:var(--muted)}nav button[aria-current=true]{color:var(--ink);border-color:var(--mint);background:#28413f}nav button span{margin-right:10px;color:var(--gold)}.workspace{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#121e2b}.play{min-width:0;border-right:1px solid var(--line)}.boardtop{display:flex;justify-content:space-between;align-items:center;padding:22px 24px 8px}.boardtop .eyebrow{font-size:9px}h2{font:400 26px Georgia;margin:6px 0 0}.boardtop button{font-size:11px;padding:8px 10px;background:transparent}canvas{display:block;width:100%;height:auto;aspect-ratio:640/520}.legend{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:9px;padding:8px 24px 20px}.legend i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px}.quiet{background:var(--mint)}.loud{background:var(--gold)}aside{padding:24px}.statushead{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.statushead b{font-size:11px;color:var(--gold)}.instruction{font:19px/1.4 Georgia;margin:10px 0 22px}.target{display:grid;grid-template-columns:36px 1fr 38px;gap:10px;align-items:center;margin:14px 0}.target img{width:36px;height:36px;object-fit:contain}.target label{font-size:11px;color:var(--muted)}.target b{font-size:11px;text-align:right;color:var(--muted)}.target.done b{color:var(--mint)}.meter{height:5px;border-radius:5px;background:#31424c;position:relative;margin-top:7px;overflow:hidden}.meter span{display:block;height:100%;background:var(--gold);transition:width .2s}.target.done .meter span{background:var(--mint)}.rule{height:1px;background:var(--line);margin:22px 0}.small{font-size:11px;color:var(--muted);line-height:1.65}.dial{display:grid;grid-template-columns:24px 36px 1fr 36px 41px;gap:8px;align-items:center;margin:16px 0}.dial strong{color:var(--gold);font:20px Georgia}.dial button{padding:5px;font-size:20px;min-height:36px}.dial output{font-variant-numeric:tabular-nums;text-align:right;font-size:11px;color:var(--mint)}input[type=range]{width:100%;accent-color:var(--gold);min-width:0;cursor:pointer;min-height:36px}.locked{display:flex;align-items:center;gap:15px;font-size:11px;color:var(--muted);margin:15px 0}.locked b{font:20px Georgia;color:var(--gold)}.tools{display:flex;gap:7px;flex-wrap:wrap;margin-top:23px}.tools button{font-size:11px;padding:9px 10px}#feedback{font-size:11px;line-height:1.6;color:var(--muted);min-height:35px;margin:12px 0}.primary{width:100%;text-align:left;background:var(--gold);color:#1f2931;border:none;padding:14px 18px;font-weight:650}.primary:hover{background:#f5d29b}.primary span{float:right}#win{border-top:1px solid var(--line);margin-top:18px;padding-top:12px}#win h3{font:23px Georgia;color:var(--mint);margin:0}#win p{font-size:12px;color:var(--muted);line-height:1.6}footer{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:10px;letter-spacing:.5px;padding:22px 0}footer i{color:var(--gold);font-style:normal;margin:0 10px}footer button{font-size:10px}dialog{max-width:550px;width:calc(100% - 30px);border:1px solid #52646a;border-radius:16px;background:#182936;color:var(--ink);padding:35px;line-height:1.8}dialog::backdrop{background:#080f19cf}dialog h2{font-size:32px;margin-bottom:22px}dialog li{margin-bottom:12px}dialog a{color:var(--gold)}.close{float:right;margin:-15px -15px 0 10px;font-size:22px;padding:3px 12px}@media(max-width:850px){main{padding:18px 20px}.workspace{grid-template-columns:minmax(0,1.4fr) minmax(270px,1fr)}aside{padding:20px 16px}nav button{padding:10px;text-align:center}nav button .roomword{display:none}.legend{padding:10px;font-size:8px}.mast small{display:none}}@media(max-width:650px){main{padding:16px}.intro{margin:26px 0}.chapter{display:none}.mast{font-size:8px;letter-spacing:1px}.brand{font-size:25px}header{gap:13px;padding-bottom:16px}header button{font-size:11px;padding-right:0}.workspace{grid-template-columns:1fr}.play{border-right:0;border-bottom:1px solid var(--line)}.boardtop{padding:20px 18px 4px}h2{font-size:24px}nav{gap:5px;margin-bottom:15px}nav button{padding:10px 5px}nav button span{margin:0}.subtitle{font-size:12px}aside{padding:22px}.instruction{font-size:19px;margin-bottom:16px}.target{margin:12px 0}footer{font-size:8px;align-items:start}footer button{font-size:9px;max-width:95px;padding:0}h1{letter-spacing:-1.5px}.legend{font-size:8px;padding:8px 15px 16px}}
