:root{--bg: #0d0f14;--surface: rgba(20, 23, 30, .92);--surface-solid: #161a22;--border: rgba(255, 255, 255, .14);--text: #eef1f6;--muted: #a5adbb;--accent: #4f8cff;--danger: #ff6b6b;--radius: 10px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-text-size-adjust:100%}#root{height:100%}a{color:var(--accent)}kbd{display:inline-block;padding:.05em .4em;border:1px solid var(--border);border-radius:4px;background:#ffffff12;font:inherit;font-size:.85em}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.button{display:inline-flex;align-items:center;gap:.4em;padding:.55em 1em;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-solid);color:var(--text);font:inherit;text-decoration:none;cursor:pointer}.button:hover:not(:disabled){border-color:#ffffff52}.button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.button:disabled{opacity:.45;cursor:default}.button-primary{background:var(--accent);border-color:transparent;color:#06101f;font-weight:600}.button-small{padding:.35em .7em;font-size:.875rem}.button-quiet{background:transparent}.button-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.page{min-height:100%;padding:clamp(1.5rem,5vw,4rem) 1.25rem;overflow-y:auto}.page-inner{max-width:44rem;margin:0 auto}.page-header h1{margin:0 0 .4rem;font-size:clamp(2rem,6vw,3rem);letter-spacing:-.02em;line-height:1.1}.page-toolbar{display:flex;justify-content:flex-end;margin-bottom:1rem}.language-selector{display:flex;align-items:center;gap:.5rem;margin:0;font-size:.9rem}.language-selector select{padding:.35em .5em;border:1px solid var(--border);border-radius:6px;background:var(--surface-solid);color:var(--text);font:inherit}.language-selector select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lede{margin:0 0 1.5rem;color:var(--muted)}.muted{color:var(--muted)}.banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin:0 0 1.25rem;padding:.7rem .9rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.banner-error{border-color:#ff6b6b80;color:#ffd4d4}.banner-actions{display:flex;gap:.5rem}.create-form{display:flex;flex-direction:column;gap:.6rem;margin-bottom:2.5rem}.create-form>label{font-weight:600}.text-input{width:100%;padding:.7em .85em;border:1px solid var(--border);border-radius:var(--radius);background:#0b0d12;color:var(--text);font:inherit}.text-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.field-error{margin:0;color:var(--danger);font-size:.9rem}.scene-picker{margin:.75rem 0 0;padding:.9rem;border:1px solid var(--border);border-radius:var(--radius)}.scene-picker legend{padding:0 .35rem;font-weight:600}.scene-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.5rem}.scene-option{position:relative;display:block;cursor:pointer}.scene-option input{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%)}.scene-card{display:block;height:100%;padding:.5rem .6rem .6rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-solid)}.scene-card strong{display:block;font-size:.9rem}.scene-card small{display:block;color:var(--muted);font-size:.78rem;line-height:1.35}.scene-swatch{display:block;height:2.1rem;margin-bottom:.45rem;border-radius:6px}.scene-option input:checked+.scene-card{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.scene-option input:focus-visible+.scene-card{outline:2px solid var(--accent);outline-offset:2px}.notice{padding:1rem 1.1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:.92rem}.notice h2{margin:0 0 .5rem;font-size:1rem}.notice ul{margin:0;padding-left:1.1rem;color:var(--muted)}.notice li+li{margin-top:.4rem}.gallery-root{position:fixed;inset:0;height:100vh;height:100dvh;overflow:hidden;overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.gallery-stage{position:absolute;inset:0}.gallery-css3d .exhibit-card{transform-origin:50% 50%}.gallery-css3d .exhibit-card{--card-bg: #ffffff;--card-text: #2b2f36;--card-muted: #5c626d;--card-button-bg: #eef0f4;--card-button-border: #cfd4dc;display:flex;flex-direction:column;align-items:stretch;justify-content:center;background:var(--card-bg);border-radius:4px;overflow:hidden;transition:opacity .12s linear}.gallery-css3d .exhibit-card[data-theme=dark]{--card-bg: #15181c;--card-text: #e7e9ee;--card-muted: #9aa1ad;--card-button-bg: #262b33;--card-button-border: #3a4049}.exhibit-embed-slot{display:flex;flex-direction:column;align-items:center;overflow-y:auto;max-height:100%;-webkit-overflow-scrolling:touch}.exhibit-card,.exhibit-card *{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.exhibit-status{padding:1.5rem;color:var(--card-text);font-size:1.05rem;text-align:center}.exhibit-status-title{margin:0 0 .4rem;font-weight:600}.exhibit-status-body{margin:0 0 1rem;color:var(--card-muted);font-size:.95rem}.exhibit-status-actions{display:flex;justify-content:center;gap:.5rem}.exhibit-status .button{background:var(--card-button-bg);border-color:var(--card-button-border);color:var(--card-text)}.gallery-input{-webkit-tap-highlight-color:transparent}.joystick-base{position:absolute;width:112px;height:112px;margin:-56px 0 0 -56px;border:2px solid rgba(255,255,255,.4);border-radius:50%;background:#00000038;pointer-events:none}.joystick-knob{position:absolute;top:50%;left:50%;width:48px;height:48px;border-radius:50%;background:#ffffffad;transform:translate(-50%,-50%)}.hud{position:absolute;inset:0;z-index:4;pointer-events:none;padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left))}.hud button,.hud a,.hud input,.hud select,.hud .panel,.hud .help,.hud .reading-bar,.hud .hud-banner{pointer-events:auto}.hud input,.hud textarea{-webkit-user-select:text;user-select:text}.hud-top{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.5rem}.hud-top-right{display:flex;flex-wrap:wrap;gap:.4rem}.hud-banner{margin-bottom:.6rem}.read-prompt{position:absolute;bottom:max(1.5rem,env(safe-area-inset-bottom));left:50%;display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transform:translate(-50%)}.read-prompt-hint{color:var(--muted);font-size:.875rem}.reading-bar{position:absolute;bottom:max(1rem,env(safe-area-inset-bottom));left:50%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem;width:min(46rem,calc(100% - 1.5rem));padding:.6rem .9rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:.9rem;transform:translate(-50%)}.reading-bar-actions{display:flex;gap:.5rem}.panel{position:absolute;top:4.2rem;right:max(.75rem,env(safe-area-inset-right,0px));width:min(20rem,calc(100vw - 1.5rem - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)));max-height:min(70dvh,34rem);overflow-y:auto;padding:.9rem 1rem 1.2rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);backdrop-filter:blur(8px)}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.panel-header h2{margin:0;font-size:1.05rem}.panel-note{margin:.5rem 0 .9rem;color:var(--muted);font-size:.85rem}.panel-note-quiet{opacity:.85}.control{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:0 0 .55rem}.control select{flex:0 0 9.5rem;padding:.35em .5em;border:1px solid var(--border);border-radius:6px;background:var(--surface-solid);color:var(--text);font:inherit}.control-checkbox,.control-actions{justify-content:flex-start}.panel-share .text-input{margin-top:.75rem;font-size:.85rem}.panel-studio{width:min(23rem,calc(100vw - 1.5rem - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)));max-height:min(78dvh,40rem)}.panel-studio .scene-picker{margin:0 0 .9rem;padding:.6rem}.panel-studio .scene-grid{grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr))}.panel-studio .scene-swatch{height:1.6rem}.studio-actions{flex-wrap:wrap;margin-bottom:.4rem}.studio-group{margin:0 0 .5rem;padding:.4rem .6rem;border:1px solid var(--border);border-radius:var(--radius)}.studio-group summary{cursor:pointer;font-weight:600;font-size:.9rem}.studio-group[open] summary{margin-bottom:.6rem}.help{position:absolute;z-index:1;bottom:max(1rem,env(safe-area-inset-bottom,0px));left:max(.75rem,env(safe-area-inset-left,0px));width:min(26rem,calc(100vw - 1.5rem - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)));max-height:min(80dvh,32rem);overflow-y:auto;padding:1rem 1.1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);backdrop-filter:blur(8px)}.help h2{margin:0 0 .6rem;font-size:1rem}.help-grid{margin:0 0 .9rem;font-size:.88rem}.help-grid dt{font-weight:600}.help-grid dd{margin:0 0 .6rem;color:var(--muted)}@media (max-width: 640px){.help{bottom:auto;top:8.5rem;max-height:min(58dvh,28rem)}.panel{top:8.5rem;max-height:min(58dvh,28rem)}.read-prompt{max-width:calc(100vw - 1.5rem)}}@media (max-height: 520px) and (min-width: 641px){.hud-top,.hud-top-right{flex-wrap:nowrap}.panel,.help{top:3.6rem;bottom:auto;max-height:calc(100dvh - 5rem)}}@media (pointer: coarse){.hud .button{min-height:44px}.hud-top kbd,.reading-bar kbd,.read-prompt-hint{display:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
