@import "https://fonts.googleapis.com/css2?family=Platypi:wght@300;400;500&display=swap";:root{--paper:oklch(96.5% .008 85);--paper-sunk:oklch(94.5% .008 82);--chalk:oklch(93% .008 75);--ink:oklch(24% .012 60);--ink-80:oklch(24% .012 60/.8);--ink-70:oklch(24% .012 60/.7);--ink-55:oklch(24% .012 60/.55);--ink-45:oklch(24% .012 60/.45);--ink-18:oklch(24% .012 60/.18);--ink-14:oklch(24% .012 60/.14);--ink-07:oklch(24% .012 60/.07);--accent:#aa6346;--accent-deep:#7e4732;--accent-tint:#aa63461f;--fjord:oklch(58% .11 205);--moss:oklch(58% .11 145);--alert:oklch(52% .14 28);--font-serif:Platypi, "Iowan Old Style", Georgia, serif;--font-sans:"Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--ease-standard:cubic-bezier(.2, 0, .2, 1);--shadow-lift:0 24px 48px -24px oklch(24% .012 60/.28)}*{box-sizing:border-box}html,body{width:100%;min-height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;overflow:hidden}button{color:inherit;font:inherit}.game-shell{background:var(--paper);isolation:isolate;touch-action:none;width:100vw;height:100svh;min-height:520px;position:relative;overflow:hidden}.game-canvas,.pickup-canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.pickup-canvas{z-index:1;pointer-events:none}.mobile-controls{z-index:3;pointer-events:none;width:112px;height:112px;position:absolute;transform:translate(-50%,-50%)}.joystick{touch-action:none;-webkit-user-select:none;user-select:none;width:112px;height:112px;position:relative}.joystick-handle{background:var(--accent);pointer-events:none;will-change:transform;border-radius:50%;width:38px;height:38px;margin:-19px 0 0 -19px;position:absolute;top:50%;left:50%}.start-panel{z-index:2;background:var(--chalk);width:min(470px,100vw - 48px);padding:36px 40px;position:absolute;top:50%;left:clamp(24px,7.5vw,96px);transform:translateY(-50%)}.brand-signature{color:var(--ink-45);letter-spacing:.16em;align-items:center;gap:14px;margin-bottom:30px;font-size:11px;line-height:1.4;display:flex}.brand-mark{object-fit:contain;flex:none;display:block}.brand-link{flex:none;display:block}.brand-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.brand-mark-start{width:42px;height:42px}.eyebrow,.controls,.best-score,.hud-label,.dialog-note,.upgrade-index,.upgrade-level,.xp-rail{letter-spacing:.2em;text-transform:uppercase;font-size:11px;line-height:1.4}.eyebrow{color:var(--ink-45);margin:0 0 24px}.game-title{font-family:var(--font-serif);letter-spacing:-.04em;margin:0;font-size:clamp(70px,9vw,116px);font-weight:300;line-height:.88}.intro{max-width:34ch;color:var(--ink-80);font-family:var(--font-serif);margin:28px 0 34px;font-size:19px;line-height:1.55}.start-actions{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.best-score{color:var(--ink-45);letter-spacing:.12em}.controls{color:var(--accent);letter-spacing:.12em;margin:26px 0 0}.button{border:1px solid var(--ink);min-height:48px;color:inherit;cursor:pointer;transition:background-color .18s var(--ease-standard), border-color .18s var(--ease-standard), color .18s var(--ease-standard), transform .18s var(--ease-standard);border-radius:0;justify-content:center;align-items:center;padding:0 24px;text-decoration:none;display:inline-flex}.button:hover{transform:translateY(-1px)}.button:focus-visible{outline:1px solid var(--accent);outline-offset:-3px}.upgrade-card:focus-visible{outline:none}.button-primary{background:var(--ink);color:var(--chalk)}.button-primary:hover{border-color:var(--accent-deep);background:var(--accent-deep)}.button-secondary{background:var(--paper)}.button-secondary:hover{background:var(--ink);color:var(--chalk)}.button-ghost{background:0 0;border-color:#0000;min-height:40px;padding:0 12px}.button-ghost:hover{background:var(--ink-07)}.hud{z-index:2;pointer-events:none;grid-template-columns:minmax(250px,1fr) auto minmax(250px,1fr);align-items:start;gap:24px;display:grid;position:absolute;top:20px;left:24px;right:24px}.hud-group,.time-group{border:1px solid var(--ink-14);background:color-mix(in oklch, var(--paper) 94%, transparent);pointer-events:auto;min-height:56px}.health-group{grid-template-columns:auto minmax(90px,180px) auto auto;align-items:center;gap:12px;width:fit-content;padding:12px 14px;display:grid}.hud-label{color:var(--ink-45);font-weight:400;display:block}.hud-value{color:var(--ink-70);font-variant-numeric:tabular-nums;font-size:12px}.meter{border:1px solid var(--ink-18);background:var(--paper);width:180px;height:8px;overflow:hidden}.meter>span{background:var(--moss);height:100%;transition:width .12s linear;display:block}.meter-health[data-low=true]>span{background:var(--alert)}.time-group{text-align:center;min-width:112px;padding:9px 18px 8px}.time-group strong{font-family:var(--font-sans);font-variant-numeric:tabular-nums;letter-spacing:.04em;margin-top:2px;font-size:21px;font-weight:500;display:block}.score-group{justify-self:end;align-items:center;gap:22px;padding:8px 10px 8px 16px;display:flex}.score-group>div{min-width:54px}.score-group strong{font-variant-numeric:tabular-nums;margin-top:3px;font-size:17px;font-weight:500;display:block}.pause-button{margin-left:2px}.brand-mark-hud{width:26px;height:26px;margin-left:2px}.xp-rail{z-index:2;color:var(--ink-55);letter-spacing:.12em;grid-template-columns:1fr auto;align-items:center;gap:16px;display:grid;position:absolute;bottom:20px;left:24px;right:24px}.xp-meter{border:1px solid var(--ink-18);background:color-mix(in oklch, var(--paper) 92%, transparent);height:6px}.xp-meter span{background:var(--fjord);height:100%;transition:width .12s linear;display:block}.dialog-layer{z-index:10;background:var(--ink-45);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog{border:1px solid var(--ink);background:var(--paper);width:min(880px,100%);max-height:calc(100svh - 48px);box-shadow:var(--shadow-lift);border-radius:0;padding:32px;overflow:auto}.dialog-compact{width:min(520px,100%)}.dialog-header{border-bottom:1px solid var(--ink-14);justify-content:space-between;align-items:start;gap:32px;margin-bottom:28px;padding-bottom:24px;display:flex}.dialog-header .eyebrow{margin-bottom:12px}.dialog-title{font-family:var(--font-serif);letter-spacing:-.02em;margin:0;font-size:clamp(32px,5vw,44px);font-weight:400;line-height:1.1}.dialog-copy{max-width:46ch;color:var(--ink-70);font-family:var(--font-serif);margin:20px 0 28px;font-size:17px;line-height:1.6}.dialog-note{color:var(--accent);flex:none;margin-top:6px}.dialog-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.upgrade-grid{border:1px solid var(--ink-14);background:var(--ink-14);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.upgrade-card{background:var(--paper);text-align:left;cursor:pointer;min-height:250px;transition:background-color .18s var(--ease-standard), color .18s var(--ease-standard);border:0;border-radius:0;flex-direction:column;align-items:flex-start;padding:24px;display:flex}.upgrade-card:hover,.upgrade-card:focus-visible{background:var(--ink);color:var(--chalk)}.upgrade-card:hover .upgrade-index,.upgrade-card:hover .upgrade-level,.upgrade-card:focus-visible .upgrade-index,.upgrade-card:focus-visible .upgrade-level{color:color-mix(in oklch, var(--chalk) 62%, transparent)}.upgrade-index{color:var(--accent)}.upgrade-name{font-family:var(--font-serif);margin-top:38px;font-size:23px;line-height:1.2}.upgrade-description{color:currentColor;opacity:.72;margin-top:14px;font-size:14px;line-height:1.55}.upgrade-level{color:var(--ink-45);letter-spacing:.12em;margin-top:auto;padding-top:28px}.result-dialog{width:min(660px,100%)}.result-heading{justify-content:space-between;align-items:flex-start;gap:32px;display:flex}.result-heading .eyebrow{margin-bottom:16px}.brand-mark-result{width:48px;height:48px}.result-grid{background:var(--ink-14);border:1px solid var(--ink-14);grid-template-columns:repeat(4,1fr);gap:1px;margin-top:32px;display:grid}.result-grid>div{background:var(--paper);padding:18px}.result-grid strong{font-family:var(--font-serif);font-variant-numeric:tabular-nums;margin-top:9px;font-size:27px;font-weight:400;display:block}.notice{background:var(--chalk);color:var(--ink-70);align-items:center;gap:12px;margin-top:24px;padding:14px 16px;font-size:14px;display:flex}.notice-diamond{background:var(--accent);flex:none;width:8px;height:8px;transform:rotate(45deg)}.sr-status{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=820px){.hud{grid-template-columns:1fr auto;gap:10px}.time-group{grid-area:1/2}.score-group{grid-column:1/-1;justify-content:flex-end;justify-self:stretch;width:fit-content;margin-left:auto}.upgrade-grid{grid-template-columns:1fr}.upgrade-card{min-height:154px}.upgrade-name,.upgrade-level{margin-top:18px}}@media (width<=640px){.game-shell{min-height:620px}.start-panel{width:auto;padding:28px 24px;left:24px;right:24px}.game-title{font-size:70px}.brand-signature{margin-bottom:24px}.brand-mark-start{width:36px;height:36px}.brand-mark-result{width:40px;height:40px}.hud{top:12px;left:12px;right:12px}.health-group{grid-template-columns:auto minmax(70px,1fr) auto;width:100%}.health-group .hud-value{display:none}.meter{width:100%}.score-group{gap:12px;padding-left:12px}.pause-button{padding-inline:8px}.brand-mark-hud{width:22px;height:22px;margin-left:0}.xp-rail{bottom:12px;left:12px;right:12px}.xp-rail>span{display:none}.dialog-layer{padding:12px}.dialog{max-height:calc(100svh - 24px);padding:24px}.dialog-header{margin-bottom:20px;padding-bottom:20px}.dialog-note{display:none}.upgrade-card{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"index name level"".description description";align-items:baseline;gap:5px 12px;min-height:0;padding:12px 14px;display:grid}.upgrade-index{grid-area:index}.upgrade-name{grid-area:name;margin-top:0;font-size:18px}.upgrade-level{grid-area:level;margin-top:0;padding-top:0;font-size:10px}.upgrade-description{grid-area:description;max-width:38ch;margin-top:0;font-size:13px;line-height:1.35}.result-grid{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
