:root{--bg:#0b0b12;--fg:#f4f4fa;--accent:#6c8cff}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--fg);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body{-webkit-tap-highlight-color:transparent;overflow:hidden}.ar-root,.ar-container{position:fixed;inset:0}.ar-container video,.ar-container canvas{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.overlay{pointer-events:none;padding:calc(env(safe-area-inset-top,0px) + 16px) 16px calc(env(safe-area-inset-bottom,0px) + 16px);flex-direction:column;justify-content:space-between;display:flex;position:fixed;inset:0}.overlay-top{text-shadow:0 1px 6px #0009;flex-direction:column;gap:2px;display:flex}.brand{font-size:18px;font-weight:700}.brand-sub{opacity:.85;font-size:13px}.hint{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:0 24px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hint p{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#00000073;border-radius:999px;margin:0;padding:8px 14px;font-size:15px}.hint.error p{background:#961e28a6}.reticle{aspect-ratio:1;border:2px solid #ffffffd9;border-radius:18px;width:min(60vw,220px);animation:1.8s ease-in-out infinite pulse;box-shadow:0 0 0 9999px #00000038}@keyframes pulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.spinner{border:3px solid #ffffff40;border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.overlay-bottom{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.chip{pointer-events:auto;color:var(--fg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1f;border:1px solid #ffffff2e;border-radius:999px;padding:8px 14px;font-size:13px;text-decoration:none}.chip:active{transform:scale(.97)}.btn{pointer-events:auto;cursor:pointer;color:var(--fg);background:var(--accent);border:0;border-radius:10px;padding:10px 16px;font-size:14px}.fallback{flex-direction:column;display:flex;position:fixed;inset:0}.fallback-canvas{flex:auto;min-height:0}.fallback-info{padding:18px 20px calc(env(safe-area-inset-bottom,0px) + 18px)}.fallback-info h1{margin:0 0 2px;font-size:22px}.muted{opacity:.8;margin:0 0 10px;font-size:14px}.note{opacity:.85;background:#ffffff14;border-radius:10px;padding:8px 12px;font-size:13px}.links{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}
