
.minimal-root{--fi-art-aspect:1586/992;--fi-base:#f4f8fb;--fi-ink:#304c60;--fi-muted:#596e80;--fi-accent:#678fa9;--fi-primary:#d9e9f2;--fi-line:#cbdbe6;--fi-surface:rgba(250,253,255,.94);--fi-glass:rgba(247,252,255,.84);--fi-shadow:0 5px 22px rgba(34,64,85,.12);--fi-radius:20px;color:var(--fi-ink);font:14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;width:100%;color-scheme:light}
.minimal-root *{box-sizing:border-box}.minimal-root [hidden]{display:none!important}.minimal-root button,.minimal-root input,.minimal-root select{font:inherit;color:inherit}.minimal-root button{cursor:pointer}.minimal-root button:focus-visible,.minimal-root input:focus-visible,.minimal-root select:focus-visible{outline:3px solid #89b5d3;outline-offset:3px}.minimal-root button:disabled{cursor:default;opacity:.5}.minimal-root svg{width:20px;height:20px;stroke-width:1.6;flex-shrink:0}
.minimal-root .study-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:0 0 14px}.minimal-root .study-title{font-weight:500;display:flex;align-items:center;gap:12px}.minimal-root .study-title small{font-size:11px;color:var(--fi-muted);font-weight:400}.minimal-root .study-tabs,.minimal-root .segmented{display:flex;padding:4px;background:var(--fi-base);border-radius:13px;gap:3px}.minimal-root .study-tabs button,.minimal-root .segmented button{border:0;background:transparent;padding:7px 14px;border-radius:10px;transition:background .18s,box-shadow .18s}.minimal-root .study-tabs button[aria-pressed=true],.minimal-root .segmented button[aria-pressed=true]{background:#fff;box-shadow:0 1px 5px rgba(34,64,85,.09)}
.minimal-root .world{position:relative;overflow:hidden;width:100%;height:auto;aspect-ratio:var(--fi-art-aspect);min-height:420px;max-height:640px;border-radius:var(--fi-radius);background:var(--fi-base);isolation:isolate}.minimal-root .scene-art{position:absolute;left:0;right:0;top:50%;aspect-ratio:var(--fi-art-aspect);transform:translateY(-50%);background-size:100% 100%;background-position:center;animation:fi-arrive .3s ease both;z-index:-2}.minimal-root .scene-veil{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(21,41,51,.16),transparent 22%,transparent 80%,rgba(21,41,51,.08))}.minimal-root .scene-header{position:absolute;top:20px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:4}.minimal-root .scene-left{display:flex;gap:12px;align-items:center;min-width:0}.minimal-root .wordmark{font:italic 25px Georgia,serif;color:#fff;text-shadow:0 1px 6px #394e57}.minimal-root .room-title{color:#fff;font-size:14px;text-shadow:0 1px 5px #394e57;white-space:nowrap}.minimal-root .glass,.minimal-root .tool-button,.minimal-root .back-button,.minimal-root .timer-actions,.minimal-root .start-focus{background:var(--fi-glass);border:1px solid rgba(255,255,255,.75);box-shadow:var(--fi-shadow);backdrop-filter:blur(16px) saturate(1.12);-webkit-backdrop-filter:blur(16px) saturate(1.12)}.minimal-root .back-button{display:flex;align-items:center;gap:7px;border-radius:25px;padding:9px 13px;min-height:40px;font-size:13px}.minimal-root .scene-tools{display:flex;gap:8px}.minimal-root .tool-wrap{position:relative}.minimal-root .tool-button{display:flex;align-items:center;justify-content:center;border-radius:50%;width:42px;height:42px;padding:9px;transition:transform .18s,background .18s,box-shadow .18s}.minimal-root .tool-button:hover{transform:translateY(-2px) scale(1.04);background:rgba(255,255,255,.98);box-shadow:0 6px 16px rgba(34,64,85,.17)}.minimal-root .tool-button[aria-expanded=true]{background:var(--fi-primary)}.minimal-root .tool-button img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;border-radius:50%;background:var(--fi-primary)}.minimal-root .tool-button.avatar-tool{padding:3px}.minimal-root .tool-tip{pointer-events:none;position:absolute;right:0;top:calc(100% + 10px);white-space:nowrap;padding:5px 9px;border-radius:8px;background:var(--fi-surface);font-size:11px;opacity:0;transform:translateY(-3px);transition:.16s;box-shadow:var(--fi-shadow)}.minimal-root .tool-wrap:hover .tool-tip,.minimal-root .tool-wrap:focus-within .tool-tip{opacity:1;transform:none}
.minimal-root .scene-markers{position:absolute;left:0;right:0;top:50%;aspect-ratio:var(--fi-art-aspect);transform:translateY(-50%);pointer-events:none}.minimal-root .map-pin{pointer-events:auto;position:absolute;transform:translate(-50%,-100%);border:0;padding:6px 7px 14px;background:none;width:52px;height:60px;display:grid;place-items:start center}.minimal-root .pin-face{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;position:relative;background:var(--fi-glass);box-shadow:var(--fi-shadow);border:1px solid rgba(255,255,255,.8);backdrop-filter:blur(12px);transition:transform .18s,background .18s;transform-origin:50% calc(100% + 10px)}.minimal-root .pin-face:after{content:"";position:absolute;top:calc(100% - 2px);left:50%;transform:translateX(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:12px solid var(--fi-glass)}.minimal-root .map-pin:hover .pin-face,.minimal-root .map-pin:focus-visible .pin-face,.minimal-root .map-pin.is-hovered .pin-face{transform:scale(1.08) translateY(-2px);background:#f9fdff}.minimal-root .map-pin.future .pin-face{background:rgba(248,252,255,.74)}.minimal-root .map-pin svg{width:20px;height:20px}.minimal-root .map-hint{position:absolute;z-index:7;max-width:260px;padding:9px 13px;border:1px solid rgba(255,255,255,.86);background:var(--fi-surface);box-shadow:var(--fi-shadow);border-radius:12px;pointer-events:none;font-size:12px;animation:fi-pop .16s ease both}.minimal-root .map-hint strong{font-weight:500}.minimal-root .map-hint span{color:var(--fi-muted);margin-left:8px;white-space:nowrap}
.minimal-root .avatar-marker,.minimal-root .seat-button{position:absolute;transform:translate(-50%,-50%);pointer-events:auto}.minimal-root .avatar-marker{width:50px;height:50px;display:grid;place-items:center;border-radius:50%;padding:0;border:2px solid rgba(255,255,255,.96);background:var(--fi-primary);box-shadow:0 3px 12px rgba(34,64,85,.16)}.minimal-root .avatar-marker img{width:100%;height:100%;object-fit:cover;object-position:center 20%;border-radius:50%;pointer-events:none}.minimal-root .avatar-marker.rippling:before,.minimal-root .avatar-marker.rippling:after{content:"";position:absolute;inset:-7px;border:1px solid rgba(228,244,255,.8);border-radius:50%;animation:fi-ripple 4.5s ease-out infinite;pointer-events:none}.minimal-root .avatar-marker.rippling:after{animation-delay:2.2s}.minimal-root .seat-caption{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);white-space:nowrap;padding:3px 9px;border-radius:20px;background:rgba(249,253,255,.92);font-size:11px;box-shadow:0 2px 6px rgba(34,64,85,.08)}.minimal-root .seat-button{display:grid;place-items:center;width:44px;height:44px;padding:7px;border:1px solid rgba(255,255,255,.9);border-radius:50%;background:rgba(247,252,255,.8);box-shadow:var(--fi-shadow);transition:background .18s,transform .18s}.minimal-root .seat-button:hover{background:#fff;transform:translate(-50%,-50%) scale(1.08)}.minimal-root .room-hint{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);padding:9px 17px;border-radius:22px;background:var(--fi-glass);box-shadow:var(--fi-shadow);font-size:13px;white-space:nowrap}.minimal-root[data-dev=true] .avatar-marker,.minimal-root[data-dev=true] .seat-button{touch-action:none;cursor:grab}.minimal-root[data-dev=true] .ghost{opacity:.68}.minimal-root .edit-selected{outline:2px dashed #4587b1;outline-offset:5px}.minimal-root .edit-other{opacity:.48}
.minimal-root .focus-widget{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;z-index:3}.minimal-root .focus-widget:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:16px}
.minimal-root .time-readout{border:0;background:none;color:#f4fbff;padding:8px 16px;font-size:clamp(36px,5vw,48px);line-height:1.05;font-weight:300;font-variant-numeric:tabular-nums;letter-spacing:.02em;text-shadow:0 2px 10px rgba(24,42,55,.5);min-width:165px}.minimal-root .timer-actions{position:absolute;bottom:calc(100% + 8px);border-radius:23px;display:flex;padding:4px;gap:1px;opacity:0;pointer-events:none;transform:translateY(7px) scale(.98);transition:opacity .18s,transform .18s;white-space:nowrap}.minimal-root .timer-actions button{display:flex;align-items:center;justify-content:center;gap:7px;border:0;background:none;border-radius:18px;padding:10px 12px;font-size:12px;min-height:38px}.minimal-root .timer-actions button:hover{background:rgba(217,233,242,.85)}.minimal-root .timer-actions svg{width:16px;height:16px}.minimal-root .focus-widget:hover .timer-actions,.minimal-root .focus-widget:focus-within .timer-actions,.minimal-root .focus-widget.show-menu .timer-actions{opacity:1;pointer-events:auto;transform:none}.minimal-root .start-focus{border-radius:24px;padding:10px 21px;font-weight:500;margin-top:10px}.minimal-root[data-view=focus] .chrome{opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .24s,transform .24s}.minimal-root[data-view=focus] .world.awake .chrome,.minimal-root[data-view=focus] .chrome:focus-within,.minimal-root[data-view=focus] .world.has-panel .chrome{opacity:1;pointer-events:auto;transform:none}
.minimal-root .floating-panel{position:absolute;right:22px;top:78px;width:min(290px,calc(100% - 32px));padding:18px;border-radius:var(--fi-radius);background:var(--fi-surface);border:1px solid rgba(255,255,255,.92);box-shadow:0 12px 40px rgba(34,64,85,.17);z-index:8;animation:fi-pop .2s cubic-bezier(.2,.8,.2,1) both;max-height:calc(100% - 100px);overflow-y:auto}.minimal-root .panel-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.minimal-root .panel-heading strong{font-size:16px;font-weight:500}.minimal-root .close-panel{border:0;background:none;padding:4px;display:grid;place-items:center;border-radius:50%}.minimal-root .close-panel:hover{background:var(--fi-primary)}.minimal-root .sound-row,.minimal-root .setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #e6edf2;font-size:13px}.minimal-root .sound-name{display:flex;gap:10px;align-items:center}.minimal-root .sound-name svg{width:18px;height:18px;color:var(--fi-muted)}.minimal-root .switch{appearance:none;-webkit-appearance:none;width:36px;height:22px;flex-shrink:0;position:relative;border-radius:12px;background:#d6dfe5;border:0;transition:background .18s;cursor:pointer;margin:0}.minimal-root .switch:before{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(34,64,85,.17);transition:transform .18s}.minimal-root .switch:checked{background:var(--fi-accent)}.minimal-root .switch:checked:before{transform:translateX(14px)}.minimal-root .volume-row{display:flex;align-items:center;gap:10px;padding-top:18px}.minimal-root input[type=range]{accent-color:var(--fi-accent);width:100%;min-width:0}.minimal-root .volume-row output{font-size:11px;min-width:30px}.minimal-root .panel-note{font-size:12px;color:var(--fi-muted);margin:13px 0 0}.minimal-root .name-input{width:100%;padding:9px 10px;border:1px solid var(--fi-line);border-radius:10px;background:#fff;margin-top:8px}.minimal-root .profile-sample{display:flex;align-items:center;gap:12px}.minimal-root .profile-sample img{width:52px;height:52px;object-fit:cover;object-position:center 20%;border-radius:50%;background:var(--fi-primary)}.minimal-root .scene-choice{width:100%;display:flex;align-items:center;gap:10px;text-align:left;padding:8px;border-radius:12px;border:1px solid transparent;background:none;margin:4px 0;font-size:12px}.minimal-root .scene-choice img{width:68px;height:44px;object-fit:cover;border-radius:7px}.minimal-root .scene-choice[aria-pressed=true]{background:var(--fi-primary);border-color:var(--fi-line)}
.minimal-root[data-view=cafe]{--fi-art-aspect:1672/941}
.minimal-root[data-view=focus] .scene-art{inset:0;aspect-ratio:auto;transform:none;background-size:cover}
.minimal-root .confirm-layer{position:absolute;inset:0;z-index:15;background:rgba(32,51,66,.18);backdrop-filter:blur(5px);display:grid;place-items:center;padding:22px}.minimal-root .confirm-dialog{width:min(340px,100%);border-radius:22px;padding:25px;background:#f8fcff;box-shadow:0 15px 45px rgba(34,64,85,.22)}.minimal-root .confirm-dialog h2{font-size:19px;font-weight:500;margin:0 0 10px}.minimal-root .confirm-dialog p{font-size:13px;margin:0;color:var(--fi-muted)}.minimal-root .confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:23px}.minimal-root .confirm-actions button{border:0;border-radius:12px;background:var(--fi-primary);padding:9px 12px}.minimal-root .inline-status{position:absolute;bottom:18px;right:18px;max-width:calc(100% - 36px);font-size:12px;background:var(--fi-surface);border-radius:12px;padding:0;z-index:13;opacity:0;pointer-events:none;transition:opacity .15s}.minimal-root .inline-status.visible{padding:9px 12px;opacity:1;box-shadow:var(--fi-shadow)}
.minimal-root .study-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.minimal-root .study-caption{font-size:11px;color:var(--fi-muted)}.minimal-root .layout-toggle{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--fi-line);border-radius:12px;background:var(--fi-base);font-size:12px}.minimal-root .layout-toggle svg{width:14px;height:14px}.minimal-root .layout-toggle[aria-pressed=true]{background:var(--fi-primary)}.minimal-root .layout-panel{margin-top:12px;padding:16px;background:var(--fi-base);border-radius:16px;border:1px solid var(--fi-line)}.minimal-root .layout-top{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;font-size:13px}.minimal-root .layout-top strong{font-weight:500}.minimal-root .layout-top span,.minimal-root .layout-note{font-size:11px;color:var(--fi-muted)}.minimal-root .layout-row{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;margin-top:13px}.minimal-root .layout-row label{display:flex;flex-direction:column;gap:3px;font-size:11px}.minimal-root .layout-row input{width:74px}.minimal-root .layout-row input,.minimal-root .layout-row select{height:36px;padding:7px 9px;border:1px solid var(--fi-line);border-radius:10px;background:#fff;font-size:13px}.minimal-root .layout-row>button{border:1px solid var(--fi-line);border-radius:11px;background:#fff;padding:8px 12px;font-size:12px;min-height:36px}.minimal-root .layout-row>button.primary{background:var(--fi-primary)}.minimal-root .layout-note{margin-top:10px}.minimal-root .layout-row .segmented button{font-size:12px;padding:7px 12px}
.minimal-root .components{background:var(--fi-base);border-radius:var(--fi-radius);padding:28px;min-height:420px}.minimal-root .kit-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:10px}.minimal-root .kit-heading h2{font-size:24px;font-weight:400;margin:0}.minimal-root .kit-heading small{font-size:12px;color:var(--fi-muted)}.minimal-root .kit-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.minimal-root .kit-block{min-width:0}.minimal-root .kit-block h3{font-size:12px;font-weight:500;margin:0 0 14px;color:var(--fi-muted);letter-spacing:.04em}.minimal-root .kit-palette{display:flex;gap:8px}.minimal-root .swatch{flex:1;min-width:0}.minimal-root .swatch div{height:42px;border-radius:10px;border:1px solid var(--fi-line)}.minimal-root .swatch small{display:block;font-size:10px;margin-top:5px}.minimal-root .kit-buttons{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.minimal-root .kit-buttons .tool-button{box-shadow:0 3px 12px rgba(34,64,85,.1)}.minimal-root .kit-action{padding:9px 14px;border:1px solid var(--fi-line);border-radius:22px;background:var(--fi-primary)}.minimal-root .kit-motion{font-size:12px;color:var(--fi-muted);display:grid;gap:7px}.minimal-root .kit-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.minimal-root .kit-pin-stage{height:90px;position:relative;background:#e7eff5;border-radius:15px}.minimal-root .kit-pin-stage .map-pin{left:25%;top:84%}.minimal-root .kit-pin-stage .kit-pin-label{position:absolute;left:43%;top:30%;font-size:12px;padding:7px 10px;border-radius:10px;background:#f9fdff;box-shadow:var(--fi-shadow)}
.minimal-root[data-reduced=true] *,.minimal-root[data-reduced=true] *:before,.minimal-root[data-reduced=true] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}@keyframes fi-ripple{0%{transform:scale(.96);opacity:.45}90%,100%{transform:scale(1.35);opacity:0}}@keyframes fi-pop{from{opacity:0;transform:translateY(-5px) scale(.98)}to{opacity:1;transform:none}}@keyframes fi-arrive{from{opacity:.55}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.minimal-root *,.minimal-root *:before,.minimal-root *:after{animation:none!important;transition:none!important}}
@media(max-width:650px){.minimal-root .study-bar{gap:10px}.minimal-root .study-title{width:100%;justify-content:space-between}.minimal-root .study-tabs{width:100%}.minimal-root .study-tabs button{flex:1;padding:8px 6px;font-size:12px}.minimal-root .scene-header{left:12px;right:12px;top:14px;gap:8px}.minimal-root .room-title{display:none}.minimal-root .scene-tools{gap:5px}.minimal-root .tool-button{width:40px;height:40px}.minimal-root .back-button{padding:9px;gap:0;min-width:40px;justify-content:center}.minimal-root .back-button span{display:none}.minimal-root .room-hint{font-size:11px;max-width:calc(100% - 22px);white-space:normal;text-align:center;width:max-content}.minimal-root .avatar-marker{width:38px;height:38px}.minimal-root .seat-caption{font-size:10px;padding:2px 5px;top:calc(100% + 4px)}.minimal-root .floating-panel{right:12px;top:67px}.minimal-root .focus-widget{bottom:28px}.minimal-root .timer-actions button{font-size:11px;padding:9px;gap:5px}.minimal-root .components{padding:20px}.minimal-root .kit-grid{grid-template-columns:1fr}.minimal-root .study-caption{max-width:55%}.minimal-root .layout-row .segmented{width:100%}}

/* Production canvas and layout-only tools. */
body.minimal-mvp{background:#f4f8fb;color:#304c60}body.minimal-mvp #app{width:100%;min-height:100dvh}body.minimal-mvp .rotate-notice{display:none!important}
.minimal-root.view{position:relative;width:100%;height:100dvh;min-height:420px;padding:0;overflow:hidden;background:#e9f1f7;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.minimal-root .world{height:100%;min-height:0;max-height:none;aspect-ratio:auto;border-radius:0;background:#e9f1f7}
.minimal-root .room-stage{position:absolute;width:min(100%,calc(100dvh * 1672 / 941));aspect-ratio:1672/941;height:auto;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;overflow:visible}
.minimal-root .room-stage>.scene-image{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;filter:none;transform:none}
.minimal-root .seat-layer{position:absolute;inset:0;width:100%;height:100%;transform:none;overflow:visible}
.minimal-root .seat-markers,.minimal-root .static-occupants{position:absolute;inset:0;pointer-events:none}
.minimal-root .seat-button{min-width:44px;min-height:44px;max-width:none;max-height:none;z-index:2;color:#304c60;font-size:14px}
.minimal-root .avatar-marker{z-index:3;min-width:0;min-height:0}
.minimal-root .minimal-focus-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}
.minimal-root .scene-header{display:flex;width:auto;background:none;border:0;padding:0;min-height:0;backdrop-filter:none}
.minimal-root[data-view=focus] .chrome{opacity:1;pointer-events:auto;transform:none}
body.hud-idle .minimal-root[data-view=focus] .chrome{opacity:0;pointer-events:none}
body.hud-idle .minimal-root .chrome:focus-within{opacity:1;pointer-events:auto}
.minimal-root .focus-widget{bottom:9%;background:none;border:0;box-shadow:none;padding:0;margin:0;width:auto;min-width:0;left:50%}
.minimal-root .immersive-timer{border-radius:0;background:none;box-shadow:none;display:block;width:auto;height:auto;min-height:0;min-width:165px;text-align:center}
.minimal-root .room-hint{z-index:3}.minimal-root .floating-panel{z-index:20}.minimal-root .floating-panel .segmented{flex-wrap:wrap}
.minimal-root .minimal-return{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);padding:10px 18px;border-radius:24px;border:1px solid #d2e1ec;background:var(--fi-glass);color:var(--fi-ink);box-shadow:var(--fi-shadow);font-size:13px}
.minimal-root .minimal-legal{position:absolute;bottom:15px;left:18px;display:flex;gap:12px;font-size:11px}.minimal-root .minimal-legal a{color:#f8fcff;text-shadow:0 1px 4px #304c60}
.minimal-root .minimal-room-mode{position:absolute;top:78px;left:25px;padding:4px 9px;border-radius:12px;background:var(--fi-glass);font-size:11px}
.minimal-root .minimal-panel-link{display:block;width:100%;text-align:left;border:0;background:none;padding:11px 0;border-bottom:1px solid #e1ebf2;font-size:13px}
.minimal-root .minimal-panel-link:hover{color:#315f7f}.minimal-root .minimal-version{display:block;font-size:11px;color:#617887;margin-top:16px}
.minimal-root .minimal-select-label{display:block;font-size:12px;margin-top:13px}.minimal-root select{width:100%;padding:8px;border:1px solid #cbdbe6;border-radius:10px;background:#fff;margin-top:5px}
.minimal-root .minimal-sound-group .volume-row{padding:4px 0 12px}.minimal-root .minimal-sound-group .sound-row{border:0;padding-bottom:7px}
.minimal-root .minimal-summary{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(480px,calc(100% - 40px));padding:30px;border-radius:24px;background:rgba(247,252,255,.95);box-shadow:var(--fi-shadow);text-align:center}
.minimal-root .minimal-summary h1{font-size:26px;font-weight:400;line-height:1.2;margin:0 0 12px;color:#304c60}.minimal-root .minimal-summary p{margin:0 0 23px;color:#5b7485;font-size:14px}
.minimal-root .minimal-summary>div{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.minimal-root .minimal-summary button{border:1px solid #cbdbe6;border-radius:20px;background:#fff;padding:10px 13px;font-size:12px}.minimal-root .minimal-summary button.primary{background:#d9e9f2}
.minimal-root .minimal-layout-tools{position:absolute;z-index:30;bottom:18px;left:50%;transform:translateX(-50%);padding:15px;width:min(660px,calc(100% - 28px));border:1px solid #cbdbe6;border-radius:18px;background:#f7fcff;box-shadow:var(--fi-shadow)}
.minimal-root .minimal-layout-tools header{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-bottom:10px}.minimal-root .minimal-layout-tools header button{padding:2px;background:none;border:0}
.minimal-root .minimal-layout-row{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;margin-bottom:8px}.minimal-root .minimal-layout-row label{font-size:11px;display:grid;gap:3px}.minimal-root .minimal-layout-row input{width:68px;padding:7px;border:1px solid #cbdbe6;background:#fff;border-radius:8px}
.minimal-root .minimal-layout-row select{width:65px;margin:0}.minimal-root .minimal-layout-row>button{padding:7px 11px;border-radius:10px;background:#e4eff7;border:1px solid #cbdbe6;font-size:12px}.minimal-root .minimal-layout-tools small{font-size:11px;color:#597181}
body.minimal-mvp .personal-center-sidebar{background:#e4eef5;color:#304c60}body.minimal-mvp .personal-center-main{background:#f5f9fc}body.minimal-mvp .personal-center-local-note{color:#597181}

/* v1.2.1: precise controls, full-viewport atmosphere and movable layout tools. */
.minimal-root.view { min-height: 0; }
.minimal-root .scene-atmosphere {
  position: absolute;
  inset: 0;
  z-index: -3;
  overflow: hidden;
  pointer-events: none;
  background: #dce8ef;
}
.minimal-root .scene-atmosphere img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: blur(26px) saturate(.8);
  transform: scale(1.08);
}
.minimal-root .scene-atmosphere::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(233, 242, 248, .25);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.minimal-root .seat-button {
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
  gap: 0;
  padding: 0;
  width: 44px;
  height: 44px;
  place-items: center;
}
.minimal-root .seat-button svg,
.minimal-root .back-button svg {
  display: block;
  width: 20px;
  height: 20px;
  margin: 0;
}
.minimal-root .back-button {
  display: grid;
  grid-template-columns: 1fr;
  place-items: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  gap: 0;
  border-radius: 50%;
  line-height: 1;
}
.minimal-root .focus-widget { bottom: max(80px, calc(9dvh + env(safe-area-inset-bottom))); }
.minimal-root .focus-widget::before {
  top: 100%;
  bottom: auto;
  left: 50%;
  right: auto;
  width: min(340px, calc(100vw - 24px));
  height: 14px;
  transform: translateX(-50%);
}
.minimal-root .focus-widget .timer-actions {
  top: calc(100% + 10px);
  bottom: auto;
  left: 50%;
  transform: translate(-50%, -6px);
}
.minimal-root .focus-widget:hover .timer-actions,
.minimal-root .focus-widget:focus-within .timer-actions,
.minimal-root .focus-widget.show-menu .timer-actions { transform: translateX(-50%); }
.minimal-root .focus-length-setting { display: grid; gap: 10px; }
.minimal-root .floating-panel .focus-mode-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  min-width: 0;
  flex-wrap: nowrap;
}
.minimal-root .focus-mode-options button {
  min-width: 0;
  min-height: 38px;
  padding: 7px 4px;
  white-space: nowrap;
  font-size: 12px;
}
.minimal-root .map-pin { width: 52px; height: 68px; padding: 0 2px 4px; }
.minimal-root .pin-face {
  width: 48px;
  height: 64px;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  filter: drop-shadow(0 4px 8px rgba(34,64,85,.18));
  transform-origin: 50% 100%;
}
.minimal-root .pin-face::after { display: none; }
.minimal-root .map-pin:hover .pin-face,
.minimal-root .map-pin:focus-visible .pin-face,
.minimal-root .map-pin.future .pin-face { background: none; }
.minimal-root .map-pin.future .pin-face { opacity: .84; }
.minimal-root .map-pin .pin-shape {
  position: absolute;
  inset: 0;
  display: block;
  width: 48px;
  height: 64px;
}
.minimal-root .pin-outline { fill: #d9e9f2; stroke: rgba(255,255,255,.94); stroke-width: 1.3; }
.minimal-root .pin-ring { fill: #90afc3; }
.minimal-root .pin-center { fill: #f8fcff; }
.minimal-root .pin-glyph {
  position: absolute;
  left: 50%;
  top: 24px;
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  transform: translate(-50%, -50%);
}
.minimal-root .map-pin .pin-glyph svg { display: block; width: 18px; height: 18px; }
.minimal-root .minimal-layout-tools {
  top: 84px;
  left: 16px;
  bottom: auto;
  transform: none;
  width: min(380px, calc(100% - 24px));
  max-height: calc(100% - 16px);
  overflow-y: auto;
}
.minimal-root .minimal-layout-tools header {
  margin-bottom: 12px;
  min-height: 30px;
  cursor: grab;
  touch-action: none;
  user-select: none;
}
.minimal-root .minimal-layout-tools header strong,
.minimal-root .minimal-layout-tools header > div { display: flex; align-items: center; gap: 8px; }
.minimal-root .minimal-layout-tools header strong svg { width: 15px; height: 15px; }
.minimal-root .minimal-layout-tools header button { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; }
.minimal-root .minimal-layout-tools header button:hover { background: #e4eff7; }
.minimal-root .minimal-layout-tools.is-collapsed { width: 240px; }
.minimal-root .minimal-layout-tools.is-collapsed header { margin-bottom: 0; }
.minimal-root .minimal-layout-tools.is-collapsed .minimal-layout-body { display: none; }
/* The minimal UI supports portrait directly; retire the old rotate-to-use gate. */
body.minimal-mvp:not(.landing-mode) #app { filter: none; pointer-events: auto; }

/* Shared scene canvas: marker geometry is tied to the artwork, not the viewport. */
.minimal-root .room-stage{width:min(100%,calc(100dvh * var(--scene-width,1672) / var(--scene-height,941)));aspect-ratio:var(--scene-width,1672)/var(--scene-height,941)}

/* Forest controls remain distinct on narrow screens while the full six-seat art stays visible. */
@media(max-width:600px){
 .minimal-root[data-view=forest] .seat-caption{font-size:10px;padding:2px 5px;top:calc(100% + 3px)}
}
/* Keep guidance away from the lower seat markers, including short landscape screens. */
.minimal-root[data-view=forest] .room-hint{top:78px;bottom:auto;left:24px;transform:none;background:none;box-shadow:none;color:#f4fbff;text-shadow:0 1px 6px #18382f;padding:0;font-size:12px;white-space:normal;max-width:calc(100% - 48px);pointer-events:none}

/* Pending server work must be visible before the first network response. */
.minimal-pending { position:absolute; z-index:65; left:50%; bottom:28px; transform:translateX(-50%); max-width:calc(100% - 32px); padding:12px 20px; border-radius:24px; background:rgba(244,249,252,.96); color:#344a5b; box-shadow:0 4px 24px #182e4322; font-size:14px; pointer-events:none; }
.minimal-pending[hidden] { display:none; }
.minimal-seat-crossfade {
 position:absolute; inset:0; z-index:60; opacity:0; pointer-events:none;
 transition:opacity .6s cubic-bezier(.22,.75,.25,1);
}
.minimal-seat-crossfade.is-visible { opacity:1; }
.minimal-seat-crossfade img { display:block; width:100%; height:100%; object-fit:cover; }
.minimal-root[data-reduced=true] .minimal-seat-crossfade { transition:none; }
.map-pin:disabled { cursor:progress; opacity:.65; }
.timer-actions button:disabled { cursor:progress; opacity:.6; }

/* The island camera crops peripheral sky/sea; art and hotspots share one canvas. */
.minimal-root[data-view=island] .island-canvas {
 position:absolute; left:50%; top:50%;
 width:max(100vw,calc(100dvh * 1672 / 941)); aspect-ratio:1672/941;
 transform:translate(-50%,-50%);
}
.minimal-root[data-view=island] .island-panorama {
 display:block; width:100%; height:100%; object-fit:fill; filter:none;
 user-select:none; pointer-events:none;
}
.minimal-root[data-view=island] .scene-markers {
 inset:0; width:100%; height:100%; aspect-ratio:auto; transform:none;
}
.minimal-root[data-view=island] .scene-veil { z-index:1; }
.minimal-root[data-view=island] .scene-header { padding-top:env(safe-area-inset-top,0px); }
@media (prefers-reduced-motion:reduce) {
 .minimal-root[data-view=island] .island-canvas { animation:none; }
}

.minimal-root[data-view=island] .island-canvas picture { display:block; width:100%; height:100%; }
.minimal-root[data-view=island] .map-pin { left:var(--pin-x); top:var(--pin-y); }
@media(orientation:portrait) {
 .minimal-root[data-view=island] .island-canvas { width:max(100vw,calc(100dvh * 2 / 3)); aspect-ratio:2/3; }
 .minimal-root[data-view=island] .map-pin { left:var(--portrait-x); top:var(--portrait-y); }
}

@media(orientation:portrait) {
 .minimal-root[data-view=island] .map-pin { width:44px; height:58px; padding:0 2px 4px; }
 .minimal-root[data-view=island] .pin-face,
 .minimal-root[data-view=island] .map-pin .pin-shape { width:40px; height:54px; }
 .minimal-root[data-view=island] .pin-glyph { top:20px; }
 .minimal-root[data-view=island] .pin-glyph svg { width:16px; height:16px; }
}

/* Oversized scenery must never turn the viewport into a focus-scroll container. */
.minimal-root[data-view=island],
.minimal-root[data-view=island] .world { overflow:clip; }
/* Only visible header controls intercept input; transparent gaps pass through to pins. */
.minimal-root[data-view=island] .scene-header { pointer-events:none; }
.minimal-root[data-view=island] .scene-left,
.minimal-root[data-view=island] .scene-tools { pointer-events:auto; }
/* The island has a single fixed settings anchor; keep its panel in the viewport
   during content replacement, image decode and orientation changes. */
.minimal-root[data-view=island] .floating-panel {
 position:absolute; left:auto!important; right:24px!important; top:74px!important;
 max-height:calc(100dvh - 98px)!important;
}
@media(max-width:650px) {
 .minimal-root[data-view=island] .floating-panel { right:12px!important; top:64px!important; max-height:calc(100dvh - 80px)!important; }
}

/* Wider framing preserves the mountain and shore without the old square zoom. */
@media(min-aspect-ratio:2/1) {
 .minimal-root[data-view=island] .island-canvas { width:max(100vw,calc(100dvh * 1586 / 992)); aspect-ratio:1586/992; top:40%; transform:translate(-50%,-40%); }
 .minimal-root[data-view=island] .map-pin { left:var(--wide-x); top:var(--wide-y); }
}
