.game{--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--game-boss-body:var(--destructive);--game-boss-eye:var(--foreground);--game-boss-pupil:var(--background);--game-hp:var(--destructive);background:var(--background);color:var(--foreground);flex:1;line-height:1.5}.game .wrap{gap:16px;max-width:1240px;margin:0 auto;padding:24px 20px 64px;display:grid}.game h1,.game h2{text-transform:uppercase;text-wrap:balance;margin:0;font-weight:600;line-height:1.1}.game header{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;display:flex}.game header h1{font-size:clamp(1.4rem,3vw,2rem)}.game .label{letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:700}.game .num,.game .count,.game b{font-family:var(--font-numeric), ui-sans-serif, sans-serif;font-variant-numeric:tabular-nums}.game .sample-note,.game .note{color:var(--muted-foreground);font-size:.75rem}.game :focus-visible{outline:2px solid var(--ring);outline-offset:2px}.game .tabs{flex-wrap:wrap;gap:.4rem;display:flex}.game .tab{border:1px solid var(--border);background:var(--card);color:var(--foreground);cursor:pointer;letter-spacing:.06em;text-transform:uppercase;border-radius:6px;padding:.45rem .75rem;font-size:.75rem;font-weight:700}.game .tab[aria-selected=true]{background:var(--secondary);color:var(--secondary-foreground);border-color:var(--success)}.game .hud{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;display:grid}.game .tile{background:var(--card);border:1px solid var(--border);border-radius:8px;gap:2px;padding:10px 14px;display:grid}.game .tile .label,.game .tile small{color:var(--muted-foreground)}.game .tile .num{font-size:1.55rem;font-weight:700}.game .tile small{font-size:.78rem}.game .tile.alert{border-color:var(--game-leak);box-shadow:inset 4px 0 0 var(--game-leak)}.game .scroller{border:1px solid var(--border);background:var(--card);scrollbar-color:var(--border) transparent;border-radius:12px;overflow-x:auto}.game .world{aspect-ratio:1600/430;background:linear-gradient(180deg, color-mix(in srgb, var(--secondary) 80%, var(--background)) 0%, var(--card) 70%);width:1500px;position:relative;overflow:hidden}.game .world>svg{width:100%;height:100%;position:absolute;inset:0}.game .world>svg.far{will-change:transform;width:140%;left:-20%}.game .far .ridge{fill:var(--secondary);opacity:.55}.game .far .star{fill:var(--border);opacity:.6}.game .ground{fill:color-mix(in srgb, var(--secondary) 50%, var(--card))}.game .river{fill:color-mix(in srgb, var(--success) 22%, var(--background))}.game .ripple{fill:none;stroke:var(--success);stroke-opacity:.35;stroke-width:2px;stroke-dasharray:18 26;animation:3s linear infinite march}.game .ripple.rev{animation-direction:reverse}.game .seg-path{fill:none;stroke-linecap:round;transition:stroke-width var(--motion-fast);pointer-events:none}.game .seg-path.ok{stroke:var(--game-good)}.game .seg-path.below{stroke:var(--muted-foreground);stroke-dasharray:2 14}.game .seg-path.boss{stroke:var(--game-leak);stroke-dasharray:14 10;animation:1s linear infinite march}.game .seg-path.after{stroke:var(--border);stroke-dasharray:1 10}.game .seg-path.sel{filter:brightness(1.4)}@keyframes march{to{stroke-dashoffset:-24px}}.game .hit{fill:none;stroke:#0000;stroke-width:44px;cursor:pointer}.game .hit:focus-visible{stroke:var(--ring);stroke-opacity:.35;outline:none}.game .drop{fill:var(--muted-foreground);transform-box:fill-box;transform-origin:50%;opacity:0;animation:1.7s ease-in infinite fall}.game .drop.leak{fill:var(--game-leak)}@keyframes fall{0%{opacity:0;transform:translateY(0)scale(.5)}15%{opacity:1}to{transform:translateY(var(--fall,46px)) scale(1);opacity:0}}.game .lost-label{fill:var(--muted-foreground);font:700 11px var(--font-numeric), sans-serif}.game .lost-label.leak{fill:var(--game-leak)}.game .flag .pole{stroke:var(--foreground);stroke-width:3px}.game .flag .cloth{fill:var(--foreground);transform-box:fill-box;transform-origin:0;animation:1.8s ease-in-out infinite wave}.game .flag.goal .cloth{fill:var(--game-good)}@keyframes wave{50%{transform:skewY(-8deg)scaleX(.9)}}.game .flag text{fill:var(--foreground);text-anchor:middle}.game .flag .tname{letter-spacing:.06em;text-transform:uppercase;font-size:15px;font-weight:700}.game .flag .count{font-size:20px;font-weight:700}.game .sign{fill:var(--background);stroke:var(--border)}.game .boss-pin{pointer-events:none;width:6.5%;filter:drop-shadow(0 6px 10px color-mix(in srgb, var(--background) 60%, transparent));position:absolute;transform:translate(-50%,-78%)}.game .boss-pin .tag{white-space:nowrap;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.game .hero{background:var(--primary);border:2px solid var(--background);width:20px;height:20px;animation:hop 1.2s var(--ease-out) infinite;pointer-events:none;position:absolute;transform:translate(-50%,-50%)rotate(45deg)}@keyframes hop{50%{transform:translate(-50%,-85%)rotate(45deg)}}.game .hint{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.game .legend{color:var(--muted-foreground);flex-wrap:wrap;gap:14px;font-size:.75rem;display:flex}.game .legend i{vertical-align:middle;width:18px;height:3px;margin-right:4px;display:inline-block}.game .chip{letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--border);border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .55rem;font-size:.75rem;font-weight:700;display:inline-flex}.game .chip.boss{background:var(--game-leak);color:var(--foreground);border-color:var(--game-leak)}.game .chip.side{color:var(--muted-foreground);background:0 0}.game .chip.warn{color:var(--muted-foreground);border-style:dashed}.game .creature{width:100%;display:block;overflow:visible}.game .creature .cr-body{transform-origin:60px 100px;animation:2.4s ease-in-out infinite bob}.game .creature .cr-eyes{transform-origin:60px 52px;animation:4.2s infinite blink}.game .creature.defeated .cr-body{animation:defeat .9s var(--ease-out) forwards}@keyframes bob{0%,to{transform:translateY(0)scaleY(1)}50%{transform:translateY(-4px)scaleY(1.03)}}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes defeat{30%{transform:rotate(-12deg)scale(1.1)}to{opacity:0;transform:rotate(200deg)scale(0)}}.spark{background:var(--primary);pointer-events:none;z-index:50;width:8px;height:8px;box-shadow:0 0 0 1px var(--foreground);border-radius:2px;animation:1s cubic-bezier(.2,.8,.2,1) forwards spark;position:fixed}@keyframes spark{to{transform:translate(var(--dx), var(--dy)) rotate(260deg);opacity:0}}.game .lower{grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr);align-items:start;gap:16px;display:grid}@media (max-width:900px){.game .lower{grid-template-columns:1fr}}.game .col{gap:16px;display:grid}.game .dialog{background:var(--background);border:3px double var(--foreground);border-radius:8px;gap:12px;min-height:230px;padding:18px 20px;display:grid}.game .dialog .who{align-items:center;gap:14px;display:flex}.game .dialog .who .creature{flex:none;width:66px}.game .dialog h2{font-size:1.12rem}.game .dialog p{min-height:3.2em;margin:0;font-size:1rem;line-height:1.6}.game .caret{background:var(--foreground);vertical-align:-2px;width:.6em;height:1em;animation:1s step-end infinite caret;display:inline-block}@keyframes caret{50%{opacity:0}}.game .menu{flex-wrap:wrap;gap:8px;display:flex}.game .menu button{border:1px solid var(--border);color:var(--foreground);cursor:pointer;letter-spacing:.08em;text-transform:uppercase;background:0 0;border-radius:4px;padding:.5rem .9rem;font-size:.78rem;font-weight:700}.game .menu button:hover,.game .menu button:focus-visible{border-color:var(--foreground)}.game .menu button:before{content:"▸ ";opacity:0}.game .menu button:hover:before,.game .menu button:focus-visible:before{opacity:1}.game .stats-row{color:var(--muted-foreground);flex-wrap:wrap;gap:16px;font-size:.85rem;display:flex}.game .stats-row b{color:var(--foreground)}.game .hp{background:var(--game-track);border:1px solid var(--border);border-radius:3px;height:10px;overflow:hidden}.game .hp>i{background:var(--game-hp);height:100%;width:calc(var(--hp) * 100%);transition:width var(--motion-slow) var(--ease-out);display:block}.game .card{background:var(--card);border:1px solid var(--border);border-radius:10px;align-content:start;gap:10px;padding:16px;display:grid}.game .card>.label{color:var(--muted-foreground)}.game .quests{gap:6px;margin:0;padding:0;list-style:none;display:grid}.game .quests li{border:1px solid var(--border);border-radius:6px;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:8px 10px;font-size:.88rem;display:grid}.game .quests li small{color:var(--muted-foreground);font-size:.75rem;display:block}.game .stat{cursor:pointer;text-align:left;width:100%;color:var(--foreground);background:0 0;border:0;border-radius:6px;grid-template-columns:50px minmax(0,1fr) 54px 44px;align-items:center;gap:8px;padding:5px 4px;display:grid}.game .stat:hover,.game .stat[aria-pressed=true]{background:var(--muted)}.game .stat .code{font-family:var(--font-numeric), sans-serif;font-size:.8rem;font-weight:700}.game .stat .name{color:var(--muted-foreground);margin-bottom:3px;font-size:.75rem;display:block}.game .track{background:var(--game-track);border:1px solid var(--border);border-radius:3px;height:12px;display:block;position:relative}.game .track .fill{width:calc(min(var(--v), 1.25) / 1.25 * 100%);background:var(--game-good);transition:width var(--motion-slow) var(--ease-spring);border-radius:2px;position:absolute;inset:0 auto 0 0}.game .stat.under .fill{background:color-mix(in srgb, var(--muted-foreground) 70%, transparent)}.game .stat.boss .fill{background:var(--game-leak)}.game .stat.after{opacity:.55}.game .track .mark{background:var(--foreground);width:2px;position:absolute;top:-4px;bottom:-4px;left:80%}.game .stat .val{font-family:var(--font-numeric), sans-serif;text-align:right;font-size:.9rem;font-weight:700}.game .stat .idx{text-align:right;color:var(--muted-foreground);font-size:.75rem}.game .stat.boss .idx{color:var(--game-leak);font-weight:700}.game .radar{max-width:260px;margin:0 auto;display:block}.game .radar text{fill:var(--muted-foreground);font-size:11px;font-weight:700}.game .radar .ring{fill:none;stroke:var(--border)}.game .radar .bench{fill:none;stroke:var(--foreground);stroke-dasharray:4 4}.game .radar .shape{fill:color-mix(in srgb, var(--game-good) 30%, transparent);stroke:var(--game-good);stroke-width:2px}.game .radar .dot{fill:var(--game-good)}.game .radar .dot.boss{fill:var(--game-leak)}
