:root{--bg-deep: #050505;--bg-elevated: #0a0a0a;--bg-card: #101010;--border: #2a2418;--border-subtle: rgba(201, 169, 97, .12);--text: #ece6da;--text-muted: #9a9080;--accent: #c9a961;--accent-dim: #8a7340;--accent-bright: #e8c872;--glow: rgba(201, 169, 97, .07);--font-sans: "DM Sans", "Segoe UI", system-ui, sans-serif;--font-serif: "Cormorant Garamond", Georgia, serif;--font-mono: "Cascadia Code", "Consolas", monospace;--max-width: 68rem;--section-pad: clamp(2.5rem, 7vw, 6.5rem);--radius: .5rem;--header-h: 3.25rem;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + .75rem)}body{margin:0;font-family:var(--font-sans);font-size:clamp(1rem,.35vw + .95rem,1.0625rem);line-height:1.7;color:var(--text);background:var(--bg-deep);background-image:radial-gradient(ellipse 90% 55% at 50% -15%,var(--glow),transparent),radial-gradient(circle at 100% 85%,rgba(138,115,64,.035),transparent 45%);-webkit-font-smoothing:antialiased;padding-left:var(--safe-left);padding-right:var(--safe-right)}::selection{background:#c9a96140;color:var(--text)}img,svg{max-width:100%;height:auto}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.2em}a:hover{color:var(--accent-bright)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{font-family:var(--font-serif);line-height:1.15;letter-spacing:.02em;font-weight:600}h1{font-size:clamp(2.5rem,5.5vw,3.75rem);margin:0 0 1rem}h2{font-size:clamp(1.65rem,3.2vw,2.25rem);margin:0 0 1rem}h3{font-size:1.15rem;margin:0 0 .5rem}p{margin:0 0 1rem;max-width:62ch}p:last-child{margin-bottom:0}.lead{font-size:1.15rem;line-height:1.6;color:var(--text-muted);max-width:52ch}.container{width:min(100% - clamp(1.25rem,5vw,2.5rem),var(--max-width));margin-inline:auto}.section{padding-block:var(--section-pad)}.section--alt{background:var(--bg-elevated);border-block:1px solid var(--border)}.section-label{display:inline-block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:.85rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;padding:.7rem 1.4rem;font-size:.9rem;font-weight:600;border-radius:var(--radius);text-decoration:none;transition:background .2s,border-color .2s,color .2s,transform .15s;cursor:pointer;font-family:var(--font-sans);border:1px solid transparent;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.btn:active{transform:translateY(1px)}.btn--primary{background:#c9a96114;color:var(--accent-bright);border-color:var(--accent-dim)}.btn--primary:hover{background:var(--accent);color:var(--bg-deep);border-color:var(--accent)}.btn--secondary{background:transparent;color:var(--text);border-color:var(--border)}.btn--secondary:hover{border-color:var(--accent-dim);color:var(--accent)}.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}.badge{display:inline-block;font-size:.78rem;font-weight:600;padding:.4rem .85rem;border-radius:999px;border:1px solid var(--border);background:#101010cc;color:var(--text-muted);letter-spacing:.03em}.badge--accent{border-color:var(--border-subtle);color:var(--accent)}.pillar-grid{display:grid;gap:1.25rem;margin-top:2.25rem}@media(min-width:768px){.pillar-grid{grid-template-columns:repeat(3,1fr)}}.pillar-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.65rem;height:100%;box-shadow:inset 0 0 0 1px var(--border-subtle);transition:border-color .2s,transform .2s}.pillar-card:hover{border-color:var(--accent-dim)}@media(hover:hover){.pillar-card:hover{transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.pillar-card__phase{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.5rem}.pillar-card__codename{font-family:var(--font-serif);font-size:1.45rem;font-weight:600;margin:0 0 .35rem}.pillar-card__title{color:var(--text-muted);font-size:.92rem;margin:0 0 .85rem}.pillar-card p:last-child{font-size:.95rem;color:var(--text-muted);line-height:1.65}.site-footer{border-top:1px solid var(--border);color:var(--text-muted);font-size:.9rem}.site-footer p{margin-bottom:.5rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html.game-active,body.game-active{height:100%;overflow:hidden}body.game-active{display:flex;flex-direction:column}.shooter-root{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--bg-deep);padding-bottom:var(--safe-bottom)}.shooter-hud{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;padding:.6rem clamp(.75rem,3vw,1.25rem);padding-left:max(.75rem,var(--safe-left));padding-right:max(.75rem,var(--safe-right));border-bottom:1px solid var(--border);background:#0a0a0af2;font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted)}.shooter-hud__label{display:block;font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.15rem}.shooter-hud__stat strong,.shooter-hud__score strong{color:var(--accent-bright);font-size:1rem}.shooter-hud__center{text-align:center}.shooter-hud__game-title{display:block;font-family:var(--font-serif);font-size:.95rem;color:var(--accent);letter-spacing:.05em;margin-bottom:.15rem}.shooter-hud__score{font-size:.68rem;letter-spacing:.06em}.shooter-hud__right{display:flex;align-items:center;justify-content:flex-end;gap:.75rem}.shooter-hud__lives{display:flex;flex-direction:column;align-items:flex-end}.life-pips{display:flex;gap:.3rem}.life-pip{width:9px;height:9px;border:1px solid var(--accent-dim);transform:rotate(45deg);opacity:.2;transition:opacity .2s,box-shadow .2s}.life-pip--on{opacity:1;background:#c9a96159;box-shadow:0 0 8px #c9a96159;border-color:var(--accent)}.hud-btn{font:inherit;font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);background:transparent;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);padding:.35rem .55rem;min-height:2.25rem;min-width:2.25rem;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.hud-btn:hover{border-color:var(--accent-dim);color:var(--accent)}.shooter-hud__controls{margin:0;padding:.35rem clamp(.75rem,3vw,1.25rem);font-family:var(--font-mono);font-size:clamp(.58rem,2vw,.65rem);letter-spacing:.07em;color:var(--text-muted);text-align:center;border-bottom:1px solid var(--border);background:#0006}.shooter-main{display:flex;flex:1;min-height:0;padding:clamp(.4rem,2vw,.65rem);gap:clamp(.4rem,2vw,.65rem)}.shooter-canvas-wrap{position:relative;flex:1;min-height:0;min-width:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:inset 0 0 60px #00000080,0 0 0 1px var(--border-subtle)}.shooter-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.45) 100%)}.shooter-canvas{display:block;width:100%;height:100%;cursor:crosshair;background:#050505;touch-action:none;user-select:none;-webkit-user-select:none}.touch-controls{display:none;position:absolute;inset:0;pointer-events:none;z-index:2}.touch-controls__pad{position:absolute;left:max(.5rem,var(--safe-left));bottom:max(.5rem,var(--safe-bottom));display:grid;grid-template-columns:repeat(3,2.75rem);grid-template-rows:repeat(3,2.75rem);gap:.25rem;pointer-events:none}.touch-btn{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;font-size:.85rem;line-height:1;color:var(--accent-bright);background:#0a0a0ab8;border:1px solid var(--accent-dim);border-radius:50%;cursor:pointer;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;backdrop-filter:blur(4px)}.touch-btn:active,.touch-btn.is-active{background:#c9a96140;border-color:var(--accent)}.touch-btn--up{grid-column:2;grid-row:1}.touch-btn--left{grid-column:1;grid-row:2}.touch-btn--right{grid-column:3;grid-row:2}.touch-btn--down{grid-column:2;grid-row:3}.touch-btn--fire{position:absolute;right:max(.75rem,var(--safe-right));bottom:max(.75rem,var(--safe-bottom));width:3.5rem;height:3.5rem;font-size:1.1rem;border-width:2px}@media(hover:none)and (pointer:coarse){.touch-controls{display:block}.shooter-canvas{cursor:default}}.scoreboard{width:12.5rem;flex-shrink:0;padding:1.1rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);overflow-y:auto;box-shadow:inset 0 0 0 1px var(--border-subtle)}.scoreboard__title{font-family:var(--font-serif);font-size:1rem;font-weight:600;color:var(--accent);margin:0 0 1rem;padding-bottom:.55rem;border-bottom:1px solid var(--border)}.scoreboard__summary{display:grid;gap:.65rem;margin:0 0 1.15rem}.scoreboard__stat{padding:.55rem .6rem;border:1px solid var(--border);background:var(--bg-card);border-radius:calc(var(--radius) - 2px)}.scoreboard__stat dt{font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;margin:0 0 .2rem}.scoreboard__stat dd{margin:0;font-size:1.45rem;font-weight:600;color:var(--accent-bright)}.scoreboard__rank-title{font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;margin:0 0 .45rem}.scoreboard__ranks{margin:0}.scoreboard__ranks-toggle{font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);cursor:pointer;list-style:none;margin-bottom:.45rem}.scoreboard__ranks-toggle::-webkit-details-marker{display:none}.scoreboard__ranks-toggle:before{content:"▸ ";color:var(--accent-dim)}.scoreboard__ranks[open] .scoreboard__ranks-toggle:before{content:"▾ "}.scoreboard__list{margin:0;padding:0;list-style:none;counter-reset:patrol}.scoreboard__list li{counter-increment:patrol;padding:.38rem 0;border-bottom:1px solid var(--border);color:var(--text);font-size:.82rem}.scoreboard__list li:before{content:counter(patrol) ". ";color:var(--accent-dim)}.scoreboard__list li:first-child{color:var(--accent-bright)}.scoreboard__empty{margin:0;font-size:.68rem;font-style:italic}.shooter-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#050505c7;backdrop-filter:blur(3px);pointer-events:none}.shooter-overlay__panel{text-align:center;padding:2rem 2.25rem;border:1px solid var(--accent-dim);border-radius:var(--radius);background:#0c0c0cf5;box-shadow:0 8px 32px #00000073;max-width:88%}.shooter-overlay__title{font-family:var(--font-serif);font-size:clamp(1.35rem,4vw,1.85rem);font-weight:600;color:var(--accent-bright);margin:0 0 .45rem}.shooter-overlay__text{font-size:.88rem;color:var(--text-muted);margin:0 0 1rem}.shooter-overlay__cta{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0}.shooter-overlay[hidden]{display:none}@media(max-width:720px){.shooter-hud{grid-template-columns:1fr 1fr;gap:.5rem;padding-block:.45rem}.shooter-hud__center{grid-column:1 / -1;order:-1;padding-bottom:.25rem;border-bottom:1px solid var(--border);margin-bottom:.15rem}.shooter-hud__game-title{font-size:.85rem}.shooter-hud__controls{display:none}.shooter-main{flex-direction:column;padding:.4rem}.shooter-canvas-wrap{flex:1 1 auto;min-height:min(52vh,28rem)}.scoreboard{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:.5rem .75rem;padding:.75rem;max-height:none}.scoreboard__title,.scoreboard__rank-title,.scoreboard__ranks{grid-column:1 / -1}.scoreboard__rank-title{display:none}.scoreboard__summary{margin:0}.scoreboard__stat dd{font-size:1.2rem}.scoreboard__list{max-height:5.5rem;overflow-y:auto}}@media(min-width:721px){.scoreboard__ranks-toggle{display:none}.scoreboard__ranks{display:block}}@media(min-width:721px)and (max-height:500px)and (orientation:landscape){.shooter-main{flex-direction:row}.scoreboard{width:11rem}.shooter-canvas-wrap{min-height:0}}
