.sticker-book-root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:oklch(24% .045 147);--paper:oklch(98% .028 98);--paper-deep:oklch(92% .075 86);--ink:oklch(24% .045 147);--muted:oklch(45% .05 147);--grass:oklch(72% .18 136);--sky:oklch(83% .09 220);--berry:oklch(58% .2 26);--berry-soft:oklch(87% .095 28);--plum:oklch(42% .1 320);--blue:oklch(55% .16 235);--line:oklch(66% .075 98);--shadow:0 10px 0 oklch(42% .07 127/.14);--ease-out-quart:cubic-bezier(.25, 1, .5, 1);--ease-out-quint:cubic-bezier(.22, 1, .36, 1);--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;background:oklch(95% .05 133);font-family:Nunito,Avenir Next,Avenir,Segoe UI,sans-serif}.sticker-book-root{min-height:100%;margin:0;overflow-x:hidden}.sticker-book-root button{font:inherit}.app-shell{background-color:oklch(96% .052 129);background-image:linear-gradient(90deg,oklch(94% .07 141) 0 24px,#0000 24px 100%),linear-gradient(0deg,oklch(93% .06 130) 0 24px,#0000 24px 100%),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:96px 96px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-height:100vh;padding:clamp(12px,2.4vw,28px)}.top-bar{justify-content:space-between;align-items:center;gap:var(--space-md);width:min(100%,1540px);margin:0 auto;display:flex}.sticker-book-root h1,.sticker-book-root h2,.sticker-book-root p{margin:0}.sticker-book-root h1{color:var(--ink);font-size:clamp(1.8rem,3vw,3.1rem);line-height:1}.sticker-book-root h2{font-size:1rem;line-height:1.1}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.language-toggle,.top-actions,.scenario-selector,.character-picker,.panel-heading{align-items:center;display:flex}.top-actions{justify-content:flex-end;gap:var(--space-sm)}.language-toggle{gap:var(--space-xs);min-height:56px;padding:var(--space-xs);border:2px solid var(--ink);background:var(--paper);box-shadow:var(--shadow);border-radius:8px;margin:0}.language-toggle button,.scenario-selector button,.character-picker button,.reset-button{border:2px solid var(--ink);background:var(--paper);min-height:44px;color:var(--ink);cursor:pointer;touch-action:manipulation;border-radius:8px;font-weight:900}.language-toggle button{min-width:92px;padding:0 var(--space-md)}.language-toggle button.is-active,.scenario-selector button.is-active,.character-picker button.is-active{background:var(--berry-soft);color:var(--ink);transform:translateY(-2px)}.scenario-selector,.character-picker{gap:var(--space-xs);min-width:0}.scenario-selector{flex-wrap:wrap}.scenario-selector button,.character-picker button{align-items:center;gap:var(--space-xs);padding:0 var(--space-md);display:inline-flex}.scenario-selector button:disabled{cursor:not-allowed;opacity:.56}.scenario-selector small{color:var(--muted);font-size:.72rem;font-weight:900}.game-layout{gap:var(--space-lg);grid-template-columns:minmax(0,1fr) minmax(320px,420px);align-items:start;width:min(100%,1540px);margin:0 auto;display:grid}.stage-shell{min-width:0;min-height:0;position:relative}.stage{aspect-ratio:16/10;border:3px solid var(--ink);background:var(--sky);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:8px;width:100%;min-height:0;position:relative;overflow:hidden;box-shadow:0 14px oklch(35% .07 144/.18)}.stage-background{object-fit:cover;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.placed-item{cursor:grab;pointer-events:none;touch-action:none;background:0 0;border:0;width:clamp(56px,8vw,94px);height:clamp(56px,8vw,94px);margin:0;padding:0;position:absolute;transform:translate(-50%,-50%)}.placed-item.is-selected:after{content:"";pointer-events:none;border:3px solid oklch(70% .16 63);border-radius:16px;position:absolute;inset:-7px;box-shadow:0 0 0 4px oklch(98% .04 88/.82)}.placed-character{width:clamp(120px,16vw,220px);height:auto}.placed-character.is-selected:after{border-radius:22px;inset:-8px -10px}.placed-item:active{cursor:grabbing}.placed-item img,.drag-ghost img{object-fit:contain;filter:drop-shadow(0 6px oklch(26% .05 93/.14));pointer-events:none;width:100%;height:100%}.placed-character img{filter:drop-shadow(0 7px oklch(30% .05 90/.16));height:auto}.drag-ghost{z-index:20;pointer-events:none;transform-origin:50%;width:92px;height:92px;position:fixed;top:0;left:0}.resize-toolbar{z-index:18;gap:var(--space-2xs);padding:var(--space-2xs);border:2px solid var(--ink);background:var(--paper);box-shadow:var(--shadow);border-radius:8px;align-items:center;display:flex;position:absolute;transform:translate(-50%,-100%)}.resize-toolbar button{border:2px solid var(--ink);background:var(--berry-soft);width:46px;height:46px;min-height:46px;color:var(--ink);cursor:pointer;touch-action:manipulation;border-radius:8px;place-items:center;padding:0;display:grid}.resize-toolbar button:disabled{color:color-mix(in oklch, var(--ink) 45%, transparent);cursor:not-allowed;background:oklch(91% .025 94);transform:none}.side-panel{gap:var(--space-md);min-height:0;display:grid}.item-tray,.sticker-journal{border:3px solid var(--ink);background:var(--paper);box-shadow:var(--shadow);border-radius:8px}.item-tray{padding:var(--space-md)}.panel-heading{justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-md)}.tray-group-title{margin:var(--space-sm) 0 var(--space-xs);color:var(--muted);font-size:.8rem;font-weight:900}.panel-heading+.tray-group-title{margin-top:0}.tray-grid{gap:var(--space-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.tray-item{gap:var(--space-xs);min-height:112px;padding:var(--space-sm);border:2px solid var(--ink);color:var(--ink);cursor:grab;text-align:center;touch-action:none;-webkit-user-select:none;user-select:none;background:oklch(96% .053 84);border-radius:8px;place-items:center;font-size:.92rem;font-weight:900;display:grid}.tray-item:active{cursor:grabbing}.tray-item img{object-fit:contain;pointer-events:none;width:58px;height:58px}.sticker-journal{gap:var(--space-md);padding:var(--space-md);display:grid}.sticker-grid{align-items:start;gap:var(--space-xs);flex-wrap:wrap;display:flex}.word-sticker{justify-content:start;align-items:center;gap:var(--space-xs);max-width:210px;min-height:58px;padding:var(--space-xs) var(--space-sm);border:2px solid var(--ink);background:var(--berry-soft);text-align:left;border-radius:8px;grid-template-columns:38px minmax(0,max-content);display:inline-grid}.word-sticker img{object-fit:contain;pointer-events:none;width:38px;height:38px}.word-sticker-text{gap:1px;min-width:0;display:grid}.word-sticker strong{font-size:.94rem;line-height:1.05}.word-sticker-text span,.journal-empty{color:var(--muted);font-size:.78rem;font-weight:800;line-height:1.05}.reset-button{justify-content:center;align-items:center;gap:var(--space-xs);background:oklch(95% .04 232);display:inline-flex}.reset-button-compact{min-width:110px;min-height:56px;padding:0 var(--space-md);box-shadow:var(--shadow)}.sticker-book-root button:focus-visible{outline-offset:3px;outline:4px solid oklch(77% .17 70)}@media (width<=980px){.top-bar{flex-direction:column;align-items:stretch}.top-actions{justify-content:space-between}.language-toggle{justify-content:center}.game-layout{grid-template-columns:1fr}.side-panel{grid-template-columns:minmax(0,1fr) minmax(260px,.7fr)}.stage{min-height:420px}}@media (width>=981px){.sticker-book-root{height:100%}.app-shell{gap:var(--space-md);grid-template-rows:auto minmax(0,1fr);height:100dvh;display:grid;overflow:hidden}.game-layout{grid-template-rows:minmax(0,1fr);grid-template-areas:"stage tray";align-items:stretch;min-height:0}.stage-shell{grid-area:stage;place-items:start stretch;display:grid;container-type:size}.stage{width:min(100cqw,160cqh);height:min(100cqh,62.5cqw)}.side-panel{display:contents}.item-tray,.sticker-journal{min-height:0;overflow:auto}.item-tray{grid-area:tray}.tray-grid{gap:var(--space-xs);grid-template-columns:repeat(3,minmax(0,1fr))}.tray-item{min-height:94px;padding:var(--space-xs);font-size:.84rem}.tray-item img{width:48px;height:48px}.tray-character img{width:42px;height:60px}}@media (width>=1180px) and (height<=820px){.app-shell{padding-block:var(--space-sm);gap:var(--space-sm)}.language-toggle{min-height:48px;padding:var(--space-2xs)}.language-toggle button,.scenario-selector button,.reset-button{min-height:40px}.item-tray,.sticker-journal{padding:var(--space-sm)}.panel-heading{margin-bottom:var(--space-sm)}.word-sticker{min-height:62px}}@media (width<=720px){.app-shell{padding:var(--space-md)}.side-panel{grid-template-columns:1fr}.stage{min-height:360px}.tray-grid{grid-template-columns:repeat(2,minmax(132px,1fr))}}@media (width<=1260px){.sticker-book-root{height:100%;min-height:0}.app-shell{gap:var(--space-sm);height:100dvh;min-height:0;padding:var(--space-sm);grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}.top-bar{gap:var(--space-sm)}.scenario-selector button,.language-toggle button,.reset-button{min-height:42px}.scenario-selector button{padding-inline:var(--space-sm)}.language-toggle{min-height:50px;padding:var(--space-2xs)}.reset-button-compact{min-height:50px}.game-layout{gap:var(--space-sm);grid-template:"stage"minmax(0,1fr)/1fr;min-height:0;padding-bottom:clamp(118px,17dvh,148px);display:grid;position:relative;overflow:hidden}.stage-shell{grid-area:stage;place-items:start center;min-height:0;display:grid;container-type:inline-size}.stage{width:min(100%,160dvh - 368px);height:min(100%,62.5cqw);min-height:0}.side-panel{display:contents}.item-tray{right:max(var(--space-sm), env(safe-area-inset-right));bottom:max(var(--space-sm), env(safe-area-inset-bottom));left:max(var(--space-sm), env(safe-area-inset-left));z-index:24;gap:var(--space-xs);max-width:none;min-height:102px;max-height:none;padding:var(--space-xs);overscroll-behavior-x:contain;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;grid-area:auto;align-items:stretch;display:flex;position:fixed;overflow:auto hidden}.item-tray .panel-heading{text-align:center;flex:none;place-content:center;width:70px;margin-bottom:0}.item-tray .panel-heading svg{display:none}.tray-group-title{writing-mode:vertical-rl;text-orientation:mixed;flex:none;align-self:center;margin:0;font-size:.76rem;line-height:1}.tray-grid{gap:var(--space-xs);scroll-snap-type:none;flex:none;grid-template-columns:none;display:flex;overflow:visible}.tray-item{gap:var(--space-2xs);min-height:82px;padding:var(--space-xs);scroll-snap-align:start;flex:0 0 88px;font-size:.74rem}.tray-item img{width:44px;height:44px}.tray-character img{width:36px;height:52px}}@media (width>=760px) and (width<=1260px){.top-bar{flex-direction:row;align-items:center}.top-actions{flex:none;margin-left:auto}.scenario-selector{flex:auto}}.sticker-book-root{height:100%;min-height:0}.app-shell{gap:var(--space-sm);grid-template-rows:auto minmax(0,1fr);height:100dvh;min-height:0;display:grid;overflow:hidden}.game-layout{gap:var(--space-sm);grid-template:"stage"minmax(0,1fr)/1fr;min-height:0;padding-bottom:clamp(118px,17dvh,148px);display:grid;position:relative;overflow:hidden}.stage-shell{grid-area:stage;place-items:start center;min-height:0;display:grid;container-type:inline-size}.stage{width:min(100%,160dvh - 368px);height:min(100%,62.5cqw);min-height:0}.side-panel{display:contents}.item-tray{right:max(var(--space-sm), env(safe-area-inset-right));bottom:max(var(--space-sm), env(safe-area-inset-bottom));left:max(var(--space-sm), env(safe-area-inset-left));z-index:24;gap:var(--space-xs);max-width:none;min-height:102px;max-height:none;padding:var(--space-xs);overscroll-behavior-x:contain;scroll-snap-type:x proximity;transition:inset .24s var(--ease-out-quart), width .24s var(--ease-out-quart), height .24s var(--ease-out-quart), min-height .24s var(--ease-out-quart), max-height .24s var(--ease-out-quart), border-radius .18s var(--ease-out-quart), box-shadow .18s var(--ease-out-quart), opacity .16s var(--ease-out-quart), transform .24s var(--ease-out-quart);will-change:transform;-webkit-overflow-scrolling:touch;grid-area:auto;align-items:stretch;display:flex;position:fixed;overflow:auto hidden}.item-tray .panel-heading{text-align:center;flex:none;place-content:center;width:70px;margin-bottom:0}.item-tray .panel-heading svg{display:none}.tray-group-title{writing-mode:vertical-rl;text-orientation:mixed;flex:none;align-self:center;margin:0;font-size:.76rem;line-height:1}.tray-grid{gap:var(--space-xs);scroll-snap-type:none;flex:none;grid-template-columns:none;display:flex;overflow:visible}.tray-group-title,.tray-grid{transition:opacity .14s var(--ease-out-quart), transform .18s var(--ease-out-quart)}.tray-item{gap:var(--space-2xs);min-height:82px;padding:var(--space-xs);scroll-snap-align:start;flex:0 0 88px;font-size:.74rem}.tray-item img{width:44px;height:44px}.tray-character img{width:36px;height:52px}.dock-drag-handle{z-index:35;border:2px solid var(--ink);width:44px;height:44px;min-height:44px;color:var(--ink);cursor:grab;touch-action:none;transition:background-color .16s var(--ease-out-quart), box-shadow .16s var(--ease-out-quart), transform .16s var(--ease-out-quart);-webkit-user-select:none;user-select:none;background:oklch(95% .04 232);border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;box-shadow:0 4px oklch(42% .07 127/.15)}.app-shell.tray-dock-left .dock-drag-handle,.app-shell.tray-dock-right .dock-drag-handle{top:50%;transform:translateY(-50%)}.app-shell.tray-dock-left .dock-drag-handle{left:calc(clamp(110px, 12vw, 152px) + var(--space-xs))}.app-shell.tray-dock-right .dock-drag-handle{right:calc(clamp(110px, 12vw, 152px) + var(--space-xs))}.app-shell.tray-dock-bottom .dock-drag-handle{bottom:calc(102px + var(--space-xs));left:50%;transform:translate(-50%)}.dock-handle-dots{background:var(--ink);width:4px;height:4px;box-shadow:0 -8px 0 var(--ink), 0 8px 0 var(--ink), 9px -8px 0 var(--ink), 9px 0 0 var(--ink), 9px 8px 0 var(--ink);border-radius:999px;transform:translate(-4.5px)}.dock-drag-handle:active,.dock-drag-handle.is-dragging{background:var(--berry-soft);cursor:grabbing;box-shadow:0 8px oklch(42% .07 127/.16)}.app-shell.tray-dock-left .dock-drag-handle:active,.app-shell.tray-dock-left .dock-drag-handle.is-dragging,.app-shell.tray-dock-right .dock-drag-handle:active,.app-shell.tray-dock-right .dock-drag-handle.is-dragging{transform:translateY(-50%)scale(1.04)}.app-shell.tray-dock-bottom .dock-drag-handle:active,.app-shell.tray-dock-bottom .dock-drag-handle.is-dragging{transform:translate(-50%)scale(1.04)}.dock-drop-layer{z-index:40;pointer-events:none;position:absolute;inset:0}.dock-drop-target{justify-content:center;align-items:center;gap:var(--space-xs);border:4px dashed var(--ink);background:color-mix(in oklch, var(--berry-soft) 84%, var(--paper));min-width:96px;min-height:76px;color:var(--ink);cursor:copy;letter-spacing:0;opacity:.92;pointer-events:auto;text-transform:capitalize;touch-action:none;transition:background-color .18s var(--ease-out-quart), border-color .18s var(--ease-out-quart), box-shadow .22s var(--ease-out-quart), opacity .18s var(--ease-out-quart), transform .22s var(--ease-out-quart);border-radius:8px;font-size:.88rem;font-weight:1000;display:flex;position:absolute}.dock-drop-target.is-current{background:color-mix(in oklch, var(--sky) 68%, var(--paper))}.dock-drop-target.is-hovered{background:color-mix(in oklch, var(--grass) 38%, var(--paper));opacity:1;border-style:solid;transform:scale(1.015);box-shadow:0 16px oklch(42% .07 127/.16)}.dock-drop-target:after{border:2px solid var(--ink);background:linear-gradient(var(--ink), var(--ink)) center 13px / 22px 3px no-repeat, linear-gradient(var(--ink), var(--ink)) center 20px / 22px 3px no-repeat, linear-gradient(var(--ink), var(--ink)) center 27px / 22px 3px no-repeat, var(--paper);content:"";opacity:0;width:42px;height:42px;transition:border-radius .22s var(--ease-out-quint), height .26s var(--ease-out-quint), opacity .16s var(--ease-out-quart), transform .26s var(--ease-out-quint), width .26s var(--ease-out-quint);border-radius:12px;display:block;position:absolute;transform:scale(.72);box-shadow:0 5px oklch(42% .07 127/.13)}.dock-drop-target.is-hovered:after{opacity:.94;transform:scale(1)}.dock-drop-target-left,.dock-drop-target-right{top:var(--space-sm);bottom:var(--space-sm);writing-mode:vertical-rl;width:clamp(108px,14vw,172px)}.dock-drop-target-left:after,.dock-drop-target-right:after{width:52%;height:72%}.dock-drop-target-left{left:var(--space-sm)}.dock-drop-target-right{right:var(--space-sm)}.dock-drop-target-bottom{right:var(--space-sm);bottom:var(--space-sm);left:var(--space-sm);height:clamp(92px,16dvh,142px)}.dock-drop-target-bottom:after{width:min(56%,520px);height:48%}.app-shell.tray-dock-bottom .game-layout{padding-bottom:clamp(118px,17dvh,148px);padding-left:0;padding-right:0}.app-shell.tray-dock-left .game-layout,.app-shell.tray-dock-right .game-layout{padding-bottom:0}.app-shell.tray-dock-left .game-layout{padding-left:clamp(122px,14vw,172px)}.app-shell.tray-dock-right .game-layout{padding-right:clamp(122px,14vw,172px)}.item-tray{position:absolute}.app-shell.tray-dock-bottom .item-tray{overscroll-behavior-x:contain;overscroll-behavior-y:auto;scroll-snap-type:x proximity;flex-direction:row;max-width:none;min-height:102px;max-height:none;inset:auto 0 0;overflow:auto hidden}.app-shell.tray-dock-left .item-tray,.app-shell.tray-dock-right .item-tray{overscroll-behavior-x:auto;overscroll-behavior-y:contain;scroll-snap-type:y proximity;flex-direction:column;width:clamp(110px,12vw,152px);min-height:0;max-height:none;top:0;bottom:0;overflow:hidden auto}.app-shell.tray-dock-left .item-tray{left:0;right:auto}.app-shell.tray-dock-right .item-tray{left:auto;right:0}.app-shell.tray-dock-left .tray-group-title,.app-shell.tray-dock-right .tray-group-title{writing-mode:horizontal-tb;text-align:center;align-self:stretch}.app-shell.tray-dock-left .tray-grid,.app-shell.tray-dock-right .tray-grid{flex-direction:column;width:100%}.app-shell.tray-dock-left .tray-item,.app-shell.tray-dock-right .tray-item{touch-action:pan-y;flex:0 0 88px;width:100%}.app-shell.tray-dock-bottom .tray-item{touch-action:pan-x}.app-shell.tray-dock-left .stage,.app-shell.tray-dock-right .stage{width:min(100%,160dvh - 179.2px)}.app-shell.tray-dock-left .item-tray{transform-origin:0}.app-shell.tray-dock-right .item-tray{transform-origin:100%}.app-shell.tray-dock-bottom .item-tray{transform-origin:bottom}.app-shell.is-dock-dragging .item-tray{opacity:.82;pointer-events:none;border-radius:22px;overflow:hidden}.app-shell.is-dock-dragging .tray-group-title,.app-shell.is-dock-dragging .tray-grid{opacity:0;transition:opacity .14s var(--ease-out-quart), transform .18s var(--ease-out-quart);transform:scale(.92)}.app-shell.is-dock-dragging.tray-dock-left .item-tray,.app-shell.is-dock-dragging.tray-dock-right .item-tray{width:124px;height:124px;min-height:124px;top:50%;bottom:auto;transform:translateY(-50%)scale(.94)}.app-shell.is-dock-dragging.tray-dock-bottom .item-tray{width:124px;height:124px;min-height:124px;left:50%;right:auto;transform:translate(-50%)scale(.94)}.app-shell.is-dock-dragging.dock-preview-left .item-tray,.app-shell.is-dock-dragging.dock-preview-right .item-tray{width:clamp(110px,12vw,152px);height:auto;min-height:0;top:0;bottom:0;transform:none}.app-shell.is-dock-dragging.dock-preview-left .item-tray{left:0;right:auto}.app-shell.is-dock-dragging.dock-preview-right .item-tray{left:auto;right:0}.app-shell.is-dock-dragging.dock-preview-bottom .item-tray{width:auto;height:auto;min-height:102px;inset:auto 0 0;transform:none}@media (prefers-reduced-motion:reduce){.item-tray,.dock-drag-handle,.dock-drop-target,.dock-drop-target:after,.app-shell.is-dock-dragging .tray-group-title,.app-shell.is-dock-dragging .tray-grid{transition-duration:.01ms}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;--bg:#05070b;--bg-2:#0a1118;--surface:#101821;--surface-2:#162431;--ink:#f7fbff;--muted:#abc1cf;--line:#ffffff24;--cyan:#69ddff;--cyan-strong:#12b9ee;--gold:#ffd35b;--gold-strong:#ffad2f;--mint:#8ef0bc;--mint-strong:#33d987;--lime:#a6ff7a;--lime-strong:#5fd93b;--coral:#ff8ea5;--coral-strong:#f68;--danger:#ff6f5f;--shadow:0 22px 60px #00000059;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--ink);margin:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}button,a{font:inherit}a{color:inherit}.portal-shell{background:linear-gradient(180deg, #0b1f2be0, #05070bf5 48%), radial-gradient(circle at 18% 14%, #69ddff2e, transparent 26rem), radial-gradient(circle at 84% 24%, #ffd35b1f, transparent 24rem), var(--bg);min-height:100vh;padding:28px}.portal-shell--centered{place-items:center;display:grid}.portal-header{justify-content:space-between;align-items:end;gap:24px;max-width:1120px;margin:0 auto 24px;padding:16px 0;display:flex}.eyebrow{color:var(--cyan);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:.78rem;font-weight:800}.portal-header h1,.not-found-panel h1{letter-spacing:0;text-wrap:balance;margin:0;font-size:3.25rem;line-height:.96}.portal-summary{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.portal-summary span{border:1px solid var(--line);background:#ffffff0d;border-radius:999px;padding:8px 10px;font-size:.9rem}.game-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;max-width:1120px;margin:0 auto;display:grid}.game-card{border:1px solid var(--line);min-height:260px;box-shadow:var(--shadow);background:linear-gradient(135deg,#ffffff14,#ffffff08);border-radius:8px;grid-template-columns:minmax(160px,.72fr) 1fr;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid;overflow:hidden}.game-card[data-selected=true]{border-color:color-mix(in srgb, var(--card-accent,var(--cyan)) 74%, #fff);box-shadow:var(--shadow), 0 0 0 3px color-mix(in srgb, var(--card-accent,var(--cyan)) 42%, transparent), 0 0 36px color-mix(in srgb, var(--card-accent,var(--cyan)) 28%, transparent);transform:translateY(-2px)}.game-card--cyan{--card-accent:var(--cyan);--card-accent-strong:var(--cyan-strong)}.game-card--gold{--card-accent:var(--gold);--card-accent-strong:var(--gold-strong)}.game-card--mint{--card-accent:var(--mint);--card-accent-strong:var(--mint-strong)}.game-card--lime{--card-accent:var(--lime);--card-accent-strong:var(--lime-strong)}.game-card--coral{--card-accent:var(--coral);--card-accent-strong:var(--coral-strong)}.game-card__content{background:#05070b94;flex-direction:column;justify-content:center;align-items:flex-start;padding:24px;display:flex}.game-card__meta{color:var(--muted);flex-wrap:wrap;gap:8px;margin-bottom:14px;font-size:.86rem;display:flex}.game-card__meta span{border:1px solid #ffffff21;border-radius:999px;padding:5px 8px}.game-card h2{margin:0;font-size:1.55rem;line-height:1.08}.game-card p{max-width:42ch;color:var(--muted);margin:10px 0 22px;line-height:1.5}.button{border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;min-height:42px;padding:0 16px;font-weight:800;text-decoration:none;display:inline-flex}.button--primary{color:#021017;background:var(--card-accent,var(--cyan));box-shadow:0 0 22px color-mix(in srgb, var(--card-accent,var(--cyan)) 32%, transparent)}.button--primary:hover,.button--primary:focus-visible{background:var(--card-accent-strong,var(--cyan-strong))}.button:focus-visible,.game-back:focus-visible,.start-button:focus-visible{outline-offset:3px;outline:3px solid #fff}.game-preview{background:linear-gradient(160deg, #071621fa, #020509fa), var(--bg-2);min-height:260px;position:relative;overflow:hidden}.game-preview:before{content:"";opacity:.65;background-image:radial-gradient(circle,#fffc 0 1px,#0000 1.5px),linear-gradient(120deg,#0000 0 36%,#ffffff14 37% 38%,#0000 39%);background-size:46px 46px,100% 100%;position:absolute;inset:0}.preview-star,.preview-ship,.preview-rock,.preview-orbit,.preview-sticker{display:block;position:absolute}.preview-immune-cell,.preview-bacterium{display:none;position:absolute}.preview-star{background:#fff;border-radius:50%;width:7px;height:7px;box-shadow:0 0 14px #fff}.preview-star--one{top:28px;left:34px}.preview-star--two{top:78px;right:48px}.preview-star--three{bottom:42px;left:62%}.preview-ship{border-top:18px solid #0000;border-bottom:18px solid #0000;border-left:34px solid var(--card-accent,var(--cyan));width:0;height:0;filter:drop-shadow(0 0 16px color-mix(in srgb, var(--card-accent,var(--cyan)) 62%, transparent));top:45%;left:42%}.preview-rock{border:2px solid #ffffffd1;border-radius:45% 54% 48% 42%;width:54px;height:48px;transform:rotate(-18deg)}.preview-rock--one{bottom:36px;left:28px}.preview-rock--two{width:42px;height:38px;top:34px;right:24px;transform:rotate(22deg)}.preview-orbit{border:1px solid color-mix(in srgb, var(--card-accent,var(--cyan)) 42%, transparent);border-radius:50%;width:150px;height:92px;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-18deg)}.game-preview--star-catcher .preview-rock--one,.game-preview--star-catcher .preview-rock--two{background:#ff895f1f;border-color:#ff895f}.game-preview--sticker-book{background:linear-gradient(160deg, #0f2620fa, #030a0dfa), var(--bg-2)}.game-preview--sticker-book .preview-ship,.game-preview--sticker-book .preview-rock,.game-preview--sticker-book .preview-orbit{display:none}.preview-sticker{background:var(--card-accent,var(--mint));border:3px solid #fff;border-radius:12px;box-shadow:0 8px #ffffff1f}.preview-sticker--one{width:78px;height:64px;top:34%;left:28%;transform:rotate(-10deg)}.preview-sticker--two{background:#ffd35b;border-radius:50%;width:58px;height:58px;bottom:24%;right:22%;transform:rotate(14deg)}.game-preview--lizard-lunch{background:linear-gradient(160deg, #0a2018fa, #030e0afa), var(--bg-2)}.game-preview--lizard-lunch .preview-ship,.game-preview--lizard-lunch .preview-rock,.game-preview--lizard-lunch .preview-orbit{display:none}.game-preview--lizard-lunch .preview-sticker{background:#3cc777;border-radius:50% 50% 48% 48%}.game-preview--lizard-lunch .preview-sticker--one{width:64px;height:56px;top:56%;left:30%}.game-preview--lizard-lunch .preview-sticker--two{background:var(--card-accent,var(--lime));width:30px;height:30px;top:26%;right:26%}.game-preview--lizard-lunch .preview-star{background:var(--card-accent,var(--lime))}.game-preview--immune{background:radial-gradient(circle at 52% 52%,#ff6d8c57,#0000 33%),linear-gradient(150deg,#45224f,#151832 72%)}.game-preview--immune .preview-ship,.game-preview--immune .preview-rock,.game-preview--immune .preview-orbit,.game-preview--immune .preview-sticker{display:none}.game-preview--immune .preview-immune-cell,.game-preview--immune .preview-bacterium{display:block}.preview-immune-cell{border:3px solid #ffffffe0;border-radius:44% 56% 49% 51%;box-shadow:0 0 20px #ffffff3d}.preview-immune-cell:after{content:"";background:#1d376ca3;border-radius:50%;width:32%;height:32%;position:absolute}.preview-immune-cell--one{background:#58d7ff;width:74px;height:68px;top:38%;left:24%;transform:rotate(-12deg)}.preview-immune-cell--one:after{top:34%;left:28%}.preview-immune-cell--two{background:#8df29a;width:54px;height:54px;bottom:22%;right:24%}.preview-immune-cell--two:after{top:33%;left:36%}.preview-bacterium{background:#ef507d;border:2px solid #721b4b;border-radius:999px;width:42px;height:20px;box-shadow:inset 8px 0 #ffffff2e}.preview-bacterium--one{top:24%;right:14%;transform:rotate(24deg)}.preview-bacterium--two{bottom:19%;left:47%;transform:rotate(-18deg)scale(.72)}.not-found-panel{border:1px solid var(--line);background:#101821e6;border-radius:8px;width:min(520px,100%);padding:28px}.not-found-panel p:not(.eyebrow){color:var(--muted)}.game-route{background:#000;width:100vw;height:100dvh;position:relative;overflow:hidden}.game-chrome{z-index:60;color:#f7fbff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#02060aad;border:1px solid #ffffff2e;border-radius:7px;align-items:center;gap:10px;padding:7px 9px;font-size:.9rem;display:flex;position:fixed;top:14px;right:16px}.game-back{color:#020509;background:#fff;border-radius:5px;align-items:center;min-height:32px;padding:0 10px;font-weight:800;text-decoration:none;display:inline-flex}.game-loader{z-index:70;color:#fff;background:#02060acc;border:1px solid #fff3;border-radius:8px;padding:16px 18px;font-weight:800;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.game-loader--error{color:#ffe8e5;border-color:#ff6f5f8c}.asteroids-game{background:#000;font-family:Courier New,monospace;position:absolute;inset:0;overflow:hidden}#game{width:100%;height:100%;display:block}#hud{z-index:10;pointer-events:none;text-shadow:0 0 6px #fff6;grid-template-columns:1fr auto 1fr;align-items:flex-start;width:100%;padding:12px 20px;font-family:Courier New,monospace;font-size:16px;display:grid;position:absolute;top:0;left:0}#hud-players{grid-template-columns:repeat(2,minmax(120px,max-content));gap:10px 18px;display:grid}#hud .right{text-align:right}#hud .center{text-align:center}.player-hud{flex-direction:column;gap:2px;display:flex}.player-hud .score{font-size:18px}.player-hud .respawns{font-size:14px}.player-hud .powerups{flex-wrap:wrap;gap:4px;font-size:10px;display:flex}.player-hud .out-label{color:#f44;margin-top:2px;font-size:12px}.overlay{z-index:20;color:#fff;opacity:1;pointer-events:none;text-align:center;flex-direction:column;justify-content:center;align-items:center;font-family:Courier New,monospace;transition:opacity .3s;display:flex;position:absolute;inset:0}.overlay.hidden{opacity:0;pointer-events:none}.overlay h1{text-shadow:0 0 20px #fff;margin:0 0 8px;font-size:48px}.overlay p{opacity:.85;margin:0;font-size:18px}.overlay .sub{opacity:.6;margin-top:16px;font-size:14px}.start-button{color:#000;cursor:pointer;pointer-events:auto;background:#fff;border:1px solid #fff;margin-top:22px;padding:10px 28px;font:700 20px Courier New,monospace;box-shadow:0 0 18px #ffffff73}.start-button--gold{border-color:var(--gold);background:var(--gold);box-shadow:0 0 22px #ffd35b61}.player-select{pointer-events:auto;border:0;gap:8px;margin:14px 0 16px;padding:0;display:flex}.player-select button{color:#fff;cursor:pointer;background:#050505;border:1px solid #ffffff8c;padding:8px 12px;font:700 16px Courier New,monospace}.player-select button.selected{color:#000;background:#fff;box-shadow:0 0 16px #ffffff8c}.start-note{margin-top:8px}.start-after{margin-top:12px}.gp-status{opacity:.5;margin-top:12px;font-size:13px}.star-catcher-canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.star-hud{z-index:40;color:#f7fbff;gap:8px;font-weight:800;display:flex;position:fixed;top:14px;left:16px}.star-hud span{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#02060aa8;border:1px solid #ffffff2e;border-radius:7px;padding:9px 10px}.star-overlay{z-index:45;width:min(420px,100vw - 32px);box-shadow:var(--shadow);text-align:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#04090ed1;border:1px solid #ffffff2e;border-radius:8px;padding:26px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.star-overlay h1{margin:0;font-size:2.25rem;line-height:1}.star-overlay p:not(.eyebrow){color:var(--muted);margin:12px auto 0;line-height:1.5}.game-route--lizard-lunch{--accent:var(--lime)}.lizard-canvas{touch-action:manipulation;width:100%;height:100%;display:block;position:absolute;inset:0}.lizard-hud{z-index:40;color:#f2fff0;flex-wrap:wrap;gap:8px;max-width:min(680px,100vw - 180px);font-weight:800;display:flex;position:fixed;top:14px;left:16px}.lizard-hud span{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#04100ca8;border:1px solid #a6ff7a52;border-radius:7px;padding:9px 10px}.lizard-hud .lizard-hud__warning{color:#ffe7a0;background:#3a2608c2;border-color:#ffd35b94}.lizard-keyboard{z-index:40;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#04100cbd;border:1px solid #a6ff7a33;border-radius:16px;flex-direction:column;gap:8px;width:min(680px,100vw - 24px);padding:12px;display:flex;position:fixed;bottom:14px;left:50%;transform:translate(-50%)}.lizard-keyboard.is-paused{border-color:#ffd35b6b}.lizard-keyrow{justify-content:center;gap:6px;display:flex}.lizard-key{aspect-ratio:1;color:#eafff2;cursor:pointer;background:#14241ce6;border:1px solid #ffffff29;border-radius:10px;flex:1 1 0;min-width:0;max-width:58px;font:700 clamp(15px,4.4vw,22px) Inter,system-ui,sans-serif;transition:transform 80ms,background .12s,box-shadow .12s}.lizard-key:active{transform:scale(.92)}.lizard-key.is-hint{color:var(--lime);border-color:#a6ff7a80}.lizard-key.is-next{border-color:var(--lime);background:var(--lime);color:#07140d;transform:scale(1.04);box-shadow:0 0 18px #a6ff7a99}.lizard-key:disabled{cursor:not-allowed;opacity:.58;transform:none}.lizard-overlay{z-index:45;width:min(460px,100vw - 32px);box-shadow:var(--shadow);text-align:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#04100cdb;border:1px solid #a6ff7a3d;border-radius:8px;padding:28px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.lizard-overlay h1{margin:0;font-size:2.4rem;line-height:1}.lizard-overlay p:not(.eyebrow){color:var(--muted);margin:12px auto 0;line-height:1.5}.lizard-report{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px;display:flex}.lizard-report span{color:#dfffe8;background:#14241cc7;border:1px solid #a6ff7a33;border-radius:7px;padding:9px 10px}.lizard-report strong{color:#fff}.lizard-modes{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px;display:flex}.lizard-mode{color:#eafff2;cursor:pointer;background:#14241ce6;border:1px solid #a6ff7a8c;border-radius:10px;padding:14px 20px;font:700 18px Inter,system-ui,sans-serif;transition:transform .1s,box-shadow .12s}.lizard-mode:hover{transform:translateY(-2px)}.lizard-mode--again,.lizard-mode--letters{border-color:var(--lime);background:var(--lime);color:#07140d;box-shadow:0 0 22px #a6ff7a52}.game-route--immune{--immune-ink:#fff9fc;--immune-muted:#d9c9dd;--immune-panel:#15112be6;--immune-line:#ffe8f43d;--immune-pink:#ff8ea5;--immune-gold:#ffe48d;--immune-green:#8df29a;color:var(--immune-ink);background:#15152d}.immune-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.immune-chrome{background:#140f27c7;border-color:#ffe8f442}.immune-sound-toggle{color:#fff4ad;cursor:pointer;background:#594571c2;border:1px solid #ffe8f44d;border-radius:50%;place-items:center;width:36px;height:36px;padding:0;transition:background .15s,color .15s,transform .15s;display:grid}.immune-sound-toggle svg{width:18px;height:18px}.immune-sound-toggle:hover{background:#755990f5;transform:translateY(-1px)}.immune-sound-toggle.is-muted{color:var(--immune-muted);background:#2f2442d6}.immune-sound-toggle:focus-visible{outline-offset:3px;outline:3px solid #fff}.immune-guide{--guide-ease:cubic-bezier(.22, 1, .36, 1);z-index:70;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:radial-gradient(circle at 18% 76%,#58d7ff33,#0000 28%),#120b25ad;justify-content:center;align-items:flex-end;gap:clamp(12px,3vw,38px);padding:72px clamp(18px,5vw,64px) clamp(22px,6vh,64px);display:flex;position:fixed;inset:0}.immune-guide__character{color:#fff;filter:drop-shadow(0 18px 14px #09091e4d);width:clamp(126px,18vw,190px);animation:immune-guide-enter-side .52s var(--guide-ease) both;flex:none;place-items:center;display:grid}.immune-guide__character strong{font-family:var(--font-display);margin-top:9px;font-size:clamp(1.35rem,2vw,1.75rem);line-height:1}.immune-guide__character small{color:#dffaff;margin-top:3px;font-size:.78rem;font-weight:800}.immune-guide__cell{aspect-ratio:1;background:radial-gradient(circle at 34% 26%,#ffffffd9 0 7%,#0000 8%),radial-gradient(circle at 58% 64%,#267fbc47 0 23%,#0000 24%),#58d7ff;border:5px solid #dffaff;border-radius:48% 52% 44% 56%/55% 43% 57% 45%;width:clamp(112px,16vw,166px);animation:2.8s ease-in-out .55s infinite immune-guide-cell-float;position:relative;box-shadow:inset -12px -14px #1d7bb533}.immune-guide__eye{aspect-ratio:.82;background:#fff;border-radius:50%;width:19%;position:absolute;top:34%;box-shadow:inset 0 -3px #2214391a}.immune-guide__eye:after{aspect-ratio:1;content:"";background:#25183d;border-radius:50%;width:44%;position:absolute;bottom:20%;right:18%}.immune-guide__eye--left{left:25%;transform:rotate(-5deg)}.immune-guide__eye--right{right:25%;transform:rotate(5deg)}.immune-guide__smile{border-bottom:4px solid #25183d;border-left:4px solid #25183d;border-right:4px solid #25183d;border-radius:0 0 999px 999px;width:21%;height:13%;position:absolute;top:58%;left:40%}.immune-guide__arm{background:#58d7ff;border-radius:999px;width:35%;height:18%;position:absolute;top:54%}.immune-guide__arm--left{left:-23%;transform:rotate(20deg)}.immune-guide__arm--right{transform-origin:0;animation:1.8s ease-in-out .7s infinite immune-guide-wave;top:18%;right:-24%;transform:rotate(-42deg)}.immune-guide__bubble{color:#24153b;width:min(650px,100vw - 240px);animation:immune-guide-bubble-in .42s var(--guide-ease) .1s both;background:#fff9d8;border:4px solid #2c1a45;border-radius:16px;padding:clamp(20px,3vw,34px);position:relative;box-shadow:12px 14px #1f13356b}.immune-guide__bubble:before{content:"";background:#fff9d8;border-bottom:4px solid #2c1a45;border-left:4px solid #2c1a45;width:36px;height:36px;position:absolute;bottom:40px;left:-22px;transform:rotate(45deg)}.immune-guide__step{color:#775d86;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;font-size:.78rem;font-weight:950;display:flex}.immune-guide__step span{font-size:1.35rem}.immune-guide__bubble h1{color:#25143c;font-family:var(--font-display);text-wrap:balance;margin:7px 0 8px;font-size:clamp(2rem,4.5vw,3.5rem);line-height:.96}.immune-guide__bubble>p{color:#3d2c4b;max-width:34ch;margin:0;font-size:clamp(1.12rem,2.2vw,1.48rem);font-weight:750;line-height:1.36}.immune-guide__mission{color:#713957;align-items:center;gap:9px;margin-top:16px;font-size:clamp(1rem,1.8vw,1.22rem);display:flex}.immune-guide__mission>span{font-size:1.35em}.immune-guide__actions{align-items:stretch;gap:10px;margin-top:20px;display:flex}.immune-guide__go,.immune-guide__listen{cursor:pointer;min-height:58px;font:inherit;border:0}.immune-guide__go{color:#fff;background:#ff5f8f;border-radius:12px;justify-content:center;align-items:center;gap:10px;min-width:152px;padding:10px 22px;transition:transform .14s,box-shadow .14s,background .14s;display:flex;box-shadow:0 6px #b72f60}.immune-guide__go>span{font-size:2.15rem;line-height:1}.immune-guide__go small{letter-spacing:.04em;text-transform:uppercase;font-size:1.05rem;font-weight:950}.immune-guide__go:hover{background:#e9497b;transform:translateY(-2px);box-shadow:0 8px #a22754}.immune-guide__go:active{transform:translateY(4px);box-shadow:0 2px #a22754}.immune-guide__listen{color:#422f54;background:#fff;border:3px solid #5b4370;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:.9rem;font-weight:900;display:flex}.immune-guide__listen svg{width:23px;height:23px}.immune-guide__go:focus-visible,.immune-guide__listen:focus-visible{outline-offset:4px;outline:4px solid #36aee9}.immune-guide__controls{color:#806b89;margin-top:12px;font-size:.72rem;font-weight:800;display:block}.immune-guide__dots{gap:8px;margin-top:14px;margin-bottom:0;padding:0;list-style:none;display:flex}.immune-guide__dots li{border:2px solid #9b86a5;border-radius:50%;width:13px;height:13px}.immune-guide__dots .is-complete{background:#48cbb0;border-color:#2c9b83}.immune-guide__dots .is-current{background:#ff5f8f;border-color:#d93670;box-shadow:0 0 0 4px #ff5f8f33}@keyframes immune-guide-enter-side{0%{opacity:0;transform:translate(-120%)}}@keyframes immune-guide-enter-bottom{0%{opacity:0;transform:translateY(110%)}}@keyframes immune-guide-bubble-in{0%{opacity:0;transform:translateY(28px)scale(.98)}}@keyframes immune-guide-cell-float{50%{transform:translateY(-7px)rotate(1deg)}}@keyframes immune-guide-wave{50%{transform:rotate(-28deg)}}.immune-hud{z-index:40;width:min(650px,100vw - 210px);color:var(--immune-ink);pointer-events:none;position:fixed;top:14px;left:16px}.immune-hud__mission,.immune-hud__stats{align-items:center;gap:9px;display:flex}.immune-hud__mission strong,.immune-hud__mission span,.immune-hud__stats span{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1a1130c7;border-radius:7px;padding:7px 9px}.immune-hud__mission strong{color:#160f2c;background:var(--immune-gold)}.immune-hud__mission span{color:#fff7dd}.immune-hud__stats{margin-top:7px;font-size:.86rem}.immune-hud__stats span{border:1px solid var(--immune-line);color:var(--immune-muted)}.immune-hud__stats b{color:#fff}.immune-hud__stats .immune-hud__division{color:#ffc5d3}.immune-hud__stats .immune-hud__tissue{border-color:var(--tissue-health-color);box-shadow:inset 0 -3px 0 var(--tissue-health-color)}.immune-hud__stats .immune-hud__critical{color:#ffb197;border-color:#ff6a4d9e}.immune-response-track{background:#ffffff29;border-radius:999px;width:min(460px,100%);height:6px;margin-top:8px;overflow:hidden}.immune-response-track span{border-radius:inherit;background:var(--immune-gold);transform-origin:0;width:100%;height:100%;transition:transform .18s linear;display:block;box-shadow:0 0 8px #ffe48db3}.immune-response-track.is-boosted{animation:.52s ease-out immune-response-boost}.immune-response-track.is-boosted span{background:#8df29a;box-shadow:0 0 0 2px #b8ffca80,0 0 18px #8df29af5}@keyframes immune-response-boost{45%{transform:scaleY(2.2)}}.immune-response-steps{color:#d9d3e7;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;width:min(460px,100%);margin:7px 0 0;padding:0;list-style:none;display:grid}.immune-response-steps li{opacity:.38;align-items:center;gap:5px;min-width:0;display:flex}.immune-response-steps li>span{background:#1a1130c7;border:1px solid #ffffff40;border-radius:50%;flex:none;place-items:center;width:25px;height:25px;font-size:.76rem;display:grid}.immune-response-steps small{text-overflow:ellipsis;font-size:.61rem;font-weight:800;line-height:1.05;overflow:hidden}.immune-response-steps li.is-current,.immune-response-steps li.is-complete{opacity:1}.immune-response-steps li.is-current>span{background:conic-gradient(#8df29a 0 var(--response-stage-fill,0deg), #5d4478 var(--response-stage-fill,0deg) 360deg);border-color:#fff3a8;box-shadow:0 0 0 2px #fff3a829}.immune-response-steps li.is-complete>span{background:#2c7666;border-color:#b8ffca}.immune-hud--learning{width:min(720px,100vw - 210px)}.immune-hud--learning .immune-hud__mission strong{font-size:1rem}.immune-hud--learning .immune-hud__mission span{font-size:.95rem;font-weight:850}.immune-hud__picture-progress{gap:8px;margin-top:8px;display:flex}.immune-hud__picture-progress span{filter:grayscale();opacity:.5;background:#1a1130d1;border:2px solid #ffffff3d;border-radius:50%;place-items:center;width:38px;height:38px;font-size:1.12rem;transition:filter .18s,opacity .18s,transform .18s;display:grid}.immune-hud__picture-progress span.is-complete{filter:none;opacity:1;background:#4cbd9f;border-color:#fff3ad;transform:scale(1.08)}.immune-learning-guide{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#15112bd6;border:1px solid #ffe8f433;border-radius:8px;width:min(620px,100%);margin-top:8px;padding:8px 10px 9px}.immune-learning-guide ol{justify-content:space-between;align-items:flex-start;gap:5px;margin:0;padding:0;list-style:none;display:flex}.immune-learning-guide li{color:#ffffff80;flex:1;align-items:center;gap:5px;min-width:0;display:flex;position:relative}.immune-learning-guide li:not(:last-child):after{content:"";background:#ffffff29;flex:1;height:2px}.immune-learning-guide li.is-complete:not(:last-child):after{background:var(--immune-green)}.immune-learning-guide li>span{background:#ffffff1f;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:.82rem;font-weight:900;display:grid}.immune-learning-guide li.is-complete>span{background:var(--immune-green);color:#102b24}.immune-learning-guide li.is-current{color:#fff}.immune-learning-guide li.is-current>span{background:var(--immune-gold);color:#21142d;box-shadow:0 0 0 3px #ffe48d2e}.immune-learning-guide__cell{text-overflow:ellipsis;white-space:nowrap;max-width:8ch;font-size:.66rem;font-weight:800;line-height:1.05;overflow:hidden}.immune-learning-guide p{color:#f1e5f4;max-width:68ch;margin:8px 0 0;font-size:.78rem;line-height:1.38}.immune-touch-controls{z-index:42;pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:none;position:fixed;inset:0}.immune-helper-coach{z-index:40;color:#f4fff1;pointer-events:none;gap:6px;width:max-content;max-width:calc(100vw - 36px);display:grid;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.immune-helper-coach>div{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#181e30db;border:1px solid #b8ffca8f;border-radius:8px;align-items:center;gap:12px;padding:8px 11px;font-size:.76rem;display:flex;box-shadow:inset 4px 0 #8df29a}.immune-helper-coach strong{color:#b8ffca}.immune-helper-coach span{color:#e8edf7}.immune-helper-coach b{color:#fff3a8}.immune-touch-joystick,.immune-touch-action,.immune-touch-role-switch button{color:#fff;pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;border:2px solid #ffffffc2}.immune-touch-role-switch{left:50%;bottom:max(118px, calc(env(safe-area-inset-bottom) + 108px));-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);pointer-events:auto;background:#1b1533db;border:1px solid #ffffff80;border-radius:999px;grid-template-columns:44px minmax(100px,auto) 44px;align-items:center;min-width:0;margin:0;padding:0;display:grid;position:absolute;overflow:hidden;transform:translate(-50%);box-shadow:0 7px 22px #0b081b47}.immune-touch-role-switch button{background:#62e2c72e;border-width:0;border-radius:50%;width:44px;height:44px;padding:0;font-size:1.8rem;font-weight:900;line-height:1}.immune-touch-role-switch button[data-pressed=true]{color:#15283a;background:#62e2c7;transform:scale(.9)}.immune-touch-role-switch span{color:#fff;text-align:center;white-space:nowrap;padding:0 10px;font-size:.72rem;font-weight:850}.immune-touch-joystick{left:max(14px, env(safe-area-inset-left));bottom:max(14px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#1c1436c2;border-radius:50%;width:clamp(108px,30vw,124px);height:clamp(108px,30vw,124px);padding:0;position:absolute}.immune-touch-joystick__arrows{color:#ffffff3d;font-size:5rem;font-weight:300;line-height:1;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-54%)}.immune-touch-joystick__knob{will-change:transform;background:#58d7ff;border:3px solid #fff;border-radius:50%;width:52px;height:52px;position:absolute;top:calc(50% - 26px);left:calc(50% - 26px);box-shadow:0 5px #18466cc7}.immune-touch-joystick small{color:#fff;white-space:nowrap;font-size:.68rem;font-weight:850;position:absolute;bottom:7px;left:50%;transform:translate(-50%)}.immune-touch-actions{right:max(14px, env(safe-area-inset-right));bottom:max(14px, env(safe-area-inset-bottom));pointer-events:none;align-items:flex-end;gap:10px;display:flex;position:absolute}.immune-touch-action{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#261b43db;border-radius:50%;flex-direction:column;flex:none;justify-content:center;align-items:center;padding:7px;transition:background 90ms,transform 90ms;display:flex}.immune-touch-action--primary{border-color:#58d7ff;width:74px;height:74px}.immune-touch-action--special{border-color:var(--immune-gold);background:#443132e6;width:90px;height:90px;position:relative}.immune-touch-action--special:before{content:"";background:conic-gradient(var(--immune-gold) 0 var(--special-charge,0deg), #ffffff2e var(--special-charge,0deg) 360deg);pointer-events:none;border-radius:50%;position:absolute;inset:-5px;-webkit-mask:radial-gradient(circle,#0000 65%,#000 68%);mask:radial-gradient(circle,#0000 65%,#000 68%)}.immune-touch-action.is-unavailable{filter:saturate(.28);opacity:.62;transform:scale(.94)}.immune-touch-action strong{text-align:center;text-wrap:balance;max-width:9ch;font-size:.72rem;line-height:1.05}.immune-touch-action small{color:#ffffffc2;text-align:center;max-width:10ch;margin-top:3px;font-size:.62rem;font-weight:750;line-height:1.05}.immune-touch-action[data-pressed=true]{color:#21142d;background:#fff;transform:scale(.91)}.immune-touch-action[data-pressed=true] small{color:#4b385a}.immune-setup,.immune-result,.immune-pause{z-index:50;background:var(--immune-panel);width:min(840px,100vw - 32px);color:var(--immune-ink);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);position:fixed;left:50%;transform:translate(-50%)}.immune-setup{border-radius:10px;max-height:calc(100dvh - 40px);padding:24px;top:50%;overflow:auto;transform:translate(-50%,-50%)}.immune-setup:has(.immune-role-picker:only-child){width:min(650px,100vw - 32px)}.immune-setup h1,.immune-result h1{color:#fff;letter-spacing:-.025em;text-wrap:balance;margin:0;font-size:2.8rem;line-height:.98}.immune-alert{color:#ffb3c4;align-items:center;gap:8px;width:max-content;margin-bottom:10px;font-size:.82rem;font-weight:850;display:flex}.immune-alert__pulse{background:var(--immune-pink);border-radius:50%;width:10px;height:10px;animation:1.6s ease-in-out infinite immune-alarm;box-shadow:0 0 0 5px #ff8ea526}@keyframes immune-alarm{50%{transform:scale(.82);box-shadow:0 0 0 9px #ff8ea50a}}.immune-setup__intro{max-width:66ch;color:var(--immune-muted);margin:11px 0 17px;line-height:1.48}.immune-mode-select,.immune-count,.immune-role-picker{border:0;margin:0;padding:0}.immune-mode-select{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:18px;display:grid}.immune-mode-select legend{color:#fff;margin-bottom:8px;font-weight:850}.immune-mode-select button{border:1px solid var(--immune-line);min-height:66px;color:var(--immune-ink);cursor:pointer;text-align:left;background:#3b2b52cc;border-radius:8px;flex-direction:column;justify-content:center;padding:10px 12px;transition:background .16s,border-color .16s,transform .16s;display:flex}.immune-mode-select button:hover{background:#4f3869f2;border-color:#ffffffa3}.immune-mode-select button.is-selected{border-color:var(--immune-gold);box-shadow:inset 0 -3px 0 var(--immune-gold);background:#6a4c69fa}.immune-mode-select strong{font-size:.96rem}.immune-mode-select small{color:var(--immune-muted);margin-top:3px;line-height:1.3}.immune-count{align-items:center;gap:7px;display:flex}.immune-count legend,.immune-role-picker legend{color:#fff;font-weight:850}.immune-count legend{float:left;margin-right:10px;line-height:38px}.immune-count button,.immune-role-picker button,.immune-start,.immune-secondary{border:1px solid var(--immune-line);min-height:40px;color:var(--immune-ink);cursor:pointer;background:#3b2b52cc;border-radius:7px;transition:background .16s,border-color .16s,transform .16s}.immune-count button{padding:0 13px;font-weight:800}.immune-count button:hover,.immune-role-picker button:hover,.immune-secondary:hover{background:#4f3869f2;border-color:#ffffffa3}.immune-count button.is-selected{border-color:var(--immune-gold);background:var(--immune-gold);color:#21142d}.immune-role-selectors{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.immune-role-selectors:has(.immune-role-picker:only-child){grid-template-columns:minmax(0,390px)}.immune-role-picker{flex-direction:column;gap:7px;display:flex}.immune-role-picker legend{margin-bottom:8px}.immune-role-picker button{text-align:left;grid-template-columns:42px 1fr;align-items:center;gap:10px;width:100%;padding:9px;display:grid}.immune-role-picker button.is-selected{background:#604478fa;border-color:#fff}.immune-role-picker--p2 button.is-selected{border-color:#ff83cf}.immune-role-picker button>span:last-child{flex-direction:column;gap:2px;display:flex}.immune-role-picker strong{font-size:.92rem}.immune-role-picker small{color:var(--immune-muted);line-height:1.32}.immune-role-icon{border:2px solid #ffffffd1;border-radius:48% 52% 44% 56%;width:38px;height:38px;display:block;position:relative}.immune-role-icon:after{content:"";background:#18305d99;border-radius:50%;width:11px;height:11px;position:absolute;top:12px;left:12px}.immune-role-icon--macrophage{background:#58d7ff}.immune-role-icon--neutrophil{background:#ffca72;border-radius:50%}.immune-role-icon--neutrophil:after{background:#9a6595;border-radius:50% 35%;box-shadow:-8px 4px #9a6595,7px 5px #9a6595}.immune-role-icon--helper{background:#8df29a;border-radius:50%}.immune-role-icon--dendritic{background:#62e2c7;border-radius:50%}.immune-role-icon--dendritic:before{content:"";transform-origin:0;background:#eafff8;border-radius:999px;width:13px;height:4px;position:absolute;top:23px;left:22px;transform:rotate(45deg)}.immune-role-icon--dendritic:after{width:16px;height:16px;box-shadow:none;background:#276c78;border:3px solid #eafff8;top:7px;left:8px}.immune-journey-preview{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:0;padding:0;list-style:none;display:grid}.immune-journey-preview li{background:#3a2a5094;border-radius:7px;align-items:center;gap:8px;min-width:0;padding:9px;display:flex}.immune-journey-preview li>span{width:27px;height:27px;color:var(--immune-gold);background:#ffe48d24;border-radius:50%;flex:none;place-items:center;font-size:.75rem;font-weight:900;display:grid}.immune-journey-preview div{flex-direction:column;min-width:0;display:flex}.immune-journey-preview strong{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.immune-journey-preview small{color:var(--immune-muted);margin-top:2px;font-size:.67rem;line-height:1.2}.immune-journey-preview .immune-journey-preview__memory{background:#386f5985}.immune-start,.immune-secondary{padding:0 18px;font-weight:900}.immune-start{border-color:var(--immune-gold);background:var(--immune-gold);color:#21142d;margin-top:18px}.immune-start:hover{background:#fff0ae;transform:translateY(-1px)}.immune-count button:focus-visible,.immune-mode-select button:focus-visible,.immune-role-picker button:focus-visible,.immune-start:focus-visible,.immune-secondary:focus-visible{outline-offset:3px;outline:3px solid #fff}.immune-controls{color:var(--immune-muted);flex-wrap:wrap;gap:6px 14px;margin-top:12px;font-size:.78rem;display:flex}.immune-result{text-align:center;border-radius:10px;width:min(560px,100vw - 32px);padding:28px;top:50%;transform:translate(-50%,-50%)}.immune-pause{text-align:center;border-radius:10px;width:min(440px,100vw - 32px);padding:26px;top:50%;transform:translate(-50%,-50%)}.immune-pause p{color:var(--immune-gold);margin:0 0 8px;font-weight:850}.immune-pause h1{text-wrap:balance;margin:0;font-size:2rem;line-height:1.08}.immune-pause small{color:var(--immune-muted);margin-top:11px;display:block}.immune-result__status{color:var(--immune-gold);margin:0 0 9px;font-weight:850}.immune-result>p:not(.immune-result__status){max-width:56ch;color:var(--immune-muted);margin:12px auto 0;line-height:1.5}.immune-result__stats{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:19px;display:flex}.immune-result__stats span{border:1px solid var(--immune-line);color:var(--immune-muted);background:#3a2a50a6;border-radius:7px;padding:9px 10px}.immune-result__stats strong{color:#fff}.immune-result__actions{flex-wrap:wrap;justify-content:center;gap:9px;margin-top:20px;display:flex}.immune-result__actions .immune-start{margin:0}.immune-response-recap{flex-wrap:wrap;justify-content:center;gap:5px;margin:18px 0 0;padding:0;list-style:none;display:flex}.immune-response-recap li{color:#f4e9f7;background:#3a2a50ad;border-radius:7px;align-items:center;gap:5px;padding:6px 8px;font-size:.72rem;display:flex}.immune-response-recap li>span{background:var(--immune-green);color:#102b24;border-radius:50%;place-items:center;width:19px;height:19px;font-size:.65rem;font-weight:900;display:grid}.immune-response-recap div{text-align:left;flex-direction:column;display:flex}.immune-response-recap small{color:var(--immune-muted);margin-top:1px;font-size:.61rem;font-weight:650}.immune-result>small{color:var(--immune-muted);margin-top:12px;display:block}@media (width<=720px){.portal-shell{padding:18px}.portal-header{flex-direction:column;align-items:flex-start}.portal-header h1{font-size:2.35rem}.portal-summary{justify-content:flex-start}.game-card{grid-template-columns:1fr}.game-preview{min-height:180px}.game-card__content{padding:20px}#hud{padding:10px 12px;font-size:13px}#hud-players{grid-template-columns:1fr;gap:5px}.overlay{padding:18px}.overlay h1{font-size:36px}.overlay p{font-size:15px}.overlay .sub{margin-top:10px;font-size:12px}.game-chrome,.star-hud{top:10px}.game-chrome{right:10px}.star-hud{left:10px}.lizard-hud{max-width:calc(100vw - 20px);top:54px;left:10px}.lizard-hud span{padding:8px 9px}.lizard-keyboard{width:calc(100vw - 20px);padding:9px;bottom:10px}.lizard-keyrow{gap:4px}.lizard-key{border-radius:8px}.immune-chrome{top:10px;right:10px}.immune-chrome>span{display:none}.immune-guide{padding:58px 12px max(14px, env(safe-area-inset-bottom));grid-template-rows:auto 1fr;align-items:end;gap:4px;display:grid;overflow:auto}.immune-guide__character{z-index:1;justify-self:start;width:100px;margin:0 0 -34px 10px;animation-name:immune-guide-enter-bottom}.immune-guide__character strong,.immune-guide__character small{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.immune-guide__cell{border-width:4px;width:94px}.immune-guide__bubble{border-width:3px;width:100%;padding:22px 18px 18px;box-shadow:7px 8px #1f13355c}.immune-guide__bubble:before{border-width:3px;width:26px;height:26px;top:-15px;bottom:auto;left:54px}.immune-guide__step{justify-content:flex-end;min-height:28px}.immune-guide__bubble h1{margin-top:8px;font-size:clamp(1.9rem,9.5vw,2.7rem)}.immune-guide__bubble>p{font-size:1.05rem;line-height:1.3}.immune-guide__mission{margin-top:11px;font-size:.95rem}.immune-guide__actions{margin-top:14px}.immune-guide__go{flex:1;min-width:0;min-height:62px}.immune-guide__listen{width:62px;min-width:62px;padding:0;font-size:0}.immune-guide__listen svg{width:28px;height:28px}.immune-guide__controls{display:none}.immune-guide__dots{justify-content:center;margin-top:13px}.immune-hud{width:calc(100vw - 155px);top:10px;left:10px}.immune-hud--learning{width:calc(100vw - 20px);top:70px}.immune-hud--learning .immune-hud__mission{width:min(250px,100vw - 140px);display:grid}.immune-hud--learning .immune-hud__mission strong,.immune-hud--learning .immune-hud__mission span{width:fit-content;font-size:.82rem}.immune-hud__picture-progress{gap:5px}.immune-hud__picture-progress span{width:32px;height:32px;font-size:.94rem}.immune-hud__mission,.immune-hud__stats{flex-wrap:wrap;gap:5px}.immune-hud__mission strong,.immune-hud__mission span,.immune-hud__stats span{padding:5px 7px;font-size:.72rem}.immune-response-steps{gap:3px}.immune-response-steps li{justify-content:center}.immune-response-steps small{display:none}.immune-learning-guide{padding:7px 8px}.immune-learning-guide__cell{display:none}.immune-learning-guide li.is-current .immune-learning-guide__cell{max-width:7ch;display:block}.immune-learning-guide p{font-size:.72rem}.immune-setup{max-height:calc(100dvh - 66px);padding:18px;top:56px;transform:translate(-50%)}.immune-setup h1,.immune-result h1{font-size:2.15rem}.immune-mode-select{grid-template-columns:1fr}.immune-journey-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.immune-role-selectors{grid-template-columns:1fr}.immune-role-picker button{grid-template-columns:36px 1fr}.immune-role-icon{width:34px;height:34px}.immune-role-icon:after{top:10px;left:10px}.immune-result{padding:22px 18px}}@media (width<=900px),(pointer:coarse){.immune-touch-controls{display:block}.immune-helper-coach{display:none}}@media (width<=360px){.immune-touch-joystick{width:104px;height:104px}.immune-touch-action--primary{width:68px;height:68px}.immune-touch-action--special{width:82px;height:82px}.immune-touch-actions{gap:7px}}@media (height<=520px) and (orientation:landscape){.immune-guide{grid-template-rows:1fr;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:10px;padding:52px 14px 12px}.immune-guide__character{align-self:center;margin:0}.immune-guide__bubble{max-height:calc(100dvh - 64px);padding:15px 18px;overflow:auto}.immune-guide__bubble:before{top:auto;bottom:34px;left:-15px}.immune-guide__bubble h1{margin:2px 0 5px;font-size:1.75rem}.immune-guide__bubble>p{font-size:.9rem}.immune-guide__mission,.immune-guide__actions{margin-top:8px}.immune-guide__go,.immune-guide__listen{min-height:50px}.immune-guide__dots{margin-top:8px}.immune-hud--learning{width:calc(100vw - 155px);top:10px}.immune-learning-guide p{display:none}.immune-touch-joystick{width:102px;height:102px}.immune-touch-action--primary{width:66px;height:66px}.immune-touch-action--special{width:78px;height:78px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto;transition-duration:.01ms;animation-duration:.01ms;animation-iteration-count:1}.immune-alert__pulse{box-shadow:none}}
