/* Match the original mirror's Arial, forest/earth palette, and control shapes. */
html,body,#root{margin:0;width:100%;height:100%;background:#080c09;color:#f5ddb3;font-family:Arial,Helvetica,sans-serif}.public-mirror,.public-mirror .live-mirror-stage{background:#080c09}.back-artwork{position:absolute;left:max(22px,env(safe-area-inset-left));top:max(22px,env(safe-area-inset-top));z-index:20;font:12px Arial,sans-serif;background:#172b20e8;color:#ffd377;padding:10px 14px;border:1px solid #78583f;border-radius:6px;text-decoration:none}.public-start{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;background:#111a14ed;padding:90px 25px 35px;overflow-y:auto}.public-start h1{font:800 clamp(30px,6vw,48px)/1.15 Arial,Helvetica,sans-serif;margin:22px 0;color:#f5ddb3;max-width:100%}.public-start h1 em{font-style:normal;color:#f5ddb3}.public-kicker{font:11px Arial,sans-serif;letter-spacing:.08em;color:#cdb895}.public-start>p{font-size:16px;line-height:1.6;max-width:440px;margin:0 0 20px}.public-start .public-small{font-size:14px;color:#cdb895;margin:20px 0 0}.enter-camera{border:1px solid #f28b3e;border-radius:6px;background:#f28b3e;color:#241a13;padding:14px 28px;font-size:17px;margin:10px 0;min-height:52px}.enter-camera:disabled{opacity:.48}.without-camera{font-size:13px;color:#c997eb;margin:22px 0}.public-start .public-status{font-size:12px;color:#cdb895}.visitor-controls{position:absolute;bottom:max(25px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;flex-wrap:wrap;justify-content:center;gap:6px;width:max-content;max-width:94%;z-index:20;padding:7px;background:#172b20e8;border:1px solid #78583f;border-radius:14px}.visitor-controls button{background:transparent;color:#ffd377;border:0;border-radius:9px;padding:12px;font-size:13px}.visitor-controls button:active{background:#603149}.visitor-guide,.visitor-hint{position:absolute;z-index:30;background:#233d2cf5;color:#f5ddb3;border:1px solid #ffd377;border-radius:12px;left:5%;right:5%;bottom:100px;padding:24px;max-width:560px;margin:auto;font-size:14px;line-height:1.6}.visitor-guide h2{font-size:23px}.visitor-guide>button{float:right;background:transparent;color:#ffd377;border:0;font-size:24px}.visitor-hint button{margin-left:12px}.public-mirror .recording-toolbar,.public-mirror .live-mirror-recording,.public-mirror .video-recording{top:75px;bottom:auto}button:focus-visible,a:focus-visible{outline:2px solid #c997eb;outline-offset:4px}@media(max-height:650px){.public-start{justify-content:flex-start}.public-start h1{font-size:32px;margin:16px 0}.without-camera{margin:16px 0}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.public-start{isolation:isolate;background:#201b17}.ar-start-turntable{position:absolute;inset:0;z-index:-1;pointer-events:none}.ar-start-turntable img{display:block;width:100%;height:100%;object-fit:contain}.public-start h1,.public-start .public-status{text-shadow:0 2px 10px #160f0e,0 0 22px #160f0e}

/* Keep startup feedback centered and readable over the armor preview. */
.public-start.is-starting{justify-content:safe center}
.is-starting .ar-start-turntable{opacity:.25}
.camera-startup{box-sizing:border-box;width:min(100%,380px);padding:28px 24px;background:#172b20f5;border:1px solid #78583f;border-radius:14px}
.camera-startup h2{font:600 26px/1.2 var(--font-ui,Arial,sans-serif);margin:0 0 22px;color:#f5ddb3}
.camera-startup-progress{display:block;width:100%;height:7px;border:0;border-radius:8px;overflow:hidden;appearance:none;background:#78583f;accent-color:#f28b3e}
.camera-startup-progress::-webkit-progress-bar{background:#78583f;border-radius:8px}
.camera-startup-progress:indeterminate{background:linear-gradient(90deg,#78583f 25%,#f28b3e 50%,#78583f 75%) 0 0/200% 100%;animation:camera-startup-loading 1.6s linear infinite}
.camera-startup-progress:indeterminate::-webkit-progress-bar{background:transparent}
.camera-startup-stage{font-size:16px;line-height:1.5;min-height:3em;margin:20px 0 10px;color:#ffd377}
.camera-startup-note{font-size:14px;line-height:1.5;color:#cdb895;margin:12px 0}
.cancel-camera{min-height:44px;margin-top:8px;padding:10px 24px;border:1px solid #78583f;border-radius:6px;background:transparent;color:#f5ddb3;font-size:16px}
.public-start .camera-startup-error{max-width:400px;padding:14px 18px;background:#172b20f5;border:1px solid #ffb5cf;border-radius:8px;color:#ffb5cf;font-size:14px;line-height:1.5}
@keyframes camera-startup-loading{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.camera-startup-progress:indeterminate{animation:none}}
.visitor-guide{box-sizing:border-box;bottom:120px;max-height:calc(100dvh - 210px);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;text-align:left}
.visitor-guide>button{position:sticky;top:0;min-width:44px;min-height:44px;background:#233d2c;border-radius:6px;cursor:pointer}
.visitor-guide h2{margin:0 45px 16px 0}.visitor-guide h3{font-size:17px;color:#ffd377;margin:22px 0 12px}
.gesture-guide{margin:0}.gesture-guide dt{font-weight:700;color:#ffd377;margin-top:16px}.gesture-guide dd{margin:4px 0 0;line-height:1.6}.visitor-guide p{line-height:1.6}

/* Compact gesture key beside the camera controls. */
.public-mirror .visitor-guide{bottom:155px;max-width:390px;max-height:calc(100dvh - 245px);padding:22px;background:#191919f5;color:#fff;border-color:#ffffff40;border-radius:18px}
.public-mirror .visitor-guide>button{background:#292929;color:#fff}
.public-mirror .visitor-guide h2{font-size:21px;margin-bottom:20px}
.public-mirror .gesture-guide>div{display:flex;align-items:baseline;gap:8px;margin:12px 0;font-size:14px}
.public-mirror .gesture-guide dt{font-weight:400;color:#fff;margin:0;white-space:nowrap}
.public-mirror .gesture-guide dd{margin:0;line-height:1.4;color:#d0d0d0}
.public-mirror .gesture-guide dd:before{content:"= ";color:#888}

.public-mirror .live-mirror-stage{touch-action:pan-y}.public-mirror .render-host{touch-action:none}

/* Keep live rendering and recording mounted while all chrome is hidden. */
.public-mirror.camera-clean .live-mirror-stage > :not(.render-host){display:none!important}
.public-mirror.camera-clean .render-host,.public-mirror.camera-clean .render-host canvas{cursor:none!important}
