@font-face{font-family:'IBM Plex Sans TC';src:url('fonts/IBMPlexSansTC-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'IBM Plex Sans TC';src:url('fonts/IBMPlexSansTC-SemiBold.woff2') format('woff2');font-weight:500 900;font-display:swap}
:root{--paper:#000;--ink:#F4F4F1;--accent:#F45724;--muted:#b5b5af;color-scheme:dark}
html,body{font-family:'IBM Plex Sans TC',sans-serif;background:var(--paper);color:var(--ink)}button,.planet{font-family:inherit}button,a{outline-color:var(--accent)}header{border-color:var(--muted)}.viewport{background:var(--paper);border-color:var(--muted)}.planet .name{background:var(--paper);color:var(--ink)}.planet .status,button.primary,.rooms button[aria-current=true],dialog button{background:var(--accent);color:#fff;border-color:var(--accent)}button{border-color:var(--accent);background:var(--paper);color:var(--ink)}button:hover,button:focus-visible,.planet:hover .name,.planet:focus-visible .name{background:var(--accent);color:#fff}.planet:focus-visible{outline-color:var(--accent)}.line,.line.source{border-color:var(--accent)}.legend,.hint,.status,.mission b{color:var(--muted)}dialog{background:var(--paper);color:var(--ink);border-color:var(--accent);box-shadow:5px 5px 0 var(--accent)}dialog::backdrop{background:#000b}.rooms button{background:var(--paper);color:var(--ink)}.room-sign{position:absolute;color:#283c3e;background:#fffaf0;padding:2px 4px;font-size:clamp(9px,1.2vw,12px);pointer-events:none;white-space:nowrap}.room-sign.clock{background:#000;color:#F45724;font-variant-numeric:tabular-nums}.hotspot.clue-dot{color:transparent!important;background:transparent!important;border:0!important;width:44px;height:44px;min-height:44px;padding:0;box-shadow:none}.hotspot.clue-dot::after{content:'';position:absolute;inset:10px;border:2px solid var(--accent);opacity:0}.hotspot.clue-dot:hover::after,.hotspot.clue-dot:focus-visible::after,.hotspot.clue-dot.near::after{opacity:1}.hotspot.clue-dot.found::after{border-style:dashed}.spark{position:absolute;font-weight:700;color:var(--accent);font-size:26px;pointer-events:none;transform:translate(-50%,-100%)}.hotspot:not(.clue-dot){background:var(--paper);color:var(--ink);border-color:var(--accent)}
