:root{--color-bg:#fff;--color-surface:#f8f8fa;--color-border:#e4e4e7;--color-text:#18181b;--color-text-muted:#52525b;--color-primary:#6d28d9;--color-primary-hover:#5b21b6;--color-on-primary:#fff;--color-free:#15803d;--color-free-bg:#dcfce7;--color-paid:#b45309;--color-paid-bg:#fef3c7;--color-error:#dc2626;--radius-sm:6px;--radius-md:12px;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-bg:#0a0a0b;--color-surface:#18181b;--color-border:#27272a;--color-text:#fafafa;--color-text-muted:#a1a1aa;--color-primary:#a78bfa;--color-primary-hover:#c4b5fd;--color-on-primary:#1e1b2e;--color-free:#4ade80;--color-free-bg:#4ade801f;--color-paid:#fbbf24;--color-paid-bg:#fbbf241f;--color-error:#f87171}}:root[data-scheme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#0a0a0b;--color-surface:#18181b;--color-border:#27272a;--color-text:#fafafa;--color-text-muted:#a1a1aa;--color-primary:#a78bfa;--color-primary-hover:#c4b5fd;--color-on-primary:#1e1b2e;--color-free:#4ade80;--color-free-bg:#4ade801f;--color-paid:#fbbf24;--color-paid-bg:#fbbf241f;--color-error:#f87171}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);word-break:keep-all;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.6}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.gallery{max-width:1200px;margin:0 auto;padding:32px 16px 64px}.gallery__header{margin-bottom:32px}.gallery__bar{justify-content:space-between;align-items:center;margin-bottom:40px;display:flex}.brand-wordmark{letter-spacing:-.02em;background:linear-gradient(90deg,#b9f083,#76be2e,#458b1a);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:24px;font-weight:700}.brand-wordmark__three{font-size:.729em}.gallery__header h1{margin:0 0 8px;font-size:28px;line-height:1.25}.gallery__lead{color:var(--color-text-muted);margin:0}.gallery__qr-note{color:var(--color-text-muted);margin:8px 0 0;font-size:13px;display:none}.gallery-qr{border-radius:var(--radius-md);background:#fff;align-self:flex-start;margin-top:8px;padding:12px;line-height:0;display:none}@media (hover:hover) and (pointer:fine){.gallery__qr-note{display:block}.gallery-qr{display:inline-block}}.showcase{margin:0 0 20px}.showcase-card{border-radius:var(--radius-md);color:#fff;background:linear-gradient(135deg,#0d2137 0%,#163a5f 70%,#1d4d33 100%);border:1px solid #a3e63573;flex-direction:column;gap:6px;padding:20px;text-decoration:none;display:flex}.showcase-card__badge{color:#0d2137;letter-spacing:.06em;text-transform:uppercase;background:#a3e635;border-radius:999px;align-self:flex-start;padding:2px 10px;font-size:11px;font-weight:800}.showcase-card__title{margin:4px 0 0;font-size:20px;font-weight:800}.showcase-card__lead{color:#d4d4d8;max-width:560px;margin:0;font-size:13px}.showcase-card__cta{color:#a3e635;margin-top:6px;font-size:14px;font-weight:700}.docent-hud{left:50%;bottom:max(18px, env(safe-area-inset-bottom));pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:min(92vw,480px);display:flex;position:absolute;transform:translate(-50%)}.docent-hud--fab-gutter{width:min(100vw - 132px,480px)}.vlaunch-viewer #root[style*="display: none"]{visibility:hidden;display:block!important}.vlaunch-viewer #root[style*="display: none"] .docent-hud,.vlaunch-viewer #root[style*="display: none"] model-viewer::part(default-exit-webxr-ar-button){visibility:visible}.docent-subtitle{border-radius:var(--radius-md);color:#fff;text-align:center;background:#000000b3;margin:0;padding:10px 16px;font-size:15px;line-height:1.45}.docent-note{color:#fde68a;border-radius:var(--radius-md);background:#000000b3;margin:0;padding:4px 10px;font-size:12px}.docent-ai-voice{color:#ffffffd9;background:#000000b3;border-radius:999px;margin:0;padding:2px 8px;font-size:11px;line-height:16px}.docent-controls{pointer-events:auto;gap:8px;display:flex}.docent-btn{color:#0d2137;cursor:pointer;background:#a3e635;border:none;border-radius:999px;min-height:44px;padding:10px 22px;font-size:15px;font-weight:800;box-shadow:0 4px 14px #00000059}.docent-credit{color:#a1a1aa;margin:4px 0 0;font-size:10px}.docent-btn--stop{color:#fff;background:#dc2626}.attribution-line{z-index:7;color:#ffffffd9;text-align:center;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;background:#0d2137bf;border-radius:999px;max-width:min(100vw - 96px,640px);margin:0;padding:3px 10px;font-size:12px;line-height:1.4;position:fixed;left:50%;overflow:hidden;transform:translate(-50%)}.attribution-line--bottom{bottom:calc(10px + env(safe-area-inset-bottom))}.attribution-line--top{top:calc(10px + env(safe-area-inset-top))}body:has(.viewer-fabs--top) .attribution-line--top{max-width:min(100vw - 132px,640px)}@media (width<=480px){body:has(.viewer-fabs--top) .attribution-line--top{white-space:normal;-webkit-line-clamp:2;line-clamp:2;border-radius:10px;-webkit-box-orient:vertical;width:max-content;display:-webkit-box}}.capability-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.capability-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);flex-direction:column;align-items:flex-start;gap:8px;padding:20px;display:flex}.capability-card__name{margin:0;font-size:18px}.capability-card__type{color:var(--color-text-muted);margin:0;font-size:14px}.tier{border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600}.tier--free{color:var(--color-free);background:var(--color-free-bg)}.tier--paid{color:var(--color-paid);background:var(--color-paid-bg)}.capability-card__cta{color:var(--color-primary);margin-top:auto;padding-top:8px;font-weight:600;text-decoration:none}.capability-card__cta:hover{color:var(--color-primary-hover)}.capability-card__soon{color:var(--color-text-muted);margin-top:auto;padding-top:8px;font-size:14px}.splash{min-height:100svh;padding:24px;padding-top:max(24px, var(--campaign-top-reserve,0px));text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.splash__title{margin:0;font-size:28px}.splash__subtitle{color:var(--color-text-muted);max-width:32ch;margin:0}.splash__cta{min-height:48px;color:var(--color-on-primary);background:var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;border:none;margin-top:8px;padding:0 28px;font-size:16px;font-weight:600}.splash__cta:hover{background:var(--color-primary-hover)}.splash__cta:disabled{opacity:.55;cursor:default}.splash__cta:disabled:hover{background:var(--color-primary)}.splash__alt-link{min-height:44px;color:var(--color-primary);text-underline-offset:3px;text-wrap:balance;word-break:keep-all;align-items:center;margin-top:-8px;padding:0 8px;font-size:14px;font-weight:600;text-decoration:underline;display:inline-flex}a.splash__cta{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}a.splash__cta[aria-disabled=true]{opacity:.55;cursor:default}a.splash__cta[aria-disabled=true]:hover{background:var(--color-primary)}button.splash__alt-link{cursor:pointer;background:0 0;border:0;font-family:inherit}button.splash__alt-link:disabled{opacity:.55;cursor:default}.splash__note{max-width:34ch;color:var(--color-text-muted);text-wrap:balance;word-break:keep-all;margin:-8px 0 0;font-size:13px}.splash__handoff{max-width:34ch;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);text-wrap:balance;word-break:keep-all;margin:0;padding:12px 16px;font-size:14px;line-height:1.5}:root:lang(en) .splash__handoff,:root:lang(en) .splash__note{word-break:normal}.splash__keep{white-space:nowrap}.splash--overlay{z-index:10;background:var(--color-bg);justify-content:flex-start;position:fixed;inset:0;overflow-y:auto}.splash--overlay:before,.splash--overlay:after{content:"";flex:none;min-height:40px}.splash--overlay:before{margin-top:auto}.splash--overlay:after{margin-bottom:auto}.splash__progress{background:var(--color-border);border-radius:999px;width:min(280px,70vw);height:6px;overflow:hidden}.splash__progress-bar{background:var(--color-primary);height:100%;transition:width .2s}.splash__progress--done{opacity:0;transition:opacity .4s .4s}.splash__badge{color:var(--color-text-muted);margin:0;font-size:12px}.splash__qr{border-radius:var(--radius-md);background:#fff;flex-direction:column;align-items:center;gap:8px;margin-top:8px;padding:12px;display:none}@media (hover:hover) and (pointer:fine){.splash__qr{display:flex}}.splash__qr-label{color:#52525b;margin:0;font-size:13px}.viewer-lang{color:var(--color-text-muted);align-items:center;gap:6px;display:inline-flex}.viewer-lang--float{position:absolute;top:16px;right:16px}.viewer-lang__globe{opacity:.7}.viewer-lang__select{cursor:pointer;color:inherit;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:0 0;padding:5px 8px;font-size:13px;font-weight:600}.viewer-lang__select:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}@media (pointer:coarse){.viewer-lang__select{min-height:44px}}.viewer{background:var(--color-bg);width:100%;height:100svh}.marker-stage{background:#000;position:fixed;inset:0;overflow:hidden}.marker-status{justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.marker-hint{left:50%;bottom:max(16px, env(safe-area-inset-bottom));border-radius:var(--radius-md);color:#fff;text-align:center;text-wrap:balance;background:#000000a6;flex-direction:column;align-items:center;gap:4px;width:max-content;max-width:min(100vw - 32px,360px);padding:10px 16px;font-size:14px;display:flex;position:fixed;transform:translate(-50%)}body:has(.viewer-fabs:not(.viewer-fabs--top)) .marker-hint:not(.marker-hint--inline){max-width:min(100vw - 132px,360px)}.marker-hint a{color:#ddd6fe;margin:-6px -2px;padding:6px 2px;font-weight:600;display:inline-block}.marker-hint__loading{color:#d4d4d8;font-size:12px}.marker-hint--inline{word-break:keep-all;width:auto;position:static;transform:none}.face-flip{right:14px;bottom:calc(max(16px, env(safe-area-inset-bottom)) + 72px);z-index:5;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;background:#1111118c;border:1px solid #ffffff59;border-radius:50%;width:44px;height:44px;font-size:20px;line-height:1;position:fixed}.face-flip:active{background:#111c}.viewer-fabs{left:14px;bottom:max(16px, env(safe-area-inset-bottom));z-index:6;flex-direction:column;gap:10px;display:flex;position:fixed}.viewer-fabs--right{left:auto;right:14px}.viewer-fab{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;background:#1111118c;border:1px solid #ffffff59;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:19px;font-weight:700;line-height:1;display:inline-flex}.viewer-fab:active{background:#111c}.gesture-coach{z-index:30;cursor:pointer;background:#0000008c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.gesture-coach__card{color:#fff;background:#111111eb;border-radius:16px;flex-direction:column;gap:14px;max-width:320px;padding:22px 24px;display:flex}.gesture-coach__row{align-items:center;gap:10px;margin:0;font-size:15px;line-height:1.4;display:flex}.gesture-coach__icon{text-align:center;flex:0 0 28px;font-size:22px}.gesture-coach__dismiss{color:#ffffffb8;min-height:44px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;align-self:center;margin:2px 0 0;padding:0 12px;font-size:12px}.gesture-coach__dismiss:focus-visible{outline-offset:2px;outline:2px solid #c4b5fd}.ar-gesture-hint{top:max(16px, env(safe-area-inset-top));z-index:6;color:#fff;text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#111111b8;border-radius:999px;flex-wrap:wrap;justify-content:center;gap:2px 10px;width:max-content;max-width:calc(100vw - 136px);margin:0;padding:8px 14px;font-size:12.5px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.ar-gesture-hint__part{white-space:nowrap}.face-flip-note{right:14px;bottom:calc(max(16px, env(safe-area-inset-bottom)) + 124px);z-index:5;border-radius:var(--radius-md);color:#fff;text-align:right;background:#111c;max-width:min(70vw,260px);margin:0;padding:8px 12px;font-size:12.5px;position:fixed}.face-preparing{word-break:keep-all;flex-direction:row;gap:10px;width:max-content;max-width:calc(100vw - 32px)}.face-preparing__spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;flex:none;width:16px;height:16px;animation:.9s linear infinite face-preparing-spin}@keyframes face-preparing-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.face-preparing__spinner{animation:none}}.marker-hint__retry{border-radius:var(--radius-md);color:#fff;cursor:pointer;background:#ffffff1f;border:1px solid #fff6;margin-top:4px;padding:6px 14px;font-size:13px;font-weight:600}.marker-hint__retry:active{background:#ffffff3d}.scene-media-btns{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px;display:flex}.scene-media-btn{color:#fff;cursor:pointer;background:#ffffff1f;border:1px solid #fff6;border-radius:999px;align-items:center;gap:6px;min-height:44px;padding:0 16px;font-size:14px;font-weight:700;display:inline-flex}.scene-media-btn:active{background:#ffffff3d}.scene-media-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.scene-media-float{top:calc(12px + env(safe-area-inset-top));left:calc(16px + env(safe-area-inset-left));right:calc(16px + env(safe-area-inset-right));z-index:5;pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute}.scene-media-float>*{pointer-events:auto}.scene-media-float .scene-media-btns{margin-top:0}.scene-media-float .scene-media-btn{background:#111111c7;border-color:#ffffff8c}.scene-media-float .scene-media-btn:active{background:#111111e6}.marker-guide{flex-direction:column;align-items:center;gap:8px;margin-top:4px;display:flex}.marker-guide img{object-fit:contain;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;width:96px;height:96px}.marker-guide p{color:var(--color-text-muted);margin:0;font-size:13px}.marker-guide-note{color:var(--color-text-muted);word-break:keep-all;margin:0;font-size:13px}model-viewer{--min-hotspot-opacity:.35;width:100%;height:100svh;display:block}.viewer-state{justify-content:center;align-items:center;min-height:100svh;padding:24px;display:flex}.viewer-state--stack{flex-direction:column}.state{color:var(--color-text-muted);text-align:center;padding:32px 0}.state--error{color:var(--color-error)}.password-gate{text-align:center;flex-direction:column;gap:12px;width:100%;max-width:320px;display:flex}.password-gate .state{padding:0 0 4px}.password-gate__input{width:100%;min-height:48px;color:var(--color-text);background:var(--color-surface,#ffffff0f);border:1px solid var(--color-border,#ffffff3d);border-radius:10px;padding:0 14px;font-size:16px}.password-gate__submit,.viewer-state__retry{color:#0a0a0a;background:var(--color-brand,#76be2e);cursor:pointer;border:none;border-radius:999px;min-height:48px;padding:0 20px;font-weight:600}.password-gate__submit:disabled{opacity:.5;cursor:default}@media (hover:hover){.password-gate__submit:not(:disabled):hover,.viewer-state__retry:hover{background:var(--color-brand-dark,#458b1a)}}.password-gate__submit:not(:disabled):active,.viewer-state__retry:active{background:var(--color-brand-dark,#458b1a)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hotspot{--hotspot-size:40px;width:var(--hotspot-size);height:var(--hotspot-size);position:relative}.hotspot__toggle{cursor:pointer;background:0 0;border:none;border-radius:50%;width:100%;height:100%;padding:0}.hotspot__dot{background:var(--color-primary);color:#fff;border:2.5px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;font-size:15px;font-weight:700;transition:transform .15s;display:flex;position:relative;box-shadow:0 0 0 2px #11111140,0 2px 10px #0006}.hotspot__dot:after{content:"";pointer-events:none;border:2px solid #ffffffd9;border-radius:50%;animation:2s ease-out infinite hotspot-pulse;position:absolute;inset:-2.5px}@keyframes hotspot-pulse{0%{opacity:.9;transform:scale(1)}70%,to{opacity:0;transform:scale(1.7)}}@media (prefers-reduced-motion:reduce){.hotspot__dot:after{animation:none;display:none}}.hotspot:hover .hotspot__dot,.hotspot--active .hotspot__dot{transform:scale(1.12)}.hotspot--active .hotspot__dot:after{animation:none}.hotspot__toggle:focus-visible .hotspot__dot{outline-offset:2px;outline:2px solid #fff}.hotspot__annotation{color:#fff;text-align:left;word-break:keep-all;overflow-wrap:anywhere;pointer-events:none;background:#111111eb;border-radius:10px;flex-direction:column;gap:2px;min-width:140px;max-width:240px;padding:10px 12px;font-size:13px;line-height:1.45;display:flex;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)}.hotspot__annotation strong{font-size:13.5px}.hotspot__annotation--below{top:calc(100% + 10px);bottom:auto}.hotspot__body{color:#ffffffd1;font-size:12.5px}.hotspot__cta{pointer-events:auto;color:#111;background:#fff;border-radius:999px;align-self:flex-start;margin-top:6px;padding:6px 12px;font-size:12.5px;font-weight:700;text-decoration:none;transition:background .15s}.hotspot__cta:hover{background:#ffffffd9}.hotspot__cta:focus-visible{outline-offset:2px;outline:2px solid #fff}.ar-hotspot-bar{z-index:6;padding:0 12px max(12px, env(safe-area-inset-bottom));pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:0;left:0;right:0}.ar-hotspot-bar__chips{pointer-events:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;max-width:100%;padding:4px 2px;display:flex;overflow-x:auto}.ar-hotspot-bar__chips::-webkit-scrollbar{display:none}.ar-hotspot-bar__chip{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#111111b8;border:1px solid #ffffff59;border-radius:999px;flex:none;align-items:center;gap:6px;max-width:60vw;padding:8px 14px 8px 8px;font-size:13px;font-weight:600;display:inline-flex}.ar-hotspot-bar__chip--active{background:var(--color-primary);border-color:#ffffffe6}.ar-hotspot-bar__num{background:var(--color-primary);border:1.5px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:flex}.ar-hotspot-bar__chip--active .ar-hotspot-bar__num{background:#ffffff38}.ar-hotspot-bar__title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ar-hotspot-bar__panel{color:#fff;word-break:keep-all;overflow-wrap:anywhere;pointer-events:auto;background:#111111eb;border-radius:12px;flex-direction:column;gap:2px;max-width:min(92vw,360px);padding:12px 14px;font-size:13px;line-height:1.45;display:flex}.ar-hotspot-bar__panel .hotspot__cta{pointer-events:auto}.preview-badge{top:max(12px, env(safe-area-inset-top));z-index:60;color:#fff;letter-spacing:.02em;pointer-events:none;background:#9333eae6;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;position:fixed;left:12px}.preview-stale{bottom:max(16px, env(safe-area-inset-bottom));z-index:60;color:#fff;cursor:pointer;background:#18181beb;border:0;border-radius:999px;min-height:44px;padding:10px 18px;font-size:14px;font-weight:600;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000059}.viewer-fab--rec{background:#dc2626eb;animation:1.6s ease-in-out infinite rec-pulse}@keyframes rec-pulse{0%,to{box-shadow:0 0 #dc26268c}50%{box-shadow:0 0 0 8px #dc262600}}.viewer-fab--finishing{opacity:.6;cursor:progress;background:#dc2626eb}.viewer-fab-status{border-radius:var(--radius-md);color:#fff;pointer-events:none;width:max-content;max-width:min(100vw - 28px,280px);margin:0;font-size:12.5px;line-height:1.4;position:absolute;bottom:calc(100% + 10px);left:0}.viewer-fab-status:not(:empty){background:#111c;padding:8px 12px}.capture-frame{z-index:3;pointer-events:none;position:absolute;inset:0;overflow:hidden}.capture-frame img{max-width:none;display:block;position:absolute;box-shadow:0 0 0 100vmax #00000073}.capture-preview{z-index:74;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.capture-preview__backdrop{cursor:pointer;background:#0000008c;border:0;position:absolute;inset:0}.capture-preview__panel{width:100%;max-width:480px;max-height:calc(100dvh - 24px);padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:var(--color-bg);color:var(--color-text);box-shadow:0 -8px 32px #00000040, 0 0 0 1px var(--color-border);border-radius:16px 16px 0 0;position:relative;overflow-y:auto}.capture-preview__close{width:44px;height:44px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;font-size:22px;line-height:1;position:absolute;top:14px;right:4px}.capture-preview__title{margin:8px 48px 12px 0;font-size:17px;font-weight:700}.capture-preview__note{color:var(--color-text-muted);margin:0 0 10px;font-size:14px;line-height:1.45}.capture-preview__media{border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-text) 6%, var(--color-bg));justify-content:center;display:flex;overflow:hidden}.capture-preview__media img,.capture-preview__media video{object-fit:contain;-webkit-touch-callout:default;max-width:100%;max-height:min(56dvh,520px);display:block}.capture-preview__actions{gap:12px;margin-top:16px;display:flex}.capture-preview__btn{border:1px solid color-mix(in srgb, var(--color-text) 50%, var(--color-bg));min-height:48px;color:var(--color-text);font:inherit;cursor:pointer;background:0 0;border-radius:999px;flex:1;justify-content:center;align-items:center;padding:0 16px;font-weight:700;text-decoration:none;display:inline-flex}.capture-preview__btn--primary{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary)}.capture-preview__note--after{margin:12px 0 0}.capture-preview__hints{color:var(--color-text-muted);margin:12px 0 0;padding-left:18px;font-size:13px;line-height:1.5}@media (hover:hover){.capture-preview__close:hover,.capture-preview__btn:not(.capture-preview__btn--primary):hover{background:var(--color-surface)}.capture-preview__btn--primary:hover{background:var(--color-primary-hover)}}.lead-sheet{z-index:70;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.lead-sheet__backdrop{cursor:pointer;background:#00000073;border:0;position:absolute;inset:0}.lead-sheet__panel{width:100%;max-width:480px;max-height:92svh;padding:20px 20px calc(20px + env(safe-area-inset-bottom));background:var(--color-bg);color:var(--color-text);box-shadow:0 -8px 32px #00000040, 0 0 0 1px var(--color-border);border-radius:16px 16px 0 0;position:relative;overflow-y:auto}.lead-sheet__title{margin:0 0 12px;font-size:18px;font-weight:700}.lead-sheet__label{margin:4px 0;font-size:13px;font-weight:600;display:block}.lead-sheet__detail{color:var(--color-text-muted);margin:-10px 0 10px 28px;font-size:13px;line-height:1.5}.lead-sheet__input{border:1px solid color-mix(in srgb, var(--color-text) 50%, var(--color-bg));background:var(--color-bg);width:100%;min-height:44px;color:var(--color-text);border-radius:10px;margin-bottom:8px;padding:10px 12px;font-size:15px}.lead-sheet__input::placeholder{color:var(--color-text-muted)}.lead-sheet__hp{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;left:-9999px}.lead-sheet__consent{min-height:44px;color:var(--color-text-muted);align-items:flex-start;gap:8px;margin:8px 0 12px;padding-top:4px;font-size:13px;line-height:1.5;display:flex}.lead-sheet__consent input{appearance:none;border:2px solid var(--color-text-muted);cursor:pointer;background:0 0;border-radius:4px;flex:none;place-content:center;width:20px;height:20px;margin:1px 0 0;display:grid}.lead-sheet__consent input:before{content:"";background:var(--color-on-primary);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%);width:12px;height:12px;transform:scale(0)}.lead-sheet__consent input:checked{background:var(--color-primary);border-color:var(--color-primary)}.lead-sheet__consent input:checked:before{transform:scale(1)}.lead-sheet__consent input:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (forced-colors:active){.lead-sheet__consent input{appearance:auto}.lead-sheet__consent input:before{content:none}}.lead-sheet__error{color:var(--color-error);margin:0 0 10px;font-size:13px}.lead-sheet__done{text-align:center;margin:8px 0 16px;font-size:15px;font-weight:600}.lead-sheet__actions{justify-content:flex-end;gap:8px;display:flex}.lead-sheet__cancel,.lead-sheet__submit{cursor:pointer;border:0;border-radius:999px;min-height:44px;padding:10px 18px;font-size:15px;font-weight:600}.lead-sheet__cancel{background:color-mix(in srgb, var(--color-text) 8%, transparent);color:var(--color-text)}.lead-sheet__submit{color:#052e16;background:#76be2e}.lead-sheet__submit:disabled{opacity:.45;cursor:default}.lead-sheet__done+.lead-sheet__submit{margin:0 auto;display:block}.showcase--grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.showcase--grid .showcase-card{margin:0}.showcase--grid .showcase-card__cta{margin-top:auto}.campaign-hotspot{z-index:7;cursor:pointer;background:0 0;border:none;padding:0;transition:opacity .2s;position:absolute;top:0;left:0}.campaign-hotspot--active .hotspot__dot{background:#a3e635}.campaign-card{left:50%;bottom:calc(max(18px, env(safe-area-inset-bottom)) + 96px);z-index:8;border-radius:var(--radius-md);color:#18181b;background:#fffffff5;width:min(92vw,420px);padding:14px 44px 14px 16px;position:absolute;transform:translate(-50%);box-shadow:0 8px 28px #00000059}.campaign-card__close{color:#52525b;cursor:pointer;background:0 0;border:none;width:32px;height:32px;font-size:22px;line-height:1;position:absolute;top:6px;right:8px}.campaign-card__title{margin:0 0 4px;font-size:16px;font-weight:800}.campaign-card__body{color:#3f3f46;margin:0 0 10px;font-size:13px;line-height:1.45}.campaign-card .docent-btn{justify-content:center;align-items:center;padding:8px 16px;font-size:13px;text-decoration:none;display:inline-flex}.docent-btn--ghost{color:#18181b;background:#ffffffeb}.campaign-ar-btn{left:50%;bottom:calc(max(18px, env(safe-area-inset-bottom)) + 64px);position:absolute;transform:translate(-50%)}.marker-guide__link{color:#a3e635;margin-top:6px;font-size:13px;display:inline-block}.diag{max-width:640px;font-family:var(--font-sans);color:var(--color-text);margin:0 auto;padding:24px 16px 48px}.diag h1{margin:0 0 8px;font-size:22px}.diag h2{margin:0 0 12px;font-size:16px}.diag__lead,.diag__note{color:var(--color-text-muted);margin:0 0 16px;font-size:14px;line-height:1.55}.diag__section{border-top:1px solid var(--color-border);padding:16px 0}.diag__env{grid-template-columns:max-content 1fr;gap:6px 12px;margin:0;font-size:14px;display:grid}.diag__env dt{color:var(--color-text-muted)}.diag__env dd{margin:0}.diag__ua{word-break:break-all;font-size:12px}.diag__row{flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 10px;font-size:14px;display:flex}.diag__btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);min-height:44px;color:var(--color-text);font:inherit;cursor:pointer;align-items:center;padding:0 14px;text-decoration:none;display:inline-flex}.diag__btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.diag__btn--off{color:var(--color-text-muted);cursor:default}.diag__ql{color:var(--color-text);align-items:center;gap:10px;display:inline-flex}.diag__ql img{border-radius:var(--radius-sm);border:1px solid var(--color-border);object-fit:cover}.diag__outcome{flex-wrap:wrap;gap:6px;display:inline-flex}.diag__chip{border:1px solid var(--color-border);min-height:36px;color:var(--color-text);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:0 12px}.diag__chip--on{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.diag__video{border-radius:var(--radius-sm);background:#000;width:100%;max-height:240px;margin:4px 0 12px;display:block}.diag__press{border-radius:var(--radius-sm);-webkit-touch-callout:default;width:calc(100% - 40px);max-width:320px;height:auto;margin:4px 0 12px 40px;display:block}.diag__btn:disabled{color:var(--color-text-muted);cursor:default}.diag__summary{box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);margin:0 0 10px;padding:10px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.diag__steps{margin:0 0 8px;padding:0;list-style:none}.diag__step{border-top:1px solid var(--color-border);padding:14px 0 6px}.diag__num{background:var(--color-primary);width:28px;height:28px;color:var(--color-on-primary);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:inline-flex}.diag__check{color:var(--color-text-muted);margin:0 0 6px 40px;font-size:13px;line-height:1.5}.viewer-fabs--raised{bottom:calc(188px + env(safe-area-inset-bottom))}.viewer-fabs--top{top:max(14px, env(safe-area-inset-top));bottom:auto}.viewer-fab--controls{justify-content:center;align-items:center;display:inline-flex}.view3d-btn{top:max(14px, env(safe-area-inset-top));right:max(14px, env(safe-area-inset-right));z-index:6;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;background:#111111b8;border:1px solid #ffffff59;border-radius:999px;align-items:center;gap:6px;min-height:44px;padding:0 16px 0 13px;font-size:14px;font-weight:700;display:inline-flex;position:fixed}.view3d-btn:active{background:#111111d9}.view3d-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (width<=930px){.view3d-btn--below-credit{top:calc(env(safe-area-inset-top) + 44px)}}@media (width<=480px){.view3d-btn--below-credit{top:calc(env(safe-area-inset-top) + 58px)}}.view3d-btn--inline{position:static}.view3d{z-index:5;background:var(--color-bg);position:fixed;inset:0}.view3d model-viewer{left:0;right:0;top:calc(max(14px, env(safe-area-inset-top)) + 52px);bottom:calc(84px + env(safe-area-inset-bottom));height:auto;position:absolute;-webkit-mask-image:linear-gradient(#0000,#000 16px calc(100% - 16px),#0000);mask-image:linear-gradient(#0000,#000 16px calc(100% - 16px),#0000)}@media (width<=930px){.view3d--below-credit model-viewer{top:calc(env(safe-area-inset-top) + 96px)}}@media (width<=480px){.view3d--below-credit model-viewer{top:calc(env(safe-area-inset-top) + 110px)}}.view3d__loading{color:var(--color-text-muted);justify-content:center;align-items:center;margin:0;font-size:14px;display:flex;position:absolute;inset:0}.view3d__hint{left:50%;bottom:max(16px, env(safe-area-inset-bottom));border-radius:var(--radius-md);color:#fff;text-align:center;pointer-events:none;background:#111111b8;border:1px solid #ffffff59;flex-wrap:wrap;justify-content:center;gap:2px 12px;width:max-content;max-width:calc(100vw - 132px);margin:0;padding:10px 16px;font-size:13px;display:flex;position:fixed;transform:translate(-50%)}.view3d__part{white-space:nowrap}.view3d__error{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:max-content;max-width:calc(100vw - 48px);color:var(--color-text);text-align:center;word-break:keep-all;flex-direction:column;align-items:center;gap:12px;margin:0;padding:16px 20px;font-size:15px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.view3d__error p{margin:0}.controls-sheet{z-index:70;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.controls-sheet__backdrop{cursor:pointer;background:#00000073;position:absolute;inset:0}.controls-sheet__panel{width:100%;max-width:480px;max-height:min(88svh,800px);padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:var(--color-bg);color:var(--color-text);box-shadow:0 -8px 32px #00000040, 0 0 0 1px var(--color-border);word-break:keep-all;border-radius:16px 16px 0 0;position:relative;overflow-y:auto}.controls-sheet__head{z-index:1;background:var(--color-bg);justify-content:space-between;align-items:center;margin:-16px -16px 0;padding:16px 16px 8px;display:flex;position:sticky;top:-16px}.controls-sheet__title{margin:0;font-size:18px;font-weight:700}.controls-sheet__close{width:44px;height:44px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;font-size:18px}.controls-sheet__close:active{background:var(--color-border)}.controls-sheet__close:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.controls-sheet__group{margin-top:8px}.controls-sheet__group+.controls-sheet__group{margin-top:24px}.controls-sheet__group-label{color:var(--color-text-muted);margin:0 0 8px;font-size:12px;font-weight:700}.controls-sheet__note{color:var(--color-text-muted);margin:-4px 0 8px;font-size:12px;line-height:1.4}.controls-sheet__options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.controls-sheet__option{border:1px solid var(--color-border);background:var(--color-bg);min-height:56px;color:inherit;text-align:left;cursor:pointer;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;display:flex}.controls-sheet__option:active{background:var(--color-surface)}.controls-sheet__option:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.controls-sheet__option--on{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 10%, var(--color-bg));box-shadow:inset 0 0 0 1px var(--color-primary)}@media (hover:hover){.controls-sheet__option:hover{border-color:var(--color-primary)}.controls-sheet__close:hover{background:var(--color-surface)}}.controls-sheet__name{font-size:15px;font-weight:700}.controls-sheet__desc{color:var(--color-text-muted);font-size:12px;line-height:1.4}.ar-lock-layer{background:0 0;position:absolute;inset:0}.marker-hint__gestures{color:#e4e4e7;flex-wrap:wrap;justify-content:center;gap:2px 12px;font-size:12px;display:flex}.marker-hint__part{white-space:nowrap}.ar-help-btn{top:max(16px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));z-index:7;position:fixed}.splash__controls{text-wrap:balance;max-width:32ch;color:var(--color-text-muted);margin:0;font-size:14px}.controls-chip{border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;align-self:flex-start;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.controls-chip--on-dark{color:#e4e4e7;border-color:#ffffff59}.tour-bar{left:50%;bottom:max(16px, env(safe-area-inset-bottom));z-index:5;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#111111b8;border:1px solid #ffffff59;border-radius:999px;align-items:center;gap:4px;width:max-content;max-width:calc(100vw - 132px);padding:3px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 4px 14px #0000004d}.tour-bar--raised{bottom:calc(188px + env(safe-area-inset-bottom))}.tour-bar__start{color:#fff;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;min-height:44px;padding:0 16px;font-size:14px;font-weight:700;display:inline-flex}.tour-bar__btn{color:#fff;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;width:44px;height:44px;font-size:24px;line-height:1}.tour-bar__end{font-size:16px}@media (hover:hover){.tour-bar__btn:hover,.tour-bar__start:hover{background:#ffffff24}}.tour-bar__btn:active,.tour-bar__start:active{background:#ffffff3d}.tour-bar__btn:focus-visible,.tour-bar__start:focus-visible{outline-offset:2px;outline:2px solid #c4b5fd}.tour-bar__now{align-items:baseline;gap:6px;min-width:0;padding:0 4px;font-size:14px;display:inline-flex}.tour-bar__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.tour-bar__count{font-variant-numeric:tabular-nums;color:#d4d4d8;flex:none;font-size:12px}@media (width<=479px){.tour-bar__now .tour-bar__count{color:#fff;font-size:14px;font-weight:600}.tour-bar__title{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.splash--embed{gap:10px;padding:8px 16px}.splash--embed .splash__title{font-size:22px}.splash--embed .splash__qr svg{width:88px;height:88px}.splash--embed:after{min-height:0}.splash--embed .splash__qr{gap:4px;margin-top:0;padding:8px}.splash--embed .splash__subtitle{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex-shrink:0;display:-webkit-box;overflow:hidden}.splash__qr-link{color:#5b21b6;text-underline-offset:3px;font-size:13px;font-weight:600}.splash__qr-link:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #5b21b6}.embed-gate{z-index:4;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.embed-gate__hint{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1111119e;border-radius:999px;padding:10px 16px;font-size:15px;font-weight:600;line-height:1.3}@media (hover:hover){.embed-gate:hover .embed-gate__hint{background:#111c}}.embed-gate:focus-visible{outline:none}.embed-gate:focus-visible .embed-gate__hint{outline:2px solid var(--color-primary);outline-offset:2px}.embed-ar{top:max(12px, env(safe-area-inset-top));z-index:6;background:var(--color-primary);min-height:44px;color:var(--color-on-primary);border-radius:999px;align-items:center;gap:4px;padding:0 16px;font-size:15px;font-weight:700;text-decoration:none;display:inline-flex;position:fixed;right:12px}.embed-ar:active{background:var(--color-primary-hover)}.embed-ar:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}.tracking-notice{left:calc(12px + env(safe-area-inset-left));right:calc(12px + env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));z-index:40;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);max-width:560px;color:var(--color-text);font-family:var(--font-sans);flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 auto;padding:12px 14px;font-size:13px;line-height:1.5;display:flex;position:fixed;box-shadow:0 6px 24px #0000002e}.tracking-notice__text{word-break:keep-all;overflow-wrap:anywhere;flex:100%;min-width:0;margin:0}.tracking-notice__link{min-height:44px;color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 2px;font-weight:600;text-decoration:underline}.tracking-notice__actions{flex:100%;align-items:center;gap:8px;display:flex}.tracking-notice__actions .tracking-notice__link{margin-right:auto}.tracking-notice__btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);min-width:72px;min-height:44px;color:var(--color-text);font:inherit;cursor:pointer;padding:0 14px;font-weight:600}.tracking-notice__btn:focus-visible,.tracking-notice__link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.tracking-sheet__backdrop{z-index:41;padding:12px calc(12px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left));background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.tracking-sheet{border-radius:var(--radius-md);background:var(--color-surface);width:100%;max-width:560px;max-height:80vh;color:var(--color-text);font-family:var(--font-sans);word-break:keep-all;overflow-wrap:anywhere;padding:18px;font-size:14px;line-height:1.6;overflow-y:auto}.tracking-sheet__title{margin:0 0 8px;font-size:16px}.tracking-sheet__vendors{margin:0 0 8px;padding-left:18px}.tracking-sheet p{color:var(--color-text-muted);margin:0 0 8px}.tracking-sheet__close{width:100%;margin-top:4px}:root{--campaign-accent:#76be2e;--campaign-on-accent:#052e16;--campaign-accent-hover:#6aad27;--campaign-accent-active:#65a30d;--campaign-ghost-hover:color-mix(in srgb, var(--color-text) 8%, transparent);--campaign-ghost-active:color-mix(in srgb, var(--color-text) 14%, transparent);--campaign-outline:color-mix(in srgb, var(--color-text) 50%, var(--color-bg))}.campaign-top{top:calc(max(12px, env(safe-area-inset-top)) + 56px);z-index:20;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:min(100vw - 32px,420px);display:flex;position:fixed;left:50%;transform:translate(-50%)}.campaign-top>*{pointer-events:auto}body:has(.lead-sheet,.controls-sheet,.splash--embed) .campaign-top{display:none}@media (width<=930px){body:has(.view3d-btn--below-credit) .campaign-top{top:calc(env(safe-area-inset-top) + 96px)}}@media (width<=480px){body:has(.view3d-btn--below-credit) .campaign-top{top:calc(env(safe-area-inset-top) + 110px)}}.campaign-pill{background:var(--campaign-accent);max-width:100%;min-height:44px;color:var(--campaign-on-accent);font:inherit;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:6px;padding:8px 16px 8px 12px;font-size:14px;font-weight:700;line-height:1.2;animation:.35s ease-out campaign-pop;display:inline-flex;box-shadow:0 6px 18px #00000040}.campaign-pill:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}.campaign-pill--mine{background:var(--color-bg);color:var(--color-text);box-shadow:0 6px 18px #00000040, 0 0 0 1px var(--color-border)}.campaign-pill__icon{font-size:16px}.campaign-pill__label{flex:none}.campaign-pill__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.campaign-pill__title:before{content:"·";margin-right:6px}@keyframes campaign-pop{0%{opacity:0;transform:translateY(-8px)scale(.96)}to{opacity:1;transform:none}}.stamp-banner{background:var(--color-bg);width:100%;min-height:56px;color:var(--color-text);box-shadow:0 8px 24px #00000040, 0 0 0 1px var(--color-border);border-radius:16px;align-items:center;gap:10px;padding:8px 44px 8px 12px;font-size:14px;line-height:1.4;animation:.35s ease-out campaign-pop;display:flex;position:relative}.stamp-banner__mark{background:var(--campaign-accent);width:32px;height:32px;color:var(--campaign-on-accent);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.stamp-banner__text{flex-direction:column;flex:1;min-width:0;margin:0;display:flex}.stamp-banner__sub{color:var(--color-text-muted);font-size:12px}.stamp-banner__count{white-space:nowrap}.stamp-banner__link{color:var(--color-primary);white-space:nowrap;margin-block:-13px;padding-block:13px;font-weight:600;display:inline-block}@media (width<=359px){.stamp-banner{flex-wrap:wrap;gap:8px;padding-left:10px}.stamp-banner__mark{width:26px;height:26px}.stamp-banner__text{flex:140px}.stamp-banner__action{padding:6px 12px;font-size:12px}.stamp-banner__mark~.stamp-banner__action{margin-left:34px}}.stamp-banner__action{min-height:44px;color:var(--color-text);box-shadow:inset 0 0 0 1px var(--campaign-outline);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;align-items:center;margin-right:6px;padding:6px 14px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.stamp-banner__action--primary{background:var(--campaign-accent);color:var(--campaign-on-accent);box-shadow:none}.stamp-banner__action:disabled{opacity:.6;cursor:default}.stamp-banner__close,.coupon-sheet__close{width:44px;height:44px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;font-size:22px;line-height:1;position:absolute;top:6px;right:0}.coupon-sheet{z-index:72;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.coupon-sheet__backdrop{cursor:pointer;background:#00000073;border:0;position:absolute;inset:0}.coupon-sheet__panel{width:100%;max-width:480px;max-height:calc(100dvh - 24px);padding:40px 16px calc(16px + env(safe-area-inset-bottom));background:var(--color-bg);color:var(--color-text);box-shadow:0 -8px 32px #00000040, 0 0 0 1px var(--color-border);border-radius:16px 16px 0 0;position:relative;overflow-y:auto}.coupon-sheet__state{text-align:center;margin:8px 0 16px;font-size:15px}.coupon-sheet__state p{margin:0 0 12px}.coupon-sheet__retry{background:var(--campaign-accent);min-height:44px;color:var(--campaign-on-accent);font:inherit;cursor:pointer;border:0;border-radius:999px;padding:8px 18px;font-weight:700}.coupon-card{background:var(--color-bg);color:var(--color-text);box-shadow:0 0 0 1px var(--color-border);border-radius:16px;position:relative;overflow:hidden}.coupon-card__head{background:linear-gradient(135deg, color-mix(in srgb, var(--campaign-accent) 22%, var(--color-bg)), var(--color-bg) 70%);padding:18px 18px 14px}.coupon-card--used .coupon-card__head,.coupon-card--expired .coupon-card__head{background:var(--color-surface)}.coupon-card--used .coupon-card__title,.coupon-card--expired .coupon-card__title{color:var(--color-text-muted)}.coupon-card__chip{background:color-mix(in srgb, var(--color-error) 12%, var(--color-bg));color:color-mix(in srgb, var(--color-error) 80%, var(--color-text));border-radius:999px;margin-bottom:6px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-block}.coupon-card__host{color:var(--color-text-muted);margin:0 0 4px;font-size:12px;font-weight:600}.coupon-card__title{text-wrap:balance;overflow-wrap:anywhere;margin:0;font-size:22px;font-weight:800;line-height:1.3}.coupon-card__desc{color:var(--color-text-muted);white-space:pre-line;margin:6px 0 0;font-size:14px}.coupon-card--withdrawn{background:var(--color-surface)}.coupon-card__withdrawn{color:var(--color-text-muted);margin:0;padding:18px;font-size:14px}.coupon-card__perf{border-top:2px dashed var(--color-border);height:0;margin:0 14px;position:relative}.coupon-card__perf:before,.coupon-card__perf:after{content:"";background:var(--color-bg);width:20px;height:20px;box-shadow:inset 0 0 0 1px var(--color-border);border-radius:50%;position:absolute;top:-11px}.coupon-card__perf:before{left:-25px}.coupon-card__perf:after{right:-25px}.coupon-card__body{flex-direction:column;gap:10px;padding:16px 18px 14px;display:flex}.coupon-card__code{background:var(--color-surface);border-radius:12px;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:10px 12px;display:flex}.coupon-card__code-label{width:100%;color:var(--color-text-muted);font-size:12px}.coupon-card__code-value{letter-spacing:.08em;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:22px}.coupon-card__copy{border:1px solid var(--color-border);background:var(--color-bg);min-height:44px;color:var(--color-text);font:inherit;cursor:pointer;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600}.coupon-card__valid{color:var(--color-text-muted);margin:0;font-size:13px}.coupon-card--expired .coupon-card__valid{color:var(--color-error);font-weight:600}.coupon-card__hint{margin:0;font-size:14px}.coupon-card__live{background:color-mix(in srgb, var(--campaign-accent) 18%, var(--color-bg));border-radius:10px;justify-content:center;align-items:center;min-height:40px;display:flex;position:relative;overflow:hidden}.coupon-card__live-bar{background:repeating-linear-gradient(-45deg, transparent 0 14px, color-mix(in srgb, var(--campaign-accent) 30%, transparent) 14px 28px);background-size:40px 40px;animation:1.2s linear infinite coupon-live;position:absolute;inset:0}.coupon-card__live-time{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:15px;font-weight:700;position:relative}@keyframes coupon-live{to{background-position:40px 0}}.coupon-card__staff,.coupon-card__use,.coupon-card__shop{background:var(--campaign-accent);min-height:48px;color:var(--campaign-on-accent);font:inherit;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;padding:10px 18px;font-size:15px;font-weight:700;text-decoration:none;display:inline-flex}.coupon-card__use:disabled{opacity:.45;cursor:default}.coupon-card__confirm{background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-border);border-radius:12px;flex-direction:column;gap:10px;padding:12px;display:flex}.coupon-card__confirm-text{margin:0;font-size:13px;line-height:1.5}.coupon-card__confirm-text strong{display:block}.coupon-card__pin{border:1px solid color-mix(in srgb, var(--color-text) 50%, var(--color-bg));background:var(--color-bg);width:100%;min-height:48px;color:var(--color-text);font:inherit;letter-spacing:.3em;text-align:center;border-radius:10px;padding:10px 12px;font-size:20px}.coupon-card__pin::placeholder{letter-spacing:normal;font-size:15px}.coupon-card__actions{gap:8px;display:flex}.coupon-card__actions>*{flex:1}.coupon-card__cancel{background:color-mix(in srgb, var(--color-text) 8%, transparent);min-height:48px;color:var(--color-text);font:inherit;cursor:pointer;border:0;border-radius:999px;padding:10px 18px;font-size:15px;font-weight:600}.coupon-card__stamp{flex-direction:column;align-items:center;gap:4px;padding:10px 0 4px;display:flex}.coupon-card__stamp-mark{border:3px solid var(--color-error);color:var(--color-error);letter-spacing:.08em;border-radius:10px;padding:4px 18px;font-size:20px;font-weight:800;display:inline-block;transform:rotate(-6deg)}.coupon-card__stamp-time{color:var(--color-text-muted);font-size:13px}.coupon-card__error{color:var(--color-error);margin:0;font-size:13px}.coupon-card__terms{border-top:1px solid var(--color-border);margin:0 18px;padding:10px 0;font-size:13px}.coupon-card__terms summary{cursor:pointer;justify-content:space-between;align-items:center;gap:8px;min-height:44px;font-weight:600;list-style:none;display:flex}.coupon-card__terms summary::-webkit-details-marker{display:none}.coupon-card__terms summary:after{content:"";border-bottom:2px solid;border-right:2px solid;flex:none;width:8px;height:8px;margin-right:4px;transition:transform .2s;transform:translateY(-2px)rotate(45deg)}.coupon-card__terms[open] summary:after{transform:translateY(2px)rotate(-135deg)}.coupon-card__terms summary:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}.coupon-card__terms p{color:var(--color-text-muted);white-space:pre-line;margin:4px 0 0}.coupon-card__saved{border-top:1px solid var(--color-border);color:var(--color-text-muted);margin:0 18px;padding:10px 0 16px;font-size:12px;line-height:1.5}@media (prefers-reduced-motion:reduce){.campaign-pill,.stamp-banner,.coupon-card__live-bar{animation:none}}.rally{max-width:520px;min-height:100dvh;padding:64px 16px calc(32px + env(safe-area-inset-bottom));flex-direction:column;gap:18px;margin:0 auto;display:flex;position:relative}.rally__head{flex-direction:column;gap:6px;display:flex}.rally__host{color:var(--color-text-muted);margin:0;font-size:13px;font-weight:600}.rally__title{text-wrap:balance;overflow-wrap:anywhere;margin:0;font-size:26px;font-weight:800;line-height:1.25}.rally__period{color:var(--color-text-muted);margin:0;font-size:14px}.rally__desc{white-space:pre-line;margin:4px 0 0;font-size:15px}.rally__closed{background:color-mix(in srgb, var(--color-error) 12%, var(--color-bg));color:color-mix(in srgb, var(--color-error) 80%, var(--color-text));border-radius:10px;margin:4px 0 0;padding:8px 12px;font-size:14px;font-weight:600}.rally__progress{background:var(--color-surface);box-shadow:0 0 0 1px var(--color-border);border-radius:16px;padding:16px}.rally__count{font-variant-numeric:tabular-nums;margin:0;font-size:30px;font-weight:800}.rally__bar{background:color-mix(in srgb, var(--color-text) 10%, transparent);border-radius:999px;height:10px;margin:8px 0;overflow:hidden}.rally__bar span{border-radius:inherit;background:var(--campaign-accent);height:100%;transition:width .4s;display:block}.rally__need{color:var(--color-text-muted);margin:0;font-size:14px}.rally__section{flex-direction:column;gap:10px;display:flex}.rally__h2{margin:0;font-size:17px;font-weight:700}.rally__stamps{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.rally-stamp{background:var(--color-bg);min-height:60px;box-shadow:0 0 0 1px var(--color-border);border-radius:12px;grid-template-columns:40px 1fr auto;grid-template-areas:"mark name map""mark state map";align-items:center;column-gap:12px;padding:8px 12px;display:grid}.rally-stamp__mark{border:2px dashed color-mix(in srgb, var(--color-text) 35%, transparent);width:40px;height:40px;color:var(--color-text-muted);border-radius:50%;grid-area:mark;place-items:center;font-weight:700;display:grid}.rally-stamp--on .rally-stamp__mark{background:var(--campaign-accent);color:var(--campaign-on-accent);border:0;font-size:18px}.rally-stamp__name{overflow-wrap:anywhere;grid-area:name;min-width:0;font-weight:700}.rally-stamp__state{color:var(--color-text-muted);grid-area:state;font-size:12px}.rally-stamp__map{min-height:44px;color:var(--color-primary);border-radius:999px;grid-area:map;align-items:center;padding:0 12px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.rally__howto{color:var(--color-text-muted);margin:0;font-size:13px}.rally__saved{color:var(--color-text-muted);margin:0;font-size:12px;line-height:1.5}.rally__reward{background:var(--color-surface);box-shadow:0 0 0 1px var(--color-border);border-radius:16px;flex-direction:column;gap:10px;padding:16px;display:flex}.rally__reward-title{margin:0;font-size:17px;font-weight:700}.rally__reward-note{color:var(--color-text-muted);margin:0;font-size:14px}.rally__claim{background:var(--campaign-accent);min-height:48px;color:var(--campaign-on-accent);font:inherit;cursor:pointer;border:0;border-radius:999px;padding:10px 18px;font-size:15px;font-weight:700}.rally__claim:disabled{opacity:.6}.rally .splash__badge{text-align:center;margin-top:auto}.my-coupons{flex-direction:column;gap:18px;display:flex}.my-coupons__from{color:var(--color-text-muted);margin:0 0 6px;font-size:13px}@media (hover:hover){.campaign-pill:not(.campaign-pill--mine):hover,.stamp-banner__action--primary:not(:disabled):hover,.coupon-sheet__retry:hover,.coupon-card__staff:hover,.coupon-card__use:not(:disabled):hover,.coupon-card__shop:hover,.rally__claim:not(:disabled):hover{background:var(--campaign-accent-hover)}.stamp-banner__action:not(.stamp-banner__action--primary):hover,.stamp-banner__close:hover,.coupon-sheet__close:hover,.coupon-card__copy:hover,.rally-stamp__map:hover{background:var(--campaign-ghost-hover)}.coupon-card__cancel:not(:disabled):hover{background:var(--campaign-ghost-active)}.coupon-card__terms summary:hover{color:var(--color-text-muted)}}.campaign-pill:not(.campaign-pill--mine):active,.stamp-banner__action--primary:not(:disabled):active,.coupon-sheet__retry:active,.coupon-card__staff:active,.coupon-card__use:not(:disabled):active,.coupon-card__shop:active,.rally__claim:not(:disabled):active{background:var(--campaign-accent-active)}.stamp-banner__action:not(.stamp-banner__action--primary):active,.stamp-banner__close:active,.coupon-sheet__close:active,.coupon-card__copy:active,.coupon-card__cancel:not(:disabled):active,.rally-stamp__map:active{background:var(--campaign-ghost-active)}.stamp-banner__close,.coupon-sheet__close{border-radius:999px}@media (prefers-color-scheme:dark){.campaign-pill--mine,.stamp-banner{background:var(--color-surface);box-shadow:0 8px 24px #00000080, 0 0 0 1px color-mix(in srgb, var(--color-text) 25%, transparent)}}:root[data-scheme=dark] .campaign-pill--mine,:root[data-scheme=dark] .stamp-banner{background:var(--color-surface);box-shadow:0 8px 24px #00000080, 0 0 0 1px color-mix(in srgb, var(--color-text) 25%, transparent)}.my-coupons__empty,.my-coupons__failed{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.coupon-card__saved a{color:var(--color-primary);white-space:nowrap;font-weight:600}.coupon-card__my-link{margin-block:-13px;padding-block:13px;display:inline-block}@media (hover:hover){.campaign-pill--mine:hover{background:color-mix(in srgb, var(--color-text) 8%, var(--color-bg))}}.campaign-pill--mine:active{background:color-mix(in srgb, var(--color-text) 14%, var(--color-bg))}@media (prefers-color-scheme:dark){@media (hover:hover){.campaign-pill--mine:hover{background:color-mix(in srgb, var(--color-text) 8%, var(--color-surface))}}.campaign-pill--mine:active{background:color-mix(in srgb, var(--color-text) 14%, var(--color-surface))}}@media (hover:hover){:root[data-scheme=dark] .campaign-pill--mine:hover{background:color-mix(in srgb, var(--color-text) 8%, var(--color-surface))}}:root[data-scheme=dark] .campaign-pill--mine:active{background:color-mix(in srgb, var(--color-text) 14%, var(--color-surface))}.interaction-link{top:var(--campaign-top-reserve,calc(max(12px, env(safe-area-inset-top)) + 56px));z-index:20;background:var(--color-bg);width:min(100vw - 32px,420px);color:var(--color-text);box-shadow:0 0 0 1px var(--color-border), 0 6px 18px #00000040;border-radius:16px;align-items:center;gap:4px;padding:4px;animation:.35s ease-out interaction-link-pop;display:flex;position:fixed;left:50%;transform:translate(-50%)}body:has(.lead-sheet,.controls-sheet) .interaction-link{display:none}.interaction-link__open{min-width:0;min-height:44px;color:inherit;border-radius:12px;flex:1;align-items:center;gap:8px;padding:8px 12px;font-size:15px;font-weight:700;line-height:1.3;text-decoration:none;display:flex}.interaction-link__label{overflow-wrap:anywhere;min-width:0}.interaction-link__arrow{flex:none;margin-left:auto;font-size:18px}.interaction-link__close{width:44px;height:44px;color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;flex:none;font-size:22px;line-height:1}.interaction-link__open:hover,.interaction-link__close:hover{background:color-mix(in srgb, var(--color-text) 8%, transparent)}.interaction-link__open:active,.interaction-link__close:active{background:color-mix(in srgb, var(--color-text) 14%, transparent)}.interaction-link__open:focus-visible,.interaction-link__close:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}@keyframes interaction-link-pop{0%{opacity:0;transform:translate(-50%)translateY(-8px)scale(.96)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.interaction-link{animation:none}}
