:root{--bg-void:#0d0b09;--bg-panel:#16120e;--metal-copper:#b4642d;--metal-brass:#c9a227;--ink:#e8e0d4;--ink-dim:#8a8072;--line:#3a3128;--alert:#c33b2e;--font-display:"Shippori Mincho", "Hiragino Mincho ProN", serif;--font-body:"IBM Plex Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--fs-12:12px;--fs-14:14px;--fs-16:16px;--fs-20:20px;--fs-28:28px;--fs-44:44px;--lh-ja:1.8;--tracking-eyebrow:.18em;--motion-camera:1.2s;--motion-camera-min:.8s;--motion-camera-max:1.6s;--motion-ui:.24s;--motion-ui-sink:4px;--ease-inout:cubic-bezier(.45, 0, .25, 1);--ease-linearish:cubic-bezier(.25, 0, .75, 1)}*{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}html,body{background:var(--bg-void);height:100%;color:var(--ink);font-family:var(--font-body);font-size:var(--fs-14);line-height:var(--lh-ja);-webkit-font-smoothing:antialiased;overflow:hidden}@keyframes ui-enter{0%{opacity:0;transform:translateY(var(--motion-ui-sink))}to{opacity:1;transform:none}}.ui-enter{animation:ui-enter var(--motion-ui) var(--ease-inout) both}@media (prefers-reduced-motion:reduce){.ui-enter{animation:none}}#stage{position:fixed;top:0;bottom:0;left:0;right:0}#stage canvas{touch-action:none;width:100%;height:100%;display:block}#overlay{pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}#credit{font-size:var(--fs-12);color:var(--ink-dim);text-align:center;letter-spacing:.02em;padding:6px 12px;position:fixed;bottom:0;left:0;right:0}#credit a{color:var(--ink-dim)}#loading{z-index:50;background:var(--bg-void);transition:opacity .4s var(--ease-inout);flex-direction:column;justify-content:center;align-items:center;gap:28px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}#loading.loading-done{opacity:0;pointer-events:none}.loading-plate{text-align:center}.loading-eyebrow{font-family:var(--font-body);font-size:var(--fs-12);letter-spacing:var(--tracking-eyebrow);color:var(--ink-dim);margin-bottom:6px}.loading-stats{font-family:var(--font-mono);font-size:var(--fs-14);color:var(--ink)}#controls{pointer-events:auto;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:44px;right:12px}#controls button{background:var(--bg-panel);width:44px;height:44px;color:var(--ink-dim);border:1px solid var(--line);cursor:pointer;transition:color var(--motion-ui) var(--ease-inout);border-radius:3px;place-items:center;display:grid}#controls button:hover{color:var(--ink)}#controls button:focus-visible{color:var(--ink)}#controls svg{stroke:currentColor;fill:none;stroke-width:1.5px;width:22px;height:22px}#controls .speed-label{font-family:var(--font-mono);font-size:var(--fs-14)}#explode{background:var(--bg-panel);border:1px solid var(--line);pointer-events:auto;border-radius:3px;align-items:center;gap:10px;width:-moz-fit-content;width:fit-content;margin-inline-start:auto;margin-inline-end:auto;padding:8px 14px;display:flex;position:fixed;bottom:44px;left:0;right:0}.explode-lbl{font-family:var(--font-display);font-weight:700;font-size:var(--fs-14);color:var(--ink-dim);-webkit-user-select:none;user-select:none}#explode-range{-webkit-appearance:none;appearance:none;background:var(--line);outline:none;width:min(200px,40vw);height:2px}#explode-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--ink);border:1px solid var(--line);cursor:pointer;border-radius:50%;width:14px;height:14px}#explode-range::-moz-range-thumb{background:var(--ink);border:1px solid var(--line);cursor:pointer;border-radius:50%;width:14px;height:14px}#explode-range:focus-visible::-webkit-slider-thumb{background:var(--metal-copper)}#meiban{background:var(--bg-panel);border:1px solid var(--line);width:min(300px,100vw - 24px);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--metal-brass) 22%, transparent), inset 0 1px 0 color-mix(in srgb, var(--metal-brass) 35%, transparent);pointer-events:auto;padding:20px 22px 16px;position:fixed;top:56px;right:12px}#meiban .rivet{background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--metal-brass) 70%, var(--bg-void)), var(--bg-void));border:1px solid var(--line);border-radius:50%;width:7px;height:7px;position:absolute}.r-tl{top:6px;left:6px}.r-tr{top:6px;right:6px}.r-bl{bottom:6px;left:6px}.r-br{bottom:6px;right:6px}.meiban-eyebrow{font-size:var(--fs-12);letter-spacing:var(--tracking-eyebrow);color:color-mix(in srgb, var(--metal-brass) 70%, var(--ink-dim));margin-bottom:4px}.meiban-name{font-family:var(--font-display);font-weight:700;font-size:var(--fs-20);color:var(--ink);margin-bottom:8px;line-height:1.4}.meiban-desc{font-size:var(--fs-12);color:var(--ink-dim);margin-bottom:10px}.meiban-specs{border-top:1px solid var(--line);grid-template-columns:auto 1fr;gap:2px 14px;padding-top:8px;display:grid}.meiban-specs dt{font-size:var(--fs-12);color:var(--ink-dim)}.meiban-specs dd{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--ink);text-align:right}.meiban-system{font-size:var(--fs-12);color:var(--ink-dim);letter-spacing:.08em;margin-top:10px}#product{border:1px solid var(--line);pointer-events:auto;border-radius:3px;display:flex;position:fixed;top:12px;left:64px;overflow:hidden}#product button{background:var(--bg-panel);height:44px;color:var(--ink-dim);border:none;border-right:1px solid var(--line);font-family:var(--font-display);font-weight:700;font-size:var(--fs-14);cursor:pointer;padding:0 14px}#product button:last-child{border-right:none}#product button.active{color:var(--metal-copper)}body.kiosk #product{display:none}body.sync-follow #product{display:none!important}#tree-toggle{background:var(--bg-panel);width:44px;height:44px;color:var(--ink-dim);border:1px solid var(--line);cursor:pointer;pointer-events:auto;border-radius:3px;place-items:center;display:grid;position:fixed;top:12px;left:12px}#tree-toggle:hover{color:var(--ink)}#tree-toggle:focus-visible{color:var(--ink)}#tree-toggle svg{stroke:currentColor;fill:none;stroke-width:1.5px;width:22px;height:22px}#tree[hidden]{display:none}#tree{z-index:20;background:var(--bg-panel);border:1px solid var(--line);pointer-events:auto;border-radius:3px;flex-direction:column;width:min(270px,100vw - 24px);display:flex;position:fixed;top:64px;bottom:100px;left:12px}#tree-search{background:var(--bg-void);color:var(--ink);border:1px solid var(--line);font-family:var(--font-body);font-size:var(--fs-14);border-radius:2px;margin:10px;padding:6px 10px}#tree-systems{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;padding:0 10px 8px;display:flex}#tree-systems button{color:var(--ink-dim);border:1px solid var(--line);font-size:var(--fs-12);cursor:pointer;background:0 0;border-radius:2px;padding:3px 9px}#tree-systems button.active{color:var(--ink);border-color:var(--ink-dim)}#tree-list{flex:1;padding:6px 0;list-style:none;overflow-y:auto}.tree-group{font-size:var(--fs-12);letter-spacing:var(--tracking-eyebrow);color:var(--ink-dim);padding:8px 12px 3px}.tree-row{align-items:center;gap:2px;padding:0 6px;display:flex}.tree-row button{color:var(--ink);cursor:pointer;font-family:var(--font-body);font-size:var(--fs-14);text-align:left;background:0 0;border:none;padding:4px 6px}.tree-eye{width:24px;color:var(--ink-dim)!important;font-size:var(--fs-12)!important}.tree-name:hover{color:var(--metal-copper)}.tree-hidden .tree-name{color:var(--ink-dim);text-decoration:line-through}.tree-count{color:var(--ink-dim);font-family:var(--font-mono);font-size:var(--fs-12)}#tree-clip{border-top:1px solid var(--line);font-size:var(--fs-12);color:var(--ink-dim);align-items:center;gap:10px;padding:10px;display:flex}#tree-clip input[type=range]{accent-color:var(--metal-copper);flex:1}#tree-clip input[type=checkbox]{accent-color:var(--metal-copper)}#presenter[hidden]{display:none}#scene-buttons{pointer-events:auto;flex-direction:column;gap:6px;display:flex;position:fixed;top:50%;left:12px;transform:translateY(-50%)}#scene-buttons button{background:var(--bg-panel);width:40px;height:40px;color:var(--ink-dim);border:1px solid var(--line);font-family:var(--font-mono);font-size:var(--fs-16);cursor:pointer;border-radius:3px}#scene-buttons button.active{color:var(--metal-copper);border-color:var(--metal-copper)}#cue{background:var(--bg-panel);border:1px solid var(--line);pointer-events:auto;border-radius:3px;max-width:min(420px,100vw - 200px);padding:10px 14px;position:fixed;bottom:44px;left:64px}.cue-title{font-family:var(--font-display);font-weight:700;font-size:var(--fs-14);color:var(--ink);margin-bottom:2px}.cue-script{font-size:var(--fs-12);color:var(--ink-dim);margin-bottom:6px}#present-exit{border:1px solid var(--line);color:var(--ink-dim);font-size:var(--fs-12);cursor:pointer;background:0 0;border-radius:2px;padding:2px 8px}#env-switcher{border:1px solid var(--line);pointer-events:auto;border-radius:3px;gap:0;display:flex;position:fixed;bottom:44px;left:12px;overflow:hidden}#env-switcher button{background:var(--bg-panel);color:var(--ink-dim);border:none;border-right:1px solid var(--line);font-family:var(--font-body);font-size:var(--fs-12);cursor:pointer;padding:8px 12px}#env-switcher button:last-child{border-right:none}#env-switcher button.active{color:var(--metal-copper)}@media (max-width:560px){#env-switcher{bottom:104px}}#controls button.active{color:var(--metal-copper);border-color:var(--metal-copper)}#measure-labels{pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}.measure-label{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--ink);background:var(--bg-panel);border:1px solid var(--line);white-space:nowrap;padding:1px 6px;position:absolute;transform:translate(-50%,-130%)}body.kiosk #tree-toggle,body.kiosk #btn-measure,body.kiosk #btn-measure-clear,body.kiosk #env-switcher{display:none}body.kiosk{-webkit-user-select:none;user-select:none}#kiosk-start{z-index:60;background:var(--bg-void);color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:var(--fs-20);cursor:pointer;border:none;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}#kiosk-start .kiosk-eyebrow{font-family:var(--font-body);font-size:var(--fs-12);letter-spacing:var(--tracking-eyebrow);color:var(--ink-dim)}body.sync-follow #controls,body.sync-follow #tree-toggle,body.sync-follow #tree,body.sync-follow #explode,body.sync-follow #env-switcher,body.sync-follow #cue,body.sync-follow #scene-buttons{display:none!important}#controls a#btn-ar{background:var(--bg-panel);width:44px;height:44px;color:var(--ink-dim);border:1px solid var(--line);border-radius:3px;place-items:center;text-decoration:none;display:grid;position:relative}#controls a#btn-ar:hover{color:var(--ink)}#tree-config{border-top:1px solid var(--line);font-size:var(--fs-12);color:var(--ink-dim);flex-direction:column;gap:6px;padding:8px 10px;display:flex}.tree-config-row{align-items:center;gap:6px;display:flex}.tree-config-lbl{letter-spacing:var(--tracking-eyebrow)}.tree-config-row button{color:var(--ink-dim);border:1px solid var(--line);font-size:var(--fs-12);cursor:pointer;background:0 0;border-radius:2px;padding:2px 9px}.tree-config-row button.active{color:var(--metal-copper);border-color:var(--metal-copper)}.tree-config-row input[type=checkbox]{accent-color:var(--metal-copper)}@font-face{font-family:Shippori Mincho;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/shippori-mincho-700.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans JP;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/plex-sans-jp-400.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans JP;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/plex-sans-jp-500.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/plex-mono-400.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/plex-mono-500.woff2)format("woff2")}
