:root{color-scheme:dark;--color-bg-primary: #0b0d1a;--color-bg-secondary: #12152a;--color-bg-tertiary: #1d2244;--color-bg-elevated: #161a33;--color-bg-overlay: rgba(5, 6, 13, .88);--color-bg-bar: #0a0c1a;--color-surface: #161a33;--color-surface-2: #1d2244;--color-surface-3: #262c55;--color-text-primary: #ece6d6;--color-text-secondary: #a9a4ba;--color-text-muted: #6f6b86;--color-text-tertiary: #6f6b86;--color-border: rgba(236, 230, 214, .07);--color-border-light: rgba(236, 230, 214, .12);--color-border-gold: rgba(216, 180, 106, .18);--color-surface-raised: #1d2244;--accent-rgb: 216, 180, 106;--color-accent: #d8b46a;--color-accent-hover: #f0cf86;--color-accent-glow: rgba(var(--accent-rgb), .4);--color-accent-subtle: rgba(var(--accent-rgb), .12);--color-on-accent: #0b0d1a;--mana-rgb: 139, 124, 246;--color-mana: #8b7cf6;--color-mana-2: #5ad1e6;--gradient-mana: linear-gradient(90deg, var(--color-mana), var(--color-mana-2));--color-store: var(--color-mana-2);--color-store-subtle: rgba(90, 209, 230, .12);--color-channel: var(--color-accent-hover);--color-channel-subtle: rgba(var(--accent-rgb), .12);--color-success: #5fd48a;--color-warning: #f3d35b;--color-error: #e8615a;--color-nature: #5fd48a;--color-water: #62a8f5;--color-fire: #f5873a;--color-earth: #c9a07a;--color-light: #f3d35b;--color-shadow: #9aa0b4;--color-arcane: #b98cf6;--color-energy: #3ed8b0;--color-rarity-legendary: #f2c265;--color-rarity-rare: #b98cf6;--color-rarity-uncommon: #62a8f5;--color-rarity-common: #5fd48a;--color-rarity-basic: #9aa0b4;--color-gold: #f0cf86;--color-silver: #c9ccd6;--color-bronze: #cd8f5a;--bg-dark: var(--color-bg-primary);--bg-card: var(--color-bg-secondary);--accent: var(--color-accent);--text: var(--color-text-primary);--text-dim: var(--color-text-secondary);--nature: var(--color-nature);--water: var(--color-water);--fire: var(--color-fire);--earth: var(--color-earth);--light: var(--color-light);--shadow: var(--color-shadow);--arcane: var(--color-arcane);--energy: var(--color-energy);--color-accent-rgb: var(--accent-rgb);--color-background: var(--color-bg-primary);--color-bg: var(--color-bg-primary);--color-primary: var(--color-accent);--color-surface-alt: var(--color-surface-2);--color-surface-dark: var(--color-bg-bar);--color-surface-light: var(--color-surface-3);--color-text: var(--color-text-primary);--color-text-dim: var(--color-text-muted);--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.5rem;--space-2xl: 2rem;--font-body: "Inter Variable", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Cinzel", "Trajan Pro", Georgia, serif;--font-family: var(--font-body);--font-size-xs: .6875rem;--font-size-sm: .75rem;--font-size-base: .875rem;--font-size-md: .9375rem;--font-size-lg: 1rem;--font-size-xl: 1.125rem;--font-size-2xl: 1.375rem;--font-size-3xl: 2rem;--letter-spacing-caps: .12em;--radius-xs: .2rem;--radius-sm: .375rem;--radius-md: .625rem;--radius-lg: .875rem;--radius-xl: 1.125rem;--radius-full: 9999px;--nav-height: 64px;--header-height: 52px;--max-width: 500px;--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--side-btn-size: 58px;--reveal-btn-size: clamp(96px, min(24vh, 100vw - 2 * var(--side-btn-size) - 6.5rem), 184px);--reveal-btn-font: .75rem;--roll-thumb-width: clamp(52px, 9vh, 78px);--section-gap: .75rem;--mana-bar-height: .75rem;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .35);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .5);--shadow-glow: 0 0 16px var(--color-accent-glow);--shadow-text: 0 1px 3px rgba(0, 0, 0, .8);--glass-bg: rgba(11, 13, 26, .9);--glass-bg-light: rgba(29, 34, 68, .72);--glass-bg-dark: rgba(10, 12, 26, .92);--glass-border: rgba(236, 230, 214, .07);--glass-border-light: rgba(236, 230, 214, .12);--glass-blur: 10px;--glass-blur-heavy: 16px;--glow-accent: 0 0 14px rgba(var(--accent-rgb), .3);--glow-accent-strong: 0 0 22px rgba(var(--accent-rgb), .35), 0 0 44px rgba(var(--accent-rgb), .12);--glow-accent-subtle: 0 0 8px rgba(var(--accent-rgb), .25);--glow-mana: 0 0 14px rgba(var(--mana-rgb), .55);--glow-success: 0 0 12px rgba(95, 212, 138, .35);--glow-legendary: 0 0 18px rgba(242, 194, 101, .45), 0 0 36px rgba(242, 194, 101, .18);--glow-rare: 0 0 14px rgba(185, 140, 246, .35);--glow-nature: 0 0 12px rgba(95, 212, 138, .35);--glow-water: 0 0 12px rgba(98, 168, 245, .35);--glow-fire: 0 0 12px rgba(245, 135, 58, .35);--glow-earth: 0 0 12px rgba(201, 160, 122, .35);--glow-light: 0 0 12px rgba(243, 211, 91, .35);--glow-shadow: 0 0 12px rgba(154, 160, 180, .25);--glow-arcane: 0 0 12px rgba(185, 140, 246, .35);--glow-energy: 0 0 12px rgba(62, 216, 176, .35);--gradient-ethereal: radial-gradient(120% 55% at 50% 30%, rgba(var(--mana-rgb), .09) 0%, transparent 60%);--gradient-ethereal-bottom: radial-gradient(90% 40% at 50% 100%, rgba(var(--accent-rgb), .05) 0%, transparent 70%);--gradient-glass-highlight: linear-gradient(180deg, rgba(255, 255, 255, .05) 0%, transparent 50%);--gradient-shimmer: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, .08) 50%, transparent 100%);--gradient-accent-btn: linear-gradient(180deg, var(--color-accent-hover) 0%, var(--color-accent) 100%);--gradient-card: linear-gradient(160deg, var(--color-surface-2), var(--color-surface) 70%);--shadow-glow-soft: 0 4px 20px rgba(0, 0, 0, .35);--shadow-elevated-glass: 0 10px 30px rgba(0, 0, 0, .45), 0 0 0 1px var(--glass-border)}@media (max-width: 380px){:root{--side-btn-size: 48px;--reveal-btn-font: .6875rem;--section-gap: .625rem;--space-lg: .75rem}}@media (max-height: 600px){:root{--side-btn-size: 46px;--roll-thumb-width: 48px;--section-gap: .5rem;--header-height: 44px;--nav-height: 56px}}a,button,[role=button],input,textarea,select,[tabindex]{-webkit-tap-highlight-color:transparent;outline:none}a:focus-visible,button:focus-visible,[role=button]:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body{font-family:var(--font-body);font-feature-settings:"cv11","ss01";overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}button,input,select,textarea{font-family:inherit}h1,h2,h3,button,[role=button],input,textarea,select,.no-hyphens{-webkit-hyphens:manual;hyphens:manual}.truncate{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.font-display{font-family:var(--font-display);letter-spacing:.04em}.icon{width:1.25rem;height:1.25rem;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;display:block}[data-icon]{display:inline-flex;align-items:center;justify-content:center;flex:none}.icon-btn{width:36px;height:36px;flex:none;display:inline-grid;place-items:center;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast),transform .1s ease}.icon-btn:active{transform:scale(.94);color:var(--color-accent)}.icon-btn.active,.icon-btn[aria-pressed=true]{color:var(--color-accent);border-color:rgba(var(--accent-rgb),.35);background:var(--color-accent-subtle)}.icon-btn .icon{width:1.125rem;height:1.125rem}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5500;display:flex;align-items:flex-end;justify-content:center}.sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#05060d9e;opacity:0;transition:opacity .22s ease}.sheet{position:relative;width:100%;max-width:var(--max-width);max-height:82%;display:flex;flex-direction:column;background:var(--color-bg-secondary);border:1px solid var(--color-border-gold);border-bottom:none;border-radius:1.5rem 1.5rem 0 0;box-shadow:0 -20px 40px #00000080;transform:translateY(100%);transition:transform .22s cubic-bezier(.2,.8,.2,1);padding-bottom:var(--safe-area-bottom)}.sheet-overlay.open .sheet-backdrop{opacity:1}.sheet-overlay.open .sheet{transform:translateY(0)}.sheet-header{position:relative;display:flex;align-items:center;gap:var(--space-sm);padding:1.25rem var(--space-lg) var(--space-md);border-bottom:1px solid var(--color-border);touch-action:none}.sheet-grab{position:absolute;top:.5rem;left:50%;width:40px;height:4px;margin-left:-20px;border-radius:2px;background:#ece6d633}.sheet-title{min-width:0;margin:0;font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:600;letter-spacing:.05em}.sheet-close{margin-left:auto;border-radius:50%}.sheet-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-md) var(--space-lg) var(--space-xl)}.view-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0 var(--space-md);flex-shrink:0;min-width:0}.view-title-group{display:flex;flex-direction:column;min-width:0;flex:1}.view-title-group h2{margin:0;font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:600;letter-spacing:.05em;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-actions{display:flex;align-items:center;gap:.375rem;flex:none}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);padding:3px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}.segment{min-width:0;min-height:34px;padding:.375rem .5rem;border:none;border-radius:calc(var(--radius-md) - 3px);background:none;color:var(--color-text-muted);font-family:inherit;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast);-webkit-tap-highlight-color:transparent}.segment.active{background:var(--color-surface-3);color:var(--color-text-primary);box-shadow:inset 0 1px #ffffff0d}.icon.icon-filled{fill:currentColor}.challenges-popup-title,.inventory-popup-title,.help-modal-title,.storage-modal-title,.report-modal-title,.notification-dropdown-title{font-family:var(--font-display);font-weight:600;letter-spacing:.04em}.challenge-icon .icon{width:22px;height:22px}.btn{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:600;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);-webkit-tap-highlight-color:transparent;position:relative;overflow:hidden}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--gradient-accent-btn);color:var(--color-on-accent);box-shadow:0 2px 10px rgba(var(--accent-rgb),.3)}.btn-primary:hover:not(:disabled){box-shadow:0 4px 20px rgba(var(--accent-rgb),.4)}.btn-primary:active:not(:disabled){transform:scale(.97);box-shadow:0 2px 15px rgba(var(--accent-rgb),.5);opacity:.9}.btn-secondary{background:var(--glass-bg-light);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--color-text-primary);border:1px solid var(--glass-border)}.btn-secondary:hover:not(:disabled){background:var(--glass-bg);border-color:var(--glass-border-light)}.btn-secondary:active:not(:disabled){background:var(--color-bg-elevated)}.btn-outline{background:transparent;border:2px solid var(--color-accent);color:var(--color-accent)}.btn-blue{background:#3b82f6;color:#fff}.btn-blue:active:not(:disabled){background:#2563eb}.btn-outline:active:not(:disabled){background:var(--color-accent);color:var(--color-on-accent)}.btn-ghost{background:transparent;color:var(--color-text-secondary);border:none}.btn-ghost:active:not(:disabled){color:var(--color-accent)}.btn-xs{padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-xs)}.btn-sm{padding:var(--space-xs) var(--space-md);font-size:var(--font-size-sm)}.btn-lg{padding:var(--space-md) var(--space-xl);font-size:var(--font-size-lg)}.btn-block{width:100%}.card{background:var(--glass-bg-light);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:var(--radius-lg);padding:var(--space-lg);border:1px solid var(--glass-border);transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast)}.card:hover{border-color:var(--glass-border-light);box-shadow:var(--shadow-elevated-glass)}.card-compact{padding:var(--space-md)}.card-bordered{border:1px solid var(--glass-border-light)}.card-elevated{box-shadow:var(--shadow-md)}.card-accent{border:1px solid rgba(var(--accent-rgb),.3);background:rgba(var(--accent-rgb),.05);box-shadow:0 0 20px rgba(var(--accent-rgb),.1)}.card-accent:hover{border-color:rgba(var(--accent-rgb),.5);box-shadow:0 0 30px rgba(var(--accent-rgb),.2)}.card-accent-strong{border:2px solid var(--color-accent);background:var(--color-accent-subtle);box-shadow:var(--shadow-glow)}.badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:700;line-height:1}.badge-accent{background:var(--color-accent);color:var(--color-on-accent)}.badge-dark{background:#000000b3;color:#fff}.badge-rarity-10,.badge-rarity-9{background:var(--color-rarity-legendary);color:#000}.badge-rarity-8,.badge-rarity-7{background:var(--color-rarity-rare);color:#000}.badge-rarity-6,.badge-rarity-5{background:var(--color-rarity-uncommon);color:#000}.badge-rarity-4,.badge-rarity-3{background:var(--color-rarity-common);color:#000}.badge-rarity-2,.badge-rarity-1{background:var(--color-rarity-basic);color:#000}.badge-nature{background:var(--color-nature);color:#000}.badge-water{background:var(--color-water);color:#000}.badge-fire{background:var(--color-fire);color:#000}.badge-earth{background:var(--color-earth);color:#000}.badge-light{background:var(--color-light);color:#000}.badge-shadow{background:var(--color-shadow);color:#fff}.badge-arcane{background:var(--color-arcane);color:#000}.badge-energy{background:var(--color-energy);color:#000}.chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:.35rem .75rem;border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:500;background:var(--color-bg-secondary);color:var(--color-text-secondary);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.chip:hover{border-color:var(--color-text-muted)}.chip.active{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent)}.chip-icon{font-size:.9em}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-sm)}.grid-responsive{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}@media (min-width: 380px){.grid-responsive{grid-template-columns:repeat(3,1fr)}}.input{width:100%;padding:var(--space-lg);border-radius:var(--radius-md);border:2px solid var(--color-bg-secondary);background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:var(--font-size-lg);font-family:var(--font-family);transition:border-color var(--transition-fast)}.input:focus{outline:none;border-color:var(--color-accent)}.input::placeholder{color:var(--color-text-secondary)}.input-sm{padding:var(--space-md);font-size:var(--font-size-base)}.textarea{resize:vertical;min-height:100px}.checkbox-label{display:flex;align-items:flex-start;gap:var(--space-sm);font-size:var(--font-size-base);color:var(--color-text-secondary);cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:var(--color-accent);cursor:pointer;flex-shrink:0}.progress-bar{background:var(--color-bg-bar);border-radius:var(--radius-md);height:.5rem;overflow:hidden}.progress-bar-fill{height:100%;background:var(--color-accent);transition:width var(--transition-slow)}.progress-bar-lg{height:var(--mana-bar-height);border-radius:var(--radius-md)}.thumbnail{aspect-ratio:3/4;background:var(--color-bg-secondary);border-radius:var(--radius-md);overflow:hidden;position:relative;cursor:pointer}.thumbnail img{width:100%;height:100%;object-fit:cover}.thumbnail-badge{position:absolute;top:var(--space-xs);right:var(--space-xs);background:#000000b3;padding:.1rem .3rem;border-radius:var(--radius-xs);font-size:var(--font-size-xs);font-weight:700}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-bg-overlay);display:flex;align-items:flex-start;justify-content:center;padding:var(--space-lg);padding-top:max(var(--space-2xl),var(--safe-area-top));z-index:10001;overflow-y:auto;overscroll-behavior-y:contain}.modal-content{max-width:500px;width:100%;background:var(--color-bg-secondary);border-radius:var(--radius-xl);padding:var(--space-xl);position:relative}.modal-close{position:absolute;top:var(--space-md);right:var(--space-md);background:#000000b3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.15);color:#ffffffe6;font-size:1.25rem;font-weight:300;width:44px;height:44px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;-webkit-tap-highlight-color:transparent}.modal-close:hover{background:#000000e6}.divider{height:1px;background:#ffffff1a;margin:var(--space-lg) 0}.divider-sm{margin:var(--space-sm) 0}.text-accent{color:var(--color-accent)}.text-muted{color:var(--color-text-muted)}.text-dim{color:var(--color-text-secondary)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-bold{font-weight:700}.text-medium{font-weight:500}.text-center{text-align:center}.text-right{text-align:right}.text-uppercase{text-transform:uppercase;letter-spacing:.05em}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.p-xl{padding:var(--space-xl)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes scaleIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slideUp{0%{transform:translate(-50%) translateY(20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}@keyframes slideDown{0%{transform:translate(-50%) translateY(0);opacity:1}to{transform:translate(-50%) translateY(20px);opacity:0}}@keyframes pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}@keyframes scan{0%{top:0}50%{top:calc(100% - 4px)}to{top:0}}@keyframes levelUp{0%{transform:scale(.5) rotate(-10deg);opacity:0}50%{transform:scale(1.2) rotate(5deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes shine{0%,to{filter:brightness(1)}50%{filter:brightness(1.3)}}@keyframes dots{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}.animate-fadeIn{animation:fadeIn .3s ease}.animate-scaleIn{animation:scaleIn .5s ease}.animate-pulse{animation:pulse 2s ease infinite}.animate-levelUp{animation:levelUp .6s ease}.animate-shine{animation:shine 1s ease infinite}.overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease}.overlay-dark{background:#000000e6}.overlay-medium{background:#000c}.scan-container{position:relative;width:150px;height:150px;margin-bottom:var(--space-2xl)}.scan-ring{position:absolute;top:0;right:0;bottom:0;left:0;border:3px solid var(--color-accent);border-radius:50%;animation:pulse 2s ease infinite}.scan-ring-inner{position:absolute;top:20px;right:20px;bottom:20px;left:20px;border:2px solid var(--color-accent);border-radius:50%;opacity:.7;animation:pulse 2s ease infinite .3s}.scan-ring-center{position:absolute;top:40px;right:40px;bottom:40px;left:40px;border:2px solid var(--color-accent);border-radius:50%;opacity:.5;animation:pulse 2s ease infinite .6s}.scan-line{position:absolute;left:0;right:0;height:4px;background:linear-gradient(90deg,transparent,var(--color-accent),transparent);animation:scan 2s ease-in-out infinite}.scanning-text:after{content:"";animation:dots 1.5s infinite}.onboarding-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000f2;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10001;animation:fadeIn .3s ease;padding:var(--space-md);box-sizing:border-box}.onboarding-card{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-2xl);max-width:320px;width:100%;text-align:center;animation:slideUp .4s ease}.onboarding-card.slide-left{animation:onboardingSlideLeft .25s ease}.onboarding-card.slide-right{animation:onboardingSlideRight .25s ease}@keyframes onboardingSlideLeft{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes onboardingSlideRight{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.onboarding-icon{display:inline-flex;align-items:center;justify-content:center;width:4.5rem;height:4.5rem;margin-bottom:var(--space-md);border-radius:50%;color:var(--color-accent);background:rgba(var(--accent-rgb),.1);border:1px solid rgba(var(--accent-rgb),.35);box-shadow:0 0 24px rgba(var(--accent-rgb),.18)}.onboarding-icon .icon{width:2.25rem;height:2.25rem}.onboarding-title{color:var(--color-accent);font-size:var(--font-size-xl);margin:0 0 var(--space-md) 0;font-weight:700}.onboarding-content{color:var(--color-text-primary);font-size:var(--font-size-base);line-height:1.6;margin:0 0 var(--space-lg) 0}.onboarding-dots{display:flex;justify-content:center;gap:var(--space-sm);margin-bottom:var(--space-lg)}.onboarding-dot{width:10px;height:10px;border-radius:50%;background:var(--color-text-dim);transition:background .2s ease,transform .2s ease;cursor:pointer}.onboarding-dot:hover{background:var(--color-text-secondary)}.onboarding-dot.active{background:var(--color-accent);transform:scale(1.2)}.onboarding-buttons{display:flex;justify-content:space-between;gap:var(--space-md)}.onboarding-btn{flex:1;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-weight:700;font-size:var(--font-size-base);cursor:pointer;transition:opacity .2s ease,transform .1s ease}.onboarding-btn:active{transform:scale(.98)}.onboarding-btn-back{background:transparent;border:2px solid var(--color-text-dim);color:var(--color-text-dim)}.onboarding-btn-back:hover{border-color:var(--color-text-secondary);color:var(--color-text-secondary)}.onboarding-btn-skip{background:transparent;border:2px solid var(--color-text-dim);color:var(--color-text-dim)}.onboarding-btn-skip:hover{border-color:var(--color-text-secondary);color:var(--color-text-secondary)}.onboarding-btn-next{background:var(--color-accent);border:none;color:var(--color-on-accent)}.onboarding-btn-next:hover{opacity:.9}.first-time-tooltip{position:fixed;z-index:10002;animation:fadeIn .2s ease,bounceIn .3s ease}@keyframes bounceIn{0%{transform:scale(.9)}50%{transform:scale(1.02)}to{transform:scale(1)}}.first-time-tooltip.tooltip-exit{animation:fadeOut .2s ease forwards}@keyframes fadeOut{to{opacity:0;transform:scale(.95)}}.first-time-tooltip-content{background:var(--color-bg-secondary);border:1px solid var(--color-accent);border-radius:var(--radius-md);padding:var(--space-md);max-width:260px;box-shadow:var(--shadow-lg),0 0 20px rgba(var(--accent-rgb),.2)}.first-time-tooltip-title{color:var(--color-accent);font-weight:700;font-size:var(--font-size-base);margin-bottom:var(--space-xs)}.first-time-tooltip-text{color:var(--color-text-primary);font-size:var(--font-size-sm);line-height:1.5;margin-bottom:var(--space-md)}.first-time-tooltip-dismiss{background:var(--color-accent);color:var(--color-on-accent);border:none;border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-md);font-size:var(--font-size-sm);font-weight:700;cursor:pointer;width:100%;transition:opacity .2s ease}.first-time-tooltip-dismiss:hover{opacity:.9}.first-time-tooltip-arrow{position:absolute;width:0;height:0;border:8px solid transparent}.first-time-tooltip-above .first-time-tooltip-arrow{bottom:-16px;left:50%;transform:translate(-50%);border-top-color:var(--color-accent);border-bottom:none}.first-time-tooltip-below .first-time-tooltip-arrow{top:-8px;left:50%;transform:translate(-50%);border-bottom-color:var(--color-accent);border-top:none}.first-time-tooltip-left .first-time-tooltip-arrow{right:-16px;top:50%;transform:translateY(-50%);border-left-color:var(--color-accent);border-right:none}.first-time-tooltip-right .first-time-tooltip-arrow{left:-8px;top:50%;transform:translateY(-50%);border-right-color:var(--color-accent);border-left:none}.walkthrough-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10003;background:#000000d9;animation:fadeIn .3s ease}.walkthrough-overlay.has-spotlight{background:transparent}.walkthrough-hole{position:fixed;border-radius:var(--radius-lg);box-shadow:0 0 0 200vmax #000000d9;pointer-events:none}.walkthrough-pulse{position:fixed;border:3px solid var(--color-accent);border-radius:var(--radius-lg);animation:walkthroughPulse 1.5s ease-in-out infinite;pointer-events:none}@keyframes walkthroughPulse{0%,to{transform:scale(1);opacity:1;box-shadow:0 0 rgba(var(--accent-rgb),.4)}50%{transform:scale(1.02);opacity:.8;box-shadow:0 0 0 8px rgba(var(--accent-rgb),0)}}.walkthrough-hint{position:fixed;left:50%;transform:translate(-50%);background:var(--color-bg-secondary);border:1px solid var(--color-accent);border-radius:var(--radius-lg);padding:var(--space-lg);max-width:300px;width:calc(100% - 40px);text-align:center;box-shadow:var(--shadow-lg),0 0 30px rgba(var(--accent-rgb),.3);animation:slideUp .3s ease}.walkthrough-hint-center{top:50%;transform:translate(-50%,-50%)}.walkthrough-hint-title{color:var(--color-accent);font-size:var(--font-size-lg);font-weight:700;margin-bottom:var(--space-sm)}.walkthrough-hint-text{color:var(--color-text-primary);font-size:var(--font-size-base);line-height:1.5;margin-bottom:var(--space-lg)}.walkthrough-skip{background:transparent;border:1px solid var(--color-text-dim);color:var(--color-text-dim);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-md);font-size:var(--font-size-sm);cursor:pointer;transition:border-color .2s ease,color .2s ease}.walkthrough-skip:hover{border-color:var(--color-text-secondary);color:var(--color-text-secondary)}.toast{position:fixed;bottom:calc(var(--nav-height) + var(--safe-area-bottom) + 16px);left:50%;transform:translate(-50%);background:var(--color-surface-2);color:var(--color-text-primary);border:1px solid var(--color-border-gold);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:10010;animation:slideUp .3s ease;width:max-content;max-width:min(calc(100vw - 2rem),420px);text-align:center;font-size:var(--font-size-base);line-height:1.4;-webkit-hyphens:manual;hyphens:manual;pointer-events:none}.toast-exit{animation:slideDown .3s ease forwards}.toast-success{border-color:#5fd48a73;box-shadow:var(--shadow-lg),inset 3px 0 0 var(--color-success)}.toast-error{border-color:#e8615a80;box-shadow:var(--shadow-lg),inset 3px 0 0 var(--color-error)}.toast-warning{border-color:#f3d35b73;box-shadow:var(--shadow-lg),inset 3px 0 0 var(--color-warning)}.discovery-celebration{text-align:center;animation:scaleIn .5s ease}.discovery-title{font-size:var(--font-size-2xl);margin-bottom:var(--space-sm)}.discovery-subject{font-size:var(--font-size-xl);margin-bottom:var(--space-lg)}.discovery-rewards{display:flex;gap:var(--space-lg);justify-content:center;margin-bottom:var(--space-lg);font-size:var(--font-size-2xl);font-weight:700}.discovery-flavor{color:var(--color-text-secondary);font-style:italic;max-width:300px;margin:0 auto}.discovery-drops{margin-bottom:var(--space-lg);padding:var(--space-sm) var(--space-md);background:#ffffff1a;border-radius:var(--radius-lg);animation:dropBounce .5s ease-out}.discovery-drops-title{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-xs);text-transform:uppercase;letter-spacing:.1em}.discovery-drop-item{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);font-size:var(--font-size-lg);font-weight:600;opacity:0;animation:itemCascade .4s ease-out forwards,itemGlow 1s ease-in-out .4s infinite}@keyframes itemCascade{0%{opacity:0;transform:translateY(-10px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.drop-item-icon{font-size:var(--font-size-xl)}.drop-item-name{text-shadow:0 0 10px currentColor}@keyframes dropBounce{0%{transform:scale(0);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@keyframes itemGlow{0%,to{filter:brightness(1)}50%{filter:brightness(1.3)}}.discovery-celebration.legendary{position:relative}.discovery-celebration.legendary:before{content:"";position:absolute;top:-60px;right:-60px;bottom:-60px;left:-60px;background:radial-gradient(circle at center,rgba(242,194,101,.3) 0%,transparent 70%);animation:legendary-glow 2s ease-in-out infinite;pointer-events:none;z-index:-1}@keyframes legendary-glow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.discovery-celebration.legendary .discovery-title{background:linear-gradient(90deg,var(--color-rarity-legendary) 0%,#ffd700 50%,var(--color-rarity-legendary) 100%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent!important;animation:shimmer 2s linear infinite}@keyframes shimmer{to{background-position:200% center}}.legendary-particles{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:10}.legendary-particle{position:absolute;width:8px;height:8px;background:var(--color-rarity-legendary);border-radius:50%;left:50%;top:50%;animation:particle-burst 1.5s ease-out forwards}@keyframes particle-burst{0%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) scale(0);opacity:0}}.level-up-content{text-align:center;animation:levelUp .6s ease}.level-up-emoji{font-size:4rem;margin-bottom:var(--space-sm)}.level-up-title{font-family:var(--font-display);font-weight:600;letter-spacing:.06em;color:var(--color-accent);font-size:var(--font-size-3xl);margin-bottom:var(--space-sm);animation:shine 1s ease infinite}.level-up-number{font-size:3rem;font-weight:700;color:var(--color-accent-hover);text-shadow:0 0 24px rgba(var(--accent-rgb),.45)}.level-up-subtitle{color:var(--color-text-secondary);margin-top:var(--space-lg)}.level-up-confetti{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:10000}.confetti-piece{position:absolute;width:10px;height:10px;top:-20px;animation:confetti-fall 2.5s ease-out forwards}.confetti-piece:nth-child(odd){border-radius:50%}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.spinner{width:30px;height:30px;border:3px solid var(--color-accent);border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite}.spinner-sm{width:16px;height:16px;border:2px solid var(--color-accent);border-top-color:transparent;border-radius:50%;animation:spin 1s linear infinite;display:inline-block;vertical-align:middle}.btn-loading{position:relative;pointer-events:none}.btn-loading:after{content:"";position:absolute;right:8px;top:50%;transform:translateY(-50%);width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.skeleton{background:linear-gradient(90deg,var(--color-bg-secondary) 25%,var(--color-bg-tertiary) 50%,var(--color-bg-secondary) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-md)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-grid-item{aspect-ratio:3/4}.skeleton-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}@media (min-width: 380px){.skeleton-grid{grid-template-columns:repeat(3,1fr)}}.skeleton-text{height:1em;border-radius:var(--radius-xs)}.skeleton-text-sm{height:.8em;width:60%}.skeleton-avatar{width:40px;height:40px;border-radius:50%}.thumbnail-pending{opacity:.7}.thumbnail-error{opacity:.6}.thumbnail-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000080}.discovery-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-bg-overlay);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:max(var(--space-lg),env(safe-area-inset-top)) var(--space-md) max(var(--space-lg),env(safe-area-inset-bottom));z-index:10000;touch-action:pan-y}.discovery-modal-container{position:relative;max-width:400px;width:100%;min-height:0;flex:0 1 auto;display:flex;flex-direction:column}.discovery-modal-counter{text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-base);margin-bottom:var(--space-sm)}.discovery-modal-card{background:var(--color-bg-secondary);border-radius:var(--radius-xl);overflow:hidden;position:relative;will-change:transform,opacity;display:flex;flex-direction:column;min-height:0;flex:0 1 auto}.discovery-modal-card:before{content:"";position:absolute;top:var(--space-sm);left:50%;transform:translate(-50%);width:36px;height:4px;background:#ffffff4d;border-radius:2px;z-index:10}.discovery-modal-media{position:relative;width:100%;aspect-ratio:3/4;flex:0 10 auto;min-height:140px;overflow:hidden}.discovery-modal-image{display:block;width:100%;height:100%;object-fit:cover}.discovery-modal-close{position:absolute;top:var(--space-sm);right:var(--space-sm);z-index:11;width:40px;height:40px;display:grid;place-items:center;border:none;border-radius:50%;background:#00000073;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent}.discovery-modal-close .icon{width:1.25rem;height:1.25rem}.discovery-modal-content{padding:var(--space-md) var(--space-lg) var(--space-lg);flex:none;max-height:max(calc(var(--vh, 1vh) * 100 - 250px),calc(var(--vh, 1vh) * 35));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.discovery-modal-header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-sm);margin-bottom:var(--space-sm)}.discovery-modal-subject{margin:0;min-width:0;font-size:var(--font-size-xl);overflow-wrap:break-word}.discovery-modal-rarity{font-weight:700;flex:none;white-space:nowrap}.discovery-modal-badges{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md)}.discovery-modal-badge{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:700}.discovery-modal-badge-element{color:#000}.discovery-modal-badge-xp{background:var(--color-accent);color:var(--color-on-accent)}.discovery-modal-flavor{color:var(--color-text-secondary);font-style:italic;margin:0;line-height:1.5}.discovery-modal-tip{display:flex;gap:var(--space-sm);margin:var(--space-sm) 0 0;font-size:var(--font-size-sm);line-height:1.5;color:var(--color-text-secondary);-webkit-hyphens:auto;hyphens:auto}.discovery-modal-tip .icon{flex:none;width:16px;height:16px;margin-top:2px;color:var(--color-accent)}.discovery-modal-tip strong{color:var(--color-text);font-weight:600}.discovery-modal-date{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:var(--space-sm) 0 0}.discovery-modal-actions{width:100%;max-width:400px;flex:none;display:flex;gap:var(--space-sm);margin-top:var(--space-md)}.discovery-action-btn{flex:1 1 0;min-width:0;min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);white-space:nowrap;padding:var(--space-sm) var(--space-md);line-height:1.2;border-radius:var(--radius-full);border:none;background:var(--color-bg-tertiary);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.discovery-action-btn:active{transform:scale(.95)}.discovery-action-share{background:var(--color-accent);color:var(--color-on-accent)}.discovery-action-share:active{background:var(--color-accent-hover)}.discovery-action-btn .icon{width:1.125rem;height:1.125rem;flex:none}.discovery-action-label:empty{display:none}.discovery-action-delete{flex:0 0 48px;padding:0;background:var(--color-bg-tertiary);color:var(--color-text-secondary);transition:flex-basis var(--transition-fast),background var(--transition-fast),color var(--transition-fast)}.discovery-action-delete.confirm{flex-basis:40%;padding:0 var(--space-md);background:#ef44442e;color:var(--color-error)}.discovery-action-retry{background:var(--color-warning);color:var(--color-bg-primary)}.discovery-action-retry:active{background:#c8a011}.discovery-action-retry:disabled{opacity:.7;cursor:wait}.discovery-action-retry.loading{animation:pulse 2s ease-in-out infinite}.discovery-action-share-card{background:transparent;color:var(--color-accent);border:1.5px solid var(--color-accent)}.discovery-action-share-card:active{background:var(--color-accent);color:var(--color-on-accent)}.discovery-action-share-card:disabled{opacity:.7;cursor:wait}.btn-accent-outline{background:transparent;color:var(--color-accent);border:1.5px solid var(--color-accent)}.btn-accent-outline:active:not(:disabled){background:var(--color-accent);color:var(--color-on-accent)}.btn-accent-outline:disabled{opacity:.7;cursor:wait}.discovery-modal-pending-info{padding:var(--space-md);margin:var(--space-md) 0;background:#ffc1071a;border-radius:var(--radius-md);border:1px solid rgba(255,193,7,.3)}.discovery-modal-pending-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5;margin:0}.discovery-nav-btn{position:absolute;top:50%;transform:translateY(-50%);background:#00000080;border:none;color:#fff;font-size:2rem;padding:var(--space-sm);cursor:pointer;border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.discovery-nav-btn:active{background:#000000b3}.discovery-nav-prev{left:var(--space-sm)}.discovery-nav-next{right:var(--space-sm)}.post-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-bg-overlay);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:var(--space-md);padding-top:max(var(--space-md),env(safe-area-inset-top));padding-bottom:max(var(--space-md),env(safe-area-inset-bottom));z-index:10001;overflow:hidden}.post-modal-centered{justify-content:center}.post-modal-card{max-width:500px;width:100%;max-height:calc(var(--vh, 1vh) * 90);background:var(--color-bg-secondary);border-radius:var(--radius-xl);overflow:hidden;display:flex;flex-direction:column;position:relative}.post-modal-card:before{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:36px;height:4px;background:#ffffff4d;border-radius:2px;z-index:10}.post-modal-hero{position:relative;flex-shrink:0;background:#0a0a0a}.post-modal-hero .modal-close{position:absolute;top:var(--space-md);right:var(--space-md);z-index:10}.post-modal-image{width:100%;max-height:calc(var(--vh, 1vh) * 55);object-fit:contain;display:block;margin:0 auto}@media (min-height: 700px){.post-modal-image{max-height:calc(var(--vh, 1vh) * 50)}}@media (min-height: 800px){.post-modal-image{max-height:calc(var(--vh, 1vh) * 55)}}.post-author-chip{position:absolute;bottom:var(--space-md);left:var(--space-md);display:flex;align-items:center;gap:var(--space-sm);background:#000000b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast)}.post-author-chip:active{background:#000000d9}.post-author-name{font-weight:600;color:var(--color-accent);font-size:var(--font-size-sm)}.post-author-level{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.post-modal-body{flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:var(--space-lg);padding-bottom:calc(var(--space-xl) + env(safe-area-inset-bottom,0px));min-height:0}.post-discovery-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.post-subject{margin:0;font-size:var(--font-size-xl);font-weight:600}.post-rarity{font-weight:700;font-size:var(--font-size-lg)}.post-meta-row{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);font-size:var(--font-size-sm)}.post-element-badge{padding:2px var(--space-sm);border-radius:var(--radius-xs);font-size:var(--font-size-xs);font-weight:700;color:#000}.post-essence{color:var(--color-accent);font-weight:600}.post-time{margin-left:auto;color:var(--color-text-muted)}.post-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.post-modal-title{margin:0;font-size:var(--font-size-xl)}.post-modal-rarity{font-weight:700;font-size:var(--font-size-md)}.post-modal-badges{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md)}.post-modal-badge{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:700}.post-modal-meta{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.post-meta-essence{color:var(--color-accent);font-weight:600}.post-meta-date{margin-left:auto}.post-author-header{padding:var(--space-md) var(--space-lg);display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;flex-shrink:0}.post-content{padding:var(--space-md);flex-shrink:0}.post-caption{color:var(--color-text-primary);margin:var(--space-md) 0;font-size:var(--font-size-md);line-height:1.4}.hashtag{color:var(--color-primary);cursor:pointer;transition:opacity .15s}.hashtag:hover{opacity:.8;text-decoration:underline}.hashtag:active{opacity:.6}.post-flavor{color:var(--color-text-secondary);font-style:italic;margin:0;font-size:var(--font-size-base);line-height:1.4}.post-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-lg)}.post-action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:var(--color-bg-tertiary);border:none;border-radius:var(--radius-full);color:var(--color-text-secondary);font-size:var(--font-size-md);font-weight:500;cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.post-action-btn:active{transform:scale(.96);background:var(--color-bg-elevated)}.post-action-btn.liked{background:#ff475726;color:#ff4757}.post-action-danger{flex:0;padding:var(--space-md);color:var(--color-error);background:#ef44441a}.post-action-danger:active{background:#ef444433}.post-action-secondary{flex:0;padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);background:transparent;color:var(--color-text-muted);opacity:.5;filter:grayscale(1)}.post-action-secondary:hover,.post-action-secondary:active{opacity:1;filter:grayscale(0);background:var(--color-bg-tertiary)}.comments-section{border-top:1px solid rgba(255,255,255,.05);margin-top:var(--space-lg);padding-top:var(--space-lg)}.comments-title{margin:0 0 var(--space-md) 0;font-size:var(--font-size-md);color:var(--color-text-secondary)}.comment-item{padding:var(--space-sm) 0}.comment-item+.comment-item{margin-top:var(--space-md)}.comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.comment-author{font-weight:700;cursor:pointer;color:var(--color-accent)}.comment-delete-btn{background:none;border:none;color:var(--color-error);cursor:pointer;font-size:var(--font-size-sm);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;margin:-8px;padding:8px;-webkit-tap-highlight-color:transparent}.comment-actions{display:flex;gap:var(--space-xs);align-items:center}.comment-edit-btn{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-xs);padding:4px 8px;-webkit-tap-highlight-color:transparent}.edit-timer{color:var(--color-text-muted);font-size:var(--font-size-xs);opacity:.8}.load-more-comments{display:block;width:100%;margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm)}.comment-footer{display:flex;gap:var(--space-sm);align-items:center;flex-wrap:wrap}.comment-edited{font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic}.comment-reply-count{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.comment-reply-btn{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-xs);padding:4px 8px;-webkit-tap-highlight-color:transparent}.comment-reply-btn:hover{color:var(--color-accent)}.comment-replies{margin-left:var(--space-lg);margin-top:var(--space-sm);padding-left:var(--space-sm);border-left:2px solid rgba(255,255,255,.1)}.comment-reply{padding:var(--space-xs) 0}.comment-reply+.comment-reply{margin-top:var(--space-sm)}.comment-inline-reply-form{margin-top:var(--space-sm);padding:var(--space-sm);background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.comment-reply-input{width:100%;min-height:60px;padding:var(--space-sm);background:var(--color-bg-secondary);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);resize:vertical;margin-bottom:var(--space-sm)}.comment-reply-input:focus{outline:none;border-color:var(--color-accent)}.comment-reply-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.comment-reply-cancel,.comment-reply-submit{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;border:none}.comment-reply-cancel{background:transparent;color:var(--color-text-secondary)}.comment-reply-submit{background:var(--color-accent);color:var(--color-on-accent)}.comment-reply-submit:disabled{opacity:.5;cursor:not-allowed}.comment-edit-form{padding:var(--space-sm)}.comment-edit-input{width:100%;min-height:60px;padding:var(--space-sm);background:var(--color-bg-tertiary);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);resize:vertical;margin-bottom:var(--space-sm)}.comment-edit-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.comment-edit-cancel,.comment-edit-save{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:500;cursor:pointer;border:none;transition:all var(--transition-fast)}.comment-edit-cancel{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.comment-edit-save{background:var(--color-accent);color:var(--color-on-accent)}.comment-edit-save:disabled{opacity:.5;cursor:not-allowed}.comment-content{margin:0;font-size:var(--font-size-md);line-height:1.4;word-break:break-word}.comment-date{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.comment-form{margin-top:var(--space-lg);padding-bottom:var(--space-md)}.comment-input-row{display:flex;gap:var(--space-sm);align-items:center;background:var(--color-bg-primary);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-full);padding:4px 4px 4px var(--space-md);transition:border-color var(--transition-fast)}.comment-input-row:focus-within{border-color:var(--color-accent)}.comment-input{flex:1;height:32px;padding:0;border:none;background:transparent;color:var(--color-text-primary);font-size:var(--font-size-base);font-family:inherit;resize:none;box-sizing:border-box;line-height:32px}.comment-input:focus{outline:none}.comment-input::placeholder{color:var(--color-text-muted)}.comment-submit-btn{flex-shrink:0;height:32px;padding:0 var(--space-lg);background:var(--color-accent);border:none;border-radius:var(--radius-full);color:var(--color-on-accent);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.comment-submit-btn:active{transform:scale(.95);background:var(--color-accent-hover)}.comment-submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.post-form-label{display:block;margin-bottom:var(--space-sm);color:var(--color-text-secondary);font-size:var(--font-size-base)}.post-form-textarea{width:100%;min-height:80px;padding:var(--space-md);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-lg);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:var(--font-size-md);font-family:inherit;resize:vertical;box-sizing:border-box;transition:border-color var(--transition-fast)}.post-form-textarea:focus{outline:none;border-color:var(--color-accent)}.post-form-counter{text-align:right;color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-top:var(--space-xs)}.hashtag-suggestions{margin-top:var(--space-md)}.hashtag-suggestions-label{display:block;color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--space-xs)}.hashtag-chips{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.chip-hashtag{--chip-color: var(--color-accent);padding:.25rem .6rem;font-size:var(--font-size-xs);border:1px solid color-mix(in srgb,var(--chip-color) 50%,transparent);background:color-mix(in srgb,var(--chip-color) 15%,transparent);color:var(--color-text-primary)}.chip-hashtag:hover{background:color-mix(in srgb,var(--chip-color) 25%,transparent);border-color:var(--chip-color)}.chip-hashtag.active{background:var(--chip-color);border-color:var(--chip-color);color:#000}.post-form-error{color:var(--color-error);font-size:var(--font-size-base);margin-top:var(--space-sm)}.post-form-actions{display:flex;gap:var(--space-md);margin-top:var(--space-lg)}.post-form-actions .btn{flex:1}.post-date{color:var(--color-text-muted);font-size:var(--font-size-xs);margin:var(--space-sm) 0 0 0}.mention{color:var(--color-accent);cursor:pointer;font-weight:500}.mention:hover{text-decoration:underline}.mention-dropdown{position:absolute;left:var(--space-md);right:var(--space-md);bottom:calc(100% + var(--space-xs));background:var(--color-bg-secondary);border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-md);box-shadow:0 -4px 20px #0000004d;max-height:200px;overflow-y:auto;z-index:100}.mention-option{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);cursor:pointer;transition:background var(--transition-fast)}.mention-option:hover,.mention-option.selected{background:var(--color-bg-tertiary)}.mention-avatar{width:28px;height:28px;background:linear-gradient(135deg,var(--color-accent),#3b82f6);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);color:var(--color-on-accent);font-weight:600;flex-shrink:0}.mention-name{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:500}.comment-form{position:relative}.public-profile-view{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-bg-primary);z-index:10001;overflow-y:auto;overscroll-behavior-y:contain}.public-profile-container{max-width:600px;margin:0 auto}.public-profile-name{margin:0 0 2px;font-size:var(--font-size-xl);font-weight:700;overflow-wrap:anywhere}.public-profile-info{padding:var(--space-sm) var(--space-lg) var(--space-md);border-bottom:1px solid var(--color-border)}.public-profile-identity{display:flex;gap:var(--space-md);align-items:center}.public-profile-details{flex:1;min-width:0}.public-profile-meta{display:flex;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap}.public-profile-level{color:var(--color-text-secondary);font-size:var(--font-size-base)}.public-profile-badges{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-xs);flex-wrap:wrap}.streak-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-sm);font-weight:600;color:var(--color-fire);background:#ff6b3526;padding:2px 8px;border-radius:var(--radius-full)}.streak-badge.streak-hot{animation:streak-fire 1.5s ease-in-out infinite}@keyframes streak-fire{0%,to{text-shadow:0 0 4px rgba(255,107,53,.5)}50%{text-shadow:0 0 8px rgba(255,107,53,.8),0 0 12px rgba(255,200,100,.4)}}.element-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-sm);font-weight:500;padding:2px 8px;border-radius:var(--radius-full);color:var(--element-color, var(--color-text-primary));background:color-mix(in srgb,var(--element-color, #fff) 14%,transparent)}.element-badge .icon,.streak-badge .icon{width:14px;height:14px}.title-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-sm);font-weight:700;color:gold;background:#ffd7001f;border:1px solid rgba(255,215,0,.4);padding:2px 8px;border-radius:var(--radius-full)}.title-picker-list{display:flex;flex-direction:column;gap:var(--space-sm);max-height:50vh;overflow-y:auto}.title-option{display:flex;align-items:center;gap:var(--space-md);width:100%;text-align:left;padding:var(--space-md);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-lg);background:var(--color-bg-primary);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.title-option:active{transform:scale(.98)}.title-option.selected{border-color:gold;background:#ffd7001a}.title-option.locked{opacity:.45;cursor:default}.title-option.locked:active{transform:none}.title-option-icon{font-size:1.4rem;flex-shrink:0}.title-option-info{display:flex;flex-direction:column;gap:2px;min-width:0}.title-option-name{font-weight:600;font-size:var(--font-size-md)}.title-option-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.title-picker-empty{text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:var(--space-md) 0 0 0}.public-profile-bio{margin:var(--space-sm) 0 0 0;font-size:var(--font-size-sm);line-height:1.4;color:var(--color-text-secondary);white-space:pre-line;overflow-wrap:anywhere}.public-profile-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-xs);margin-top:var(--space-md)}.public-profile-stat{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:0;padding:.375rem .25rem;background:none;border:none;border-radius:var(--radius-md);color:inherit;font:inherit;-webkit-tap-highlight-color:transparent}button.public-profile-stat{cursor:pointer}button.public-profile-stat:active{background:#ffffff0f}.public-profile-stat-value{font-weight:700;font-size:var(--font-size-lg);color:var(--color-text-primary);font-variant-numeric:tabular-nums}.public-profile-stat-label{max-width:100%;font-size:var(--font-size-xs);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edit-bio-btn{flex:1;min-height:38px;background:var(--color-accent-subtle);border:none;border-radius:var(--radius-md);color:var(--color-accent);padding:var(--space-xs) var(--space-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:600;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.edit-bio-btn:active{transform:scale(.95);background:var(--color-accent);color:var(--color-on-accent)}.public-profile-posts{padding:var(--space-sm) var(--space-sm) calc(var(--space-xl) + env(safe-area-inset-bottom))}.public-profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-xs)}.public-profile-post-thumb{position:relative;display:block;width:100%;padding:0;border:none;border-radius:var(--radius-sm);background:var(--color-surface);aspect-ratio:4/5;cursor:pointer;overflow:hidden;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.public-profile-post-thumb img{display:block;width:100%;height:100%;object-fit:cover}.public-profile-post-meta{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:center;padding:1.25rem .375rem .25rem;background:linear-gradient(transparent,#000000bf)}.public-profile-post-element{display:inline-flex}.public-profile-post-element .icon{width:14px;height:14px}.public-profile-post-rarity{font-size:var(--font-size-xs);font-weight:700}.public-profile-post-likes{position:absolute;top:var(--space-xs);right:var(--space-xs);display:inline-flex;align-items:center;gap:2px;background:#0000008c;padding:.1rem .375rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;color:#fff}.public-profile-post-likes .icon{width:12px;height:12px}.public-profile-post-likes.liked .icon{color:var(--color-error)}.public-profile-sentinel{height:1px}.public-profile-empty{text-align:center;color:var(--color-text-secondary);padding:var(--space-2xl)}.bio-editor-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-bg-overlay);display:flex;align-items:flex-start;justify-content:center;padding:var(--space-2xl) var(--space-lg);padding-top:max(var(--space-2xl),var(--safe-area-top));z-index:10002;overflow-y:auto;overscroll-behavior-y:contain}.bio-editor-content{max-width:400px;width:100%;background:var(--color-bg-secondary);border-radius:var(--radius-xl);padding:var(--space-xl)}.bio-editor-title{margin:0 0 var(--space-lg) 0}.bio-editor-input{width:100%;min-height:100px;padding:var(--space-md);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-lg);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:var(--font-size-md);font-family:inherit;resize:vertical;box-sizing:border-box;transition:border-color var(--transition-fast)}.bio-editor-counter{text-align:right;color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-top:var(--space-xs)}.bio-editor-error{color:var(--color-error);font-size:var(--font-size-sm);margin-top:var(--space-sm)}.bio-editor-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-lg)}.bio-action-btn{flex:1;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-full);border:none;background:var(--color-bg-tertiary);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.bio-action-btn:active{transform:scale(.97)}.bio-action-save:active{background:var(--color-accent-hover)}.bio-action-save:disabled{opacity:.5;cursor:not-allowed;transform:none}.update-card{position:fixed;left:50%;bottom:calc(var(--nav-height) + var(--safe-area-bottom) + 12px);z-index:9000;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"icon text close" ". btn btn";align-items:center;column-gap:.75rem;row-gap:.625rem;width:calc(100vw - 24px);max-width:420px;padding:.75rem .5rem .75rem .875rem;border:1px solid var(--color-border-gold);border-radius:var(--radius-lg);background:var(--color-surface-2);box-shadow:var(--shadow-lg);transform:translate(-50%);animation:update-card-in .3s ease-out}.update-card.leaving{opacity:0;transform:translate(-50%,12px);transition:opacity .2s,transform .2s}@keyframes update-card-in{0%{opacity:0;transform:translate(-50%,16px)}}.update-card-icon{grid-area:icon;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:rgba(var(--accent-rgb),.14);color:var(--color-accent)}.update-card-icon .icon{width:20px;height:20px}.update-card-text{grid-area:text;min-width:0;-webkit-hyphens:none;hyphens:none;display:flex;flex-direction:column;gap:1px;line-height:1.3}.update-card-text strong{font-size:var(--font-size-sm);color:var(--color-text-primary)}.update-card-text span{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.update-card-btn{grid-area:btn;margin-right:.375rem;min-height:40px;padding:.375rem .875rem;border:none;border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-on-accent);font:inherit;font-size:var(--font-size-sm);font-weight:600;white-space:nowrap;cursor:pointer}.update-card-btn:disabled{opacity:.7}.update-card-close{grid-area:close;align-self:start;width:32px;height:32px;min-width:32px;background:none;border-color:transparent}.update-card-close .icon{width:18px;height:18px}@media (min-width: 440px){.update-card{grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"icon text btn close"}.update-card-btn{margin-right:0}.update-card-close{align-self:center}}.debug-panel{position:fixed;bottom:60px;left:10px;right:10px;background:#000000e6;color:#0f0;font-family:monospace;font-size:10px;padding:var(--space-sm);border-radius:var(--radius-md);max-height:150px;overflow-y:auto;z-index:9999}@media (min-height: 700px){.comments-section{min-height:180px}}@media (min-height: 800px){.post-content{padding:var(--space-lg)}.comments-section{padding:var(--space-lg);min-height:200px}}@media (min-width: 768px) and (min-height: 900px){.post-modal{justify-content:center}.post-modal-card{max-height:calc(var(--vh, 1vh) * 85)}.post-modal-image{max-height:calc(var(--vh, 1vh) * 50)}}.modal-enter{animation:modalEnter .2s ease-out}@keyframes modalEnter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.img-fade{opacity:0;transition:opacity .2s ease}.img-fade.loaded{opacity:1}.achievements-section{margin-top:var(--space-sm)}.achievements-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-height:44px;padding:var(--space-sm) var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);transition:all var(--transition-fast)}.achievements-toggle:hover{background:var(--color-surface-light)}.achievements-title{font-weight:600}.achievements-count{margin-left:auto;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.achievements-chevron{font-size:var(--font-size-xs);color:var(--color-text-secondary);transition:transform var(--transition-fast)}.achievements-content{margin-top:var(--space-sm);animation:slideDown .2s ease-out}.achievements-content.hidden{display:none}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.achievements-grid{display:flex;flex-direction:column;gap:var(--space-sm)}.achievements-loading,.achievements-error{text-align:center;padding:var(--space-lg);color:var(--color-text-secondary)}.achievements-error-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-lg)}.achievements-error-container .achievements-error{padding:0}.achievement-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast)}.achievement-card.unlocked{border-color:var(--color-border-light)}.achievement-card.locked{opacity:.7}.achievement-icon{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);border:2px solid;font-size:24px}.achievement-info{flex:1;min-width:0}.achievement-name{font-weight:600;font-size:var(--font-size-base);margin-bottom:2px}.achievement-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.3}.achievement-progress-bar{height:4px;background:var(--color-surface-dark);border-radius:2px;margin-top:var(--space-xs);overflow:hidden}.achievement-progress-fill{height:100%;border-radius:2px;transition:width var(--transition-normal)}.achievement-progress-text{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:2px}.achievement-tier{flex-shrink:0;font-size:var(--font-size-xs);font-weight:700;letter-spacing:.05em}.achievement-unlock-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.achievement-unlock-card{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-xl);text-align:center;max-width:320px;margin:var(--space-lg);animation:unlockPop .4s cubic-bezier(.175,.885,.32,1.275)}@keyframes unlockPop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.achievement-unlock-title{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-secondary);margin-bottom:var(--space-md)}.achievement-unlock-icon{width:80px;height:80px;margin:0 auto var(--space-md);display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:40px;animation:iconPulse 2s ease-in-out infinite}@keyframes iconPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.achievement-unlock-name{font-size:var(--font-size-xl);font-weight:700;margin-bottom:var(--space-xs)}.achievement-unlock-tier{font-size:var(--font-size-sm);font-weight:700;letter-spacing:.1em}.item-drop-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .3s ease-out}.item-drop-card{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-xl);text-align:center;max-width:320px;margin:var(--space-lg);animation:unlockPop .4s cubic-bezier(.175,.885,.32,1.275)}.item-drop-title{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-secondary);margin-bottom:var(--space-md)}.item-drop-icon{width:80px;height:80px;margin:0 auto var(--space-md);display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:40px;animation:iconPulse 2s ease-in-out infinite}.item-drop-name{font-size:var(--font-size-xl);font-weight:700;margin-bottom:var(--space-xs)}.item-drop-rarity{font-size:var(--font-size-sm);font-weight:700;letter-spacing:.1em;margin-bottom:var(--space-sm)}.item-drop-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.4}.challenges-section{margin-top:var(--space-sm)}.challenges-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-height:44px;padding:var(--space-sm) var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);transition:all var(--transition-fast)}.challenges-toggle:hover{background:var(--color-surface-light)}.challenges-title{font-weight:600}.challenges-count{margin-left:auto;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.challenges-chevron{font-size:var(--font-size-xs);color:var(--color-text-secondary);transition:transform var(--transition-fast)}.challenges-content{margin-top:var(--space-sm);animation:slideDown .2s ease-out}.challenges-content.hidden{display:none}.challenges-list{display:flex;flex-direction:column;gap:var(--space-sm)}.challenges-loading,.challenges-error{text-align:center;padding:var(--space-lg);color:var(--color-text-secondary)}.challenge-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast)}.challenge-card.completed{border-color:var(--color-success);background:#22c55e0d}.challenge-card.claimed{opacity:.6}.challenge-chest-icon{color:var(--color-accent);background:rgba(var(--accent-rgb),.12)}.challenge-chest.locked{border-style:dashed}.challenge-chest.locked .challenge-chest-icon{color:var(--color-text-muted);background:var(--color-surface-2)}.challenge-chest.ready{border-color:rgba(var(--accent-rgb),.6);background:rgba(var(--accent-rgb),.06);box-shadow:0 0 18px rgba(var(--accent-rgb),.18)}.challenge-chest.opened{opacity:.6}.challenge-icon{flex-shrink:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);font-size:20px}.challenge-info{flex:1;min-width:0}.challenge-name{font-weight:600;font-size:var(--font-size-base);color:var(--color-text)}.challenge-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:2px}.challenge-progress-bar{margin-top:var(--space-xs);height:4px;background:var(--color-surface-dark);border-radius:2px;overflow:hidden}.challenge-progress-fill{height:100%;transition:width .3s ease}.challenge-progress-text{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:2px}.challenge-reward{flex-shrink:0;text-align:right;min-width:60px}.challenge-reward-value{font-weight:600;font-size:var(--font-size-sm);color:var(--color-accent)}.challenge-reward-xp{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.challenge-claim-btn{padding:var(--space-xs) var(--space-sm);background:var(--color-success);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.challenge-claim-btn:hover{background:#16a34a}.challenge-claim-btn:disabled{opacity:.5;cursor:not-allowed}.challenge-claimed-text{font-size:var(--font-size-xs);color:var(--color-success);font-weight:500}.challenges-badge{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);margin-left:auto;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);min-height:28px}.challenges-badge:hover,.challenges-badge:focus{background:var(--color-bg-elevated);border-color:var(--color-accent)}.challenges-badge.has-claimable{border-color:var(--color-success);animation:badge-pulse 2s ease-in-out infinite}@keyframes badge-pulse{0%,to{box-shadow:0 0 #4ade8066}50%{box-shadow:0 0 8px 4px #4ade8033}}.challenges-badge-icon{font-size:var(--font-size-base);color:var(--color-accent)}.challenges-badge-count{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary)}.challenges-badge.all-complete .challenges-badge-count{color:var(--color-success)}.inventory-badge{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);margin-left:var(--space-xs);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);min-height:28px}.inventory-badge:hover,.inventory-badge:focus{background:var(--color-bg-elevated);border-color:var(--color-accent)}.inventory-badge.has-items{border-color:var(--color-accent)}.inventory-badge.has-effect{border-color:var(--color-success);animation:badge-pulse 2s ease-in-out infinite}.inventory-badge-icon{font-size:var(--font-size-base)}.inventory-badge-count{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-secondary)}.inventory-badge-count:empty{display:none}.challenges-popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;z-index:1000;display:flex;flex-direction:column;justify-content:flex-end;animation:popup-overlay-fade-in .2s ease}.challenges-popup-overlay.closing{animation:popup-overlay-fade-out .2s ease forwards}@keyframes popup-overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes popup-overlay-fade-out{0%{opacity:1}to{opacity:0}}.challenges-popup{background:var(--color-bg-secondary);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-lg);max-height:70vh;overflow-y:auto;animation:popup-slide-up .25s ease-out}.challenges-popup-overlay.closing .challenges-popup{animation:popup-slide-down .2s ease-in forwards}@keyframes popup-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes popup-slide-down{0%{transform:translateY(0)}to{transform:translateY(100%)}}.challenges-popup:before{content:"";display:block;width:40px;height:4px;background:var(--color-text-muted);border-radius:2px;margin:0 auto var(--space-md)}.challenges-popup-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.challenges-popup-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary)}.challenges-popup-close{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border:none;border-radius:50%;color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-xl);line-height:1;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.challenges-popup-close:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.challenges-popup-list{display:flex;flex-direction:column;gap:var(--space-md)}.inventory-popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;z-index:1000;display:flex;flex-direction:column;justify-content:flex-end;animation:popup-overlay-fade-in .2s ease}.inventory-popup-overlay.closing{animation:popup-overlay-fade-out .2s ease forwards}.inventory-popup{background:var(--color-bg-secondary);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-lg);max-height:80vh;overflow-y:auto;animation:popup-slide-up .25s ease-out}.inventory-popup-overlay.closing .inventory-popup{animation:popup-slide-down .2s ease-in forwards}.inventory-popup:before{content:"";display:block;width:40px;height:4px;background:var(--color-text-muted);border-radius:2px;margin:0 auto var(--space-md)}.inventory-popup-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.inventory-popup-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary)}.inventory-popup-close{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border:none;border-radius:50%;color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-xl);line-height:1;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.inventory-popup-close:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.inventory-effects-section,.inventory-items-section{margin-bottom:var(--space-lg)}.inventory-effects-section.hidden{display:none}.inventory-section-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-sm)}.inventory-effects-list{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.active-effect-badge{display:flex;align-items:center;gap:var(--space-xs);background:var(--color-accent);color:var(--color-on-accent);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);font-size:var(--font-size-sm)}.active-effect-icon{font-size:1em}.active-effect-name{font-weight:500}.active-effect-timer{opacity:.8;font-size:var(--font-size-xs)}.inventory-items-list{display:flex;flex-direction:column;gap:var(--space-sm)}.inventory-empty,.inventory-loading,.inventory-error{text-align:center;color:var(--color-text-secondary);padding:var(--space-xl)}.inventory-error-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-xl)}.inventory-error-container .inventory-error{padding:0}.inventory-item-card{display:flex;align-items:center;gap:var(--space-md);background:var(--color-bg-tertiary);border-radius:var(--radius-lg);padding:var(--space-md);border-left:3px solid var(--rarity-color, var(--color-text-muted))}.item-icon-wrapper{position:relative;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border-radius:var(--radius-md);font-size:1.5rem}.item-quantity{position:absolute;bottom:-4px;right:-4px;background:var(--color-accent);color:var(--color-on-accent);font-size:var(--font-size-xs);font-weight:600;padding:2px 6px;border-radius:var(--radius-full);min-width:20px;text-align:center}.item-info{flex:1;min-width:0}.item-name{font-weight:600;color:var(--color-text-primary);margin-bottom:2px}.item-rarity{font-size:var(--font-size-xs);font-weight:500;display:flex;align-items:center;gap:var(--space-sm)}.item-element{opacity:.9}.item-effect{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:2px}.item-use-btn{background:var(--color-accent);color:var(--color-on-accent);border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.item-use-btn:hover:not(:disabled){background:var(--color-accent-hover);transform:scale(1.05)}.item-use-btn:disabled{opacity:.5;cursor:not-allowed}.storage-upgrade-section{display:none}.storage-upgrade-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.storage-upgrade-title{font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary)}.storage-upgrade-capacity{font-size:var(--font-size-sm);color:var(--color-accent);font-weight:600}.storage-upgrade-info{display:flex;justify-content:space-between;align-items:center}.storage-level-text{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.storage-upgrade-btn{background:var(--color-accent);color:var(--color-on-accent);font-size:var(--font-size-sm);font-weight:600;padding:var(--space-xs) var(--space-sm);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.storage-upgrade-btn:active:not(:disabled){transform:scale(.95);opacity:.9}.storage-upgrade-btn.disabled{background:var(--color-bg-elevated);color:var(--color-text-secondary);cursor:not-allowed}.storage-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:var(--space-md)}.storage-modal{background:var(--color-bg-secondary);border-radius:var(--radius-lg);width:100%;max-width:360px;padding:var(--space-lg);box-shadow:0 8px 32px #00000080}.storage-modal-title{font-size:var(--font-size-xl);font-weight:700;color:var(--color-text-primary);text-align:center;margin-bottom:var(--space-xs)}.storage-modal-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center;margin-bottom:var(--space-lg)}.storage-modal-elements{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm);margin-bottom:var(--space-lg)}.storage-element-btn{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-sm);background:var(--color-bg-primary);border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.storage-element-btn:not(.cant-afford):hover,.storage-element-btn:not(.cant-afford):focus{border-color:var(--element-color);background:var(--color-bg-elevated)}.storage-element-btn.selected{border-color:var(--element-color);background:var(--color-bg-elevated);box-shadow:0 0 12px rgba(var(--accent-rgb),.3)}.storage-element-btn.cant-afford{opacity:.4;cursor:not-allowed}.storage-element-icon{color:var(--element-color)}.storage-element-icon .icon{width:24px;height:24px}.storage-element-name{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary)}.storage-element-essence{font-size:var(--font-size-xs);color:var(--element-color);font-weight:600}.storage-modal-footer{display:flex;justify-content:space-between;align-items:center}.storage-selected-count{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.storage-modal-buttons{display:flex;gap:var(--space-sm)}.storage-modal-cancel{background:var(--color-bg-elevated);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:600;padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.storage-modal-cancel:active{opacity:.8}.storage-modal-confirm{background:var(--color-accent);color:var(--color-on-accent);font-size:var(--font-size-sm);font-weight:600;padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.storage-modal-confirm:disabled{background:var(--color-bg-elevated);color:var(--color-text-secondary);cursor:not-allowed}.storage-modal-confirm:not(:disabled):active{transform:scale(.95);opacity:.9}.camera-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;background:#000;display:flex;flex-direction:column}.camera-overlay.hidden{display:none}.camera-overlay video{flex:1;width:100%;object-fit:cover}.camera-controls{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;align-items:center;padding:var(--space-xl);padding-bottom:calc(var(--space-xl) + env(safe-area-inset-bottom,0px));background:linear-gradient(transparent,#0009)}.camera-close-btn{position:absolute;top:var(--space-md);left:var(--space-md);top:calc(var(--space-md) + env(safe-area-inset-top,0px));width:44px;height:44px;border-radius:50%;border:none;background:#00000080;color:#fff;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.camera-close-btn:active{background:#000000b3}.camera-capture-btn{width:72px;height:72px;border-radius:50%;border:4px solid white;background:transparent;cursor:pointer;position:relative;-webkit-tap-highlight-color:transparent}.camera-capture-btn:after{content:"";position:absolute;top:4px;left:4px;right:4px;bottom:4px;border-radius:50%;background:#fff;transition:transform .1s ease}.camera-capture-btn:active:after{transform:scale(.9)}.status-popover{position:fixed;top:calc(var(--header-height) + var(--safe-area-top) + 4px);right:var(--space-md);background:var(--color-bg-secondary);border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-lg);padding:var(--space-md);min-width:180px;z-index:1000;box-shadow:var(--shadow-lg);animation:popover-enter .15s ease-out}@keyframes popover-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.status-popover-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xs) 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.status-popover-row:first-child{padding-top:0}.status-popover-row:last-child{padding-bottom:0}.status-popover-label{color:var(--color-text-secondary)}.status-popover-value{color:var(--color-text-primary);font-weight:500;display:flex;align-items:center;gap:var(--space-xs)}.status-popover-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-popover-dot.online{background:var(--color-nature)}.status-popover-dot.syncing{background:var(--color-energy)}.status-popover-dot.offline{background:#f44}.status-popover-value.excellent{color:var(--color-nature)}.status-popover-value.good{color:var(--color-energy)}.status-popover-value.marginal{color:var(--color-fire)}.status-popover-value.poor{color:#f44}.recovery-modal-overlay{z-index:10000}.recovery-modal{max-width:340px;padding:var(--space-lg);text-align:center}.recovery-modal-header{margin-bottom:var(--space-md)}.recovery-icon{font-size:2.5rem;display:block;margin-bottom:var(--space-sm)}.recovery-modal-header h2{font-size:var(--font-size-lg);margin:0;color:var(--color-text-primary)}.recovery-modal-body{margin-bottom:var(--space-lg)}.recovery-modal-body p{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:var(--space-sm) 0}.recovery-preview{margin:var(--space-md) 0;border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-secondary)}.recovery-preview-img{width:100%;max-height:200px;object-fit:cover;display:block}.recovery-age{font-size:var(--font-size-xs);opacity:.6}.recovery-modal-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.recovery-btn-retry,.recovery-btn-dismiss{width:100%}.recovery-btn-retry{background:var(--color-nature)}.recovery-btn-retry:active:not(:disabled){opacity:.9;transform:scale(.98)}.public-profile-actions{margin-top:var(--space-sm);display:flex;gap:var(--space-sm);align-items:center}.follow-btn{background:var(--color-accent);border:none;border-radius:var(--radius-full);color:var(--color-on-accent);padding:var(--space-xs) var(--space-lg);cursor:pointer;font-size:var(--font-size-sm);font-weight:600;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.follow-btn:active:not(:disabled){transform:scale(.95)}.follow-btn:disabled{opacity:.6;cursor:not-allowed}.follow-btn.following{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid rgba(255,255,255,.15)}.follow-btn.following:active:not(:disabled){background:var(--color-error);color:#fff;border-color:transparent}.block-btn{background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-full);color:var(--color-text-secondary);padding:var(--space-xs) var(--space-md);cursor:pointer;font-size:var(--font-size-xs);transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.block-btn:active:not(:disabled){transform:scale(.95)}.block-btn:disabled{opacity:.6;cursor:not-allowed}.block-btn.blocked{background:var(--color-error);color:#fff;border-color:transparent}.post-action-secondary{opacity:.7}.post-action-secondary:hover{opacity:1}.report-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:10002;padding:var(--space-lg)}.report-modal{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg);max-width:400px;width:100%}.report-modal-title{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--space-md);color:var(--color-text-primary)}.report-reasons{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-md)}.report-reason-option{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.report-reason-option:hover{background:var(--color-bg-elevated)}.report-reason-option input[type=radio]{accent-color:var(--color-accent)}.report-details-input{width:100%;min-height:80px;padding:var(--space-sm);background:var(--color-bg-tertiary);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);resize:vertical;margin-bottom:var(--space-md)}.report-details-input::placeholder{color:var(--color-text-muted)}.report-modal-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.report-action-btn{padding:var(--space-xs) var(--space-lg);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast);border:none;background:var(--color-bg-tertiary);color:var(--color-text-primary)}.report-action-btn:hover:not(:disabled){background:var(--color-bg-elevated)}.report-action-submit{background:var(--color-error);color:#fff}.report-action-submit:hover:not(:disabled){background:#b33}.report-action-submit:disabled{opacity:.5;cursor:not-allowed}.public-profile-stat-clickable{cursor:pointer;padding:var(--space-xs);margin:calc(-1 * var(--space-xs));border-radius:var(--radius-sm);transition:background var(--transition-fast);-webkit-tap-highlight-color:transparent}.public-profile-stat-clickable:active{background:#ffffff1a}.notification-bell{position:relative;cursor:pointer;padding:var(--space-xs);margin-left:var(--space-xs);-webkit-tap-highlight-color:transparent;display:inline-flex;align-items:center;justify-content:center}.notification-bell-icon{color:var(--color-text-secondary);transition:color var(--transition-fast)}.notification-bell:active .notification-bell-icon{color:var(--color-accent)}.notification-badge{position:absolute;top:0;right:-2px;background:var(--color-error);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}.notification-dropdown{position:fixed;top:44px;right:var(--space-sm);width:320px;max-width:calc(100vw - var(--space-lg));max-height:60vh;background:var(--color-bg-secondary);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);box-shadow:0 8px 32px #0006;z-index:9998;overflow:hidden;display:flex;flex-direction:column;animation:dropdown-enter .15s ease-out}.notification-dropdown.closing{animation:dropdown-exit .15s ease-out forwards}@keyframes dropdown-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes dropdown-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}.notification-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.notification-dropdown-title{font-weight:600;font-size:var(--font-size-base)}.notification-mark-all{background:none;border:none;color:var(--color-accent);font-size:var(--font-size-xs);cursor:pointer;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);transition:background var(--transition-fast);-webkit-tap-highlight-color:transparent}.notification-mark-all:disabled{color:var(--color-text-dim);cursor:not-allowed}.notification-mark-all:active:not(:disabled){background:#ffffff1a}.notification-list{flex:1;overflow-y:auto;overscroll-behavior-y:contain}.notification-loading,.notification-empty,.notification-error{text-align:center;color:var(--color-text-secondary);padding:var(--space-xl);font-size:var(--font-size-sm)}.notification-error{color:var(--color-error)}.notification-error-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-lg)}.notification-error-container .notification-error{padding:0}.notification-item{display:flex;gap:var(--space-sm);padding:var(--space-md);border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:background var(--transition-fast);-webkit-tap-highlight-color:transparent}.notification-item:last-child{border-bottom:none}.notification-item:active{background:#ffffff0d}.notification-item.unread{background:rgba(var(--color-accent-rgb, 139, 92, 246),.1)}.notification-item.unread:active{background:rgba(var(--color-accent-rgb, 139, 92, 246),.15)}.notification-avatar{width:36px;height:36px;min-width:36px;background:linear-gradient(135deg,var(--color-accent),#3b82f6);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-base);color:var(--color-on-accent);font-weight:700}.notification-avatar.milestone{background:linear-gradient(135deg,#fbbf24,#f59e0b);font-size:18px}.notification-item.milestone{background:linear-gradient(90deg,rgba(251,191,36,.1),transparent)}.notification-content{flex:1;min-width:0}.notification-message{margin:0;font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:1.4}.notification-preview{margin:var(--space-xs) 0 0;font-size:var(--font-size-xs);color:var(--color-text-secondary);font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-time{font-size:var(--font-size-xs);color:var(--color-text-dim)}.followers-list-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;z-index:10001;display:flex;align-items:center;justify-content:center;padding:var(--space-md)}.followers-list-content{background:var(--color-bg-secondary);border-radius:var(--radius-lg);width:100%;max-width:400px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.followers-list-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.followers-list-title{margin:0;font-size:var(--font-size-lg);font-weight:600}.followers-list-body{flex:1;overflow-y:auto;overscroll-behavior-y:contain}.followers-list-items{padding:var(--space-sm)}.follower-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);-webkit-tap-highlight-color:transparent}.follower-item:active{background:#ffffff0d}.follower-info{flex:1;min-width:0}.follower-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:var(--font-size-base);color:var(--color-text-primary)}.follower-level{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.bio-editor-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;z-index:10001;display:flex;align-items:center;justify-content:center;padding:var(--space-md)}.bio-editor-content{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg);width:100%;max-width:360px}.bio-editor-title{margin:0 0 var(--space-md);font-size:var(--font-size-lg);text-align:center}.bio-editor-input{width:100%;min-height:100px;padding:var(--space-md);background:var(--color-bg-tertiary);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:inherit;font-size:var(--font-size-base);resize:vertical}.bio-editor-input:focus{outline:none;border-color:var(--color-accent)}.bio-editor-counter{text-align:right;font-size:var(--font-size-xs);color:var(--color-text-dim);margin-top:var(--space-xs)}.bio-editor-error{color:var(--color-error);font-size:var(--font-size-sm);text-align:center;margin-top:var(--space-sm)}.bio-editor-actions{display:flex;gap:var(--space-md);margin-top:var(--space-lg)}.bio-action-btn{flex:1;padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;background:var(--color-bg-tertiary);color:var(--color-text-primary)}.bio-action-btn:active:not(:disabled){transform:scale(.97)}.bio-action-btn:disabled{opacity:.6;cursor:not-allowed}.bio-action-save{background:var(--color-accent);color:var(--color-on-accent)}.scan-indicator{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-lg) var(--space-lg) var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border-gold);border-radius:var(--radius-lg);box-shadow:0 10px 40px #0000008c;cursor:pointer;transition:top .3s ease-out,left .3s ease-out,transform .3s ease-out,padding .3s ease-out,min-width .3s ease-out,border-color var(--transition-fast);-webkit-tap-highlight-color:transparent;animation:scan-indicator-enter .3s cubic-bezier(.2,.9,.25,1);min-width:200px;text-align:center}.scan-indicator:active{transform:translate(-50%,-50%) scale(.97)}.scan-indicator.hidden{display:none}.scan-indicator.minimized{top:calc(var(--header-height) + var(--space-sm));left:var(--space-sm);transform:none;min-width:auto;padding:var(--space-sm);flex-direction:row}.scan-indicator.docked{transform:translate(-50%);flex-direction:row;gap:var(--space-md);min-width:0;width:max-content;max-width:calc(100vw - 2 * var(--space-md));padding:var(--space-sm) var(--space-md)}.scan-indicator.docked:active{transform:translate(-50%) scale(.97)}.scan-indicator.docked .scan-indicator-stack{width:44px;height:44px}.scan-indicator.docked .scan-indicator-info{align-items:flex-start;min-width:0}.scan-indicator.docked .scan-indicator-status{-webkit-hyphens:manual;hyphens:manual}.scan-indicator.docked .scan-indicator-close{position:static;flex:none}body.scan-docked #mana-hint{visibility:hidden}.scan-indicator.docked,.scan-indicator.docked.error{animation:scan-indicator-dock-enter .3s cubic-bezier(.2,.9,.25,1)}.scan-indicator.docked.uploading,.scan-indicator.docked.analyzing{animation:scan-indicator-dock-enter .3s cubic-bezier(.2,.9,.25,1),scan-pulse 2s ease-in-out infinite}.scan-indicator.docked.complete{animation:scan-indicator-dock-enter .3s cubic-bezier(.2,.9,.25,1),scan-complete-pulse 1.6s ease-in-out infinite}@keyframes scan-indicator-dock-enter{0%{opacity:0;transform:translate(-50%) translateY(6px)}to{opacity:1;transform:translate(-50%)}}.scan-indicator.minimized:active{transform:scale(.95)}.scan-indicator.minimized .scan-indicator-info,.scan-indicator.minimized .scan-indicator-close{display:none}.scan-indicator.minimized .scan-indicator-stack{width:40px;height:40px}@keyframes scan-indicator-enter{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.scan-indicator.uploading,.scan-indicator.analyzing{animation:scan-indicator-enter .3s cubic-bezier(.2,.9,.25,1),scan-pulse 2s ease-in-out infinite}@keyframes scan-pulse{0%,to{box-shadow:0 10px 40px #0000008c,0 0 rgba(var(--mana-rgb),.35)}50%{box-shadow:0 10px 40px #0000008c,0 0 18px 4px rgba(var(--mana-rgb),.25)}}.scan-indicator.complete{border-color:var(--color-accent);animation:scan-indicator-enter .3s cubic-bezier(.2,.9,.25,1),scan-complete-pulse 1.6s ease-in-out infinite}@keyframes scan-complete-pulse{0%,to{box-shadow:0 10px 40px #0000008c,0 0 rgba(var(--accent-rgb),.4)}50%{box-shadow:0 10px 40px #0000008c,0 0 22px 6px rgba(var(--accent-rgb),.3)}}.scan-indicator.error{border-color:var(--color-error)}.scan-indicator-stack{position:relative;width:56px;height:56px;flex:none;transition:width .3s ease-out,height .3s ease-out}.scan-indicator-thumb{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--glass-border);background:var(--color-surface);box-shadow:0 2px 8px #00000080;transform:translate(calc(var(--stack) * -7px)) rotate(calc(var(--stack) * -8deg));transform-origin:50% 100%;transition:transform .3s cubic-bezier(.2,.9,.25,1)}.scan-indicator-thumb img{width:100%;height:100%;object-fit:cover}.scan-indicator-badge{position:absolute;top:-6px;right:-8px;min-width:20px;height:20px;padding:0 5px;display:grid;place-items:center;border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-on-accent);font-size:.7rem;font-weight:700;font-variant-numeric:tabular-nums;box-shadow:0 2px 6px #00000080;animation:pick-pop .3s cubic-bezier(.3,1.6,.5,1)}.scan-indicator-spinner{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center}.scan-indicator-spinner:after{content:"";width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.scan-indicator-check{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:radial-gradient(circle,rgba(var(--accent-rgb),.55),#00000059);color:#fff}.scan-indicator-check .icon{width:1.5rem;height:1.5rem;animation:pick-pop .35s cubic-bezier(.3,1.6,.5,1)}.scan-indicator-error-icon{position:absolute;top:0;right:0;bottom:0;left:0;background:#ef4444cc;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.5rem;font-weight:700}.scan-indicator-info{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:80px}.scan-indicator-status{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.scan-indicator-progress{display:flex;gap:4px}.scan-indicator-pip{width:14px;height:4px;border-radius:2px;background:#ffffff26;transition:background .3s ease}.scan-indicator-pip.uploading,.scan-indicator-pip.analyzing{background:var(--gradient-mana);animation:gallery-ready-pulse 1.2s ease-in-out infinite}.scan-indicator-pip.complete{background:var(--color-accent)}.scan-indicator-pip.error{background:var(--color-error)}.scan-indicator-time{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.scan-indicator-ready{font-size:var(--font-size-xs);font-weight:600;color:var(--color-accent)}.scan-indicator-close{position:absolute;top:6px;right:6px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border:none;border-radius:50%;color:var(--color-text-secondary);cursor:pointer;font-size:1rem;line-height:1;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.scan-indicator-close:active{background:var(--color-bg-elevated);color:var(--color-text-primary)}@keyframes pick-pop{0%{transform:scale(.3)}70%{transform:scale(1.15)}to{transform:scale(1)}}.reveal-deck{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;flex-direction:column;padding:calc(var(--safe-area-top) + var(--space-sm)) var(--space-md) calc(var(--safe-area-bottom) + var(--space-md));background:radial-gradient(ellipse 80% 55% at 50% 42%,rgba(var(--accent-rgb),.1),transparent 70%),#05060ee6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:popup-overlay-fade-in .2s ease;overscroll-behavior:contain}.reveal-deck.closing{animation:popup-overlay-fade-out .2s ease forwards}.reveal-deck.closing .reveal-card{transition:transform .2s ease-in,opacity .2s ease-in;transform:scale(.92) translateY(12px);opacity:0}.reveal-deck-top{display:flex;align-items:center;gap:var(--space-sm);width:100%;max-width:400px;min-height:40px;margin:0 auto}.reveal-deck-dots{flex:1;min-width:0;display:flex;gap:5px}.reveal-dot{flex:1;max-width:34px;height:4px;border-radius:2px;background:#ffffff24;transition:background .3s ease,transform .3s ease}.reveal-dot.complete{background:var(--dot, rgba(255, 255, 255, .35));opacity:.55}.reveal-dot.current{opacity:1;transform:scaleY(1.5);box-shadow:0 0 8px var(--dot, rgba(255, 255, 255, .4))}.reveal-dot.current:not(.complete){background:#ffffff80}.reveal-deck-count{flex:none;font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.reveal-deck-close{margin-left:auto;border-radius:50%}.reveal-deck-stage{flex:1;min-height:0;position:relative;perspective:1400px;margin:var(--space-sm) 0}.reveal-card{--rc: var(--color-accent);--ec: var(--color-accent);position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:min(100%,380px);height:fit-content;max-height:100%;display:flex;flex-direction:column;touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.reveal-card.dragging{transition:none;cursor:grabbing}.reveal-card.leaving{pointer-events:none}.reveal-card img{-webkit-user-drag:none;pointer-events:none}.reveal-card-flip{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;transform-style:preserve-3d}.reveal-card:not(.is-revealing):not(.is-settled):not(.is-pending) .reveal-card-flip{transform:rotateY(180deg)}.reveal-card.is-revealing .reveal-card-flip{animation:reveal-flip .62s cubic-bezier(.3,1.2,.5,1) both}@keyframes reveal-flip{0%{transform:rotateY(180deg) scale(.94)}to{transform:rotateY(0) scale(1)}}.reveal-card-face{-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:20px;overflow:hidden}.reveal-card.is-settled .reveal-card-flip{transform-style:flat}.reveal-card.is-settled .reveal-card-back{display:none}.reveal-card-back{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotateY(180deg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-lg);background:var(--color-bg-secondary);border:1px solid var(--color-border-gold);box-shadow:0 20px 60px #0000008c}.reveal-card-back:after{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:1px solid rgba(var(--accent-rgb),.25);border-radius:13px;pointer-events:none}.reveal-card.is-pending{height:min(100%,480px)}.reveal-card.is-pending .reveal-card-back{transform:none}.reveal-card-back-photo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;filter:blur(16px) brightness(.4) saturate(1.2);transform:scale(1.2)}.reveal-card-back-sigil{position:relative;width:84px;height:84px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(var(--accent-rgb),.55);background:radial-gradient(circle,rgba(var(--accent-rgb),.18),#00000059 70%);color:var(--color-accent);box-shadow:0 0 30px rgba(var(--accent-rgb),.25)}.reveal-card-back-sigil .icon{width:40px;height:40px;stroke-width:1.4}.reveal-card-back-sigil.busy:after{content:"";position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px;border-radius:50%;border:2px solid transparent;border-top-color:var(--color-mana);border-right-color:rgba(var(--mana-rgb),.35);animation:spin 1.1s linear infinite}.reveal-card-back-label{position:relative;max-width:240px;text-align:center;font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary);text-shadow:0 1px 6px rgba(0,0,0,.8)}.reveal-card.is-failed .reveal-card-back-sigil{color:var(--color-error);border-color:#ef444480;box-shadow:none}.reveal-card-front{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;background:linear-gradient(180deg,color-mix(in srgb,var(--rc) 7%,transparent),transparent 40%),var(--color-bg-secondary);border:1px solid color-mix(in srgb,var(--rc) 50%,transparent);box-shadow:0 20px 60px #0000008c,0 0 36px color-mix(in srgb,var(--rc) 18%,transparent)}.reveal-card-photo{position:relative;flex:none;aspect-ratio:4 / 3;max-height:40dvh;background:var(--color-surface);overflow:hidden}.reveal-card-photo img{width:100%;height:100%;object-fit:cover;display:block}.reveal-card-photo:after{content:"";position:absolute;inset:auto 0 0;height:40%;background:linear-gradient(transparent,var(--color-bg-secondary));pointer-events:none}.reveal-card-element{position:absolute;top:var(--space-sm);left:var(--space-sm);z-index:1;display:inline-flex;align-items:center;gap:5px;max-width:calc(100% - 2 * var(--space-sm));padding:4px 10px 4px 7px;border-radius:var(--radius-full);background:#080914b3;border:1px solid color-mix(in srgb,var(--ec) 55%,transparent);color:var(--ec);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.reveal-card-element .icon{width:14px;height:14px}.reveal-card-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 var(--space-lg) var(--space-lg);margin-top:calc(-1 * var(--space-lg));position:relative;text-align:center}.reveal-card-subject{margin:0 0 var(--space-sm);font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:700;line-height:1.2;letter-spacing:.02em;color:var(--color-text-primary);overflow-wrap:anywhere;-webkit-hyphens:manual;hyphens:manual}.reveal-card-rarity{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-bottom:var(--space-md)}.reveal-card-score{display:inline-flex;align-items:baseline;flex:none;font-family:var(--font-body);font-variant-numeric:tabular-nums;line-height:1}.reveal-card-score-num{min-width:1.2ch;font-size:2.75rem;font-weight:800;color:var(--rc);text-align:right;text-shadow:0 0 22px color-mix(in srgb,var(--rc) 55%,transparent)}.reveal-card-score-max{font-size:var(--font-size-base);font-weight:600;color:var(--color-text-muted);margin-left:2px}.reveal-card-rarity-info{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}.reveal-card-tier{font-size:var(--font-size-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--rc);white-space:nowrap}.reveal-stars{display:flex;gap:2px}.reveal-star{display:grid;color:#ffffff2e}.reveal-star .icon{width:15px;height:15px;stroke-width:1.5}.reveal-star.on{color:var(--rc)}.reveal-star.on .icon{fill:currentColor;filter:drop-shadow(0 0 3px color-mix(in srgb,var(--rc) 60%,transparent))}@media (max-width: 340px){.reveal-star .icon{width:13px;height:13px}.reveal-card-score-num{font-size:2.25rem}}.reveal-card-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;margin-bottom:var(--space-md)}.reveal-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:3px 9px;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;line-height:1.3;color:var(--color-accent-hover);background:var(--color-accent-subtle);border:1px solid rgba(var(--accent-rgb),.3)}.reveal-chip .icon{width:12px;height:12px}.reveal-chip.chip-day{color:var(--color-light);background:color-mix(in srgb,var(--color-light) 12%,transparent);border-color:color-mix(in srgb,var(--color-light) 35%,transparent)}.reveal-chip.chip-element{color:var(--ec);background:color-mix(in srgb,var(--ec) 12%,transparent);border-color:color-mix(in srgb,var(--ec) 40%,transparent)}.reveal-chip.chip-duplicate{color:var(--color-warning);background:#ffa5001a;border-color:#ffa50059}.reveal-card-rewards{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin-bottom:var(--space-md)}.reveal-reward{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:var(--space-sm);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}.reveal-reward-value{font-size:var(--font-size-xl);font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-accent-hover)}.reveal-reward-essence .reveal-reward-value{color:var(--ec)}.reveal-reward-label .icon{width:12px;height:12px}.reveal-reward-essence .reveal-reward-label .icon{color:var(--ec)}.reveal-card-shine{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.35) 48%,color-mix(in srgb,var(--rc) 35%,transparent) 52%,transparent 65%);background-size:250% 100%;background-position:120% 0;mix-blend-mode:soft-light}.reveal-card.is-revealing .reveal-card-shine{animation:card-shine .9s ease-out .35s both}.reveal-card.tier-legendary .reveal-card-shine{animation:card-shine 1.4s ease-in-out .35s infinite;animation-delay:.35s}.reveal-card.tier-legendary.is-settled .reveal-card-shine{animation:card-shine 1.6s ease-in-out 2.5s infinite}@keyframes card-shine{0%{background-position:120% 0}to{background-position:-30% 0}}.reveal-essence-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none}.reveal-mote{position:absolute;border-radius:50%;box-shadow:0 0 8px 1px currentColor,0 0 2px #fff9;will-change:transform,opacity}.reveal-card-photo img{transition:filter .6s ease}.reveal-card.is-draining .reveal-card-photo img{filter:saturate(.1) brightness(.55);transition-duration:1s}.reveal-card.is-settled .reveal-card-photo img{transition-duration:.9s}.reveal-reward-essence{transition:border-color .3s ease,box-shadow .3s ease}.reveal-reward-essence.is-charging{border-color:color-mix(in srgb,var(--ec) 60%,transparent);box-shadow:0 0 18px color-mix(in srgb,var(--ec) 35%,transparent),inset 0 0 12px color-mix(in srgb,var(--ec) 18%,transparent);animation:essence-charge .7s ease-out}@keyframes essence-charge{0%{transform:scale(1)}30%{transform:scale(1.06)}to{transform:scale(1)}}.reveal-sparks{position:absolute;left:50%;top:50%;width:0;height:0;z-index:2;pointer-events:none}.reveal-spark{position:absolute;left:0;top:0;width:6px;height:6px;margin:-3px;border-radius:50%;background:var(--rc);box-shadow:0 0 8px var(--rc),0 0 2px #fff;opacity:0}.reveal-card.is-revealing .reveal-spark{animation:spark-fly .8s cubic-bezier(.15,.7,.3,1) var(--stars-end) both}@keyframes spark-fly{0%{opacity:1;transform:rotate(var(--a)) translate(0) scale(var(--s))}70%{opacity:1}to{opacity:0;transform:rotate(var(--a)) translate(var(--d)) scale(.2)}}.reveal-reward-label{display:inline-flex;align-items:center;gap:4px;max-width:100%;font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reveal-card-flavor{margin:0 0 var(--space-md);font-size:var(--font-size-sm);font-style:italic;line-height:1.55;color:var(--color-text-secondary);-webkit-hyphens:auto;hyphens:auto}.reveal-card-flavor:before{content:"“"}.reveal-card-flavor:after{content:"”"}.reveal-card-section{margin-bottom:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);text-align:left}.reveal-card-section.is-achievement{background:rgba(var(--accent-rgb),.08);border-color:rgba(var(--accent-rgb),.3)}.reveal-card-section-label{margin-bottom:4px;font-size:var(--font-size-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary)}.reveal-counsel{background:rgba(var(--accent-rgb),.05);border-color:rgba(var(--accent-rgb),.22)}.reveal-counsel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-width:0}.reveal-counsel-title{display:inline-flex;align-items:center;gap:5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-accent)}.reveal-counsel-title .icon{flex:none;width:14px;height:14px}.reveal-counsel-quality{flex:none;font-weight:500;letter-spacing:.02em;text-transform:none}.reveal-counsel-tip{margin:0;font-size:var(--font-size-sm);line-height:1.5;color:var(--color-text);-webkit-hyphens:auto;hyphens:auto}.reveal-drop,.reveal-achievement{display:flex;align-items:center;gap:var(--space-sm);padding:3px 0;min-width:0}.reveal-drop-icon,.reveal-achievement-icon{flex:none;display:inline-flex;color:var(--color-accent)}.achievement-icon .icon{width:24px;height:24px}.achievement-unlock-icon .icon{width:40px;height:40px}.reveal-drop-name,.reveal-achievement-name{min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reveal-achievement-name{color:var(--color-accent-hover)}.reveal-drop-rarity{margin-left:auto;flex:none;font-size:var(--font-size-xs);opacity:.75;text-transform:uppercase;letter-spacing:.05em}.reveal-card.is-revealing .reveal-star.on{animation:star-pop .36s cubic-bezier(.3,1.6,.5,1) calc(.42s + var(--i) * 75ms) both}@keyframes star-pop{0%{transform:scale(1);color:#ffffff2e}1%{transform:scale(.4);color:var(--rc)}60%{transform:scale(1.45)}to{transform:scale(1);color:var(--rc)}}.reveal-card.is-revealing .reveal-star.on .icon{animation:star-fill .01s linear calc(.42s + var(--i) * 75ms) both}@keyframes star-fill{0%{fill:transparent}to{fill:currentColor}}.reveal-card.is-revealing .reveal-card-tier{animation:fade-up .3s ease-out var(--stars-end) both}.reveal-card.is-revealing .reveal-card-score-num{animation:score-pop .5s cubic-bezier(.3,1.6,.5,1) var(--stars-end) both}@keyframes score-pop{0%{transform:scale(1)}40%{transform:scale(1.3)}to{transform:scale(1)}}.reveal-card.is-revealing .reveal-fade{animation:fade-up .35s ease-out calc(var(--stars-end) + 80ms + var(--k) * 70ms) both}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.reveal-card-burst{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:20px;pointer-events:none;opacity:0}.reveal-card.tier-remarkable.is-revealing .reveal-card-burst,.reveal-card.tier-legendary.is-revealing .reveal-card-burst{animation:rarity-burst .9s ease-out var(--stars-end) both}@keyframes rarity-burst{0%{opacity:1;box-shadow:0 0 color-mix(in srgb,var(--rc) 80%,transparent)}to{opacity:0;box-shadow:0 0 60px 30px color-mix(in srgb,var(--rc) 0%,transparent)}}.reveal-card.tier-legendary .reveal-card-front{animation:legendary-card-glow 2.4s ease-in-out infinite}@keyframes legendary-card-glow{0%,to{box-shadow:0 20px 60px #0000008c,0 0 30px color-mix(in srgb,var(--rc) 25%,transparent)}50%{box-shadow:0 20px 60px #0000008c,0 0 60px color-mix(in srgb,var(--rc) 45%,transparent)}}.reveal-card.tier-legendary .reveal-card-subject{background:linear-gradient(90deg,var(--color-rarity-legendary) 0%,#fff4c9 50%,var(--color-rarity-legendary) 100%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer-text 2.4s linear infinite}@keyframes shimmer-text{to{background-position:200% center}}.reveal-deck-actions{display:flex;gap:var(--space-sm);width:100%;max-width:380px;margin:0 auto}.reveal-deck-actions .icon-btn{width:46px;height:46px;border-radius:var(--radius-md)}.reveal-deck-actions .icon-btn.busy{animation:gallery-ready-pulse 1s ease-in-out infinite}.reveal-deck-actions .btn{min-height:46px;min-width:0;padding-left:var(--space-md);padding-right:var(--space-md);white-space:nowrap}.reveal-deck-actions .btn span{overflow:hidden;text-overflow:ellipsis}.reveal-action-share{flex:1}.reveal-action-next{flex:1.3}.reveal-deck-actions .btn .icon{width:1.1rem;height:1.1rem}.reveal-deck-actions .btn:disabled{opacity:.45}.selection-bar{position:fixed;left:50%;bottom:calc(var(--safe-area-bottom) + 6px);z-index:5600;width:min(calc(100% - 2 * var(--space-md)),440px);display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-lg);background:var(--color-bg-bar);border:1px solid var(--color-border-gold);box-shadow:0 12px 36px #0009,0 0 24px rgba(var(--accent-rgb),.12);transform:translate(-50%);animation:selection-bar-in .24s cubic-bezier(.2,.9,.25,1)}.selection-bar.leaving{animation:selection-bar-out .18s ease-in forwards}@keyframes selection-bar-in{0%{opacity:0;transform:translate(-50%,24px)}to{opacity:1;transform:translate(-50%)}}@keyframes selection-bar-out{to{opacity:0;transform:translate(-50%,24px)}}.selection-bar-cancel{border-radius:50%}.selection-bar-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.selection-bar-hint{font-size:var(--font-size-xs);line-height:1.3;color:var(--color-text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.selection-bar-charges{display:flex;flex-wrap:wrap;gap:4px}.selection-bar-pip{width:9px;height:9px;border-radius:50%;border:1px solid rgba(var(--mana-rgb),.6);transition:background .15s ease,transform .15s ease}.selection-bar-pip.on{background:var(--gradient-mana);border-color:transparent;box-shadow:0 0 6px rgba(var(--mana-rgb),.6)}.selection-bar-reveal{flex:none;min-height:44px;white-space:nowrap}.selection-bar-reveal .icon{width:1rem;height:1rem}.selection-bar-reveal:disabled{opacity:.45}.help-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--color-surface-3);color:var(--color-text-secondary);font-size:.7rem;font-weight:600;cursor:pointer;margin-left:var(--space-xs);flex-shrink:0;transition:background-color .15s ease}.help-icon:hover,.help-icon:focus{background:var(--color-accent);color:var(--color-on-accent);outline:none}.help-popover{position:fixed;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);max-width:280px;box-shadow:var(--shadow-lg);z-index:5000;animation:fadeIn .15s ease}.help-popover-title{font-weight:600;margin-bottom:var(--space-xs);color:var(--color-text)}.help-popover-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5;white-space:pre-line}.profile-help-btn{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-surface-3);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:all .15s ease}.profile-help-btn:hover{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent)}.profile-help-btn .help-icon{margin-left:0}.help-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-bg-overlay);z-index:5000;display:flex;align-items:flex-end;animation:fadeIn .2s ease}.help-modal-overlay.closing{animation:fadeOut .2s ease forwards}.help-modal-overlay.closing .help-modal{animation:slideDown .2s ease forwards}.help-modal{background:var(--color-bg-secondary);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-height:85vh;display:flex;flex-direction:column;animation:slideUp .2s ease;will-change:transform,opacity}.help-modal:before{content:"";position:absolute;top:var(--space-sm);left:50%;transform:translate(-50%);width:36px;height:4px;background:#ffffff4d;border-radius:2px}.help-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg) var(--space-lg) var(--space-md);border-bottom:1px solid var(--color-border)}.help-modal-title{font-size:var(--font-size-xl);font-weight:600}.help-modal-close{background:none;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;padding:var(--space-xs);line-height:1}.help-modal-content{flex:1;overflow-y:auto;padding:var(--space-md) var(--space-lg) var(--space-xl);-webkit-overflow-scrolling:touch}.help-section{margin-bottom:var(--space-lg)}.help-section:last-child{margin-bottom:0}.help-section-title{color:var(--color-accent);font-size:var(--font-size-base);font-weight:600;margin:0 0 var(--space-sm) 0;text-transform:uppercase;letter-spacing:.05em}.help-section-item{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.5;margin:0 0 var(--space-sm) 0;white-space:pre-line}.help-section-item:last-child{margin-bottom:0}.section-divider{height:1px;background:linear-gradient(90deg,transparent,var(--glass-border-light),transparent);margin:var(--space-lg) 0}.glass-container{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg)}.glass-panel{background:var(--glass-bg-light);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);position:relative}.glass-panel:before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);pointer-events:none}.text-glow{text-shadow:0 0 8px currentColor}.glow-border{border-color:rgba(var(--accent-rgb),.4);box-shadow:0 0 15px rgba(var(--accent-rgb),.2)}.camera-flash{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;z-index:99999;pointer-events:none;animation:camera-flash .3s ease-out forwards}@keyframes camera-flash{0%{opacity:.85}to{opacity:0}}.shared-post-view{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-bg-primary);z-index:10000;display:flex;flex-direction:column;overflow-y:auto}.shared-post-content{flex:1;display:flex;flex-direction:column;max-width:500px;width:100%;margin:0 auto;padding:var(--space-md)}.shared-post-image-container{width:100%;aspect-ratio:1;max-height:50vh;background:#0a0a0a;border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--space-lg)}.shared-post-image{width:100%;height:100%;object-fit:contain}.shared-post-info{flex:1}.shared-post-author{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.shared-post-author-name{font-weight:600;color:var(--color-text)}.shared-post-author-level{font-size:var(--font-size-xs);color:var(--color-text-secondary);background:var(--color-surface-alt);padding:2px 8px;border-radius:var(--radius-sm)}.shared-post-discovery{margin-bottom:var(--space-lg)}.shared-post-subject{font-size:var(--font-size-xl);margin:0 0 var(--space-sm) 0;color:var(--color-text)}.shared-post-meta{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.shared-post-rarity{font-weight:700;font-size:var(--font-size-lg)}.shared-post-element{padding:4px 10px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.shared-post-caption{color:var(--color-text);margin:0 0 var(--space-sm) 0}.shared-post-flavor{color:var(--color-text-secondary);font-style:italic;font-size:var(--font-size-sm);margin:0}.shared-post-stats{display:flex;gap:var(--space-lg);color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--space-xl);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.shared-post-stat{display:flex;align-items:center;gap:var(--space-xs)}.shared-post-comments{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.shared-post-comment-list{display:flex;flex-direction:column;gap:var(--space-sm)}.shared-post-comment{font-size:var(--font-size-sm);line-height:1.4}.shared-post-comment-author{font-weight:600;color:var(--color-text-primary);margin-right:var(--space-xs)}.shared-post-comment-text{color:var(--color-text-secondary)}.shared-post-comment-more{font-size:var(--font-size-sm);color:var(--color-accent);margin-top:var(--space-sm);font-style:italic}.shared-post-cta{text-align:center;padding:var(--space-xl) 0}.shared-post-cta-text{color:var(--color-text-secondary);margin-bottom:var(--space-lg)}.shared-post-btn{width:100%;padding:var(--space-md) var(--space-xl);font-size:var(--font-size-md);font-weight:600}.shared-post-login-prompt{margin-top:var(--space-lg);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.shared-post-branding{text-align:center;padding:var(--space-lg);background:var(--color-surface);border-top:1px solid var(--color-border)}.shared-post-logo{display:block;font-size:var(--font-size-lg);font-weight:700;letter-spacing:.15em;color:var(--color-text);margin-bottom:var(--space-xs)}.shared-post-tagline{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.shared-post-error .shared-post-content{justify-content:center;text-align:center}.shared-post-error-icon{font-size:4rem;margin-bottom:var(--space-lg)}.shared-post-error-title{font-size:var(--font-size-xl);color:var(--color-text);margin:0 0 var(--space-md) 0}.shared-post-error-text{color:var(--color-text-secondary);margin:0 0 var(--space-xl) 0}.hashtag-feed-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10001;background:#000000d9;display:flex;flex-direction:column;animation:fadeIn .2s ease-out}.hashtag-feed-container{display:flex;flex-direction:column;height:100%;max-width:600px;margin:0 auto;width:100%;background:var(--color-background)}.hashtag-feed-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.hashtag-feed-list{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.hashtag-feed-loading{text-align:center;color:var(--color-text-secondary);padding:var(--space-xl)}.camera-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;z-index:10004;animation:fadeIn .15s ease;touch-action:none}.camera-modal-content{width:100%;height:100%;position:relative}.camera-modal-video-container{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#000}.camera-modal-video,.camera-modal-freeze{width:100%;height:100%;object-fit:contain;transform-origin:center center}.camera-modal-overlay.front .camera-modal-video{transform:scaleX(-1)}.camera-modal-freeze{position:absolute;top:0;right:0;bottom:0;left:0;transition:opacity .2s ease}.camera-modal-freeze.fading{opacity:0}.camera-modal-overlay.shutter .camera-modal-video-container:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#000;pointer-events:none;animation:camera-shutter .18s ease-out forwards}@keyframes camera-shutter{0%{opacity:.85}to{opacity:0}}.camera-modal-close{position:absolute;top:calc(var(--space-lg) + var(--safe-area-top, 0px));left:var(--space-lg);width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#00000073;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.18);color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent}.camera-modal-close .icon{width:20px;height:20px}.camera-modal-zoom-readout{position:absolute;top:calc(var(--space-lg) + var(--safe-area-top, 0px) + 6px);left:50%;transform:translate(-50%);padding:4px 12px;border-radius:999px;background:#0000008c;color:rgba(var(--accent-rgb),1);font-size:var(--font-size-sm);font-weight:700;font-variant-numeric:tabular-nums;opacity:0;transition:opacity .2s ease;pointer-events:none}.camera-modal-zoom-readout.visible{opacity:1}.camera-modal-bottom{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-lg) var(--space-lg) calc(var(--space-xl) + var(--safe-area-bottom, 0px));background:linear-gradient(transparent,#0000008c)}.camera-modal-zoom-bar{display:flex;align-items:center;gap:6px;padding:4px;border-radius:999px;background:#00000073;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.camera-modal-zoom-bar:empty{visibility:hidden}.camera-zoom-chip{min-width:38px;height:38px;padding:0 8px;border:none;border-radius:999px;background:transparent;color:#ffffffd9;font-family:var(--font-body);font-size:.8rem;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer;transition:background .15s ease,color .15s ease,transform .15s ease;-webkit-tap-highlight-color:transparent}.camera-zoom-chip.active{background:#ffffff29;color:rgba(var(--accent-rgb),1);transform:scale(1.08)}.camera-modal-controls{width:100%;max-width:420px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.camera-modal-done{justify-self:start;position:relative;width:54px;height:54px;padding:0;border-radius:14px;border:2px solid rgba(255,255,255,.85);background:#ffffff14;color:#fff;overflow:visible;cursor:pointer;-webkit-tap-highlight-color:transparent}.camera-modal-done.empty{visibility:hidden}.camera-modal-done img{width:100%;height:100%;object-fit:cover;border-radius:12px}.camera-modal-done-count{position:absolute;top:-8px;right:-8px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--color-accent);color:var(--color-bg-primary);font-size:.75rem;font-weight:700;line-height:22px;text-align:center}.camera-modal-done.pop{animation:camera-done-pop .3s cubic-bezier(.2,.9,.25,1.4)}@keyframes camera-done-pop{0%{transform:scale(.6);opacity:.4}to{transform:scale(1);opacity:1}}.camera-modal-capture{width:76px;height:76px;border-radius:50%;border:4px solid #fff;background:transparent;padding:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent}.camera-modal-capture:disabled{opacity:.5;cursor:not-allowed}.camera-modal-capture-inner{width:100%;height:100%;border-radius:50%;background:#fff;transition:transform .12s ease,background .12s ease}.camera-modal-capture:active:not(:disabled) .camera-modal-capture-inner{transform:scale(.86)}.camera-modal-capture.busy .camera-modal-capture-inner{transform:scale(.86);background:#ffffffbf}.camera-modal-switch{justify-self:end;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#ffffff24;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.25);color:#fff;cursor:pointer;transition:transform .3s ease;-webkit-tap-highlight-color:transparent}.camera-modal-switch .icon{width:22px;height:22px}.camera-modal-switch:active{transform:rotate(180deg)}.camera-modal-switch.unavailable{visibility:hidden}.camera-focus-ring{position:absolute;width:70px;height:70px;border:2px solid rgba(255,255,255,.9);border-radius:50%;pointer-events:none;z-index:5;transform:translate(-50%,-50%);animation:focusRing .5s ease-out forwards}@keyframes focusRing{0%{transform:translate(-50%,-50%) scale(1.3);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:.6}}.camera-focus-ring.success{border-color:#4caf50e6;animation:focusSuccess .4s ease-out forwards}@keyframes focusSuccess{0%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) scale(1.1);opacity:0}}.settings-radio-group{display:flex;flex-direction:column;gap:var(--space-sm)}.settings-radio-option{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-md);background:var(--glass-bg-light);border:1px solid var(--glass-border);border-radius:var(--radius-md);cursor:pointer;transition:border-color .2s ease,background .2s ease;-webkit-tap-highlight-color:transparent}.settings-radio-option:hover{border-color:var(--glass-border-light)}.settings-radio-option.selected{border-color:var(--color-accent);background:rgba(var(--accent-rgb),.1)}.settings-radio-option input[type=radio]{width:20px;height:20px;margin-top:2px;accent-color:var(--color-accent);cursor:pointer;flex-shrink:0}.settings-radio-label{flex:1}.settings-radio-title{font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-xs)}.settings-radio-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.4}.streak-milestone-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10001;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.streak-milestone-overlay.active{opacity:1}.streak-milestone-overlay.closing{opacity:0}.streak-milestone-backdrop{position:absolute;top:0;left:0;right:0;bottom:0;background:#000000d9}.streak-milestone-confetti{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;pointer-events:none}.confetti-particle{position:absolute;width:10px;height:10px;border-radius:2px;left:var(--x);top:-20px;animation:confetti-fall var(--duration) linear var(--delay) forwards;transform:rotate(var(--rotation))}@keyframes confetti-fall{0%{top:-20px;opacity:1;transform:rotate(var(--rotation)) translate(0)}to{top:100vh;opacity:0;transform:rotate(calc(var(--rotation) + 720deg)) translate(50px)}}.streak-milestone-card{position:relative;background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-xl) var(--space-lg);text-align:center;max-width:340px;margin:var(--space-lg);box-shadow:0 25px 50px #00000080;transform:scale(.8);opacity:0;transition:transform .4s cubic-bezier(.175,.885,.32,1.275),opacity .3s ease}.streak-milestone-overlay.active .streak-milestone-card{transform:scale(1);opacity:1}.streak-milestone-overlay.closing .streak-milestone-card{transform:scale(.9);opacity:0}.streak-milestone-card:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;border-radius:calc(var(--radius-xl) + 2px);background:linear-gradient(135deg,gold,#ff6b35,#d8b46a,#7b2cbf);z-index:-1;animation:milestone-glow 3s ease-in-out infinite}@keyframes milestone-glow{0%,to{opacity:.8;filter:blur(4px)}50%{opacity:1;filter:blur(8px)}}.streak-milestone-emoji{font-size:64px;margin-bottom:var(--space-sm);animation:milestone-bounce 1s ease-in-out infinite}@keyframes milestone-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.streak-milestone-title{font-size:var(--font-size-xl);font-weight:700;margin:0 0 var(--space-xs);background:linear-gradient(135deg,gold,#ff6b35);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.streak-milestone-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0 0 var(--space-lg)}.streak-milestone-rewards{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-lg)}.streak-milestone-reward{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--glass-bg-light);border-radius:var(--radius-md);border:1px solid var(--glass-border)}.streak-milestone-reward-icon{font-size:24px;flex-shrink:0}.streak-milestone-reward-value{font-size:var(--font-size-lg);font-weight:700;color:var(--color-text-primary)}.streak-milestone-reward-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-left:auto}.streak-milestone-item .streak-milestone-reward-value{font-size:var(--font-size-base);color:#7b2cbf}.streak-milestone-btn{width:100%;padding:var(--space-md) var(--space-lg);font-size:var(--font-size-base);font-weight:600;font-family:var(--font-family);border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,gold,#ff6b35);color:#000;cursor:pointer;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.streak-milestone-btn:active{transform:scale(.97);opacity:.9}.gallery-detail-overlay{z-index:1000}.gallery-detail-modal{position:relative;display:flex;flex-direction:column;gap:var(--space-md);width:min(92vw,420px);max-height:90vh;overflow-y:auto;padding:var(--space-lg)}.gallery-detail-close{position:absolute;top:var(--space-sm);right:var(--space-sm);width:2.2rem;height:2.2rem;border:none;border-radius:50%;background:#00000080;color:var(--color-text-primary);font-size:1.4rem;line-height:1;cursor:pointer;z-index:1}.gallery-detail-image-wrap{border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-bar)}.gallery-detail-image{display:block;width:100%;max-height:50vh;object-fit:contain}.gallery-detail-meta{display:flex;gap:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.gallery-detail-meta>span{display:inline-flex;align-items:center;gap:.3em}.gallery-detail-meta .icon{width:1.1em;height:1.1em;color:var(--color-text-muted)}.gallery-detail-error{font-size:var(--font-size-sm);color:var(--color-error)}.gallery-detail-error-msg{display:block;color:var(--color-text-muted);margin-top:var(--space-xs)}.gallery-detail-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.gallery-reveal-hint{font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:center;margin:0}.gallery-delete-confirm{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.gallery-delete-confirm span{flex:1}.btn-danger{background:var(--color-error);color:#fff;border:none}.btn-danger:hover:not(:disabled){filter:brightness(1.1)}.challenges-chevron .icon,.achievements-chevron .icon{width:18px;height:18px}.feedback-form{display:flex;flex-direction:column;gap:var(--space-md)}.feedback-message{min-height:140px;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border-light);background:var(--color-surface);color:var(--color-text-primary);font:inherit;font-size:1rem;line-height:1.45;resize:vertical}.feedback-message:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.15)}.feedback-shots{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.feedback-shot-list{display:contents}.feedback-shot{position:relative;width:64px;height:96px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border-light)}.feedback-shot img{width:100%;height:100%;object-fit:cover}.feedback-shot-remove{position:absolute;top:2px;right:2px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:#0b0d1acc;color:var(--color-text-primary);cursor:pointer}.feedback-shot-remove .icon{width:16px;height:16px}.feedback-shot-add{display:inline-flex;align-items:center;gap:var(--space-xs);min-height:44px;padding:0 var(--space-md);border:1px dashed var(--color-border-light);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer}.feedback-shot-add .icon{width:18px;height:18px;flex:none}.feedback-shot-add.hidden{display:none}.feedback-note{margin:0;font-size:var(--font-size-xs);line-height:1.45;color:var(--color-text-muted)}.feedback-send{min-height:48px}.player-avatar{flex:none;display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--color-surface-3);border:1px solid rgba(var(--accent-rgb),.35);color:var(--color-accent);font-weight:700;font-size:var(--font-size-md);line-height:1}.player-avatar-sm{width:28px;height:28px;font-size:var(--font-size-xs)}.player-avatar-lg{width:72px;height:72px;font-size:1.75rem;border-width:2px}.follow-pill{flex:none;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-height:34px;padding:.375rem .875rem;border:1px solid transparent;border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-on-accent);font:inherit;font-size:var(--font-size-sm);font-weight:600;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.follow-pill:active{transform:scale(.95)}.follow-pill.following{background:transparent;border-color:var(--color-border);color:var(--color-text-secondary)}.follow-pill .icon{width:16px;height:16px}.follow-pill-lg{flex:1;min-height:40px;border-radius:var(--radius-md);font-size:var(--font-size-md)}.profile-topbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:var(--space-xs);width:100%;max-width:600px;margin:0 auto;padding:calc(env(safe-area-inset-top) + .5rem) var(--space-sm) .5rem;background:var(--color-bg-primary)}.profile-topbar-name{flex:1;min-width:0;font-weight:700;font-size:var(--font-size-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-back .icon{width:24px;height:24px}.public-profile-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-md)}.public-profile-actions .block-btn{flex:1}.public-profile-skeleton{display:flex;align-items:center;gap:var(--space-md);min-height:150px}.skeleton-lines{display:flex;flex-direction:column;gap:.5rem;flex:1}.skeleton-lines span,.public-profile-skeleton .player-avatar{display:block;border-color:transparent;background:var(--color-surface);animation:skeleton-pulse 1.2s ease-in-out infinite}.skeleton-lines span{height:14px;width:50%;border-radius:var(--radius-sm)}.skeleton-lines span:first-child{height:20px;width:65%}@keyframes skeleton-pulse{50%{opacity:.5}}.profile-guild-chip{display:inline-flex;align-items:center;gap:.25rem;margin-top:.25rem;max-width:100%;padding:.125rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius-full);background:none;color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.public-profile-details{display:flex;flex-direction:column;align-items:flex-start}.public-profile-badges{margin-top:var(--space-sm)}.sheet-action{display:flex;align-items:center;gap:var(--space-md);width:100%;min-height:48px;padding:0 var(--space-md);border:none;border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text-primary);font:inherit;font-size:var(--font-size-md);text-align:left;cursor:pointer}.sheet-action+.sheet-action{margin-top:var(--space-sm)}.sheet-action .icon{width:20px;height:20px}.sheet-action-danger{color:var(--color-error)}.player-search-field{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:.5rem;padding:0 .75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-muted)}.player-search-field:focus-within{border-color:rgba(var(--accent-rgb),.5)}.player-search-field .icon{flex:none;width:18px;height:18px}.player-search-input{flex:1;min-width:0;height:44px;border:none;outline:none;background:none;color:var(--color-text-primary);font:inherit;font-size:16px}.player-search-caption{margin:var(--space-md) 0 var(--space-xs);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.player-search-results{min-height:40vh;transition:opacity .15s}.player-search-results.loading{opacity:.6}.player-search-empty{padding:var(--space-xl) 0;text-align:center;color:var(--color-text-secondary)}.player-card{padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border);cursor:pointer;-webkit-tap-highlight-color:transparent}.player-card:last-child{border-bottom:none}.player-card-row{display:flex;align-items:center;gap:var(--space-md)}.player-card-info{flex:1;min-width:0;display:flex;flex-direction:column}.player-card-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-card-name .guild-tag{color:var(--color-text-muted);font-weight:500;font-size:var(--font-size-xs)}.player-card-meta{color:var(--color-text-muted);font-size:var(--font-size-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-card-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:var(--space-sm);padding-left:calc(40px + var(--space-md))}.player-card-photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm);background:var(--color-surface)}.post-action-btn .icon{width:20px;height:20px}.post-action-btn.liked .icon{color:var(--color-error)}.post-action-btn.busy{opacity:.5}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-family);background:var(--gradient-ethereal),var(--gradient-ethereal-bottom),var(--color-bg-primary);color:var(--color-text-primary);height:100vh;height:calc(var(--vh, 1vh) * 100);overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{display:flex;flex-direction:column;height:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-md);overflow:hidden}.app-header{display:flex;align-items:center;gap:var(--space-sm);min-height:var(--header-height);padding:calc(var(--space-xs) + var(--safe-area-top)) 0 var(--space-xs);flex-shrink:0;position:relative}.header-id{display:flex;align-items:center;gap:.625rem;flex:1;min-width:0}.header-level{position:relative;width:40px;height:40px;flex:none;display:grid;place-items:center}.header-xp-ring{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transform:rotate(-90deg)}.header-xp-ring-bg,.header-xp-ring-fill{fill:none;stroke-width:2.5}.header-xp-ring-bg{stroke:#ece6d61a}.header-xp-ring-fill{stroke:var(--color-accent);stroke-linecap:round;stroke-dasharray:106.8;stroke-dashoffset:106.8;transition:stroke-dashoffset .6s ease-out}.header-level-num{position:relative;font-weight:700;font-size:.9375rem;color:var(--color-accent-hover);font-variant-numeric:tabular-nums}.header-who{display:flex;flex-direction:column;min-width:0}.header-username{font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-hyphens:manual;hyphens:manual;-webkit-tap-highlight-color:transparent}.header-username:active{opacity:.7}.header-xp{font-size:var(--font-size-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-stats{display:flex;align-items:center;gap:.125rem;flex:none;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.header-chip,.header-badge,.header-stats .notification-bell{display:inline-flex;align-items:center;gap:.2rem;height:34px;min-width:30px;padding:0 .3rem;justify-content:center;border-radius:var(--radius-md);border:1px solid transparent;background:none;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;margin:0}.header-chip .icon,.header-badge .icon,.header-stats .notification-bell-icon{width:18px;height:18px}.header-stats .streak{color:var(--color-fire)}.header-stats .streak.milestone-7{color:var(--color-warning)}.header-stats .streak.milestone-30{color:var(--color-rarity-rare)}.header-stats .streak.milestone-100{color:var(--color-rarity-legendary);border-color:rgba(var(--accent-rgb),.35)}.streak-countdown{font-size:.75em;opacity:.9;margin-left:.25em}.streak-countdown.at-risk{color:var(--color-warning);animation:streak-pulse 2s infinite}@media (max-width: 359px){.header-xp-unit,.streak-countdown.safe{display:none}}.streak-countdown.safe{color:var(--color-success)}@keyframes streak-pulse{0%,to{opacity:1}50%{opacity:.5}}.header-badge{cursor:pointer;transition:transform .1s ease,color var(--transition-fast),border-color var(--transition-fast);-webkit-tap-highlight-color:transparent}.header-badge:active{transform:scale(.95);background:var(--color-surface)}.header-badge.has-claimable,.header-badge.has-effect{border-color:rgba(var(--accent-rgb),.45);color:var(--color-accent-hover);background:var(--color-accent-subtle)}.header-badge-count{font-weight:600}.header-badge-count:empty{display:none}.status-indicator{width:9px;height:9px;margin-left:.3rem;border-radius:50%;display:inline-block;flex-shrink:0;cursor:pointer;background:linear-gradient(90deg,var(--status-connection, rgba(160, 160, 160, .6)) 50%,var(--status-gps, rgba(160, 160, 160, .6)) 50%);transition:background .3s ease,box-shadow .3s ease;position:relative}.status-indicator:before{content:"";position:absolute;top:-17px;right:-17px;bottom:-17px;left:-17px}.status-indicator.online{box-shadow:0 0 8px #4ade8099}.status-indicator.syncing{animation:status-pulse 2s ease-in-out infinite}@keyframes status-pulse{0%,to{opacity:1;box-shadow:0 0 6px #34d39980}50%{opacity:.7;box-shadow:0 0 12px #34d399b3}}.view{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.view.hidden{display:none!important}.view-scroll{flex:1;overflow-y:auto;min-height:0;padding-bottom:calc(var(--nav-height) + 24px + var(--safe-area-bottom));-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.nav-bar{position:fixed;bottom:0;left:0;right:0;max-width:var(--max-width);margin:0 auto;z-index:1000;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));min-height:var(--nav-height);padding:.375rem var(--space-xs);padding-bottom:calc(.375rem + var(--safe-area-bottom));background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-top:1px solid var(--color-border-gold)}.nav-btn{min-width:0;background:none;border:none;color:var(--color-text-muted);font-family:inherit;font-size:.6875rem;font-weight:500;cursor:pointer;padding:.375rem .125rem .125rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;-webkit-tap-highlight-color:transparent;transition:color var(--transition-fast),transform .1s ease;position:relative}.nav-btn-icon .icon{width:22px;height:22px}.nav-btn-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-btn.active{color:var(--color-accent)}.nav-btn.active:before{content:"";position:absolute;top:-.4rem;left:50%;width:22px;height:2px;margin-left:-11px;border-radius:2px;background:var(--color-accent);box-shadow:0 0 10px var(--color-accent)}.nav-btn:active{transform:scale(.95)}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;height:calc(var(--vh, 1vh) * 100);gap:var(--space-xl)}.loading-screen h1{font-family:var(--font-display);font-weight:600;font-size:var(--font-size-2xl);letter-spacing:.25em;color:var(--color-accent)}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-bg-secondary);border-top-color:var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}.lens-emblem{width:104px;height:104px;color:var(--color-accent);overflow:visible;filter:drop-shadow(0 0 24px rgba(var(--mana-rgb),.35))}.lens-emblem-ticks{transform-origin:60px 60px;animation:spin 40s linear infinite}.lens-emblem-core{transform-origin:60px 60px;animation:lens-pulse 3.2s ease-in-out infinite}.lens-emblem-loading .lens-emblem-ticks{animation-duration:3s}@keyframes lens-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.12);opacity:.85}}@media (prefers-reduced-motion: reduce){.lens-emblem-ticks,.lens-emblem-core{animation:none}}@keyframes spin{to{transform:rotate(360deg)}}.login-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;min-height:calc(var(--vh, 1vh) * 100);padding:var(--space-xl) var(--space-lg);padding-bottom:calc(var(--space-xl) + var(--safe-area-bottom));max-width:420px;margin:0 auto;text-align:center;background:radial-gradient(420px 320px at 50% 8%,rgba(var(--mana-rgb),.14),transparent 70%)}.login-screen .lens-emblem{width:88px;height:88px;margin-bottom:var(--space-md)}.login-screen h1{font-family:var(--font-display);font-weight:600;color:var(--color-accent);font-size:var(--font-size-3xl);letter-spacing:.18em;margin:0 0 var(--space-xs);text-shadow:0 0 30px rgba(var(--accent-rgb),.3)}.login-screen .subtitle{color:var(--color-text-secondary);margin:0 0 var(--space-xl);font-size:var(--font-size-base);letter-spacing:.04em}.login-invite-banner{width:100%;display:flex;flex-direction:column;gap:2px;margin-bottom:var(--space-lg);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);border:1px solid var(--color-border-gold);background:linear-gradient(160deg,rgba(var(--accent-rgb),.14),rgba(var(--accent-rgb),.04))}.login-invite-banner.hidden{display:none}.login-invite-title{font-family:var(--font-display);font-weight:600;color:var(--color-accent);font-size:var(--font-size-lg);-webkit-hyphens:none;hyphens:none}.login-invite-text{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.login-form{width:100%;display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg);border-radius:var(--radius-xl);background:#161a33b3;border:1px solid var(--color-border-light);box-shadow:0 20px 60px #00000059;backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}.login-form input:not([type=checkbox]){width:100%;min-height:50px;padding:0 var(--space-lg);border-radius:var(--radius-md);border:1px solid var(--color-border-light);background:var(--color-bg-primary);color:var(--color-text-primary);font:inherit;font-size:1rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.login-form input:not([type=checkbox]):focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.15)}.login-form input::placeholder{color:var(--color-text-muted)}#login-activation-code:not(:placeholder-shown){font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase}.login-form button{width:100%;min-height:52px;margin-top:var(--space-xs);border-radius:var(--radius-full);border:none;background:var(--gradient-accent-btn);color:var(--color-on-accent);font:inherit;font-size:var(--font-size-lg);font-weight:700;cursor:pointer;box-shadow:0 4px 20px rgba(var(--accent-rgb),.3);transition:opacity var(--transition-fast),transform var(--transition-fast)}.login-form button:disabled{opacity:.5;cursor:not-allowed}.login-form button:not(:disabled):active{transform:scale(.98)}.login-error{color:var(--color-error);font-size:var(--font-size-sm);text-align:center;min-height:0;margin:0}.login-error:empty{display:none}.login-code-hint{margin:0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.login-code-hint.hidden{display:none}.login-code-hint a{color:var(--color-accent);font-weight:600;text-decoration:none}.pre-alpha-notice{background:rgba(var(--accent-rgb),.06);border:1px solid var(--color-border-gold);border-radius:var(--radius-md);padding:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:left;line-height:1.5}.pre-alpha-notice strong{color:var(--color-fire)}.pre-alpha-notice.hidden{display:none}.privacy-checkbox{display:flex;align-items:flex-start;gap:var(--space-sm);font-size:var(--font-size-base);color:var(--color-text-secondary);cursor:pointer;text-align:left}.privacy-checkbox input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:var(--color-accent);cursor:pointer;flex-shrink:0}.privacy-checkbox a{color:var(--color-accent);text-decoration:underline}.privacy-checkbox.hidden{display:none}.login-toggle{margin-top:var(--space-lg);color:var(--color-text-secondary);font-size:var(--font-size-base)}.login-toggle a{color:var(--color-accent);text-decoration:none;cursor:pointer}.login-toggle a:hover{text-decoration:underline}.forgot-password-link{margin-top:var(--space-sm);font-size:var(--font-size-sm)}.forgot-password-link a{color:var(--color-text-secondary);text-decoration:none;cursor:pointer}.forgot-password-link a:hover{color:var(--color-accent);text-decoration:underline}.auth-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-bg-primary);z-index:2000;display:flex;align-items:center;justify-content:center;padding:var(--space-2xl)}.auth-overlay.hidden{display:none}.auth-modal{width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;text-align:center}.auth-modal h2{font-size:var(--font-size-2xl);margin-bottom:var(--space-md)}.auth-modal .auth-description{color:var(--color-text-secondary);margin-bottom:var(--space-xl);line-height:1.5}.auth-modal form{width:100%;display:flex;flex-direction:column;gap:var(--space-lg)}.auth-modal input{width:100%;padding:var(--space-lg);border-radius:var(--radius-md);border:2px solid var(--color-bg-secondary);background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:var(--font-size-lg)}.auth-modal input:focus{outline:none;border-color:var(--color-accent)}.auth-modal input::placeholder{color:var(--color-text-secondary)}.auth-modal button[type=submit]{width:100%;padding:var(--space-lg);border-radius:var(--radius-md);border:none;background:var(--color-accent);color:var(--color-on-accent);font-size:var(--font-size-lg);font-weight:700;cursor:pointer;transition:opacity var(--transition-fast)}.auth-modal button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.auth-modal button[type=submit]:not(:disabled):active{opacity:.8}.auth-modal .login-error{color:var(--color-accent);font-size:var(--font-size-base);text-align:center;min-height:1.25rem}.auth-success{color:var(--color-nature);font-size:var(--font-size-base);text-align:center;margin:var(--space-lg) 0}.auth-success.hidden{display:none}.auth-back-btn{margin-top:var(--space-xl);padding:var(--space-md) var(--space-xl);border-radius:var(--radius-md);border:1px solid var(--color-text-secondary);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition-fast)}.auth-back-btn:active{background:var(--color-bg-secondary);color:var(--color-text-primary)}#camera-input{display:none}.section-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;flex-shrink:0}.section-header h2{font-size:var(--font-size-lg);font-weight:600;margin:0}.section-header span{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.section-title{font-family:var(--font-display);font-size:var(--font-size-md);font-weight:600;color:var(--color-text-primary);letter-spacing:.06em;margin-bottom:var(--space-md)}.view h2{font-family:var(--font-display);font-weight:600;letter-spacing:.05em}.empty-state{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-2xl);color:var(--color-text-secondary);gap:var(--space-sm)}.empty-state-icon{font-size:3rem;opacity:.5}.empty-state-text{font-size:var(--font-size-base)}.empty-state-hint{font-size:var(--font-size-sm);opacity:.7}.loading-state{display:flex;align-items:center;justify-content:center;padding:var(--space-2xl);color:var(--color-text-secondary)}.error-state{text-align:center;padding:var(--space-2xl);color:var(--color-error)}.landscape-blocker{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;background:var(--color-bg-primary);flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg);text-align:center;padding:var(--space-2xl)}.landscape-blocker-icon{font-size:4rem;animation:rotate-phone 2s ease-in-out infinite}.landscape-blocker-text{font-size:var(--font-size-lg);color:var(--color-text-secondary)}@keyframes rotate-phone{0%,to{transform:rotate(0)}25%{transform:rotate(-15deg)}75%{transform:rotate(15deg)}}@media (min-aspect-ratio: 4/3) and (max-height: 600px){.landscape-blocker{display:flex}}#reveal-view{gap:var(--section-gap);padding-top:var(--space-xs);padding-bottom:calc(var(--nav-height) + var(--safe-area-bottom) + var(--space-sm));overflow:hidden}.mana-section{flex-shrink:0}.mana-meter{background:var(--gradient-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-md) .875rem}.mana-top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-sm)}.mana-label{min-width:0;font-size:var(--font-size-xs);font-weight:600;letter-spacing:var(--letter-spacing-caps);text-transform:uppercase;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mana-gathered{margin-left:.25rem;color:var(--color-text-muted);text-transform:none;font-variant-numeric:tabular-nums;letter-spacing:0}.mana-text{font-weight:700;font-size:1.125rem;line-height:1;color:var(--color-text-primary);font-variant-numeric:tabular-nums;white-space:nowrap}.mana-bar-container{position:relative;height:var(--mana-bar-height);border-radius:var(--radius-full);background:var(--color-bg-bar);border:1px solid rgba(255,255,255,.05);overflow:hidden}.mana-bar-container:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(90deg,transparent 0 calc(25% - 1px),rgba(10,12,26,.85) calc(25% - 1px) 25%);pointer-events:none}.mana-progress-bar{height:100%;width:0%;border-radius:var(--radius-full);background:var(--gradient-mana);box-shadow:var(--glow-mana);transition:width .5s ease-out}.mana-progress-bar.overcharge{background:linear-gradient(90deg,var(--color-mana),var(--color-mana-2) 60%,var(--color-accent-hover))}.mana-progress-bar.gathering{animation:mana-gathering 2s ease-in-out infinite}@keyframes mana-gathering{0%,to{filter:brightness(1)}50%{filter:brightness(1.25)}}.mana-progress-bar.milestone-pulse{animation:mana-milestone .4s ease-out}@keyframes mana-milestone{50%{filter:brightness(1.5)}}.mana-info{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.375rem var(--space-sm);margin-top:.625rem;min-height:24px}.stored-mana{display:flex;align-items:center;gap:.5rem;min-width:0;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.stored-mana-dots{display:flex;flex-wrap:wrap;gap:.4rem;padding:0 2px}.stored-mana-dot{width:10px;height:10px;transform:rotate(45deg);border-radius:2px;border:1.5px solid rgba(var(--mana-rgb),.55);transition:background var(--transition-fast)}.stored-mana-dot.filled{border-color:transparent;background:linear-gradient(135deg,var(--color-mana-2),var(--color-mana));box-shadow:0 0 8px rgba(var(--mana-rgb),.7)}.overcharge-chip,.gps-quality-badge{display:inline-block;min-height:24px;padding:.125rem .6rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600;line-height:1.2}.overcharge-chip{color:var(--color-accent-hover);background:var(--color-accent-subtle);border:1px solid rgba(var(--accent-rgb),.3);font-variant-numeric:tabular-nums}.overcharge-chip .help-icon{margin-left:.25rem;vertical-align:middle}.overcharge-chip.hidden,.gps-quality-badge.hidden{display:none}.gps-quality-badge.marginal{color:var(--color-warning);background:#f3d35b14;border:1px solid rgba(243,211,91,.25)}.gps-quality-badge.poor{color:var(--color-error);background:#e8615a14;border:1px solid rgba(232,97,90,.3)}.reveal-section{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md)}.reveal-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-md);max-width:100%}.side-slot{width:calc(var(--side-btn-size) + 1.75rem);flex:none;display:flex;justify-content:center}.side-btn{width:100%;display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:0;border:none;background:none;color:var(--color-text-secondary);font-family:inherit;font-size:var(--font-size-xs);font-weight:600;line-height:1.2;text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent}.side-btn .btn-label{max-width:100%;overflow-wrap:anywhere}.side-btn-icon{width:var(--side-btn-size);height:var(--side-btn-size);border-radius:50%;border:1px solid var(--color-border-light);background:var(--color-surface-2);transition:transform .1s ease,box-shadow var(--transition-fast)}.side-btn-icon .icon{width:22px;height:22px}.store-mana-btn .side-btn-icon{color:var(--color-store);border-color:#5ad1e659}.channel-mana-btn .side-btn-icon{color:var(--color-channel);border-color:rgba(var(--accent-rgb),.45);background:radial-gradient(circle,rgba(var(--accent-rgb),.16),var(--color-surface-2) 70%)}.side-btn:active:not(:disabled) .side-btn-icon{transform:scale(.94)}.side-btn:disabled{opacity:.55;cursor:wait}.side-btn.hidden{display:none}.reveal-btn-wrapper{position:relative;width:var(--reveal-btn-size);height:var(--reveal-btn-size);flex:none;display:grid;place-items:center}.reveal-progress-ring{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}.progress-ring-bg{fill:none;stroke:#ece6d614;stroke-width:4}.progress-ring-fill{fill:none;stroke:var(--color-mana);stroke-width:4;stroke-linecap:round;stroke-dasharray:339.3;stroke-dashoffset:339.3;transition:stroke-dashoffset .3s ease-out,stroke var(--transition-slow)}.reveal-progress-ring.charging .progress-ring-fill{filter:drop-shadow(0 0 4px rgba(var(--mana-rgb),.7))}.reveal-progress-ring.ready .progress-ring-fill{stroke:var(--color-accent);filter:drop-shadow(0 0 6px rgba(var(--accent-rgb),.6))}.reveal-btn{width:calc(var(--reveal-btn-size) * .8);height:calc(var(--reveal-btn-size) * .8);border-radius:50%;border:1px solid rgba(var(--accent-rgb),.35);background:radial-gradient(circle at 50% 35%,#2a2f5c,#141733 70%);box-shadow:inset 0 0 0 5px #0b0d1a8c,inset 0 0 26px rgba(var(--mana-rgb),.22),0 10px 28px #00000080;color:var(--color-text-primary);font-family:inherit;font-size:var(--reveal-btn-font);font-weight:600;line-height:1.15;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;padding:0 .5rem;transition:transform .1s ease,border-color var(--transition-slow),box-shadow var(--transition-slow);-webkit-tap-highlight-color:transparent}.reveal-btn-icon{color:var(--color-accent-hover)}.reveal-btn-icon .icon{width:calc(var(--reveal-btn-size) * .24);height:calc(var(--reveal-btn-size) * .24);stroke-width:1.4}.reveal-btn .btn-label{max-width:100%;letter-spacing:.02em;overflow-wrap:anywhere}.reveal-btn:active:not(:disabled){transform:scale(.96)}.reveal-btn:disabled{opacity:.55;cursor:not-allowed}.reveal-btn.ready{border-color:rgba(var(--accent-rgb),.75);box-shadow:inset 0 0 0 5px #0b0d1a8c,inset 0 0 26px rgba(var(--accent-rgb),.22),0 0 24px rgba(var(--accent-rgb),.28),0 10px 28px #00000080;animation:lens-breathe 3s ease-in-out infinite}@keyframes lens-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.025)}}.reveal-btn.ready:active{animation:none;transform:scale(.96)}.reveal-btn.charging{animation:charge-pulse .6s ease-out}@keyframes charge-pulse{50%{transform:scale(1.06)}}.btn-subtitle{display:block;font-size:.6rem;font-weight:400;opacity:.7;margin-top:2px;text-transform:none}.mana-hint{max-width:32ch;margin:0;font-size:var(--font-size-sm);line-height:1.4;color:var(--color-text-secondary);text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mana-hint.hidden{display:none}#grimoire-view{padding:0}#grimoire-view{padding-top:var(--space-xs)}.grimoire-filters{display:flex;gap:.375rem;padding:0 0 var(--space-md);overflow-x:auto;flex-shrink:0;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.grimoire-filters::-webkit-scrollbar{display:none}.filter-chip{flex:none;display:inline-flex;align-items:center;gap:.35rem;min-height:34px;padding:0 .8rem;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-family:inherit;font-size:var(--font-size-sm);font-weight:600;white-space:nowrap;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);-webkit-tap-highlight-color:transparent}.filter-chip:active{transform:scale(.95)}.filter-chip .filter-icon{color:var(--element-color, currentColor)}.filter-chip .filter-icon .icon{width:15px;height:15px}.filter-chip.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.filter-chip.active .filter-icon{color:inherit}.grimoire-scroll{flex:1;overflow-y:auto;min-height:0;padding-bottom:calc(var(--nav-height) + 10px + var(--safe-area-bottom));-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.grimoire-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-sm)}@media (max-width: 330px){.grimoire-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.grimoire-item{aspect-ratio:3/4;background:var(--color-surface);border-radius:var(--radius-lg);border:1.5px solid color-mix(in srgb,var(--element-color, #fff) 45%,transparent);overflow:hidden;position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;transition:transform .1s ease}.grimoire-item:active{transform:scale(.97)}.grimoire-item img{width:100%;height:100%;object-fit:cover}.grimoire-item .rarity-badge{position:absolute;left:.375rem;bottom:.375rem;display:inline-flex;align-items:center;gap:.2rem;height:22px;padding:0 .45rem;border-radius:var(--radius-full);background:#0b0d1acc;color:var(--color-text-primary);font-size:var(--font-size-xs);font-weight:700;font-variant-numeric:tabular-nums}.grimoire-item .rarity-badge .icon{width:12px;height:12px;color:var(--element-color)}.grimoire-item.legendary{border-color:var(--color-rarity-legendary);box-shadow:0 0 0 1px #f2c26559,0 0 16px #f2c2654d}.grimoire-item.legendary .rarity-badge{color:var(--color-rarity-legendary)}.grimoire-item.legendary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,transparent 40%,rgba(255,240,200,.22) 50%,transparent 60%);transform:translate(-100%);animation:legendary-sheen 4s ease-in-out infinite;pointer-events:none}@keyframes legendary-sheen{0%,60%{transform:translate(-100%)}to{transform:translate(100%)}}.grimoire-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:220px;padding:var(--space-lg);color:var(--color-text-secondary);text-align:center;gap:var(--space-sm)}.grimoire-empty-icon{font-size:2.5rem;opacity:.5}.grimoire-map-container{flex:1;display:flex;flex-direction:column;position:relative;min-height:0}.grimoire-map-container.hidden{display:none}.grimoire-map{flex:1;width:100%;min-height:0;background:#0e1122}.grimoire-map .leaflet-container{background:#0e1122}.grimoire-map .leaflet-tile-pane{filter:invert(1) hue-rotate(200deg) brightness(.85) contrast(.9) saturate(.35)}.grimoire-map .leaflet-tile{opacity:0;transition:opacity .3s ease}.grimoire-map .leaflet-tile-loaded{opacity:1}.grimoire-map .leaflet-control-zoom a{background:var(--color-bg-secondary);color:var(--color-text-primary);border-color:var(--color-border)}.grimoire-map .leaflet-control-zoom a:hover{background:var(--color-bg-tertiary)}.grimoire-map .leaflet-control-attribution{background:#1a1a2ecc;color:var(--color-text-muted);font-size:10px}.grimoire-map .leaflet-control-attribution a{color:var(--color-text-secondary)}.map-popup .leaflet-popup-content-wrapper{background:var(--color-bg-secondary);color:var(--color-text-primary);border-radius:var(--radius-md);box-shadow:0 4px 20px #00000080;border:1px solid var(--color-border)}.map-popup .leaflet-popup-tip{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-top:none;border-right:none}.map-popup .leaflet-popup-content{margin:0;padding:0}.map-popup-content{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);cursor:pointer;border-radius:var(--radius-md);transition:background var(--transition-fast)}.map-popup-content:hover{background:#ffffff0d}.map-popup-thumb{width:48px;height:48px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.map-popup-info{display:flex;flex-direction:column;gap:2px;min-width:0}.map-popup-subject{font-weight:600;font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-popup-rarity{font-size:var(--font-size-xs);font-weight:500}.map-popup-element{font-size:var(--font-size-xs);opacity:.8}.grimoire-map .marker-cluster{background:rgba(var(--accent-rgb),.3)}.grimoire-map .marker-cluster div{background:rgba(var(--accent-rgb),.7);color:#fff;font-weight:600;font-size:var(--font-size-sm);display:flex;align-items:center;justify-content:center;border-radius:50%;width:30px;height:30px;margin:5px}.grimoire-map .marker-cluster-small{background:rgba(var(--accent-rgb),.25)}.grimoire-map .marker-cluster-medium{background:rgba(var(--accent-rgb),.35)}.grimoire-map .marker-cluster-large{background:rgba(var(--accent-rgb),.45)}.map-unmapped-banner{position:absolute;bottom:calc(var(--nav-height) + 12px + var(--safe-area-bottom));left:50%;transform:translate(-50%);background:#16213ed9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:var(--space-xs) var(--space-md);font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap;z-index:500;pointer-events:none}.map-unmapped-banner.hidden{display:none}.map-empty-state{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:var(--color-text-secondary);z-index:500;pointer-events:none}.map-empty-state p{margin:var(--space-xs) 0;font-size:var(--font-size-sm)}.map-empty-state p:first-child{font-size:var(--font-size-base);color:var(--color-text-primary)}.grimoire-sentinel{grid-column:1 / -1;display:flex;justify-content:center;align-items:center;padding:var(--space-md);min-height:60px}.grimoire-loading{display:flex;align-items:center;justify-content:center}.grimoire-loading .spinner{width:24px;height:24px}#profile-view{padding-top:var(--space-xs)}.profile-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;padding-bottom:calc(var(--nav-height) + var(--safe-area-bottom) + var(--space-xl));-webkit-overflow-scrolling:touch}.profile-card{padding:var(--space-lg);border-radius:var(--radius-xl);background:var(--gradient-card);border:1px solid var(--color-border-gold)}.profile-level{display:flex;align-items:center;gap:.875rem}.profile-crest{width:48px;height:55px;flex:none}.profile-crest svg{width:100%;height:100%}.crest-outer{fill:rgba(var(--accent-rgb),.08);stroke:var(--color-accent);stroke-width:1.5}.crest-inner{fill:none;stroke:rgba(var(--accent-rgb),.3)}.profile-level-info{display:flex;flex-direction:column;gap:.125rem;min-width:0}.profile-level-title{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:700;letter-spacing:.04em;color:var(--color-accent-hover)}.profile-level-title #profile-level{font-family:var(--font-body)}.profile-level-xp{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.profile-xp-bar{height:6px;margin-top:var(--space-md);border-radius:var(--radius-full);background:var(--color-bg-bar);overflow:hidden}.profile-xp-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#b08a46,var(--color-accent-hover));transition:width .5s ease-out}.profile-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm);margin-top:var(--space-md)}.profile-stat{min-width:0;padding:.625rem .75rem;border-radius:var(--radius-md);background:#0b0d1a59;border:1px solid var(--color-border);text-align:left;font-family:inherit;color:inherit}.profile-stat-value{font-size:var(--font-size-xl);font-weight:700;color:var(--color-text-primary);font-variant-numeric:tabular-nums;line-height:1.2}.profile-stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:1.3}.profile-stat-mana{cursor:pointer;-webkit-tap-highlight-color:transparent}.profile-stat-mana:active{transform:scale(.98)}.profile-stat-mana.can-upgrade{border-color:rgba(var(--accent-rgb),.4);background:var(--color-accent-subtle)}.mana-upgrade-indicator{display:none;margin-left:.2rem;font-size:.7em;color:var(--color-accent-hover);vertical-align:middle}.mana-upgrade-hint{display:block;color:var(--color-accent);font-weight:600}.mana-upgrade-hint:empty{display:none}.profile-tabs{margin:var(--space-lg) 0 var(--space-md)}.profile-panel.hidden{display:none}.profile-section-title{margin:0 0 var(--space-sm);font-family:var(--font-display);font-size:var(--font-size-base);font-weight:600;letter-spacing:.05em;color:var(--color-text-primary)}.element-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-sm)}.element-item{min-width:0;display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.625rem .25rem .5rem;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);text-align:center}.element-item.can-upgrade{border-color:rgba(var(--accent-rgb),.4)}.element-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;color:var(--element-color);background:color-mix(in srgb,var(--element-color) 14%,transparent)}.element-icon .icon{width:18px;height:18px}.element-value{font-size:var(--font-size-lg);font-weight:700;color:var(--element-color);font-variant-numeric:tabular-nums;line-height:1.2}.element-name{max-width:100%;font-size:.625rem;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mastery-stars{font-size:.5625rem;letter-spacing:1px;line-height:1}.mastery-star{color:#ece6d62e}.mastery-star.filled{color:var(--color-accent)}.mastery-upgrade-btn{margin-top:.25rem;min-height:24px;padding:.1rem .5rem;border-radius:var(--radius-full);border:1px solid rgba(var(--accent-rgb),.4);background:var(--color-accent-subtle);color:var(--color-accent-hover);font-family:inherit;font-size:.625rem;font-weight:700;cursor:pointer;font-variant-numeric:tabular-nums}.mastery-upgrade-btn:active:not(.disabled){transform:scale(.95)}.mastery-upgrade-btn.disabled{border-color:var(--color-border);background:none;color:var(--color-text-muted);cursor:default}.mastery-maxed{margin-top:.25rem;font-size:.625rem;font-weight:700;letter-spacing:.08em;color:var(--color-accent)}.email-section{margin-top:var(--space-lg);padding:var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.email-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-xs) var(--space-sm);margin-bottom:var(--space-sm)}.email-title{min-width:0;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary)}.email-status{flex:none;white-space:nowrap;font-size:var(--font-size-xs);padding:2px 8px;border-radius:var(--radius-sm)}.email-status.not-set{color:var(--color-text-secondary);background:#ffffff1a}.email-status.unverified{color:var(--color-warning);background:#f9731633}.email-status.verified{color:var(--color-nature);background:#22c55e33}.email-content{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.email-address{font-size:var(--font-size-base);color:var(--color-text-primary);word-break:break-all}.email-actions{display:flex;gap:var(--space-xs);flex-shrink:0}.email-btn{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.2);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.email-btn:active{background:var(--color-bg-elevated);color:var(--color-text-primary)}.email-btn.hidden{display:none}.email-edit{display:flex;flex-direction:column;gap:var(--space-sm)}.email-edit.hidden{display:none}.email-edit input{width:100%;padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.2);background:var(--color-bg-elevated);color:var(--color-text-primary);font-size:var(--font-size-base)}.email-edit input:focus{outline:none;border-color:var(--color-accent)}.email-edit input::placeholder{color:var(--color-text-secondary)}.email-edit-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.email-btn-cancel{border-color:var(--color-text-secondary)}.email-btn-save{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.email-btn-save:active{opacity:.8;background:var(--color-accent);color:var(--color-on-accent)}.email-error{color:var(--color-accent);font-size:var(--font-size-sm);text-align:center}.email-error.hidden{display:none}.camera-mode-section{margin-top:var(--space-lg);padding:var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.camera-mode-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.camera-mode-title{font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary)}.profile-settings.hidden{display:none}.settings-sheet .sheet-body{display:flex;flex-direction:column;gap:var(--space-md)}.settings-sheet .email-section,.settings-sheet .camera-mode-section{margin:0}.settings-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.settings-row-btn{min-width:0;min-height:44px;display:flex;align-items:center;gap:var(--space-sm);padding:0 var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);font-family:inherit;font-size:var(--font-size-base);cursor:pointer;-webkit-tap-highlight-color:transparent}.settings-row-btn .icon{width:18px;height:18px;color:var(--color-text-secondary)}.settings-language select{flex:1;min-width:0;border:none;background:none;color:inherit;font:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.settings-language select:focus{outline:none}.logout-btn{min-height:44px;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);border-radius:var(--radius-md);border:1px solid rgba(232,97,90,.4);background:none;color:var(--color-error);font-family:inherit;font-size:var(--font-size-base);font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.logout-btn .icon{width:18px;height:18px}.logout-btn:active{background:#e8615a1a}#leaderboard-view{padding-top:var(--space-xs)}.leaderboard-tabs{flex-shrink:0;margin-bottom:var(--space-md)}.player-rank-banner{position:absolute;left:0;right:0;bottom:calc(var(--nav-height) + var(--safe-area-bottom) + var(--space-sm));display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.625rem var(--space-md);border-radius:var(--radius-lg);border:1px solid rgba(var(--accent-rgb),.4);background:#161a33f5;box-shadow:var(--shadow-md);font-size:var(--font-size-base);color:var(--color-text-secondary);z-index:5}.player-rank-banner.hidden{display:none}.player-rank-banner .icon{width:16px;height:16px;color:var(--color-accent)}.player-rank-banner #player-rank{font-weight:700;color:var(--color-accent-hover);font-variant-numeric:tabular-nums}#leaderboard-view{position:relative}.leaderboard-scroll{flex:1;overflow-y:auto;min-height:0;padding-bottom:calc(var(--nav-height) + 72px + var(--safe-area-bottom));-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.leaderboard-list{display:flex;flex-direction:column;gap:var(--space-sm)}.leaderboard-entry{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.625rem var(--space-md)}.leaderboard-entry.rank-1{--medal: var(--color-gold)}.leaderboard-entry.rank-2{--medal: var(--color-silver)}.leaderboard-entry.rank-3{--medal: var(--color-bronze)}.leaderboard-entry.rank-1,.leaderboard-entry.rank-2,.leaderboard-entry.rank-3{border-color:color-mix(in srgb,var(--medal) 40%,transparent);background:linear-gradient(100deg,color-mix(in srgb,var(--medal) 10%,var(--color-surface)),var(--color-surface) 60%)}.leaderboard-entry.current-player{border-color:rgba(var(--accent-rgb),.6);box-shadow:inset 3px 0 0 var(--color-accent)}.you-badge{background:var(--color-accent);color:var(--color-on-accent);font-size:.625rem;padding:.1rem .35rem;border-radius:var(--radius-sm);margin-left:var(--space-xs);font-weight:700;text-transform:uppercase;letter-spacing:.5px;vertical-align:middle}.leaderboard-main{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.leaderboard-rank{flex:none;min-width:2.25rem;font-size:var(--font-size-md);font-weight:700;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.leaderboard-medal{display:inline-flex;align-items:center;gap:.2rem;color:var(--medal)}.leaderboard-medal .icon{width:18px;height:18px}.leaderboard-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-hyphens:manual;hyphens:manual;font-weight:600;flex:1}.leaderboard-title{margin-left:4px;font-size:var(--font-size-sm);vertical-align:middle}.leaderboard-name.clickable-name{color:var(--color-accent);cursor:pointer;padding:var(--space-xs) var(--space-sm);margin:calc(-1 * var(--space-xs)) calc(-1 * var(--space-sm));border-radius:var(--radius-sm);transition:background var(--transition-fast);-webkit-tap-highlight-color:transparent}.leaderboard-name.clickable-name:active{background:var(--color-accent-subtle)}.leaderboard-level{font-size:var(--font-size-base);color:var(--color-accent);font-weight:600}.leaderboard-stats{display:flex;gap:var(--space-md);margin-top:.25rem;padding-left:calc(2.25rem + var(--space-sm));font-size:var(--font-size-sm);color:var(--color-text-secondary)}.leaderboard-stat{display:inline-flex;align-items:center;gap:.25rem;font-variant-numeric:tabular-nums}.leaderboard-stat .icon{width:14px;height:14px;color:var(--color-text-muted)}.leaderboard-streak .icon{color:var(--color-fire)}.leaderboard-essence{display:flex;gap:var(--space-xs);flex-wrap:wrap;font-size:var(--font-size-xs);margin-left:2.5rem}.leaderboard-loading,.leaderboard-error{text-align:center;color:var(--color-text-secondary);padding:var(--space-2xl)}.leaderboard-error{color:var(--color-accent)}.leaderboard-empty{text-align:center;padding:3rem var(--space-lg);color:var(--color-text-secondary)}.leaderboard-empty p{margin:0}.leaderboard-empty-hint{font-size:var(--font-size-base);margin-top:var(--space-sm)!important;opacity:.7}#chronicle-view{padding-top:var(--space-xs)}.chronicle-scroll{flex:1;overflow-y:auto;min-height:0;padding-bottom:calc(var(--nav-height) + 10px + var(--safe-area-bottom));-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.chronicle-list{display:flex;flex-direction:column;gap:var(--space-md)}.chronicle-tabs{flex-shrink:0;margin-bottom:var(--space-sm)}.chronicle-scroll{position:relative}.chronicle-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;content-visibility:auto;contain-intrinsic-size:auto 560px}.chronicle-card-head{display:flex;align-items:center;gap:var(--space-sm);padding:.5rem var(--space-md) .5rem .5rem;min-width:0}.chronicle-author{display:flex;align-items:center;gap:.5rem;min-width:0;padding:.25rem .5rem .25rem .25rem;margin:0;background:none;border:none;border-radius:var(--radius-full);color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.chronicle-author:active{background:#ffffff0f}.chronicle-author-name{min-width:0;font-weight:600;font-size:var(--font-size-sm);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chronicle-author-level{flex:none;color:var(--color-text-muted);font-size:var(--font-size-xs)}.chronicle-time{margin-left:auto;flex:none;color:var(--color-text-muted);font-size:var(--font-size-xs)}.chronicle-image-wrap{position:relative;background:var(--color-surface-2, rgba(255, 255, 255, .03))}.chronicle-image{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;display:block}.chronicle-image.img-fade{opacity:0;transition:opacity .2s ease-out}.chronicle-image.img-fade.loaded{opacity:1}.chronicle-content{padding:.625rem var(--space-md) var(--space-md)}.chronicle-discovery{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm)}.chronicle-subject{min-width:0;font-weight:600;font-size:var(--font-size-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chronicle-rarity{flex:none;font-weight:700;font-size:var(--font-size-sm)}.chronicle-meta{display:flex;align-items:center;gap:var(--space-sm);margin-top:.375rem}.chronicle-element{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600;color:var(--element-color);background:color-mix(in srgb,var(--element-color) 14%,transparent)}.chronicle-element .icon{width:12px;height:12px}.chronicle-essence{color:var(--color-accent);font-weight:600;font-size:var(--font-size-xs)}.chronicle-stats-inline{margin-left:auto;display:flex;align-items:center;gap:var(--space-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.chronicle-stats-inline .icon{width:18px;height:18px}.chronicle-comments,.chronicle-like-indicator{display:inline-flex;align-items:center;gap:.25rem}.chronicle-like-indicator.liked{color:var(--color-error)}.chronicle-like-btn{display:inline-flex;align-items:center;gap:.25rem;background:none;border:none;padding:4px 8px;margin:-4px -8px;color:inherit;font-size:inherit;font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:var(--radius-sm);transition:background .15s ease}.chronicle-like-btn:active{background:#ffffff1a}.chronicle-like-btn.liked{color:var(--color-error)}.chronicle-like-btn.liked .icon{animation:like-pop .25s ease-out}@keyframes like-pop{50%{transform:scale(1.3)}}.chronicle-caption{margin-top:var(--space-xs);color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.35;overflow-wrap:anywhere}.double-tap-heart{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);color:#fff;filter:drop-shadow(0 2px 12px rgba(0,0,0,.5));pointer-events:none;animation:heart-pop .8s ease-out forwards;z-index:10}@keyframes heart-pop{0%{transform:translate(-50%,-50%) scale(0);opacity:1}50%{transform:translate(-50%,-50%) scale(1.2);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:0}}.chronicle-loading,.chronicle-error,.chronicle-empty{text-align:center;padding:var(--space-2xl);color:var(--color-text-secondary)}.chronicle-empty p:first-child{font-style:italic;margin-bottom:var(--space-sm)}.double-tap-heart .icon{width:88px;height:88px}.chronicle-find-btn{display:inline-flex;align-items:center;gap:.5rem;margin-top:var(--space-md)}.chronicle-find-btn .icon{width:18px;height:18px}.chronicle-end{text-align:center;padding:var(--space-lg) 0 var(--space-md);color:var(--color-text-muted);font-size:var(--font-size-xs)}.chronicle-sentinel{height:1px}.chronicle-pull{position:absolute;top:0;left:50%;z-index:2;display:grid;place-items:center;width:36px;height:36px;margin-left:-18px;border-radius:50%;background:var(--color-surface-3, var(--color-surface));border:1px solid var(--color-border);color:var(--color-text-secondary);opacity:0;transform:translateY(calc(-40px + var(--pull, 0) * 56px)) rotate(calc(var(--pull, 0) * 270deg));pointer-events:none}.chronicle-pull.visible{opacity:calc(.3 + var(--pull, 0) * .7)}.chronicle-pull.ready{color:var(--color-accent)}.chronicle-pull.spinning{opacity:1;color:var(--color-accent);animation:chronicle-spin .8s linear infinite}@keyframes chronicle-spin{0%{transform:translateY(16px) rotate(0)}to{transform:translateY(16px) rotate(360deg)}}.chronicle-pull .icon{width:18px;height:18px}#chronicle-view{position:relative}.chronicle-new-posts{position:absolute;top:calc(var(--space-xs) + 118px);left:50%;transform:translate(-50%);z-index:5;display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem .5rem .75rem;border:none;border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-on-accent);font:inherit;font-size:var(--font-size-sm);font-weight:600;box-shadow:0 6px 20px #0006;cursor:pointer;animation:new-posts-in .25s ease-out}.chronicle-new-posts .icon{width:16px;height:16px;transform:rotate(-90deg)}@keyframes new-posts-in{0%{opacity:0;transform:translate(-50%,-8px)}}.pulse-highlight{animation:pulse-scale .5s ease}@keyframes pulse-scale{0%{transform:scale(1)}50%{transform:scale(1.3);color:var(--color-warning)}to{transform:scale(1)}}.empty-hint{color:var(--color-text-muted);font-size:var(--font-size-sm);font-style:italic;text-align:center;padding:var(--space-lg)}.gallery-section{flex-shrink:0;min-width:0}.gallery-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);min-height:28px}.gallery-title{min-width:0;display:flex;align-items:baseline;gap:.4rem;font-family:var(--font-display);font-size:var(--font-size-base);font-weight:600;letter-spacing:.05em;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-count{font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:500;letter-spacing:0;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.gallery-count.warning{color:var(--color-warning)}.gallery-ready-badge{flex:none;font-size:.625rem;font-weight:600;white-space:nowrap;color:var(--color-accent-hover);background:var(--color-accent-subtle);border:1px solid rgba(var(--accent-rgb),.3);border-radius:var(--radius-full);padding:.15rem .5rem;animation:gallery-ready-pulse 2.4s ease-in-out infinite}.gallery-ready-badge.hidden{display:none}@keyframes gallery-ready-pulse{0%,to{opacity:1}50%{opacity:.65}}.gallery-import-btn{margin-left:auto;flex:none;display:inline-flex;align-items:center;justify-content:center;width:36px;min-height:32px;padding:0;border:none;border-radius:var(--radius-full);background:none;color:var(--color-text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent}.gallery-import-btn .icon{width:19px;height:19px}@media (max-width: 359px){.gallery-header{gap:0}.gallery-title{letter-spacing:.02em;font-size:.875rem}.gallery-import-btn{width:28px}.gallery-select-btn{padding:0 .3rem}.gallery-all-btn{padding-left:.3rem}}.gallery-import-btn~.gallery-select-btn,.gallery-import-btn~.gallery-all-btn{margin-left:0}.gallery-select-btn{margin-left:auto;flex:none;min-height:32px;padding:0 .5rem;border:none;border-radius:var(--radius-full);background:none;color:var(--color-text-secondary);font-family:inherit;font-size:var(--font-size-sm);font-weight:600;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent}.gallery-select-btn.active{color:var(--color-accent);background:var(--color-accent-subtle)}.gallery-select-btn.hidden{display:none}.gallery-select-btn:not(.hidden)+.gallery-all-btn,.sheet-header .gallery-select-btn:not(.hidden)~.sheet-close{margin-left:0}.gallery-all-btn{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:.1rem;min-height:32px;padding:0 .25rem 0 .5rem;border:none;background:none;color:var(--color-accent);font-family:inherit;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.gallery-all-btn .icon{width:16px;height:16px}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-sm)}.gallery-strip{display:flex;gap:var(--space-sm);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scrollbar-width:none;overscroll-behavior-x:contain;padding:2px 0}.gallery-strip::-webkit-scrollbar{display:none}.gallery-strip .gallery-item{flex:none;width:var(--roll-thumb-width);scroll-snap-align:start}.gallery-strip .empty-hint{flex:1;display:flex;align-items:center;justify-content:center;height:calc(var(--roll-thumb-width) * 4 / 3);margin:0;padding:0 var(--space-md);border:1px dashed var(--color-border-gold);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center}.sheet-count{flex:none}.gallery-item{aspect-ratio:3/4;background:var(--color-surface);border-radius:var(--radius-md);overflow:hidden;position:relative;cursor:pointer;border:1px solid var(--glass-border);transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast)}.gallery-item:active{transform:scale(.97)}.gallery-item:hover,.gallery-item:focus{border-color:rgba(var(--accent-rgb),.3);box-shadow:0 4px 20px #0000004d,0 0 15px rgba(var(--accent-rgb),.15)}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:filter var(--transition-fast)}.gallery-item{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.gallery-item img{-webkit-user-drag:none}.gallery-item-pick{position:absolute;top:var(--space-xs);left:var(--space-xs);width:1.5rem;height:1.5rem;display:none;place-items:center;border-radius:50%;border:2px solid rgba(255,255,255,.85);background:#00000059;color:var(--color-on-accent);font-size:var(--font-size-xs);font-weight:700;font-variant-numeric:tabular-nums;box-shadow:0 1px 4px #00000080}.selecting .gallery-item-pick{display:grid}.selecting .gallery-item:not(.picked) img{filter:brightness(.7) saturate(.8)}.selecting .gallery-item[data-status=revealing]{opacity:.4}.selecting .gallery-item[data-status=revealing] .gallery-item-pick{display:none}.gallery-item.picked{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent),0 0 16px rgba(var(--accent-rgb),.3);transform:scale(.95)}.gallery-item.picked .gallery-item-pick{background:var(--color-accent);border-color:var(--color-accent);animation:pick-pop .25s cubic-bezier(.3,1.6,.5,1)}.gallery-item.just-captured{animation:gallery-item-pop .6s ease-out;border-color:var(--color-accent)}@keyframes gallery-item-pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}.gallery-item-status{position:absolute;top:var(--space-xs);right:var(--space-xs);display:flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;border-radius:50%;background:#000000bf;font-size:var(--font-size-xs);font-weight:700}.gallery-item-status.error{color:var(--color-error);border:1px solid var(--color-error)}.gallery-spinner{width:.8rem;height:.8rem;border:2px solid var(--color-text-muted);border-top-color:var(--color-accent);border-radius:50%;animation:gallery-spin .8s linear infinite}@keyframes gallery-spin{to{transform:rotate(360deg)}}.gallery-section.shake{animation:gallery-shake .5s ease-in-out}@keyframes gallery-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.gallery-grid .empty-hint{grid-column:1 / -1}.guild-tabs{margin:0 var(--space-lg) var(--space-sm)}.guild-requests-badge{margin-left:.35rem;min-width:1.1rem;padding:0 .3rem;border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-on-accent);font-size:var(--font-size-xs);font-weight:700;line-height:1.1rem;display:inline-block}.guild-requests-badge.hidden{display:none}.guild-content{flex:1;min-height:0;display:flex;flex-direction:column}.guild-panel{padding-left:var(--space-lg);padding-right:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.guild-panel>*{flex-shrink:0}.guild-panel .btn,.guild-sheet .btn,.push-prompt .btn{min-height:44px;border-radius:var(--radius-full)}.guild-panel>.profile-section-title{margin:var(--space-sm) 0 0}.guild-loading,.guild-empty-text{color:var(--color-text-muted);font-size:var(--font-size-base);text-align:center;padding:var(--space-lg) 0}.guild-empty{padding:var(--space-2xl) var(--space-lg);text-align:center;color:var(--color-text-secondary)}.guild-tag{color:var(--color-accent);font-weight:700;letter-spacing:.02em;white-space:nowrap}.guild-emblem{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:var(--radius-md);color:var(--element-color);background:color-mix(in srgb,var(--element-color) 14%,var(--color-surface-2));border:1px solid color-mix(in srgb,var(--element-color) 35%,transparent)}.guild-emblem-sm{width:36px;height:36px}.guild-emblem-sm .icon{width:20px;height:20px}.guild-emblem-lg{width:56px;height:56px;border-radius:var(--radius-lg)}.guild-emblem-lg .icon{width:30px;height:30px}.guild-intro{background:linear-gradient(160deg,rgba(var(--accent-rgb),.1),var(--color-surface) 55%);border:1px solid var(--color-border-gold);border-radius:var(--radius-xl);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.guild-intro-title{margin:0;font-family:var(--font-display);font-size:var(--font-size-xl);color:var(--color-accent);-webkit-hyphens:manual;hyphens:manual}.guild-intro-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm);color:var(--color-text-secondary);font-size:var(--font-size-base)}.guild-intro-list li{display:flex;gap:var(--space-sm);align-items:flex-start}.guild-intro-list .icon{width:18px;height:18px;flex-shrink:0;margin-top:1px;color:var(--color-accent)}.guild-intro-hint{margin:0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.guild-search-input{width:100%;min-height:44px;padding:0 var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border-light);background:var(--color-surface);color:var(--color-text-primary);font:inherit;font-size:var(--font-size-base)}.guild-list{display:flex;flex-direction:column;gap:var(--space-sm)}.leaderboard-list .guild-list{padding:0 var(--space-lg)}.guild-row{display:flex;align-items:center;gap:var(--space-sm);min-width:0;padding:.625rem var(--space-md);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer}.guild-row.rank-1{--medal: var(--color-gold)}.guild-row.rank-2{--medal: var(--color-silver)}.guild-row.rank-3{--medal: var(--color-bronze)}.guild-row.rank-1,.guild-row.rank-2,.guild-row.rank-3{border-color:color-mix(in srgb,var(--medal) 40%,transparent);background:linear-gradient(100deg,color-mix(in srgb,var(--medal) 10%,var(--color-surface)),var(--color-surface) 60%)}.guild-row.current-player{border-color:rgba(var(--accent-rgb),.6);box-shadow:inset 3px 0 0 var(--color-accent)}.guild-row-rank{flex-shrink:0;min-width:1.75rem;font-weight:700;font-size:var(--font-size-sm);color:var(--medal, var(--color-text-muted))}.guild-row-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.guild-row-name{font-weight:600;font-size:var(--font-size-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-hyphens:none;hyphens:none}.guild-row-meta{display:flex;align-items:center;gap:.25rem;font-size:var(--font-size-xs);color:var(--color-text-muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.guild-row-meta .icon{width:12px;height:12px}.guild-join-btn{flex-shrink:0;max-width:45%;min-height:34px;padding:0 var(--space-md);border-radius:var(--radius-full);border:1px solid var(--color-accent);background:var(--color-accent);color:var(--color-on-accent);font:inherit;font-size:var(--font-size-sm);font-weight:700;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guild-join-btn.requested{background:none;color:var(--color-accent)}.guild-full{flex-shrink:0;font-size:var(--font-size-xs);color:var(--color-text-muted)}.guild-hero{background:linear-gradient(160deg,rgba(var(--accent-rgb),.12),var(--color-surface) 60%);border:1px solid var(--color-border-gold);border-radius:var(--radius-xl);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm)}.guild-hero-top{display:flex;align-items:center;gap:var(--space-md);min-width:0}.guild-hero-info{min-width:0}.guild-hero-fortress{margin:0;font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:600;color:var(--color-accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-hyphens:none;hyphens:none}.guild-hero-meta{margin:2px 0 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.guild-progress{height:8px;border-radius:var(--radius-full);background:var(--color-surface-3);overflow:hidden;margin-top:var(--space-xs)}.guild-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-hover));box-shadow:0 0 10px var(--color-accent-glow);transition:width .6s ease}.guild-progress-label{margin:0;font-size:var(--font-size-xs);color:var(--color-text-muted)}.guild-perks{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-md)}.guild-perk{display:inline-flex;align-items:center;gap:.3rem;font-size:var(--font-size-sm);color:var(--color-text-primary)}.guild-perk .icon{width:14px;height:14px;color:var(--color-accent)}.guild-hero .btn-primary,.guild-panel>.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm)}.guild-hero .btn-primary .icon,.guild-panel>.btn-primary .icon{width:18px;height:18px}.guild-info-desc{margin:0;font-size:var(--font-size-base);color:var(--color-text-secondary);font-style:italic;overflow-wrap:anywhere}.guild-member-list{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.guild-member,.guild-request{display:flex;align-items:center;gap:var(--space-sm);min-width:0;min-height:48px;padding:0 var(--space-md);background:var(--color-surface);cursor:pointer}.guild-member+.guild-member{border-top:1px solid var(--color-border)}.guild-member.is-me{background:color-mix(in srgb,var(--color-accent) 6%,var(--color-surface))}.guild-member-name{flex:1;min-width:0;font-weight:600;font-size:var(--font-size-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-hyphens:none;hyphens:none}.guild-member-meta{flex-shrink:0;display:inline-flex;align-items:center;gap:.2rem;font-size:var(--font-size-xs);color:var(--color-text-muted)}.guild-member-meta .icon{width:12px;height:12px;color:var(--color-accent)}.guild-role{flex-shrink:0;padding:.1rem .4rem;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:700;border:1px solid var(--color-border-gold);color:var(--color-accent)}.guild-role-leader{background:var(--color-accent);color:var(--color-on-accent)}.guild-requests{display:flex;flex-direction:column;gap:var(--space-xs)}.guild-request{border-radius:var(--radius-md);border:1px solid var(--color-border-gold);cursor:default}.guild-request-btn{flex-shrink:0;min-height:34px;min-width:34px;padding:0 var(--space-sm);border-radius:var(--radius-full);border:1px solid var(--color-border-light);background:none;color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-sm);font-weight:600;cursor:pointer}.guild-request-btn.accept{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.guild-request-btn .icon{width:14px;height:14px}.guild-leave-btn{align-self:center;display:inline-flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-md);min-height:44px;padding:0 var(--space-lg);border:none;background:none;color:var(--color-error);font:inherit;font-size:var(--font-size-sm);cursor:pointer}.guild-leave-btn .icon{width:16px;height:16px}.guild-chat{flex:1;min-height:0;display:flex;flex-direction:column;padding-bottom:calc(var(--nav-height) + var(--safe-area-bottom))}.guild-chat-messages{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;padding:var(--space-sm) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm)}.guild-msg{align-self:flex-start;max-width:82%;padding:.5rem .75rem;border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) var(--radius-xs);background:var(--color-surface-2);display:flex;flex-direction:column;gap:2px}.guild-msg.mine{align-self:flex-end;border-radius:var(--radius-lg) var(--radius-lg) var(--radius-xs) var(--radius-lg);background:color-mix(in srgb,var(--color-accent) 24%,var(--color-surface))}.guild-msg.system{align-self:center;max-width:100%;background:none;padding:.125rem var(--space-sm);font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center}.guild-msg-author{align-self:flex-start;padding:0;border:none;background:none;color:var(--color-accent);font:inherit;font-size:var(--font-size-xs);font-weight:700;cursor:pointer}.guild-msg-text{margin:0;font-size:var(--font-size-base);line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.guild-msg-time{font-size:.625rem;color:var(--color-text-muted)}.guild-msg-foot{align-self:stretch;display:flex;align-items:center;justify-content:flex-end;gap:.25rem;margin-right:-.35rem;margin-bottom:-.25rem}.guild-msg-more{position:relative;width:1.5rem;height:1.125rem;padding:0;border:none;border-radius:var(--radius-full);background:none;color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent}.guild-msg-more:after{content:"";position:absolute;top:-12px;right:-8px;bottom:-12px;left:-8px}.guild-msg-more .icon{width:1rem;height:1rem}.guild-msg-more:hover,.guild-msg-more:focus-visible{color:var(--color-text-primary)}@media (pointer: coarse){.guild-msg{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}}.guild-msg-quote{margin:0 0 var(--space-md);padding:var(--space-sm) var(--space-md);border-left:2px solid rgba(var(--accent-rgb),.5);border-radius:var(--radius-sm);background:var(--color-surface-2);display:flex;flex-direction:column;gap:2px}.guild-msg-quote-author{font-size:var(--font-size-xs);font-weight:700;color:var(--color-accent)}.guild-msg-quote p{margin:0;max-height:7.5em;overflow:hidden;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--color-text-secondary)}.nav-badge-dot{position:absolute;top:.3rem;left:calc(50% + 7px);width:8px;height:8px;border-radius:var(--radius-full);background:var(--color-accent);box-shadow:0 0 0 2px var(--color-bg-primary),0 0 8px rgba(var(--accent-rgb),.7);pointer-events:none}.guild-chat-dot{display:inline-block;width:6px;height:6px;margin-left:.35rem;border-radius:var(--radius-full);background:var(--color-accent);vertical-align:middle}.guild-chat-composer{display:flex;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-top:1px solid var(--color-border);background:var(--color-bg-primary)}.guild-chat-input{flex:1;min-width:0;min-height:44px;padding:0 var(--space-md);border-radius:var(--radius-full);border:1px solid var(--color-border-light);background:var(--color-surface);color:var(--color-text-primary);font:inherit;font-size:1rem}.guild-chat-send{flex-shrink:0;width:44px;height:44px;border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-on-accent)}.guild-hall-hint{margin:calc(-1 * var(--space-xs)) 0 0;font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center}.guild-hall-list{padding:0}.guild-like-btn .icon{width:16px;height:16px}.guild-post-delete{width:32px;height:32px}.guild-form{display:flex;flex-direction:column;gap:var(--space-md)}.guild-field{display:flex;flex-direction:column;gap:var(--space-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.guild-field input,.guild-field textarea{min-height:44px;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border-light);background:var(--color-surface);color:var(--color-text-primary);font:inherit;font-size:1rem;resize:vertical}.guild-field small{font-size:var(--font-size-xs);color:var(--color-text-muted)}.guild-tag-input{text-transform:uppercase;letter-spacing:.1em}.guild-form-error{margin:0;color:var(--color-error);font-size:var(--font-size-sm)}.guild-emblem-picker,.guild-element-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-sm)}.guild-emblem-option,.guild-element-option{min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--element-color);font:inherit;font-size:var(--font-size-xs);cursor:pointer}.guild-element-option span{color:var(--color-text-secondary)}.guild-emblem-option .icon,.guild-element-option .icon{width:22px;height:22px}.guild-emblem-option.selected,.guild-element-option.selected{border-color:var(--element-color);background:color-mix(in srgb,var(--element-color) 16%,var(--color-surface))}.guild-element-option:disabled{opacity:.35;cursor:not-allowed}.guild-contribute-hint,.invite-intro{margin:0 0 var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.guild-quick-amounts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-sm);margin:var(--space-sm) 0 var(--space-md)}.guild-quick-amounts button{min-height:36px;border-radius:var(--radius-full);border:1px solid var(--color-border-gold);background:none;color:var(--color-accent);font:inherit;font-size:var(--font-size-sm);font-weight:600;cursor:pointer}.guild-contribute-submit,.guild-share-submit,.guild-sheet-join{width:100%}.guild-info-head{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);min-width:0}.guild-info-head>div{min-width:0}.guild-info-name{margin:0;font-weight:700;font-size:var(--font-size-lg);overflow-wrap:anywhere;-webkit-hyphens:none;hyphens:none}.guild-info-meta{margin:2px 0 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.guild-sheet .guild-member-list{margin-bottom:var(--space-md)}.guild-sheet .profile-section-title{margin-top:var(--space-md)}.guild-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.guild-action.danger{color:var(--color-error)}.guild-share-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-xs);margin-bottom:var(--space-md);max-height:45vh;overflow-y:auto}.guild-share-item{position:relative;aspect-ratio:1;padding:0;border:2px solid transparent;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface-2);cursor:pointer}.guild-share-item img{width:100%;height:100%;object-fit:cover;display:block}.guild-share-item.selected{border-color:var(--color-accent);box-shadow:0 0 12px var(--color-accent-glow)}.guild-share-rarity{position:absolute;right:4px;bottom:4px;padding:0 .3rem;border-radius:var(--radius-sm);background:#05060dbf;font-size:var(--font-size-xs);font-weight:700}.profile-guild-chip{display:inline-flex;align-items:center;gap:.3rem;max-width:100%;margin-top:var(--space-xs);padding:.2rem .6rem;border-radius:var(--radius-full);border:1px solid var(--color-border-gold);background:rgba(var(--accent-rgb),.08);color:var(--color-text-primary);font:inherit;font-size:var(--font-size-sm);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}.profile-guild-chip:disabled{cursor:default}.settings-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-sm)}.settings-row-wide{width:100%;min-height:56px;text-align:left}.settings-row-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.settings-row-title{font-weight:600}.settings-row-desc{font-size:var(--font-size-xs);color:var(--color-text-muted)}.switch{position:relative;flex-shrink:0;width:46px;height:28px}.switch input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}.switch input:disabled{cursor:not-allowed}.switch-track{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-full);background:var(--color-surface-3);transition:background var(--transition-fast)}.switch-track:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--color-text-secondary);transition:transform var(--transition-fast),background var(--transition-fast)}.switch input:checked+.switch-track{background:rgba(var(--accent-rgb),.45)}.switch input:checked+.switch-track:after{transform:translate(18px);background:var(--color-accent)}.switch input:disabled+.switch-track{opacity:.4}.switch input:focus-visible+.switch-track{outline:2px solid var(--color-accent);outline-offset:2px}.invite-list{display:flex;flex-direction:column;gap:var(--space-sm)}.invite-row{display:flex;align-items:center;gap:var(--space-sm);min-height:52px;padding:0 var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border-gold);background:var(--color-surface)}.invite-row.used{border-color:var(--color-border);opacity:.6}.invite-code{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:700;letter-spacing:.06em;color:var(--color-accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite-used{flex-shrink:0;max-width:50%;font-size:var(--font-size-xs);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite-share-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:.3rem;min-height:36px;padding:0 var(--space-md);border-radius:var(--radius-full);border:none;background:var(--color-accent);color:var(--color-on-accent);font:inherit;font-size:var(--font-size-sm);font-weight:700;cursor:pointer}.invite-share-btn .icon{width:14px;height:14px}.push-prompt{display:flex;flex-direction:column;gap:var(--space-md);text-align:center}.push-prompt p{margin:0;color:var(--color-text-secondary)}.push-prompt-icon{align-self:center;width:56px;height:56px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(var(--accent-rgb),.12);color:var(--color-accent)}.push-prompt-icon .icon{width:28px;height:28px}.push-prompt-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm);text-align:left;font-size:var(--font-size-base)}.push-prompt-list li{display:flex;align-items:center;gap:var(--space-sm)}.push-prompt-list .icon{width:18px;height:18px;flex-shrink:0;color:var(--color-accent)}@media (max-width: 380px){.nav-btn{font-size:.625rem}}.fortress-art{display:block;width:100%;height:auto;aspect-ratio:16 / 10}.fa-window{animation:fa-flicker 3.2s ease-in-out infinite}.fa-flame{transform-box:fill-box;transform-origin:50% 100%;animation:fa-flame .9s ease-in-out infinite alternate}.fa-flame-inner{animation-duration:.6s}.fa-glow{animation:fa-glow 2.4s ease-in-out infinite}.fa-glow-strong{animation:fa-glow-strong 1.6s ease-in-out infinite}.fa-flag{transform-box:fill-box;transform-origin:0% 50%;animation:fa-flag 2.2s ease-in-out infinite}.fa-twinkle{animation:fa-twinkle 3s ease-in-out infinite}.fa-float{animation:fa-float 4s ease-in-out infinite}.fa-float-slow{animation:fa-float 6s ease-in-out infinite}.fa-spin{animation:fa-spin 18s linear infinite}.fa-spin-slow{animation:fa-spin 40s linear infinite}.fa-fall{stroke-dasharray:6 4;animation:fa-fall .8s linear infinite}@keyframes fa-flicker{0%,to{opacity:1}45%{opacity:.75}55%{opacity:.95}}@keyframes fa-flame{0%{transform:scaleY(.88) scaleX(1.05)}to{transform:scaleY(1.08) scaleX(.95)}}@keyframes fa-glow{0%,to{opacity:.18}50%{opacity:.32}}@keyframes fa-glow-strong{0%,to{opacity:.8}50%{opacity:1}}@keyframes fa-flag{0%,to{transform:skewY(0)}50%{transform:skewY(-6deg) scaleX(.92)}}@keyframes fa-twinkle{0%,to{opacity:.25}50%{opacity:.85}}@keyframes fa-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes fa-spin{to{transform:rotate(360deg)}}@keyframes fa-fall{to{stroke-dashoffset:-10}}.guild-crest{position:relative;display:inline-flex;flex-shrink:0;align-items:center;justify-content:center}.guild-crest>svg{width:100%;height:100%;overflow:visible}.guild-crest svg .icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.guild-crest-sm{width:40px;height:40px}.guild-crest-md{width:64px;height:64px}.guild-crest-lg{width:88px;height:88px}.guild-crest-level{position:absolute;bottom:-2px;left:50%;transform:translate(-50%);min-width:18px;padding:0 5px;border-radius:var(--radius-full);background:var(--color-bg-primary);border:1px solid var(--color-border-gold);color:var(--color-accent);font-size:10px;font-weight:800;line-height:15px;text-align:center}.guild-crest-sm .guild-crest-level{font-size:9px;line-height:13px;min-width:15px;bottom:-4px}.guild-crest-tier-4>svg{filter:drop-shadow(0 0 8px var(--crest-color))}.gc-glow{animation:fa-glow 2.4s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.fa-window,.fa-flame,.fa-glow,.fa-glow-strong,.fa-flag,.fa-twinkle,.fa-float,.fa-float-slow,.fa-spin,.fa-spin-slow,.fa-fall,.gc-glow{animation:none}}.guild-art-banner{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border-gold);line-height:0}.guild-hero-art{margin:calc(-1 * var(--space-lg)) calc(-1 * var(--space-lg)) 0;border:none;border-bottom:1px solid var(--color-border-gold);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.guild-hero .guild-hero-top{margin-top:-34px;position:relative;align-items:flex-end}.guild-hero .guild-hero-info{padding-bottom:6px}.guild-sheet .guild-art-banner{margin-bottom:var(--space-md)}.guild-info-head .guild-crest{margin-top:-40px}.fortress-levelup{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:var(--space-lg)}.fl-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#05060dd9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .3s ease}.fl-card{position:relative;width:min(100%,380px);padding:var(--space-lg);border-radius:var(--radius-xl);background:linear-gradient(170deg,var(--color-surface-2),var(--color-surface));border:1px solid var(--color-border-gold);box-shadow:0 30px 80px #0009,0 0 60px rgba(var(--accent-rgb),.2);text-align:center;transform:translateY(24px) scale(.92);opacity:0;transition:transform .45s cubic-bezier(.2,1.4,.4,1),opacity .3s ease;overflow:hidden}.fortress-levelup.open .fl-backdrop{opacity:1}.fortress-levelup.open .fl-card{transform:none;opacity:1}.fortress-levelup.closing .fl-backdrop,.fortress-levelup.closing .fl-card{opacity:0;transition-duration:.2s}.fl-eyebrow{margin:0 0 var(--space-sm);color:var(--color-accent);font-size:var(--font-size-xs);font-weight:800;letter-spacing:.2em;text-transform:uppercase}.fl-art{border-radius:var(--radius-lg);overflow:hidden;line-height:0;border:1px solid var(--color-border-gold);animation:fl-art-in .9s ease both;animation-delay:.15s}.fl-crest{margin-top:-46px;position:relative;animation:fl-crest-in .7s cubic-bezier(.2,1.6,.4,1) both;animation-delay:.55s}.fl-title{margin:var(--space-sm) 0 0;font-family:var(--font-display);font-size:var(--font-size-2xl);color:var(--color-accent);text-shadow:0 0 24px rgba(var(--accent-rgb),.45);-webkit-hyphens:none;hyphens:none}.fl-sub{margin:var(--space-xs) 0 var(--space-md);color:var(--color-text-secondary);font-size:var(--font-size-base)}.fl-perks{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);margin-bottom:var(--space-lg)}.fl-perks span{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;border-radius:var(--radius-full);background:rgba(var(--accent-rgb),.1);border:1px solid var(--color-border-gold);font-size:var(--font-size-sm);font-weight:600}.fl-perks .icon{width:14px;height:14px;color:var(--color-accent)}.fl-close{width:100%;min-height:48px;border-radius:var(--radius-full)}.fl-spark{position:absolute;top:-10px;left:var(--x);width:6px;height:6px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c);opacity:0;animation:fl-spark 2.2s ease-out infinite;animation-delay:calc(var(--i) * .16s + .4s)}@keyframes fl-art-in{0%{opacity:0;transform:scale(1.12);filter:brightness(2) blur(4px)}to{opacity:1;transform:none;filter:none}}@keyframes fl-crest-in{0%{opacity:0;transform:scale(.3) rotate(-20deg)}to{opacity:1;transform:none}}@keyframes fl-spark{0%{opacity:0;transform:translateY(0) scale(.6)}15%{opacity:1}to{opacity:0;transform:translateY(420px) scale(1)}}@media (prefers-reduced-motion: reduce){.fl-card{transition:opacity .2s ease;transform:none}.fl-art,.fl-crest{animation:none}.fl-spark{display:none}}.install-prompt-icon{align-self:center;width:64px;height:64px;border-radius:16px}.install-steps{margin:0;padding-left:1.4em;display:flex;flex-direction:column;gap:var(--space-sm);text-align:left}.install-steps .icon{display:inline-block;width:1.1em;height:1.1em;vertical-align:-.2em;color:var(--color-accent)}.install-steps b{-webkit-hyphens:none;hyphens:none;white-space:nowrap;color:var(--color-text-primary)}.install-prompt .install-hint{font-size:var(--font-size-sm);line-height:1.4}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cinzel-latin-600-normal-Dd5YO2UX.woff2) format("woff2"),url(/assets/cinzel-latin-600-normal-CH_LB4su.woff) format("woff")}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cinzel-latin-700-normal-Dkw14w9r.woff2) format("woff2"),url(/assets/cinzel-latin-700-normal-C-gK7hA8.woff) format("woff")}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
