:root{font-family:Arial,sans-serif;color:#f6f2ea;background:#111315}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{height:100dvh;touch-action:none}#app{position:fixed;inset:0;width:100%;height:100dvh;overflow:hidden}#camera,#scene{position:absolute;inset:0;display:block;width:100%;height:100%}#camera{z-index:0;object-fit:cover;background:#111315}#scene{z-index:1}.gate{position:fixed;z-index:2;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:30px;background:#11131585;transition:opacity .18s ease}.gate.hidden{opacity:0;pointer-events:none}.loading,.hint,.status{margin:0;text-align:center;font-size:14px;line-height:1.5;display:none}.slogan{margin:0;text-align:center;font-size:clamp(20px,10vw,30px);font-weight:800;letter-spacing:.08em;line-height:1.35;top:30vh;position:absolute}.hint{color:#c8c7c2;max-width:250px}.hint.error{color:#ffd7d5;max-width:320px;font-size:15px}button{appearance:none;border:1px solid #ee5146;background:#d93d33;color:#fff;min-width:106px;min-height:44px;padding:0 22px;border-radius:4px;font:inherit;font-weight:700;font-size:1.5em;position:absolute;top:40vh}button:disabled{opacity:.45}.status{position:fixed;z-index:2;bottom:max(18px,env(safe-area-inset-bottom));left:20px;right:20px;color:#b7c7bc;pointer-events:none}.lil-gui.root{--background-color: #202322;--widget-color: #303735;--hover-color: #3d4843;--focus-color: #d93d33}.sensor-dialog{position:fixed;z-index:3;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;background:#111315b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.sensor-dialog[hidden]{display:none}.sensor-dialog-card{width:min(320px,100%);padding:26px 22px 20px;border-radius:16px;background:#1c1f21;border:1px solid rgba(255,255,255,.12);text-align:center;box-shadow:0 18px 50px #00000073}.sensor-dialog-icon{font-size:40px;line-height:1;margin-bottom:12px}.sensor-dialog-card h2{margin:0 0 10px;font-size:19px;font-weight:800;letter-spacing:.04em}.sensor-dialog-card p{margin:0 0 20px;font-size:14px;line-height:1.6;color:#c8c7c2}.sensor-dialog-card button{position:static;display:block;width:100%;margin:0 0 10px;font-size:1.1em}.sensor-dialog-card button:last-child{margin-bottom:0}.sensor-dialog-card button.secondary{background:transparent;border-color:#ffffff47;color:#e8e5de;min-height:42px;font-size:.95em}
