@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";:root{--color-bg:#0f1024;--color-bg-elevated:#161834;--color-surface:#1d2042;--color-text:#f3f1ff;--color-text-muted:#b0aed6;--color-accent:#f5a623;--font-display:"Fraunces", "Iowan Old Style", Georgia, serif;--font-body:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", Menlo, monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-md:.9375rem;--text-lg:1.0625rem;--text-xl:1.25rem;--text-2xl:1.625rem;--text-3xl:2.125rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-pill:999px;--shadow-sm:0 1px 2px var(--color-shadow), 0 1px 1px var(--color-shadow);--shadow-md:0 6px 18px -6px var(--color-shadow), 0 2px 6px -2px var(--color-shadow);--shadow-lg:0 24px 48px -16px var(--color-shadow), 0 8px 16px -8px var(--color-shadow);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.14s;--duration-base:.22s;--duration-slow:.42s;--topbar-h:60px;--nav-h:72px;--content-max:1120px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--gutter:16px}@media (width>=640px){:root{--gutter:24px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--duration-base) ease;margin:0;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:700;line-height:1.15}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}img{max-width:100%;display:block}a{color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}::selection{background:var(--color-accent-soft)}.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}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.muted{color:var(--color-text-muted);font-size:var(--text-sm)}.mono{font-family:var(--font-mono)}.dot{opacity:.5;background:currentColor;border-radius:50%;flex:none;width:3px;height:3px}.app-shell{background:radial-gradient(1200px 500px at 50% -200px, var(--color-accent-soft), transparent 70%), var(--color-bg);flex-direction:column;height:100%;display:flex}.app-topbar{justify-content:space-between;align-items:center;gap:var(--space-3);height:calc(var(--topbar-h) + var(--safe-top));padding:var(--safe-top) var(--gutter) 0;background:color-mix(in srgb, var(--color-bg) 82%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.4);border-bottom:1px solid var(--color-border);z-index:20;flex:none;display:flex;position:relative}.app-topbar-title h1{font-size:var(--text-xl)}.app-topbar-title--back{align-items:center;gap:var(--space-1);min-width:0;margin-left:calc(var(--space-2) * -1);display:flex}.app-topbar-actions{align-items:center;gap:var(--space-2);display:flex}.app-topbar-avatar{background:0 0;border:0;border-radius:50%;padding:0;display:flex}.app-content{overscroll-behavior:contain;scroll-behavior:smooth;flex:1;min-height:0;overflow-y:auto}.app-shell.is-immersive .app-content{flex-direction:column;display:flex;overflow:hidden}.connectivity-banner{justify-content:center;align-items:center;gap:var(--space-2);padding:6px var(--gutter);font-size:var(--text-sm);text-align:center;animation:slide-down var(--duration-base) var(--ease-out);flex:none;font-weight:500;display:flex}.connectivity-banner.is-offline{background:var(--color-info-soft);color:var(--color-info)}.connectivity-banner.is-unreachable{background:var(--color-warning-soft);color:var(--color-warning)}.sync-pill{border-radius:var(--radius-pill);height:30px;font-size:var(--text-xs);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);align-items:center;gap:6px;padding:0 12px;font-weight:600;display:inline-flex}.sync-pill.is-queued{background:var(--color-warning-soft);color:var(--color-warning);border-color:#0000}.bottom-nav{height:calc(var(--nav-h) + var(--safe-bottom));padding:0 max(var(--space-2), calc((100% - 560px) / 2)) var(--safe-bottom);background:color-mix(in srgb, var(--color-bg-elevated) 90%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.4);border-top:1px solid var(--color-border);z-index:20;flex:none;grid-template-columns:repeat(5,1fr);align-items:end;display:grid;position:relative}.bottom-nav-item{height:var(--nav-h);color:var(--color-text-subtle);letter-spacing:.01em;transition:color var(--duration-fast) ease;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:600;display:flex}.bottom-nav-item:hover{color:var(--color-text-muted)}.bottom-nav-item.is-active{color:var(--color-accent)}.bottom-nav-icon{border-radius:var(--radius-pill);width:44px;height:30px;transition:background var(--duration-base) var(--ease-out);place-items:center;display:grid}.bottom-nav-item.is-active .bottom-nav-icon{background:var(--color-accent-soft)}.bottom-nav-item--primary .bottom-nav-icon{background:linear-gradient(145deg, var(--color-accent-strong), var(--color-accent));width:58px;height:58px;color:var(--color-on-accent);box-shadow:0 10px 24px -8px var(--color-accent), 0 0 0 4px var(--color-bg-elevated);transition:transform var(--duration-base) var(--ease-spring);border-radius:20px;margin-top:-26px}.bottom-nav-item--primary:hover .bottom-nav-icon,.bottom-nav-item--primary.is-active .bottom-nav-icon{background:linear-gradient(145deg, var(--color-accent-strong), var(--color-accent));transform:translateY(-2px)scale(1.04)}.page{width:100%;max-width:var(--content-max);padding:var(--space-5) var(--gutter) var(--space-8);gap:var(--space-5);animation:page-in var(--duration-slow) var(--ease-out);flex-direction:column;margin:0 auto;display:flex}.section-header{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.section-header h3{font-size:var(--text-lg)}.link-button{color:var(--color-accent);font-size:var(--text-sm);background:0 0;border:0;align-items:center;gap:4px;padding:0;font-weight:600;display:inline-flex}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.panel-title{font-size:var(--text-lg)}.panel--danger{border-color:color-mix(in srgb, var(--color-danger) 35%, var(--color-border))}.splash{justify-content:center;align-items:center;gap:var(--space-5);min-height:100%;padding:var(--space-7) var(--gutter);text-align:center;background:radial-gradient(600px 400px at 50% 40%, var(--color-accent-soft), transparent 70%), var(--color-bg);flex-direction:column;display:flex}.splash .brand-mark{animation:1.8s ease-in-out infinite breathe}.splash--error h1{font-size:var(--text-2xl)}.splash--error p{max-width:420px;color:var(--color-text-muted)}.splash--error code{max-width:420px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-subtle);overflow-wrap:anywhere}.brand{align-items:center;gap:var(--space-2);display:inline-flex}.brand-mark{background:linear-gradient(145deg, var(--color-accent-strong), var(--color-accent));color:var(--color-on-accent);box-shadow:0 8px 20px -8px var(--color-accent);border-radius:30%;flex:none;place-items:center;display:grid}.brand-wordmark{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.02em;font-weight:700}.brand-wordmark span,.onboarding-title span{color:var(--color-accent)}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}}@keyframes fade-in{0%{opacity:0}}@keyframes slide-down{0%{opacity:0;transform:translateY(-100%)}}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)scale(.98)}}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.06)}}@keyframes breathe{50%{transform:scale(1.06)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{background-position:-200% 0}}.ui-btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);letter-spacing:.005em;white-space:nowrap;transition:background var(--duration-fast) ease, border-color var(--duration-fast) ease, transform var(--duration-fast) ease, box-shadow var(--duration-fast) ease, opacity var(--duration-fast) ease;border:1px solid #0000;font-weight:600;display:inline-flex}.ui-btn:active:not(:disabled){transform:scale(.97)}.ui-btn:disabled{opacity:.55}.ui-btn--sm{height:34px;font-size:var(--text-sm);border-radius:var(--radius-sm);padding:0 12px}.ui-btn--md{height:44px;font-size:var(--text-md);padding:0 18px}.ui-btn--lg{height:54px;font-size:var(--text-lg);border-radius:var(--radius-lg);padding:0 24px}.ui-btn--block{width:100%}.ui-btn--primary{background:linear-gradient(180deg, var(--color-accent-strong), var(--color-accent));color:var(--color-on-accent);box-shadow:0 8px 20px -10px var(--color-accent), inset 0 1px 0 #ffffff40}.ui-btn--primary:hover:not(:disabled){box-shadow:0 10px 24px -8px var(--color-accent), inset 0 1px 0 #ffffff40}.ui-btn--secondary{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.ui-btn--secondary:hover:not(:disabled){background:var(--color-surface-hover)}.ui-btn--ghost{color:var(--color-text-muted);background:0 0}.ui-btn--ghost:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.ui-btn--danger{background:var(--color-danger);color:#fff}.ui-btn--danger:hover:not(:disabled){filter:brightness(1.08)}.ui-icon-btn{border-radius:var(--radius-pill);color:var(--color-text-muted);transition:background var(--duration-fast) ease, color var(--duration-fast) ease, transform var(--duration-fast) ease;background:0 0;border:1px solid #0000;flex:none;place-items:center;display:inline-grid}.ui-icon-btn:hover:not(:disabled){color:var(--color-text);background:var(--color-surface-hover)}.ui-icon-btn:active:not(:disabled){transform:scale(.93)}.ui-icon-btn:disabled{opacity:.5}.ui-icon-btn--sm{width:34px;height:34px}.ui-icon-btn--md{width:42px;height:42px}.ui-icon-btn--lg{width:52px;height:52px}.ui-icon-btn--secondary{background:var(--color-surface);border-color:var(--color-border)}.ui-icon-btn--glass{background:color-mix(in srgb, var(--color-bg) 55%, transparent);border-color:color-mix(in srgb, var(--color-text) 14%, transparent);color:var(--color-text);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-md)}.ui-icon-btn--glass:hover:not(:disabled){background:color-mix(in srgb, var(--color-bg) 75%, transparent)}.ui-spinner{opacity:.85;border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;animation:.7s linear infinite spin;display:inline-block}.ui-skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--color-surface) 0%, var(--color-surface-hover) 40%, var(--color-surface) 80%);background-size:200% 100%;animation:1.4s linear infinite shimmer;display:block}.ui-chip{border-radius:var(--radius-pill);white-space:nowrap;background:var(--color-surface-hover);color:var(--color-text-muted);align-items:center;gap:6px;font-weight:600;display:inline-flex}.ui-chip--md{height:30px;font-size:var(--text-sm);padding:0 12px}.ui-chip--sm{height:24px;font-size:var(--text-xs);padding:0 9px}.ui-chip--accent{background:var(--color-accent-soft);color:var(--color-accent)}.ui-chip--success{background:var(--color-success-soft);color:var(--color-success)}.ui-chip--warning{background:var(--color-warning-soft);color:var(--color-warning)}.ui-chip--danger{background:var(--color-danger-soft);color:var(--color-danger)}.ui-chip--info{background:var(--color-info-soft);color:var(--color-info)}.chip-action{border-radius:var(--radius-pill);background:color-mix(in srgb, currentColor 18%, transparent);color:inherit;font-size:var(--text-xs);border:0;align-items:center;gap:4px;margin-left:4px;padding:2px 8px;font-weight:700;display:inline-flex}.ui-segmented{border-radius:var(--radius-pill);background:var(--color-surface);border:1px solid var(--color-border);gap:2px;padding:3px;display:inline-flex}.ui-segmented-option{border-radius:var(--radius-pill);color:var(--color-text-muted);transition:background var(--duration-base) var(--ease-out), color var(--duration-fast) ease;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;font-weight:600;display:inline-flex}.ui-segmented--md .ui-segmented-option{height:34px;font-size:var(--text-sm);padding:0 16px}.ui-segmented--sm .ui-segmented-option{height:28px;font-size:var(--text-xs);padding:0 12px}.ui-segmented-option:hover{color:var(--color-text)}.ui-segmented-option.has-hold{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.ui-segmented-option.is-active{background:var(--color-bg-elevated);color:var(--color-text);box-shadow:var(--shadow-sm)}.ui-field{flex-direction:column;gap:6px;display:flex}.ui-field-label{font-size:var(--text-sm);color:var(--color-text);font-weight:600}.ui-field-control{align-items:center;gap:var(--space-2);height:50px;padding:0 var(--space-4);border-radius:var(--radius-md);background:var(--color-bg-elevated);border:1.5px solid var(--color-border-strong);transition:border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;display:flex}.ui-field-control:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-soft)}.ui-field.has-error .ui-field-control{border-color:var(--color-danger)}.ui-field.has-error .ui-field-control:focus-within{box-shadow:0 0 0 4px var(--color-danger-soft)}.ui-field-prefix{color:var(--color-text-subtle);display:flex}.ui-field-control input{min-width:0;height:100%;font-size:var(--text-lg);background:0 0;border:0;outline:none;flex:1;font-weight:500}.ui-field-control input::placeholder{color:var(--color-text-subtle);font-weight:400}.ui-field-message{font-size:var(--text-xs);color:var(--color-text-subtle)}.ui-field-message.is-error{color:var(--color-danger);font-weight:500}.ui-progress{border-radius:var(--radius-pill);background:var(--color-surface-hover);height:8px;overflow:hidden}.ui-progress-fill{border-radius:inherit;background:linear-gradient(90deg, var(--color-accent), var(--color-accent-strong));height:100%;transition:width var(--duration-slow) var(--ease-out)}.ui-ring{flex:none;position:relative}.ui-ring>svg{position:absolute;inset:0}.ui-ring-track{stroke:var(--color-surface-hover)}.ui-ring-fill{stroke:var(--color-accent);transition:stroke-dashoffset var(--duration-slow) var(--ease-out)}.ui-ring-content{place-items:center;display:grid;position:absolute;inset:0}.ui-state{text-align:center;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-5);border-radius:var(--radius-lg);animation:fade-in var(--duration-slow) ease;flex-direction:column;display:flex}.ui-state--compact{padding:var(--space-6) var(--space-4);background:var(--color-surface);border:1px dashed var(--color-border-strong)}.ui-state-icon{background:var(--color-accent-soft);width:60px;height:60px;color:var(--color-accent);margin-bottom:var(--space-1);border-radius:20px;place-items:center;display:grid}.ui-state--danger .ui-state-icon{background:var(--color-danger-soft);color:var(--color-danger)}.ui-state--warning .ui-state-icon{background:var(--color-warning-soft);color:var(--color-warning)}.ui-state--info .ui-state-icon{background:var(--color-info-soft);color:var(--color-info)}.ui-state-title{font-size:var(--text-xl)}.ui-state-description{max-width:380px;color:var(--color-text-muted)}.ui-state-action{justify-content:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.ui-banner{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);animation:rise-in var(--duration-base) var(--ease-out);border:1px solid #0000;display:flex}.ui-banner-icon{flex:none;padding-top:1px;display:flex}.ui-banner-content{min-width:0;font-size:var(--text-sm);flex-direction:column;flex:1;gap:2px;display:flex}.ui-banner-text{color:var(--color-text-muted)}.ui-banner-action{flex:none;align-self:center}.ui-banner--info{background:var(--color-info-soft);border-color:color-mix(in srgb, var(--color-info) 25%, transparent)}.ui-banner--info .ui-banner-icon{color:var(--color-info)}.ui-banner--warning{background:var(--color-warning-soft);border-color:color-mix(in srgb, var(--color-warning) 25%, transparent)}.ui-banner--warning .ui-banner-icon{color:var(--color-warning)}.ui-banner--danger{background:var(--color-danger-soft);border-color:color-mix(in srgb, var(--color-danger) 25%, transparent)}.ui-banner--danger .ui-banner-icon{color:var(--color-danger)}.ui-banner--success{background:var(--color-success-soft);border-color:color-mix(in srgb, var(--color-success) 25%, transparent)}.ui-banner--success .ui-banner-icon{color:var(--color-success)}body.ui-scroll-locked{overflow:hidden}.ui-sheet-root{z-index:100;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.ui-sheet-backdrop{background:var(--color-overlay);-webkit-backdrop-filter:blur(3px);animation:fade-in var(--duration-base) ease;position:absolute;inset:0}.ui-sheet{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-height:92dvh;box-shadow:var(--shadow-lg);animation:sheet-up var(--duration-slow) var(--ease-out);padding-bottom:var(--safe-bottom);border-bottom:0;outline:none;flex-direction:column;display:flex;position:relative}.ui-sheet-grabber{border-radius:var(--radius-pill);background:var(--color-border-strong);flex:none;width:40px;height:5px;margin:10px auto 0}.ui-sheet-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-2);flex:none;display:flex}.ui-sheet-title{font-size:var(--text-xl)}.ui-sheet-description{color:var(--color-text-muted);font-size:var(--text-sm);margin-top:6px}.ui-sheet-body{min-height:0;padding:var(--space-2) var(--space-5) var(--space-5);flex:1;overflow-y:auto}.ui-sheet-footer{justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5) var(--space-5);border-top:1px solid var(--color-border);flex:none;display:flex}@media (width>=640px){.ui-sheet-root--sheet,.ui-sheet-root--dialog{padding:var(--space-6);align-items:center}.ui-sheet--sheet,.ui-sheet--dialog{border-radius:var(--radius-xl);border-bottom:1px solid var(--color-border);max-width:520px;animation:dialog-in var(--duration-base) var(--ease-out)}.ui-sheet--sheet .ui-sheet-grabber{display:none}}.ui-sheet-root--fullscreen{align-items:stretch}.ui-sheet--fullscreen{color:#f4f4f7;height:100%;max-height:none;animation:fade-in var(--duration-base) ease;background:#07070c;border:0;border-radius:0}.ui-sheet--fullscreen .ui-sheet-header{z-index:2;padding:calc(var(--safe-top) + var(--space-3)) var(--space-3);position:absolute;top:0;right:0}.ui-sheet--fullscreen .ui-sheet-body{padding:0;display:flex}@keyframes sheet-up{0%{transform:translateY(100%)}}@keyframes dialog-in{0%{opacity:0;transform:translateY(10px)scale(.97)}}.ui-toast-region{top:calc(var(--safe-top) + var(--topbar-h) + var(--space-2));z-index:200;width:min(440px, calc(100% - 2 * var(--gutter)));gap:var(--space-2);pointer-events:none;flex-direction:column;display:flex;position:fixed;left:50%;transform:translate(-50%)}.ui-toast{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);box-shadow:var(--shadow-lg);pointer-events:auto;animation:toast-in var(--duration-slow) var(--ease-spring);display:flex}.ui-toast-icon{padding-top:1px;display:flex}.ui-toast--success .ui-toast-icon{color:var(--color-success)}.ui-toast--info .ui-toast-icon{color:var(--color-info)}.ui-toast--warning .ui-toast-icon{color:var(--color-warning)}.ui-toast--danger .ui-toast-icon{color:var(--color-danger)}.ui-toast-content{min-width:0;font-size:var(--text-sm);flex:1}.ui-toast-content p{color:var(--color-text-muted);margin-top:2px}.ui-toast-content--tap{color:inherit;font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.ui-toast-content--tap:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}.ui-toast-action{border-radius:var(--radius-sm);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--text-sm);border:0;align-self:center;padding:6px 10px;font-weight:700}.ui-toast-close{width:28px;height:28px;color:var(--color-text-subtle);background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.ui-toast-close:hover{background:var(--color-surface-hover);color:var(--color-text)}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px)scale(.96)}}.user-avatar{box-shadow:inset 0 0 0 1.5px #ffffff2e, 0 2px 6px -2px var(--color-shadow);border-radius:50%;flex:none;place-items:center;display:inline-grid}.coat-swatch{width:12px;height:12px;box-shadow:0 0 0 1.5px color-mix(in srgb, var(--color-text) 25%, transparent);border-radius:50%;flex:none;display:inline-block}.coat-swatch--lg{width:18px;height:18px}.coat-icon{flex:none;display:inline-block}.stat-grid{gap:var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}@media (width>=640px){.stat-grid{grid-template-columns:repeat(4,1fr)}}.stat-grid--compact{gap:var(--space-2);grid-template-columns:repeat(4,1fr)}.stat{padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);flex-direction:column;gap:2px;display:flex}.stat-grid--compact .stat{padding:var(--space-3) var(--space-2);align-items:center}.stat-icon{width:32px;height:32px;margin-bottom:var(--space-2);background:var(--color-accent-soft);color:var(--color-accent);border-radius:10px;place-items:center;display:grid}.stat-value{font-family:var(--font-display);font-size:var(--text-2xl);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}.stat-grid--compact .stat-value{font-size:var(--text-xl)}.stat-label{font-size:var(--text-xs);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.cat-crop{background:radial-gradient(circle at 30% 20%, color-mix(in srgb, var(--rarity,var(--color-accent)) 22%, transparent), transparent 60%), var(--color-surface);width:100%;position:relative;overflow:hidden}.cat-crop.is-loading{background:linear-gradient(90deg, var(--color-surface) 0%, var(--color-surface-hover) 40%, var(--color-surface) 80%);background-size:200% 100%;animation:1.4s linear infinite shimmer}.cat-crop img{object-fit:fill;-webkit-user-select:none;user-select:none;max-width:none;transition:opacity var(--duration-base) ease;position:absolute}.cat-crop-fallback{color:var(--color-text-subtle);font-size:var(--text-xs);flex-direction:column;justify-content:center;align-items:center;gap:6px;font-weight:600;display:flex;position:absolute;inset:0}@property --torch{syntax:"<number>";inherits:true;initial-value:0}.spot-card{--mx:.5;--my:.5;--torch:0;--color-text:#1c2130;--color-text-muted:#464d5e;--color-text-subtle:#717889;--color-border:#1c21301f;--color-border-strong:#1c21303d;--color-shadow:#14162347;--color-success:#1f8a55;--color-rarity-common:#69707d;--color-rarity-uncommon:#23835a;--color-rarity-rare:#2a5fc4;--color-rarity-legendary:#a86b0c;--rarity:var(--color-rarity-common);--card-frame-hi:#f3f5f8;--card-frame-lo:#c5cad3;--color-card-inner:#fcfcfb;--card-glare:.35;--color-surface:color-mix(in srgb, var(--rarity) 7%, #f3f4f6);--color-surface-hover:color-mix(in srgb, var(--rarity) 12%, #eceef2);color:var(--color-text);animation:rise-in var(--duration-slow) var(--ease-out) both;position:relative}.spot-card[data-rarity=uncommon]{--rarity:var(--color-rarity-uncommon);--card-frame-hi:#e9f7ef;--card-frame-lo:#8ccfad;--color-card-inner:#f8fdf9;--card-glare:.45}.spot-card[data-rarity=rare]{--rarity:var(--color-rarity-rare);--card-frame-hi:#edf3ff;--card-frame-lo:#8fb4f2;--color-card-inner:#f7faff;--card-glare:.55}.spot-card[data-rarity=legendary]{--rarity:var(--color-rarity-legendary);--card-frame-hi:#fff4d6;--card-frame-lo:#e2ad3f;--color-card-inner:#fffaf0;--card-glare:.65}:root{--card-room:calc(100dvh - var(--topbar-h) - var(--nav-h) - var(--safe-top) - var(--safe-bottom) - var(--space-6))}.page-explore{--explore-toolbar-h:67px;--card-room:calc(100dvh - var(--topbar-h) - var(--nav-h) - var(--safe-top) - var(--safe-bottom) - var(--explore-toolbar-h) - var(--space-6) - 16px)}.spot-card-sheet{--card-room:calc(92dvh - 112px - var(--safe-bottom))}.spot-card-sheet .spot-card--full{margin-inline:auto}.map-tray{--card-room:calc(min(760px, (100dvh - var(--topbar-h) - var(--nav-h) - var(--safe-top) - var(--safe-bottom)) * .94) - 104px)}.spot-card--full{perspective:900px;width:100%;max-width:400px;transition:transform .45s var(--ease-out), --torch .35s ease;touch-action:pan-y;border-radius:22px}.spot-card-frame{background:linear-gradient(150deg, var(--card-frame-lo) 0%, var(--card-frame-hi) 38%, var(--card-frame-hi) 62%, var(--card-frame-lo) 100%);box-shadow:var(--shadow-lg), 0 0 0 1px color-mix(in srgb, var(--rarity) 35%, transparent);transition:box-shadow var(--duration-base) ease;border-radius:22px;flex-direction:column;padding:7px;display:flex}.spot-card-frame>.spot-card-inner{flex:1}.spot-card--full.is-lit{--torch:1;transform:perspective(900px) rotateX(calc((var(--my) - .5) * -10deg)) rotateY(calc((var(--mx) - .5) * 12deg)) translateY(-3px);transition:transform 90ms linear,--torch .35s}.spot-card--full.is-lit .spot-card-frame{box-shadow:0 30px 60px -20px #00000073, 0 0 0 1px color-mix(in srgb, var(--rarity) 60%, transparent), 0 0 44px -10px color-mix(in srgb, var(--rarity) 55%, transparent)}.spot-card--full.is-pressed{transform:perspective(900px) rotateX(calc((var(--my) - .5) * -10deg)) rotateY(calc((var(--mx) - .5) * 12deg)) scale(.985)}.spot-card[data-rarity=rare] .spot-card-frame{background:linear-gradient(calc(120deg + var(--mx) * 60deg), var(--card-frame-lo) 0%, #d9e6ff 25%, #efe4ff 45%, #dff6ff 60%, var(--card-frame-hi) 75%, var(--card-frame-lo) 100%)}.spot-card[data-rarity=legendary] .spot-card-frame{background:conic-gradient(from calc(var(--mx) * 360deg), #e2ad3f, #fff1c2, #c98a12, #f7d27a, #b8780f, #e2ad3f)}.spot-card--full:before{content:"";z-index:5;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at calc(var(--mx) * 100%) calc(var(--my) * 100%), rgba(255, 255, 255, calc(var(--card-glare) * var(--torch))) 0%, #fff0 45%);mix-blend-mode:soft-light;position:absolute;inset:0}.spot-card:after{content:"";z-index:6;border-radius:inherit;pointer-events:none;opacity:0;background:color-mix(in srgb, var(--color-bg) 34%, #0000001a);mix-blend-mode:multiply;transition:opacity var(--duration-slow) ease;position:absolute;inset:0}:root[data-scheme=dark] .spot-card:after{opacity:1;-webkit-mask-image:radial-gradient(circle at calc(var(--mx) * 100%) calc(var(--my) * 100%), rgba(0, 0, 0, calc(1 - var(--torch) * .8)) 0%, #000 calc(15% + var(--torch) * 40%));-webkit-mask-image:radial-gradient(circle at calc(var(--mx) * 100%) calc(var(--my) * 100%), rgba(0, 0, 0, calc(1 - var(--torch) * .8)) 0%, #000 calc(15% + var(--torch) * 40%));mask-image:radial-gradient(circle at calc(var(--mx) * 100%) calc(var(--my) * 100%), rgba(0, 0, 0, calc(1 - var(--torch) * .8)) 0%, #000 calc(15% + var(--torch) * 40%))}@media (prefers-reduced-motion:reduce){.spot-card--full,.spot-card--full.is-lit,.spot-card--full.is-pressed{transition:--torch .2s;transform:none}}.spot-card-inner{background:radial-gradient(120% 60% at 50% 0%, color-mix(in srgb, var(--rarity) 12%, transparent), transparent 60%), var(--color-card-inner);border:1px solid color-mix(in srgb, var(--rarity) 28%, transparent);border-radius:16px;flex-direction:column;gap:10px;padding:12px;display:flex}.spot-card-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.spot-card-title{min-width:0}.spot-card-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--rarity);align-items:center;gap:4px;font-size:10px;font-weight:700;display:inline-flex}.spot-card-name{font-family:var(--font-display);letter-spacing:-.015em;font-size:1.5rem;font-weight:700;line-height:1.05}.spot-card--full .spot-card-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.spot-card-xp{flex:none;align-items:center;gap:5px;padding-top:4px;display:flex}.spot-card-xp span:first-child{letter-spacing:.08em;color:var(--color-text-subtle);font-size:10px;font-weight:800}.spot-card-xp strong{font-family:var(--font-display);color:var(--color-text);font-variant-numeric:tabular-nums;font-size:1.5rem;line-height:1}.spot-card-art{border:2px solid color-mix(in srgb, var(--rarity) 55%, var(--color-border));width:100%;box-shadow:inset 0 0 0 1px #0003, 0 4px 14px -6px var(--color-shadow);cursor:zoom-in;background:0 0;border-radius:12px;padding:0;display:block;position:relative;overflow:hidden}.spot-card-art:disabled{cursor:default}.spot-card-art .cat-crop img{transition:transform var(--duration-slow) var(--ease-out), opacity var(--duration-base) ease}@media (hover:hover){.spot-card-art:hover:not(:disabled) .cat-crop img{transform:scale(1.04)}}.spot-card-holo{pointer-events:none;background:linear-gradient(115deg, transparent calc(var(--mx) * 100% - 30%), #ffffff47 calc(var(--mx) * 100%), transparent calc(var(--mx) * 100% + 30%)), repeating-linear-gradient(-45deg, #ff00b40f 0 6px, #00dcff0f 6px 12px, #ffe6000f 12px 18px);mix-blend-mode:overlay;opacity:.9;position:absolute;inset:0}.spot-card-zoom{color:#fff;-webkit-backdrop-filter:blur(6px);opacity:.85;background:#00000073;border-radius:50%;place-items:center;width:28px;height:28px;display:grid;position:absolute;bottom:8px;right:8px}.spot-card-sync{border-radius:var(--radius-pill);color:#fff;-webkit-backdrop-filter:blur(6px);background:#0000008c;align-items:center;gap:5px;height:24px;padding:0 9px;font-size:11px;font-weight:600;display:inline-flex;position:absolute;top:8px;left:8px}.spot-card-sync .is-spinning{animation:.9s linear infinite spin}@media (prefers-reduced-motion:reduce){.spot-card-sync .is-spinning{animation:none}}.spot-card-sync.is-warning{background:color-mix(in srgb, var(--color-warning) 85%, #000);color:#1d1300}.spot-card-typeline{white-space:nowrap;background:color-mix(in srgb, var(--rarity) 12%, var(--color-surface));font-size:var(--text-xs);color:var(--color-text-muted);border-radius:8px;align-items:center;gap:7px;padding:6px 10px;font-weight:600;display:flex;overflow:hidden}.spot-card-typeline-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.spot-card-count{background:color-mix(in srgb, var(--rarity) 22%, var(--color-surface));color:var(--color-text);border-radius:999px;flex:none;align-items:center;gap:3px;padding:1px 6px;font-size:11px;font-weight:700;display:inline-flex}.spot-card-facts{font-size:var(--text-xs);grid-template-columns:auto 1fr;gap:4px 12px;margin:4px 0 0;display:grid}.spot-card-facts dt{color:var(--color-text-subtle)}.spot-card-facts dd{text-align:right;margin:0;font-weight:600}:root .spot-card--full.is-turning:before,:root .spot-card--full.is-turning:after{opacity:0;transition:none}.spot-card-faces{transform-style:preserve-3d;transition:transform .7s cubic-bezier(.34,1.25,.5,1);display:grid}.spot-card-faces.is-flipped{transform:rotateY(180deg)}.spot-card-faces>*{backface-visibility:hidden;transition:visibility 0s .35s, box-shadow var(--duration-base) ease;grid-area:1/1}.spot-card-face--back{cursor:pointer;transform:rotateY(180deg)}.spot-card-faces>.is-away{visibility:hidden}.spot-card-flip{width:24px;height:24px;color:var(--color-text-subtle);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.spot-card-flip:hover{color:var(--color-text)}.spot-card-back{height:100%}.spot-card-back-id{flex-direction:column;gap:6px;display:flex}.spot-card-barcode{border-radius:4px;width:100%;height:56px;display:block}.spot-card-back-id code{font-family:var(--font-mono);word-break:break-all;color:var(--color-text-subtle);text-align:center;font-size:10px;line-height:1.3}.spot-card-back-hint{color:var(--color-text-subtle);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);align-items:flex-start;gap:6px;margin:0 0 6px;padding:6px 8px;font-size:12px;line-height:1.35;display:flex}.spot-card-back-hint svg{flex:none;margin-top:1px}.spot-card-facts.is-waiting dd{color:var(--color-text-subtle);font-style:italic}.spot-card-back-title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-subtle);margin:0 0 4px;font-size:12px}.spot-card-fact{display:contents}@media (prefers-reduced-motion:reduce){.spot-card-faces{transition:none}}.spot-card-number{font-family:var(--font-mono);letter-spacing:.04em;color:var(--color-text-subtle);margin-left:auto;font-size:11px}.spot-card{--move-row:50px}.spot-card-moves{height:calc(var(--move-row) * 3);flex-direction:column;display:flex;overflow:hidden}.spot-card-move{height:var(--move-row);flex:none;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 2px;display:grid}.spot-card-move strong,.spot-card-move p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.spot-card-move-more{width:100%;font:inherit;font-size:var(--text-sm);color:var(--rarity);cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;gap:4px;font-weight:700;display:flex}.spot-card-move-more:hover{background:color-mix(in srgb, var(--rarity) 10%, transparent)}.spot-card-moves--all{height:auto;overflow:visible}.spot-card-moves--all .spot-card-move{height:auto;min-height:var(--move-row);padding:8px 2px}.spot-card-moves--all .spot-card-move strong,.spot-card-moves--all .spot-card-move p{white-space:normal}.spot-card-badge-icon{background:color-mix(in srgb, var(--badge) 16%, transparent);color:var(--badge)}.spot-card-move+.spot-card-move{border-top:1px solid var(--color-border)}.spot-card-move-icon{background:color-mix(in srgb, var(--rarity) 16%, transparent);width:32px;height:32px;color:var(--rarity);border-radius:10px;place-items:center;display:grid}.spot-card-move strong{font-size:var(--text-md);line-height:1.2;display:block}.spot-card-move p{font-size:var(--text-xs);color:var(--color-text-subtle);line-height:1.35}.spot-card-move-effect{font-family:var(--font-display);font-weight:700;font-size:var(--text-md);white-space:nowrap;color:var(--color-text)}.spot-card-badges{flex-wrap:nowrap;gap:6px;height:26px;display:flex;overflow:hidden}.spot-card-badge{border-radius:var(--radius-pill);min-width:0;height:26px;color:var(--badge);background:color-mix(in srgb, var(--badge) 14%, transparent);border:1px solid color-mix(in srgb, var(--badge) 35%, transparent);flex:0 auto;align-items:center;gap:5px;padding:0 10px 0 8px;font-size:11px;font-weight:700;display:inline-flex}.spot-card-badge>svg{flex:none}.spot-card-badge-more{--badge:var(--color-text-muted);font:inherit;cursor:pointer;flex:none;gap:2px;padding:0 6px 0 10px;font-size:11px;font-weight:700}.spot-card-badge-more:hover{--badge:var(--color-text)}.spot-card-foot{border-top:1px dashed var(--color-border-strong);flex-direction:column;gap:8px;padding-top:10px;display:flex}.spot-card-author{font-size:var(--text-sm);align-items:center;gap:8px;min-width:0;font-weight:600;display:flex}.spot-card-meta{font-size:var(--text-xs);color:var(--color-text-subtle);flex-wrap:nowrap;gap:4px 14px;display:flex;overflow:hidden}.spot-card-meta span{white-space:nowrap;align-items:center;gap:5px;min-width:0;display:inline-flex}.spot-card-details{z-index:3;background:color-mix(in srgb, var(--color-card-inner) 35%, transparent);-webkit-backdrop-filter:blur(5px)saturate(.9);animation:fade-in var(--duration-base) var(--ease-out) both;cursor:default;border-radius:16px;outline:none;align-items:flex-end;padding:10px;display:flex;position:absolute;inset:7px}.spot-card-details-panel{overscroll-behavior:contain;background:color-mix(in srgb, var(--color-card-inner) 92%, transparent);border:1px solid color-mix(in srgb, var(--rarity) 35%, var(--color-border));width:100%;max-height:100%;box-shadow:0 18px 40px -16px var(--color-shadow);animation:rise-in var(--duration-base) var(--ease-out) both;border-radius:14px;padding:12px 14px 14px;overflow:auto}.spot-card-details-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.spot-card-details-head strong{font-family:var(--font-display);font-size:var(--text-lg)}.spot-card-details-close{background:color-mix(in srgb, var(--color-text) 8%, transparent);width:30px;height:30px;color:var(--color-text);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.spot-card-details-section+.spot-card-details-section{margin-top:10px}.spot-card-details-section h4{letter-spacing:.12em;text-transform:uppercase;color:var(--rarity);margin-bottom:2px;font-size:10px;font-weight:700}.spot-card--full.has-details,.spot-card--full.has-details:hover{transform-style:flat;transform:none}.spot-card.is-interactive{cursor:pointer}.spot-card--compact{background:linear-gradient(160deg, var(--card-frame-lo), var(--card-frame-hi) 60%);width:168px;box-shadow:var(--shadow-md);border-radius:18px;flex:none;padding:5px}.spot-card--compact .spot-card-art{border-width:0;border-radius:13px}.spot-card-compact-body{flex-direction:column;gap:4px;padding:8px 6px 6px;display:flex}.spot-card-compact-title{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.spot-card--compact .spot-card-name{font-size:var(--text-lg)}.spot-card-xp-inline{color:var(--rarity);white-space:nowrap;font-size:11px;font-weight:800}.spot-card-compact-meta{color:var(--color-text-subtle);align-items:center;gap:5px;min-width:0;font-size:11px;font-weight:600;display:flex}.spot-card--compact .spot-card-sync{top:6px;left:6px}.spot-card--compact .spot-card-zoom{width:24px;height:24px;bottom:6px;right:6px}.spot-card--skeleton{background:var(--color-surface);box-shadow:none;animation:none}.spot-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));place-items:start center;display:grid}.spot-grid-more{grid-column:1/-1;justify-content:center;min-height:32px;display:flex}.card-row{gap:var(--space-3);scroll-snap-type:x mandatory;margin:0 calc(-1 * var(--gutter));padding:4px var(--gutter) var(--space-4);scrollbar-width:none;display:flex;overflow-x:auto}.card-row::-webkit-scrollbar{display:none}.card-row>*{scroll-snap-align:start}.card-row-skeleton{border-radius:18px;flex:none;width:168px;height:236px}.photo-viewer-layout{cursor:zoom-out;flex-direction:column;flex:1;min-height:0;display:flex}.photo-viewer-layout button{cursor:pointer}.photo-viewer-stage{min-height:0;padding:calc(var(--safe-top) + 64px) var(--space-3) var(--space-3);flex:1;place-items:center;display:grid}.photo-viewer-frame{aspect-ratio:var(--aspect,4 / 3);width:min(100%, calc((100dvh - 200px) * var(--aspect,1.333)));border-radius:var(--radius-md);max-height:100%;position:relative;overflow:hidden;box-shadow:0 30px 80px -20px #000c}.photo-viewer-frame.is-loading{color:#aaa;background:#15151d;place-items:center;display:grid}.photo-viewer-frame.is-loading img{opacity:0;position:absolute}.photo-viewer-frame img{object-fit:contain;width:100%;height:100%;animation:fade-in var(--duration-base) ease}.photo-viewer-box{animation:fade-in var(--duration-slow) ease;pointer-events:none;border:2px solid #ffd479;border-radius:10px;position:absolute;box-shadow:0 0 0 9999px #00000059,0 0 24px #ffd47980}.photo-viewer-box span{color:#2b1d00;background:#ffd479;border-radius:6px 6px 6px 0;padding:2px 8px;font-size:12px;font-weight:700;position:absolute;top:-26px;left:-2px}.photo-viewer-error{align-items:center;gap:var(--space-3);text-align:center;color:#b8b8c4;flex-direction:column;max-width:320px;display:flex}.photo-viewer-caption{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5) calc(var(--safe-bottom) + var(--space-5));display:flex}.photo-viewer-caption strong{font-family:var(--font-display);font-size:var(--text-xl);display:block}.photo-viewer-caption span{font-size:var(--text-sm);color:#a3a3b3}.photo-viewer-toggle{border-radius:var(--radius-pill);color:#e6e6ee;height:36px;font-size:var(--text-sm);background:#ffffff0f;border:1px solid #fff3;flex:none;align-items:center;gap:6px;padding:0 14px;font-weight:600;display:inline-flex}.photo-viewer-toggle.is-active{color:#2b1d00;background:#ffd479;border-color:#ffd479}.explore-toolbar{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.explore-toolbar .ui-icon-btn{margin-left:auto}.explore-hold-menu{top:calc(100% + 6px);left:clamp(var(--gutter), var(--anchor-x,0px), calc(100% - 240px - var(--gutter)));z-index:7;width:240px;max-width:calc(100% - 2 * var(--gutter));border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);box-shadow:var(--shadow-lg);animation:dialog-in var(--duration-base) var(--ease-out);padding:4px;position:absolute}.explore-hold-switch{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-md);text-align:left;background:0 0;border:0;font-weight:600;display:flex}.explore-hold-track{border-radius:var(--radius-pill);background:var(--color-border-strong,var(--color-border));width:38px;height:22px;transition:background var(--duration-base) var(--ease-out);flex:none;position:relative}.explore-hold-track:after{content:"";width:16px;height:16px;transition:transform var(--duration-base) var(--ease-out);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.explore-hold-label{align-items:center;gap:var(--space-2);display:inline-flex}.explore-hold-switch[aria-checked=true] .explore-hold-track{background:var(--color-accent)}.explore-hold-switch[aria-checked=true] .explore-hold-track:after{transform:translate(16px)}.page-explore.is-map{gap:0;max-width:none;height:100%;padding:0;animation:none;position:relative}.page-explore.is-map .explore-toolbar{top:var(--space-3);left:var(--gutter);right:var(--gutter);z-index:5;pointer-events:none;position:absolute}.page-explore.is-map .explore-toolbar>*{pointer-events:auto;box-shadow:var(--shadow-md)}.page-explore.is-map .explore-toolbar .ui-segmented{background:color-mix(in srgb, var(--color-bg-elevated) 88%, transparent);-webkit-backdrop-filter:blur(12px)}.page-explore.is-map .explore-toolbar .ui-icon-btn{background:color-mix(in srgb, var(--color-bg-elevated) 88%, transparent);border:1px solid var(--color-border)}.page-explore.is-map>.ui-state{margin:auto}.map-view{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.map-view-banners{top:128px;left:var(--gutter);right:var(--gutter);z-index:4;gap:var(--space-2);flex-direction:column;max-width:520px;display:flex;position:absolute}.map-view-banners .ui-banner{background-color:var(--color-bg-elevated);box-shadow:var(--shadow-md)}.map-view-canvas{background:var(--color-bg-elevated);flex:1;min-height:0;position:relative}.spot-map-canvas,.spot-map-canvas.maplibregl-map{position:absolute;inset:0}.map-view-loading{color:var(--color-text-muted);place-items:center;display:grid;position:absolute;inset:0}.map-view-chip{left:50%;bottom:var(--space-5);z-index:3;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-bg-elevated) 92%, transparent);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-md);font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:8px;padding:9px 16px;font-weight:600;display:inline-flex;position:absolute;transform:translate(-50%)}.map-view-chip.is-action{color:var(--color-accent)}.map-view-controls{right:var(--space-3);z-index:3;gap:var(--space-2);flex-direction:column;display:flex;position:absolute;top:128px}.map-marker{border:3px solid var(--color-accent);background:var(--color-surface);width:50px;height:50px;transition:transform var(--duration-base) var(--ease-spring), border-color var(--duration-fast) ease;cursor:pointer;border-radius:50%;padding:0;position:relative;box-shadow:0 6px 16px -4px #0000008c}.map-marker.is-mine{border-color:var(--color-success)}.map-marker:hover{transform:scale(1.08)}.map-marker.is-selected{border-color:var(--color-accent-strong);box-shadow:0 0 0 5px var(--color-accent-soft), 0 10px 22px -6px #0009;z-index:2;transform:scale(1.18)}.map-marker-thumb{background:radial-gradient(circle, var(--color-accent-soft), var(--color-surface));border-radius:50%;position:absolute;inset:0;overflow:hidden}.map-marker-thumb img{max-width:none;transition:opacity var(--duration-base) ease;position:absolute}.map-marker-count{border-radius:var(--radius-pill);background:var(--color-accent);min-width:22px;height:22px;color:var(--color-on-accent);text-align:center;box-shadow:0 0 0 2px var(--color-bg-elevated);padding:0 6px;font-size:11px;font-weight:800;line-height:22px;position:absolute;top:-6px;right:-8px}.map-tray{z-index:6;border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:color-mix(in srgb, var(--color-bg-elevated) 94%, transparent);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--color-border);max-height:min(94%,760px);box-shadow:0 -20px 40px -20px var(--color-shadow);animation:sheet-up var(--duration-slow) var(--ease-out);flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0}.map-tray-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-2) var(--space-5);display:flex}.map-tray-header strong{font-family:var(--font-display);font-size:var(--text-lg);display:block}.map-tray-header span{font-size:var(--text-xs);color:var(--color-text-subtle)}.map-tray-cards{align-items:flex-start;gap:var(--space-4);scroll-snap-type:x mandatory;padding:var(--space-2) var(--space-5) var(--space-5);overscroll-behavior:contain;display:flex;overflow:auto}.map-tray-card{scroll-snap-align:center;flex:none;width:min(330px,84vw)}.maplibregl-ctrl-group{border:1px solid var(--color-border);overflow:hidden;background:var(--color-bg-elevated)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-md)!important}.maplibregl-ctrl-group button+button{border-top-color:var(--color-border)!important}[data-scheme=dark] .maplibregl-ctrl-group .maplibregl-ctrl-icon{filter:invert()brightness(.9)}.maplibregl-ctrl-bottom-right{bottom:var(--space-3);right:var(--space-1)}.maplibregl-ctrl-attrib{color:var(--color-text-subtle);font-size:10px;background:color-mix(in srgb, var(--color-bg-elevated) 85%, transparent)!important}.maplibregl-ctrl-attrib a{color:var(--color-text-muted)!important}[data-scheme=dark] .maplibregl-ctrl-attrib-button{filter:invert()}.page-capture.is-camera{max-width:none;height:100%;padding:0;animation:none;position:relative}.page-capture--result{max-width:560px}.camera{color:#fff;background:#050507;height:100%;position:relative;overflow:hidden}.camera-video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.camera.is-mirrored .camera-video{transform:scaleX(-1)}.camera-starting{color:#ddd;place-items:center;display:grid;position:absolute;inset:0}.camera-reticle{aspect-ratio:1;pointer-events:none;width:min(72vw,360px);position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}.camera-reticle span{filter:drop-shadow(0 1px 3px #00000080);border:0 solid #ffffffd9;width:34px;height:34px;position:absolute}.camera-reticle span:first-child{border-top-width:3px;border-left-width:3px;border-top-left-radius:14px;top:0;left:0}.camera-reticle span:nth-child(2){border-top-width:3px;border-right-width:3px;border-top-right-radius:14px;top:0;right:0}.camera-reticle span:nth-child(3){border-bottom-width:3px;border-left-width:3px;border-bottom-left-radius:14px;bottom:0;left:0}.camera-reticle span:nth-child(4){border-bottom-width:3px;border-right-width:3px;border-bottom-right-radius:14px;bottom:0;right:0}.camera-flash{background:#fff;animation:.22s ease-out forwards flash;position:absolute;inset:0}@keyframes flash{0%{opacity:.85}to{opacity:0}}.camera-video{transform-origin:50%;will-change:transform}.camera-gestures{touch-action:none;position:absolute;inset:0}.camera-focus{pointer-events:none;border:2px solid #ffd54a;border-radius:14px;width:68px;height:68px;margin:-34px 0 0 -34px;animation:1.1s ease-out forwards camera-focus;position:absolute}@keyframes camera-focus{0%{opacity:0;transform:scale(1.35)}15%{opacity:1;transform:scale(1)}80%{opacity:1}to{opacity:0}}.camera-zoom-hud{-webkit-backdrop-filter:blur(10px);font-variant-numeric:tabular-nums;pointer-events:none;background:#0a0a1099;border-radius:999px;padding:6px 14px;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.camera-zoombar{margin-bottom:var(--space-5);-webkit-backdrop-filter:blur(10px);background:#0a0a1073;border-radius:999px;grid-column:1/-1;justify-self:center;gap:6px;padding:4px;display:flex}.camera-zoombtn{color:#f1f1f6;font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:999px;min-width:40px;height:36px;padding:0 10px;font-size:.8rem;font-weight:600}.camera-zoombtn.is-active{color:#111;background:#ffffffeb}.camera-controls{padding:var(--space-8) var(--space-7) var(--space-6);background:linear-gradient(#0000,#0009);flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0}.camera-controls-row{grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.camera-zoombar{align-self:center}.camera-controls-side{justify-content:center;display:flex}.camera-shutter{width:78px;height:78px;transition:transform var(--duration-fast) ease, opacity var(--duration-fast) ease;background:0 0;border:4px solid #fff;border-radius:50%;place-items:center;padding:0;display:grid;box-shadow:0 6px 20px #00000059}.camera-shutter span{width:62px;height:62px;transition:transform var(--duration-fast) ease, background var(--duration-fast) ease;background:#fff;border-radius:50%}.camera-shutter:active:not(:disabled) span{transform:scale(.88)}.camera-shutter:disabled{opacity:.45}.camera-status{top:var(--space-4);max-width:calc(100% - 2 * var(--gutter));position:absolute;left:50%;transform:translate(-50%)}.camera-status .ui-chip{color:#f1f1f6;-webkit-backdrop-filter:blur(10px);background:#0a0a10b3}.camera-status .ui-chip--danger{color:#ffb3aa}.camera--error{padding:var(--space-6);background:var(--color-bg);color:var(--color-text);place-items:center;display:grid}.camera-error{align-items:center;gap:var(--space-3);text-align:center;flex-direction:column;max-width:380px;display:flex}.camera-error-icon{background:var(--color-danger-soft);width:64px;height:64px;color:var(--color-danger);border-radius:22px;place-items:center;display:grid}.camera-error h3{font-size:var(--text-xl)}.camera-error p{color:var(--color-text-muted)}.camera-error-actions{justify-content:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.capture-progress{align-items:center;gap:var(--space-6);padding-top:var(--space-5);flex-direction:column;display:flex}.capture-progress-frame{aspect-ratio:4/3;border-radius:var(--radius-lg);background:var(--color-surface);width:min(100%,420px);box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.capture-progress-frame img{object-fit:cover;filter:saturate(.9);width:100%;height:100%}.capture-progress-scan{background:linear-gradient(to bottom, transparent 0%, color-mix(in srgb, var(--color-accent) 45%, transparent) 48%, var(--color-accent) 50%, transparent 52%);mix-blend-mode:screen;background-size:100% 220%;animation:1.8s ease-in-out infinite scan;position:absolute;inset:0}@keyframes scan{0%{background-position:0 100%}to{background-position:0 -120%}}.capture-progress-steps{gap:var(--space-3);flex-direction:column;width:min(100%,340px);margin:0;padding:0;list-style:none;display:flex}.capture-progress-steps li{align-items:center;gap:var(--space-3);color:var(--color-text-subtle);transition:color var(--duration-base) ease;font-weight:500;display:flex}.capture-progress-steps li.is-active{color:var(--color-text)}.capture-progress-steps li.is-done{color:var(--color-text-muted)}.capture-progress-dot{border:2px solid var(--color-border-strong);border-radius:50%;flex:none;place-items:center;width:24px;height:24px;display:grid}.is-active .capture-progress-dot{border-color:var(--color-accent);color:var(--color-accent)}.is-done .capture-progress-dot{border-color:var(--color-success);background:var(--color-success);color:var(--color-bg)}.capture-result{gap:var(--space-5);flex-direction:column;display:flex}.capture-result-hero{text-align:center;animation:pop-in var(--duration-slow) var(--ease-spring)}.capture-result-kicker{border-radius:var(--radius-pill);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:6px;padding:4px 12px;font-weight:800;display:inline-flex}.capture-result-hero h2{margin-top:var(--space-2);font-size:var(--text-3xl);color:var(--color-accent)}.capture-result-hero.is-rejected .capture-result-kicker{background:var(--color-danger-soft);color:var(--color-danger)}.capture-result-hero.is-rejected h2{color:var(--color-text);font-size:var(--text-2xl)}.capture-result-hero.is-rejected+.capture-result-card{filter:grayscale(.6);opacity:.8}.capture-result-card{animation:card-reveal .7s var(--ease-out) both;perspective:1200px;justify-content:center;display:flex}@keyframes card-reveal{0%{opacity:0;transform:rotateY(-90deg)scale(.9)}}.capture-result-section{gap:var(--space-3);flex-direction:column;display:flex}.capture-result-section h3{font-size:var(--text-lg)}.capture-result-badges{gap:var(--space-2);display:grid}.badge-unlock{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);background:color-mix(in srgb, var(--badge) 10%, var(--color-surface));border:1px solid color-mix(in srgb, var(--badge) 40%, transparent);animation:rise-in var(--duration-slow) var(--ease-spring) both;display:flex}.badge-unlock-icon{background:color-mix(in srgb, var(--badge) 22%, transparent);width:44px;height:44px;color:var(--badge);border-radius:14px;place-items:center;display:grid}.badge-unlock strong{display:block}.badge-unlock span{font-size:var(--text-xs);color:var(--color-text-muted)}.xp-breakdown{padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);gap:var(--space-2);flex-direction:column;margin:0;display:flex}.xp-breakdown div{font-size:var(--text-sm);justify-content:space-between;display:flex}.xp-breakdown dt{color:var(--color-text-muted)}.xp-breakdown dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.xp-breakdown-total{padding-top:var(--space-2);border-top:1px dashed var(--color-border-strong)}.xp-breakdown-total dt,.xp-breakdown-total dd{color:var(--color-text);font-size:var(--text-md)}.xp-breakdown-total dd{color:var(--color-accent)}.capture-result-note{font-size:var(--text-sm);color:var(--color-text-subtle)}.capture-result-actions{gap:var(--space-2);flex-direction:column;display:flex}.capture-result--miss{text-align:center;padding-top:var(--space-5);align-items:center}.capture-result--miss h2{font-size:var(--text-2xl)}.capture-result--miss p{max-width:360px;color:var(--color-text-muted)}.capture-miss-frame{aspect-ratio:4/3;border-radius:var(--radius-lg);background:var(--color-surface);width:min(100%,320px);position:relative;overflow:hidden}.capture-miss-frame img{object-fit:cover;filter:grayscale(.7)brightness(.7);width:100%;height:100%}.capture-miss-icon{color:#fff;place-items:center;display:grid;position:absolute;inset:0}.capture-waiting-spinner{color:#fff;background:color-mix(in srgb, var(--color-surface) 40%, transparent);place-items:center;display:grid;position:absolute;inset:0}.capture-countdown{color:#fff;font-variant-numeric:tabular-nums;text-shadow:0 2px 12px #00000080;background:color-mix(in srgb, var(--color-surface) 35%, transparent);place-items:center;font-size:56px;font-weight:700;animation:1s ease-in-out infinite alternate capture-countdown-pulse;display:grid;position:absolute;inset:0}@keyframes capture-countdown-pulse{0%{transform:scale(1)}to{transform:scale(1.06)}}.onboarding{min-height:100%;padding:calc(var(--safe-top) + var(--space-7)) var(--gutter) calc(var(--safe-bottom) + var(--space-7));place-items:center;display:grid;position:relative;overflow:hidden}.onboarding-glow{background:radial-gradient(closest-side at 30% 50%, var(--color-accent-soft), transparent), radial-gradient(closest-side at 75% 40%, color-mix(in srgb, var(--color-info) 14%, transparent), transparent);filter:blur(20px);pointer-events:none;height:70%;position:absolute;inset:-20% -20% auto}.onboarding-panel{gap:var(--space-5);width:100%;max-width:440px;animation:rise-in var(--duration-slow) var(--ease-out);flex-direction:column;display:flex;position:relative}.onboarding-title{letter-spacing:-.03em;font-size:3rem}.onboarding-title--sm{font-size:var(--text-3xl)}.onboarding-lede{font-size:var(--text-lg);color:var(--color-text-muted);margin-top:calc(-1 * var(--space-3))}.onboarding-step{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);font-weight:700}.onboarding-promises{gap:var(--space-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.onboarding-promises li{gap:var(--space-3);display:flex}.onboarding-promise-icon{background:var(--color-surface);border:1px solid var(--color-border);width:40px;height:40px;color:var(--color-accent);border-radius:13px;flex:none;place-items:center;display:grid}.onboarding-promises p{font-size:var(--text-sm);color:var(--color-text-muted)}.onboarding-back{color:var(--color-text-subtle);font-weight:600;font-size:var(--text-sm);background:0 0;border:0;align-self:center}.account-form{gap:var(--space-5);flex-direction:column;display:flex}.account-form-preview{align-items:center;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);display:flex}.account-form-preview strong{font-family:var(--font-display);font-size:var(--text-xl);overflow-wrap:anywhere;display:block}.account-form-preview span{font-size:var(--text-sm);color:var(--color-text-subtle)}.account-form-actions{gap:var(--space-2);flex-direction:column;display:flex}.avatar-picker{gap:var(--space-2);border:0;flex-direction:column;margin:0;padding:0;display:flex}.avatar-picker-grid{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.avatar-picker-option{padding:var(--space-3) var(--space-1);border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);transition:border-color var(--duration-fast) ease, transform var(--duration-fast) ease, background var(--duration-fast) ease;flex-direction:column;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.avatar-picker-option:hover{background:var(--color-surface-hover)}.avatar-picker-option.is-selected{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-text);transform:translateY(-2px)}.home-hero{align-items:center;gap:var(--space-4);display:flex}.home-hero-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.home-hero-kicker{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);font-weight:700}.home-hero h2{font-size:var(--text-2xl)}.home-hero-level{font-size:var(--text-xs);color:var(--color-text-muted);justify-content:space-between;margin-top:4px;font-weight:600;display:flex}.home-cta{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-5);border-radius:var(--radius-xl);text-align:left;color:var(--color-on-accent);background:radial-gradient(120% 140% at 100% 0%, #ffffff47, transparent 50%), linear-gradient(135deg, var(--color-accent-strong), var(--color-accent));box-shadow:0 18px 36px -18px var(--color-accent);transition:transform var(--duration-base) var(--ease-spring), box-shadow var(--duration-base) ease;border:0;display:flex;position:relative;overflow:hidden}.home-cta:hover{box-shadow:0 24px 44px -18px var(--color-accent);transform:translateY(-2px)}.home-cta:active{transform:scale(.99)}.home-cta-icon{background:#ffffff38;border-radius:18px;flex:none;place-items:center;width:56px;height:56px;display:grid}.home-cta-text{flex-direction:column;flex:1;display:flex}.home-cta-text strong{font-family:var(--font-display);font-size:var(--text-xl)}.home-cta-text span{font-size:var(--text-sm);opacity:.85}.badges-summary{align-items:center;gap:var(--space-5);padding:var(--space-5);border-radius:var(--radius-xl);background:var(--color-surface);border:1px solid var(--color-border);display:flex}.badges-summary h2{font-size:var(--text-xl)}.badges-summary p{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:4px}.badges-summary-count{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700}.badges-summary-count small{font-size:var(--text-sm);color:var(--color-text-subtle)}.badges-summary-rarities{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap;gap:4px 12px;font-weight:600;display:flex}.badges-summary-rarities span{align-items:center;gap:5px;display:inline-flex}.badges-summary-rarities i{background:var(--badge);border-radius:50%;width:8px;height:8px}.badge-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.badge-tile{padding:var(--space-5) var(--space-3) var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);text-align:center;transition:transform var(--duration-base) var(--ease-spring), border-color var(--duration-fast) ease;animation:rise-in var(--duration-slow) var(--ease-out) both;flex-direction:column;align-items:center;gap:6px;display:flex}.badge-tile:hover{border-color:color-mix(in srgb, var(--badge) 50%, var(--color-border));transform:translateY(-3px)}.badge-tile strong{font-size:var(--text-sm);line-height:1.25}.badge-tile-rarity{letter-spacing:.1em;text-transform:uppercase;color:var(--badge);font-size:10px;font-weight:800}.badge-tile.is-locked strong,.badge-tile.is-locked .badge-tile-rarity{color:var(--color-text-subtle)}.badge-medal{width:64px;height:64px;color:var(--badge);background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--badge) 35%, transparent), transparent 70%), color-mix(in srgb, var(--badge) 14%, var(--color-bg-elevated));box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--badge) 60%, transparent), 0 8px 18px -8px color-mix(in srgb, var(--badge) 70%, transparent);border-radius:50%;place-items:center;margin-bottom:4px;display:grid;position:relative}.is-locked .badge-medal,.badge-medal.is-locked{color:var(--color-text-subtle);background:var(--color-surface-hover);box-shadow:inset 0 0 0 2px var(--color-border-strong)}.badge-medal-lock{background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);width:24px;height:24px;color:var(--color-text-muted);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-2px;right:-2px}.badge-medal--lg{width:96px;height:96px}.badge-detail{align-items:center;gap:var(--space-4);text-align:center;padding-bottom:var(--space-3);flex-direction:column;display:flex}.badge-detail p{color:var(--color-text-muted);max-width:340px}.badge-detail-chips{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.badges-empty{padding:var(--space-7) 0;text-align:center;color:var(--color-text-muted)}.page-profile,.page-settings{max-width:680px}.profile-actions{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr)) auto;display:grid}.profile-actions--public{display:flex}.profile-actions--public>.ui-btn{flex:1}.profile-header{align-items:center;gap:var(--space-4);display:flex}.profile-header-text{flex-direction:column;flex:1;align-items:flex-start;gap:4px;min-width:0;display:flex}.profile-header h2,.home-hero h2{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.profile-header h2{font-size:var(--text-2xl)}.profile-level{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:500}.coat-breakdown{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.coat-breakdown li{align-items:center;gap:var(--space-3);font-size:var(--text-sm);grid-template-columns:auto 110px 1fr auto;display:grid}.coat-breakdown-label{font-weight:600}.coat-breakdown-count{font-variant-numeric:tabular-nums;text-align:right;min-width:2ch;font-weight:700}.theme-picker{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.theme-option{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:var(--color-bg-elevated);text-align:left;transition:border-color var(--duration-fast) ease, background var(--duration-fast) ease;display:flex}.theme-option:hover{background:var(--color-surface-hover)}.theme-option.is-selected{border-color:var(--color-accent)}.theme-option-swatches{background:var(--color-surface);border:1px solid var(--color-border);width:44px;height:44px;color:var(--color-text-muted);border-radius:12px;flex:none;grid-template-columns:repeat(3,12px);place-items:center;gap:2px;padding:0 4px;display:grid}.theme-option-swatches:has(svg){grid-template-columns:1fr;display:grid}.theme-option-swatches i{border-radius:4px;width:12px;height:24px;box-shadow:inset 0 0 0 1px #8080804d}.theme-option-text{flex-direction:column;flex:1;min-width:0;display:flex}.theme-option-text strong{font-size:var(--text-sm)}.theme-option-text span{font-size:var(--text-xs);color:var(--color-text-subtle)}.theme-option-check{color:var(--color-accent);flex:none}.settings-row{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.settings-row+.settings-row{padding-top:var(--space-4);border-top:1px solid var(--color-border)}.settings-row>div{flex-direction:column;gap:2px;min-width:0;display:flex}.settings-row strong{font-size:var(--text-md)}.settings-row span{font-size:var(--text-sm);color:var(--color-text-muted)}.privacy-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.privacy-list li{gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);display:flex}.privacy-list svg{color:var(--color-success);flex:none;margin-top:1px}.reset-warning{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-danger-soft);color:var(--color-danger);display:flex}.reset-warning p{color:var(--color-text);font-size:var(--text-sm)}.profile-footer{justify-content:center;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-subtle);flex-wrap:wrap;display:flex}.welcome{z-index:90;background:var(--color-bg);outline:none;position:fixed;inset:0;overflow:hidden}@supports (height:100dvh){.welcome{height:100dvh;bottom:auto}}.welcome-panel{gap:var(--space-4);width:100%;max-width:440px;height:100%;padding:calc(var(--safe-top) + var(--space-4)) var(--gutter) calc(var(--safe-bottom) + var(--space-4));flex-direction:column;margin:0 auto;display:flex;position:relative}.welcome-top{flex:none;justify-content:space-between;align-items:center;min-height:40px;display:flex}.welcome-body{overscroll-behavior:contain;min-height:0;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter);flex-direction:column;flex:1;display:flex;overflow-y:auto;-webkit-mask-image:linear-gradient(#000 calc(100% - 14px),#0000);mask-image:linear-gradient(#000 calc(100% - 14px),#0000)}.welcome-step{gap:var(--space-4);padding:var(--space-2) 0 var(--space-4);animation:rise-in var(--duration-slow) var(--ease-out);flex-direction:column;margin-block:auto;display:flex}.welcome-title{font-size:clamp(var(--text-2xl), 7.5vw, var(--text-3xl))}.welcome-eyebrow{font-size:var(--text-sm);color:var(--color-text-muted);margin:0;font-weight:600}.welcome-access{justify-content:center;display:flex}.welcome-access-result{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-sm);margin:0;line-height:1.45;display:flex}.welcome-access-result svg{flex:none;margin-top:1px}.welcome-access-result.is-granted{border-color:color-mix(in srgb, var(--color-success) 45%, var(--color-border));color:var(--color-text)}.welcome-access-result.is-granted svg{color:var(--color-success)}.welcome-access-result.is-denied svg,.welcome-access-result.is-unavailable svg{color:var(--color-warning,var(--color-accent))}.welcome-bottom{gap:var(--space-3);flex-direction:column;flex:none;display:flex}.welcome-actions{gap:var(--space-2);display:flex}.welcome-actions .ui-btn--block{flex:1;width:auto}@media (width<=359px){.welcome-back-label{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.welcome-actions .ui-btn--block{min-width:0}}.welcome-free,.about-free{font-size:var(--text-xs);color:var(--color-text-subtle);text-align:center}@media (prefers-reduced-motion:reduce){.welcome-step{animation:none}}.tour-demo{align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;display:flex}.card-hints{box-sizing:border-box;align-items:stretch;width:100%}.card-hints-post{flex-direction:column;gap:6px;min-width:0;display:flex}.card-hints-photo{border-radius:var(--radius-md);background:var(--color-surface-sunken,color-mix(in srgb, var(--color-text) 8%, var(--color-surface)));height:40px;color:var(--color-text-subtle);place-items:center;display:grid}.tour-demo-phone{border:2px solid var(--color-border);background:var(--color-bg-elevated);border-radius:24px;width:168px;padding:6px}.tour-demo-screen{background:var(--color-bg);height:176px;animation:tour-demo-fade var(--duration-base) var(--ease-out);border-radius:17px;position:relative;overflow:hidden}.tour-demo-grid{grid-template-columns:repeat(4,1fr);gap:12px 10px;padding:16px 12px;display:grid}.tour-demo-app,.tour-demo-slot{aspect-ratio:1;border-radius:30%}.tour-demo-app{background:color-mix(in srgb, var(--color-text) 13%, transparent);place-items:center;display:grid}.tour-demo-slot{position:relative}.tour-demo-app--old{background:linear-gradient(145deg, var(--color-accent-strong,var(--color-accent)), var(--color-accent));width:100%;color:var(--color-on-accent)}.tour-demo-pressed{animation:tour-demo-press .5s var(--ease-out) .55s backwards;transform:scale(.88)}.tour-demo-gap{border:1.5px dashed color-mix(in srgb, var(--color-text) 28%, transparent);border-radius:30%;position:absolute;inset:0}.tour-demo-gap:after{content:"";border:2px solid var(--color-accent);animation:tour-demo-poof .7s var(--ease-out) both;border-radius:50%;position:absolute;inset:0}.tour-demo-new{animation:tour-demo-pop .55s var(--ease-spring) backwards;position:absolute;inset:0}.tour-demo-new img{object-fit:cover;border-radius:30%;width:100%;height:100%;display:block}.tour-demo-count{border-radius:var(--radius-pill);background:var(--color-danger);color:#fff;text-align:center;min-width:14px;height:14px;animation:tour-demo-pop .4s var(--ease-spring) .45s backwards;padding:0 3px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-5px;right:-6px}.tour-demo-finger{z-index:4;border:2px solid var(--color-text);background:color-mix(in srgb, var(--color-text) 45%, transparent);pointer-events:none;width:16px;height:16px;animation:tour-demo-finger 1.5s var(--ease-out) backwards;border-radius:50%;position:absolute;bottom:-9px;right:-5px}.tour-demo-menu{z-index:3;border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-md);white-space:nowrap;animation:tour-demo-pop .35s var(--ease-out) .9s backwards;border-radius:8px;padding:4px 8px;font-size:9px;font-weight:600;position:absolute}.tour-demo-menu--icon{align-items:center;gap:4px;display:flex;top:calc(100% + 7px);left:-8px}.tour-demo-menu.is-danger{color:var(--color-danger)}.tour-demo-browser{flex-direction:column;height:100%;display:flex;position:relative}.tour-demo-bar{border-bottom:1px solid var(--color-border);align-items:center;gap:6px;padding:6px;display:flex}.tour-demo-bar--bottom{border-top:1px solid var(--color-border);border-bottom:0}.tour-demo-address{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--color-text) 10%, transparent);color:var(--color-text-muted);flex:1;align-items:center;gap:4px;padding:3px 8px;font-size:9px;display:flex}.tour-demo-glyph{width:22px;height:22px;color:var(--color-text);flex:none;place-items:center;display:grid;position:relative}.tour-demo-page-wrap{flex:1;min-height:0}.tour-demo-page{flex-direction:column;align-items:center;gap:6px;padding:22px 24px 0;display:flex}.tour-demo-page-mark{background:linear-gradient(145deg, var(--color-accent-strong,var(--color-accent)), var(--color-accent));width:28px;height:28px;color:var(--color-on-accent);border-radius:30%;place-items:center;display:grid}.tour-demo-line{background:color-mix(in srgb, var(--color-text) 13%, transparent);border-radius:3px;width:100%;height:5px}.tour-demo-line.is-short{width:60%}.tour-demo-menu--list{flex-direction:column;width:100px;padding:3px;animation-delay:.7s;display:flex;top:32px;right:6px}.tour-demo-sheet{z-index:3;border-top:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-lg);animation:tour-demo-rise .5s var(--ease-out) .9s backwards;border-radius:12px 12px 0 0;flex-direction:column;gap:2px;padding:8px 8px 10px;font-size:9px;font-weight:600;display:flex;position:absolute;bottom:0;left:0;right:0}.tour-demo-menu--list>span,.tour-demo-sheet>span{border-radius:6px;align-items:center;gap:5px;padding:5px 6px;display:flex}.tour-demo-menu .is-dim,.tour-demo-sheet .is-dim{color:var(--color-text-muted);font-weight:500}.tour-demo-menu .is-pick,.tour-demo-sheet .is-pick{background:color-mix(in srgb, var(--color-accent) 22%, transparent);color:var(--color-accent);animation:tour-demo-fade .3s var(--ease-out) 1.5s backwards}.tour-demo-caption{min-height:2.8em;color:var(--color-text-muted);font-size:var(--text-sm);text-align:center;margin:0;line-height:1.4}.tour-demo-caption strong{color:var(--color-text)}.tour-demo-dots{gap:2px;display:flex}.tour-demo-dot{cursor:pointer;background:0 0;border:0;width:24px;height:24px;padding:0;position:relative}.tour-demo-dot:before{content:"";border-radius:var(--radius-pill);background:var(--color-border);width:6px;height:6px;transition:width var(--duration-base) var(--ease-out), background var(--duration-base);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tour-demo-dot.is-active:before{background:var(--color-accent);width:16px}@keyframes tour-demo-fade{0%{opacity:0}}.tour-demo-bar--bottom .tour-demo-finger{animation-name:tour-demo-finger-away;animation-fill-mode:both}@keyframes tour-demo-finger-away{0%{opacity:0;transform:translate(10px,14px)}22%{opacity:1;transform:none}38%{transform:scale(.8)}52%{transform:none}70%{opacity:1}to{opacity:0}}@keyframes tour-demo-press{0%{transform:none}}@keyframes tour-demo-pop{0%{opacity:0;transform:scale(.5)}}@keyframes tour-demo-poof{0%{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(1.6)}}@keyframes tour-demo-rise{0%{transform:translateY(100%)}}@keyframes tour-demo-finger{0%{opacity:0;transform:translate(10px,14px)}22%{opacity:1;transform:none}38%{transform:scale(.8)}52%{transform:none}}@media (height<=700px){.tour-demo{gap:var(--space-2)}.tour-demo-screen{height:136px}.tour-demo-grid{padding-top:12px}.tour-demo-menu--list{top:30px}}@media (prefers-reduced-motion:reduce){.tour-demo-screen,.tour-demo-pressed,.tour-demo-new,.tour-demo-count,.tour-demo-finger,.tour-demo-menu,.tour-demo-sheet,.tour-demo-menu .is-pick,.tour-demo-sheet .is-pick{animation:none}.tour-demo-gap:after,.tour-demo-bar--bottom .tour-demo-finger{display:none}}.release-list{gap:var(--space-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.release{align-items:flex-start;gap:var(--space-2);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);flex-direction:column;display:flex}.release:last-child{border-bottom:0;padding-bottom:0}.release-head{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.release-meta{font-size:var(--text-xs);color:var(--color-text-subtle)}.release p,.timeline-node p{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.timeline,.timeline-updates{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.timeline{gap:var(--space-6);position:relative}.timeline:before{content:"";background:var(--color-border-strong);width:2px;position:absolute;top:8px;bottom:8px;left:5px}.timeline-chapter{gap:var(--space-4);flex-direction:column;display:flex}.timeline-updates{gap:var(--space-4)}.timeline-node{align-items:flex-start;gap:var(--space-2);padding-left:var(--space-6);flex-direction:column;display:flex;position:relative}.timeline-node:before{content:"";box-sizing:border-box;background:var(--color-text-subtle);width:8px;height:8px;box-shadow:0 0 0 3px var(--color-bg-elevated);border-radius:50%;position:absolute;top:6px;left:2px}.timeline-node--major:before{background:var(--color-accent);width:12px;height:12px;box-shadow:0 0 0 4px var(--color-bg-elevated);top:4px;left:0}.timeline-node .release-items{list-style:outside}.timeline-node--major .release-head strong{font-size:var(--text-lg)}.timeline-node .release-action-note{color:var(--color-success);align-items:center;gap:6px;font-weight:600;display:inline-flex}.button-ref{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);white-space:nowrap;align-items:center;gap:4px;padding:0 7px;font-size:.92em;font-weight:600;line-height:1.5;display:inline-flex}.button-ref svg{color:var(--color-accent);flex:none}.release-items{font-size:var(--text-sm);color:var(--color-text-muted);flex-direction:column;gap:4px;margin:0;padding-left:1.1em;display:flex}.about-footer{align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.about-link{padding:var(--space-2);color:var(--color-accent);font-size:var(--text-sm);background:0 0;border:0;font-weight:600}.page-about{max-width:680px}.about-hero{align-items:center;gap:var(--space-2);text-align:center;padding:var(--space-4) 0;flex-direction:column;display:flex}.about-steps{gap:var(--space-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.about-steps li{gap:var(--space-3);display:flex}.about-steps li>span:last-child{font-size:var(--text-sm);flex-direction:column;display:flex}.about-step-icon{border-radius:var(--radius-md);background:var(--color-accent-soft);width:32px;height:32px;color:var(--color-accent);flex:none;place-items:center;display:grid}.about-credits{gap:var(--space-3);font-size:var(--text-sm);flex-direction:column;margin:0;display:flex}.about-credits dt{font-weight:600}.about-credits dd{color:var(--color-text-muted);margin:0}.about-credits a{color:var(--color-accent)}.onboarding-actions{gap:var(--space-2);flex-direction:column;display:flex}.onboarding-lede-icon{vertical-align:-3px;color:var(--color-accent);display:inline}.page-friends{max-width:680px}.app-topbar-friends{width:36px;height:36px;color:var(--color-text-muted);cursor:pointer;transition:background var(--duration-fast) ease, color var(--duration-fast) ease;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:relative}.app-topbar-friends:hover,.app-topbar-friends.is-active{background:var(--color-surface);color:var(--color-text)}.app-topbar-badge{background:var(--color-danger);color:#fff;text-align:center;min-width:17px;height:17px;box-shadow:0 0 0 2px var(--color-bg);border-radius:999px;padding:0 4px;font-size:10px;font-weight:700;line-height:17px;position:absolute;top:1px;right:0}.add-friend-form{align-items:flex-start;gap:var(--space-3);display:flex}.add-friend-form .ui-field{flex:1;min-width:0}.add-friend-form>.ui-btn{margin-top:26px}@media (width<=480px){.add-friend-form{flex-direction:column;align-items:stretch}.add-friend-form>.ui-btn{margin-top:0}}.friends-privacy{gap:var(--space-2);margin:0;line-height:1.45;display:flex}.friends-privacy svg{flex:none;margin-top:2px}.friends-loading{padding:var(--space-8) 0;place-items:center;display:grid}.friend-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.friend-row{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;display:flex}.friend-row+.friend-row{border-top:1px solid var(--color-border)}.friend-row-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.friend-row-text span{font-size:var(--text-sm);color:var(--color-text-muted)}.friend-row-actions,.settings-row-actions{align-items:center;gap:var(--space-2);flex:none;display:flex}.settings-stack{gap:var(--space-3);flex-direction:column;display:flex}.settings-stack>div{flex-direction:column;gap:2px;display:flex}.spot-card-meta .spot-card-exact{color:var(--color-success);font-variant-numeric:tabular-nums}.map-exact-pin{cursor:pointer;background:0 0;border:0;width:40px;height:46px;padding:0;position:relative}.map-exact-pin-shape{border:2px solid var(--color-surface);background:var(--color-accent);width:36px;height:36px;transition:box-shadow var(--duration-fast) ease;border-radius:50% 50% 50% 0;display:block;position:absolute;top:2px;left:2px;transform:rotate(-45deg);box-shadow:0 4px 10px -2px #0000008c}.map-exact-pin.is-mine .map-exact-pin-shape{background:var(--color-success)}.map-exact-pin.is-selected .map-exact-pin-shape{box-shadow:0 0 0 4px var(--color-accent-soft), 0 8px 16px -4px #0009}.map-exact-pin-photo{background:radial-gradient(circle, var(--color-accent-soft), var(--color-surface));pointer-events:none;border-radius:50%;width:28px;height:28px;position:absolute;top:6px;left:6px;overflow:hidden}.map-exact-pin-photo img{max-width:none;transition:opacity var(--duration-base) ease;position:absolute}.photo-feed{gap:var(--space-5);flex-direction:column;width:100%;max-width:480px;margin:0 auto;display:flex}.photo-post{gap:var(--space-2);flex-direction:column;display:flex}.photo-post-head{align-items:center;gap:var(--space-2);min-width:0;display:flex}.photo-post-who{flex-direction:column;min-width:0;font-size:.875rem;line-height:1.25;display:flex}.photo-post-who span{color:var(--color-text-muted);font-size:.75rem}.photo-post-image{border-radius:var(--radius-lg);background:var(--color-surface);cursor:zoom-in;width:100%;aspect-ratio:var(--photo-aspect,4 / 5);border:0;padding:0;display:block;position:relative;overflow:hidden}.photo-post-image img{object-fit:cover;width:100%;height:100%;display:block}.photo-post-missing{justify-content:center;align-items:center;gap:var(--space-2);width:100%;height:100%;padding:var(--space-4);color:var(--color-text-muted);text-align:center;flex-direction:column;font-size:.8125rem;display:flex}.photo-post-top{flex-direction:column;gap:6px;min-width:0;display:flex}.photo-post-actions{flex:none;align-items:center;display:flex}.photo-post-caption{align-items:center;gap:var(--space-2);border-top:2px solid color-mix(in srgb, var(--rarity,var(--color-border-strong)) 75%, transparent);min-width:0;color:var(--color-text-muted);margin:0;padding-top:6px;font-size:.8125rem;display:flex}.photo-post-caption .coat-icon{flex:none}.photo-post-caption strong{color:var(--color-text);flex:none}.photo-post-kind{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.photo-post-count{background:color-mix(in srgb, var(--rarity,var(--color-text-subtle)) 20%, var(--color-surface));color:var(--color-text);border-radius:999px;flex:none;align-items:center;gap:3px;padding:1px 6px;font-size:11px;font-weight:700;display:inline-flex}.photo-post-rarity{--hint-ink:#3d4350;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--hint-ink) 28%, transparent);color:var(--hint-ink);letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(150deg,#c5cad3 0%,#f3f5f8 38% 62%,#c5cad3 100%);border-radius:999px;flex:none;align-items:center;gap:3px;margin-left:auto;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.photo-post-rarity[data-rarity=uncommon]{--hint-ink:#0f4a30;background:linear-gradient(150deg,#8ccfad 0%,#e9f7ef 38% 62%,#8ccfad 100%)}.photo-post-rarity[data-rarity=rare]{--hint-ink:#15357a;background:linear-gradient(120deg,#8fb4f2 0%,#d9e6ff 25%,#efe4ff 45%,#dff6ff 60%,#edf3ff 75%,#8fb4f2 100%)}.photo-post-rarity[data-rarity=legendary]{--hint-ink:#2e1b00;background:conic-gradient(#e2ad3f,#fff1c2,#c98a12,#f7d27a,#b8780f,#e2ad3f)}.photo-post-rarity+.photo-post-number{margin-left:0}@media (width<=340px){.photo-post-caption{gap:6px}.photo-post-rarity+.photo-post-number{display:none}.photo-post-rarity{padding-inline:6px}.photo-post-rarity svg{display:none}}.photo-post-number{font-family:var(--font-mono);letter-spacing:.04em;color:var(--color-text-subtle);flex:none;margin-left:auto;font-size:11px}.photo-feed-more{justify-content:center;min-height:32px;display:flex}.photo-post{padding:var(--space-3);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.reaction-bar{gap:var(--space-2);flex-direction:column;display:flex}.reaction-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.reaction-chip,.reaction-add{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);min-height:36px;color:var(--color-text-muted);font:inherit;cursor:pointer;transition:background var(--duration-fast) ease, color var(--duration-fast) ease, border-color var(--duration-fast) ease;align-items:center;gap:6px;padding:0 12px;font-size:.8125rem;font-weight:600;display:inline-flex}.reaction-chip:disabled,.reaction-add:disabled,.reaction-option:disabled{cursor:progress}.reaction-add.is-mine,.reaction-option.is-mine{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent)}.reaction-icon{--reaction-move:none;transform-box:fill-box;transform-origin:50%;display:block}.reaction-chip.is-fresh .reaction-icon,.reaction-option:focus-visible .reaction-icon,.reaction-option:active .reaction-icon{animation:var(--reaction-move)}@media (hover:hover){.reaction-option:hover .reaction-icon{animation:var(--reaction-move)}}.reaction-purr{--reaction-move:reaction-purr .9s ease-in-out}.reaction-blink{--reaction-move:reaction-blink 1.1s ease-in-out}.reaction-zoomies{--reaction-move:reaction-zoomies .8s cubic-bezier(.3, .1, .3, 1)}.reaction-spook{--reaction-move:reaction-spook .8s ease-out}.reaction-biscuits{--reaction-move:reaction-biscuits 1s ease-in-out}.reaction-add.is-open{border-color:var(--color-accent);color:var(--color-accent)}@media (hover:hover){.reaction-chip:not(:disabled):hover,.reaction-add:not(.is-open):not(:disabled):hover{color:var(--color-text)}}.reaction-count{color:var(--color-text);font-variant-numeric:tabular-nums}.reaction-react{display:inline-flex;position:relative}.reaction-picker{z-index:5;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-bg-elevated);animation:reaction-picker-in var(--duration-fast) var(--ease-out) both;gap:2px;padding:4px;display:flex;position:absolute;bottom:calc(100% + 8px);left:0}@keyframes reaction-picker-in{0%{opacity:0;transform:translateY(6px)scale(.96)}}@media (prefers-reduced-motion:reduce){.reaction-picker{animation:none}}.reaction-option{width:44px;height:44px;color:var(--color-text-muted);font:inherit;cursor:pointer;transition:background var(--duration-fast) ease, color var(--duration-fast) ease, border-color var(--duration-fast) ease, transform var(--duration-fast) var(--ease-out);background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;padding:0;display:grid;position:relative}.reaction-option.is-hot,.reaction-option:focus-visible{background:var(--color-surface);color:var(--color-text);transform:translateY(-4px)}@media (hover:hover){.reaction-option:not(.is-mine):not(:disabled):hover{background:var(--color-surface);color:var(--color-text);transform:translateY(-4px)}}.reaction-label{border-radius:var(--radius-pill);background:var(--color-text);color:var(--color-bg);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--duration-fast) ease;padding:2px 8px;font-size:.6875rem;font-weight:600;line-height:1.3;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.reaction-option.is-hot .reaction-label,.reaction-option:focus-visible .reaction-label{opacity:1}@media (hover:hover){.reaction-option:hover .reaction-label{opacity:1}}.reaction-add{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}@keyframes reaction-purr{0%,to{transform:scale(1)}15%{transform:scale(1.35)}30%{transform:scale(1)}45%{transform:scale(1.3)}65%{transform:scale(1)}}@keyframes reaction-blink{0%,to{transform:scale(1)}35%,60%{transform:scale(1.12,.15)}}@keyframes reaction-zoomies{0%{transform:translate(0)rotate(0)}30%{transform:translate(-5px)rotate(-30deg)scale(1.15)}65%{transform:translate(5px)rotate(360deg)scale(1.15)}to{transform:translate(0)rotate(720deg)scale(1)}}@keyframes reaction-spook{0%{transform:translateY(0)rotate(0)}15%{transform:translateY(-7px)rotate(-10deg)scale(1.2)}30%{transform:translateY(-3px)rotate(10deg)scale(1.15)}45%{transform:translateY(-5px)rotate(-8deg)scale(1.1)}60%{transform:translateY(-1px)rotate(6deg)}80%{transform:translateY(0)rotate(-3deg)}to{transform:translateY(0)rotate(0)}}@keyframes reaction-biscuits{0%,to{transform:scale(1)}20%{transform:scale(1.15,.8)translateY(1px)}40%{transform:scale(.95,1.1)}60%{transform:scale(1.15,.8)translateY(1px)}80%{transform:scale(.95,1.1)}}.photo-post.photo-post--bare{box-shadow:none;background:0 0;border:0;padding:0}.spot-card-sheet-loading{padding:var(--space-6) 0;justify-content:center;display:flex}.page-notifications{max-width:680px}.app-topbar-bell{width:36px;height:36px;color:var(--color-text-muted);cursor:pointer;transition:background var(--duration-fast) ease, color var(--duration-fast) ease;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:relative}.app-topbar-bell:hover,.app-topbar-bell.is-active{background:var(--color-surface);color:var(--color-text)}.app-topbar-dot{background:var(--color-danger);width:10px;height:10px;box-shadow:0 0 0 2px var(--color-bg);border-radius:50%;position:absolute;top:6px;right:7px}.notifications-toolbar{justify-content:flex-end;display:flex}.notification-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.notification-row{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:inherit;font:inherit;text-align:left;cursor:pointer;display:flex}.notification-row:hover{background:var(--color-surface-hover)}.notification-row.is-new{border-color:var(--color-accent);background:var(--color-accent-soft)}.notification-icon{background:var(--color-bg);width:36px;height:36px;color:var(--color-accent);border-radius:50%;flex:none;place-items:center;display:grid}.notification-icon--update{color:var(--color-info)}.notification-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.notification-text>span{font-size:var(--text-sm);color:var(--color-text-muted)}.notification-text>.notification-time{font-size:var(--text-xs,12px);color:var(--color-text-subtle)}.notification-chevron{color:var(--color-text-subtle);flex:none}.recent-reactions{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.recent-reaction{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:inherit;text-align:left;cursor:pointer;display:flex}.recent-reaction:active{opacity:.8}.recent-reaction-photo{border-radius:var(--radius-md);flex:none;width:56px;overflow:hidden}.recent-reaction-text{min-width:0;font-size:var(--text-sm);color:var(--color-text-muted);flex-direction:column;gap:2px;display:flex}.recent-reaction-text strong{color:var(--color-text);font-size:var(--text-md,1rem)}.recent-reaction-who{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:root{--font-display:var(--font-body);--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--shadow-sm:none;--shadow-md:0 1px 3px var(--color-shadow);--topbar-h:52px;--nav-h:60px}.app-shell{background:var(--color-bg)}.app-topbar{background:var(--color-bg);-webkit-backdrop-filter:none}.app-topbar-title h1{font-size:var(--text-lg);font-weight:600}.bottom-nav{background:var(--color-bg);-webkit-backdrop-filter:none}.bottom-nav-label{font-size:.6875rem}.page{gap:var(--space-4)}.panel{padding:var(--space-4) 0 0;border:0;border-top:1px solid var(--color-border);gap:var(--space-3);background:0 0;border-radius:0}.panel--danger{border-top-color:color-mix(in srgb, var(--color-danger) 40%, var(--color-border))}.panel-title{font-size:var(--text-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);font-weight:600}.stat{padding:var(--space-2) 0;background:0 0;border:0}.stat-grid--compact .stat{padding:var(--space-2) 0}.stat-value{font-weight:600}.explore-toolbar{z-index:6;margin:calc(var(--space-5) * -1) calc(var(--gutter) * -1) 0;padding:var(--space-3) var(--gutter);background:var(--color-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0}.page-explore.is-map .explore-toolbar{background:0 0;border-bottom:0;margin:0;padding:0}.user-link{align-items:center;gap:var(--space-2);min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.user-link:hover strong,.user-link:hover .truncate{text-decoration:underline}.photo-post-author{flex:1}.friend-row-link{gap:var(--space-3);flex:1}.spot-tiles{grid-template-columns:repeat(3,1fr);gap:2px;display:grid}@media (width>=640px){.spot-tiles{grid-template-columns:repeat(5,1fr)}}.spot-tile{background:var(--color-surface);cursor:pointer;border:0;padding:0;display:block;overflow:hidden}.spot-tile .cat-crop{border-radius:0}.badge-strip{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex;position:relative}.badge-strip-item{border:1px solid color-mix(in srgb, var(--badge) 45%, var(--color-border));border-radius:var(--radius-pill);font-size:var(--text-xs);align-items:center;gap:6px;padding:4px 10px 4px 8px;font-weight:600;display:inline-flex}.badge-strip-item svg{color:var(--badge)}.badge-strip-more{--badge:var(--color-text-muted);color:var(--color-text-muted);font:inherit;font-size:var(--text-xs);cursor:pointer;background:0 0;font-weight:600}.badge-strip-more:hover{--badge:var(--color-text);color:var(--color-text)}.badge-strip-probe{visibility:hidden;pointer-events:none;white-space:nowrap;position:absolute;top:0;left:0}.app-content,.page-explore>.photo-feed,.ui-sheet-body,.map-tray-cards,.spot-card-details-panel,.welcome-body{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}@media (width<=640px),(pointer:coarse){.app-content,.page-explore>.photo-feed,.ui-sheet-body,.map-tray-cards,.spot-card-details-panel,.welcome-body{scrollbar-width:none}.app-content::-webkit-scrollbar{display:none}.page-explore>.photo-feed::-webkit-scrollbar{display:none}.ui-sheet-body::-webkit-scrollbar{display:none}.map-tray-cards::-webkit-scrollbar{display:none}.spot-card-details-panel::-webkit-scrollbar{display:none}.welcome-body::-webkit-scrollbar{display:none}.reaction-chip,.reaction-add,.reaction-option,.spot-tile,.photo-post-image,.ui-segmented-option{touch-action:manipulation}.reaction-chip,.reaction-add{min-height:40px}}@media (width<=640px){.explore-toolbar{gap:var(--space-2);padding-block:var(--space-2);flex-wrap:nowrap}.explore-toolbar .ui-segmented--md .ui-segmented-option{padding:0 12px}.explore-toolbar .ui-segmented--md .ui-segmented-option span{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page-explore{--explore-toolbar-h:59px}.page-explore>.photo-feed{width:100%;min-width:0}.photo-feed{gap:0;width:auto;max-width:none}.photo-feed .photo-post{gap:var(--space-2);padding:var(--space-3) 0 var(--space-4);border:0;border-bottom:1px solid var(--color-border);box-shadow:none;scroll-snap-align:start;background:0 0;border-radius:0}.photo-feed .photo-post>:not(.photo-post-image){padding-inline:var(--gutter)}.photo-feed .photo-post-image{border-radius:0}.spot-grid{gap:var(--space-4)}.spot-tiles{margin-inline:calc(var(--gutter) * -1)}.spot-tile{transition:opacity var(--duration-fast) ease}.spot-tile:active{opacity:.8}.post-sheet .ui-sheet-body{padding-inline:var(--space-3)}.post-sheet .photo-post-image{max-height:62dvh}}@media (width<=420px){.explore-toolbar .ui-segmented--sm .ui-segmented-option:not(.is-active){padding:0 9px}.explore-toolbar .ui-segmented--sm .ui-segmented-option:not(.is-active) span{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (width<=359px){.explore-toolbar .ui-segmented--sm .ui-segmented-option{padding:0 9px}.explore-toolbar .ui-segmented--sm .ui-segmented-option span{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}:is(html:has(.app-shell),body:has(.app-shell)){overscroll-behavior:none;overflow:hidden}.app-shell{height:100dvh}.app-content{overflow-x:hidden}.app-content:has(.photo-feed){overflow:hidden}.page-explore:has(>.photo-feed){gap:0;height:100%;padding:0}.page-explore:has(>.photo-feed) .explore-toolbar{padding:var(--space-2) var(--gutter);flex:none;margin:0;position:relative}.page-explore>.photo-feed{overscroll-behavior:contain;scroll-snap-type:y mandatory;flex:1;gap:0;min-height:0;margin-inline:auto;overflow-y:auto}.photo-feed>.photo-post{scroll-snap-align:start;scroll-snap-stop:always;flex:none;height:100%}.photo-feed .photo-post-image{aspect-ratio:auto;flex:1 1 0;min-height:0;max-height:none}.photo-feed .photo-post-image img{z-index:1;object-fit:contain;position:relative}.photo-feed .photo-post-image:before{content:"";background:var(--photo-url) center / cover no-repeat;filter:blur(28px)saturate(1.25)brightness(.8);position:absolute;inset:-32px}.photo-feed .photo-post-image .spot-card-sync{z-index:2}.photo-post-image{box-shadow:0 10px 22px -12px var(--color-shadow), 0 2px 6px -2px var(--color-shadow)}.photo-post-head .user-avatar{box-shadow:0 1px 3px var(--color-shadow), 0 0 0 2px var(--color-bg-elevated)}.photo-post-image .spot-card-sync{box-shadow:0 2px 6px #00000059}.reaction-chip,.reaction-add{box-shadow:0 1px 2px var(--color-shadow)}.reaction-add.is-mine,.reaction-option.is-mine{box-shadow:0 2px 10px -3px color-mix(in srgb, var(--color-accent) 60%, transparent)}.reaction-picker{box-shadow:var(--shadow-md), 0 8px 18px -10px var(--color-shadow)}.reaction-option.is-mine{background:var(--color-accent-soft)}@media (hover:hover){.reaction-chip:not(:disabled):hover,.reaction-add:not(:disabled):hover{box-shadow:0 3px 8px -3px var(--color-shadow)}}.reaction-chip:active,.reaction-add:active{box-shadow:none}.spot-tile{position:relative;box-shadow:inset 0 0 0 1px #00000014}.spot-tile[data-rarity=uncommon]{--tile-bar:linear-gradient(90deg, #23835a 0%, #8ccfad 30%, #e9f7ef 50%, #8ccfad 70%, #23835a 100%)}.spot-tile[data-rarity=rare]{--tile-bar:linear-gradient(90deg, #2a5fc4 0%, #8fb4f2 22%, #efe4ff 40%, #dff6ff 60%, #8fb4f2 78%, #2a5fc4 100%)}.spot-tile[data-rarity=legendary]{--tile-bar:linear-gradient(90deg, #b8780f 0%, #e2ad3f 25%, #fff1c2 50%, #e2ad3f 75%, #b8780f 100%)}.spot-tile[data-rarity=uncommon]:after,.spot-tile[data-rarity=rare]:after,.spot-tile[data-rarity=legendary]:after{content:"";background:var(--tile-bar);pointer-events:none;height:4px;position:absolute;top:0;left:0;right:0}@media (width>=641px){.photo-post:not(.photo-post--bare){box-shadow:var(--shadow-md), 0 12px 28px -16px var(--color-shadow)}}
