:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0d17;--bg-glow:radial-gradient(1200px 600px at 80% -10%, #8b7cff1f, transparent 60%), radial-gradient(900px 500px at -10% 10%, #f5b94214, transparent 60%);--surface:#141829;--surface-2:#1b2038;--surface-3:#242a47;--border:#ffffff14;--border-strong:#ffffff29;--text:#eef0fa;--muted:#9aa2c0;--gold:#f5b942;--gold-2:#ffd978;--gold-text:#f7c35c;--gold-ink:#211604;--gold-soft:#f5b94224;--violet:#8b7cff;--success:#3ecf8e;--danger:#ff6b6b;--danger-soft:#ff6b6b1f;--warn:#ffb347;--track:#ffffff14;--shadow:0 10px 30px #00000059;--shadow-gold:0 8px 24px #f5b94240}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f1e7;--bg-glow:radial-gradient(1200px 600px at 80% -10%, #8b7cff1a, transparent 60%), radial-gradient(900px 500px at -10% 10%, #f5b94229, transparent 60%);--surface:#fff;--surface-2:#f8f3ea;--surface-3:#efe6d6;--border:#3c2d0f1a;--border-strong:#3c2d0f33;--text:#1d1a26;--muted:#676277;--gold:#f0ad2c;--gold-2:#ffd36b;--gold-text:#8f6000;--gold-ink:#241802;--gold-soft:#f0ad2c29;--violet:#6b5cf0;--success:#1c9e66;--danger:#d9443f;--danger-soft:#d9443f1a;--warn:#b86e00;--track:#3c2d0f1a;--shadow:0 10px 30px #3c2d0f1a;--shadow-gold:0 8px 24px #f0ad2c4d}:root{--radius:18px;--radius-sm:12px;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--font-display:ui-rounded, "SF Pro Rounded", "Nunito", var(--font);--sidebar-w:264px;--tabbar-h:64px;--safe-bottom:env(safe-area-inset-bottom,0px)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{min-height:100dvh;font-family:var(--font);color:var(--text);background:var(--bg-glow), var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background-attachment:fixed;margin:0;font-size:16px;line-height:1.5}body.modal-open{overflow:hidden}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0;line-height:1.2}h1{font-size:clamp(1.6rem,4vw,2.1rem);font-weight:800}h2{font-size:1.2rem;font-weight:750}h3{font-size:1.05rem}p{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:6px}ul,ol{margin:0;padding:0;list-style:none}fieldset{border:0;min-width:0;margin:0;padding:0}.skip-link{z-index:100;background:var(--gold);color:var(--gold-ink);border-radius:10px;padding:10px 14px;font-weight:700;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}.gold{color:var(--gold-text)}.danger-text{color:var(--danger)}.muted{color:var(--muted)}.small{font-size:.875rem}.tiny{font-size:.75rem}.center{text-align:center;justify-content:center}.pad{padding:16px}.row{align-items:center;display:flex}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.gap-xs{gap:4px}.gap-s{gap:10px}.gap-m{gap:16px}.stack{flex-direction:column;display:flex}.stack.center{align-items:center}.grow{flex:1;min-width:0}.capitalize:first-letter{text-transform:uppercase}.dim{opacity:.25}.inline-icon{vertical-align:-2px}.flame{color:var(--warn)}.link{color:var(--gold-text);align-items:center;gap:4px;font-size:.9rem;font-weight:600;display:inline-flex}.link:hover,.link-plain:hover{text-decoration:underline}.grid-2{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=720px){.grid-2{grid-template-columns:1fr 1fr}}.btn{white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 18px;font-size:.95rem;font-weight:700;line-height:1.2;transition:transform .12s,background-color .15s,box-shadow .15s,border-color .15s;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)scale(.98)}.btn-primary{background:linear-gradient(135deg, var(--gold-2), var(--gold));color:var(--gold-ink);box-shadow:var(--shadow-gold)}.btn-primary:hover:not(:disabled){filter:brightness(1.05)}.btn-secondary{background:var(--surface-3);border-color:var(--border)}.btn-secondary:hover:not(:disabled),.btn-ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.btn-ghost{border-color:var(--border);background:0 0}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(1.08)}.btn.danger{color:var(--danger)}.btn-sm{min-height:36px;padding:6px 14px;font-size:.875rem}.btn-lg{min-height:52px;padding:14px 26px;font-size:1.05rem}.icon-btn{width:40px;height:40px;color:var(--muted);background:0 0;border:0;border-radius:12px;place-items:center;transition:background-color .15s,color .15s;display:inline-grid}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn.subtle{opacity:.6;width:34px;height:34px}.icon-btn.subtle:hover{opacity:1;color:var(--danger)}.form{flex-direction:column;gap:18px;display:flex}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label,.field>legend{margin-bottom:2px;font-size:.9rem;font-weight:650}.field-message{color:var(--muted);font-size:.82rem}.field-message.error,.form-error{color:var(--danger);font-size:.85rem;font-weight:600}input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);width:100%;min-height:46px;padding:10px 14px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft);outline:none}input[aria-invalid=true]{border-color:var(--danger)}input[type=date]{min-width:0}select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 20px),calc(100% - 15px);background-repeat:no-repeat;background-size:5px 5px;padding-right:36px}.amount-input{position:relative}.amount-input input{font-variant-numeric:tabular-nums;font-weight:750;padding-right:56px!important;font-size:1.35rem!important}.amount-suffix{color:var(--muted);pointer-events:none;font-weight:700;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;flex-wrap:wrap;gap:4px;padding:4px;display:flex}.segmented button{min-height:38px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:999px;flex:1;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-size:.9rem;font-weight:650;display:inline-flex}.segmented button.active{background:var(--surface-3);color:var(--text);box-shadow:0 1px 4px #0003}[data-theme=light] .segmented button.active{background:#fff}.segmented button.active.danger{color:var(--danger)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--border-strong);background:var(--surface-2);border-radius:999px;padding:7px 14px;font-size:.875rem;font-weight:600;transition:border-color .15s,background-color .15s}.chip:hover,.chip.selected{border-color:var(--gold);background:var(--gold-soft)}.toggle{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;align-items:flex-start;gap:12px;padding:14px;display:flex}.toggle input{width:20px;height:20px;accent-color:var(--gold);flex:none;margin-top:2px}.toggle span{flex-direction:column;display:flex}.emoji-grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px;display:grid}.emoji-choice{aspect-ratio:1;border:1px solid var(--border);background:var(--surface-2);border-radius:12px;font-size:1.35rem;transition:transform .12s,border-color .15s}.emoji-choice:hover{transform:scale(1.06)}.emoji-choice.selected{border-color:var(--gold);background:var(--gold-soft);box-shadow:0 0 0 2px var(--gold-soft)}.color-grid{flex-wrap:wrap;gap:10px;display:flex}.color-choice{border:3px solid #0000;border-radius:50%;width:36px;height:36px;transition:transform .12s;box-shadow:inset 0 0 0 2px #00000026}.color-choice:hover{transform:scale(1.1)}.color-choice.selected{border-color:var(--text)}.vault-preview{border-radius:var(--radius-sm);background:linear-gradient(135deg, color-mix(in srgb, var(--vault-color) 22%, transparent), transparent);border:1px solid color-mix(in srgb, var(--vault-color) 40%, transparent);align-items:center;gap:12px;padding:14px;display:flex}.vault-preview-name{text-overflow:ellipsis;white-space:nowrap;font-size:1.1rem;font-weight:750;overflow:hidden}.app{min-height:100vh}.logo{align-items:center;gap:10px;display:inline-flex}.logo-text{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.2rem;font-weight:850}.topbar{z-index:20;padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top,0px));background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.main{padding:20px 16px calc(var(--tabbar-h) + 96px + var(--safe-bottom));outline:none}.sidebar{display:none}.tabbar{z-index:30;height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--surface);border-top:1px solid var(--border);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.7rem;font-weight:650;transition:color .15s;display:flex}.tabbar a.active{color:var(--gold-text)}.fab{right:18px;bottom:calc(var(--tabbar-h) + 18px + var(--safe-bottom));z-index:25;background:linear-gradient(135deg, var(--gold-2), var(--gold));width:58px;height:58px;color:var(--gold-ink);box-shadow:var(--shadow-gold), var(--shadow);border:0;border-radius:50%;place-items:center;transition:transform .15s;display:grid;position:fixed}.fab:active{transform:scale(.94)}.level-chip{background:var(--gold-soft);color:var(--gold-text);border-radius:999px;align-items:center;padding:3px 10px;font-size:.8rem;font-weight:800;display:inline-flex}.level-chip.small{margin-left:6px;padding:1px 8px;font-size:.72rem}.streak-chip{background:var(--surface-2);border:1px solid var(--border);color:var(--muted);border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:.85rem;font-weight:800;display:inline-flex}.streak-chip.lit{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 40%, transparent)}.banner{border-radius:var(--radius-sm);margin-bottom:16px;padding:12px 16px;font-weight:600}.banner-error{background:var(--danger-soft);color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 40%, transparent)}@media (width>=960px){.topbar,.tabbar,.fab{display:none}.sidebar{width:var(--sidebar-w);background:color-mix(in srgb, var(--surface) 70%, transparent);border-right:1px solid var(--border);flex-direction:column;gap:18px;padding:24px 16px;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.sidebar-logo{padding:4px 8px}.sidebar-level{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);flex-direction:column;gap:8px;padding:14px;transition:border-color .15s;display:flex}.sidebar-level:hover{border-color:var(--border-strong)}.sidebar-title{font-size:.95rem;font-weight:750}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.sidebar-nav a{color:var(--muted);border-radius:12px;align-items:center;gap:12px;padding:11px 12px;font-weight:650;transition:background-color .15s,color .15s;display:flex}.sidebar-nav a:hover{background:var(--surface-2);color:var(--text)}.sidebar-nav a.active{background:var(--gold-soft);color:var(--gold-text)}.sidebar-cta{margin-top:auto}.main{margin-left:var(--sidebar-w);padding:36px 40px 64px}}.page{flex-direction:column;gap:20px;max-width:1080px;margin:0 auto;animation:.25s page-in;display:flex}.page.narrow{max-width:720px}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.eyebrow{color:var(--gold-text);text-transform:none;margin-bottom:4px;font-size:.85rem;font-weight:700}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card-title{align-items:center;gap:8px;margin-bottom:14px;font-size:1.05rem;display:flex}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.section-head h2{align-items:center;gap:8px;display:flex}.section-title{color:var(--muted);margin-bottom:12px;font-size:1rem;font-weight:700}.section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:4px 0 10px;font-size:.8rem}.back-link{color:var(--muted);align-items:center;gap:6px;width:fit-content;font-size:.9rem;font-weight:650;display:inline-flex}.back-link:hover{color:var(--text)}.tabs{scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.tabs button{border:1px solid var(--border);color:var(--muted);white-space:nowrap;background:0 0;border-radius:999px;align-items:center;gap:8px;padding:8px 16px;font-weight:650;display:inline-flex}.tabs button.active{background:var(--gold-soft);border-color:color-mix(in srgb, var(--gold) 50%, transparent);color:var(--gold-text)}.count{background:var(--surface-3);min-width:22px;height:22px;color:var(--text);border-radius:999px;place-items:center;padding:0 6px;font-size:.75rem;display:inline-grid}.empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:24px 12px;display:flex}.empty p{max-width:420px}.empty-emoji{filter:drop-shadow(0 6px 16px #00000040);font-size:3rem;line-height:1}.tag{background:var(--surface-3);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;width:fit-content;padding:2px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.tag-gold{background:var(--gold-soft);color:var(--gold-text)}.tag-warn{background:color-mix(in srgb, var(--warn) 16%, transparent);color:var(--warn)}.stat-row{flex-wrap:wrap;gap:12px 28px;display:flex}.stat-row>div{flex-direction:column;display:flex}.stat-row strong{font-variant-numeric:tabular-nums;align-items:center;gap:4px;font-size:1.1rem;display:inline-flex}.facts{flex-direction:column;display:flex}.facts li{border-bottom:1px dashed var(--border);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;display:flex}.facts li:last-child{border-bottom:0}.facts strong{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.danger-zone{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.danger-card{border-color:color-mix(in srgb, var(--danger) 30%, transparent)}.danger-card p,.section p.muted+.row,.card>p.muted{margin-bottom:12px}.ring{flex:none;place-items:center;display:inline-grid;position:relative}.ring svg{position:absolute;inset:0}.ring-value{filter:drop-shadow(0 0 6px color-mix(in srgb, var(--gold) 40%, transparent));transition:stroke-dashoffset .8s cubic-bezier(.2,.8,.2,1)}.ring-content{text-align:center;place-items:center;display:grid;position:relative}.ring-level{font-family:var(--font-display);flex-direction:column;align-items:center;font-size:1.8rem;font-weight:850;line-height:1;display:flex}.ring-level small{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;font-size:.7rem;font-weight:700}.ring-level.big{font-size:2.6rem}.bar{background:var(--track);border-radius:999px;height:10px;overflow:hidden}.bar-thin{height:6px}.bar-fill{border-radius:inherit;background:linear-gradient(90deg, var(--gold), var(--gold-2));min-width:0;height:100%;transition:width .8s cubic-bezier(.2,.8,.2,1)}.hero{background:radial-gradient(500px 220px at 0% 0%, var(--gold-soft), transparent 70%), var(--surface);grid-template-columns:1fr;gap:20px;display:grid}@media (width>=720px){.hero{grid-template-columns:1.2fr 1fr;align-items:center}.hero-streak{grid-column:1/-1}}@media (width>=1200px){.hero{grid-template-columns:1.3fr 1fr 1fr}.hero-streak{grid-column:auto}}.hero-treasure{flex-direction:column;display:flex}.hero-amount{font-family:var(--font-display);letter-spacing:-.03em;background:linear-gradient(135deg, var(--gold-2), var(--gold));color:#0000;font-variant-numeric:tabular-nums;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.2rem,7vw,3rem);font-weight:900;line-height:1.1}[data-theme=light] .hero-amount{background:linear-gradient(135deg,#c98a0b,#8f6000);-webkit-background-clip:text;background-clip:text}.hero-level{border-radius:var(--radius-sm);align-items:center;gap:16px;padding:10px;transition:background-color .15s;display:flex}.hero-level:hover{background:var(--surface-2)}.hero-level-text{flex-direction:column;display:flex}.hero-streak{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);color:var(--muted);align-items:center;gap:14px;padding:14px 16px;display:flex}.hero-streak>div{flex-direction:column;display:flex}.hero-streak strong{color:var(--text)}.hero-streak.lit{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 35%, transparent);background:color-mix(in srgb, var(--warn) 8%, var(--surface-2))}.hero-streak.lit svg{animation:2.4s ease-in-out infinite flicker}@keyframes flicker{0%,to{transform:scale(1)rotate(0)}50%{transform:scale(1.08)rotate(-3deg)}}.task-list{flex-direction:column;gap:10px;display:flex}.task{align-items:center;gap:14px;padding:14px 16px;display:flex}.task-emoji{flex:none;font-size:1.6rem}.task-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.task-title{font-weight:750}.task-title:hover{text-decoration:underline}.task .btn{flex:none}@media (width<=480px){.task{flex-wrap:wrap}.task .btn{width:100%}}.vault-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.vault-card{--vault-color:var(--gold);border-radius:var(--radius);background:radial-gradient(300px 120px at 100% 0%, color-mix(in srgb, var(--vault-color) 16%, transparent), transparent 70%), var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);flex-direction:column;gap:14px;padding:18px;transition:transform .15s,border-color .15s;display:flex}.vault-card:hover{border-color:color-mix(in srgb, var(--vault-color) 50%, transparent);transform:translateY(-2px)}.vault-card.done{border-color:color-mix(in srgb, var(--gold) 45%, transparent)}.vault-card.archived{opacity:.7}.vault-card-top{align-items:center;gap:12px;display:flex}.vault-card-title{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.vault-card-title strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vault-emoji{background:color-mix(in srgb, var(--vault-color,var(--gold)) 18%, var(--surface-2));border-radius:14px;flex:none;place-items:center;width:44px;height:44px;font-size:1.45rem;display:grid}.vault-emoji.big{width:52px;height:52px;font-size:1.8rem}.vault-emoji.huge{border-radius:50%;width:84px;height:84px;font-size:2.8rem}.vault-pct{color:var(--vault-color);font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:850}.vault-card-amounts{font-variant-numeric:tabular-nums;align-items:baseline;gap:6px;display:flex}.vault-card-amounts strong{font-size:1.15rem}.vault-hero{background:radial-gradient(500px 240px at 0% 0%, color-mix(in srgb, var(--vault-color) 18%, transparent), transparent 70%), var(--surface);flex-wrap:wrap;align-items:center;gap:28px;display:flex}.vault-hero-body{flex-direction:column;flex:1;gap:12px;min-width:240px;display:flex}.vault-hero-amount{font-variant-numeric:tabular-nums;font-size:1.1rem}.vault-hero-amount strong{font-family:var(--font-display);font-size:2rem;font-weight:900}@media (width<=560px){.vault-hero{text-align:center;flex-direction:column}.vault-hero .row{justify-content:center}}.deadline-box{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);flex-direction:column;gap:4px;margin-top:14px;padding:14px;display:flex}.deadline-box.ok{border-color:color-mix(in srgb, var(--success) 40%, transparent)}.deadline-box.ok .small{color:var(--success)}.deadline-box.warn{border-color:color-mix(in srgb, var(--warn) 40%, transparent)}.deadline-box.warn .small{color:var(--warn)}.mini-list{flex-direction:column;gap:6px;display:flex}.mini-quest{border-radius:var(--radius-sm);align-items:center;gap:12px;padding:10px;transition:background-color .15s;display:flex}.mini-quest:hover{background:var(--surface-2)}.mini-quest .grow{flex-direction:column;gap:6px;display:flex}.tx-list{flex-direction:column;display:flex}.tx-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.tx-row:last-child{border-bottom:0}.tx-icon{background:var(--gold-soft);border-radius:12px;flex:none;place-items:center;width:38px;height:38px;font-size:1.1rem;display:grid}.tx-icon.out{background:var(--danger-soft)}.tx-body{flex-direction:column;flex:1;min-width:0;display:flex}.tx-note{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-weight:650;line-height:1.3;display:-webkit-box;overflow:hidden}.tx-amount{font-variant-numeric:tabular-nums;white-space:nowrap}.tx-amount.in{color:var(--gold-text)}.tx-amount.out{color:var(--danger)}.filters{flex-wrap:wrap;gap:10px;padding:14px;display:flex}.filters>*{flex:200px}.search{align-items:center;display:flex;position:relative}.search svg{color:var(--muted);position:absolute;left:14px}.search input{padding-left:40px!important}.quest-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.quest-card{flex-direction:column;gap:14px;transition:transform .15s,border-color .15s;display:flex}.quest-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.quest-card.status-completed{border-color:color-mix(in srgb, var(--gold) 40%, transparent)}.quest-card.status-abandoned{opacity:.7}.quest-card-top{align-items:center;gap:12px;display:flex}.quest-card-top .grow{flex-direction:column;display:flex}.quest-card-top .grow strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.quest-emoji{background:var(--surface-2);border-radius:14px;flex:none;place-items:center;width:46px;height:46px;font-size:1.5rem;display:grid}.quest-count{font-variant-numeric:tabular-nums;color:var(--gold-text);font-weight:850}.quest-card-foot{flex-wrap:wrap;justify-content:space-between;gap:10px;display:flex}.quest-hero{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.quest-hero .ring-level span{font-size:2rem}@media (width<=560px){.quest-hero{flex-direction:column;align-items:stretch}.quest-hero>.ring{align-self:center}}.legend{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.dot{border-radius:3px;width:10px;height:10px;margin-left:6px;display:inline-block}.dot.done{background:var(--gold)}.dot.due{border:2px solid var(--gold);background:0 0}.dot.future{background:var(--surface-3)}.step-grid{grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:6px;margin-top:14px;display:grid}.step-grid.kind-envelopes{grid-template-columns:repeat(auto-fill,minmax(54px,1fr))}.step-tile{aspect-ratio:1;border:1px solid var(--border);background:var(--surface-2);width:100%;color:var(--muted);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px;transition:transform .12s,border-color .15s,background-color .15s;display:flex}.step-tile:hover{border-color:var(--border-strong);transform:scale(1.05)}.step-label{color:var(--text);text-align:center;font-size:.8rem;font-weight:800;line-height:1.1}.step-amount{white-space:nowrap;font-size:.68rem;font-weight:650}.step-tile.done{background:linear-gradient(135deg, var(--gold-2), var(--gold));color:var(--gold-ink);border-color:#0000}.step-tile.done .step-label{color:var(--gold-ink)}.step-tile.due,.step-tile.late{border:2px solid var(--gold);background:var(--gold-soft);color:var(--gold-text)}.step-tile.late{border-style:dashed}.step-tile.future{opacity:.75}.envelope-reveal{text-align:center;flex-direction:column;align-items:center;gap:4px;padding:8px 0;display:flex}.envelope-big{font-size:4rem;line-height:1;animation:.5s cubic-bezier(.2,1.4,.4,1) envelope-pop}@keyframes envelope-pop{0%{opacity:0;transform:scale(.3)rotate(-20deg)}}.envelope-amount{font-family:var(--font-display);color:var(--gold-text);font-size:2.4rem;font-weight:900}.quest-picker{flex-direction:column;gap:8px;display:flex}.preset-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-bottom:12px;display:grid}.preset-card{text-align:left;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);flex-direction:column;align-items:flex-start;gap:4px;padding:14px;transition:border-color .15s,transform .12s;display:flex}.preset-card:hover{border-color:var(--gold);transform:translateY(-2px)}.preset-emoji{font-size:1.6rem}.preset-name{font-weight:750}.preset-meta{color:var(--muted);font-size:.8rem}.preset-total{color:var(--gold-text);font-size:.8rem;font-weight:700}.kind-list{flex-direction:column;gap:8px;display:flex}.kind-card{text-align:left;border-radius:var(--radius-sm);border:1px solid var(--border);background:0 0;align-items:center;gap:14px;padding:14px;transition:border-color .15s,background-color .15s;display:flex}.kind-card:hover{border-color:var(--gold);background:var(--surface-2)}.kind-card>span:nth-child(2){flex-direction:column;flex:1;gap:2px;display:flex}.kind-emoji{font-size:1.6rem}.difficulty{color:var(--gold-text);letter-spacing:1px;white-space:nowrap}.quest-summary{border-radius:var(--radius-sm);background:var(--gold-soft);border:1px solid color-mix(in srgb, var(--gold) 35%, transparent);flex-wrap:wrap;gap:12px 28px;padding:14px 16px;display:flex}.quest-summary>div{flex-direction:column;display:flex}.profile-card{background:radial-gradient(500px 240px at 0% 0%, var(--gold-soft), transparent 70%), var(--surface);flex-wrap:wrap;align-items:center;gap:28px;display:flex}@media (width<=560px){.profile-card{flex-direction:column;align-items:stretch}.profile-card>.ring{align-self:center}}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;display:grid}.badge-card{--tier:#cd7f32;text-align:center;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);flex-direction:column;align-items:center;gap:6px;padding:18px 12px;display:flex}.badge-card.tier-silver{--tier:#b8c2d6}.badge-card.tier-gold{--tier:var(--gold)}.badge-card.unlocked{border-color:color-mix(in srgb, var(--tier) 45%, transparent);background:radial-gradient(160px 90px at 50% 0%, color-mix(in srgb, var(--tier) 18%, transparent), transparent 70%), var(--surface)}.badge-emoji{background:var(--surface-2);border:2px solid var(--border);border-radius:50%;place-items:center;width:60px;height:60px;font-size:1.8rem;display:grid}.badge-card.unlocked .badge-emoji{border-color:var(--tier);box-shadow:0 0 18px color-mix(in srgb, var(--tier) 35%, transparent)}.badge-card.locked{opacity:.6}.badge-card.locked .badge-emoji{color:var(--muted)}.badge-date{color:var(--muted);margin-top:auto}.badge-card.unlocked .badge-date{color:var(--gold-text)}.ladder{flex-direction:column;gap:4px;display:flex}.ladder li{color:var(--muted);border-radius:10px;align-items:center;gap:12px;padding:8px 10px;display:flex}.ladder li.reached{color:var(--text);background:var(--surface-2)}.ladder-level{min-width:52px;color:var(--muted);font-size:.8rem;font-weight:800}.ladder li.reached .ladder-level{color:var(--gold-text)}.chart{margin:0}.chart-readout{flex-wrap:wrap;align-items:baseline;gap:10px;min-height:28px;margin-bottom:8px;display:flex}.chart-readout strong{font-variant-numeric:tabular-nums;font-size:1.2rem}.chart-svg{touch-action:pan-y;width:100%;height:auto;display:block}.chart-axis{stroke:var(--border-strong);stroke-width:1px}.chart-guide{stroke:var(--border-strong);stroke-dasharray:4 4}.chart-label{fill:var(--muted);font-size:12px;font-family:var(--font)}.bar-group rect:not(:first-child){transition:opacity .15s}.bar-group.active rect:nth-child(2){filter:brightness(1.15)}.chart-empty{text-align:center;padding:24px 0}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(4px);background:#05060e9e;justify-content:center;align-items:flex-end;animation:.18s fade-in;display:flex;position:fixed;inset:0}.modal-panel{background:var(--surface);border:1px solid var(--border);width:100%;max-height:92dvh;padding-bottom:var(--safe-bottom);border-radius:24px 24px 0 0;outline:none;flex-direction:column;animation:.25s cubic-bezier(.2,.9,.3,1) sheet-in;display:flex;box-shadow:0 -10px 40px #0006}.modal-header{justify-content:space-between;align-items:center;gap:12px;padding:18px 20px 10px;display:flex}.modal-header h2{font-size:1.2rem}.modal-body{overscroll-behavior:contain;padding:8px 20px 20px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.modal-footer .btn{flex:auto}@media (width>=640px){.modal-backdrop{align-items:center;padding:24px}.modal-panel{border-radius:24px;padding-bottom:0;animation:.2s cubic-bezier(.2,.9,.3,1) pop-in}.modal-sm{max-width:420px}.modal-md{max-width:540px}.modal-lg{max-width:760px}.modal-footer .btn{flex:none}}@keyframes fade-in{0%{opacity:0}}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}}.confirm-message{color:var(--muted);line-height:1.6}.level-up{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.level-up-badge{width:96px;height:96px;font-family:var(--font-display);color:var(--gold-ink);background:linear-gradient(135deg, var(--gold-2), var(--gold));box-shadow:var(--shadow-gold), 0 0 0 8px var(--gold-soft);border-radius:50%;place-items:center;font-size:2.6rem;font-weight:900;animation:.6s cubic-bezier(.2,1.4,.4,1) envelope-pop;display:grid}.toasts{z-index:60;left:12px;right:12px;top:calc(12px + env(safe-area-inset-top,0px));pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed}@media (width>=960px){.toasts{align-items:flex-end;inset:auto 24px 24px auto}}@media (width<=959px){.toast:nth-last-child(n+3){display:none}}.toast{pointer-events:auto;background:var(--surface-3);border:1px solid var(--border-strong);width:min(440px,100%);box-shadow:var(--shadow);border-radius:16px;align-items:center;gap:12px;padding:12px 10px 12px 14px;animation:.3s cubic-bezier(.2,1.2,.4,1) toast-in;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px)scale(.96)}}.toast-icon{color:var(--success);flex:none;place-items:center;display:grid}.toast-error .toast-icon{color:var(--danger)}.toast-info .toast-icon{color:var(--violet)}.toast-reward{border-color:color-mix(in srgb, var(--gold) 50%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--gold) 14%, var(--surface-3)), var(--surface-3))}.toast-emoji{font-size:1.5rem}.toast-text{flex-direction:column;flex:1;min-width:0;font-size:.9rem;display:flex}.toast-text span{color:var(--muted);font-size:.85rem}.toast-action{border:1px solid var(--gold);color:var(--gold-text);background:0 0;border-radius:999px;flex:none;padding:6px 12px;font-size:.85rem;font-weight:750}.toast-close{flex:none;width:30px;height:30px}.onboarding{place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.onboarding-card{width:100%;max-width:520px;padding:28px 24px;animation:.3s pop-in}.onboarding-card h2{font-size:1.5rem}.onboarding-card h1{font-size:2.4rem}.onboarding-steps{justify-content:center;gap:6px;margin-bottom:24px;display:flex}.onboarding-steps span{background:var(--track);border-radius:999px;width:28px;height:5px;transition:background-color .3s}.onboarding-steps span.on{background:var(--gold)}.onboarding-logo{width:128px;height:128px;box-shadow:var(--shadow-gold), 0 0 0 1px var(--border);background:radial-gradient(circle at 50% 35%,#1d2240,#0b0d17);border-radius:36px;place-items:center;margin:0 auto;animation:1s cubic-bezier(.2,.9,.3,1) spin-in;display:grid}@keyframes spin-in{0%{opacity:0;transform:rotate(-120deg)scale(.6)}}.lead{color:var(--gold-text);font-size:1.15rem;font-weight:650}.pillars{text-align:left;flex-direction:column;gap:12px;margin:8px 0;display:flex}.pillars li{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);align-items:flex-start;gap:14px;padding:12px 14px;display:flex}.pillars svg{color:var(--gold);flex:none;margin-top:2px}.onboarding .stack.center>.btn{align-self:center}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
