/* Appearance authority. Legacy sheets retain geometry; all new UI uses these tokens. */
@font-face{font-family:Inter;src:url('../../assets/fonts/inter.ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:Cinzel;src:url('../../assets/fonts/cinzel.ttf') format('truetype');font-weight:400 900;font-display:swap}
:root,[data-theme="parchment"]{color-scheme:light;--surface:#fffaf0;--surface-2:#f0e8d8;--surface-3:#e4dac5;--canvas:#dcd6c9;--ink:#253b3b;--muted:#62716b;--line:#c6c5b5;--action:#237b78;--action-hover:#1c6866;--on-action:#fff;--accent:#94712e;--focus:#187c9b;--shadow:0 6px 20px #243a3612;--radius:12px;--text:var(--ink);--text-dim:var(--muted);--bg-panel:var(--surface);--bg-panel-2:var(--surface-2);--blue:var(--action);--blue-light:var(--action-hover);--gold:var(--accent);--gold-light:#d9b66d;--gold-dark:#806331;--border-brown:var(--line);--font-ui:NunitoSans,system-ui,-apple-system,'Segoe UI',sans-serif;--font-display:BreeSerif,Georgia,serif;--ease-pop:cubic-bezier(.2,.85,.25,1.15);--xp:#b9ef45;--hp:#39a76b}
[data-theme="sky"]{--surface:#f7fbff;--surface-2:#e9f1fb;--surface-3:#d8e6f6;--canvas:#dce6f1;--ink:#263b55;--muted:#5e7189;--line:#b9cada;--action:#326bc1;--action-hover:#285aa5;--accent:#54718e;--focus:#155fc0}
[data-theme="twilight"]{color-scheme:dark;--surface:#30201b;--surface-2:#211612;--surface-3:#51332a;--canvas:#160f0d;--ink:#fff0d5;--muted:#d2bca7;--line:#80613f;--action:#923e43;--action-hover:#ac5053;--accent:#e8c17a;--focus:#ffe0a0;--shadow:0 6px 20px #10131b30}
html,body{background:var(--canvas);color:var(--ink);font-family:var(--font-ui)}
.app{background:var(--surface-2);color:var(--ink);box-shadow:0 0 0 1px var(--line),var(--shadow)}
.topbar,.bottomnav{background:var(--surface);color:var(--ink);border-color:var(--line);box-shadow:var(--shadow)}
.topbar{padding:12px 18px;gap:12px}.player-info{background:transparent;border:0;box-shadow:none}.player-name,.player-level{color:var(--ink)}
#pomodoroMount{position:static;inset:auto;z-index:auto;flex:0 0 auto;width:auto}.topbar>.player{min-width:0}.topbar .currencies{margin-left:auto}.pomodoro-pill.is-focus .pomodoro-icon{animation:none!important}.topbar .player-info{min-width:0}.player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar{display:grid;grid-template-columns:minmax(240px,1fr) auto auto}.topbar .player-level{flex-wrap:wrap}.topbar .xpbar{min-width:90px}.topbar>.player{width:auto}
.currency-pill{background:var(--surface-2);border:1px solid var(--line);border-radius:24px;color:var(--ink);padding:8px 12px;gap:8px}.avatar{border-radius:12px;box-shadow:0 0 0 2px var(--line)}
.xpbar{background:var(--surface-3);border:1px solid var(--line);border-radius:8px;overflow:hidden}.xpbar-fill{background:var(--xp);box-shadow:inset 0 2px #ffffff40}.xpbar span{color:var(--ink);text-shadow:none}
.bottomnav{gap:6px;padding:8px 12px}.nav-item{border:1px solid transparent;border-radius:10px;color:var(--muted);font:650 12px/1.3 var(--font-ui);padding:9px 6px;transition:background .15s,transform .15s var(--ease-pop)}
.nav-item.is-active{background:var(--action);color:var(--on-action);border:1px solid var(--action);box-shadow:inset 0 1px #ffffff35;animation:none}.nav-item:not(.is-active):hover{background:var(--surface-2);color:var(--ink)}.nav-item+ .nav-item:before{display:none}
button,input,select,textarea{font-family:var(--font-ui)}
:is(.btn-small,.btn-primary,.icon-btn,.invw-mode,.invr-tab,.invw-action,.sheet-reveal-btn,.fight-action,.flee-action,.theme-swatch){border:1px solid var(--line);border-radius:9px;background:var(--action);color:var(--on-action);font:650 13px/1.35 var(--font-ui);letter-spacing:0;text-transform:none;text-shadow:none;box-shadow:inset 0 1px #ffffff30,0 2px 0 color-mix(in srgb,var(--action),black 22%);min-height:38px;padding:9px 14px;transition:transform .15s var(--ease-pop),background .15s,box-shadow .15s;cursor:pointer}
:is(.btn-small,.btn-primary,.invw-action,.sheet-reveal-btn):hover{background:var(--action-hover);filter:none;transform:translateY(-1px)}
:is(button,[role="button"]):active:not(:disabled){transform:translateY(1px) scale(.975)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.btn-ghost,.invw-mode,.invr-tab,.icon-btn{background:var(--surface-2);color:var(--ink);box-shadow:inset 0 1px #ffffff20;border-color:var(--line)}
.btn-ghost:hover,.invw-mode:hover,.invr-tab:hover{background:var(--surface-3);color:var(--ink)}
.invw-mode.is-active,.invr-tab.is-active,[aria-pressed="true"].btn-ghost{background:var(--action);color:var(--on-action);border-color:var(--action)}
.icon-btn{padding:8px;min-width:38px}
:is(.panel,.deck-card,.modal-card,.inventory-character,.inventory-stats,.inventory-item,.item-details,.invw,.invr,.map-details,.deck-stat-tile,.import-drawer,.tutorial-toast-panel){background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
:is(.section-heading h2,.page-head h2,.map-heading h1,.modal-card h3,.invr-title,.deck-name,.drop-title,.inventory-name){color:var(--ink);font-family:var(--font-display);text-shadow:none;background:none;letter-spacing:0}
:is(.page-head p,.map-intro,.map-legend,.deck-sub,.deck-card .deck-sub,.future-feature,.modal-card p,.drop-hint,.drop-or,.inventory-item-desc,.deck-stat-label,.study-override-row,.tutorial-toast-panel p){color:var(--muted)}
.home-content{padding:24px}.section-heading{gap:16px;flex-wrap:wrap;margin-bottom:20px;align-items:center}.home-header-actions,.home-links,.modal-actions,.sheet-peek-actions,.tutorial-toast-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.home-links{margin:20px 0}.home-links .btn-ghost,.section-heading .btn-ghost,.modal-card .btn-ghost{color:var(--ink)}
.deck-card{padding:18px;gap:16px;margin-bottom:12px}.deck-card .deck-icon{background:var(--surface-3);color:var(--action);border:1px solid var(--line);border-radius:10px;box-shadow:none}.deck-card .tag{margin:4px}.import-drawer summary{color:var(--ink);padding:16px}.dropzone{border:2px dashed var(--line);border-radius:10px}.cloud path{stroke:var(--action)}
.modal{background:#132b3866;backdrop-filter:blur(4px)}.modal-card{padding:24px;max-height:85dvh;overflow:auto}.modal-card>button{margin:6px 6px 0 0}.modal-card label{line-height:1.5}.modal-card input:not([type=checkbox]):not([type=range]),.modal-card select,.modal-card textarea{background:var(--surface-2);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:10px;max-width:100%;box-sizing:border-box}
.theme-settings{border:1px solid var(--line);border-radius:12px;padding:12px;margin:16px 0;display:flex;gap:8px;flex-wrap:wrap}.theme-settings legend{font-weight:700;padding:0 5px}.theme-swatch{flex:1;min-width:90px;background:#fffaf0;color:#253b3b;box-shadow:inset 0 -5px #237b78}.theme-swatch[data-swatch=sky]{background:#f7fbff;color:#263b55;box-shadow:inset 0 -5px #326bc1}.theme-swatch[data-swatch=twilight]{background:#303446;color:#f1f0f8;box-shadow:inset 0 -5px #7961bf}.theme-swatch[aria-pressed=true]{outline:2px solid var(--focus);outline-offset:2px}
.fx-settings,.controls-settings{display:grid;gap:12px}.fx-settings label{display:flex;gap:12px;align-items:center;justify-content:space-between}.fx-settings input[type=range]{max-width:48%;accent-color:var(--action)}.fx-settings input[type=checkbox]{accent-color:var(--action)}.key-bindings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.key-bindings label{display:flex;align-items:center;justify-content:space-between;gap:8px}
.inv{gap:12px;padding:16px 12px 12px}.invw-stage{background:var(--surface-3);border-bottom:1px solid var(--line)}.invw-body{padding:12px}.invw-title{font-family:var(--font-display);font-size:17px;line-height:1.4}.invw-stat{background:var(--surface-2);padding:8px;gap:6px;margin-bottom:4px}.invw-stat.is-open{background:var(--surface-3)}.invr-title{font:700 20px var(--font-ui)}.invr-head{padding:16px 12px 10px}.invr-tabs{gap:6px;padding:0 10px 12px}.invr-tab{padding:7px 5px}.invw-action.is-equip{background:var(--action)}.invw-action.is-unequip{background:#b44850}.invw-chips,.invw-compare{gap:6px}.invw-chip{background:var(--surface-2);color:var(--ink);border-color:var(--line)}
:is(.invr-item,.inv-item,.inventory-item){color:var(--ink);background:var(--surface-2);border-color:var(--line);border-radius:9px}.invr-item:hover,.inventory-item:hover{background:var(--surface-3)}.invr-item.is-selected,.inventory-item.is-selected{background:var(--surface-3);border-color:var(--action);box-shadow:inset 3px 0 var(--action)}
.world-progress{background:var(--surface);color:var(--ink);border-color:var(--line);padding:12px 16px}.world-xp-row{color:var(--muted)}progress{accent-color:var(--xp)}progress::-webkit-progress-bar{background:var(--surface-3);border-radius:8px}progress::-webkit-progress-value{background:var(--xp);border-radius:8px}
.sheet-hud{background:var(--surface)!important;color:var(--ink)!important;border-color:var(--line)!important}.sheet-hud-label{color:var(--ink)!important}.sheet-hud-bar{background:var(--surface-3)!important;border-radius:6px;overflow:hidden}.sheet-hud-fill{background:var(--health-color,var(--hp))!important;transition:width .22s ease,background .22s ease}.sheet-hud-double{color:var(--accent)!important;background:var(--surface-2)!important}
.encounter-sheet.is-peek{background:var(--surface)!important;color:var(--ink)!important;border-color:var(--line)!important;box-shadow:var(--shadow)!important}.encounter-sheet.is-peek .fight-action{background:var(--action)!important;color:#fff!important;border-color:var(--action)!important}.encounter-sheet.is-peek .flee-action{background:var(--surface-2)!important;color:var(--ink)!important;border-color:var(--line)!important}
.encounter-sheet.is-reading{background:#fffdf8!important;color:#253038!important}.sheet-card-content{font-family:var(--font-ui);line-height:1.6}.sheet-card-content img{max-width:100%;height:auto;border-radius:7px}.sheet-reveal-btn{background:var(--action)!important;color:white!important;border-color:var(--action)!important}.answer-actions{gap:10px}.answer-actions button{border-radius:9px;box-shadow:none;text-shadow:none;min-height:44px;font-family:var(--font-ui)}
.pomodoro-pill{background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--line)!important;border-radius:24px!important;box-shadow:var(--shadow)!important;gap:8px;padding:8px 13px!important}.pomodoro-clock{font-family:var(--font-ui);font-variant-numeric:tabular-nums}.pomodoro-status-toast,.pomodoro-complete-toast{background:var(--surface)!important;color:var(--ink)!important;border-color:var(--line)!important;border-radius:12px}.pomodoro-pill.is-running{border-color:var(--action)!important}
.ui-icon{display:inline-block;width:22px;height:22px;flex:none;vertical-align:middle;stroke:#241914;stroke-width:3.1;stroke-linecap:round;stroke-linejoin:round}.nav-item .ui-icon{width:23px;height:23px}.stat-icon .ui-icon{width:19px;height:19px}
.invw-title{color:var(--ink)!important}.invr-group{color:var(--muted);margin:14px 8px 8px}.invr-row{padding:10px 8px;gap:10px;border-color:var(--line);background:var(--surface-2);margin-bottom:6px}.invr-row.is-selected{background:var(--surface-3);border-color:var(--action);border-left-color:var(--rarity)}.invr-foot{background:var(--surface-2);border-color:var(--line);padding:12px}.invr-empty.is-soon{opacity:1;color:var(--muted)}.stat-up,.invr-worn{color:#258052}:is([data-theme=twilight],[data-theme=stone]) :is(.stat-up,.invr-worn){color:#80d8a8}.stat-chip{background:var(--surface-2);padding:4px 8px}.invr-tutorial{background:var(--surface-2);border-color:var(--accent);color:var(--ink)}
.world-progress #worldXpText,.world-progress #worldDeckCategory,.world-progress .deck-breadcrumb{color:var(--muted)}.world-progress .world-level,.world-progress .level-label{color:var(--ink)}#worldXp,#practiceXp{background:var(--surface-3);border:1px solid var(--line);border-radius:8px;overflow:hidden}#worldXp::-webkit-progress-value,#practiceXp::-webkit-progress-value{background:var(--xp);box-shadow:inset 0 1px #ffffff55}#worldXp::-webkit-progress-bar,#practiceXp::-webkit-progress-bar{background:var(--surface-3)}#worldXpText,#practiceXpText{color:var(--ink)!important;text-shadow:none}
.streak-badge{animation:none}.streak-badge{background:var(--surface-2);color:var(--accent);box-shadow:none;border:1px solid var(--line)}.tutorial-toast-panel h2{color:var(--ink);font-family:var(--font-ui)}.tutorial-toast-panel .btn-small{margin:0}.tutorial-toast-panel .link-btn{color:var(--muted)}
.practice-progress{background:var(--surface);color:var(--ink);border-color:var(--line)}.quest-bar{background:var(--surface-3);border-color:var(--line)}.quest-bar>div{background:var(--action)}.tag{border-radius:6px}.coin{box-shadow:inset 0 0 0 2px #9d792f;border:1px solid #6c5529}
.tutorial-focus-ring{outline:2px solid var(--accent)!important;outline-offset:3px!important;}.tutorial-glow-ring{outline:2px solid var(--accent)}
.roulette{background:color-mix(in srgb,var(--canvas),transparent 5%);backdrop-filter:blur(8px);color:var(--ink)}.roulette-title{font:700 26px var(--font-display);color:var(--ink);text-shadow:none}.roulette-window{background:var(--surface-2);border:2px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.roulette-tile{background:var(--surface);color:var(--ink);border-color:var(--line);border-radius:10px}.roulette-tile.is-win{background:var(--surface);box-shadow:inset 0 0 0 2px var(--rarity);border-color:var(--rarity)}.roulette-prize{font:700 22px var(--font-display);color:var(--ink);text-shadow:none}.roulette-hint{color:var(--muted)}.roulette-tile-icon .ui-icon{width:34px;height:34px;color:var(--accent)}
.reward-banner{position:fixed;z-index:9200;top:88px;left:50%;transform:translateX(-50%);width:min(400px,calc(100vw - 36px));box-sizing:border-box;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:14px;padding:18px 22px;box-shadow:0 12px 36px #132b3833;pointer-events:none;text-align:center;animation:reward-enter .3s var(--ease-pop)}.reward-banner h3{font:700 20px/1.4 var(--font-display);margin:0 0 5px}.reward-banner p{font:500 14px/1.5 var(--font-ui);color:var(--muted);margin:0}.reward-banner .ui-icon{color:var(--accent);margin-bottom:8px;width:28px;height:28px}
@keyframes reward-enter{from{opacity:0;translate:0 12px;scale:.95}to{opacity:1;translate:0 0;scale:1}}
.reward-flight{position:fixed;z-index:9500;pointer-events:none;width:30px;height:30px;display:grid;place-items:center;background:var(--surface);border:2px solid var(--accent);border-radius:9px;color:var(--accent);box-shadow:0 3px 10px #132b3825}.reward-flight img{width:26px;height:26px;object-fit:contain}
.reward-flight{left:0;top:0}.reward-banner[data-rarity=common]{border-top-color:#e6e9ef}.reward-banner[data-rarity=rare]{border-top-color:#4b69ff}.reward-banner[data-rarity=very-rare]{border-top-color:#8847ff}.reward-banner[data-rarity=mythic]{border-top-color:#eb4b4b;box-shadow:0 12px 36px #a7292940}.reward-banner[data-rarity=legendary]{border-top-color:#e4ae39;box-shadow:0 12px 36px #a7772940}
.fx-levelup-rays{display:none}.study-focus :is(.fx-xp-orb,.fx-gold-drop,.fx-loot-label,.reward-flight,.reward-banner){display:none!important}
.study-focus :is(.fx-bar-pulse,.fx-bar-shine,.is-bumped){animation:none!important}.invw-mode .ui-icon{width:16px;height:16px}.roulette-tile-icon .ui-icon{color:inherit}.roulette-tile:has(.roulette-tile-icon){color:var(--ink)}.roulette-tile-icon:has(path[d^="m3 8"]){color:#328aa7}
.gem .ui-icon{width:22px;height:24px}.streak-badge .ui-icon{width:17px;height:17px}.chest-button{background:var(--surface);border:2px solid var(--accent);color:var(--accent);box-shadow:var(--shadow);border-radius:12px}.chest-button>.ui-icon{width:28px;height:28px}
@media(max-width:480px){.invr-row{display:grid;grid-template-columns:28px minmax(0,1fr) 14px;gap:4px 6px}.invr-pic{width:28px;height:28px;grid-row:1/3}.invr-name{white-space:normal;line-height:1.35}.invr-lvl{grid-column:2/4}.invr-head{flex-wrap:wrap;gap:4px}.invr-count{margin-left:auto}}
[data-reduced-motion=true] *,[data-reduced-motion=true] *:before,[data-reduced-motion=true] *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
@media(max-width:600px){.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto}.topbar>.player{grid-column:1;grid-row:1}.topbar>.currencies{grid-column:2;grid-row:1}.topbar>#pomodoroMount{grid-column:1/-1;grid-row:2;justify-content:center}.topbar .xpbar{width:105px;max-width:100%}.topbar .pomodoro-pill{font-size:13px;min-height:28px;padding:4px 12px!important}.topbar .pomodoro-icon{width:18px;height:18px}}
@media(max-width:600px){.topbar{padding:8px 10px;gap:8px}.currency-pill{padding:6px 9px;gap:6px}.home-content{padding:18px 14px}.section-heading{gap:10px}.deck-card{padding:14px;gap:10px}.bottomnav{gap:3px;padding:6px}.nav-item{padding:8px 3px;font-size:11px}.modal-card{padding:18px}.inv{gap:8px;padding:12px 8px 8px}.invr-tab{font-size:11px;padding:6px 3px}.invw-mode{font-size:11px;padding:6px}.invw-body{padding:8px}.reward-banner{top:76px}.answer-actions{gap:6px}}

/* Ambient decoration stays still; celebrations are event-driven. */
.home-leaves,.motes{display:none!important}.fx-engage .ui-icon{width:56px;height:56px;stroke-width:1.6}.dropzone{background:var(--surface-2)}.empty-state,.eyebrow,.item-details .eyebrow{color:var(--muted)}.map-scroll{border-color:var(--line);box-shadow:var(--shadow)}.review-grid img{max-width:100%;height:auto}.sample-icons{flex-wrap:wrap}

.pomodoro-icon .ui-icon{color:var(--action)}body.in-combat .pomodoro-pill{transform:none!important;opacity:1}

.sheet-combat:focus{outline:none}.answer-actions.choice-actions button{background:#eef3f2;color:#253b3b;border-color:#b5c5c0}.answer-actions.choice-actions button:hover{background:#e0ebe8}.type-answer-input{background:#fff;color:#253038;border:1px solid #aab8b0;border-radius:9px}.card-explain-btn .ui-icon{width:16px;height:16px}

#questList{padding:0 24px 24px;gap:12px}#questList>.deck-card{margin:0}.map-heading{gap:16px;flex-wrap:wrap}.map-details strong{font-family:var(--font-ui);color:var(--ink)}@media(max-width:600px){#questList{padding:0 14px 18px}}

.map-room text{font-family:var(--font-ui)}

/* Adventure finish: jewel accents, engraved edges and illustrated controls. */
@font-face{font-family:NunitoSans;src:url('../../assets/fonts/nunito-sans.ttf') format('truetype');font-weight:200 900;font-display:swap}
@font-face{font-family:BreeSerif;src:url('../../assets/fonts/bree-serif.ttf') format('truetype');font-weight:400;font-display:swap}
:root,[data-theme=parchment]{--jewel:#278e88;--ruby:#cd6672;--amber:#ce854a;--aqua:#2a97b9;--metal:#b78b45;--card-bg:#fffdf8;--card-ink:#253038;--card-line:#cbd0c8;--xp-track:#273a27;--xp-fill:linear-gradient(180deg,#eeffa4 0%,#d0f65e 23%,#a0d83c 64%,#79b837 100%)}
[data-theme=sky]{--jewel:#357dc9;--ruby:#d26486;--amber:#cd8b42;--aqua:#2089a4;--metal:#ba9857;--surface:#f2f8ff;--surface-2:#e2ecfa;--surface-3:#ccdef4;--accent:#966527}
[data-theme=twilight]{--jewel:#a7c5a0;--ruby:#ed9890;--amber:#e9ad6c;--aqua:#a7ccda;--metal:#bd9459;--card-bg:#292929;--card-ink:#ededed;--card-line:#494949}
.app{background-image:radial-gradient(ellipse at 5% 0%,color-mix(in srgb,var(--amber),transparent 88%),transparent 60%)}
.topbar,.bottomnav{background:linear-gradient(120deg,var(--surface),var(--surface-2));border-color:var(--metal);box-shadow:inset 0 1px #ffffff16,0 3px 14px #0003}
.topbar{border-bottom:2px solid var(--metal)}.bottomnav{border-top:2px solid var(--metal)}
.avatar{border:2px solid var(--metal);box-shadow:0 0 0 3px var(--surface-2),0 0 16px #e8b66a22;border-radius:13px}.player-name{font:400 19px/1.2 var(--font-display);letter-spacing:.015em;color:var(--ink)}
:is(.panel,.modal-card,.deck-card,.invw,.invr,.map-details,.import-drawer){border-color:color-mix(in srgb,var(--metal) 45%,var(--line));box-shadow:inset 0 1px #ffffff16,0 3px 0 #0002,0 10px 24px #0001}
:is(.section-heading h2,.page-head h2,.map-heading h1,.modal-card h3,.invr-title,.deck-name,.drop-title,.inventory-name,.tutorial-toast-panel h2){font-family:var(--font-display);font-weight:400;letter-spacing:.01em}
.section-heading h2,.page-head h2{color:var(--accent)}.section-heading h2:after,.page-head h2:after{content:'';display:block;width:52px;height:3px;background:linear-gradient(90deg,var(--accent),var(--jewel));margin-top:7px;border-radius:3px}
:is(.btn-small,.btn-primary,.invw-action,.sheet-reveal-btn,.fight-action){background:linear-gradient(180deg,color-mix(in srgb,var(--action),white 15%),var(--action));border:1px solid color-mix(in srgb,var(--action),white 30%);border-bottom-color:color-mix(in srgb,var(--action),black 25%);box-shadow:inset 0 1px #fff4,0 3px 0 color-mix(in srgb,var(--action),black 35%),0 3px 12px color-mix(in srgb,var(--action),transparent 80%);font-weight:800;letter-spacing:.015em}
:is(.btn-small,.btn-primary,.invw-action):hover{box-shadow:inset 0 1px #fff5,0 3px 0 color-mix(in srgb,var(--action),black 35%),0 0 17px color-mix(in srgb,var(--action),transparent 65%)}
.btn-ghost,.icon-btn,.invw-mode,.invr-tab{background:linear-gradient(180deg,var(--surface-3),var(--surface-2));border-color:var(--line);color:var(--ink);box-shadow:inset 0 1px #ffffff1c,0 2px 0 #0002}
.icon-btn:hover{border-color:var(--aqua);box-shadow:0 0 12px color-mix(in srgb,var(--aqua),transparent 75%)}
.nav-item{position:relative;gap:5px;color:var(--ink)}.nav-item .ui-icon{width:28px;height:28px;filter:drop-shadow(0 2px 1px #0004);transition:transform .25s var(--ease-pop)}.nav-item:hover .ui-icon{transform:translateY(-2px) rotate(-7deg)}
.nav-item.is-active{background:linear-gradient(180deg,color-mix(in srgb,var(--action),white 13%),var(--action));border-color:color-mix(in srgb,var(--amber),var(--action) 40%);box-shadow:inset 0 1px #fff4,0 0 13px color-mix(in srgb,var(--action),transparent 65%);color:#fff}
.nav-item.is-active:after{content:'';position:absolute;bottom:3px;width:18px;height:2px;left:calc(50% - 9px);border-radius:2px;background:#ffdd8b;box-shadow:0 0 7px #ffdc85}
.currency-pill{background:linear-gradient(180deg,var(--surface-3),var(--surface-2));border-color:var(--metal);box-shadow:inset 0 1px #fff2,0 2px 0 #0002;font-weight:850;font-variant-numeric:tabular-nums}.currency-pill #coins{color:var(--accent)}.currency-pill #gems{color:var(--aqua)}
.coin:has(.ui-icon){width:24px;height:24px;background:none;border:0;box-shadow:none;display:inline-flex}.coin:has(.ui-icon):before,.coin:has(.ui-icon):after{display:none}.coin .ui-icon{width:24px;height:24px}
.level-label{display:inline-flex!important;align-items:center;gap:3px;padding:2px 8px 2px 3px!important;border:1px solid var(--metal)!important;border-radius:7px!important;background:var(--surface-2)!important;color:var(--accent)!important;font:800 12px/1.3 var(--font-ui)!important;box-shadow:inset 0 1px #fff2!important;white-space:nowrap}.level-label:before,.level-label:after{display:none!important}.level-label .ui-icon{width:24px;height:24px}
.sheet-hud-double{display:inline-flex;align-items:center;gap:4px;padding:4px 9px!important;border:1px solid #95b451!important;border-radius:7px!important;background:#334427!important;color:#e9ffad!important;font:850 12px var(--font-ui)!important;box-shadow:inset 0 1px #eaffb933,0 0 10px #b9ef4518}.sheet-hud-double[hidden]{display:none}.sheet-hud-double .ui-icon{width:21px;height:21px}
.xpbar,#worldXp,#practiceXp{background:var(--xp-track)!important;border:1px solid #739841!important;box-shadow:inset 0 2px 3px #0007,0 0 8px #a4df3020;border-radius:5px;overflow:hidden;position:relative}.xpbar{height:19px}.xpbar-fill{background:var(--xp-fill)!important;box-shadow:inset 0 2px #f4ffc380,inset 0 -2px #659c4e80,2px 0 10px #d9ff87;position:relative;height:100%}.xpbar-fill:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 13px,#28431738 13px 15px)}.xpbar span{color:#fffde8;text-shadow:0 1px 2px #172513,1px 0 #172513,-1px 0 #172513;font-weight:850;font-size:11px}
#worldXp,#practiceXp{height:14px}progress::-webkit-progress-value,#worldXp::-webkit-progress-value,#practiceXp::-webkit-progress-value{background:repeating-linear-gradient(90deg,transparent 0 22px,#28431735 22px 24px),var(--xp-fill)!important;box-shadow:inset 0 2px #f4ffc380,2px 0 10px #d9ff87}progress::-moz-progress-bar{background:var(--xp-fill)}progress::-webkit-progress-bar,#worldXp::-webkit-progress-bar,#practiceXp::-webkit-progress-bar{background:var(--xp-track)!important}
.world-progress,.practice-progress{border-top:2px solid var(--metal);background:linear-gradient(110deg,var(--surface),var(--surface-2));box-shadow:inset 0 1px #fff1}.world-level,.world-xp-row{gap:9px}.world-progress #worldXpText{color:var(--ink)}
.invw-stat{border:1px solid var(--line);border-left:3px solid var(--aqua);border-radius:7px}.invw-stat:nth-child(3n+1){border-left-color:var(--ruby)}.invw-stat:nth-child(3n+2){border-left-color:var(--amber)}.stat-icon .ui-icon{width:23px;height:23px}.invw-stage{background:radial-gradient(ellipse at 50% 75%,color-mix(in srgb,var(--jewel),transparent 80%),transparent 60%),var(--surface-2)}
.invr-row{border-radius:8px;box-shadow:inset 0 1px #ffffff12}.invr-row.is-selected{box-shadow:inset 3px 0 var(--rarity),0 0 12px color-mix(in srgb,var(--rarity),transparent 88%)}.invr-pic,.inventory-item-icon{background:radial-gradient(circle,color-mix(in srgb,var(--rarity,#c5ac70),transparent 75%),transparent 70%)}
.deck-card{border-left:3px solid var(--jewel)}.deck-card:nth-child(3n+2){border-left-color:var(--amber)}.deck-card:nth-child(3n){border-left-color:var(--ruby)}.deck-card .deck-icon{background:color-mix(in srgb,var(--jewel),var(--surface) 85%);border-color:color-mix(in srgb,var(--jewel),var(--line) 50%)}.quest-bar>div{background:linear-gradient(90deg,var(--action),var(--jewel));box-shadow:0 0 8px color-mix(in srgb,var(--jewel),transparent 65%)}
.pomodoro-pill{border-color:var(--jewel)!important;background:linear-gradient(120deg,var(--surface),var(--surface-2))!important}.pomodoro-clock{font-weight:850;color:var(--jewel)}.pomodoro-pill.is-running{box-shadow:inset 0 0 10px color-mix(in srgb,var(--jewel),transparent 90%)!important}.pomodoro-icon .ui-icon{width:23px;height:23px}
.tutorial-glow,.tutorial-focus-ring,.tutorial-glow-ring{animation:guide-breathe 1.55s ease-in-out infinite!important}.tutorial-focus-ring{outline-color:#f9d66e!important}.tutorial-toast-panel{border:2px solid var(--accent);box-shadow:0 0 22px #eab54f26,inset 0 1px #fff2}.tutorial-toast-panel h2{color:var(--accent)}
@keyframes guide-breathe{0%,100%{box-shadow:0 0 0 3px #f6d37335,0 0 12px #ffd96b40;filter:brightness(1)}50%{box-shadow:0 0 0 6px #f6d37316,0 0 26px #ffd96b85;filter:brightness(1.12)}}
.chest-button{background:linear-gradient(145deg,var(--surface-3),var(--surface-2));box-shadow:inset 0 1px #ffe8a94d,0 0 15px #edbd6428;border-color:var(--metal)}.chest-button:hover{box-shadow:0 0 23px #edbd6466}.chest-button>.ui-icon{width:31px;height:31px}
.roulette-window{border-color:var(--metal);box-shadow:0 0 0 4px var(--surface-2),0 0 35px #c8995528}.roulette-tile{background:radial-gradient(ellipse at top,color-mix(in srgb,var(--rarity,#65cddd),transparent 82%),transparent 75%),var(--surface);box-shadow:inset 0 1px #fff2}.roulette-tile.is-win{background:radial-gradient(ellipse at top,color-mix(in srgb,var(--rarity,#ffc76c),transparent 65%),transparent 85%),var(--surface);box-shadow:0 0 24px color-mix(in srgb,var(--rarity,#ffc76c),transparent 45%),inset 0 0 0 2px var(--rarity,#ffc76c)}
.reward-banner{background:radial-gradient(ellipse at top,color-mix(in srgb,var(--accent),transparent 83%),transparent 75%),var(--surface);border:1px solid var(--metal);border-top:3px solid var(--accent);box-shadow:0 12px 36px #0005,0 0 30px #eab45e30;overflow:visible}.reward-banner:before,.reward-banner:after{content:'✦';position:absolute;color:var(--accent);font-size:28px;top:28%;left:-12px;text-shadow:0 0 12px #ffc953;animation:reward-star .7s ease-out both}.reward-banner:after{left:auto;right:-10px;top:60%;font-size:19px;animation-delay:.15s}.reward-banner .ui-icon{width:38px;height:38px;filter:drop-shadow(0 0 8px #ffe49766)}.reward-banner h3{font:400 25px/1.2 var(--font-display);color:var(--accent)}
@keyframes reward-star{from{scale:0;rotate:-80deg;opacity:0}70%{scale:1.35;opacity:1}to{scale:1;rotate:0deg}}
.fx-xp-orb,.fx-gold-drop{position:fixed;left:0;top:0;z-index:9100;pointer-events:none;will-change:transform;box-sizing:border-box}.fx-xp-orb{width:12px;height:12px;background:radial-gradient(circle at 35% 30%,#fffed1 0 18%,#dcfc78 25%,#a5ed38 55%,#59a525 100%);border:1px solid #d7ff87;border-radius:45%;box-shadow:0 0 5px #d9ff90,0 0 13px #a7f33a99}.fx-xp-orb:after{content:'';position:absolute;inset:3px;background:#f3ffc0;border-radius:50%}.fx-gold-drop{width:22px;height:22px;filter:drop-shadow(0 0 5px #ffcf62)}.fx-gold-drop .ui-icon{width:100%;height:100%}.fx-loot-label{position:fixed;z-index:9101;pointer-events:none;font:850 17px var(--font-ui);color:#dcff89;text-shadow:0 2px 2px #19351d,1px 0 #19351d,-1px 0 #19351d;white-space:nowrap}.fx-loot-label small{color:#ffda7e;margin-left:10px;font:inherit}
@keyframes xp-arrival{0%{filter:brightness(1)}35%{filter:brightness(1.65);box-shadow:0 0 22px #cbfa7799}100%{filter:brightness(1)}}.fx-bar-pulse{animation:xp-arrival .45s ease-out!important}.fx-bar-shine{animation:xp-arrival .7s ease-out!important}
/* Anki-like charcoal, with no decorative motion inside a reading card. */
.encounter-sheet.is-reading{background:var(--card-bg)!important;color:var(--card-ink)!important;backdrop-filter:none;border-color:var(--card-line)!important}.sheet-card-content{font-family:Inter,system-ui,sans-serif!important;color:var(--card-ink)!important;background:transparent!important;box-shadow:none!important}.sheet-card-answer{color:var(--card-ink)!important;border-color:var(--card-line)!important}.sheet-card-content a{color:var(--aqua)}
:is([data-theme=twilight],[data-theme=stone]) .encounter-sheet.is-reading :is(.sheet-player-hp,.sheet-hp-label,.sheet-card-status){color:#c7c7c7!important}:is([data-theme=twilight],[data-theme=stone]) .type-answer-input{background:#202020;color:#eee;border-color:#595959}:is([data-theme=twilight],[data-theme=stone]) .answer-actions button{background:#3a3a3a;color:#ededed;border:1px solid #555;box-shadow:none}:is([data-theme=twilight],[data-theme=stone]) .answer-actions .a-again{border-bottom:3px solid #d76c76}:is([data-theme=twilight],[data-theme=stone]) .answer-actions .a-hard{border-bottom:3px solid #d4ae60}:is([data-theme=twilight],[data-theme=stone]) .answer-actions .a-good{border-bottom:3px solid #7eb675}:is([data-theme=twilight],[data-theme=stone]) .answer-actions .a-easy{border-bottom:3px solid #71abc9}:is([data-theme=twilight],[data-theme=stone]) .answer-actions button:hover{background:#474747}:is([data-theme=twilight],[data-theme=stone]) .sheet-card-status .tag{background:#343a2e;color:#d2ddbd;border-color:#556046}:is([data-theme=twilight],[data-theme=stone]) .sheet-card-status .tag-new{background:#293d30;color:#b9dfbf;border-color:#456a50}:is([data-theme=twilight],[data-theme=stone]) .explain-btn{color:#ccc!important;border-color:#666!important}
.study-focus .tutorial-glow,.study-focus .tutorial-focus-ring,.study-focus .tutorial-glow-ring{animation:none!important;filter:none!important}.study-focus :is(.fx-bar-pulse,.fx-bar-shine){animation:none!important}
[data-reduced-motion=true] :is(.tutorial-glow,.tutorial-focus-ring,.tutorial-glow-ring,.fx-bar-pulse,.fx-bar-shine){animation:none!important}
@media(max-width:600px){.player-name{font-size:17px}.level-label{font-size:11px!important;padding-right:5px!important}.level-label .ui-icon{width:21px;height:21px}.nav-item .ui-icon{width:25px;height:25px}.xpbar{height:17px}.currency-pill{gap:5px}.currency-pill .ui-icon{width:21px;height:21px}.reward-banner h3{font-size:22px}}
/* Small engraved details belong to the frame, never to the card text. */
.invw,.invr,.map-details,.import-drawer,.deck-card{background-image:linear-gradient(135deg,color-mix(in srgb,var(--accent),transparent 93%),transparent 40%)}
.invr-head,.invw-body{border-top:1px solid #ffffff08}.import-drawer summary{font-weight:850;color:var(--jewel)}
.home-header-actions .ui-icon,.home-links .ui-icon{width:20px;height:20px;margin-right:6px}.home-header-actions button,.home-links button{display:inline-flex;align-items:center;justify-content:center}
.theme-swatch{border-color:#ba9c66;background:linear-gradient(120deg,#fff3d1,#d3ede1);box-shadow:inset 0 -5px #278e88}.theme-swatch[data-swatch=sky]{background:linear-gradient(120deg,#e8f5ff,#e9defb);box-shadow:inset 0 -5px #357dc9}.theme-swatch[data-swatch=twilight]{background:linear-gradient(120deg,#243e4a,#39315d);box-shadow:inset 0 -5px #ae83ed;color:#fff0d8}
.sheet-card-content{border-color:var(--card-line)!important;border-radius:8px!important}.encounter-sheet.is-reading .answer-actions button{border-radius:7px}.sheet-hud-fill{box-shadow:inset 0 1px #ffffff45,inset 0 -1px #0002}


/* Glass fantasy materials. Menus look through to the current world's artwork. */
:root,[data-theme=parchment]{--glass:rgb(255 247 223 / .79);--glass-soft:rgb(255 245 222 / .48);--glass-edge:#ac844c66;--scene-shade:#eddfbd30;--nav-green:#328469;--nav-blue:#347fad;--nav-red:#b95644;--nav-gold:#b6812e;--nav-copper:#a06739}
[data-theme=sky]{--glass:rgb(232 247 250 / .80);--glass-soft:rgb(223 244 250 / .47);--glass-edge:#6799a666;--scene-shade:#bbddf130;--nav-green:#268b79;--nav-blue:#377fb8;--nav-red:#c46659;--nav-gold:#ad7c32;--nav-copper:#a27147}
[data-theme=twilight]{--glass:rgb(31 17 13 / .86);--glass-soft:rgb(65 31 25 / .61);--glass-edge:#d4ad6866;--scene-shade:#24100b66;--nav-green:#b7c799;--nav-blue:#9dbccf;--nav-red:#ed9388;--nav-gold:#efca80;--nav-copper:#e0ae76}
.app{isolation:isolate;position:relative;background:var(--canvas);background-image:none}
.app:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(var(--scene-shade),var(--scene-shade)),var(--scene-art,none) center/cover;opacity:.9}
.view,.home-content,.inv,.map-page{background-color:transparent}
.topbar,.bottomnav{background:var(--glass);backdrop-filter:blur(16px) saturate(1.2);border-color:var(--glass-edge);border-width:1px;box-shadow:0 1px 0 #fff1,0 5px 24px #0002}
:is(.panel,.modal-card,.deck-card,.invw,.invr,.map-details,.import-drawer,.tutorial-toast-panel){background:var(--glass);backdrop-filter:blur(14px) saturate(1.12);border:1px solid var(--glass-edge);box-shadow:inset 0 1px #fff2,0 8px 26px #0002;border-radius:14px}
:is(.world-progress,.practice-progress,.pomodoro-pill,.currency-pill){background:var(--glass)!important;backdrop-filter:blur(12px);border:1px solid var(--glass-edge)!important;box-shadow:inset 0 1px #fff1!important}
.currency-pill{border-radius:18px;padding:6px 10px}.currency-pill .ui-icon,.coin .ui-icon{width:30px;height:30px}.coin:has(.ui-icon){width:30px;height:30px}
.avatar{border-radius:50%;border-color:var(--accent);box-shadow:0 0 0 3px #0002}.level-label{border:0!important;background:transparent!important;box-shadow:none!important}.level-label .ui-icon{width:29px;height:29px}
.ui-icon{filter:drop-shadow(0 1px 1px #0004)}.nav-item .ui-icon{width:36px;height:36px;filter:drop-shadow(0 2px 1px #0005)}.stat-icon .ui-icon{width:28px;height:28px}
.nav-item{--nav-accent:var(--nav-gold);border:0;border-radius:12px;background:transparent;transition:background .2s,transform .2s;color:var(--ink)}
.nav-item[data-target=world]{--nav-accent:var(--nav-green)}.nav-item[data-target=home]{--nav-accent:var(--nav-blue)}.nav-item[data-target=practice]{--nav-accent:var(--nav-red)}.nav-item[data-target=map]{--nav-accent:var(--nav-gold)}.nav-item[data-target=inventory]{--nav-accent:var(--nav-copper)}
.nav-item.is-active{background:linear-gradient(180deg,color-mix(in srgb,var(--nav-accent),transparent 82%),color-mix(in srgb,var(--nav-accent),transparent 93%));color:var(--ink);border:0;box-shadow:inset 0 -2px var(--nav-accent)}.nav-item.is-active:after{display:none}.nav-item:hover{background:color-mix(in srgb,var(--nav-accent),transparent 86%)}
:is(.btn-small,.btn-primary,.invw-action,.fight-action){border-radius:10px;box-shadow:inset 0 1px #fff4,0 2px 0 #0003;border-width:1px}.btn-ghost,.icon-btn,.invw-mode,.invr-tab{background:var(--glass-soft);box-shadow:inset 0 1px #fff1;border-color:var(--glass-edge);color:var(--ink)}
.invr-tab:nth-child(1){--action:#387d64}.invr-tab:nth-child(2){--action:#397f9d}.invr-tab:nth-child(3){--action:#aa7240}.invw-mode.is-active,.invr-tab.is-active{background:color-mix(in srgb,var(--action),var(--glass) 55%);color:var(--ink);border-color:var(--accent);box-shadow:inset 0 -2px var(--accent)}
.invw,.invr{position:relative;overflow:hidden}.invw:before,.invr:before{content:'';position:absolute;inset:5px;pointer-events:none;z-index:1;background:linear-gradient(var(--accent),var(--accent)) left top/18px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) left top/1px 18px no-repeat,linear-gradient(var(--accent),var(--accent)) right top/18px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) right top/1px 18px no-repeat,linear-gradient(var(--accent),var(--accent)) right bottom/18px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) right bottom/1px 18px no-repeat;opacity:.5;border-radius:9px}
.invw-stage{background:radial-gradient(ellipse at 50% 80%,#e3c57220,transparent 60%);border-bottom:1px solid var(--glass-edge);position:relative}.invw-stage:after{content:'✧';position:absolute;bottom:5px;left:calc(50% - 10px);font-size:23px;color:var(--accent);opacity:.5;pointer-events:none}
.invw-stat{border:0;border-bottom:1px solid color-mix(in srgb,var(--glass-edge),transparent 55%);background:transparent;border-radius:0;padding:7px 4px;margin:0}.invw-stat.is-open{background:var(--glass-soft)}.invw-title{color:var(--accent)!important}.invr-head{border-bottom:1px solid var(--glass-edge);margin-bottom:12px}.invr-title{font-family:var(--font-display);font-weight:400}.invr-row{background:var(--glass-soft);border:1px solid transparent;border-left:2px solid var(--rarity,var(--glass-edge));box-shadow:none;padding:12px 10px}.invr-row.is-selected{background:color-mix(in srgb,var(--rarity,#d4b672),var(--glass) 90%);border-color:var(--rarity,var(--accent));box-shadow:inset 0 0 16px #eccb7420}.invr-foot{background:transparent;border-color:var(--glass-edge)}
.deck-card{border-left:2px solid var(--jewel)}.deck-card:nth-child(3n+2){border-left-color:var(--aqua)}.deck-card:nth-child(3n){border-left-color:var(--ruby)}.deck-card .deck-icon{background:transparent;border:0}.deck-card .deck-icon .ui-icon{width:40px;height:40px}.import-drawer{background:var(--glass-soft)}.dropzone{background:transparent}.modal{background:#07120e40;backdrop-filter:blur(5px)}
.theme-swatch[data-swatch=twilight]{background:linear-gradient(120deg,#281914,#682b31);box-shadow:inset 0 -4px #edc575;color:#fff0d8}.theme-swatch[data-swatch=sky]{background:linear-gradient(120deg,#e8f5ff,#d8eee3);box-shadow:inset 0 -4px #357dc9}
/* Combat is readable and compact: a portrait, live fill, and delayed damage trail. */
.sheet-hud{background:var(--glass)!important;border-color:var(--glass-edge)!important;backdrop-filter:blur(10px);gap:12px!important}.sheet-hud-side{position:relative;min-width:0}.sheet-hud-side.is-mob{padding-left:43px}.sheet-hud-portrait{position:absolute;left:0;top:50%;transform:translateY(-50%);width:34px;height:34px;object-fit:contain;background:radial-gradient(circle,#e8c77e33,transparent);border:1px solid var(--glass-edge);border-radius:50%;padding:2px}.sheet-hud-portrait[hidden]{display:none}.sheet-hud-bar{position:relative;height:12px!important;background:#101711!important;border:1px solid #ffffff20;box-shadow:inset 0 1px 3px #0008}.sheet-hud-fill,.sheet-hud-trail{position:absolute;inset:0 auto 0 0;height:100%;border-radius:4px}.sheet-hud-fill{transition:width .28s cubic-bezier(.16,1,.3,1),background .2s!important;box-shadow:inset 0 2px #ffffff50,inset 0 -2px #0002,1px 0 6px #fff4}.sheet-hud-trail{background:#f5db9b;opacity:.8;transition:width .55s cubic-bezier(.25,.8,.25,1) .18s}.sheet-hud-label{font-size:11px!important;gap:6px;white-space:nowrap}.sheet-hud-label span:first-child{overflow:hidden;text-overflow:ellipsis}.sheet-hud-double{background:transparent!important;border:0!important;box-shadow:none!important;padding:2px!important;color:#cfee86!important}.sheet-hud-double .ui-icon{width:29px;height:29px}
/* Unboxed reward titles: all decoration is transient and pointer-transparent. */
.reward-banner{top:20%;width:min(430px,calc(100vw - 32px));padding:18px 12px 26px;background:none!important;border:0!important;border-radius:0;box-shadow:none!important;isolation:isolate;animation:reward-enter .38s cubic-bezier(.16,1,.3,1)}.reward-banner:before{content:'';inset:-30px -15px;z-index:-1;background:radial-gradient(ellipse,#142820dc 0%,#16221cc0 25%,transparent 69%);animation:none;filter:blur(6px);font-size:0}.reward-banner:after{display:none}.reward-banner h3{font:400 clamp(28px,5vw,38px)/1.2 var(--font-display);color:#ffe4a6;text-shadow:0 2px 2px #261c12,0 0 20px #edb84f55;margin:4px 0 9px}.reward-banner p{font:750 15px/1.5 var(--font-ui);color:#fff4df;text-shadow:0 1px 3px #000,0 0 8px #000;max-width:340px;margin:auto}.reward-art{position:relative;display:grid;place-items:center;width:88px;height:88px;margin:auto auto 10px}.reward-art>.ui-icon,.reward-art>img{width:78px;height:78px;object-fit:contain;z-index:1;filter:drop-shadow(0 3px 1px #0009) drop-shadow(0 0 14px #f9d77b88);margin:0}.reward-art:before{content:'';position:absolute;inset:-20px;border:1px solid #ffe7a76b;border-radius:50%;background:radial-gradient(circle,#f6d58666,transparent 65%);box-shadow:0 0 30px #f5c97033;animation:reward-halo .85s ease-out both}.reward-banner[data-rarity=rare]{--reward-color:#8fa4ff}.reward-banner[data-rarity=very-rare]{--reward-color:#c3a2ff}.reward-banner[data-rarity=mythic]{--reward-color:#ff8f8f}.reward-banner[data-rarity=legendary]{--reward-color:#ffd978}.reward-banner[data-tier='2'] h3,.reward-banner[data-tier='3'] h3,.reward-banner[data-tier='4'] h3{color:var(--reward-color,#ffdf78)}
@keyframes reward-halo{from{transform:scale(.3);opacity:0}35%{opacity:1}to{transform:scale(1.25);opacity:.45}}
.reward-flight{background:transparent;border:0;border-radius:0;box-shadow:none;filter:drop-shadow(0 0 7px #ffe39a)}.reward-flight .ui-icon{width:34px;height:34px}.reward-flight img{width:34px;height:34px}.reward-spark{position:absolute;left:50%;top:50%;pointer-events:none;width:7px;height:7px;background:#ffe6a0;box-shadow:0 0 7px #ffcb64;clip-path:polygon(50% 0,65% 35%,100% 50%,65% 65%,50% 100%,35% 65%,0 50%,35% 35%)}
.fx-kill-flash{position:fixed;left:0;top:0;width:100px;height:100px;border-radius:50%;pointer-events:none;z-index:9099;border:2px solid #ecffa1;background:radial-gradient(circle,#ffffd1b0, #c0f67a33 30%,transparent 67%);box-shadow:0 0 22px #daff8777}.study-focus .fx-kill-flash{display:none!important}
[data-reduced-motion=true] .reward-art:before{animation:none;opacity:.4}
@media(max-width:600px){.nav-item .ui-icon{width:30px;height:30px}.currency-pill .ui-icon,.coin .ui-icon{width:25px;height:25px}.coin:has(.ui-icon){width:25px;height:25px}.sheet-hud{gap:6px!important}.sheet-hud-side.is-mob{padding-left:34px}.sheet-hud-portrait{width:27px;height:27px}.sheet-hud-double{font-size:10px!important}.sheet-hud-double .ui-icon{width:22px;height:22px}.reward-banner{top:22%}.invr-row{padding:9px 7px}}
[data-reduced-motion=true] :is(.sheet-hud-fill,.sheet-hud-trail){transition:none!important}
.roulette{background:rgb(8 17 13 / .65);backdrop-filter:blur(12px)}.roulette-title{color:#ffe4a6;text-shadow:0 2px 2px #0008}.roulette-prize{color:#ffe7af;text-shadow:0 2px 2px #0009}.roulette-hint{color:#e5e5cf}.roulette-window{background:var(--glass);border:1px solid var(--glass-edge);box-shadow:0 0 30px #e2c27125,inset 0 1px #fff3}.roulette-tile{background:var(--glass-soft)}.roulette-tile.is-win{animation:chest-arrival .65s cubic-bezier(.2,.8,.3,1)}
@keyframes chest-arrival{0%{filter:brightness(1);transform:scale(1)}35%{filter:brightness(1.75);transform:scale(1.08)}100%{filter:brightness(1);transform:scale(1)}}
.gem:has(.ui-icon){width:30px;height:30px;flex:none}.currency-pill .coin{flex:none}@media(max-width:600px){.gem:has(.ui-icon){width:25px;height:25px}}
[data-theme=parchment] .sheet-hud-double,[data-theme=sky] .sheet-hud-double{color:#48651c!important}

/* Royal trim: walnut glass, oxblood leather and a narrow woven gold border. */
[data-theme=twilight] .topbar{background:linear-gradient(115deg,#351d18e8,#241710dc 58%,#4c2322d9);border-bottom-color:#c39a596e}
[data-theme=twilight] .bottomnav{background:linear-gradient(#301e17e8,#21150fe8);border-top:1px solid #c39a5970;padding-top:12px}
[data-theme=twilight] .bottomnav:before{content:'';position:absolute;left:12px;right:12px;top:1px;height:6px;background:url('../../assets/ui/royal-weave.svg') center/32px 12px;opacity:.65;pointer-events:none}
[data-theme=twilight] .invw,[data-theme=twilight] .invr{background:linear-gradient(135deg,#6832291a,transparent 42%),var(--glass)}
[data-theme=twilight] .invr-head{background:linear-gradient(90deg,#6c2d3038,transparent);border-bottom-color:#d4ad6844}
[data-theme=twilight] .invw-stage{background:radial-gradient(ellipse at 50% 80%,#bb75421f,transparent 62%),linear-gradient(145deg,#60302b20,transparent 75%)}
[data-theme=twilight] .invw-stage:after{content:'';height:13px;left:12%;right:12%;bottom:5px;background:url('../../assets/ui/royal-weave.svg') center/48px 18px;border:1px solid #b28a4c6b;border-radius:2px;opacity:.65}
[data-theme=twilight] .invr-tab{--action:#923e43}[data-theme=twilight] .invr-tab:nth-child(2){--action:#6c5840}[data-theme=twilight] .invr-tab:nth-child(3){--action:#685443}
[data-theme=twilight] .nav-item.is-active{background:linear-gradient(#77363870,#4a251f60);box-shadow:inset 0 -2px var(--nav-accent),inset 0 1px #f2cb8520}
[data-theme=twilight] .pomodoro-clock{color:#e9c997}[data-theme=twilight] .pomodoro-pill{border-color:#b78c5766!important}
/* Guidance earns more screen space, but combat/card text remains compact. */
.tutorial-toast{width:min(610px,calc(100% - 36px));bottom:92px}
.tutorial-toast-panel{padding:24px 28px;max-height:60dvh;border:1px solid var(--accent);box-shadow:0 12px 38px #0006,inset 0 1px #fff2}
.tutorial-toast-panel h2{font-size:24px;line-height:1.3;margin-bottom:12px}.tutorial-toast-panel p{font:500 17px/1.65 var(--font-ui);margin-bottom:18px}.tutorial-toast-actions{gap:12px}.tutorial-toast-panel .btn-small{min-height:44px;padding:11px 19px;font-size:14px}.tutorial-toast-panel .link-btn{font-size:12px;margin-top:14px}
.tutorial-toast-deck{width:min(610px,calc(100% - 36px))!important}.tutorial-toast-combat{width:min(460px,calc(100% - 24px));bottom:auto;top:calc(var(--topbar-height,76px) + 10px)}.tutorial-toast-combat .tutorial-toast-panel{padding:16px 20px;border-width:2px}.tutorial-toast-combat .tutorial-toast-panel p{font-size:17px;font-weight:600;line-height:1.5;margin:0;color:var(--ink)}
@media(max-width:600px){.tutorial-toast{width:calc(100% - 24px);bottom:88px}.tutorial-toast-panel{padding:21px 20px;max-height:59dvh}.tutorial-toast-panel h2{font-size:22px}.tutorial-toast-panel p{font-size:16px;line-height:1.6}.tutorial-toast-actions{gap:10px}.tutorial-toast-deck{width:calc(100% - 24px)!important}.tutorial-toast-combat{width:min(380px,calc(100% - 16px));bottom:auto;top:calc(var(--topbar-height,64px) + 8px)}.tutorial-toast-combat .tutorial-toast-panel p{font-size:15.5px}}
body:has(.modal:not([hidden])) .tutorial-toast{visibility:hidden;pointer-events:none}

/* Quiet glass: Stone is the default; other palettes retain their identity. */
[data-theme=stone]{color-scheme:dark;--surface:#292723;--surface-2:#34312b;--surface-3:#454035;--canvas:#191917;--ink:#eee5d2;--muted:#c2b8a4;--line:#756a55;--action:#655b45;--action-hover:#7b6c50;--on-action:#fff5df;--accent:#d2b67d;--focus:#c9d4bc;--jewel:#a7b397;--ruby:#ca9585;--amber:#c5ac7c;--aqua:#a7bdc2;--metal:#a58b5a;--glass:rgb(34 33 29 / .80);--glass-soft:rgb(60 55 44 / .56);--glass-edge:#b39a6766;--scene-shade:#201e1960;--nav-green:#a7b397;--nav-blue:#a1b3b9;--nav-red:#c79482;--nav-gold:#d2b67d;--nav-copper:#ba9d79;--card-bg:#292929;--card-ink:#ededed;--card-line:#494949;--shadow:0 6px 24px #0005}
[data-theme=parchment]{--glass:rgb(249 239 215 / .67);--glass-soft:rgb(244 229 199 / .37);--action:#577c71;--action-hover:#476c61;--jewel:#658575;--ruby:#b7837d;--aqua:#748f99;--amber:#ae906c;--scene-shade:#d8cdb224}
[data-theme=sky]{--glass:rgb(224 237 241 / .66);--glass-soft:rgb(216 230 236 / .37);--action:#617f95;--action-hover:#506f85;--jewel:#7596a0;--ruby:#b2868a;--aqua:#74959e;--amber:#b29976;--scene-shade:#a3bbc524}
[data-theme=twilight]{--glass:rgb(31 23 20 / .67);--glass-soft:rgb(65 43 34 / .38);--action:#7e4c4b;--action-hover:#945b58;--scene-shade:#241b142b}
:root .topbar,:root .bottomnav{background:var(--glass);backdrop-filter:blur(12px) saturate(.82);border-color:var(--glass-edge);box-shadow:inset 0 1px #ffffff45,0 4px 18px #00000015}
:root :is(.invw,.invr,.modal-card,.map-details,.import-drawer,.panel){background-image:url('../../assets/ui/linen-etch.svg');background-color:var(--glass);backdrop-filter:blur(12px) saturate(.85)}
:root :is(.world-progress,.practice-progress,.pomodoro-pill,.currency-pill){background:var(--glass)!important;backdrop-filter:blur(12px) saturate(.85);border-color:var(--glass-edge)!important}
:root .tutorial-toast-panel{background:var(--glass);background-image:url('../../assets/ui/linen-etch.svg');backdrop-filter:blur(16px) saturate(.8);color:var(--ink)}
.encounter-sheet.is-peek{background:var(--glass)!important;backdrop-filter:blur(14px);border-color:var(--glass-edge)!important}.chat-input{background:var(--glass-soft);backdrop-filter:blur(8px);color:var(--ink);border-color:var(--glass-edge)}
:root .bottomnav{padding-top:12px}:root .bottomnav:before{content:'';position:absolute;left:12px;right:12px;top:1px;height:6px;background:url('../../assets/ui/neutral-weave.svg') center/32px 12px;opacity:.65;pointer-events:none}
:root .invw-stage:after{content:'';height:13px;left:12%;right:12%;bottom:5px;background:url('../../assets/ui/neutral-weave.svg') center/48px 18px;border:1px solid color-mix(in srgb,var(--metal),transparent 65%);border-radius:2px;opacity:.65}
:root .invr-head{background:linear-gradient(90deg,color-mix(in srgb,var(--metal),transparent 90%),transparent);border-bottom-color:var(--glass-edge)}
[data-theme=stone] .invr-tab{--action:#747b6d}[data-theme=stone] .invr-tab:nth-child(2){--action:#6d7880}[data-theme=stone] .invr-tab:nth-child(3){--action:#887b66}
[data-theme=stone] .pomodoro-clock{color:#d2c29c}
.theme-swatch[data-swatch=stone]{background:linear-gradient(120deg,#39362f,#232420);color:#eee5d2;box-shadow:inset 0 -4px #a58b5a;border-color:#8f7c56}
/* Review controls are a separate, stable Anki-like neutral palette. */
:root .sheet-reveal-btn{background:#e5e5e5!important;color:#202020!important;border:1px solid #a5a5a5!important;border-radius:6px;box-shadow:inset 0 1px #fff!important;font:600 15px/1.35 Inter,system-ui,sans-serif;letter-spacing:0;text-shadow:none;filter:none;transform:none}
:root .sheet-reveal-btn:hover{background:#d8d8d8!important;border-color:#888!important;box-shadow:inset 0 1px #fff!important;filter:none;transform:none}
:root .sheet-reveal-btn:active{background:#cbcbcb!important;transform:translateY(1px)}
:root .sheet-reveal-btn:focus-visible{outline:2px solid #4b86b4;outline-offset:3px}
/* Keep reading solid and free of texture despite the broader glass material. */
:root .encounter-sheet.is-reading{background:var(--card-bg)!important;background-image:none!important;backdrop-filter:none!important}

/* Dark Stone: smoked quartz, aged brass and engraved manuscript corners. */
[data-theme=stone] :is(.invw,.invr,.modal-card,.map-details,.import-drawer,.panel,.tutorial-toast-panel){border-radius:7px;box-shadow:inset 0 0 0 3px #19181455,inset 0 0 0 4px #ad936322,0 8px 26px #0004}
[data-theme=stone] :is(.invw,.invr):before{background:url('../../assets/ui/stone-corners.svg') left top/24px 24px no-repeat,url('../../assets/ui/stone-corners-bottom.svg') right bottom/24px 24px no-repeat;opacity:.8;border-radius:0}
[data-theme=stone] :is(.topbar,.bottomnav){box-shadow:inset 0 1px #c8b07a33,inset 0 -1px #07070688,0 4px 18px #0003}
[data-theme=stone] :is(.btn-small,.invw-action,.fight-action,.invw-mode,.invr-tab){border-radius:5px;border-color:#ab946466;box-shadow:inset 0 1px #dfc78d26,inset 0 -2px #15140f66,0 2px 3px #0003}
[data-theme=stone] .invr-head{background:linear-gradient(90deg,#a68c5420,transparent);border-bottom:1px solid #ad93634d}
[data-theme=stone] :is(.invr-title,.invw-name,.deck-name){color:#dfc99c;text-shadow:0 2px 1px #0006}
[data-theme=stone] .bottomnav:before{height:9px;background-size:40px 16px;opacity:.85}
[data-theme=stone] .invw-stage:after{height:18px;background-size:56px 22px;opacity:.8}

[data-theme=stone] .invr-head{padding-left:32px}

/* Illustrated fantasy objects: fine ink, visible material edges and shading. */
:root .ui-icon{stroke:#30251e;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
:root :is(.nav-item,.currency-pill,.pomodoro-icon,.level-label,.stat-icon) .ui-icon{filter:none}
/* Flee button in the fight's top bar (encounter-panel.js) */
.sheet-hud{position:relative}.sheet-hud-flee{flex:none;align-self:center;margin-left:4px;padding:5px 11px;border-radius:8px;border:1px solid #c98a7a;background:#4a2622;color:#ffd9cf;font:800 12px var(--font-ui,system-ui);cursor:pointer}.sheet-hud-flee:hover{background:#5d2e28}.sheet-hud-flee[hidden]{display:none}

/* XP bar: a fixed row of 20 blocks. The whole track shows its blocks (so the bar reads as segments, not as a stretching strip);
   the fill lights them from the left and the leading block fills partway. --p (0-100) is set by tweenBar in src/fx/fx.js. */
#worldXp{-webkit-appearance:none;appearance:none;-moz-appearance:none;height:16px;border:1px solid #739841!important;border-radius:5px;overflow:hidden;
  background-color:var(--xp-track)!important;
  background-image:linear-gradient(90deg,transparent calc(100% - 3px),#0f170f 0),var(--xp-fill)!important;
  background-size:calc(100% / 20) 100%,calc(var(--p,0) * 1%) 100%!important;background-repeat:repeat-x,no-repeat!important;background-position:0 0,0 0!important;
  box-shadow:inset 0 2px 3px #0007,0 0 8px #a4df3020}
#worldXp::-webkit-progress-bar{background:transparent!important}
#worldXp::-webkit-progress-value{background:transparent!important;box-shadow:none!important}
#worldXp::-moz-progress-bar{background:transparent!important}
