:root{--navy: #14397c;--navy-deep: #0b2a5e;--ink: #122441;--muted: #5a7188;--bg: #f3f8fd;--card: #ffffff}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--ink);overscroll-behavior:none}.glass{background:#ffffff29;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.35);box-shadow:0 6px 24px #0000002e;color:#fff}.glass-light{background:#ffffffa6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(20,57,124,.12);box-shadow:0 4px 18px #12244114}.boot{position:fixed;inset:0;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(180deg,#eaf4fd,#d8ebfa 60%,#c2e0f6)}.boot-logo{font-size:3.4rem;animation:bob 2.4s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-12px) rotate(3deg)}}.boot-title{margin-top:8px;font-size:1.6rem;letter-spacing:-.02em;color:var(--navy-deep)}.boot-wave{display:flex;gap:6px;margin-top:22px}.boot-wave i{width:9px;height:9px;border-radius:50%;background:var(--navy);opacity:.85;animation:wave 1.1s ease-in-out infinite}.boot-wave i:nth-child(2){animation-delay:.1s}.boot-wave i:nth-child(3){animation-delay:.2s}.boot-wave i:nth-child(4){animation-delay:.3s}.boot-wave i:nth-child(5){animation-delay:.4s}@keyframes wave{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.boot-line{margin-top:20px;color:var(--muted);font-size:.92rem;min-height:1.4em}.boot-line.swap{animation:lineIn .45s ease}@keyframes lineIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.boot-bubbles span{position:absolute;bottom:-30px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fffffff2,#a0cdf573);border:1px solid rgba(20,57,124,.1);animation:boot-rise linear infinite}.boot-bubbles span:nth-child(1){left:6%;width:12px;height:12px;animation-duration:9s}.boot-bubbles span:nth-child(2){left:16%;width:18px;height:18px;animation-duration:12s;animation-delay:-3s}.boot-bubbles span:nth-child(3){left:27%;width:8px;height:8px;animation-duration:14s;animation-delay:-7s}.boot-bubbles span:nth-child(4){left:38%;width:15px;height:15px;animation-duration:10s;animation-delay:-2s}.boot-bubbles span:nth-child(5){left:50%;width:10px;height:10px;animation-duration:13s;animation-delay:-5s}.boot-bubbles span:nth-child(6){left:61%;width:20px;height:20px;animation-duration:9.5s;animation-delay:-1s}.boot-bubbles span:nth-child(7){left:72%;width:9px;height:9px;animation-duration:15s;animation-delay:-8s}.boot-bubbles span:nth-child(8){left:81%;width:14px;height:14px;animation-duration:11s;animation-delay:-4s}.boot-bubbles span:nth-child(9){left:90%;width:11px;height:11px;animation-duration:12.5s;animation-delay:-6s}.boot-bubbles span:nth-child(10){left:96%;width:7px;height:7px;animation-duration:16s;animation-delay:-10s}@keyframes boot-rise{to{transform:translateY(-110vh) translate(24px);opacity:0}}.boot-error{display:grid;place-items:center;height:100%;text-align:center;color:var(--muted);line-height:2}.gate{min-height:100%;display:grid;place-items:center;background:linear-gradient(180deg,#eaf4fd,#cfe6f8);padding:24px}.gate-card{background:var(--card);border-radius:22px;padding:42px 36px;max-width:420px;text-align:center;border:1px solid rgba(20,57,124,.1);box-shadow:0 18px 50px #12244124}.gate-icon{font-size:3rem}.gate-card h1{color:var(--navy-deep);font-size:1.4rem;margin:12px 0 10px}.gate-card p{color:var(--muted);font-size:.95rem}.gate-card code{display:block;margin:18px 0;padding:12px;background:#eef4fb;border-radius:10px;color:var(--navy);font-size:.9rem;word-break:break-all;overflow-wrap:anywhere}.gate-back{color:var(--muted);font-size:.88rem;text-decoration:none}.home{max-width:560px;margin:0 auto;padding:0 16px 40px}.app-header{display:flex;justify-content:space-between;align-items:center;padding:18px 2px 4px}.app-logo{font-weight:700;color:var(--navy-deep);font-size:1.05rem}.app-landing-link{color:var(--muted);font-size:.85rem;text-decoration:none}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#14397c14;padding:4px;border-radius:14px;margin:14px 0 18px}.seg{padding:11px;border:none;border-radius:11px;cursor:pointer;background:transparent;color:var(--muted);font-size:.95rem;font-weight:600;transition:background .15s,color .15s}.seg.active{background:var(--navy);color:#fff;box-shadow:0 4px 14px #14397c4d}.panel-card{background:var(--card);border-radius:20px;padding:28px 22px;border:1px solid rgba(20,57,124,.08);box-shadow:0 8px 30px #12244112;text-align:center}.panel-card h2{color:var(--navy-deep);font-size:1.25rem;margin-bottom:8px}.panel-card p{color:var(--muted);font-size:.92rem}.panel-hint{margin-top:10px;font-size:.78rem!important}.live-art{position:relative;font-size:2.6rem;margin-bottom:14px}.live-rings{position:absolute;left:50%;top:58%;pointer-events:none}.live-rings i{position:absolute;left:0;top:0;width:14px;height:14px;border:2px solid rgba(20,57,124,.4);border-radius:50%;transform:translate(-50%,-50%);animation:ping 2.4s ease-out infinite}.live-rings i:nth-child(2){animation-delay:.8s}.live-rings i:nth-child(3){animation-delay:1.6s}@keyframes ping{0%{transform:translate(-50%,-50%) scale(1);opacity:.8}to{transform:translate(-50%,-50%) scale(7);opacity:0}}.primary-btn{display:block;width:100%;margin-top:18px;padding:15px;font-size:1rem;font-weight:700;background:var(--navy);color:#fff;border:none;border-radius:14px;cursor:pointer;box-shadow:0 8px 24px #14397c4d}.primary-btn:disabled{opacity:.6}.primary-btn:active{background:var(--navy-deep)}.search-wrap{position:sticky;top:10px;z-index:5}.search-input{width:100%;padding:14px 18px;border-radius:14px;font-size:.95rem;color:var(--ink);border:1px solid rgba(20,57,124,.12);outline:none}.search-input:focus{border-color:var(--navy)}.scene-list{display:grid;gap:10px;margin-top:14px}.scene-card{display:flex;align-items:center;gap:14px;text-align:left;background:var(--card);border-radius:16px;padding:14px 16px;border:1px solid rgba(20,57,124,.08);cursor:pointer;box-shadow:0 4px 16px #1224410f;transition:transform .12s;font:inherit;color:inherit}.scene-card:active{transform:scale(.98)}.scene-emoji{font-size:1.7rem}.scene-meta{flex:1;display:grid;gap:1px}.scene-meta strong{color:var(--navy-deep)}.scene-meta small{color:var(--muted);font-size:.8rem}.scene-tags{color:#6c9bd1!important}.scene-go{color:var(--navy);font-weight:700}.empty{text-align:center;color:var(--muted);padding:30px 0}.toast{position:fixed;left:50%;bottom:36px;transform:translate(-50%,20px);max-width:86vw;padding:14px 20px;border-radius:14px;font-size:.92rem;z-index:200;opacity:0;background:#0b2a5ec7;transition:opacity .35s,transform .35s;text-align:center}.toast.show{opacity:1;transform:translate(-50%)}.viewer-wrap{position:fixed;inset:0;overflow:hidden;background:#06243a}.viewer-wrap canvas{position:absolute;inset:0;touch-action:none}.ar-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.ar-canvas,.virtual-canvas{z-index:1}.viewer-topbar{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;gap:12px;padding:max(10px,env(safe-area-inset-top)) 12px 10px}.back-btn{width:42px;height:42px;border-radius:50%;border:none;font-size:1.1rem;cursor:pointer}.viewer-title{flex:1;font-size:.9rem;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.5)}.live-toggle{font-size:.85rem;display:flex;align-items:center;gap:5px;padding:8px 13px;border-radius:999px}.gyro-btn{width:42px;height:42px;border-radius:50%;border:none;font-size:1.1rem;cursor:pointer}.gyro-btn.on{background:#38bdf873}.viewer-status{position:absolute;bottom:max(12px,env(safe-area-inset-bottom));left:0;right:0;text-align:center;font-size:.8rem;color:#eaf6ff;text-shadow:0 1px 4px rgba(0,0,0,.6);z-index:10;pointer-events:none}.vsearch{position:absolute;z-index:15;top:calc(max(10px,env(safe-area-inset-top)) + 54px);left:12px;right:12px;border-radius:16px;padding:4px}.vsearch input{width:100%;padding:11px 14px;border:none;outline:none;background:transparent;color:#fff;font-size:.92rem}.vsearch input::placeholder{color:#ffffffbf}.vsearch-results{max-height:38vh;overflow-y:auto}.vsearch-item{display:block;width:100%;text-align:left;padding:11px 14px;background:transparent;border:none;border-top:1px solid rgba(255,255,255,.18);color:#fff;font-size:.92rem;cursor:pointer}.vsearch-item small{color:#ffffffb3;margin-left:6px}.vsearch-empty{padding:11px 14px;color:#ffffffb3;font-size:.88rem;border-top:1px solid rgba(255,255,255,.18)}.splat-progress{position:absolute;z-index:14;left:50%;top:46%;transform:translate(-50%,-50%);width:min(280px,70vw);padding:16px 18px 14px;border-radius:16px;text-align:center;font-size:.85rem;overflow:hidden}.splat-progress-bar{position:absolute;left:0;top:0;bottom:0;width:0%;background:#38bdf847;transition:width .3s}.splat-progress span{position:relative}.joystick{position:absolute;bottom:max(44px,env(safe-area-inset-bottom));left:24px;width:122px;height:122px;border-radius:50%;z-index:20;touch-action:none;background:#ffffff1f;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1.5px solid rgba(255,255,255,.35);box-shadow:0 8px 28px #00000040,inset 0 1px #fff6}.joystick-knob{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:50px;height:50px;border-radius:50%;pointer-events:none;background:#ffffff59;backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.55);box-shadow:0 4px 14px #00000040}.vert-buttons{position:absolute;bottom:max(44px,env(safe-area-inset-bottom));right:24px;display:flex;flex-direction:column;gap:10px;z-index:20}.vert-btn{width:56px;height:56px;border-radius:50%;border:none;font-size:1.15rem;cursor:pointer;touch-action:none}.move-guide{position:absolute;z-index:30;left:50%;top:50%;transform:translate(-50%,-50%);padding:26px 30px;border-radius:22px;text-align:center;transition:opacity .4s,transform .4s}.move-guide.hide{opacity:0;transform:translate(-50%,-46%)}.move-guide strong{display:block;font-size:1.1rem;margin-top:12px}.move-guide p{font-size:.85rem;margin-top:5px;color:#ffffffd9}.move-guide small{display:block;margin-top:10px;font-size:.7rem;color:#fff9}.feet{position:relative;height:56px;width:64px;margin:0 auto}.foot{position:absolute;width:16px;height:30px;border-radius:50% 50% 46% 46%;background:#ffffffe6;box-shadow:0 0 #fff0}.foot:after{content:"";position:absolute;top:-7px;left:3px;width:10px;height:6px;border-radius:50%;background:#ffffffe6}.foot-l{left:10px;transform:rotate(-8deg);animation:step-l 1.4s ease-in-out infinite}.foot-r{right:10px;transform:rotate(8deg);animation:step-r 1.4s ease-in-out infinite}@keyframes step-l{0%,to{transform:rotate(-8deg) translateY(0);opacity:1}25%{transform:rotate(-8deg) translateY(-12px);opacity:.55}50%{transform:rotate(-8deg) translateY(0);opacity:1}}@keyframes step-r{0%,50%,to{transform:rotate(8deg) translateY(0);opacity:1}75%{transform:rotate(8deg) translateY(-12px);opacity:.55}}
