@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#10131a;--panel:#1a1e27;--line:#303541;--muted:#a5adbc;--text:#f4f1ec;--red:#f27f87;--green:#a3d9bd}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px 'DM Sans',sans-serif}button,a{touch-action:manipulation}a{color:inherit;text-underline-offset:4px}button{font:inherit;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--red);outline-offset:5px}header{max-width:1280px;margin:auto;padding:26px 40px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:20px}header>a{font-size:13px;text-decoration:none;color:var(--muted)}.logo{display:flex;align-items:center;gap:12px;font:700 18px 'Space Grotesk',sans-serif;letter-spacing:1px;color:var(--text)}.logo small{font-size:9px;max-width:50px;color:var(--muted);line-height:1.5}.mark{font-size:24px;color:var(--red);padding:8px}.mark span{font-size:15px}main{max-width:1200px;margin:auto;padding:45px 40px}.intro{display:grid;grid-template-columns:1fr 300px;gap:70px;align-items:center;margin:12px 0 38px}.eyebrow,.kicker{font:11px 'Space Grotesk',monospace;letter-spacing:2px;color:var(--red)}h1{font:500 clamp(38px,5vw,62px)/1.08 'Space Grotesk',sans-serif;letter-spacing:-2px;margin:22px 0}h1 em{color:var(--red);font-style:normal}.lede{color:var(--muted);line-height:1.7;max-width:570px}.specimen{border:1px solid #66404a;border-radius:16px;padding:24px;background:linear-gradient(140deg,#2a202a,#191e27);transform:rotate(3deg);box-shadow:0 20px 70px #0003}.specimen-top{font:12px monospace;display:flex;justify-content:space-between}.specimen-top span{font-size:8px;color:var(--red)}.tubes{display:flex;justify-content:center;gap:24px;padding:26px 0}.tubes i{height:93px;width:32px;border:2px solid #eaa4ad55;border-top:13px solid var(--red);border-radius:6px 6px 15px 15px;background:linear-gradient(0deg,#8d404f 50%,transparent 51%);text-align:center;padding-top:11px;font:12px monospace}.tubes i:nth-child(2){border-top-color:#cfb899}.tubes i:nth-child(3){border-top-color:#a3bfcd}.barcode{letter-spacing:4px;font:25px monospace;color:#d1a5ad}.specimen small{display:block;margin-top:12px;font:8px monospace;letter-spacing:2px;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:12px;background:var(--panel)}.stat{padding:22px;border-right:1px solid var(--line)}.stat:last-child{border:0}.stat small{display:block;color:var(--muted);font-size:11px;letter-spacing:1px;text-transform:uppercase}.stat strong{display:block;font:500 26px 'Space Grotesk',sans-serif;margin-top:9px}.stat:first-child strong{color:var(--green)}.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:36px 0 28px;overflow-x:auto}.tabs button{white-space:nowrap;background:none;border:0;color:var(--muted);padding:0 0 17px}.tabs button.active{color:var(--text);border-bottom:2px solid var(--red)}.tabs span{border-radius:4px;background:#323440;padding:2px 5px;font-size:11px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}h2{font:500 25px 'Space Grotesk',sans-serif;margin:0 0 8px}p{line-height:1.65}.muted,.section-head p{color:var(--muted);font-size:14px;margin:0}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:25px;display:flex;flex-direction:column;align-items:flex-start}.card .num{font:12px monospace;color:var(--red);margin-bottom:26px}.card h3{font:500 21px 'Space Grotesk',sans-serif;margin:0 0 12px}.card p{font-size:14px;color:var(--muted);margin:0 0 20px}.card .progress{margin-top:auto}.progress{height:4px;background:#343947;width:100%;border-radius:4px;overflow:hidden}.progress i{display:block;height:100%;background:var(--red)}.card small{font-size:11px;color:var(--muted);margin:10px 0 20px}.button{padding:11px 18px;background:var(--red);color:#211419;border:1px solid transparent;border-radius:7px;font-weight:700;font-size:13px;text-decoration:none}.secondary{background:transparent;color:var(--text);border-color:var(--line)}.wide{width:100%;text-align:center}.practice{margin-top:20px;display:grid;grid-template-columns:1fr 1fr;gap:18px}.practice .card{padding:23px}.practice .num{margin-bottom:14px}.note{border-left:2px solid var(--red);padding:12px 20px;background:#f27f8709;color:var(--muted);font-size:14px;margin:20px 0}.round{max-width:800px;margin:auto;border:1px solid var(--line);background:var(--panel);border-radius:15px;padding:32px}.round h2{margin:25px 0;line-height:1.4}.round-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.round-head span{color:var(--muted);font:12px monospace}.bets,.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.bets button{flex:1;white-space:nowrap}.choices{display:grid;gap:12px}.choice{display:flex;text-align:left;gap:15px;background:#222732;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:17px;line-height:1.5}.choice b{color:var(--muted);font:14px monospace;padding-top:3px}.choice.correct{border-color:var(--green);background:#a3d9bd15;opacity:1}.choice.wrong{border-color:var(--red);opacity:1}.feedback{margin-top:24px;padding:20px;border:1px solid var(--line);border-radius:10px}.feedback h3{margin:0;color:var(--green)}.feedback.wrong h3{color:var(--red)}.feedback p{font-size:15px}.feedback small{color:var(--muted)}.notes{max-width:850px}.notes li{margin:12px 0;line-height:1.6;color:var(--muted)}details{padding:16px 0;border-bottom:1px solid var(--line)}summary{cursor:pointer}footer{border-top:1px solid var(--line);margin-top:55px;padding-top:25px;color:var(--muted);display:flex;justify-content:space-between;gap:40px;font-size:11px}footer>span{white-space:nowrap;font:10px monospace;padding-top:4px}footer p{margin:0;max-width:530px}#save-note{color:var(--red);font-size:12px}[hidden]{display:none!important}@media(max-width:760px){header{padding:20px}.logo small{display:none}main{padding:25px 20px}.intro{grid-template-columns:1fr;gap:20px}.specimen{display:none}.grid{grid-template-columns:1fr}.practice{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.section-head{align-items:flex-start;flex-direction:column}.round{padding:20px}.tabs{gap:20px;font-size:13px}footer{flex-direction:column;gap:15px}.round-head{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.extra-space{margin-top:30px}.source-link{border:0;background:transparent;color:var(--red);text-decoration:underline;text-underline-offset:4px;padding:4px;font-size:13px}.file-label{display:inline-block}.file-label input{display:block;margin-top:12px;max-width:100%;font-size:13px}.resource-list{margin:24px 0}.notes small{color:var(--muted)}.choice strong{margin-left:auto;white-space:nowrap;color:var(--green);font-size:12px}.stat strong{font-size:clamp(18px,2.2vw,26px)}.notes{overflow-wrap:anywhere}
.header-actions{display:flex;align-items:center;gap:22px}.header-actions a{font-size:13px;color:var(--muted);text-decoration:none}#theme-toggle{white-space:nowrap;font-weight:500}
:root[data-theme="light"]{color-scheme:light;--bg:#f6f4f0;--panel:#fff;--line:#d8dbe0;--muted:#59616f;--text:#202937;--red:#a3344c;--green:#246545}
[data-theme="light"] .button:not(.secondary){color:#fff}
[data-theme="light"] .choice{background:#f4f5f7}
[data-theme="light"] .choice.correct{background:#edf7ef}
[data-theme="light"] .choice.wrong{background:#fceef0}
[data-theme="light"] .progress,[data-theme="light"] .tabs span{background:#e2e5e9}
[data-theme="light"] .specimen{background:linear-gradient(140deg,#f6e3e7,#fff);border-color:#d7b2bb;box-shadow:0 20px 65px #73494e12}
[data-theme="light"] .barcode{color:#8a4254}
[data-theme="light"] .tubes i{border-color:#a3344c50;border-top-color:#a3344c;background:linear-gradient(0deg,#cc8190 50%,transparent 51%)}
[data-theme="light"] .tubes i:nth-child(2){border-top-color:#ac925b}[data-theme="light"] .tubes i:nth-child(3){border-top-color:#568399}
@media(max-width:760px){header{flex-wrap:wrap}.header-actions{width:100%;justify-content:space-between}#theme-toggle{padding:8px 12px}}
.course-banner{display:flex;align-items:center;justify-content:space-between;gap:20px}.course-banner p{margin:6px 0}.course-banner strong{color:var(--text)}.search-label{display:block;color:var(--muted);font-size:13px;margin-bottom:8px}.search-input,textarea{display:block;width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font:inherit;margin:8px 0 20px}.search-input:focus,textarea:focus{outline:2px solid var(--red);outline-offset:2px}textarea{resize:vertical;line-height:1.6}.category-filters{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.category-filters .selected{border-color:var(--red);color:var(--red)}#course-results{margin:20px 0}.course-card h3{font-size:18px;line-height:1.45}.course-card .num{margin-bottom:16px}.coverage{font-size:12px;line-height:1.7;margin-bottom:18px}.coverage span{display:block;color:var(--muted)}.coverage strong{display:block;font-weight:500;color:var(--text)}.course-card .source-link{margin-top:12px}.import-card{margin:16px 0}.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}.round-head>span{max-width:65%;line-height:1.5}.tabs{gap:20px}.course-card{min-width:0;overflow-wrap:anywhere}.notes>label{display:block;margin-top:20px}#import-file{max-width:100%}@media(max-width:760px){.course-banner{align-items:flex-start;flex-direction:column}.round-head>span{max-width:100%}.category-filters .button{font-size:12px;padding:9px 12px}}

.hearts{display:flex;align-items:center;gap:14px;margin-top:22px;flex-wrap:wrap}.hearts>span{font-size:30px;letter-spacing:5px;color:var(--red,#b94858)}.hearts small{color:var(--muted,#8e98a8)}

.adventure-intro{padding:30px 0}.adventure-intro h2{font-size:clamp(30px,5vw,48px);margin:12px 0}.game-rules{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}.game-rules span{padding:10px 14px;border:1px solid var(--line);border-radius:99px;background:var(--panel)}.campaign-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.campaign-emblem{font-size:40px;margin-bottom:16px}.mission-list{display:grid;gap:10px;margin:22px 0}.mission-button{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left}.mission-button small{font-size:11px}.mission-hud{display:flex;gap:20px;margin:12px 0;font-weight:600}.boss-arena{display:flex;gap:24px;align-items:center;padding:24px;margin:20px 0;border:2px solid #b65e79;border-radius:18px;background:rgba(182,94,121,.1)}.boss-arena h2{margin:6px 0 16px;font-size:clamp(23px,4vw,34px)}.boss-arena>div{flex:1}.boss-icon{font-size:52px}.boss-health{height:12px;border-radius:99px;background:rgba(128,128,128,.2);overflow:hidden}.boss-health i{display:block;height:100%;background:#b65e79;transition:width .3s}.boss-arena.defeated{border-color:#429a78}.rescue-button{margin:15px 12px 15px 0}.editor-note{margin-top:20px;padding:16px;border-left:3px solid #b88848;background:rgba(184,136,72,.09)}
@media(max-width:1000px){.campaign-grid{grid-template-columns:1fr}.mission-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.mission-list{grid-template-columns:1fr}.boss-arena{padding:16px;gap:12px}.boss-icon{font-size:30px}.game-rules span{font-size:12px}.mission-button{width:100%}}@media(prefers-reduced-motion:reduce){.boss-health i{transition:none}}

.mission-button{width:100%;cursor:pointer}.mission-button:hover{border-color:var(--red);background:rgba(180,90,110,.12)}.mission-button:active{transform:translateY(1px)}#session{scroll-margin-top:20px}

.focused-mission{max-width:660px;margin:0 auto}.focused-mission h3{font-size:clamp(24px,4vw,34px);margin:16px 0}.focused-mission .wide{margin-top:14px}.focused-mission>p:last-child{font-size:13px;margin-bottom:0}

.category-missions .focused-mission{max-width:none;width:100%;margin:0;display:flex;flex-direction:column}.category-missions .focused-mission h3{font-size:24px}.category-missions .game-rules{margin-top:auto}

.intro{grid-template-columns:1fr;gap:0}.intro .lede{max-width:680px}.shop-icon{display:block;font-size:38px;margin-bottom:18px}.shop-grid .card{display:flex;flex-direction:column}.shop-grid .card>strong{margin-top:auto;margin-bottom:18px}.equipped-badge{color:var(--red);font-weight:600;margin:0 0 18px}
:root[data-accent="accent-mint"]{--red:#91dfbc}:root[data-accent="accent-violet"]{--red:#c6a6ff}:root[data-accent="accent-gold"]{--red:#e6c574}
:root[data-theme="light"][data-accent="accent-mint"]{--red:#21664c}:root[data-theme="light"][data-accent="accent-violet"]{--red:#693e9c}:root[data-theme="light"][data-accent="accent-gold"]{--red:#78550b}

:root[data-world="theme-green"]{--bg:#0d211b;--panel:#17362b;--line:#37624e;--text:#e6f5df;--muted:#b1ccb8;--red:#99deb1;--green:#99deb1;color-scheme:dark}
:root[data-world="theme-aurora"]{--bg:#111c2a;--panel:#22263e;--line:#465372;--text:#edf6ff;--muted:#bdcbdc;--red:#9ce7de;--green:#b0e9cc;color-scheme:dark}
:root[data-world="theme-cosmic"]{--bg:#181329;--panel:#282139;--line:#51435e;--text:#fff3da;--muted:#d4bedc;--red:#efcf83;--green:#b0e9cc;color-scheme:dark}
html[data-world="theme-green"] body{background:radial-gradient(ellipse at top right,#235a3e55,transparent 65%),var(--bg)}html[data-world="theme-aurora"] body{background:radial-gradient(ellipse at top left,#26b7a233,transparent 50%),radial-gradient(ellipse at right,#963ee533,transparent 60%),var(--bg)}html[data-world="theme-cosmic"] body{background:radial-gradient(circle,#efcf8366 1px,transparent 1.5px) 0 0/53px 53px,var(--bg)}
:root[data-theme="light"][data-world="theme-green"]{--bg:#eef6ea;--panel:#fffef8;--line:#bccdb4;--text:#203729;--muted:#4b6251;--red:#286141;color-scheme:light}:root[data-theme="light"][data-world="theme-aurora"]{--bg:#eef1fc;--panel:#fcfcff;--line:#c8c7dd;--text:#292342;--muted:#605574;--red:#574192;color-scheme:light}:root[data-theme="light"][data-world="theme-cosmic"]{--bg:#f7f0e6;--panel:#fffaf2;--line:#d8c8b2;--text:#362740;--muted:#6c5675;--red:#805b15;color-scheme:light}
.antibody-cat{position:relative;width:88px;height:80px;margin:16px auto 10px;color:#17212a}.cat-ear{position:absolute;top:0;width:28px;height:36px;background:var(--fur);border:3px solid #26303a;transform:rotate(-18deg);border-radius:5px 20px 0 0}.cat-ear.left{left:5px}.cat-ear.right{right:5px;transform:rotate(18deg) scaleX(-1)}.cat-face{position:absolute;top:18px;width:88px;height:56px;display:flex;align-items:center;justify-content:center;gap:12px;background:var(--fur);border:3px solid #26303a;border-radius:40% 40% 45% 45%;font-size:23px}.antibody-cat>small{position:absolute;bottom:0;left:35px;background:#f3df9b;border:2px solid #26303a;border-radius:50%;font-size:12px;width:20px;text-align:center}.pet-companion{display:flex;align-items:center;gap:18px;border:1px solid var(--line);border-radius:14px;padding:8px 20px;margin-bottom:20px;width:fit-content;background:var(--panel)}.pet-companion .antibody-cat{margin:0;transform:scale(.7);width:88px}.pet-companion small{display:block;color:var(--muted)}.pet-companion .antibody-cat>small{color:#17212a}.pet-reveal{text-align:center;border:2px solid var(--red);border-radius:20px;padding:28px;margin:24px 0;background:var(--panel)}.pet-reveal .antibody-cat{transform:scale(1.25);margin:30px auto}.rarity{color:var(--red);text-transform:uppercase;letter-spacing:3px;font-size:12px}.pet-collection{margin-top:20px}.undiscovered .antibody-cat{filter:grayscale(1);opacity:.45}.capsule-card{background:radial-gradient(ellipse at top right,#8866cc22,transparent),var(--panel)}

.cat-art{display:block;width:160px;height:160px;object-fit:contain;margin:12px auto}.pet-reveal .cat-art{width:220px;height:220px}.undiscovered .cat-art{filter:grayscale(1);opacity:.55}
#pet-companion{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:20;width:150px;padding:0;margin:0;border:0;background:transparent;display:flex;flex-direction:column;gap:0;pointer-events:none;text-align:center;filter:drop-shadow(0 5px 7px #0003)}#pet-companion .cat-art{width:140px;height:140px;margin:0;animation:cat-float 3.5s ease-in-out infinite}#pet-companion>div{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:6px 8px;width:100%;font-size:11px}#pet-companion small{display:block;font-size:10px}
html[data-pet="equipped"] main{padding-bottom:220px}
@keyframes cat-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@media(min-width:1000px){html[data-pet="equipped"] main{padding-right:170px}}
@media(max-width:999px){#pet-companion{width:88px;right:8px;bottom:8px}#pet-companion .cat-art{width:82px;height:82px}#pet-companion>div{font-size:9px}#pet-companion small{font-size:9px}html[data-pet="equipped"] .round{padding-bottom:140px}}
@media(prefers-reduced-motion:reduce){#pet-companion .cat-art{animation:none}}

.level-progress{margin-top:16px;padding:8px 2px;display:flex;align-items:center;gap:18px}.exp-level{width:62px;height:62px;flex:0 0 62px;border:2px solid var(--red);border-radius:50%;background:var(--panel);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--red)}.exp-level>span{font:9px monospace;letter-spacing:2px}.exp-level strong{font-size:23px;line-height:1.2}.exp-meter{flex:1;min-width:0}.exp-caption,.exp-footer{display:flex;justify-content:space-between;align-items:center;gap:10px}.exp-caption{margin-bottom:9px;font-size:10px;letter-spacing:1.5px;color:var(--muted)}.exp-value{font-size:13px;font-weight:700;color:var(--text);letter-spacing:0}.exp-value small{font-size:10px;color:var(--muted);font-weight:400}.level-track{height:12px;background:var(--line);overflow:hidden;position:relative;border-radius:2px}.level-track i{display:block;height:100%;background:var(--red)}.level-track:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(5% - 3px),var(--bg) calc(5% - 3px),var(--bg) 5%);pointer-events:none}.exp-footer{margin-top:8px;color:var(--muted);font-size:10px}.exp-footer span:last-child{color:var(--red)}@media(max-width:480px){.level-progress{gap:12px}.exp-level{width:52px;height:52px;flex-basis:52px}.exp-caption{letter-spacing:.6px}.exp-footer{font-size:9px}}
