:root{--bg:#f6f0df;--panel:#fffaf0;--panel2:#eee4cd;--text:#243e35;--dim:#576153;--accent:#28604d;--accent2:#9d491e;--line:#cebea0;--focus:#ffdf66;--sky1:#7dc5d2;--sky2:#b9e0df;--sky3:#f6ebc9;--hill:#809c72;--ground:#93b16a;--dirt:#c7ad7d;--sun:#fff1cd;--wood:#b77c43;--stone:#d4bd91;--glass:#66d3df;--barrel:#c66c46;--crown:#edb93c;--steel:#657c86;--guard:#89b76a;--ink:#4a4937}
body[data-theme="ben"],body[data-theme="dark"]{--bg:#172923;--panel:#20372f;--panel2:#30483d;--text:#fff7df;--dim:#d1d4c0;--accent:#aad3ac;--accent2:#ffcb81;--line:#688374;--sky1:#425c83;--sky2:#8d9bb2;--sky3:#dcc1a8;--ground:#718868;--hill:#546e64}
body[data-theme="light"]{--bg:#fff;--panel:#fff;--panel2:#edf2ef}
body[data-theme="contrast"]{--bg:#000;--panel:#000;--panel2:#151515;--text:#fff;--dim:#fff;--accent:#ff0;--accent2:#0ff;--line:#fff;--focus:#ff0;--sky1:#000;--sky2:#101010;--sky3:#101010;--hill:#202020;--ground:#303030;--dirt:#181818;--sun:#fff;--wood:#ffa500;--stone:#fff;--glass:#0ff;--barrel:#ff3b3b;--crown:#ff0;--steel:#aaa;--guard:#0f0;--ink:#fff}

*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{background:var(--ground);color:var(--text);font-family:'Trebuchet MS','Segoe UI',sans-serif;user-select:none}button{font:inherit;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.5;cursor:default}[hidden]{display:none!important}#app{position:fixed;inset:0;overflow:hidden}#stage{position:absolute;inset:0 0 34px;overflow:hidden}#cvWrap{position:absolute;inset:0;overflow:hidden}#cvWrap>canvas:not(#minimap){display:block;width:100%;height:100%}#loading{position:absolute;inset:0;z-index:12;display:flex;align-items:center;justify-content:center;background:var(--panel);font-size:28px;font-weight:bold}#hud{position:absolute;top:16px;left:18px;right:145px;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;pointer-events:none}#hud>div:first-child{padding:9px 16px;background:var(--panel);border:3px solid var(--ink);border-radius:13px;box-shadow:0 5px 0 #2b372b44}#chapter,.eyebrow{font-size:12px;letter-spacing:2px;font-weight:900;color:var(--accent2)}h1{font-size:23px;margin:3px 0}#castleBrief{display:none}.stats{display:flex;gap:8px}.stats span{padding:7px 13px;background:var(--panel);border:3px solid var(--ink);border-radius:13px;font-size:12px;font-weight:bold;box-shadow:0 5px 0 #2b372b44}.stats b{display:block;font-size:23px;color:var(--accent)}.pauseFloating{position:absolute;right:18px;top:16px;z-index:9;min-width:105px;height:64px;background:var(--panel);border:3px solid var(--ink);border-radius:14px;color:var(--text);font-weight:900;box-shadow:0 5px 0 #2b372b44}#minimap{position:absolute;right:18px;bottom:230px;width:135px;height:135px;z-index:2;border:3px solid var(--ink);border-radius:16px;background:var(--panel)}#caption{position:absolute;bottom:244px;left:20px;max-width:calc(100% - 190px);z-index:2;background:var(--panel);padding:9px 16px;border:2px solid var(--ink);border-radius:12px;font-size:15px;font-weight:bold}#caption:empty{display:none}#shotbar{position:absolute;left:18px;right:18px;bottom:12px;z-index:3;display:flex;flex-direction:column;gap:10px;background:linear-gradient(160deg,var(--panel),var(--panel2));border:4px solid var(--ink);border-radius:20px;padding:12px 18px;box-shadow:0 7px 0 #2b372b55;overflow:hidden}.shotHeading{display:flex;align-items:center;justify-content:space-between;gap:10px}.shotHeading h2{font-size:25px;margin:2px 0}.shotHeading p{font-size:14px;margin:3px 0;color:var(--dim)}#ammoBadge{padding:8px 15px;border:2px solid var(--ink);border-radius:30px;background:var(--focus);font-weight:900;color:#2b4037;white-space:nowrap}#shotChoices{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;padding:4px}.choice{position:relative;min-height:72px;padding:12px 16px;text-align:left;background:linear-gradient(170deg,var(--panel),var(--panel2));color:var(--text);border:3px solid var(--ink);border-radius:15px;box-shadow:0 5px 0 #263e3555;overflow:hidden}.choice strong{display:block;font-size:19px;line-height:1.15;font-weight:900}.choice small{display:block;font-size:13px;line-height:1.35;margin-top:5px;color:var(--dim)}.choice:hover{background:var(--focus);color:#243e35}.choice.primary{background:linear-gradient(#539471,#28644b);color:#fffbea}.choice.primary small{color:#fffbea}.choice.focus,button:focus-visible{outline:5px solid var(--focus);outline-offset:3px;background:#ffe284;color:#243e35;border-color:#243e35;box-shadow:0 5px 0 #243e35,0 0 0 8px #243e35}.choice.focus small{color:#334c3b}.choice.focus:after{content:'◆';position:absolute;right:8px;top:5px;font-size:14px;color:#243e35}#overlay{position:absolute;inset:0;z-index:6;display:flex;align-items:center;background:linear-gradient(90deg,#1b352c9c,transparent 78%);padding:24px 4vw;overflow:hidden}#panel{width:min(530px,48vw);max-height:100%;display:flex;flex-direction:column;gap:12px;overflow:hidden;background:none;border:0;box-shadow:none}.royalCrest{display:none}#panelEyebrow{color:#ffe597;font-size:13px;text-shadow:1px 2px 1px #203c35}#panelTitle{font-family:'Trebuchet MS',sans-serif;font-size:clamp(36px,4.5vw,70px);letter-spacing:-2px;line-height:.98;font-weight:1000;margin:0;color:#ffdd83;text-shadow:3px 3px 0 #304b3d,-2px -2px 0 #304b3d,2px -2px 0 #304b3d,-2px 2px 0 #304b3d,0 6px 0 #243e35;transform:rotate(-2deg);padding:7px 6px 10px}#panelSub{font-size:17px;line-height:1.35;font-weight:bold;margin:0;padding:10px 14px;color:var(--text);background:var(--panel);border:3px solid var(--ink);border-radius:12px}#panelList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:9px 8px 13px;overflow:hidden}#panelList>.choice{min-height:88px}#panelNote{font-size:13px;font-weight:bold;line-height:1.3;color:#fff9df;text-shadow:1px 2px 1px #203c35;margin:0 8px}body[data-screen="welcome"] #panelTitle{font-size:clamp(50px,6vw,86px)}body[data-screen="welcome"] #panelEyebrow{font-size:16px}body[data-screen="ammo"] #overlay{justify-content:center;background:linear-gradient(#1e392b99,#1e392b22 45%,#1e392baa)}body[data-screen="ammo"] #panel{width:min(1240px,96vw);align-items:center;gap:14px}body[data-screen="ammo"] #panelTitle{font-size:clamp(34px,4vw,58px);text-align:center}body[data-screen="ammo"] #panelSub{text-align:center}#panelList.ammoGrid{width:100%;display:grid;grid-template-columns:repeat(var(--ammo-columns,3),minmax(0,1fr));gap:18px;align-items:stretch}#panelList .ammoCard{min-height:300px;padding:16px;border-radius:20px;border-width:4px;box-shadow:0 8px 0 #2f463bcc}.ammoArt{display:block;width:100%;height:150px;filter:drop-shadow(0 8px 2px #3f4d3624);margin-bottom:12px}.ammoCard .tag{display:block;font-size:10px;font-weight:900;color:var(--accent2);letter-spacing:1px;margin-bottom:7px}.ammoCard strong{font-size:25px}.ammoCard small{font-size:14px}.ammoCard:nth-child(2){background:linear-gradient(#e0eee5,#c2d5c4)}.ammoCard:nth-child(3){background:linear-gradient(#ffead1,#ebc390)}.ammoCard:nth-child(4){background:linear-gradient(#eee1fa,#d0b8df)}.ammoCard:nth-child(5){background:linear-gradient(#e0eaf1,#bccdda)}#panelList .menuUtility{grid-column:1/-1;min-height:64px;width:260px;justify-self:center;text-align:center}#panelList .pageChoice{min-height:64px;background:var(--panel2)}#panelList .pageChoice strong{font-size:17px}body:not([data-screen="target"]):not([data-screen="review"]):not([data-screen="range"]):not([data-screen="aim"]):not([data-screen="flight"]) #caption{display:none}footer{position:absolute;bottom:0;left:0;right:0;height:34px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 20px;background:var(--panel);border-top:2px solid var(--ink);font-size:12px;font-weight:bold}#modeLabel{color:var(--accent)}#holdProgress{position:absolute;z-index:11;left:50%;top:40%;transform:translate(-50%,-50%);background:var(--panel);border:4px solid var(--ink);border-radius:18px;padding:18px;font-size:22px;font-weight:bold}#holdProgress progress{display:block;margin-top:10px;accent-color:var(--accent)}#meterTrack{position:relative;height:30px;border:2px solid var(--ink);border-radius:12px;overflow:hidden;background:var(--panel2)}#meterFill{height:100%;background:var(--accent)}#meterValue{position:absolute;left:45%;top:1px;background:var(--panel);padding:2px 12px;border-radius:8px}
@media(max-width:1100px){#shotChoices{grid-template-columns:repeat(3,minmax(0,1fr))}.choice{min-height:64px;padding:10px 12px}.choice strong{font-size:17px}.choice small{font-size:12px}#shotbar{gap:6px;padding:10px 12px}#caption{bottom:280px}#minimap{bottom:280px;width:110px;height:110px}#panel{width:min(520px,59vw)}#panelList>.choice{min-height:78px}#panelSub{font-size:15px}#panelTitle{font-size:42px}.ammoArt{height:120px}#panelList .ammoCard{min-height:260px}.ammoCard strong{font-size:22px}#panelList.ammoGrid{gap:14px}.stats span{padding:6px 9px}#pScore{display:none}}
@media(max-width:700px){#overlay{padding:14px;background:linear-gradient(#173b2877,#173b28bb);align-items:center;justify-content:center}#panel{width:100%;max-width:550px;gap:9px}#panelTitle,body[data-screen="welcome"] #panelTitle{font-size:42px;text-align:center;letter-spacing:-1px}#panelEyebrow{text-align:center}#panelSub{font-size:14px;padding:8px 10px}#panelList{gap:12px;padding:9px 8px 13px}#panelList>.choice{min-height:72px}#panelNote{font-size:12px;text-align:center}#panelList .ammoCard{min-height:245px;padding:12px}.ammoArt{height:110px}.ammoCard strong{font-size:21px}.ammoCard small{font-size:13px}.ammoCard .tag{font-size:9px}#shotChoices{grid-template-columns:repeat(2,minmax(0,1fr))}.shotHeading h2{font-size:22px}.shotHeading p{font-size:12px}#shotbar{left:10px;right:10px;bottom:8px;padding:9px 10px}#ammoBadge{font-size:11px;padding:6px}.stats{display:none}#hud{left:10px;top:10px}#hud>div:first-child{padding:8px 10px}h1{font-size:19px}#chapter{font-size:10px}.pauseFloating{right:10px;top:10px;min-width:95px}#caption{bottom:295px;left:10px;font-size:12px;padding:6px 10px;max-width:calc(100% - 145px)}#minimap{bottom:295px;width:95px;height:95px;right:10px}footer{height:46px;flex-direction:column;justify-content:center;gap:3px;font-size:11px;padding:3px 8px}#stage{bottom:46px}}
@media(max-height:650px){#overlay{padding:12px 3vw}#panel{gap:7px}#panelTitle,body[data-screen="welcome"] #panelTitle{font-size:40px;letter-spacing:-1px;padding:4px}#panelEyebrow,body[data-screen="welcome"] #panelEyebrow{font-size:11px}#panelSub{font-size:14px;padding:7px 10px}#panelList{gap:10px}#panelList>.choice{min-height:68px;padding:9px 12px}.choice strong{font-size:17px}.choice small{font-size:12px}#panelNote{font-size:11px}#panelList .ammoCard{min-height:200px;padding:10px}.ammoArt{height:85px;margin-bottom:4px}.ammoCard strong{font-size:20px}.ammoCard small{font-size:12px}.ammoCard .tag{font-size:9px}#panelList.ammoGrid{gap:12px}#panelList .menuUtility,#panelList .pageChoice{min-height:64px}#shotChoices{grid-template-columns:repeat(4,minmax(0,1fr))}#shotChoices .choice{min-height:64px}.shotHeading h2{font-size:20px}.shotHeading p{font-size:12px}#shotbar{padding:7px 12px}#stepLabel{font-size:10px}#caption{bottom:190px;font-size:12px}#minimap{bottom:190px;width:85px;height:85px}#hud>div:first-child{padding:6px 10px}h1{font-size:19px}.stats b{font-size:19px}}
@media(max-width:700px) and (max-height:650px){#shotChoices{grid-template-columns:repeat(2,minmax(0,1fr))}#shotHint{display:none}#caption{bottom:240px}#minimap{bottom:240px}.ammoArt{height:70px}#panelList .ammoCard{min-height:180px}.ammoCard .tag{display:none}#panelNote{display:none}#panelSub{font-size:13px}#panelTitle,body[data-screen="welcome"] #panelTitle{font-size:33px}}
body[data-theme="contrast"] #overlay{background:#000b}body[data-theme="contrast"] #panelTitle{color:#ff0;text-shadow:none}body[data-theme="contrast"] .choice,body[data-theme="contrast"] .ammoCard{background:#000;color:#fff;border-color:#fff}body[data-theme="contrast"] .choice.focus{background:#ff0;color:#000;border-color:#000}body[data-theme="contrast"] .choice.focus small{color:#000}body[data-theme="contrast"] .choice.primary small{color:inherit}body[data-theme="contrast"] #panelEyebrow{color:#fff}body[data-theme="contrast"] .ammoArt{background:#fff;border-radius:8px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* The same three-choice control deck is used throughout every shot. */
#shotbar{min-height:176px;padding:14px 20px 16px;gap:10px}#shotChoices{grid-template-columns:repeat(3,minmax(0,1fr))!important}#shotChoices .choice{min-height:72px;text-align:center}#shotIllustration{position:absolute;left:18px;top:8px;width:125px;height:94px;pointer-events:none}#shotIllustration .ammoArt{height:88px;margin:0}#shotIllustration .tag{display:none}body[data-screen="ammo"] .shotHeading{padding-left:135px}body[data-screen="ammo"] #caption{display:none}#caption{bottom:218px}#minimap{bottom:218px}body[data-screen="flight"] #shotbar{min-height:130px}body[data-screen="flight"] #shotChoices{display:flex!important;justify-content:flex-end}body[data-screen="flight"] #shotChoices .choice{min-width:180px}body[data-screen="flight"] #caption{bottom:170px}
@media(max-width:700px){#shotbar{padding:10px 12px;min-height:190px}#shotChoices{gap:8px}#shotChoices .choice{padding:10px 6px;min-height:72px}#shotChoices .choice strong{font-size:16px}#shotChoices .choice small{font-size:11px}#shotIllustration{width:88px;left:10px;top:10px}#shotIllustration .ammoArt{height:76px}body[data-screen="ammo"] .shotHeading{padding-left:91px}.shotHeading h2{font-size:21px}#shotHint{display:block;line-height:1.3;font-size:12px}#caption{bottom:230px}#minimap{bottom:230px}}
@media(max-height:650px){#shotbar{min-height:162px;padding:8px 14px}#shotChoices .choice{min-height:64px}#shotIllustration{height:68px;width:100px;top:4px}#shotIllustration .ammoArt{height:66px}body[data-screen="ammo"] .shotHeading{padding-left:108px}.shotHeading h2{font-size:19px}#shotHint{font-size:12px}#caption{bottom:190px}#minimap{bottom:190px}}

/* The castle itself is the shot selector. */
#ammoPicker{position:absolute;z-index:4;left:22px;top:50%;transform:translateY(-50%);width:230px;padding:15px;background:var(--panel);border:3px solid var(--ink);border-radius:22px;box-shadow:0 6px 0 #243e3544;text-align:center}
#ammoPicker>.eyebrow{font-size:10px;letter-spacing:1.5px}#ammoSelect{display:flex;flex-direction:column;align-items:center;width:100%;padding:8px 4px;background:none;border:0;border-radius:12px;color:var(--text);gap:7px}#ammoIcon{width:100%}#ammoIcon .ammoArt{height:115px;margin:0}#ammoIcon .tag{display:none}#ammoSelect strong{font-size:25px}#ammoDescription{font-size:14px;line-height:1.4}#ammoSelect small{font-size:12px;color:var(--accent);font-weight:bold}.ammoCycle{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:12px}.ammoCycle button{min-width:48px;min-height:44px;border:2px solid var(--ink);border-radius:12px;background:var(--panel2);color:var(--text);font-size:24px;font-weight:bold}#ammoCount{font-size:13px;font-weight:bold}#ammoPicker>p{font-size:12px;margin:10px 0 0;color:var(--dim)}
.pauseFloating,.cornerAction{position:absolute;z-index:9;top:auto;bottom:52px;min-height:64px;height:auto;padding:14px 22px;border:3px solid var(--ink);border-radius:16px;background:var(--panel);color:var(--text);font-weight:900;font-size:17px;box-shadow:0 5px 0 #243e3544}.pauseFloating{left:18px;right:auto}.cornerAction{right:18px}.scanFocus{outline:5px solid var(--focus)!important;outline-offset:3px;background:var(--focus)!important;color:#243e35!important;box-shadow:0 0 0 8px #243e35!important}
#targetLayer{position:absolute;inset:0;z-index:3;pointer-events:none}#targetLines{position:absolute;width:100%;height:100%;overflow:hidden}#targetLines line{stroke:#fff9dd;stroke-width:3;filter:drop-shadow(1px 1px 1px #243e35)}#targetLines line.selected{stroke:var(--focus);stroke-width:5}.targetPin{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;min-width:64px;min-height:64px;border:4px solid var(--ink);border-radius:50%;background:var(--panel);color:var(--text);font-size:25px;font-weight:900;box-shadow:0 4px 0 #243e3566}.targetPin:hover{background:var(--focus);color:#243e35}.targetPin.selected{background:var(--focus);color:#243e35;border-width:6px}.targetPin.selected:after{content:'';position:absolute;inset:-12px;border:3px dashed var(--focus);border-radius:50%;pointer-events:none}
#targetStatus{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);z-index:4;max-width:calc(100% - 430px);text-align:center;padding:10px 15px;border:2px solid var(--ink);border-radius:14px;background:var(--panel);pointer-events:none}#targetStatus strong{display:block;font-size:15px}#targetStatus span{display:block;font-size:11px;margin-top:4px;color:var(--dim)}body[data-screen=target] #caption,body[data-screen=ammo] #caption{display:none}body[data-screen=flight] #caption{bottom:30px;left:180px;max-width:calc(100% - 210px)}#hud{right:18px}
/* Menus show all their choices at once; no next-page action or scrolling. */
#panel{width:min(1100px,94vw);gap:10px}#panelList{grid-template-columns:repeat(var(--menu-columns,3),minmax(0,1fr));gap:12px;flex-shrink:1;min-height:0}#panelList>.choice{min-height:70px;padding:10px 13px}#panelTitle,body[data-screen=welcome] #panelTitle{font-size:clamp(35px,4vw,62px)}#panelSub{max-width:850px}#panelNote{font-size:12px}.manyChoices #panelList>.choice{min-height:55px;padding:7px 9px}.manyChoices .choice strong{font-size:15px}.manyChoices .choice small{font-size:11px}
@media(max-width:700px){#ammoPicker{left:12px;width:168px;padding:10px}#ammoIcon .ammoArt{height:90px}#ammoSelect strong{font-size:22px}#ammoDescription{font-size:12px}.pauseFloating,.cornerAction{bottom:59px;min-height:58px;padding:12px;font-size:14px}.pauseFloating{left:10px}.cornerAction{right:10px}#targetStatus{bottom:86px;max-width:calc(100% - 24px);width:max-content;padding:7px 10px}#targetStatus strong{font-size:12px}#targetStatus span{font-size:10px}.targetPin{min-width:64px;min-height:64px}#panel{width:100%;gap:7px}#panelList{gap:10px}#panelList>.choice{min-height:64px;padding:8px}.choice strong{font-size:15px}.choice small{font-size:11px}#panelTitle,body[data-screen=welcome] #panelTitle{font-size:36px}.manyChoices .choice strong{font-size:12px}.manyChoices #panelList>.choice{min-height:48px;padding:5px}#panelSub{font-size:12px}body[data-screen=flight] #caption{left:130px;bottom:25px;max-width:calc(100% - 145px)}}
@media(max-height:650px){#ammoPicker{width:185px;padding:10px}#ammoIcon .ammoArt{height:70px}#ammoDescription{font-size:12px}#ammoSelect{gap:4px}#ammoSelect strong{font-size:21px}#ammoPicker>p{margin:5px 0 0}.ammoCycle{margin-top:6px}#panelTitle,body[data-screen=welcome] #panelTitle{font-size:32px}#panelList>.choice{min-height:54px;padding:7px 9px}#panelList{gap:10px;padding:9px 8px 12px}#panelList .choice strong{font-size:14px}#panelList .choice small{font-size:11px}#panel{gap:6px}#panelSub{font-size:12px}.manyChoices #panelList>.choice{min-height:44px;padding:5px 8px}.manyChoices .choice small{display:none}#panelNote{display:none}.pauseFloating,.cornerAction{min-height:52px;padding:10px 16px}#targetStatus{bottom:18px;padding:7px 10px}#targetStatus span{display:none}}
@media(max-width:700px) and (max-height:650px){#targetStatus{bottom:79px;max-width:calc(100% - 24px)}#panelList .choice small{font-size:10px}#panelTitle,body[data-screen=welcome] #panelTitle{font-size:30px}}

#manualControls{position:absolute;z-index:4;bottom:18px;left:50%;transform:translateX(-50%);width:min(390px,calc(100% - 440px))}.manualButtons{display:flex;gap:10px}.manualButtons button{flex:1;min-height:64px;padding:9px 12px;background:var(--panel);color:var(--text);border:3px solid var(--ink);border-radius:14px;font-size:16px;font-weight:bold;touch-action:none}.manualButtons small{display:block;font-size:10px;margin-top:5px}.manualButtons button.holding{background:var(--focus);color:#243e35}#chargeTrack{position:relative;height:25px;margin-top:8px;background:var(--panel);border:2px solid var(--ink);border-radius:9px;overflow:hidden}#chargeFill{height:100%;width:50%;display:block;background:var(--focus)}#chargeLabel{position:absolute;inset:3px 0;text-align:center;color:#243e35;font-size:12px}body[data-screen=manual] #caption{display:none}@media(max-width:900px){#manualControls{bottom:86px;width:min(350px,calc(100% - 24px))}}@media(max-height:650px){.manualButtons button{min-height:54px;padding:7px 10px}#manualControls{bottom:18px}}@media(max-width:900px) and (max-height:650px){#manualControls{bottom:82px;width:300px}}

/* A small world-anchored charge ring replaces the manual control panel. */
#manualControls{width:88px;height:88px;bottom:auto;transform:translate(-50%,-50%);pointer-events:none;filter:drop-shadow(0 2px 1px #193b32)}#manualControls svg{width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}#manualControls circle{fill:none;stroke-width:5}.chargeBack{stroke:#fff9e0;opacity:.75}#manualControls #chargeFill{stroke:var(--focus);stroke-width:7;display:initial;width:auto;height:auto;background:none;stroke-linecap:round}#manualControls #chargeTrack{position:absolute;inset:26px 0;margin:0;border:0;border-radius:0;background:none;overflow:visible;height:auto;display:flex;align-items:center;justify-content:center}#manualControls #chargeLabel{position:static;background:#243e35cc;border-radius:9px;padding:4px 7px;color:#fffbe8;font-size:14px}#cvWrap>canvas:not(#minimap){touch-action:none}body[data-screen=manual] #cvWrap>canvas:not(#minimap){cursor:crosshair}#targetStatus{background:none;border:0;box-shadow:none;color:#fffbea;text-shadow:1px 2px 2px #173b2b,-1px -1px 1px #173b2b}#targetStatus span{color:#fffbea}body[data-screen=flight] #caption{background:none;border:0;color:#fffbea;text-shadow:1px 2px 2px #173b2b}.pauseFloating,.cornerAction{opacity:.94}

#panelList .choice strong,#panelList .choice small{overflow-wrap:anywhere}.fullLibrary #panelList{gap:7px}.fullLibrary #panelList>.choice{min-height:0;padding:5px}.fullLibrary #panelList .choice strong{font-size:12px}.fullLibrary #panelList .choice small{display:none}@media(max-height:650px){.fullLibrary #panelTitle{font-size:25px}.fullLibrary #panelSub{display:none}.fullLibrary #panelList .choice strong{font-size:11px}}

/* Hollow reticles keep the castle visible through every target. */
.targetPin,.targetPin:hover,.targetPin.selected,.targetPin.scanFocus{background:#fff8d610!important;border:3px solid #fff9df;box-shadow:0 0 0 2px #243e35,0 2px 4px #243e3566!important}.targetPin span{position:absolute;left:-8px;top:-8px;min-width:29px;height:29px;display:flex;align-items:center;justify-content:center;border:2px solid #243e35;border-radius:50%;background:var(--panel);color:var(--text);font-size:17px;font-weight:900;box-shadow:0 1px 2px #243e3555}.targetPin.selected,.targetPin.scanFocus{border:5px solid var(--focus);outline:2px solid #243e35!important;outline-offset:0}.targetPin.selected span{background:var(--focus);color:#243e35;left:-10px;top:-10px}.targetPin.selected:after{inset:-9px;border-width:2px}

#btnPointerFire{position:absolute;inset:10px;border:0;border-radius:50%;background:#fffaf022;color:var(--text);font-size:15px;font-weight:900;pointer-events:auto;touch-action:manipulation;text-shadow:0 1px 2px #fff}#btnPointerFire:hover{background:#ffdf6677}#manualControls #chargeTrack{inset:62px 0 auto;height:24px}#manualControls #chargeLabel{font-size:11px;padding:2px 6px}body[data-screen=manual] #cvWrap>canvas:not(#minimap){cursor:grab}body[data-screen=manual] #cvWrap>canvas:not(#minimap):active{cursor:grabbing}

#ammoPicker>.eyebrow{display:block;position:relative;margin:0 0 16px;line-height:1.4}#ammoPicker{padding-top:16px}#ammoSelect.scanFocus{outline-offset:2px}

body[data-screen=welcome] #panel{max-width:700px}body[data-screen=welcome] #panelList{grid-template-columns:1fr 1fr}body[data-screen=kingdom] #panel{max-width:780px}#exploreControls .cornerAction{z-index:9}#exploreBack{left:18px;right:auto}#exploreNext{left:50%;right:auto;transform:translateX(-50%)}#exploreView{position:absolute;left:50%;bottom:98px;transform:translateX(-50%);z-index:4;color:#fffbe9;font-weight:bold;text-shadow:1px 2px 2px #243e35}body[data-screen=explore] #caption{display:none}@media(max-width:700px){#exploreBack{left:10px}#exploreView{bottom:98px}}

/* Consistent centered menus; gameplay controls stay in the scene. */
#overlay{justify-content:center;background:radial-gradient(ellipse at center,#173b2877,#173b2833 75%)}
#panel{align-items:stretch;margin-inline:auto;text-align:center}
#panelTitle{transform:none;text-align:center;letter-spacing:-1px}
#panelEyebrow,#panelNote{text-align:center}
#panelSub{align-self:center;width:100%}
#panelList{grid-auto-rows:1fr}
#panelList>.choice{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}
.fullLibrary #panelList{grid-auto-rows:auto}
body:is([data-screen=welcome],[data-screen=pause]) #panel{width:min(460px,100%);max-width:460px;gap:12px}
body:is([data-screen=welcome],[data-screen=pause]) #panelList{grid-template-columns:1fr;gap:12px}
body:is([data-screen=welcome],[data-screen=pause]) #panelList>.choice{min-height:64px;padding:12px 20px}
body:is([data-screen=welcome],[data-screen=pause]) #panelTitle{font-size:clamp(34px,4vw,56px)}
body[data-screen=welcome] #panelEyebrow{display:none}
body[data-screen=kingdom] #panelList{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-height:650px){
 body:is([data-screen=welcome],[data-screen=pause]) #panel{width:min(400px,100%);gap:6px}
 body:is([data-screen=welcome],[data-screen=pause]) #panelList{gap:10px}
 body:is([data-screen=welcome],[data-screen=pause]) #panelList>.choice{min-height:50px;padding:8px 16px}
 body:is([data-screen=welcome],[data-screen=pause]) #panelTitle{font-size:32px}
}

/* Short utility menus use the same centered column as the main menu. */
body:is([data-screen=help],[data-screen=editorWarning]) #panel{width:min(700px,100%)}
body:is([data-screen=help],[data-screen=editorWarning]) #panelList{width:min(440px,100%);align-self:center}
body[data-screen=levels] #panelList>.choice{min-height:110px}
body[data-screen=pause] #panelList>.choice{min-height:54px}
body[data-screen=manual] #cvWrap>canvas:not(#minimap){cursor:crosshair}
@media(max-height:650px){body[data-screen=pause] #panel{gap:4px}body[data-screen=pause] #panelList{gap:9px}body[data-screen=pause] #panelList>.choice{min-height:40px;padding:5px 12px}body[data-screen=levels] #panelList>.choice{min-height:72px}}
@media(max-width:700px){body[data-screen=levels] #panelList>.choice{min-height:68px}body[data-screen=levels] .choice small{font-size:11px}}

#exploreView{bottom:136px}@media(max-width:700px){#exploreView{bottom:142px}}

/* Keep every setting reachable in the existing list, with Back first. */
body[data-screen=settings] #panelList{overflow-y:auto;scroll-padding-block:9px 13px;overscroll-behavior-y:contain}
body[data-screen=settings] #panelList .choice{min-height:62px}body[data-screen=settings] #panelList .choice small{display:block}
@media(max-height:650px){body[data-screen=settings] #panelList .choice{min-height:49px;padding:5px 7px}body[data-screen=settings] #panelList .choice strong{font-size:13px}body[data-screen=settings] #panelList .choice small{font-size:10px;margin-top:3px}}

/* The guide speaks in the scene; Start never waits for speech or animation. */
body[data-story-scene=true] #overlay{background:none;justify-content:flex-end;align-items:flex-end;padding:24px 4vw 60px}
body[data-story-scene=true] #panel{width:62%;max-width:690px;overflow:visible;gap:12px}
body[data-story-scene=true] #panelTitle{font-size:clamp(25px,3vw,42px)}
body[data-story-scene=true] #panelSub{position:relative;border-radius:24px;padding:20px;font-size:20px;line-height:1.45;border-width:4px;box-shadow:0 6px 0 #243e3544}
body[data-story-scene=true] #panelSub:before{content:'';position:absolute;left:-22px;bottom:24px;border-top:15px solid transparent;border-bottom:15px solid transparent;border-right:22px solid var(--ink)}
body[data-story-scene=true] #panelList{padding-top:10px}body[data-story-scene=true] #panelEyebrow{font-size:15px;color:#fff3c9}
@media(max-height:650px){body[data-story-scene=true] #overlay{padding-bottom:22px}body[data-story-scene=true] #panel{gap:6px;width:65%}body[data-story-scene=true] #panelSub{font-size:14px;padding:12px}body[data-story-scene=true] #panelTitle{font-size:25px}body[data-story-scene=true] #panelList .choice{min-height:48px}body[data-story-scene=true] #panelEyebrow{font-size:12px}}
@media(max-width:500px){body[data-story-scene=true] #overlay{padding:16px 12px 75px}body[data-story-scene=true] #panel{width:66%;gap:8px}body[data-story-scene=true] #panelSub{font-size:14px;padding:12px}body[data-story-scene=true] #panelTitle{font-size:26px}body[data-story-scene=true] #panelList .choice{padding:7px;min-height:62px}body[data-story-scene=true] #panelList .choice strong{font-size:13px}body[data-story-scene=true] #panelEyebrow{font-size:11px}}

body[data-screen=manual] #cvWrap>canvas:not(#minimap),body[data-screen=manual] #cvWrap>canvas:not(#minimap):active{cursor:crosshair}

#pickupNotice{position:absolute;z-index:8;top:80px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;max-width:calc(100% - 24px);padding:8px 18px 8px 8px;background:#fff7d8;color:#213e36;border:4px solid #e6b63c;border-radius:22px;box-shadow:0 3px 0 #263e35;pointer-events:none}#pickupNotice[hidden]{display:none}#pickupNotice strong{display:block;font-size:22px}#pickupNotice span{display:block;font-size:13px}#pickupNoticeIcon{width:72px;flex-shrink:0}#pickupNoticeIcon svg{width:72px;height:58px}#pickupNoticeIcon .tag{display:none}@media(max-width:600px),(max-height:550px){#pickupNotice{top:55px;padding:5px 10px;gap:6px}#pickupNotice strong{font-size:17px}#pickupNotice span{font-size:11px}#pickupNoticeIcon,#pickupNoticeIcon svg{width:48px;height:44px}}

/* Rowan stands in the field; his speech bubble tracks his head in screen space. */
body[data-story-scene=true] #overlay{padding:0;background:none;pointer-events:none}
body[data-story-scene=true] #panel{position:static;width:100%;max-width:none;margin:0;pointer-events:none}
body[data-story-scene=true] #panelTitle{position:fixed;top:16px;left:12px;right:12px;font-size:25px;margin:0;color:#fff8dc;text-shadow:0 2px 2px #233e36}
body[data-story-scene=true] #panelEyebrow,body[data-story-scene=true] #panelNote{display:none}
body[data-story-scene=true] #panelSub{position:fixed;margin:0;width:min(460px,calc(100vw - 28px));background:#fff9df;color:#263e35;border:3px solid #263e35;border-radius:26px;padding:16px 20px;text-align:left;font-size:18px;line-height:1.4;box-shadow:0 4px 0 #263e3544;pointer-events:none}
body[data-story-scene=true] #panelSub:before{content:attr(data-speaker);text-transform:uppercase;position:static;display:block;border:0;font-size:12px;font-weight:900;letter-spacing:1px;margin-bottom:6px;color:#326e5d}
body[data-story-scene=true] #panelSub:after{content:'';position:absolute;width:22px;height:22px;left:var(--bubble-tail,50%);bottom:-14px;background:#fff9df;border-right:3px solid #263e35;border-bottom:3px solid #263e35;transform:translateX(-50%) rotate(45deg);border-radius:0 0 5px 0}
body[data-story-scene=true] #panelList{position:fixed;bottom:55px;left:50%;transform:translateX(-50%);width:min(480px,calc(100vw - 32px));display:flex;gap:12px;padding:0;pointer-events:auto}
body[data-story-scene=true] #panelList .choice{flex:1;min-height:50px;padding:8px;font-size:16px}
body[data-story-scene=true] #panelList .choice strong{font-size:17px}
body[data-story-scene=true] #caption{display:none}
@media(max-height:650px){body[data-story-scene=true] #panelSub{font-size:14px;padding:10px 15px;width:min(440px,calc(100vw - 28px));border-radius:20px}body[data-story-scene=true] #panelTitle{font-size:21px;top:12px}body[data-story-scene=true] #panelList{bottom:42px}body[data-story-scene=true] #panelList .choice{min-height:40px}}
@media(max-width:500px){body[data-story-scene=true] #panelSub{font-size:16px;padding:13px 16px}body[data-story-scene=true] #panelList .choice strong{font-size:15px}}

/* Focus is drawn inside each button, so it cannot be cropped or displaced. */
.choice.focus,button.scanFocus,button:focus-visible{outline:3px solid var(--focus)!important;outline-offset:-6px!important;border-color:#243e35!important;box-shadow:inset 0 0 0 4px #243e35!important;background:#ffe284!important;color:#243e35!important}
body[data-story-scene=true] #panelList{overflow:visible;padding:5px}
#skipStory{position:absolute;right:18px;bottom:58px;z-index:10;min-height:48px;padding:12px 20px;border:3px solid var(--ink);border-radius:14px;background:var(--panel);color:var(--text);font-weight:bold}
#targetLines{display:none}.targetSceneControls{position:absolute;bottom:150px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;pointer-events:auto;max-width:calc(100% - 24px)}.targetSceneControls button{border:2px solid #263e35;border-radius:12px;background:#fff9df;color:#263e35;font-size:18px;font-weight:900;min-height:48px;padding:9px 15px;white-space:nowrap}#targetPins{display:flex}.targetSceneChoice[hidden]{display:none}#targetStatus{position:absolute;top:110px;bottom:auto;left:50%;transform:translateX(-50%);width:min(600px,calc(100% - 24px));text-align:center;font-size:17px}#targetStatus span{display:block;font-size:13px;margin-top:4px}body[data-screen=target] #caption{display:none}@media(max-height:650px){#targetStatus{top:82px;font-size:14px}.targetSceneControls{bottom:132px}.targetSceneControls button{min-height:40px;font-size:15px}}@media(max-width:500px){#targetStatus{top:120px}.targetSceneControls{bottom:157px;gap:7px}.targetSceneControls button{font-size:15px;padding:8px 12px}}

/* Compact camera controls remain inside every viewport and use the switch highlight. */
#btnZoom{left:138px;right:auto;bottom:52px;min-width:82px;z-index:5}
#zoomControls{position:absolute;z-index:8;bottom:48px;left:50%;transform:translateX(-50%);width:min(540px,calc(100vw - 28px));padding:12px;background:var(--panel);color:var(--text);border:3px solid var(--ink);border-radius:16px}
#zoomReadout{display:block;text-align:center;margin-bottom:8px}
#zoomControls>div{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
#zoomControls button{min-height:48px;border:2px solid var(--ink);border-radius:10px;background:var(--panel2);color:var(--text);font-weight:bold;padding:6px}
@media(max-width:600px){#zoomControls>div{grid-template-columns:repeat(3,minmax(0,1fr))}#zoomControls button{font-size:14px}#btnZoom{left:128px;min-width:72px}}

@media(max-width:700px){#btnZoom{bottom:59px}}

/* Choice status shares the story’s fixed layout, above its existing buttons. */
body[data-screen=story][data-choice-scan=true] #ballistaScanStatus{position:fixed;left:var(--story-status-left,12px);top:var(--story-status-top,54px);width:max-content;min-block-size:0;padding:0}
/* Preserve the game’s inset focus ring, distinguishing only scan pause. */
.choice[data-narbe-scan-paused],button[data-narbe-scan-paused],input[data-narbe-scan-paused]{outline-style:dotted!important}
