:root{color-scheme:dark;--cream:#f1eedf;--muted:#b8c6b8;--gold:#d9bd77;--green:#17382c;--line:rgba(231,236,211,.19);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--cream);background:#17291f}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,select,input,a{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button,a,select,input{touch-action:manipulation}button{min-height:44px;border:1px solid var(--line);border-radius:7px;background:#294737;color:var(--cream);cursor:pointer;padding:10px 16px;font-weight:650}button:hover{background:#3e5d46;border-color:var(--gold)}button:disabled{opacity:.5;cursor:default}a{color:var(--cream);text-decoration:none}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.primary,.fire{background:var(--gold);color:#172b22;border-color:var(--gold)}.primary:hover,.fire:hover{background:#edcf87}select{width:100%;min-height:44px;background:#213e2e;color:var(--cream);border:1px solid var(--line);border-radius:6px;padding:8px}label{font-size:13px;display:flex;flex-direction:column;gap:8px}small{font-size:11px}h1,h2,p{margin-top:0}h2{font-size:26px;font-weight:600;letter-spacing:-.6px}#world{width:100%;height:100%;position:fixed;inset:0;touch-action:none;display:block}.scene-shade{position:fixed;inset:0;background:linear-gradient(90deg,rgba(10,24,18,.78),rgba(16,30,23,.14) 55%,rgba(11,25,17,.43));pointer-events:none}body.playing .scene-shade{background:linear-gradient(0deg,rgba(12,22,17,.35),transparent 25%,transparent 75%,rgba(12,22,17,.23));}body.playing #world{cursor:default}body.mouse-captured #world{cursor:none}.screen{position:fixed;inset:0;z-index:2;overflow:auto;overscroll-behavior:contain}.screen[hidden],[hidden]{display:none!important}.tour{padding:0 max(24px,calc((100vw - 1540px)/2));background:linear-gradient(0deg,rgba(9,27,17,.4),transparent 70%)}.brand-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:82px;border-bottom:1px solid var(--line)}.brand{font-weight:900;letter-spacing:2px;font-size:16px}.brand span{font-size:10px;letter-spacing:3px;display:block;margin-top:4px;color:var(--gold)}.edition{text-align:center;letter-spacing:3px;font-weight:600;font-size:12px}.edition span{display:block;font-size:9px;letter-spacing:2px;color:var(--muted);margin-top:5px}.quiet-link{font-size:12px;color:var(--muted)}.tour-layout{display:grid;grid-template-columns:1fr 1.25fr;gap:6vw;max-width:1420px;margin:6vh auto 4vh;align-items:center}.eyebrow{font-size:10px;font-weight:750;letter-spacing:2.5px;color:var(--gold);margin-bottom:14px}.intro h1{font-family:Georgia,serif;font-size:clamp(44px,4.8vw,78px);font-weight:400;line-height:1.06;letter-spacing:-2px;margin-bottom:26px}.intro em{color:var(--gold);font-weight:400}.intro-copy{font-size:16px;line-height:1.7;color:#d1dbcf}.career{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-top:32px}.career strong{font-size:25px;font-weight:450}.career span{font-size:9px;letter-spacing:2px;color:var(--muted)}.field-note{margin:34px 0 0;padding-left:14px;border-left:1px solid var(--gold);color:#b2c2b2;font-size:12px;line-height:1.8}.tour-card{background:rgba(17,39,28,.94);border:1px solid var(--line);border-radius:15px;padding:26px;box-shadow:0 20px 80px rgba(0,0,0,.18);backdrop-filter:blur(14px)}.region-nav{display:flex;gap:7px;margin-bottom:24px}.region-nav button{flex:1;min-width:0;padding:8px 4px;font-size:10px;font-weight:600;background:transparent;color:var(--muted)}.region-nav button.selected{background:var(--gold);color:#22352a;border-color:var(--gold)}.region-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.region-heading .eyebrow{margin-bottom:7px}.region-heading h2{margin-bottom:8px}.region-count{font-size:22px;font-family:Georgia,serif;color:var(--gold)}.muted{color:var(--muted);font-size:12px;line-height:1.7}.mission-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:17px 0 23px}.mission-card{text-align:left;background:#274131;padding:15px;min-height:103px;position:relative;overflow:hidden}.mission-card:before{content:'';position:absolute;inset:0 0 0 85%;background:linear-gradient(135deg,transparent,#62745033);transform:skew(-10deg)}.mission-card strong{display:block;font-size:14px;margin:7px 0 9px}.mission-card small{color:var(--muted);letter-spacing:1px}.mission-card .stars{color:var(--gold);font-size:14px;letter-spacing:3px}.mission-card .badge{color:var(--gold);font-size:8px;float:right;letter-spacing:1px;margin-top:4px}.mission-card .locked{font-size:10px;color:var(--muted)}.bonus-heading{font-size:9px;letter-spacing:1.5px;color:var(--gold);display:flex;justify-content:space-between;margin-bottom:10px}.bonus-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.bonus-card{text-align:left;padding:11px 13px;min-height:76px;background:#344331;border-style:dashed}.bonus-card strong{display:block;font-size:12px;margin-bottom:6px}.bonus-card small{color:var(--muted);font-size:10px;line-height:1.5;display:block}.bonus-card.unlocked{border-style:solid;border-color:#c2a568}.equipment{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;padding-top:22px;margin-top:22px;border-top:1px solid var(--line)}.equipment label{font-size:10px;color:var(--muted)}.small{padding:10px 12px;font-size:11px}.control-tip{color:#a6b7a6;font-size:10px;line-height:1.6;margin:18px 0 0}.tour-footer{border-top:1px solid var(--line);display:flex;gap:24px;align-items:center;justify-content:space-between;padding:15px 0 24px;color:var(--muted);font-size:10px}.text-button{border:0;background:none;min-height:40px;padding:0;color:var(--muted);font-size:11px}.play{position:fixed;inset:0;z-index:1;pointer-events:none;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.hud{display:flex;align-items:center;gap:20px;justify-content:space-between;margin:15px 22px;padding:12px 16px;background:rgba(14,34,23,.9);border:1px solid var(--line);border-radius:9px;max-width:780px}.mission-info{display:flex;flex-direction:column;gap:5px;min-width:0}.mission-info small{color:var(--gold);font-size:10px;letter-spacing:2px}.mission-info strong{font-size:16px}.score-info{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;max-width:140px}.score-info strong{font-size:26px;font-weight:550}.score-info>span{font-size:12px;color:var(--muted)}.score-info small{width:100%;font-size:10px;color:var(--muted)}.hud-button{pointer-events:auto;padding:8px 12px;font-size:11px}.sight{position:fixed;left:50%;top:50%;width:24px;height:24px;transform:translate(-50%,-50%);border:1px solid rgba(242,226,169,.55);border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.2)}.sight span{position:absolute;width:3px;height:3px;background:#e9f4b1;left:10px;top:10px;box-shadow:0 0 2px #000}.sight.aimed{width:50px;height:50px;border-color:rgba(240,232,198,.4)}.sight.aimed span{left:23px;top:23px}.sight.aimed:before,.sight.aimed:after{content:'';position:absolute;background:rgba(243,233,198,.9)}.sight.aimed:before{width:1px;height:48px;left:24px;top:0}.sight.aimed:after{width:48px;height:1px;top:24px;left:0}.sight.aimed span{z-index:1}.range-readout{position:absolute;right:24px;top:24px;display:flex;flex-direction:column;gap:8px;text-align:right;font-size:10px;font-weight:700;letter-spacing:1.2px;color:#edf1dd;text-shadow:0 1px 4px #111}.impact{position:absolute;left:50%;top:calc(50% + 70px);transform:translateX(-50%);font-size:40px;font-family:Georgia,serif;font-weight:700;color:#f9dd97;text-shadow:0 2px 6px #17291f;opacity:0;transition:opacity .15s}.impact.show{opacity:1}.course-note{position:absolute;left:50%;top:108px;transform:translateX(-50%);max-width:70%;padding:7px 14px;font-size:11px;line-height:1.6;text-align:center;border-radius:5px;background:rgba(17,33,23,.75);color:#e6e9d7}.course-note:empty{display:none}.bottom-hud{position:absolute;bottom:max(16px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(680px,calc(100% - 32px));background:rgba(14,34,23,.93);border:1px solid var(--line);border-radius:10px;padding:12px 16px;pointer-events:auto}.round-track{display:flex;gap:7px;justify-content:center;margin-bottom:8px}.round-track span{display:flex;justify-content:center;align-items:center;font-size:11px;width:26px;height:26px;border:1px solid var(--line);border-radius:50%;color:var(--gold)}.round-track span.fired{background:#526046}.action-line{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:10px;margin-bottom:10px}.action-line span:first-child{margin-right:auto;color:var(--gold)}meter{width:74px;height:8px}.play-controls{display:flex;gap:8px}.play-controls button{flex:1;min-width:0;padding:10px 8px;font-size:11px}.play-controls .fire{flex:1.5;font-size:16px;letter-spacing:2px}.play-controls button.active{background:#53644a;border-color:var(--gold)}.centered{display:flex;justify-content:center;align-items:center;padding:20px;background:rgba(10,26,17,.66);backdrop-filter:blur(6px)}.result-card{width:min(570px,100%);background:#183529;border:1px solid var(--line);border-radius:16px;padding:28px;text-align:center;position:relative;max-height:calc(100dvh - 40px);overflow:auto}.result-card h2{margin-bottom:12px}.result-score strong{font-family:Georgia,serif;font-size:68px;font-weight:400}.result-score span{color:var(--muted);font-size:18px}.result-stars{font-size:28px;color:var(--gold);letter-spacing:6px;margin:3px 0 8px}.stamp{position:absolute;right:25px;top:170px;border:3px double var(--gold);padding:10px;color:var(--gold);font-size:17px;letter-spacing:2px;transform:rotate(-12deg);line-height:1.2}.stamp small{font-size:7px;letter-spacing:1px}#shot-map{width:180px;height:180px;display:block;margin:10px auto;border-radius:50%}.result-breakdown{display:flex;gap:8px;justify-content:center}.result-breakdown span{border:1px solid var(--line);border-radius:4px;min-width:30px;padding:7px;font-size:12px}.result-note{min-height:24px}.result-buttons{display:flex;gap:9px;justify-content:center}.result-buttons button{flex:1;font-size:12px}dialog{width:min(620px,calc(100% - 28px));border:1px solid #728265;border-radius:13px;background:#183529;color:var(--cream);padding:24px;max-height:calc(100dvh - 32px);overflow:auto}dialog::backdrop{background:rgba(8,22,13,.65);backdrop-filter:blur(4px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px}.dialog-heading h2{margin:0;font-size:23px}.dialog-heading button{font-size:11px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.settings-grid label{font-size:12px}.settings-grid output,.settings-grid small{color:var(--gold);font-size:11px}.settings-grid input[type=range]{width:100%;accent-color:var(--gold)}.checkbox{flex-direction:row;align-items:center;min-height:44px}.checkbox input{accent-color:var(--gold);width:18px;height:18px}.dialog-actions{border-top:1px solid var(--line);margin-top:20px;padding-top:18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.dialog-actions a{font-size:12px}.error{position:fixed;inset:20%;background:#193327;border:1px solid var(--gold);padding:32px;border-radius:12px;z-index:20}.error a{margin-left:15px}#diagnostic{position:fixed;left:10px;top:115px;font:11px monospace;background:#14271ee0;padding:8px;z-index:4;color:#dee6d6;pointer-events:none}#help-dialog p{font-size:13px;line-height:1.8;color:#cdd9cb}
@media(min-width:1600px){.tour-layout{gap:120px}.range-readout{top:35px;right:40px}}@media(max-width:1050px){.tour-layout{grid-template-columns:.75fr 1.25fr;gap:26px}.intro h1{font-size:48px}.tour-card{padding:20px}.equipment{grid-template-columns:1fr 1fr}.equipment button{grid-column:span 2}.field-note{display:none}.range-readout{top:108px;right:20px;max-width:180px;font-size:9px}.course-note{max-width:55%;top:105px}}@media(max-width:760px){.tour{padding:0 16px}.brand-bar{min-height:66px;gap:8px}.edition{font-size:10px;letter-spacing:1px}.brand{font-size:12px}.brand span{font-size:8px;letter-spacing:2px}.tour-layout{display:block;margin:24px auto 18px;max-width:550px}.intro h1{font-size:40px;letter-spacing:-1px;margin:0 0 12px}.intro h1 br{display:none}.intro h1 em{display:block}.intro-copy{display:none}.intro .eyebrow{margin-bottom:10px}.career{margin:14px 0 20px;gap:10px}.career strong{font-size:17px}.career span{font-size:8px}.tour-card{padding:17px}.region-nav{margin-bottom:18px;gap:4px}.region-nav button{font-size:9px}.region-heading h2{font-size:22px}.mission-card{padding:12px;min-height:94px}.mission-card strong{font-size:13px}.mission-card small{font-size:9px}.bonus-heading{font-size:8px;letter-spacing:1px}.bonus-card{padding:10px;min-height:84px}.equipment{padding-top:16px;margin-top:16px}.tour-footer{gap:15px;font-size:9px}.hud{margin:10px 12px;padding:9px 11px;gap:12px}.mission-info strong{font-size:14px}.mission-info small{font-size:8px;letter-spacing:1px}.score-info strong{font-size:22px}.score-info{max-width:98px}.hud-button{padding:8px;min-height:40px}.bottom-hud{width:calc(100% - 20px);bottom:max(10px,env(safe-area-inset-bottom));padding:10px}.play-controls{gap:5px}.play-controls button{font-size:10px;padding:10px 4px}.play-controls .fire{font-size:14px;letter-spacing:1px}.range-readout{top:96px;right:13px;font-size:8px;gap:4px;max-width:150px}.course-note{top:125px;font-size:10px;max-width:88%;width:max-content;padding:5px 10px}.result-card{padding:22px}.result-score strong{font-size:54px}.stamp{top:139px;right:15px;font-size:14px}#shot-map{width:145px;height:145px}.result-buttons{flex-wrap:wrap}.result-buttons button{min-width:105px}.settings-grid{gap:18px}.error{inset:15px;padding:22px}.impact{top:calc(50% + 45px);font-size:30px}}
@media(max-height:500px) and (orientation:landscape){.hud{margin:8px 12px;padding:7px 10px;max-width:520px}.score-info small{width:auto}.score-info{max-width:160px}.mission-info strong{font-size:12px}.range-readout{top:15px;right:14px;font-size:8px}.bottom-hud{bottom:8px;padding:7px 10px;width:min(570px,calc(100% - 24px))}.round-track{position:absolute;left:12px;top:-32px;gap:5px}.round-track span{background:#203b2dd9;width:23px;height:23px}.action-line{margin-bottom:5px}.play-controls button{min-height:38px;padding:7px}.course-note{top:68px;max-width:70%;font-size:9px}.impact{top:calc(50% + 30px);font-size:27px}.tour-layout{margin-top:20px;display:grid;grid-template-columns:.6fr 1.4fr;gap:20px;max-width:100%}.intro h1{font-size:32px}.intro h1 br{display:block}.intro .career{display:block}.career strong,.career span{display:inline-block;margin:5px}.tour-card{padding:16px}.centered{align-items:flex-start}.result-card{max-height:none}.result-score strong{font-size:42px}#shot-map{width:100px;height:100px}.stamp{top:115px}.settings-grid{gap:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto;transition:none!important}}
#optic-lens{position:fixed;left:50%;top:50%;width:min(74vh,84vw);height:min(74vh,84vw);transform:translate(-50%,-50%);border-radius:50%;border:8px solid rgba(19,27,24,.85);box-shadow:0 0 0 200vmax rgba(7,16,12,.48),inset 0 0 24px rgba(22,47,38,.42);pointer-events:none}#sight{z-index:1}.hud,.bottom-hud,.range-readout,.course-note{z-index:2}

/* Rifle rack stays inspectable on portrait phones; controls never select text. */
.play-controls button,.hud-button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#rifles-dialog{width:min(1040px,calc(100vw - 24px));max-width:1040px;max-height:92dvh;padding:24px;overflow:auto;background:#18372b;color:var(--cream);border:1px solid var(--line);border-radius:14px}#rifles-dialog::backdrop{background:#07130ed9}.rifle-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(230px,1fr);gap:24px}.rifle-detail{min-width:0}.rifle-preview-wrap{position:relative;border-radius:12px;background:radial-gradient(ellipse at center,#55705a,#213c2e);overflow:hidden;border:1px solid var(--line)}#rifle-preview{width:100%;height:260px;display:block;touch-action:none}.rifle-preview-wrap button{position:absolute;right:10px;bottom:10px}.rifle-preview-wrap span{position:absolute;left:12px;bottom:18px;font-size:11px;color:#e2e5d5;pointer-events:none}.rifle-detail h3{margin:18px 0 6px;font-size:22px}.comparison-control{max-width:250px;margin:18px 0}.locked-rifle{filter:grayscale(1);opacity:.65}#rifle-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-content:start}.rifle-card{padding:8px;min-width:0;text-align:left;background:#294737}.rifle-card img{width:100%;height:auto;aspect-ratio:2;object-fit:contain;display:block}.rifle-card strong{font-size:11px;display:block;line-height:1.4}.rifle-card small{display:block;margin-top:5px;color:var(--muted)}.rifle-card[aria-pressed=true]{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}#rifle-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}#rifle-stats div{border-bottom:1px solid var(--line);padding-bottom:10px;min-width:0}#rifle-stats dt{font-size:11px;color:var(--muted);margin-bottom:6px}#rifle-stats dd{margin:0;font-size:16px}.stat-note{font-size:11px;line-height:1.6;color:var(--muted)}@media(max-width:650px){#rifles-dialog{padding:16px}.rifle-layout{display:flex;flex-direction:column;gap:24px}#rifle-preview{height:210px}#rifle-list{grid-template-columns:repeat(3,minmax(0,1fr))}.rifle-card strong{font-size:10px}#rifle-stats dd{font-size:14px}}

#mil-reticle{position:fixed;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}

.ammo-note{font-size:12px;line-height:1.65;color:var(--muted);padding:12px 14px;border-left:2px solid var(--gold);background:#203a2c;border-radius:0 6px 6px 0}.range-actions{display:flex;gap:10px;flex-wrap:wrap}.range-actions button{flex:1}#wind-strength{width:110px;height:7px;align-self:flex-end;accent-color:var(--gold)}#practice-dialog,#ammo-dialog{width:min(760px,calc(100vw - 24px));max-width:760px;max-height:92dvh;overflow:auto}.practice-lanes,.practice-loadout{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.practice-lanes button[aria-pressed=true],.practice-course[aria-pressed=true]{border-color:var(--gold);background:#465a3c}.practice-courses{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:10px}.practice-course strong,.practice-course small{display:block}.practice-course strong{font-size:20px;margin-bottom:8px}.practice-course small{font-size:10px;line-height:1.5}.ammo-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ammo-cards article{padding:16px;background:#254333;border:1px solid var(--line);border-radius:8px}.ammo-cards h3{margin:0 0 8px}.ammo-cards p{font-size:13px;line-height:1.6}.ammo-cards strong,.ammo-cards small{display:block;font-size:11px;line-height:1.7}.ammo-cards strong{color:var(--gold)}.ammo-cards small{margin-top:8px;color:var(--muted)}@media(max-width:650px){.practice-loadout,.ammo-cards{grid-template-columns:1fr}.practice-lanes button{font-size:12px;padding:10px 6px}#practice-dialog,#ammo-dialog{padding:18px}.practice-courses{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px) and (orientation:portrait){.course-note{top:153px}}

.mouse-capture-note{margin:0 22px;max-width:780px;font-size:11px;color:var(--cream);text-shadow:0 1px 3px #111;pointer-events:none}.desktop-control{white-space:nowrap}@media (hover:none),(pointer:coarse),(max-width:700px){.desktop-control{display:none!important}}
