@font-face{font-family:Anton;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/anton.woff2) format("woff2")}@font-face{font-family:Bangers;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/bangers.woff2) format("woff2")}@font-face{font-family:Pacifico;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/pacifico.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/playfair-display-400.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/playfair-display.woff2) format("woff2")}@font-face{font-family:Cinzel;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/cinzel-400.woff2) format("woff2")}@font-face{font-family:Cinzel;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/cinzel.woff2) format("woff2")}@font-face{font-family:Caveat;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/caveat-400.woff2) format("woff2")}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/caveat.woff2) format("woff2")}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/space-mono-400.woff2) format("woff2")}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-mono.woff2) format("woff2")}:root{--bg: #ffffff;--bg-soft: #f5f6fa;--ink: #14161f;--ink-soft: #3c4152;--muted: #6b7186;--line: #e7e9f2;--line-strong: #d3d7e5;--accent: #2fcbb0;--accent-ink: #0ea08d;--accent-wash: #e5faf5;--on-accent: #ffffff;--danger: #e23d5c;--shadow-sm: 0 1px 2px rgba(20, 22, 31, .06), 0 2px 8px rgba(20, 22, 31, .05);--shadow-md: 0 6px 24px rgba(20, 22, 31, .12);--radius: 14px;color-scheme:light;--aurora: linear-gradient(110deg, #2fcbb0, #4d86ff 28%, #b25bff 55%, #ff5fb0 78%, #ffbf3d);--aurora-btn: linear-gradient(110deg, #2fcbb0, #4d86ff 35%, #b25bff 70%, #ff5fb0);--aurora-conic: conic-gradient(from 210deg at 50% 50%, #34d9bd, #4d86ff, #b25bff, #ff5fb0, #ffbf3d, #34d9bd);--spark: #ffbf3d;--glow-aurora: 0 8px 26px rgba(77, 134, 255, .32), 0 2px 10px rgba(255, 95, 176, .22)}*{box-sizing:border-box}html,body{margin:0;padding:0}[hidden]{display:none!important}body.viewer-body{overflow:hidden;height:100dvh;background:#000;color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased;touch-action:manipulation;-webkit-user-select:none;user-select:none}.error-diag,#error-message{-webkit-user-select:text;user-select:text}h1,h2{line-height:1.1;margin:0;letter-spacing:-.02em;font-weight:800}#ar-container{position:fixed;left:0;top:0;width:100vw;height:100vh;height:100lvh;background:#000}#camera-feed{position:absolute}.overlay{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow-y:auto;padding:24px 24px calc(env(safe-area-inset-bottom,0px) + 16px);background:radial-gradient(560px 380px at 18% 8%,rgba(77,134,255,.12),transparent 60%),radial-gradient(640px 420px at 85% 92%,rgba(255,95,176,.1),transparent 60%),radial-gradient(480px 320px at 78% 18%,rgba(52,217,189,.1),transparent 60%),var(--bg-soft);z-index:10}.overlay:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.1;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E")}.overlay.transparent{background:none;pointer-events:none}.overlay.transparent:after{content:none}#start-overlay{justify-content:flex-start}.start-screen{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;max-width:340px;margin:auto}.art-frame{position:relative;display:block;border-radius:12px;background:#fff;padding:8px;box-shadow:var(--shadow-md)}.art-frame:not(.loaded){aspect-ratio:3 / 4}.art-frame:not(.loaded):before{content:"";position:absolute;inset:8px;border-radius:7px;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.8) 50%,transparent 70%) #e8eaf1;background-size:220% 100%;animation:art-shimmer 1.5s ease-in-out infinite}.art-frame.failed:before{animation:none}.art-frame img{display:block;width:100%;object-fit:contain;border-radius:6px;opacity:0;transition:opacity .4s ease}.art-frame.loaded:before{display:none}.art-frame.loaded img{opacity:1}@keyframes art-shimmer{0%{background-position:210% 0}to{background-position:-110% 0}}#thumb-frame{width:min(56vw,220px);rotate:-2deg;margin-bottom:6px}#thumb-frame img{max-height:38vh}.start-screen h1{font-size:1.5rem;overflow-wrap:anywhere}.app-only-thumb{display:block;width:min(60vw,220px);max-height:34vh;margin:0 auto 4px;object-fit:contain;border-radius:10px}.app-only-desktop{opacity:.75}#app-only-ar img{width:1px;height:1px;opacity:0;position:absolute;pointer-events:none}.start-screen .sub{margin:0;color:var(--muted);font-size:.95rem;text-wrap:balance}.start-btn{margin-top:14px;width:112px;height:112px;border-radius:50%;border:none;background:var(--aurora-conic);filter:saturate(1.08);color:var(--on-accent);font:inherit;font-size:1.15rem;font-weight:800;text-shadow:0 1px 6px rgba(20,22,31,.35);cursor:pointer;box-shadow:0 0 0 8px #4d86ff1a,0 14px 44px #4d86ff61;transition:transform .14s ease,opacity .14s ease;animation:start-ring 2.4s ease-out infinite}.start-btn:hover{transform:scale(1.04)}.start-btn:active{transform:scale(.98)}.start-btn:disabled{opacity:.55;cursor:progress;animation:none;transform:none}@keyframes start-ring{0%{box-shadow:0 0 0 8px #4d86ff1a,0 14px 44px #4d86ff61,0 0 #b25bff4d}70%{box-shadow:0 0 0 8px #4d86ff1a,0 14px 44px #4d86ff61,0 0 0 24px #b25bff00}to{box-shadow:0 0 0 8px #4d86ff1a,0 14px 44px #4d86ff61,0 0 #b25bff00}}.handoff{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:22px 30px;margin:10px 0 4px;width:100%;--h-cap: max(52vh, min(70vh, calc(100vh - 380px) ))}#handoff-frame{width:fit-content;flex:none;padding:0;background:transparent;border-radius:2px;box-shadow:none}#handoff-frame:not(.loaded){aspect-ratio:3 / 2}#handoff-frame img{width:min(min(56vw,820px),calc(var(--h-cap) * var(--ar, 1.5)));height:auto;border-radius:0}.handoff-qr{display:flex;flex-direction:column;align-items:center;gap:12px}.handoff-qr .qr-card{background:#fff;padding:10px;border-radius:14px;border:1px solid var(--line);box-shadow:var(--shadow-sm);display:grid;place-items:center}.handoff-qr canvas{display:block}.handoff-qr .qr-art-code{display:block;width:300px;height:300px}.handoff-qr .qr-card.has-art{padding:0;border-radius:0;overflow:hidden}@media (max-width: 720px){.handoff-qr .qr-art-code{width:min(80vw,300px);height:min(80vw,300px)}}.handoff-qr p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.5;text-align:center}.start-screen:has(.handoff:not([hidden])){max-width:min(1240px,96vw)}@media (min-width: 1560px){.start-screen:has(.handoff:not([hidden])){max-width:100%;width:100%}.handoff{position:relative;--art-w: min( calc(100vw - 728px) , calc(var(--h-cap) * var(--target-ar, 1.5)))}#handoff-frame img{width:var(--art-w)}.handoff-qr{position:absolute;right:calc((100vw - var(--art-w)) / 4 - 24px);top:50%;transform:translate(50%,-50%)}}#handoff-frame{cursor:zoom-in}#enlarge-btn{background:var(--bg);border-color:var(--line-strong);color:var(--ink)}#enlarge-btn:hover{background:#14161d0f;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.easel{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;background:#0a0c11;touch-action:none}.easel[hidden]{display:none}.easel-stage{flex:1;min-height:0;display:grid;grid-template:minmax(0,1fr) / minmax(0,1fr);place-items:center;overflow:hidden}.easel-stage img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:auto;transform-origin:center center;will-change:transform}.easel-stage.zoomed img{cursor:grab}.easel-stage.panning img{cursor:grabbing}.easel-bar{position:absolute;left:50%;bottom:18px;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:6px;border-radius:999px;background:#12161ed1;border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(8px)}.easel-btn{appearance:none;min-width:38px;height:34px;padding:0 10px;border:0;border-radius:999px;background:transparent;color:#e8ecf6;font:inherit;font-size:1rem;line-height:1;cursor:pointer}.easel-btn:hover{background:#ffffff1f}.easel-btn:disabled{opacity:.35;cursor:default}.easel-btn.wide{font-size:.86rem;padding:0 14px;background:#ffffff24}.easel-scale{min-width:62px;text-align:center;color:#aeb9d0;font-size:.82rem;font-variant-numeric:tabular-nums}.easel-hint{position:absolute;left:50%;top:14px;transform:translate(-50%);margin:0;padding:7px 14px;border-radius:999px;background:#12161eb8;color:#aeb9d0;font-size:.82rem;text-align:center;max-width:min(92vw,560px)}.easel-hint.warn{color:#ffd08a}@media (max-width: 560px){.easel-bar{bottom:10px}.easel-hint{font-size:.75rem;top:8px}}.start-status{min-height:1.2em;margin:2px 0 0;color:var(--muted);font-size:.9rem}.error-diag{margin:14px 0 0;max-width:340px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.7rem;line-height:1.5;color:var(--muted);word-break:break-word;opacity:.8}.aurora-badge{position:relative;display:inline-block;padding:.04em .16em;margin-right:.14em;line-height:1.08;border-radius:.34em}.aurora-badge:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:.08em;background:var(--aurora);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none}.perm-steps{list-style:none;margin:10px 0 4px;padding:0;display:flex;flex-direction:column;gap:12px;text-align:left}.perm-steps li{display:flex;align-items:center;gap:12px;font-size:.95rem;color:var(--ink-soft)}.perm-steps li span{flex:none;width:26px;height:26px;border-radius:50%;background:var(--ink);color:#fff;font-size:.8rem;font-weight:700;display:grid;place-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:10px;border:1px solid var(--line-strong);background:var(--bg);color:var(--ink);font:inherit;font-size:.95rem;font-weight:650;cursor:pointer;text-decoration:none;transition:transform .12s ease,background .12s ease,box-shadow .12s ease;white-space:nowrap}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn.primary{background:var(--aurora-btn);background-origin:border-box;color:var(--on-accent);border-color:transparent;box-shadow:var(--glow-aurora)}.btn.primary:hover{filter:saturate(1.18) brightness(1.05)}.btn.big{padding:14px 28px;font-size:1.05rem}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-soft)}.btn.ghost:hover{background:#14161d0f;color:var(--ink);transform:none;box-shadow:none}.btn.sm{padding:8px 14px;font-size:.85rem}.btn.sm svg{flex:none}.start-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 10px}.hud-btn{position:fixed;top:calc(14px + env(safe-area-inset-top));width:46px;height:46px;border-radius:50%;border:none;background:#ffffffeb;color:var(--ink);font-size:1.15rem;display:flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer;pointer-events:auto;box-shadow:var(--shadow-md);backdrop-filter:blur(4px)}.hud-btn.back{left:14px}.hud-btn.sound{right:14px}.hud-btn.capture{right:14px;top:calc(72px + env(safe-area-inset-top))}.hud-btn.tune{right:14px;top:calc(130px + env(safe-area-inset-top))}.hud-btn.capture:active{transform:scale(.94)}.hud-btn.capture.flash{background:#4ade80}.hud-btn svg{display:block;flex:none}.hud-btn.capture.recording{width:auto;min-width:46px;padding:0 14px;gap:7px;border-radius:23px;color:#fff}.hud-btn-text{font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums;line-height:1}.stats-pill{position:fixed;top:calc(14px + env(safe-area-inset-top));left:50%;transform:translate(-50%);margin:0;background:#ffffffe6;color:var(--ink-soft);border-radius:999px;padding:6px 14px;font-size:.75rem;font-variant-numeric:tabular-nums;white-space:nowrap;box-shadow:var(--shadow-sm);backdrop-filter:blur(4px);z-index:30}@media (max-width: 560px){.stats-pill{top:calc(72px + env(safe-area-inset-top));max-width:calc(100vw - 24px);overflow:hidden;text-overflow:ellipsis}}.pulse-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 #0bcabb99;animation:pulse 1.6s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 #0bcabb8c}70%{box-shadow:0 0 0 10px #0bcabb00}to{box-shadow:0 0 #0bcabb00}}.drawer{display:none;position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(100%,480px);background:var(--bg);border-radius:18px 18px 0 0;box-shadow:0 -8px 30px #14161d2e;pointer-events:auto;transition:transform .26s ease;z-index:12}.drawer.collapsed{transform:translate(-50%) translateY(calc(100% - 32px))}.drawer-handle{display:grid;place-items:center;width:100%;height:32px;border:none;background:none;cursor:pointer;padding:0}.drawer-handle span{width:44px;height:5px;border-radius:999px;background:var(--line-strong)}.drawer-body{display:flex;align-items:center;gap:14px;padding:0 18px calc(16px + env(safe-area-inset-bottom))}#drawer-thumb{width:62px;max-height:84px;object-fit:contain;border-radius:8px;border:1px solid var(--line);background:#fff;cursor:zoom-in}.card-zoom{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:24px;background:#0a0c14d1;backdrop-filter:blur(6px);cursor:zoom-out;animation:card-zoom-in .16s ease}.card-zoom img{max-width:92vw;max-height:82vh;border-radius:12px;background:#fff;padding:8px;box-shadow:0 24px 64px #0000008c}.card-zoom-hint{position:absolute;left:0;right:0;bottom:calc(22px + env(safe-area-inset-bottom));text-align:center;color:#ffffffd1;font-size:.85rem;pointer-events:none}@keyframes card-zoom-in{0%{opacity:0}to{opacity:1}}.powered-by{flex:none;margin-top:18px;display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.8rem;font-weight:600;letter-spacing:.01em;text-decoration:none;opacity:.9;transition:opacity .12s ease}.powered-by:hover{opacity:1}.powered-by img{display:block;opacity:.9}.powered-by .brand-word{color:var(--ink);font-weight:700}.brand-lockup{display:block;height:52px;width:auto}.brand-lockup.sm{height:34px}.brand-lockup.xs{height:18px}.brand-dot{background:var(--aurora);-webkit-background-clip:text;background-clip:text;color:transparent}.share-modal{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:24px;background:#0a0c14b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:card-zoom-in .16s ease}.share-modal[hidden]{display:none}.share-card{position:relative;width:min(100%,340px);background:var(--bg);border-radius:20px;padding:28px 22px 22px;text-align:center;box-shadow:0 24px 64px #00000080}.share-card h2{font-size:1.2rem}.share-sub{color:var(--muted);font-size:.88rem;line-height:1.45;margin:8px 4px 18px}.share-close{position:absolute;top:12px;right:12px;width:32px;height:32px;display:grid;place-items:center;border:none;border-radius:999px;background:var(--bg-soft);color:var(--ink);font-size:.9rem;cursor:pointer}.share-close:hover{background:var(--line)}.share-qr{display:grid;place-items:center;width:max-content;margin:0 auto 18px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:14px}.share-qr canvas{display:block;width:196px;height:196px;border-radius:6px}.share-link-row{display:flex;gap:8px}.share-link-input{flex:1;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--bg-soft);color:var(--ink);font:inherit;font-size:.82rem}.share-copy-btn{padding:11px 18px;border:none;border-radius:11px;background:var(--ink);color:#fff;font:inherit;font-weight:650;white-space:nowrap;cursor:pointer;transition:transform .1s ease,background .12s ease}.share-copy-btn:active{transform:scale(.97)}.drawer-text{min-width:0}.drawer-text strong{display:flex;align-items:center;gap:8px;font-size:.95rem}.drawer-text span#drawer-name{display:block;color:var(--muted);font-size:.85rem;margin-top:2px;overflow-wrap:anywhere}.drawer-text span#build-tag{display:block;color:var(--muted);opacity:.45;font-size:.62rem;letter-spacing:.03em;margin-top:4px;user-select:all}.build-tag-start{display:block;text-align:center;color:var(--muted);opacity:.4;font-size:.62rem;letter-spacing:.04em;margin-top:6px;user-select:all}.scan-reticle{position:fixed;top:45%;left:50%;transform:translate(-50%,-50%);--r-ar: var(--target-ar, .714);width:min(70vw,320px,calc(min(56vh,460px) * var(--r-ar)));aspect-ratio:var(--r-ar);pointer-events:none;overflow:hidden;border-radius:16px;transition:opacity .24s ease}.scan-reticle span{position:absolute;width:34px;height:34px;border:3px solid rgba(255,255,255,.92)}.scan-reticle span:nth-child(1){top:0;left:0;border-right:0;border-bottom:0;border-top-left-radius:14px}.scan-reticle span:nth-child(2){top:0;right:0;border-left:0;border-bottom:0;border-top-right-radius:14px}.scan-reticle span:nth-child(3){bottom:0;right:0;border-left:0;border-top:0;border-bottom-right-radius:14px}.scan-reticle span:nth-child(4){bottom:0;left:0;border-right:0;border-top:0;border-bottom-left-radius:14px}.scan-line{position:absolute;left:6%;right:6%;height:2px;background:linear-gradient(90deg,transparent,#34d9bd 25%,#4d86ff 50%,#ff5fb0 75%,transparent);filter:drop-shadow(0 0 6px rgba(77,134,255,.8));animation:scan-sweep 2.4s cubic-bezier(.5,0,.5,1) infinite}@keyframes scan-sweep{0%{top:8%;opacity:0}15%{opacity:1}85%{opacity:1}to{top:92%;opacity:0}}.found-toast{position:fixed;top:45%;left:50%;transform:translate(-50%,-50%) scale(.9);display:flex;align-items:center;gap:8px;padding:10px 20px;border-radius:999px;background:#14161dd1;color:#fff;font-weight:700;font-size:1rem;box-shadow:var(--shadow-md);backdrop-filter:blur(6px);opacity:0;pointer-events:none;z-index:14;transition:opacity .24s ease,transform .26s cubic-bezier(.2,.9,.3,1.25)}.found-toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.found-toast .pb-mark{color:var(--spark);text-shadow:0 0 10px rgba(255,191,61,.55)}.tune-panel{position:fixed;top:calc(130px + env(safe-area-inset-top));right:14px;width:min(320px,calc(100vw - 28px));max-height:calc(100dvh - 200px);overflow-y:auto;background:#fffffff5;border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:14px;pointer-events:auto;box-shadow:var(--shadow-md);backdrop-filter:blur(8px);z-index:13}.tune-panel h2{font-size:1rem}.tune-presets{display:flex;gap:8px}.tune-presets .btn{flex:1;padding:6px 0;font-size:.85rem}.tune-panel label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--muted)}.tune-panel label em{font-style:normal;color:var(--ink);float:right}.tune-panel input[type=range]{width:100%;accent-color:var(--accent)}.tune-panel select{width:100%;padding:7px 10px;border-radius:8px;border:1px solid var(--line-strong);background:var(--bg);color:var(--ink);font:inherit;font-size:.85rem}.tune-panel .tune-check{flex-direction:row;align-items:center;gap:8px}.tune-panel .tune-check input{accent-color:var(--accent)}.spinner{display:inline-block;width:18px;height:18px;vertical-align:-3px;margin-right:6px;border:3px solid rgba(4,35,31,.25);border-top-color:var(--on-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.scan-line,.pulse-dot,.spinner,.start-btn{animation:none}.drawer,.found-toast{transition:none}}.adapting-pill{top:auto;bottom:calc(88px + env(safe-area-inset-bottom));transform:translate(-50%);font-weight:600;font-size:.85rem;padding:8px 16px;opacity:0;transition:opacity .3s ease}.adapting-pill.show{opacity:1;transform:translate(-50%)}.qr-banner{position:fixed;top:calc(12px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:10px;padding:10px 12px 10px 16px;border-radius:999px;background:#0c0c10eb;color:#fff;font:500 14px system-ui,sans-serif;box-shadow:0 8px 24px #0006}.qr-banner .qr-open{border:0;border-radius:999px;padding:7px 14px;background:#2fcbb0;color:#04211b;font:700 13px system-ui,sans-serif;cursor:pointer}.qr-banner .qr-x{border:0;background:none;color:#fff9;font-size:14px;cursor:pointer;padding:4px 6px}@media (max-height: 520px){.overlay{padding:16px 24px calc(env(safe-area-inset-bottom,0px) + 12px)}.start-screen{gap:10px}#thumb-frame{width:110px;margin-bottom:0}#thumb-frame img{max-height:24vh}.start-btn{width:84px;height:84px;font-size:1rem;margin-top:6px}}
