.milestone-portal{position:fixed;inset:0;z-index:9000;overflow:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:24px;background:radial-gradient(ellipse at 50% 35%,#26304c 0,#080c20 48%,#030611 100%);color:#fff;text-align:center;isolation:isolate;animation:portal-arrive .7s ease-out}
.portal-stars{position:absolute;inset:0;z-index:-1;background-image:radial-gradient(circle,#fff9 1px,transparent 2px),radial-gradient(circle,var(--portal-color) 1px,transparent 2px);background-size:83px 97px,137px 151px;opacity:.45;animation:portal-travel 8s ease-in forwards;pointer-events:none}
.portal-vortex{position:relative;display:grid;place-items:center;width:min(54vw,310px);aspect-ratio:1;flex-shrink:0;border-radius:50%;background:radial-gradient(circle,#030611 34%,#0a172e 49%,var(--portal-color) 51%,transparent 57%);box-shadow:0 0 70px -18px var(--portal-color),inset 0 0 50px -15px var(--portal-color);animation:portal-open 1.5s cubic-bezier(.2,.8,.2,1) both}
.portal-vortex i{position:absolute;inset:0;border:3px solid var(--portal-color);border-left-color:transparent;border-bottom-color:transparent;border-radius:46%;animation:portal-spin 3s linear infinite;box-shadow:0 0 18px var(--portal-color)}
.portal-vortex i:nth-child(2){inset:-12px;animation-direction:reverse;animation-duration:5s;opacity:.6}.portal-vortex i:nth-child(3){inset:16px;border-style:dashed;opacity:.5;animation-duration:9s}
.portal-vortex b{font-size:clamp(50px,12vw,92px);font-weight:900;text-shadow:0 0 32px var(--portal-color)}
.portal-copy{max-width:650px;animation:portal-arrive 1.2s ease-out}.portal-copy>span{font-size:12px;letter-spacing:.16em;color:var(--portal-color);text-transform:uppercase}.portal-copy h1{font-size:clamp(27px,6vw,46px);line-height:1.15;margin:14px 0}.portal-copy p{color:#c3cce3;line-height:1.6;margin:0 0 20px}.portal-copy button{display:block;margin:0 auto 14px;padding:15px 24px;border:1px solid var(--portal-color);border-radius:999px;background:#ffffff12;color:white;font:inherit;cursor:pointer;min-height:48px}.portal-copy button:focus-visible{outline:3px solid white;outline-offset:5px}.portal-copy small{color:#a3b0c9}
@keyframes portal-spin{to{transform:rotate(360deg)}}@keyframes portal-open{from{transform:scale(.15) rotate(-90deg);opacity:0}to{transform:scale(1);opacity:1}}@keyframes portal-travel{to{transform:scale(1.6);opacity:.15}}@keyframes portal-arrive{from{opacity:0}to{opacity:1}}
@media(max-height:600px) and (min-width:600px){.milestone-portal{flex-direction:row;gap:50px}.portal-vortex{width:190px}.portal-copy{max-width:420px}}
.lesson-bank{margin:18px 0;border:1px solid #54cdbb;background:linear-gradient(120deg,#0d2939,#17233a);color:#eefbff}.lesson-bank strong{font-size:clamp(26px,5vw,40px);color:#82ffe3}.lesson-bank progress{width:100%;height:18px;accent-color:#64e8bf}.lesson-bank small{color:#c4dce5}.frame-choice.locked summary{cursor:pointer;display:grid;gap:8px;list-style:none}.frame-choice.locked p{font-size:14px}.bank-celebration{background:radial-gradient(ellipse at center,#463168,#0a142a 65%)}.bank-celebration .portal-vortex{--portal-color:#ffe38a}.bank-celebration .portal-stars{background-size:41px 53px,79px 91px;animation:portal-travel 3s ease-out infinite}.bank-celebration .portal-vortex i{border-width:5px;animation-duration:1.8s}.bank-celebration .portal-copy h1{color:#ffe8a5}
.card.lesson-bank{padding:12px 16px;margin:10px 0;border-radius:16px;box-shadow:inset 0 1px 0 #a1ffe51a}.lesson-bank .bank-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.lesson-bank h2{font-size:17px;line-height:1.3;margin:0;color:#eefbff}.lesson-bank .bank-amount{white-space:nowrap;font-size:13px;color:#c4dce5}.lesson-bank strong{font-size:22px;line-height:1.3}.lesson-bank progress{display:block;height:9px;margin:8px 0;appearance:none;border:0;border-radius:20px;overflow:hidden;background:#ffffff18}.lesson-bank progress::-webkit-progress-bar{background:#ffffff18}.lesson-bank progress::-webkit-progress-value{background:linear-gradient(90deg,#39b8eb,#82ffe3);border-radius:20px}.lesson-bank progress::-moz-progress-bar{background:linear-gradient(90deg,#39b8eb,#82ffe3);border-radius:20px}.bank-foot{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:12px;line-height:1.4;color:#c4dce5}.bank-foot details{max-width:100%}.bank-foot summary{cursor:pointer;min-height:24px;color:#9cebdc}.bank-foot details[open]{flex-basis:100%}.bank-foot p{margin:6px 0 0;font-size:13px;max-width:700px}.bank-foot summary:focus-visible{outline:2px solid #82ffe3;outline-offset:3px}@media(max-width:420px){.card.lesson-bank{padding:10px 12px}.lesson-bank h2{font-size:15px}.lesson-bank strong{font-size:19px}.lesson-bank .bank-amount{font-size:12px}}
.bank-spectacle{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1}.bank-celebration[data-scene="1"]{background:radial-gradient(ellipse at top,#242858,#050b1c 75%)}.bank-celebration[data-scene="1"] .portal-vortex{--portal-color:#90ddff}.bank-celebration[data-scene="2"]{background:radial-gradient(ellipse at bottom,#143e48,#090c27 70%)}.bank-celebration[data-scene="2"] .portal-vortex{--portal-color:#7effcc}.bank-celebration[data-scene="3"]{background:radial-gradient(ellipse at center,#482146,#100d28 70%)}.bank-celebration[data-scene="3"] .portal-vortex{--portal-color:#ff9de1}.bank-celebration .portal-copy{padding:12px 20px;border-radius:24px;background:#080d239c;text-shadow:0 2px 12px #000}
.stats-screen{display:flex;flex-direction:column;gap:16px}.stats-screen>section,.stats-screen>details,.stats-screen>.stats-layout{margin-top:0;margin-bottom:0;min-width:0}.stats-screen .profile-week-summary h2{margin:0 0 10px;font-size:20px;line-height:1.3}.stats-screen .profile-week-summary p{margin:0;line-height:1.65;overflow-wrap:anywhere}.profile-shop>summary{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:800;cursor:pointer;list-style:none}.profile-shop>summary:after{content:'⌄';margin-left:auto}.profile-shop[open]>summary:after{content:'⌃'}.profile-shop p{line-height:1.6;margin:12px 0}.profile-shop .shop-help{font-size:14px;color:var(--text-dim)}.shop-product{padding:14px;border:1px solid var(--border-soft);border-radius:12px;background:var(--panel)}.shop-product>summary{cursor:pointer;font-weight:700;line-height:1.5}.shop-label{display:grid;gap:8px}.shop-label input{box-sizing:border-box;min-width:0;width:100%;padding:12px;border:1px solid var(--border-soft);border-radius:10px;background:var(--bg);color:var(--text-bright);font:inherit}.profile-shop [role=status]:empty{display:none}.profile-shop summary:focus-visible{outline:2px solid #e8b94e;outline-offset:4px}@media(max-width:600px){.stats-screen{gap:12px}.stats-screen>.card{padding:16px}.stats-screen .stats-kpis{gap:8px}.stats-screen .stats-kpis>div{padding:13px}.stats-screen .profile-goals-row{gap:10px}.profile-shop>summary{font-size:16px}.profile-shop button{width:100%;white-space:normal}}
.rename-product{background:linear-gradient(140deg,var(--panel),#24415b26);border-color:#78bde744}.rename-product>summary{display:flex;align-items:center;gap:12px;list-style:none}.rename-mark{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;border-radius:12px;background:linear-gradient(135deg,#4b7ccb,#7051ba);color:white;font-size:20px}.rename-product summary small{display:block;font-size:12px;color:var(--text-dim);font-weight:400}.rename-price{margin-left:auto;display:flex;align-items:center;gap:4px;white-space:nowrap;color:#edc879}.rename-preview{padding:22px 14px;border-radius:14px;text-align:center;background:radial-gradient(ellipse at top,#4a86bd33,transparent),var(--panel);border:1px solid #78bde72e;display:grid;gap:8px}.rename-preview small{font-size:10px;letter-spacing:.18em;color:var(--text-dim)}.rename-preview strong{font-size:24px;overflow-wrap:anywhere;color:var(--text-bright)}.rename-preview span,.rename-note{font-size:12px;line-height:1.6;color:var(--text-dim)}.profile-shop .rename-note{margin:0}.rename-receipt{padding:12px;border-radius:10px;background:#d5ad5712;font-size:13px;color:var(--text-bright)}.rename-product button:disabled{opacity:.55;cursor:not-allowed}.rename-product input:focus{outline:2px solid #7bbcff;outline-offset:2px}@media(max-width:400px){.rename-product{padding:12px}.rename-product>summary{gap:8px}.rename-mark{width:34px;height:34px}.rename-product summary small{font-size:11px}.rename-preview strong{font-size:21px}}
[data-frame="obsidian_frame"],.frame-obsidian_frame{--cosmetic-color:#b899f7;--cosmetic-glow:#b899f780;--cosmetic-tint:#b899f726;--frame-art:repeating-linear-gradient(135deg,#a77cda22 0 3px,transparent 3px 18px),var(--bg-soft)}[data-frame="supernova_frame"],.frame-supernova_frame{--cosmetic-color:#ffc56b;--cosmetic-glow:#ffad6380;--cosmetic-tint:#ffc56b26;--frame-art:radial-gradient(ellipse at top,#ff9a5c44,transparent 70%),var(--bg-soft)}[data-frame="platinum_frame"],.frame-platinum_frame{--cosmetic-color:#c3e6f1;--cosmetic-glow:#c3e6f180;--cosmetic-tint:#c3e6f126;--frame-art:linear-gradient(115deg,transparent,#d3f0ff33,transparent),var(--bg-soft)}[data-frame="singularity_frame"],.frame-singularity_frame{--cosmetic-color:#ae99ff;--cosmetic-glow:#9874ff90;--cosmetic-tint:#ae99ff26;--frame-art:radial-gradient(ellipse,#15142b 25%,#a086ef33 80%,transparent),var(--bg-soft)}[data-frame="eternity_frame"],.frame-eternity_frame{--cosmetic-color:#90ebcd;--cosmetic-glow:#90ebcd80;--cosmetic-tint:#90ebcd26;--frame-art:repeating-linear-gradient(90deg,transparent 0 20px,#90ebcd22 21px 22px),var(--bg-soft)}.league-ladder{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}@media(max-width:600px){.league-ladder{grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}.league-step{padding:12px 5px}}
.lb-table .lb-status{white-space:normal;min-width:100px;max-width:200px;overflow-wrap:anywhere;font-size:13px;text-align:left;line-height:1.45}.lb-status span{display:block}.lb-status button{font:inherit;font-size:11px;color:#f7a9a9;border:0;background:transparent;cursor:pointer;margin-top:5px;padding:5px}.lb-status button:focus-visible{outline:2px solid currentColor}.shop-product+.shop-product{margin-top:12px}@media(max-width:600px){.lb-table .lb-status{min-width:82px;max-width:120px;font-size:12px}}
#lb-table-wrap .lb-table{min-width:480px}#lb-table-wrap .lb-table td:nth-child(2){min-width:140px}
@media(prefers-reduced-motion:reduce){.milestone-portal,.milestone-portal *{animation:none!important}}
