:root{
  --ink:#071827;
  --glass:rgba(5,18,31,.78);
  --glass-strong:rgba(4,15,27,.9);
  --line:rgba(255,255,255,.28);
  --line-soft:rgba(255,255,255,.16);
  --focus:#a9f3ff;
  --sky:#72c9ff;
  --yellow:#ffd84f;
  --blue:#2a71ef;
  --mint:#58f0ad;
  --pink:#ff8bb9;
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#071827;color:#fff;font-family:Inter,"Yu Gothic UI","Hiragino Kaku Gothic ProN",Meiryo,system-ui,sans-serif;touch-action:none;user-select:none}
button{font:inherit}
button:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
#gameCanvas{position:fixed;inset:0;width:100%;height:100%;display:block;outline:0;background:linear-gradient(#6ec7ff,#d8efff)}
.hidden{display:none!important}
.glass{background:linear-gradient(150deg,rgba(12,35,54,.86),rgba(3,12,22,.76));border:1px solid rgba(255,255,255,.24);box-shadow:0 14px 42px rgba(0,6,13,.34),inset 0 1px 0 rgba(255,255,255,.17);backdrop-filter:blur(18px) saturate(1.24);-webkit-backdrop-filter:blur(18px) saturate(1.24)}
.screen{position:fixed;inset:0;z-index:30;display:none;overflow:hidden}
.screen.show{display:block}

/* Title */
#titleScreen{background:linear-gradient(180deg,#67c3ff 0%,#dff4ff 52%,#738797 52.3%,#172739 100%)}
.titleSky{position:absolute;inset:0;background:radial-gradient(circle at 71% 15%,rgba(255,255,255,.9) 0 2%,rgba(255,255,255,.22) 2.2% 13%,transparent 28%),linear-gradient(180deg,transparent 0 43%,rgba(255,255,255,.25) 43% 45%,transparent 45%)}
.titleSun{position:absolute;right:14vw;top:7vh;width:12vw;height:12vw;border-radius:50%;background:#fff7c9;filter:blur(1px);box-shadow:0 0 70px #fff9}
.titleCloud{position:absolute;width:190px;height:34px;border-radius:999px;background:#fff;opacity:.7;filter:blur(.3px);box-shadow:50px -17px 0 -2px #fff,95px 3px 0 -7px #fff,-42px 5px 0 -8px #fff}
.cloudA{left:18vw;top:9vh;transform:scale(.8)}.cloudB{right:24vw;top:29vh;transform:scale(.55);opacity:.55}
.titleSkyline{position:absolute;left:-3vw;right:-3vw;bottom:18vh;height:44vh;background:linear-gradient(90deg,#617489 0 4%,#32495f 4% 7%,#718397 7% 12%,#3a5369 12% 17%,#7b8e9f 17% 23%,#33495e 23% 28%,#71889c 28% 33%,#304a62 33% 39%,#6d8295 39% 44%,#2f465c 44% 50%,#8194a5 50% 57%,#3b5168 57% 61%,#6d8194 61% 66%,#2e455b 66% 72%,#8294a5 72% 79%,#344d64 79% 84%,#718499 84% 91%,#30465a 91% 100%);clip-path:polygon(0 37%,4% 37%,4% 11%,7% 11%,7% 42%,12% 42%,12% 20%,17% 20%,17% 49%,23% 49%,23% 5%,28% 5%,28% 33%,33% 33%,33% 15%,39% 15%,39% 51%,44% 51%,44% 24%,50% 24%,50% 0,57% 0,57% 42%,61% 42%,61% 18%,66% 18%,66% 48%,72% 48%,72% 8%,79% 8%,79% 38%,84% 38%,84% 17%,91% 17%,91% 46%,100% 46%,100% 100%,0 100%);filter:drop-shadow(0 12px 22px rgba(0,0,0,.34))}
.titleSkyline.back{bottom:31vh;height:37vh;opacity:.4;transform:scaleX(1.05);filter:blur(1px)}
.titleSkyline.front:after{content:"";position:absolute;inset:10% 0 0;background:repeating-linear-gradient(90deg,transparent 0 17px,rgba(255,235,127,.65) 18px 22px,transparent 23px 39px),repeating-linear-gradient(180deg,transparent 0 23px,rgba(255,255,255,.28) 24px 28px,transparent 29px 44px);mix-blend-mode:screen;opacity:.28}
.titleRail{position:absolute;left:-4vw;right:-4vw;bottom:15vh;height:54px;background:#dce5ea;border-top:8px solid #536b7c;border-bottom:8px solid #304555;transform:rotate(-2.5deg);box-shadow:0 22px 0 rgba(20,35,48,.48),0 34px 20px rgba(0,0,0,.35)}
.titleRail:before,.titleRail:after{content:"";position:absolute;left:0;right:0;height:5px;background:repeating-linear-gradient(90deg,#263b4b 0 70px,transparent 70px 105px);top:11px}.titleRail:after{top:29px}
.titleRail span{position:absolute;left:58%;top:-34px;width:170px;height:46px;border-radius:26px 36px 12px 12px;background:linear-gradient(#fff,#c9e0ed);border:5px solid #385b76;box-shadow:inset 0 -9px #5ca6d7;animation:titleTrain 10s linear infinite}
.titleRail span:after{content:"";position:absolute;left:22px;right:22px;top:10px;height:11px;background:repeating-linear-gradient(90deg,#527f9a 0 18px,#b9eaff 18px 29px);border-radius:4px}
@keyframes titleTrain{0%{transform:translateX(-52vw)}100%{transform:translateX(52vw)}}
.titleGrass{position:absolute;left:0;right:0;bottom:0;height:20vh;background:linear-gradient(180deg,#408c4b,#1f4b31);clip-path:polygon(0 34%,15% 22%,27% 38%,41% 17%,60% 34%,77% 11%,100% 26%,100% 100%,0 100%)}
.titleCopy{position:absolute;z-index:4;left:5.5vw;top:8vh;width:min(610px,47vw);padding:30px 34px 28px;border-radius:28px}
.eventBadge{display:flex;align-items:center;gap:10px;width:max-content;padding:7px 12px;border-radius:999px;background:#2373eb;box-shadow:0 5px 0 #0e3f9c;font-size:12px;letter-spacing:.08em}.eventBadge span{padding-left:10px;border-left:1px solid #fff8;color:#dff3ff}
.titleCopy h1{margin:17px 0 12px;font-size:clamp(45px,5vw,74px);line-height:.83;letter-spacing:-.065em;text-shadow:0 7px 0 rgba(0,0,0,.32)}
.titleCopy h1 small{display:block;font-size:.42em;letter-spacing:.08em;margin-bottom:10px;color:#dff3ff}
.titleCopy h1>span{display:block;margin-top:13px;font-size:.35em;letter-spacing:.12em;color:var(--yellow);text-shadow:none}.titleCopy h1 i{font-style:normal;background:var(--pink);color:#fff;padding:3px 8px;border-radius:8px;letter-spacing:0}
.lead{font-size:clamp(15px,1.35vw,19px);line-height:1.65;color:#e4f5ff;margin:8px 0 20px}
.titleActions{display:flex;gap:12px;align-items:center}.titleActions button,.resultCard button{border:0;border-radius:15px;min-height:56px;padding:0 22px;font-weight:900;cursor:pointer;transition:.18s transform,.18s filter;box-shadow:0 7px 0 rgba(0,0,0,.3)}
.titleActions button:hover,.resultCard button:hover{filter:brightness(1.08);transform:translateY(-2px)}.titleActions button:active,.resultCard button:active{transform:translateY(5px);box-shadow:0 2px 0 rgba(0,0,0,.3)}
.primary{display:flex;align-items:center;justify-content:space-between;gap:22px;background:var(--yellow);color:#112334;font-size:20px;min-width:210px}.primary em{font-style:normal;font-size:24px}.primary:disabled{cursor:wait;filter:saturate(.25);opacity:.7}
.secondary{background:#e7f6ff;color:#173450;font-size:16px}
.loadLine{height:7px;margin-top:20px;border-radius:99px;background:#ffffff1f;overflow:hidden}.loadLine div{height:100%;width:0;background:linear-gradient(90deg,var(--mint),var(--yellow));border-radius:inherit;transition:width .25s}
.loadMeta{display:flex;justify-content:space-between;gap:14px;margin-top:7px;font-size:11px;color:#b9d9eb}.loadMeta>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loadNumbers{display:flex;align-items:baseline;gap:8px;white-space:nowrap}.loadNumbers b{font-size:12px;color:white}.loadNumbers i{font-style:normal;color:#ffd84f}.featureChips{display:flex;flex-wrap:wrap;gap:6px;margin-top:15px}.featureChips span{padding:5px 9px;border-radius:999px;background:#ffffff13;border:1px solid #ffffff21;color:#d9f0ff;font-size:11px}
.titleCharacter{position:absolute;z-index:3;right:3vw;bottom:-2vh;height:min(83vh,850px);max-width:55vw;object-fit:contain;filter:drop-shadow(0 34px 30px rgba(0,0,0,.46));pointer-events:none}
.titleLogoPlate{position:absolute;z-index:5;right:6vw;top:6vh;padding:9px 13px;background:#0c1c2fd9;border:1px solid #fff5;border-radius:10px;font-weight:800;box-shadow:0 8px 25px #0005}.titleLogoPlate b{color:var(--yellow);margin-left:8px}.titleFooter{position:absolute;z-index:5;right:20px;bottom:9px;font-size:9px;letter-spacing:.12em;color:#c7d8e4aa}

/* modal */
.modal{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;background:rgba(2,10,18,.58);padding:24px}.modal.show{display:flex}.modalCard{position:relative;width:min(780px,94vw);padding:30px;border-radius:26px}.modalCard h2{font-size:34px;margin:0 0 20px;color:var(--yellow)}.closeBtn,.mapHeader button{position:absolute;right:18px;top:15px;width:42px;height:42px;border:1px solid #fff4;border-radius:50%;background:#ffffff16;color:white;font-size:28px;cursor:pointer}.controlGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.controlGrid>div{display:flex;align-items:center;gap:15px;padding:10px 12px;border-radius:13px;background:#ffffff0e;border:1px solid #ffffff15}.controlGrid p{margin:0;font-size:14px;color:#d8efff}.controlGrid kbd,.interactionPrompt kbd,.miniMapLabel kbd{min-width:92px;text-align:center}.mouseHelp,.hintText{line-height:1.7;color:#cde8f8}.hintText{padding:13px 15px;border-left:4px solid var(--mint);background:#57efad12;border-radius:8px}
kbd{font-family:inherit;font-weight:900;color:#13283b;background:#f3fbff;border:1px solid #fff;box-shadow:0 3px 0 #8ca3b3;border-radius:7px;padding:5px 9px}

/* HUD */
.hud{position:fixed;inset:0;z-index:15;pointer-events:none}.hud .glass{pointer-events:auto}
.holePanel{position:absolute;left:12px;top:10px;display:flex;align-items:center;gap:10px;padding:8px 11px;border-radius:14px;min-width:306px}.holeNumber{display:grid;place-items:center;width:55px;height:55px;border-radius:10px;background:linear-gradient(#347deb,#1553b6);font-size:30px;font-weight:1000;box-shadow:inset 0 1px #fff7,0 4px 0 #0a357d}.holeText{display:flex;flex-direction:column}.holeText b{font-size:15px;color:var(--yellow)}.holeText strong{font-size:13px;letter-spacing:.04em}.holeText span{font-size:10px;color:#b9d8ea}.wind{margin-left:auto;display:flex;align-items:center;gap:5px;padding-left:10px;border-left:1px solid #fff2}.wind i{font-style:normal;color:#8de3ff;font-size:18px;transform:rotate(18deg)}.wind span{display:flex;flex-direction:column;font-size:8px;color:#bcd7e7}.wind b{font-size:13px;color:white}
.avatarPanel{position:absolute;right:12px;top:10px;display:flex;align-items:center;gap:10px;padding:7px 11px 7px 7px;border-radius:15px}.avatarPanel img{width:62px;height:62px;object-fit:cover;border-radius:12px;background:linear-gradient(#c9efff,#fff);border:2px solid #fff}.avatarPanel div{display:flex;flex-direction:column;min-width:140px}.avatarPanel b{font-size:13px}.avatarPanel span{font-size:10px;color:#b9d8ea;margin-top:4px}
.scorePanel{position:absolute;left:12px;top:88px;width:174px;border-radius:15px;padding:9px 12px}.scorePanel>div{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid #ffffff12}.scorePanel>div:last-child{border:0}.scorePanel span{font-size:10px;color:#bcd8e8;letter-spacing:.08em}.scorePanel b{font-size:15px}.scorePanel i{font-style:normal;color:var(--yellow)}
.returnBallBtn{position:absolute;left:12px;top:314px;display:flex;align-items:center;gap:9px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:12px;color:#eaf7ff;background:linear-gradient(145deg,rgba(8,26,44,.9),rgba(2,10,19,.74));font-weight:900;cursor:pointer}.returnBallBtn kbd{min-width:auto;padding:3px 7px;font-size:10px}.returnBallBtn span{font-size:12px;white-space:nowrap}.returnBallBtn:hover{filter:brightness(1.08)}
.objectivePanel{position:absolute;left:12px;top:378px;width:290px;padding:13px 15px;border-radius:15px}.objectiveTag{font-size:9px;letter-spacing:.12em;color:#112a3d;background:var(--yellow);padding:4px 7px;border-radius:5px;font-weight:900}.objectivePanel b{display:block;margin-top:10px;font-size:13px}.objectivePanel p{margin:6px 0 0;font-size:11px;line-height:1.55;color:#cce4f1}
.shotBanner{position:absolute;left:50%;top:34%;transform:translate(-50%,-50%);font-size:clamp(55px,8vw,108px);font-weight:1000;letter-spacing:-.07em;text-shadow:0 6px 0 rgba(0,0,0,.5),0 0 28px #0008;opacity:0;transition:.42s opacity,.42s transform;white-space:nowrap}.shotBanner b{font-size:1.1em}.shotBanner.show{opacity:1;transform:translate(-50%,-55%)}
.shotPanel{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);width:min(610px,55vw);padding:11px 15px 13px;border-radius:16px}.clubRow,.aimRow{display:flex;align-items:center;justify-content:space-between}.clubRow span{font-size:8px;letter-spacing:.12em;color:#a9cadc}.clubRow b{font-size:17px;color:var(--yellow)}.clubRow i{font-style:normal;font-size:9px;padding:4px 7px;border-radius:999px;background:#ffffff13;color:#bfe2f4}.aimRow{font-size:10px;color:#c7e2ef;margin-top:4px;gap:10px}.aimRow b{color:white}.aimControlPad{display:flex;align-items:center;justify-content:center;gap:5px;pointer-events:auto}.aimControlPad em{font-style:normal;font-size:8px;letter-spacing:.12em;color:#9edfff;font-weight:900}.aimControlPad button{appearance:none;width:39px;height:30px;padding:0;border:1px solid #ffffff55;border-radius:9px;background:linear-gradient(180deg,#173a55e8,#071827e8);color:#fff;font-size:20px;font-weight:1000;line-height:1;box-shadow:0 3px 0 #020a11aa,inset 0 1px #ffffff22;cursor:pointer;touch-action:none;transition:.08s transform,.08s background,.08s color}.aimControlPad button:hover{filter:brightness(1.12)}.aimControlPad button:active,.aimControlPad button.active{transform:translateY(2px);background:var(--yellow);color:#122b3d;box-shadow:0 1px 0 #020a11aa}.powerTrack{position:relative;height:21px;margin-top:8px;border-radius:99px;background:#ffffff17;overflow:hidden;box-shadow:inset 0 2px 6px #0007;border:1px solid #fff2}.powerTrack:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(20% - 1px),#fff3 calc(20% - 1px) 20%)}#powerFill{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,#4af0a4 0 54%,#ffe34f 72%,#ff6b69 100%);box-shadow:0 0 16px #50f5ae88;transition:width .02s linear}#sweetSpot{position:absolute;z-index:2;top:0;bottom:0;left:72%;width:13%;background:#fff3;border-left:2px solid #fff8;border-right:2px solid #fff8}#powerNeedle{position:absolute;z-index:3;left:0;top:-2px;width:4px;height:25px;background:#fff;box-shadow:0 0 7px #fff;transform:translateX(-2px)}.shotHelp{text-align:center;font-size:10px;margin-top:5px;color:#b9d9e9}
.miniMapFrame{position:absolute;right:12px;bottom:12px;width:210px;height:210px;border-radius:18px;padding:7px;overflow:hidden}.miniMapFrame canvas{width:100%;height:100%;border-radius:12px;background:#10283b}.miniMapLabel{position:absolute;left:13px;right:13px;bottom:11px;display:flex;align-items:center;justify-content:space-between;font-size:9px;font-weight:900;letter-spacing:.1em;text-shadow:0 2px 3px #000}.miniMapLabel kbd{min-width:auto;padding:2px 6px;font-size:9px}
.toast{position:absolute;left:50%;top:11px;transform:translateX(-50%) translateY(-130%);display:flex;flex-direction:column;align-items:center;max-width:520px;padding:9px 18px;border-radius:12px;background:rgba(4,16,27,.87);border:1px solid #fff4;box-shadow:0 10px 35px #0007;transition:.35s transform;pointer-events:none}.toast.show{transform:translateX(-50%) translateY(0)}.toast b{font-size:9px;letter-spacing:.13em;color:var(--yellow)}.toast span{font-size:12px;text-align:center;margin-top:3px;color:#e4f4ff}
.interactionPrompt{position:absolute;left:50%;bottom:130px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:9px 16px;border-radius:999px;background:#071a2be6;border:1px solid #fff5;box-shadow:0 8px 28px #0008}.interactionPrompt kbd{min-width:auto}.interactionPrompt span{font-size:13px;font-weight:800}
.crosshair{position:absolute;left:50%;top:50%;width:26px;height:26px;transform:translate(-50%,-50%);opacity:.34}.crosshair span:first-child{position:absolute;left:12px;top:2px;width:2px;height:22px;background:#fff}.crosshair span:last-child{position:absolute;left:2px;top:12px;width:22px;height:2px;background:#fff}

/* Map */
.mapOverlay{position:fixed;inset:0;z-index:50;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(0,7,13,.72)}.mapOverlay.show{display:flex}.mapCard{width:min(1160px,96vw);height:min(760px,94vh);border-radius:27px;padding:20px;overflow:hidden}.mapHeader{position:relative;display:flex;justify-content:space-between;align-items:center;padding:0 4px 14px;border-bottom:1px solid #ffffff1f}.mapHeader small{font-size:9px;letter-spacing:.14em;color:var(--mint)}.mapHeader h2{margin:3px 0 0;font-size:28px}.mapHeader button{position:static}.mapBody{height:calc(100% - 75px);display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:16px;padding-top:16px}.mapBody canvas{width:100%;height:100%;object-fit:contain;border-radius:17px;background:#10263a;border:1px solid #ffffff1f}.mapLegend{padding:13px;border-radius:16px;background:#ffffff0b;display:flex;flex-direction:column;gap:9px;font-size:11px}.mapLegend>b{color:var(--yellow);font-size:12px}.mapLegend span{display:flex;align-items:center;gap:8px}.legend{display:inline-block;width:13px;height:13px;border-radius:50%;background:#fff}.legend.player{background:#4ef0ab}.legend.ball{background:#fff;border:2px solid #19334a}.legend.hole{background:#ff5a62}.legend.find{background:#ffd84f}.legend.transit{background:#5ca7ff}.mapLegend hr{width:100%;border:0;border-top:1px solid #ffffff1c}.mapLegend p{margin-top:auto;color:#9fc2d6}.districtList{display:flex;flex-wrap:wrap;gap:5px}.districtList span{padding:4px 7px;border-radius:5px;background:#ffffff11;color:#bdd6e4}.districtList span.found{background:#4df0aa22;color:#72ffc0;border:1px solid #4df0aa55}

/* result */
.resultScreen{background:radial-gradient(circle at 50% 35%,rgba(65,153,227,.32),rgba(1,9,17,.86));align-items:center;justify-content:center}.resultScreen.show{display:flex}.resultCard{width:min(690px,94vw);max-height:92vh;overflow:auto;padding:32px 38px;border-radius:30px;text-align:center}.resultBadge{font-size:10px;letter-spacing:.14em;color:#b9d7e9}.resultCard h2{margin:10px 0 0;font-size:58px;letter-spacing:-.05em;color:var(--yellow);text-shadow:0 6px 0 #0006}.resultGrade{font-size:25px;font-weight:1000;color:var(--mint);margin-top:4px}.resultCard>p{color:#cce3f0;line-height:1.7}.resultStats{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:18px 0}.resultStats>div{padding:13px 8px;border-radius:13px;background:#ffffff0d}.resultStats span{display:block;font-size:9px;color:#accbdb}.resultStats b{font-size:21px}.resultPinBreakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 20px}.resultPinBreakdown article{padding:11px;border-radius:13px;background:#061726b8;border:1px solid #ffffff18;text-align:left}.resultPinBreakdown small{display:block;color:#8ee9ff;font-size:8px;letter-spacing:.1em}.resultPinBreakdown b{display:block;margin-top:3px;font-size:13px}.resultPinBreakdown span{display:block;margin-top:4px;color:#bdd7e5;font-size:9px}.resultCard .primary{margin:0 auto}

/* touch */
.touchControls{position:fixed;inset:0;z-index:20;pointer-events:none}.touchStick{position:absolute;left:24px;bottom:26px;width:120px;height:120px;border-radius:50%;border:2px solid #fff5;background:#0a20338c;pointer-events:auto}.touchStick i{position:absolute;left:35px;top:35px;width:50px;height:50px;border-radius:50%;background:#fff8;box-shadow:0 4px 15px #0005}.touchButtons{position:absolute;right:22px;bottom:27px;display:flex;align-items:flex-end;gap:12px}.touchButtons button{pointer-events:auto;border:1px solid #fff6;background:#092037c9;color:#fff;border-radius:50%;width:58px;height:58px;font-weight:900}.touchButtons .touchShot{width:92px;height:92px;background:#ffd84fe8;color:#153047;border:5px solid #fff8}
.fatalError{position:fixed;z-index:100;left:50%;top:50%;transform:translate(-50%,-50%);width:min(580px,90vw);padding:22px;border-radius:18px;background:#3a0c13;border:1px solid #ff8a97;color:#fff;box-shadow:0 20px 80px #000}.fatalError b{display:block;font-size:20px}.fatalError span{display:block;margin-top:8px;line-height:1.6;color:#ffd7dc}

@media(max-width:900px){
  .titleCopy{width:58vw;left:3vw;padding:23px}.titleCharacter{right:-9vw;opacity:.82;max-width:66vw}.titleLogoPlate{display:none}
  .objectivePanel{display:none}.scorePanel{top:84px}.returnBallBtn{top:276px}.shotPanel{width:min(590px,75vw)}.miniMapFrame{width:165px;height:165px}.avatarPanel div{display:none}.avatarPanel{padding-right:7px}.holePanel{min-width:275px}.mapBody{grid-template-columns:1fr}.mapLegend{display:none}
}
@media(max-width:620px){
  .titleCopy{left:4vw;right:4vw;top:6vh;width:auto;padding:20px}.titleCopy h1{font-size:45px}.lead{font-size:13px}.featureChips,.titleFooter{display:none}.titleCharacter{height:52vh;right:-13vw;bottom:4vh;opacity:.72}.titleActions{flex-wrap:wrap}.titleActions button{min-height:48px}.primary{min-width:180px}
  .controlGrid{grid-template-columns:1fr}.modalCard{max-height:90vh;overflow:auto}.mouseHelp{font-size:12px}
  .holePanel{transform:scale(.83);transform-origin:top left}.avatarPanel{transform:scale(.8);transform-origin:top right}.scorePanel{transform:scale(.83);transform-origin:top left;top:76px}.returnBallBtn{transform:scale(.83);transform-origin:top left;top:218px}.shotPanel{bottom:10px;width:94vw}.aimRow{gap:6px}.aimControlPad{gap:4px}.aimControlPad em{display:none}.aimControlPad button{width:42px;height:32px;font-size:21px}.miniMapFrame{display:none}.toast{top:82px;width:90vw}.interactionPrompt{bottom:121px}.crosshair{display:none}
  .touchControls:not(.hidden){display:block}
}

/* added: guide/settings UI */
.hudButtons{position:absolute;right:12px;top:84px;display:flex;gap:8px;pointer-events:auto}.hudIconBtn{height:42px;min-width:58px;padding:0 9px;border:1px solid var(--line);border-radius:13px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;font-weight:900;background:linear-gradient(145deg,rgba(8,26,44,.9),rgba(2,10,19,.74))}.hudIconBtn span{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#ffffff1c;color:var(--yellow);font-size:15px}.hudIconBtn b{font-size:11px;letter-spacing:.04em}.hudIconBtn:hover{filter:brightness(1.1)}.hudIconBtn.active{border-color:#ffd84faa;background:linear-gradient(145deg,rgba(255,216,79,.27),rgba(8,26,44,.92))}.hudIconBtn.active span{background:#ffd84f;color:#122b3d}
.pinGuideHud{position:absolute;left:50%;top:84px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;min-width:190px;padding:9px 13px;border-radius:16px}.pinCompass{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#ffd84f 0 42%,#ffffff22 44% 100%);box-shadow:0 0 18px #ffd84f55}.pinCompass i{width:26px;height:26px;color:#13293b;display:block;transform-origin:center}.pinCompass i svg{display:block;width:100%;height:100%;fill:currentColor;filter:drop-shadow(0 1px 0 #ffffff66)}.pinGuideHud span{display:block;font-size:9px;letter-spacing:.13em;color:#98d8ff;font-weight:900}.pinGuideHud b{display:block;font-size:20px;color:var(--yellow);line-height:1}.pinGuideHud small{display:block;margin-top:3px;color:#d4ecf8;font-size:10px;white-space:nowrap}
.desktopGuide{position:absolute;right:12px;top:139px;width:118px;padding:10px;border-radius:15px;display:flex;flex-direction:column;gap:6px}.desktopGuide>b{font-size:10px;color:var(--yellow);letter-spacing:.1em}.desktopGuide span{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:10px;color:#d6effc;white-space:nowrap}.desktopGuide kbd{min-width:44px;padding:2px 4px;border-radius:5px;font-size:9px;text-align:center;background:#ffffff18;border:1px solid #ffffff34;color:#fff;font-weight:900}
.settingsCard{width:min(640px,94vw)}.settingsLead{margin:-10px 0 16px;color:#cde8f8;font-size:13px}.settingList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.settingList label{display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;column-gap:9px;padding:12px;border-radius:14px;background:#ffffff0e;border:1px solid #ffffff17;cursor:pointer}.settingList input{grid-row:1/3;align-self:center;width:20px;height:20px;accent-color:#ffd84f}.settingList span{font-size:13px;font-weight:900}.settingList small{font-size:10px;color:#a9c9db;margin-top:3px}.settingsCard .hintText{font-size:12px;margin-bottom:0}
@media(max-width:900px){.desktopGuide{display:none!important}.hudButtons{top:78px;right:10px}.hudIconBtn{min-width:48px;height:38px}.hudIconBtn b{display:none}.pinGuideHud{top:78px;min-width:150px;padding:7px 10px}.pinCompass{width:34px;height:34px}.pinGuideHud b{font-size:16px}.settingList{grid-template-columns:1fr}}
@media(max-width:620px){.hudButtons{top:70px;right:8px}.pinGuideHud{left:12px;top:154px;transform:none;min-width:145px}.pinGuideHud small{display:none}.settingsCard{padding:22px}.settingsCard h2{font-size:28px}}

/* delivery quests / equipment / character conversations */
.inventoryModal{z-index:66}
.inventoryCard{width:min(1100px,96vw);max-height:92vh;padding:26px 28px 20px;overflow:auto}
.inventoryHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-right:48px;margin-bottom:18px}
.inventoryHeader>div:first-child{min-width:0}
.inventoryHeader small{font-size:9px;letter-spacing:.16em;color:#8ee9ff;font-weight:900}
.inventoryHeader h2{margin:4px 0 5px;font-size:34px}
.inventoryHeader p{margin:0;color:#c4dfee;font-size:12px;line-height:1.55}
.gearStats{display:grid;grid-template-columns:repeat(3,minmax(82px,1fr));gap:7px;min-width:290px}
.gearStats span{padding:9px 10px;border-radius:12px;background:#ffffff0c;border:1px solid #ffffff1c;text-align:center}
.gearStats small{display:block;color:#a9c9db;font-size:8px;letter-spacing:.04em}
.gearStats b{display:block;margin-top:3px;color:var(--yellow);font-size:18px}
.inventoryColumns{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr);gap:16px}
.gearPane,.questPane{min-width:0;padding:14px;border-radius:18px;background:#03111ea8;border:1px solid #ffffff18}
.paneTitle{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 2px 10px}
.paneTitle span{font-size:8px;letter-spacing:.15em;color:#8ee9ff;font-weight:900}
.paneTitle b{font-size:12px;color:#f1f9ff}
.equipmentSlots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:17px}
.gearSlot,.itemCard{appearance:none;border:1px solid #ffffff1b;color:#fff;background:linear-gradient(145deg,#102a3ccc,#071724d9);cursor:pointer;text-align:left;transition:.16s transform,.16s border-color,.16s background}
.gearSlot{position:relative;min-height:150px;padding:12px;border-radius:15px;display:flex;flex-direction:column;align-items:flex-start}
.gearSlot:hover:not(:disabled),.itemCard:hover{transform:translateY(-2px);border-color:#8ee9ff80}
.gearSlot:disabled{cursor:default;opacity:.62}
.gearSlot.equipped{border-color:#ffd84f88;background:linear-gradient(145deg,#56451266,#0b2334e8);box-shadow:inset 0 0 26px #ffd84f12}
.gearIcon,.itemIcon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#ffffff12;font-size:23px}
.gearSlot small{margin-top:9px;font-size:8px;letter-spacing:.12em;color:#9ec6da}
.gearSlot b{margin-top:3px;font-size:12px;line-height:1.3}
.gearSlot p{margin:5px 0 10px;color:#b8d5e5;font-size:9px;line-height:1.45}
.gearSlot em{margin-top:auto;font-style:normal;font-size:7px;letter-spacing:.1em;color:#ffd84f}
.inventoryItems{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-height:95px}
.itemCard{min-height:110px;padding:10px;border-radius:14px;display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:9px;align-content:center}
.itemCard.active{border-color:#58f0ad99;background:linear-gradient(145deg,#0d4b3d80,#081b29e8)}
.itemCard .itemIcon{grid-row:1/4}
.itemCard small{font-size:7px;letter-spacing:.12em;color:#58f0ad;font-weight:900}
.itemCard b{font-size:11px;line-height:1.25}
.itemCard>span:last-child{font-size:8px;color:#aacbdb;margin-top:3px}
.inventoryEmpty{grid-column:1/-1;min-height:92px;display:grid;place-items:center;text-align:center;border:1px dashed #ffffff25;border-radius:14px;color:#9fc1d3;font-size:11px;line-height:1.6}
.questLog{display:flex;flex-direction:column;gap:8px}
.questLogCard{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto auto;padding:10px 11px;border-radius:14px;background:#ffffff09;border:1px solid #ffffff16}
.questLogCard>i{grid-row:1/4;align-self:center;display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#ffd84f;color:#153048;font-style:normal;font-weight:1000}
.questLogCard small{font-size:7px;letter-spacing:.13em;color:#ffd84f;font-weight:900}
.questLogCard b{margin-top:2px;font-size:12px}
.questLogCard p{margin:3px 0 0;color:#a9cadb;font-size:9px;line-height:1.4}
.questLogCard.active{border-color:#a978ff8c;background:#a978ff13}
.questLogCard.active>i{background:#a978ff;color:#fff}
.questLogCard.done{border-color:#58f0ad5d;background:#58f0ad0d}
.questLogCard.done>i{background:#58f0ad;color:#09271c}
.questLogCard.locked{opacity:.48}
.questLogCard.locked>i{background:#ffffff1b;color:#b8cad4}
.dangerBtn{width:100%;margin-top:12px;padding:9px 12px;border-radius:11px;border:1px solid #ff81916b;background:#5b172047;color:#ffc5cd;font-size:9px;font-weight:900;cursor:pointer}
.dangerBtn:hover{background:#84263275}
.deliveryPaneTitle{margin-top:18px;padding-top:14px;border-top:1px solid #ffffff1a}
.tourSummary{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:9px}
.tourSummary>div{padding:9px 7px;border-radius:12px;background:#ffffff0b;border:1px solid #ffffff16;text-align:center}
.tourSummary small{display:block;color:#95bad0;font-size:7px;letter-spacing:.08em}
.tourSummary b{display:block;margin-top:3px;color:var(--yellow);font-size:16px}
.tourPinProgress{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:9px}
.tourPinProgress article{padding:9px;border-radius:11px;background:#ffffff09;border:1px solid #ffffff14}
.tourPinProgress article.active{border-color:#52ffc277;background:#52ffc210}
.tourPinProgress article.done{border-color:#ffd84f66;background:#ffd84f0d}
.tourPinProgress small{display:block;color:#8ee9ff;font-size:7px;letter-spacing:.08em}
.tourPinProgress b{display:block;margin-top:2px;font-size:11px}
.tourPinProgress span{display:block;margin-top:3px;color:#a9cadb;font-size:8px}
.tourRecordList{display:flex;flex-direction:column;gap:5px}
.tourRecordList article{display:grid;grid-template-columns:56px 1fr auto;gap:7px;align-items:center;padding:7px 9px;border-radius:10px;background:#ffffff08;color:#b9d5e4;font-size:8px}
.tourRecordList article b{color:#fff;font-size:9px}
.tourRecordList .tourEmpty{display:block;padding:9px;border:1px dashed #ffffff20;border-radius:10px;text-align:center;color:#8eafc1;font-size:8px}
.inventoryHint{margin:13px 0 0;text-align:center;color:#92b7ca;font-size:9px}
.inventoryHint kbd{min-width:auto;padding:2px 7px;font-size:8px}

.dialogOverlay{position:fixed;inset:0;z-index:72;display:none;align-items:flex-end;justify-content:center;padding:0 24px 5.5vh;background:radial-gradient(circle at 50% 75%,rgba(67,220,196,.12),transparent 38%),linear-gradient(180deg,rgba(0,8,15,.08) 0 28%,rgba(0,7,13,.82) 100%);isolation:isolate}
.dialogOverlay.show{display:flex}
.dialogCard{--dialog-accent:#8ee9ff;--dialog-accent-rgb:142,233,255;position:relative;isolation:isolate;overflow:hidden;width:min(860px,94vw);display:grid;grid-template-columns:122px minmax(0,1fr);gap:20px;padding:22px 24px;border:1px solid rgba(var(--dialog-accent-rgb),.5);border-radius:26px;background:linear-gradient(135deg,#102c3b 0%,#071b29 56%,#06131f 100%)!important;box-shadow:0 24px 70px #000b,0 0 0 1px #ffffff12 inset,0 0 36px rgba(var(--dialog-accent-rgb),.12);backdrop-filter:none!important;-webkit-backdrop-filter:none!important;contain:paint;animation:dialogIn .24s cubic-bezier(.2,.8,.2,1)}
.dialogCard::before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 11% 8%,rgba(var(--dialog-accent-rgb),.24),transparent 28%),linear-gradient(115deg,transparent 0 66%,rgba(var(--dialog-accent-rgb),.08) 66% 67%,transparent 67%);pointer-events:none}
.dialogCard::after{content:"";position:absolute;top:-130%;left:-22%;width:22%;height:330%;background:linear-gradient(90deg,transparent,#ffffff24,transparent);transform:rotate(18deg);pointer-events:none;animation:dialogGlint 4.8s ease-in-out infinite}
.dialogOverlay[data-variant="quest-start"] .dialogCard{--dialog-accent:#58e6c2;--dialog-accent-rgb:88,230,194}
.dialogOverlay[data-variant="quest-complete"] .dialogCard{--dialog-accent:#ffd86b;--dialog-accent-rgb:255,216,107}
.dialogOverlay[data-variant="item-reward"] .dialogCard{--dialog-accent:#ff9d77;--dialog-accent-rgb:255,157,119}
.dialogOverlay[data-variant="treasure"] .dialogCard{--dialog-accent:#d7aeff;--dialog-accent-rgb:215,174,255}
@keyframes dialogIn{from{transform:translateY(18px) scale(.98)}to{transform:none}}
@keyframes dialogGlint{0%,68%{transform:translateX(-180%) rotate(18deg);opacity:0}74%{opacity:.9}88%,100%{transform:translateX(670%) rotate(18deg);opacity:0}}
.dialogPortrait{position:relative;align-self:start;display:grid;place-items:center;width:112px;height:112px;overflow:hidden;border-radius:28px;background:radial-gradient(circle at 35% 25%,#fff5,#ffffff0d),linear-gradient(145deg,var(--dialog-accent),#315778);border:2px solid #ffffff80;box-shadow:0 14px 32px #0008,0 0 28px rgba(var(--dialog-accent-rgb),.24);font-size:45px}
.dialogPortrait::after{content:"";position:absolute;inset:5px;border:1px solid #ffffff40;border-radius:22px;pointer-events:none}
.dialogPortrait img{width:100%;height:100%;display:block;object-fit:cover}
.dialogPortrait img[hidden],.dialogItemArt img[hidden]{display:none}
.dialogPortrait span{position:relative;z-index:1}
.dialogBody{position:relative;z-index:1;min-width:0}
.dialogBody>small{display:block;font-size:8px;letter-spacing:.19em;color:var(--dialog-accent);font-weight:900}
.dialogBody h2{margin:3px 0 8px;color:#fff3ba;font-size:24px;text-shadow:0 2px 16px rgba(var(--dialog-accent-rgb),.24)}
.dialogBody>p{min-height:42px;margin:0;color:#e8f6fb;font-size:13px;line-height:1.72;white-space:pre-line}
.dialogItem{display:flex;align-items:center;gap:12px;margin-top:12px;padding:10px 12px;border-radius:15px;background:linear-gradient(100deg,rgba(var(--dialog-accent-rgb),.13),#ffffff08);border:1px solid rgba(var(--dialog-accent-rgb),.42);box-shadow:0 0 0 1px #ffffff08 inset}
.dialogItemArt{position:relative;flex:0 0 auto;display:grid;place-items:center;width:56px;height:56px;overflow:hidden;border-radius:13px;background:#061723;border:1px solid rgba(var(--dialog-accent-rgb),.45);font-size:25px}
.dialogItemArt img{width:100%;height:100%;display:block;object-fit:cover}
.dialogItemArt>span{position:relative;z-index:1}
.dialogItem small{display:block;color:var(--dialog-accent);font-size:7px;letter-spacing:.14em;font-weight:900}
.dialogItem b{display:block;margin-top:3px;font-size:11px;line-height:1.5}
.dialogActions{display:flex;justify-content:flex-end;gap:9px;margin-top:15px}
.dialogActions button{min-width:120px;min-height:40px;padding:0 16px;border-radius:12px;font-weight:900;cursor:pointer}
.dialogSecondary{border:1px solid #ffffff34;background:#ffffff0c;color:#d7e8f1}
.dialogPrimary{border:0;background:linear-gradient(135deg,var(--dialog-accent),#fff0a8);color:#102536;box-shadow:0 5px 0 rgba(0,0,0,.38),0 0 18px rgba(var(--dialog-accent-rgb),.15)}
.dialogPrimary:active{transform:translateY(3px);box-shadow:0 2px 0 rgba(0,0,0,.38)}
@media(prefers-reduced-motion:reduce){.dialogCard,.dialogCard::after{animation:none}}

.questObjectiveMeta{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:8px;padding-top:7px;border-top:1px solid #ffffff1c}
.questObjectiveMeta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d7c8ff;font-size:9px;font-weight:800}
.questObjectiveMeta b{white-space:nowrap;color:var(--yellow);font-size:9px}
.legend.quest{background:#a978ff;box-shadow:0 0 7px #a978ff}
.desktopGuide{width:148px}

@media(max-width:900px){
  .inventoryHeader{display:block;padding-right:38px}.gearStats{margin-top:12px;min-width:0}
  .inventoryColumns{grid-template-columns:1fr}.inventoryCard{max-height:94vh}
  .equipmentSlots,.inventoryItems{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dialogOverlay{padding-bottom:3vh}.dialogCard{grid-template-columns:76px minmax(0,1fr);gap:13px;padding:18px}.dialogPortrait{width:70px;height:70px;border-radius:18px;font-size:34px}
}
@media(max-width:620px){
  .inventoryCard{padding:20px 15px 16px}.inventoryHeader h2{font-size:27px}.gearStats{grid-template-columns:repeat(3,1fr)}.gearStats b{font-size:15px}
  .equipmentSlots,.inventoryItems{grid-template-columns:1fr}.gearSlot{min-height:112px;display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto auto auto;column-gap:9px}.gearSlot .gearIcon{grid-row:1/5}.gearSlot small{margin-top:0}.gearSlot p{margin-bottom:4px}.gearSlot em{margin-top:0}
  .dialogOverlay{align-items:center;padding:14px;background:rgba(0,7,13,.7)}.dialogCard{grid-template-columns:1fr;padding:18px;max-height:90vh;overflow:auto}.dialogPortrait{width:58px;height:58px;font-size:29px}.dialogBody h2{font-size:20px}.dialogBody>p{font-size:12px}.dialogActions{flex-direction:column-reverse}.dialogActions button{width:100%}
  .hudButtons{max-width:220px;flex-wrap:wrap;justify-content:flex-end}.hudIconBtn{min-width:43px;padding:0 7px}
}

@media(max-width:620px){.resultStats{grid-template-columns:repeat(2,1fr)}.resultPinBreakdown{grid-template-columns:1fr}.tourPinProgress{grid-template-columns:1fr}.resultCard h2{font-size:42px}}

/* quest airplane / lightweight flight HUD */
.legend.aircraft{background:#8ee9ff;border-radius:3px;box-shadow:0 0 8px #8ee9ffaa;transform:rotate(45deg)}
.legend.treasure{background:#ffd86b;border-radius:2px;box-shadow:0 0 8px #ffd86baa;transform:rotate(45deg)}
.flightGuide{top:139px;border-color:#8ee9ff66;background:linear-gradient(145deg,rgba(9,45,67,.94),rgba(2,14,24,.82))}
.flightGuide>b{color:#8ee9ff}
.flightHud{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);min-width:500px;display:grid;grid-template-columns:repeat(3,1fr) auto;align-items:center;gap:8px;padding:11px 13px;border-radius:17px;border-color:#8ee9ff66;background:linear-gradient(145deg,rgba(7,37,56,.94),rgba(1,13,23,.86))}
.flightHud>div{padding:6px 12px;border-right:1px solid #ffffff1c;text-align:center}.flightHud small{display:block;font-size:8px;letter-spacing:.12em;color:#8ee9ff;font-weight:900}.flightHud b{display:block;margin-top:2px;font-size:17px;color:#fff}.flightHud b i{font-style:normal;color:#ffd84f}.flightHud strong{min-width:92px;padding:9px 12px;border-radius:11px;background:#8ee9ff1d;color:#8ee9ff;font-size:10px;letter-spacing:.1em;text-align:center}
body.flightMode .shotPanel,body.flightMode .returnBallBtn,body.flightMode #desktopGuide{display:none!important}
body.flightMode .interactionPrompt{bottom:94px}
body.flightMode .touchButtons .touchShot{background:#8ee9ffe8}
@media(max-width:900px){.flightHud{bottom:18px;min-width:min(520px,92vw);grid-template-columns:repeat(3,1fr)}.flightHud strong{grid-column:1/-1;padding:5px}.flightHud>div:nth-child(3){border-right:0}}
@media(max-width:620px){.flightHud{bottom:130px;min-width:92vw;padding:8px;gap:4px}.flightHud>div{padding:4px;border-right:0}.flightHud small{font-size:6px}.flightHud b{font-size:13px}.flightHud strong{font-size:8px}.flightMode .interactionPrompt{bottom:226px}}
.touchButtons .touchDescend{width:68px;height:68px;background:#3c597ee8;color:#fff;border-width:3px;font-size:10px;letter-spacing:.08em}
body.flightMode .touchButtons{align-items:center}


/* ---------------------------------------------------------
   refined map + stable mobile HUD (2026-06)
--------------------------------------------------------- */
#gameCanvas{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0)}
.hudIconBtn,.returnBallBtn,.aimControlPad button,.touchButtons button,.touchStick{-webkit-tap-highlight-color:transparent}
.mapStatusBar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:11px 4px 0}
.mapStatusBar>div{min-width:0;padding:9px 11px;border-radius:12px;background:#ffffff0b;border:1px solid #ffffff18}
.mapStatusBar small{display:block;font-size:7px;letter-spacing:.12em;color:#8ee9ff;font-weight:900}
.mapStatusBar b{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#f4fbff}
.mapCard{display:flex;flex-direction:column}
.mapBody{height:auto;min-height:0;flex:1}
.mapBody canvas{min-height:0}
.hudIconBtn span{font-family:system-ui,"Apple Color Emoji","Segoe UI Emoji",sans-serif}

@media(max-width:620px){
  :root{--mobile-safe-bottom:max(12px,env(safe-area-inset-bottom,0px));--mobile-safe-top:max(8px,env(safe-area-inset-top,0px))}
  .hud .glass,.touchControls .glass{backdrop-filter:none;-webkit-backdrop-filter:none}
  .hud{font-variant-numeric:tabular-nums}

  /* top information is arranged into two clean columns instead of stacked cards */
  .holePanel{left:8px;right:8px;top:var(--mobile-safe-top);width:auto;height:56px;min-width:0;padding:6px 8px;gap:8px;transform:none;border-radius:15px}
  .holeNumber{width:42px;height:42px;flex:0 0 42px;font-size:23px;box-shadow:inset 0 1px #fff7,0 3px 0 #0a357d}
  .holeText{min-width:0;flex:1}.holeText b{font-size:11px}.holeText strong{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.holeText span{font-size:7px}
  .wind{display:none}.avatarPanel{display:none}

  .hudButtons{top:calc(var(--mobile-safe-top) + 64px);right:8px;max-width:none;display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:4px}
  .hudIconBtn{width:36px;min-width:36px;height:36px;padding:0;border-radius:11px}.hudIconBtn span{width:21px;height:21px;font-size:14px}.hudIconBtn b{display:none}

  .scorePanel{left:8px;top:calc(var(--mobile-safe-top) + 64px);width:142px;padding:5px 7px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;transform:none;border-radius:13px}
  .scorePanel>div{display:block;min-width:0;padding:4px 5px;border:0;border-radius:8px;background:#ffffff08;text-align:left}
  .scorePanel span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:6px;letter-spacing:.04em}.scorePanel b{display:block;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}

  .pinGuideHud{left:auto;right:8px;top:calc(var(--mobile-safe-top) + 108px);width:calc(100vw - 164px);max-width:220px;min-width:0;padding:7px 9px;transform:none;gap:8px;border-radius:14px}
  .pinCompass{width:34px;height:34px;flex:0 0 34px}.pinCompass i{width:21px;height:21px}.pinGuideHud>div:last-child{min-width:0}.pinGuideHud span{font-size:7px}.pinGuideHud b{font-size:15px}.pinGuideHud small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px}

  .returnBallBtn{left:8px;top:calc(var(--mobile-safe-top) + 171px);height:34px;padding:0 10px;transform:none;border-radius:11px}.returnBallBtn kbd{padding:2px 6px;font-size:8px}.returnBallBtn span{font-size:10px}
  .objectivePanel{display:none}
  .toast{top:calc(var(--mobile-safe-top) + 214px);width:calc(100vw - 20px);max-width:none;padding:8px 12px}.toast span{font-size:10px}

  /* shot data stays above the two thumb zones */
  .shotPanel{left:8px;right:8px;bottom:calc(var(--mobile-safe-bottom) + 122px);width:auto;padding:8px 10px 9px;transform:none;border-radius:17px}
  .clubRow span{display:none}.clubRow b{font-size:16px}.clubRow i{font-size:7px;padding:3px 6px}
  .aimRow{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:5px;margin-top:3px;font-size:8px}
  .aimRow>span:last-child{text-align:right}.aimControlPad{gap:4px}.aimControlPad em{display:none}.aimControlPad button{width:38px;height:29px;font-size:19px;border-radius:9px}
  .powerTrack{height:15px;margin-top:6px}.powerTrack:after{background:repeating-linear-gradient(90deg,transparent 0 calc(20% - 1px),#fff3 calc(20% - 1px) 20%)}#powerNeedle{height:19px}.shotHelp{margin-top:3px;font-size:8px}

  .touchStick{left:14px;bottom:var(--mobile-safe-bottom);width:104px;height:104px;border-width:1px;background:#081d2fc7;box-shadow:0 8px 25px #0006}
  .touchStick i{left:30px;top:30px;width:44px;height:44px;background:#dce9f1aa;will-change:transform}
  .touchButtons{right:14px;bottom:var(--mobile-safe-bottom);gap:8px;align-items:center}
  .touchButtons button{width:52px;height:52px;border-width:2px;background:#071b2fd9;box-shadow:0 7px 20px #0005;font-size:12px}
  .touchButtons .touchShot{width:82px;height:82px;border-width:4px;font-size:15px}.touchButtons .touchDescend{width:56px;height:56px;border-width:2px;font-size:8px}
  .interactionPrompt{bottom:calc(var(--mobile-safe-bottom) + 238px);padding:7px 12px}.interactionPrompt span{font-size:10px}.interactionPrompt kbd{padding:3px 7px}

  /* flight information occupies the shot-panel lane; EXIT works in the air */
  .flightHud{left:8px;right:8px;bottom:calc(var(--mobile-safe-bottom) + 116px);width:auto;min-width:0;padding:7px 8px;transform:none;grid-template-columns:repeat(3,1fr);gap:3px;border-radius:15px}
  .flightHud>div{padding:4px 2px;border:0}.flightHud small{font-size:6px}.flightHud b{font-size:12px}.flightHud strong{grid-column:1/-1;min-width:0;padding:4px;font-size:7px}
  body.flightMode .interactionPrompt{bottom:calc(var(--mobile-safe-bottom) + 204px)}

  .miniMapFrame{display:none}
  .crosshair{display:none}

  /* full-screen map remains readable on a portrait phone */
  .mapOverlay{padding:0;background:rgba(0,7,13,.9)}
  .mapCard{width:100vw;height:100dvh;max-height:none;padding:var(--mobile-safe-top) 10px var(--mobile-safe-bottom);border-radius:0;border:0}
  .mapHeader{flex:0 0 auto;padding:5px 3px 9px}.mapHeader h2{font-size:21px}.mapHeader small{font-size:7px}.mapHeader button{width:38px;height:38px;font-size:25px}
  .mapStatusBar{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:7px 1px 0;flex:0 0 auto}
  .mapStatusBar>div{padding:6px 8px;border-radius:10px}.mapStatusBar small{font-size:6px}.mapStatusBar b{font-size:9px}
  .mapBody{display:flex;flex-direction:column;gap:7px;padding-top:7px;overflow:hidden}
  .mapBody canvas{width:100%;height:auto;min-height:250px;flex:1;object-fit:contain;border-radius:13px}
  .mapLegend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px 7px;max-height:145px;overflow:auto;padding:8px;border-radius:12px;font-size:8px;flex:0 0 auto}
  .mapLegend>b,.mapLegend hr,.mapLegend .districtList,.mapLegend p{grid-column:1/-1}.mapLegend>b{font-size:9px}.mapLegend span{gap:5px;min-width:0}.legend{width:9px;height:9px;flex:0 0 9px}.mapLegend hr{margin:2px 0}.districtList{gap:3px}.districtList span{padding:3px 5px;font-size:7px}.mapLegend p{margin:1px 0 0;text-align:center}
}

@media(max-width:370px){
  .scorePanel{width:134px}.pinGuideHud{width:calc(100vw - 154px)}
  .hudIconBtn{width:34px;min-width:34px}.hudButtons{gap:3px}
  .touchStick{width:98px;height:98px}.touchStick i{left:28px;top:28px;width:42px;height:42px}
  .touchButtons .touchShot{width:76px;height:76px}.touchButtons button{width:48px;height:48px}
}

@media(max-height:540px) and (pointer:coarse){
  .scorePanel{display:none}.returnBallBtn{top:calc(var(--mobile-safe-top) + 112px)}
  .pinGuideHud{top:calc(var(--mobile-safe-top) + 64px);left:8px;right:auto;width:150px}
  .shotPanel{left:122px;right:118px;bottom:var(--mobile-safe-bottom);padding:6px 8px}.shotHelp{display:none}
  .touchStick{width:92px;height:92px}.touchStick i{left:27px;top:27px;width:38px;height:38px}
  .touchButtons .touchShot{width:72px;height:72px}.touchButtons button{width:46px;height:46px}
  .interactionPrompt{bottom:calc(var(--mobile-safe-bottom) + 82px)}
  .flightHud{left:116px;right:116px;bottom:var(--mobile-safe-bottom)}
}

/* ---------------------------------------------------------
   9-hole remake: directional + vertical shot setup
--------------------------------------------------------- */
.shotPanel{width:min(760px,64vw);border-color:#65e5c955;background:linear-gradient(150deg,rgba(3,35,61,.94),rgba(2,15,28,.9))}
.shotSetupRow{display:grid;grid-template-columns:minmax(154px,.9fr) minmax(260px,1.45fr) minmax(142px,.75fr);gap:8px;margin-top:7px}
.shotAdjustBlock{min-width:0;padding:7px 9px;border-radius:12px;background:#ffffff0a;border:1px solid #ffffff18}
.shotAdjustBlock>small{display:flex;align-items:center;justify-content:space-between;gap:7px;color:#8edfd4;font-size:7px;font-weight:900;letter-spacing:.12em;white-space:nowrap}
.shotAdjustBlock>small b{color:#fff;font-size:11px;letter-spacing:0}
.directionBlock .aimControlPad{margin-top:5px}
.loftControlPad{display:grid;grid-template-columns:38px minmax(90px,1fr) 38px;align-items:center;gap:6px;margin-top:5px;pointer-events:auto}
.loftControlPad button{appearance:none;width:38px;height:34px;padding:0;border:1px solid #65e5c988;border-radius:9px;background:linear-gradient(180deg,#17485be8,#071d2be8);color:#fff;font-size:23px;font-weight:1000;line-height:1;box-shadow:0 3px 0 #020a11aa,inset 0 1px #ffffff22;cursor:pointer;touch-action:none;transition:.08s transform,.08s background,.08s color}
.loftControlPad button:hover{filter:brightness(1.12)}
.loftControlPad button:active,.loftControlPad button.active{transform:translateY(2px);background:var(--mint);color:#09293a;box-shadow:0 1px 0 #020a11aa}
.loftControlPad>span{display:flex;flex-direction:column;align-items:center;min-width:0}
.loftControlPad strong{font-size:11px;color:#fff}.loftControlPad em{font-style:normal;font-size:7px;color:#9fbfce;white-space:nowrap}.loftControlPad em b{color:var(--yellow)}
.carryBlock{display:flex;flex-direction:column;justify-content:center;text-align:center}.carryBlock>small{justify-content:center}.carryBlock>b{margin-top:2px;color:#fff;font-size:21px;line-height:1}.carryBlock>b i{font-style:normal;color:var(--yellow)}.carryBlock>span{margin-top:5px;color:#9fbfce;font-size:7px;white-space:nowrap}.carryBlock>span strong{color:var(--mint);font-size:10px}
.shotPanel .powerTrack{margin-top:8px}
#gearLoftStat{font-size:11px;line-height:1.25}

@media(max-width:900px){
  .shotPanel{width:min(700px,78vw)}
  .shotSetupRow{grid-template-columns:minmax(135px,.85fr) minmax(220px,1.35fr) minmax(118px,.7fr);gap:6px}
}

@media(max-width:620px){
  .shotPanel{left:8px;right:8px;width:auto;padding:7px 8px 8px}
  .shotSetupRow{grid-template-columns:.78fr 1.35fr .64fr;gap:4px;margin-top:4px}
  .shotAdjustBlock{padding:4px 5px;border-radius:9px}.shotAdjustBlock>small{font-size:5px}.shotAdjustBlock>small b{font-size:8px}
  .directionBlock .aimControlPad,.loftControlPad{margin-top:3px}
  .aimControlPad button{width:32px;height:28px;font-size:18px}.aimControlPad em{display:none}
  .loftControlPad{grid-template-columns:28px minmax(62px,1fr) 28px;gap:3px}.loftControlPad button{width:28px;height:28px;font-size:18px;border-radius:7px}
  .loftControlPad strong{font-size:8px}.loftControlPad em{font-size:5px}
  .carryBlock>b{font-size:16px}.carryBlock>span{font-size:5px}.carryBlock>span strong{font-size:8px}
  .shotPanel .powerTrack{height:13px;margin-top:5px}.shotPanel .shotHelp{font-size:7px}
}

@media(max-height:540px) and (pointer:coarse){
  .shotSetupRow{grid-template-columns:.72fr 1.28fr .62fr}.shotAdjustBlock{padding:3px}
  .loftControlPad em,.carryBlock>span{display:none}
}

/* goal snap controls: keep aiming, camera direction and quest play in one panel */
.aimTargetRow{display:grid;grid-template-columns:auto minmax(120px,1fr) minmax(150px,1.15fr);align-items:center;gap:6px;margin-top:6px;pointer-events:auto}
.aimTargetRow>span{padding:0 4px;color:#9fc9d8;font-size:7px;font-weight:1000;letter-spacing:.14em}
.aimTargetBtn{appearance:none;display:flex;align-items:center;justify-content:center;gap:7px;height:30px;padding:0 11px;border:1px solid #ffffff33;border-radius:9px;background:linear-gradient(180deg,rgba(20,57,78,.94),rgba(5,21,34,.94));color:#eaf7ff;box-shadow:0 3px 0 #020a11aa,inset 0 1px #ffffff1f;cursor:pointer;font-family:inherit;font-size:9px;font-weight:900;line-height:1;letter-spacing:.02em;transition:.1s transform,.1s filter,.1s border-color,.1s background}
.aimTargetBtn svg{width:16px;height:16px;flex:0 0 16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.aimTargetCopy{display:flex;align-items:baseline;justify-content:center;gap:6px;min-width:0}.aimTargetCopy b,.aimTargetCopy small{white-space:nowrap}.aimTargetCopy small{color:#fff;font-size:8px;font-weight:1000;font-variant-numeric:tabular-nums;letter-spacing:0}.aimTargetBtn.pin .aimTargetCopy small{color:#d9fff1}.aimTargetBtn.quest .aimTargetCopy small{color:#eadfff}.aimTargetBtn.quest[data-phase="offer"] .aimTargetCopy small{color:#fff4b0}
.aimTargetBtn.pin{border-color:#52ffc277;color:#83ffd2}.aimTargetBtn.quest{border-color:#a978ff88;color:#c9adff}.aimTargetBtn.quest[data-phase="offer"]{border-color:#ffd84f99;color:#ffe67c}
.aimTargetBtn.selected{border-color:#fff;filter:brightness(1.12);box-shadow:0 3px 0 #020a11aa,0 0 0 2px #ffffff24,inset 0 1px #ffffff38}.aimTargetBtn.pin.selected{background:linear-gradient(180deg,rgba(29,112,91,.96),rgba(5,37,37,.96))}.aimTargetBtn.quest.selected{background:linear-gradient(180deg,rgba(85,53,145,.96),rgba(27,15,55,.96))}.aimTargetBtn.quest.selected[data-phase="offer"]{background:linear-gradient(180deg,rgba(123,96,17,.96),rgba(54,38,6,.96))}
.aimTargetBtn:hover:not(:disabled){filter:brightness(1.16)}.aimTargetBtn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 #020a11aa}
.aimTargetBtn.pin:active:not(:disabled){background:#52ffc2;color:#082737}.aimTargetBtn.quest:active:not(:disabled){background:#a978ff;color:#170d2b}.aimTargetBtn.quest[data-phase="offer"]:active:not(:disabled){background:#ffd84f;color:#182b3b}
.aimTargetBtn:focus-visible{outline:2px solid #fff;outline-offset:2px}.aimTargetBtn:disabled{cursor:not-allowed;opacity:.34;filter:saturate(.35);box-shadow:none}
.interactionPrompt{bottom:162px}

@media(max-width:620px){
  .aimTargetRow{grid-template-columns:24px minmax(0,1fr) minmax(0,1.25fr);gap:4px;margin-top:4px}
  .aimTargetRow>span{padding:0;font-size:6px}.aimTargetBtn{height:27px;padding:0 5px;gap:4px;border-radius:7px;font-size:7px}.aimTargetBtn svg{width:13px;height:13px;flex-basis:13px}.aimTargetCopy{gap:3px}.aimTargetCopy small{font-size:6px}
  .interactionPrompt{bottom:151px}
}

@media(pointer:coarse) and (max-width:760px){
  .shotPanel{bottom:calc(var(--mobile-safe-bottom) + 122px)}
  .interactionPrompt{bottom:calc(var(--mobile-safe-bottom) + 273px)}
}

@media(max-height:540px) and (pointer:coarse){
  .shotPanel{left:122px;right:118px;bottom:var(--mobile-safe-bottom)}
  .aimTargetRow{grid-template-columns:1fr 1.2fr}.aimTargetRow>span{display:none}.aimTargetBtn{height:23px;font-size:6px}
  .interactionPrompt{bottom:calc(var(--mobile-safe-bottom) + 105px)}
}

/* 2026-07 visual refinement: unified iconography, clearer focus, calmer HUD depth */
.hudIconBtn{border-color:var(--line-soft);box-shadow:0 7px 20px #0005,inset 0 1px #ffffff1c;transition:.16s transform,.16s filter,.16s border-color,.16s background}
.hudIconBtn span{background:linear-gradient(145deg,#ffffff20,#ffffff0b);border:1px solid #ffffff1c}
.hudIconBtn span svg{display:block;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hudIconBtn:hover{transform:translateY(-2px);border-color:#ffffff55;filter:brightness(1.12)}.hudIconBtn:active{transform:translateY(1px)}
.hudIconBtn.active{box-shadow:0 7px 22px #0005,0 0 0 1px #ffd84f33,inset 0 1px #ffffff24}
.holePanel,.avatarPanel,.scorePanel,.objectivePanel,.shotPanel,.miniMapFrame,.pinGuideHud{border-color:#ffffff2d}
.shotPanel{background:linear-gradient(155deg,rgba(10,31,48,.92),rgba(2,10,19,.84));box-shadow:0 18px 48px #0008,0 0 0 1px #72d8ff0b,inset 0 1px #ffffff21}
.clubRow b{letter-spacing:.045em;text-shadow:0 0 18px #ffd84f36}.clubRow i{border:1px solid #ffffff12}
.scorePanel>div{border-color:#ffffff0e}.scorePanel b{font-variant-numeric:tabular-nums}.scorePanel i{font-variant-numeric:tabular-nums}
.wind i{width:18px;height:18px;display:grid;place-items:center;transform-origin:center}.wind i svg{display:block;width:15px;height:15px;fill:currentColor;filter:drop-shadow(0 0 5px #8de3ff66)}
.aimControlPad button svg{display:block;width:20px;height:20px;margin:auto;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.powerTrack{height:22px;border-color:#ffffff2e;background:linear-gradient(180deg,#ffffff16,#0000002c);box-shadow:inset 0 2px 8px #0008,0 1px #ffffff0d}
#sweetSpot{background:linear-gradient(90deg,#ffffff19,#ffffff42,#ffffff19);box-shadow:0 0 13px #fff3;transition:left .16s ease,width .16s ease;will-change:left,width}
#powerNeedle{border-radius:3px;box-shadow:0 0 9px #fff,0 0 18px #8ee9ff88}
.touchStick{border-color:#ffffff5c;background:radial-gradient(circle at 50% 45%,rgba(66,126,158,.32),rgba(4,20,34,.76));box-shadow:0 12px 30px #0007,inset 0 0 0 10px #ffffff06;transition:.14s border-color,.14s box-shadow,.14s transform}
.touchStick.active{border-color:#8ee9ffcc;box-shadow:0 12px 32px #0008,0 0 0 4px #8ee9ff24,inset 0 0 0 10px #ffffff09;transform:scale(1.02)}
.touchStick i{background:radial-gradient(circle at 35% 28%,#ffffffd9,#a8d9ed99);border:1px solid #ffffff9c;box-shadow:0 5px 16px #0006,inset 0 1px #fff}
.touchButtons button{box-shadow:0 8px 22px #0007,inset 0 1px #ffffff2e;transition:.1s transform,.1s filter,.1s border-color}.touchButtons button:active{transform:scale(.94);filter:brightness(1.14);border-color:#fff}
.touchButtons .touchShot{background:linear-gradient(145deg,#ffe573,#ffc934);box-shadow:0 10px 30px #0007,0 0 0 4px #ffd84f22,inset 0 2px #fff8}
.crosshair{width:30px;height:30px;opacity:.58;border:1px solid #ffffff90;border-radius:50%;filter:drop-shadow(0 1px 3px #000a)}
.crosshair:after{content:"";position:absolute;left:50%;top:50%;width:3px;height:3px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 0 7px #8ee9ff}
.crosshair span:first-child{left:14px;top:-4px;width:2px;height:8px;box-shadow:0 30px 0 #fff}.crosshair span:last-child{left:-4px;top:14px;width:8px;height:2px;box-shadow:30px 0 0 #fff}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* 2026-07 address / explore mode */
.modeActionBtn{appearance:none;font:inherit;color:#fff;pointer-events:auto;cursor:pointer;border:1px solid #ffffff48;background:#071a2bea;box-shadow:0 14px 42px #0009,inset 0 1px #ffffff28;transition:.16s transform,.16s filter,.16s border-color,.16s box-shadow}
.modeActionBtn:hover{transform:translateY(-2px);filter:brightness(1.1);border-color:#ffffff8c}.modeActionBtn:active{transform:translateY(2px);filter:brightness(.98)}.modeActionBtn:focus-visible{outline:3px solid #fff;outline-offset:4px}
.addressModePrompt{position:absolute;z-index:24;left:50%;bottom:30px;transform:translateX(-50%);pointer-events:auto}
.addressActionBtn{position:relative;isolation:isolate;display:grid;grid-template-columns:66px minmax(180px,1fr) auto;align-items:center;gap:14px;width:min(430px,calc(100vw - 28px));min-height:92px;padding:11px 16px 11px 12px;overflow:hidden;border-color:#b6ffe8b8;border-radius:25px;background:linear-gradient(135deg,rgba(4,33,48,.97),rgba(6,83,72,.96));box-shadow:0 18px 55px #000a,0 0 0 5px #57efad18,0 0 34px #57efad43,inset 0 1px #ffffff40;animation:addressArrival .34s cubic-bezier(.2,.8,.2,1)}
.addressActionBtn:before{content:'';position:absolute;z-index:-1;inset:-70% 48% -70% -12%;background:radial-gradient(circle,#d8fff050,transparent 65%);animation:addressBeacon 2.4s ease-in-out infinite}
.modeActionIcon{display:grid;place-items:center;width:62px;height:62px;border-radius:19px;background:linear-gradient(145deg,#eafff5,#78f1c6);color:#073748;box-shadow:0 6px 18px #0005,inset 0 1px #fff}.modeActionIcon svg{width:42px;height:42px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.modeActionCopy{display:flex;min-width:0;flex-direction:column;align-items:flex-start;text-align:left}.modeActionCopy small{font-size:9px;line-height:1;letter-spacing:.17em;color:#98f6d5;font-weight:1000}.modeActionCopy b{margin-top:5px;font-size:25px;line-height:1;letter-spacing:.02em}.modeActionCopy em{margin-top:7px;color:#ccebe2;font-size:10px;font-style:normal}
.modeActionKey{padding:7px 9px;border:1px solid #ffffff44;border-radius:9px;background:#ffffff11;color:#eafdf7;font-size:9px;font-weight:1000;letter-spacing:.08em;box-shadow:0 3px 0 #0005}
.exitAddressBtn{position:absolute;z-index:24;left:15px;bottom:16px;display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:218px;min-height:64px;padding:8px 11px 8px 8px;border-radius:18px;background:linear-gradient(145deg,rgba(8,29,47,.97),rgba(3,13,24,.94))}
.exitAddressBtn .modeActionIcon{width:46px;height:46px;border-radius:13px;background:linear-gradient(145deg,#eaf4fb,#95bed8);color:#102f43}.exitAddressBtn .modeActionIcon svg{width:30px;height:30px}.exitAddressBtn .modeActionCopy small{font-size:7px;color:#8edfd4}.exitAddressBtn .modeActionCopy b{font-size:15px}.exitAddressBtn kbd{min-width:auto;padding:4px 6px;font-size:8px}
body:not(.addressMode) .shotPanel{display:none!important}
body.addressMode .returnBallBtn{opacity:.35;pointer-events:none}
body.addressMode .touchStick,body.addressMode #touchInteract{opacity:.18;pointer-events:none;filter:grayscale(1)}
body.exploreMode .touchButtons .touchShot{border-color:#d6f2ff99;background:linear-gradient(145deg,#7edfff,#328bd9);color:#08253a;box-shadow:0 10px 30px #0007,0 0 0 4px #66ceff20,inset 0 2px #fff8}
@keyframes addressArrival{from{opacity:0;transform:translateY(14px) scale(.94)}to{opacity:1;transform:none}}
@keyframes addressBeacon{0%,100%{opacity:.45;transform:scale(.9)}50%{opacity:.9;transform:scale(1.08)}}

/* 2026-07 premium nine-hole scoreboard */
.resultScreen{z-index:72;padding:clamp(8px,2vw,24px);overflow:hidden;background:radial-gradient(circle at 75% 35%,rgba(255,205,70,.17),transparent 34%),radial-gradient(circle at 18% 22%,rgba(77,240,171,.16),transparent 35%),linear-gradient(145deg,rgba(1,8,16,.92),rgba(2,19,29,.96))}
.resultAmbient{position:absolute;inset:-20%;pointer-events:none;background:linear-gradient(115deg,transparent 38%,#ffffff0b 49%,transparent 60%);transform:rotate(-8deg)}
.resultCard{position:relative;width:min(1240px,96vw);height:min(790px,94vh);max-height:94vh;padding:0;display:grid;grid-template-columns:minmax(0,1.48fr) minmax(300px,.72fr);overflow:hidden;border:1px solid #ffffff35;border-radius:32px;text-align:left;background:linear-gradient(145deg,rgba(9,31,47,.98),rgba(2,13,22,.98));box-shadow:0 34px 110px #000c,0 0 0 1px #ffd84f1b,inset 0 1px #ffffff2c}
.resultScoreContent{min-width:0;padding:25px 28px 23px;overflow:auto;scrollbar-width:thin;scrollbar-color:#ffd84f66 transparent}
.resultHeader{position:relative;min-height:92px;padding-right:138px;border-bottom:1px solid #ffffff1b}.resultBadge{display:inline-flex;padding:6px 9px;border:1px solid #8ee9ff3d;border-radius:999px;background:#8ee9ff0c;color:#8ee9ff;font-size:8px;font-weight:1000;letter-spacing:.16em}.resultCard .resultHeader h2{margin:9px 0 13px;line-height:.92}.resultCard .resultHeader h2 span{display:block;color:#fff;font-size:clamp(31px,3.2vw,49px);letter-spacing:-.055em;text-shadow:0 7px 24px #0008}.resultCard .resultHeader h2 small{display:block;margin-top:8px;color:#ffd84f;font-size:9px;letter-spacing:.22em;text-shadow:none}
.resultScoreStamp{position:absolute;right:0;top:0;width:118px;height:88px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:22px 1fr 17px;align-items:center;overflow:hidden;border:1px solid #ffd84f60;border-radius:20px;background:radial-gradient(circle at 50% 42%,#ffd84f25,transparent 65%),#061827cc;box-shadow:inset 0 1px #ffffff24,0 9px 24px #0005;text-align:center}.resultScoreStamp .resultGrade{grid-column:1/-1;margin:0;padding-top:5px;color:#9ff4d6;font-size:10px;letter-spacing:.15em}.resultScoreStamp>b{grid-column:1/-1;color:#ffd84f;font-size:35px;line-height:1}.resultScoreStamp>small{grid-column:1/-1;color:#9ebdce;font-size:7px;letter-spacing:.18em}
.resultSummary{min-height:35px;margin:10px 0 8px;color:#c9e2ee;font-size:11px;line-height:1.55}
.resultStats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:8px 0 10px}.resultStats>div{position:relative;padding:8px 9px;overflow:hidden;border:1px solid #ffffff12;border-radius:11px;background:linear-gradient(145deg,#ffffff0d,#ffffff05)}.resultStats>div:first-child{border-color:#ffd84f35}.resultStats span{display:block;color:#88afc2;font-size:7px;font-weight:900;letter-spacing:.11em}.resultStats b{display:block;margin-top:2px;color:#fff;font-size:18px;font-variant-numeric:tabular-nums}.resultStats>div:nth-child(2) b{color:#ffd84f}
.scoreboardSheet{overflow:hidden;border:1px solid #ffffff1c;border-radius:15px;background:#020d16a8;box-shadow:inset 0 1px #ffffff0d}.scoreboardTitle{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid #ffffff16;background:linear-gradient(90deg,#59eeb514,transparent)}.scoreboardTitle b{color:#fff;font-size:10px;letter-spacing:.15em}.scoreboardTitle span{color:#79d9bf;font-size:8px;font-weight:900}
.scoreboardColumnLabels,.scoreboardRow,.scoreboardTotal{display:grid;grid-template-columns:36px minmax(140px,1fr) 43px 49px 56px 72px;align-items:center;column-gap:4px}.scoreboardColumnLabels{min-height:21px;padding:0 9px;border-bottom:1px solid #ffffff12;color:#698da0;font-size:6px;font-weight:1000;letter-spacing:.09em;text-align:right}.scoreboardColumnLabels span:nth-child(2){text-align:left}
.resultPinBreakdown{display:block;margin:0}.resultPinBreakdown .scoreboardRow{min-height:39px;padding:3px 9px;border-bottom:1px solid #ffffff0d;background:transparent;text-align:right}.resultPinBreakdown .scoreboardRow:last-child{border-bottom:0}.resultPinBreakdown .scoreboardRow:nth-child(even){background:#ffffff04}.scoreboardNo{color:#789aaa;font-size:9px;font-weight:1000;font-variant-numeric:tabular-nums}.scoreboardHole{min-width:0;text-align:left}.scoreboardHole small{display:block;overflow:hidden;color:#69d9ba;font-size:6px;line-height:1;letter-spacing:.06em;text-overflow:ellipsis;white-space:nowrap}.scoreboardHole b{display:block;overflow:hidden;margin-top:3px;color:#eaf6fb;font-size:10px;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.scoreboardRow>span:not(.scoreboardNo),.scoreboardRow>strong,.scoreboardRow>em,.scoreboardRow>i{color:#dcebf2;font-size:10px;font-style:normal;font-weight:900;font-variant-numeric:tabular-nums}.scoreboardRow>em{justify-self:end;min-width:32px;padding:3px 5px;border-radius:6px;text-align:center}.scoreboardRow.under>em{background:#57efad24;color:#7dffc7}.scoreboardRow.over>em{background:#ff8a8a18;color:#ffb1b1}.scoreboardRow.even>em{background:#ffd84f20;color:#ffe378}.scoreboardRow>i{color:#9cb9c8;font-size:8px}
.scoreboardTotal{min-height:39px;padding:3px 9px;border-top:1px solid #ffd84f55;background:linear-gradient(90deg,#ffd84f17,#ffd84f05);text-align:right}.scoreboardTotal>span:first-child{color:#ffd84f}.scoreboardTotal>b{text-align:left;color:#ffd84f;font-size:10px;letter-spacing:.12em}.scoreboardTotal>span,.scoreboardTotal>strong,.scoreboardTotal>em,.scoreboardTotal>i{color:#fff;font-size:11px;font-style:normal;font-weight:1000;font-variant-numeric:tabular-nums}.scoreboardTotal>em{color:#ffd84f;font-size:13px}.scoreboardTotal>i{color:#b9d7e5;font-size:8px}
.resultCard .resultNextBtn{min-width:230px;min-height:48px;margin:13px 0 0 auto;border-radius:13px;font-size:16px;box-shadow:0 7px 0 #8f6d0c,0 12px 28px #0006}
.resultArtPanel{position:relative;min-width:0;height:100%;margin:0;overflow:hidden;background:#061321}.resultArtPanel:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#04101e 0,transparent 22%),linear-gradient(0deg,rgba(2,10,18,.97) 0,transparent 37%),radial-gradient(circle at 50% 62%,transparent 30%,rgba(0,5,11,.28) 100%);pointer-events:none}.resultArtPanel img{width:100%;height:100%;display:block;object-fit:cover;object-position:53% center;filter:saturate(.94) contrast(1.02)}.resultArtPanel figcaption{position:absolute;z-index:2;left:24px;right:22px;bottom:23px;display:flex;flex-direction:column}.resultArtPanel figcaption small{color:#8ee9ff;font-size:7px;font-weight:1000;letter-spacing:.18em}.resultArtPanel figcaption b{margin-top:4px;color:#ffd84f;font-size:20px;letter-spacing:.04em;text-shadow:0 3px 10px #000}.resultArtPanel figcaption span{margin-top:6px;color:#d9ebf2;font-size:9px;line-height:1.45}

@media(max-width:900px){
  .addressModePrompt{bottom:22px}.addressActionBtn{min-height:82px}
  .resultCard{grid-template-columns:minmax(0,1.62fr) minmax(235px,.62fr)}.resultScoreContent{padding:20px}.scoreboardColumnLabels,.scoreboardRow,.scoreboardTotal{grid-template-columns:32px minmax(115px,1fr) 37px 43px 48px 60px}.resultArtPanel figcaption{left:16px;right:14px}
}

@media(max-width:760px){
  .addressModePrompt{bottom:calc(var(--mobile-safe-bottom,12px) + 126px)}.addressActionBtn{grid-template-columns:54px minmax(0,1fr);width:min(380px,calc(100vw - 22px));min-height:74px;padding:9px 12px;border-radius:20px}.addressActionBtn .modeActionIcon{width:52px;height:52px;border-radius:16px}.addressActionBtn .modeActionIcon svg{width:35px;height:35px}.addressActionBtn .modeActionCopy b{font-size:21px}.addressActionBtn .modeActionCopy em{font-size:8px}.addressActionBtn .modeActionKey{display:none}
  .exitAddressBtn{left:12px;bottom:var(--mobile-safe-bottom,12px);min-width:180px;min-height:58px}.exitAddressBtn .modeActionCopy b{font-size:14px}
  body.addressMode .touchStick,body.addressMode #touchInteract{display:none}
  .resultScreen{padding:6px}.resultCard{width:calc(100vw - 12px);height:calc(100svh - 12px);max-height:calc(100svh - 12px);grid-template-columns:1fr;grid-template-rows:136px minmax(0,1fr);border-radius:22px}.resultArtPanel{grid-row:1}.resultScoreContent{grid-row:2;padding:12px 13px 14px}.resultArtPanel img{object-position:center 20%}.resultArtPanel:after{background:linear-gradient(0deg,#04101e 0,transparent 62%),linear-gradient(90deg,rgba(2,8,15,.7),transparent 60%)}.resultArtPanel figcaption{left:14px;bottom:10px}.resultArtPanel figcaption b{font-size:15px}.resultArtPanel figcaption span{display:none}
  .resultHeader{min-height:71px;padding-right:84px}.resultBadge{padding:4px 7px;font-size:6px}.resultCard .resultHeader h2{margin:6px 0 8px}.resultCard .resultHeader h2 span{font-size:27px}.resultCard .resultHeader h2 small{margin-top:4px;font-size:6px}.resultScoreStamp{width:74px;height:64px;border-radius:14px;grid-template-rows:17px 1fr 13px}.resultScoreStamp .resultGrade{font-size:7px}.resultScoreStamp>b{font-size:25px}.resultScoreStamp>small{font-size:5px}
  .resultSummary{min-height:0;margin:7px 0;font-size:8px;line-height:1.4}.resultStats{gap:4px;margin:6px 0}.resultStats>div{padding:5px 6px;border-radius:8px}.resultStats span{font-size:5px}.resultStats b{font-size:13px}
  .scoreboardTitle{padding:6px 7px}.scoreboardTitle b{font-size:8px}.scoreboardTitle span{font-size:6px}.scoreboardColumnLabels,.scoreboardRow,.scoreboardTotal{grid-template-columns:27px minmax(92px,1fr) 28px 34px 39px 49px;column-gap:2px}.scoreboardColumnLabels{min-height:17px;padding:0 5px;font-size:5px}.resultPinBreakdown .scoreboardRow{min-height:32px;padding:2px 5px}.scoreboardNo{font-size:7px}.scoreboardHole small{font-size:5px}.scoreboardHole b{font-size:8px}.scoreboardRow>span:not(.scoreboardNo),.scoreboardRow>strong,.scoreboardRow>em{font-size:8px}.scoreboardRow>em{min-width:25px;padding:2px 3px}.scoreboardRow>i{font-size:6px}.scoreboardTotal{min-height:31px;padding:2px 5px}.scoreboardTotal>b{font-size:8px}.scoreboardTotal>span,.scoreboardTotal>strong,.scoreboardTotal>em{font-size:9px}.scoreboardTotal>i{font-size:6px}
  .resultCard .resultNextBtn{width:100%;min-width:0;min-height:42px;margin-top:8px;font-size:13px}
}

@media(max-height:620px) and (pointer:coarse){
  .addressModePrompt{bottom:calc(var(--mobile-safe-bottom,8px) + 76px)}.addressActionBtn{min-height:58px}.addressActionBtn .modeActionIcon{width:43px;height:43px}.addressActionBtn .modeActionCopy b{font-size:17px}.addressActionBtn .modeActionCopy em{display:none}
  .exitAddressBtn{min-height:50px}.resultCard{height:calc(100svh - 8px);max-height:calc(100svh - 8px);grid-template-rows:92px minmax(0,1fr)}.resultArtPanel figcaption{bottom:7px}.resultSummary{display:none}.resultScoreContent{padding:8px 11px}.resultHeader{min-height:58px}.resultStats{margin:4px 0}.resultPinBreakdown .scoreboardRow{min-height:27px}.scoreboardTotal{min-height:27px}.resultCard .resultNextBtn{min-height:36px;margin-top:5px}
}

/* 2026-07 set contracts / cross-course progression */
.contractScoreRow{margin:2px -4px -3px;padding:8px 4px 5px!important;border-top:1px solid #ffd84f3d!important;border-bottom:0!important}.contractScoreRow span{color:#ffe58b!important}.contractScoreRow b{color:#72f2c0;font-size:13px!important;letter-spacing:.06em}
.contractPaneTitle{margin-top:10px}.tourContractProgress{display:flex;flex-direction:column;gap:6px;margin:0 0 10px}.tourContractCard{display:grid;grid-template-columns:30px minmax(0,1fr) 36px;align-items:center;gap:8px;padding:8px 9px;border:1px solid #ffffff16;border-radius:11px;background:linear-gradient(145deg,#ffffff09,#ffffff04)}.tourContractCard>i{display:grid;place-items:center;width:28px;height:28px;border:1px solid #8ee9ff42;border-radius:9px;background:#8ee9ff0d;color:#8ee9ff;font-style:normal;font-size:15px;font-weight:1000}.tourContractCard>div{min-width:0}.tourContractCard small{display:block;color:#ffd84f;font-size:6px;font-weight:1000;letter-spacing:.1em}.tourContractCard b{display:block;margin-top:2px;color:#fff;font-size:10px}.tourContractCard span{display:block;margin-top:2px;overflow:hidden;color:#9fc1d2;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.tourContractCard em{display:block;height:3px;margin-top:5px;overflow:hidden;border-radius:99px;background:#ffffff12}.tourContractCard em u{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#56eebb,#8ee9ff);box-shadow:0 0 8px #55eebb66}.tourContractCard>strong{color:#b9d7e5;font-size:10px;font-variant-numeric:tabular-nums;text-align:right}.tourContractCard.done{border-color:#ffd84f58;background:linear-gradient(145deg,#ffd84f16,#56eebb09)}.tourContractCard.done>i{border-color:#ffd84f77;background:#ffd84f;color:#173146}.tourContractCard.done>strong{color:#72f2c0}
.resultContracts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:7px 0 8px}.resultContracts .tourContractCard{grid-template-columns:25px minmax(0,1fr) 28px;gap:5px;min-height:40px;padding:5px 6px}.resultContracts .tourContractCard>i{width:23px;height:23px;border-radius:7px;font-size:12px}.resultContracts .tourContractCard small{font-size:5px}.resultContracts .tourContractCard b{font-size:8px}.resultContracts .tourContractCard span,.resultContracts .tourContractCard em{display:none}.resultContracts .tourContractCard>strong{font-size:8px}
@media(max-width:900px){.returnBallBtn{top:307px}.tourContractProgress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.tourContractCard{grid-template-columns:28px minmax(0,1fr) 30px}.tourContractCard span{white-space:normal}}
@media(max-width:620px){.returnBallBtn{top:258px}.tourContractProgress{grid-template-columns:1fr}.resultContracts{gap:3px;margin:4px 0}.resultContracts .tourContractCard{grid-template-columns:20px minmax(0,1fr);min-height:31px;padding:3px 4px}.resultContracts .tourContractCard>i{width:18px;height:18px;font-size:9px}.resultContracts .tourContractCard small{display:none}.resultContracts .tourContractCard b{font-size:6px}.resultContracts .tourContractCard>strong{display:none}}
@media(max-height:620px) and (pointer:coarse){.scorePanel{display:none}.returnBallBtn{top:calc(var(--mobile-safe-top,8px) + 112px)}.resultContracts{display:none}}
/* Imagegen title art + code-native course buttons */
.srOnly{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
#titleScreen.courseSelectScreen{background:#061329}
.courseSelectStage{position:absolute;left:50%;top:50%;width:min(100vw,calc(100vh * 1.77848775));aspect-ratio:1670/939;transform:translate(-50%,-50%);overflow:visible;filter:drop-shadow(0 28px 60px rgba(0,0,0,.52))}
.courseSelectArt{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:contain;user-select:none;-webkit-user-drag:none}
.courseHotspot{position:absolute;z-index:3;top:76.7%;width:21.5%;height:9.2%;display:flex;align-items:center;justify-content:center;gap:clamp(5px,.7vw,13px);border:0;border-radius:clamp(9px,1.2vw,19px);background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(0,0,0,.055));color:#fff7d2;font-family:inherit;font-size:clamp(10px,1.18vw,20px);font-weight:1000;letter-spacing:.04em;text-shadow:0 2px 4px #000,0 0 18px currentColor;cursor:pointer;transition:filter .18s,transform .18s,box-shadow .18s,background .18s;isolation:isolate}
.courseHotspot.cityCourse{left:10.2%;color:#e9f7ff}.courseHotspot.sunsetCourse{left:68.55%;color:#fff1cf}
.courseHotspot em{font-style:normal;font-size:1.08em;transform:translateX(0);transition:transform .18s}
.courseHotspot:hover,.courseHotspot:focus-visible{outline:2px solid #ffe59a;outline-offset:3px;filter:brightness(1.22);transform:translateY(-2px);box-shadow:0 0 28px rgba(255,219,120,.55),inset 0 0 18px rgba(255,255,255,.13)}
.courseHotspot:hover em,.courseHotspot:focus-visible em{transform:translateX(4px)}
.courseHotspot:active{transform:translateY(2px)}
.courseHotspot:disabled{cursor:wait;filter:saturate(.35) brightness(.72);opacity:.7}
.courseHotspot.isCurrent:after{content:'';position:absolute;inset:-5px;border:1px solid rgba(255,234,165,.72);border-radius:inherit;box-shadow:0 0 20px rgba(255,218,113,.38);pointer-events:none}
.titleHelpButton{position:absolute;z-index:4;right:1.65%;top:1.8%;width:clamp(34px,3.1vw,52px);height:clamp(34px,3.1vw,52px);border:1px solid rgba(255,224,139,.72);border-radius:50%;background:rgba(4,20,45,.86);color:#ffe49b;font-size:clamp(18px,1.5vw,26px);font-weight:1000;box-shadow:0 8px 28px rgba(0,0,0,.42);cursor:pointer}
.titleHelpButton:hover,.titleHelpButton:focus-visible{outline:2px solid #fff;outline-offset:2px;filter:brightness(1.2)}
.titleLoadDock{position:absolute;z-index:4;left:36%;bottom:1.45%;width:28%;padding:7px 12px 8px;border:1px solid rgba(255,223,135,.34);border-radius:12px;background:rgba(3,16,36,.82);box-shadow:0 7px 24px rgba(0,0,0,.38);backdrop-filter:blur(10px);pointer-events:none;transition:opacity .45s,transform .45s}
.titleLoadDock.ready{opacity:.26;transform:translateY(5px)}
.titleLoadDock .loadLine{height:5px;margin-top:0;border-radius:99px;background:#ffffff1f;overflow:hidden}
.titleLoadDock .loadLine div{height:100%;width:0;background:linear-gradient(90deg,#5ed7ff,var(--yellow),#ff9e67);border-radius:inherit;transition:width .25s}
.titleLoadDock .loadMeta{display:flex;justify-content:space-between;gap:12px;margin-top:5px;font-size:clamp(7px,.67vw,11px);color:#c9e6f6}
.titleLoadDock .loadMeta>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.titleLoadDock .loadNumbers{display:flex;align-items:baseline;gap:6px;white-space:nowrap}
.titleLoadDock .loadNumbers b{font-size:1.05em;color:#fff}.titleLoadDock .loadNumbers i{font-style:normal;color:#ffd84f}
.mapHeaderActions{display:flex;align-items:center;gap:8px}.mapHeader .courseSelectReturn{width:auto;height:36px;padding:0 14px;border:1px solid #ffd98266;border-radius:10px;background:linear-gradient(145deg,#294465,#17253b);color:#ffe6aa;font:900 10px/1 inherit;letter-spacing:.08em;box-shadow:inset 0 1px #ffffff26;cursor:pointer}.mapHeader .courseSelectReturn:hover,.mapHeader .courseSelectReturn:focus-visible{outline:2px solid #fff;outline-offset:2px;filter:brightness(1.16)}
body.courseSunset .scorePanel>div:nth-child(5),body.courseSunset .scorePanel>div:nth-child(6){display:none}
body.courseSunset .questLog,body.courseSunset #resetQuestProgress{display:none!important}
body.courseSunset .mapStatusBar>div:nth-child(3),body.courseSunset .mapStatusBar>div:nth-child(4){opacity:.58}
body.courseSunset .miniMapFrame{border-color:#ffc47a55;box-shadow:0 12px 42px #230b153d,inset 0 1px #fff2}
body.courseSunset .shotPanel{border-color:#ffc47a44;background:linear-gradient(145deg,rgba(22,28,43,.95),rgba(22,49,55,.94))}
@media(max-aspect-ratio:4/5){
  #titleScreen.courseSelectScreen{overflow:auto;background:linear-gradient(180deg,#061329,#160d19)}
  .courseSelectStage{top:4vh;transform:translateX(-50%);width:100vw}
  .courseHotspot{top:105%;width:42%;height:50px;min-height:50px;border:2px solid #d7b263;background:linear-gradient(180deg,#173a66,#09172c);font-size:12px}
  .courseHotspot.cityCourse{left:6%}.courseHotspot.sunsetCourse{left:52%;background:linear-gradient(180deg,#712b24,#2a1116)}
  .titleLoadDock{left:8%;bottom:auto;top:134%;width:84%;box-sizing:border-box}
  .titleHelpButton{position:fixed;right:12px;top:12px}
}

/* 2026-07 address aiming: club-number selector and trajectory-grid legend */
.clubRow{justify-content:flex-start;gap:7px;min-height:38px}
.clubModeLabel{flex:0 0 72px;font-weight:1000}
.clubSelector{display:grid;grid-template-columns:34px minmax(120px,1fr) 34px;align-items:center;gap:5px;flex:0 1 250px;height:34px;padding:2px;border:1px solid #8ee9ff4a;border-radius:11px;background:linear-gradient(180deg,#14364cdb,#061724e8);box-shadow:inset 0 1px #ffffff1d;pointer-events:auto}
.clubSelector button{appearance:none;display:grid;place-items:center;width:34px;height:30px;padding:0;border:1px solid #ffffff32;border-radius:8px;background:linear-gradient(180deg,#24536ee8,#0a2435e8);color:#dff7ff;box-shadow:0 2px 0 #0008,inset 0 1px #ffffff24;cursor:pointer;touch-action:manipulation;transition:.1s transform,.1s filter,.1s border-color}
.clubSelector button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
.clubSelector button:hover:not(:disabled){filter:brightness(1.18);border-color:#8ee9ff9e}.clubSelector button:active:not(:disabled){transform:translateY(2px);box-shadow:none}.clubSelector button:focus-visible,.clubAutoBtn:focus-visible{outline:2px solid #fff;outline-offset:2px}.clubSelector button:disabled{opacity:.25;cursor:not-allowed;box-shadow:none}
.clubReadout{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0}
.clubReadout strong{flex:0 0 auto;padding:4px 6px;border:1px solid #9ceeff66;border-radius:6px;background:#8ee9ff14;color:#9ceeff;font-size:10px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:.04em}
.clubReadout b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:1}
.clubAutoBtn{appearance:none;height:29px;padding:0 9px;border:1px solid #ffffff29;border-radius:9px;background:#ffffff0b;color:#93afbd;font:1000 8px/1 inherit;letter-spacing:.1em;cursor:pointer;pointer-events:auto;transition:.12s filter,.12s border-color,.12s color,.12s background}
.clubAutoBtn:hover:not(:disabled){filter:brightness(1.2)}.clubAutoBtn.selected{border-color:#61efb181;background:#39d99f1c;color:#79f5c4;box-shadow:0 0 14px #43e8ad22,inset 0 1px #ffffff20}.clubAutoBtn:disabled{cursor:not-allowed;opacity:.5}
.clubRow>i{margin-left:auto;white-space:nowrap}
.shotMemory{display:flex;align-items:center;gap:5px;min-width:0;max-width:188px;height:24px;padding:0 7px;border:1px solid #cbb3ff42;border-radius:8px;background:#a978ff12;color:#e8dcff;box-shadow:inset 0 1px #ffffff17}
.shotMemoryLine{display:block;flex:0 0 18px;width:18px;height:2px;background:repeating-linear-gradient(90deg,#cbb3ff 0 4px,transparent 4px 7px);filter:drop-shadow(0 0 3px #a978ff)}
.shotMemory b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e8dcff!important;font-size:7px!important;font-variant-numeric:tabular-nums;letter-spacing:.045em}
.shotMemory[data-outcome="water"]{border-color:#73d9ff66;color:#9ee8ff}.shotMemory[data-outcome="hole"]{border-color:#ffd84f77;background:#ffd84f14}
.fullCarry{color:#ff8c94!important;letter-spacing:.08em}.fullCarry strong{color:#ff5965!important}
.trajectoryLegend{display:grid;grid-template-columns:minmax(180px,1fr) auto;align-items:center;gap:10px;height:38px;margin-top:4px;padding:1px 7px;border:1px solid #ffffff12;border-radius:9px;background:linear-gradient(180deg,#06172599,#0a263366);color:#9fc4d5;font-size:6px;font-weight:1000;letter-spacing:.1em}
.trajectoryMiniGuide{display:block;width:100%;height:34px;overflow:visible}
.trajectoryMiniGrid path{fill:none;stroke:#ffffff17;stroke-width:.65;vector-effect:non-scaling-stroke}
.trajectoryMiniArc{fill:none;stroke-width:1.45;stroke-linecap:round;stroke-dasharray:3 2;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 2px currentColor)}
.trajectoryMiniArc.step20{stroke:#69d9ff}.trajectoryMiniArc.step40{stroke:#68edcf}.trajectoryMiniArc.step60{stroke:#c5f277}.trajectoryMiniArc.step80{stroke:#ffd55d}.trajectoryMiniArc.step100{stroke:#ffa0a8;stroke-width:1.8}
.fullLandingMini{fill:#ff4455;stroke:#fff;stroke-width:1.1;filter:drop-shadow(0 0 3px #ff4455)}.fullLandingMiniPointer{fill:#ff4455;stroke:#ffffffcc;stroke-width:.7;filter:drop-shadow(0 0 3px #ff4455)}
.trajectoryLegendCopy{display:flex;align-items:center;gap:10px}.trajectoryLegendCopy span{display:flex;align-items:center;gap:5px;white-space:nowrap}.trajectoryLegendCopy i{display:block;width:14px;height:2px;border-radius:9px;background:linear-gradient(90deg,#69d9ff,#ffd55d);box-shadow:0 0 7px #75e7ff}.trajectoryLegendCopy .fullLanding{width:7px;height:7px;border:2px solid #ff4455;border-radius:50%;background:#ff445533;box-shadow:0 0 8px #ff4455}
.fullSurfaceChip b{color:#f3f8fb;font-size:6px;letter-spacing:.08em}.fullSurfaceChip[data-tone="green"] b{color:#85f8bd}.fullSurfaceChip[data-tone="water"] b{color:#8ee9ff}.fullSurfaceChip[data-tone="sand"] b{color:#ffd486}.fullSurfaceChip[data-tone="roof"] b{color:#b9dfff}.fullSurfaceChip[data-tone="hard"] b{color:#ffb27e}.fullSurfaceChip[data-tone="sky"] b{color:#dfc4ff}
.landingGuideRow{display:grid;grid-template-columns:minmax(0,1fr) 172px;align-items:stretch;gap:6px;margin-top:4px}.landingGuideRow .trajectoryLegend{margin-top:0}
.landingViewBtn{appearance:none;display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;height:38px;padding:0 10px;border:1px solid #ff778166;border-radius:9px;background:linear-gradient(180deg,rgba(67,22,35,.93),rgba(27,12,25,.94));color:#ffd9dc;box-shadow:0 3px 0 #020a11aa,inset 0 1px #ffffff1e;cursor:pointer;font:inherit;touch-action:manipulation;transition:.14s transform,.14s filter,.14s background,.14s border-color}
.landingViewBtn svg{width:24px;height:21px;flex:0 0 24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px #ff647466)}.landingViewBtn span{display:flex;min-width:0;flex-direction:column;align-items:flex-start}.landingViewBtn b{font-size:9px;line-height:1;white-space:nowrap}.landingViewBtn small{margin-top:4px;color:#ffabb1;font-size:5px;font-weight:900;letter-spacing:.04em;white-space:nowrap}.landingViewBtn:hover:not(:disabled){filter:brightness(1.14)}.landingViewBtn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 #020a11aa}.landingViewBtn:focus-visible{outline:2px solid #fff;outline-offset:2px}.landingViewBtn:disabled{cursor:not-allowed;opacity:.35;filter:saturate(.35)}
.landingViewBtn.active{border-color:#79f0d6;background:linear-gradient(180deg,rgba(20,96,84,.97),rgba(5,42,43,.96));color:#dffdf5;box-shadow:0 3px 0 #020a11aa,0 0 0 2px #70efd426,inset 0 1px #ffffff32}.landingViewBtn.active small{color:#9cf4df}.landingViewBtn.active svg{filter:drop-shadow(0 0 5px #70efd488)}
.fullLandingHud{position:absolute;left:0;top:0;z-index:31;display:flex;align-items:center;gap:7px;min-width:116px;min-height:42px;padding:6px 9px 6px 7px;transform:translate3d(-200px,-200px,0) translate(-50%,-50%);will-change:transform;border:1px solid #ff6e7888;border-radius:12px;background:linear-gradient(145deg,rgba(63,8,18,.94),rgba(13,17,29,.93));box-shadow:0 10px 28px #0009,0 0 16px #ff445533;pointer-events:none}
.fullLandingHud svg{flex:0 0 25px;width:25px;height:20px;fill:none;stroke:#ff6974;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px #ff4455)}
.fullLandingHud>div{display:flex;flex-direction:column;min-width:0}.fullLandingHud small{color:#ff9fa7;font-size:6px;font-weight:1000;letter-spacing:.13em}.fullLandingHud b{margin-top:2px;color:#fff;font-size:10px;white-space:nowrap}.fullLandingHud b i{color:#ff6974;font-style:normal;font-variant-numeric:tabular-nums}.fullLandingHud b span{color:#dcebf2;font-size:8px}
.fullLandingHud[data-tone="water"]{border-color:#65d9ff88;box-shadow:0 10px 28px #0009,0 0 16px #65d9ff2b}.fullLandingHud[data-tone="water"] b span{color:#8ee9ff}.fullLandingHud[data-tone="green"] b span{color:#7bf7b7}.fullLandingHud[data-tone="sand"] b span{color:#ffd486}
.interactionPrompt{bottom:204px}

@media(max-width:620px){
  .clubRow{min-height:30px;gap:4px}.clubSelector{grid-template-columns:30px minmax(86px,1fr) 30px;gap:3px;flex-basis:190px;height:30px}.clubSelector button{width:30px;height:26px;border-radius:7px}.clubSelector button svg{width:15px;height:15px}
  .clubReadout{gap:4px}.clubReadout strong{padding:3px 4px;font-size:7px}.clubReadout b{font-size:10px}.clubAutoBtn{height:26px;padding:0 6px;font-size:6px}.clubRow>i{font-size:6px;padding:3px 4px}
  .shotMemory{max-width:84px;height:22px;padding:0 4px;gap:3px}.shotMemoryLine{flex-basis:10px;width:10px}.shotMemory b{font-size:5px!important}
  .fullCarry{font-size:5px!important}.landingGuideRow{grid-template-columns:minmax(0,1fr) 116px;gap:4px;margin-top:2px}.trajectoryLegend{grid-template-columns:minmax(0,1fr) auto;height:29px;margin-top:0;padding:0 4px;gap:5px;font-size:5px}.trajectoryMiniGuide{height:27px}.trajectoryLegendCopy{gap:5px}.trajectoryLegendCopy i{width:8px}.trajectoryLegendCopy .fullLanding{width:5px;height:5px}
  .landingViewBtn{height:29px;padding:0 5px;gap:4px;border-radius:7px}.landingViewBtn svg{width:18px;height:17px;flex-basis:18px}.landingViewBtn b{font-size:7px}.landingViewBtn small{margin-top:2px;font-size:4px}
  .fullSurfaceChip b{font-size:5px}.fullLandingHud{min-width:94px;min-height:36px;padding:5px 7px}.fullLandingHud svg{flex-basis:21px;width:21px}.fullLandingHud small{font-size:5px}.fullLandingHud b{font-size:8px}.fullLandingHud b span{font-size:6px}
  .interactionPrompt{bottom:212px}
}

@media(pointer:coarse) and (max-width:760px){
  .clubSelector{grid-template-columns:34px minmax(86px,1fr) 34px;flex-basis:198px;height:34px}.clubSelector button{width:34px;height:30px}
  .aimControlPad button{width:36px;height:32px}.loftControlPad{grid-template-columns:32px minmax(58px,1fr) 32px}.loftControlPad button{width:32px;height:32px}
  .aimTargetBtn{min-height:32px}
  .interactionPrompt{bottom:calc(var(--mobile-safe-bottom) + 322px)}
}

@media(max-height:540px) and (pointer:coarse){
  .landingGuideRow{grid-template-columns:1fr}.trajectoryLegend,.fullCarry{display:none}.landingViewBtn{height:23px}.clubRow{min-height:27px}.clubSelector{height:27px}.clubSelector button{height:23px}.clubAutoBtn{height:23px}
  .interactionPrompt{bottom:calc(var(--mobile-safe-bottom) + 112px)}
}
/* quest portrait + equipment illustration polish v2 */
.gearSlot{min-height:160px;padding:13px}
.gearIcon,.itemIcon{position:relative;isolation:isolate;overflow:hidden;flex:0 0 auto;background:linear-gradient(145deg,#142d43,#071622);border:1px solid #8ee9ff2c;box-shadow:inset 0 1px #ffffff1c,0 5px 14px #0005}
.gearIcon{width:48px;height:48px;border-radius:13px}
.itemIcon{width:54px;height:54px;border-radius:14px}
.gearIcon img,.itemIcon img{position:absolute;z-index:1;inset:0;width:100%;height:100%;display:block;object-fit:cover;image-rendering:auto}
.gearIcon .artFallback,.itemIcon .artFallback{position:relative;z-index:0;display:grid;place-items:center;width:100%;height:100%;font-size:24px;opacity:1}
.gearIcon.hasArt .artFallback,.itemIcon.hasArt .artFallback{opacity:0}
.gearIcon.artMissing .artFallback,.itemIcon.artMissing .artFallback{z-index:2;opacity:1}
.itemCard{min-height:122px;grid-template-columns:58px minmax(0,1fr);column-gap:11px;padding:11px}
.itemCard .itemIcon{grid-row:1/4}
.itemCard.active .itemIcon{border-color:#58f0ad80;box-shadow:0 0 0 1px #58f0ad2f,0 7px 18px #001c155c}
.itemCard b{font-size:12px}.itemCard>span:last-child{line-height:1.45}
.questLogCard{grid-template-columns:54px minmax(0,1fr);grid-template-rows:auto auto auto auto;column-gap:11px;min-height:76px;padding:9px 11px}
.questLogPortrait{position:relative;grid-row:1/5;align-self:center;display:grid;place-items:center;width:48px;height:48px;overflow:visible;border-radius:15px;background:linear-gradient(145deg,#17364a,#081824);border:1px solid #ffffff2c;box-shadow:0 7px 18px #0005}
.questLogPortrait img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;border-radius:14px;image-rendering:auto}
.questLogPortrait .artFallback{display:grid;place-items:center;width:100%;height:100%;font-size:22px}
.questLogPortrait.hasArt .artFallback{opacity:0}.questLogPortrait.artMissing .artFallback{opacity:1}
.questLogPortrait>i{position:absolute;z-index:2;right:-5px;bottom:-5px;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#ffd84f;color:#102536;border:2px solid #071724;font-size:10px;font-style:normal;font-weight:1000;box-shadow:0 3px 8px #0008}
.questLogCard.active .questLogPortrait{border-color:#b99aff;box-shadow:0 0 0 2px #a978ff25,0 7px 18px #0005}.questLogCard.active .questLogPortrait>i{background:#a978ff;color:#fff}
.questLogCard.done .questLogPortrait{border-color:#58f0ad99}.questLogCard.done .questLogPortrait>i{background:#58f0ad;color:#09271c}
.questLogCard.locked .questLogPortrait>i{background:#6f7f89;color:#d9e6ed}
.questLogRoute{display:block;margin-top:2px;color:#7fa9be;font-size:7px;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dialogCard::after{opacity:0;animation:none}
.dialogOverlay.show .dialogCard::after{animation:dialogGlintOnce .92s .18s ease-out both}
@keyframes dialogGlintOnce{0%{transform:translateX(-180%) rotate(18deg);opacity:0}22%{opacity:.55}100%{transform:translateX(670%) rotate(18deg);opacity:0}}
.dialogPortrait{background:radial-gradient(circle at 35% 25%,#fff6,#ffffff0b),linear-gradient(145deg,var(--dialog-accent),#213f57);box-shadow:0 16px 38px #0009,0 0 0 1px #ffffff24 inset,0 0 30px rgba(var(--dialog-accent-rgb),.2)}
.dialogPortrait img{object-position:center center;image-rendering:auto}
.dialogItem{min-height:72px;background:linear-gradient(100deg,rgba(var(--dialog-accent-rgb),.16),#ffffff08 58%,rgba(var(--dialog-accent-rgb),.05));box-shadow:0 0 0 1px #ffffff08 inset,0 8px 24px #0003}
.dialogItemArt{background:linear-gradient(145deg,#112c42,#06131f);box-shadow:inset 0 1px #ffffff20,0 6px 16px #0005}
.dialogItemArt img{image-rendering:auto}.dialogBody h2{letter-spacing:.01em}.dialogBody>p{text-wrap:pretty}
@media(min-width:901px){.dialogCard{width:min(900px,94vw);grid-template-columns:134px minmax(0,1fr);gap:22px;padding:24px 26px}.dialogPortrait{width:124px;height:124px;border-radius:30px}.dialogPortrait::after{border-radius:24px}}
@media(min-width:621px){.dialogItemArt{width:64px;height:64px;border-radius:15px}}
@media(max-width:620px){.gearSlot{grid-template-columns:52px minmax(0,1fr)}.itemCard{grid-template-columns:58px minmax(0,1fr)}.questLogCard{grid-template-columns:50px minmax(0,1fr);padding:9px}.questLogPortrait{width:44px;height:44px}.dialogOverlay.show .dialogCard::after{animation-duration:.72s}}
@media(prefers-reduced-motion:reduce){.dialogOverlay.show .dialogCard::after{animation:none}}

/* Imagegen hole passport + 18-hole scenic atlas */
body.courseCity{--hole-atlas-image:url("assets/images/ui/hole-art-v1/mega-city-holes-atlas-v1.jpg")}
body.courseSunset{--hole-atlas-image:url("assets/images/ui/hole-art-v1/sunset-bay-holes-atlas-v1.jpg")}
.holeArt{--hole-x:1.5%;--hole-y:1.5%;display:block;overflow:hidden;background-color:#0c2133;background-image:var(--hole-atlas-image);background-repeat:no-repeat;background-size:313% 313%;background-position:var(--hole-x) var(--hole-y)}
.holeArt[data-hole="1"]{--hole-x:50%;--hole-y:1.5%}.holeArt[data-hole="2"]{--hole-x:98.5%;--hole-y:1.5%}
.holeArt[data-hole="3"]{--hole-x:1.5%;--hole-y:50%}.holeArt[data-hole="4"]{--hole-x:50%;--hole-y:50%}.holeArt[data-hole="5"]{--hole-x:98.5%;--hole-y:50%}
.holeArt[data-hole="6"]{--hole-x:1.5%;--hole-y:98.5%}.holeArt[data-hole="7"]{--hole-x:50%;--hole-y:98.5%}.holeArt[data-hole="8"]{--hole-x:98.5%;--hole-y:98.5%}
.pinGuideArt{width:48px;height:48px;flex:0 0 48px;border:1px solid #bfeaff55;border-radius:11px;box-shadow:inset 0 0 0 1px #ffffff12,0 5px 18px #0007}
.pinGuideHud{min-width:258px}

.shotBanner{left:50%;top:33%;width:min(660px,calc(100vw - 34px));padding:0;overflow:hidden;border:1px solid #91e5ff75;border-radius:19px;background:linear-gradient(145deg,rgba(6,23,39,.97),rgba(2,10,20,.96));box-shadow:0 24px 70px #000a,0 0 0 1px #ffffff12,inset 0 1px #ffffff24;transform:translate(-50%,-50%) scale(1);font-size:initial;font-weight:initial;letter-spacing:normal;text-shadow:none;white-space:normal;opacity:0;transition:none;will-change:auto}
.shotBanner.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.shotBanner.holeArrival{display:grid;grid-template-columns:148px minmax(0,1fr);padding:10px}
.shotBannerArt{width:148px;height:148px;border:1px solid #c8f0ff70;border-radius:13px;box-shadow:inset 0 0 0 1px #ffffff18}
.holeArrivalCopy{min-width:0;padding:7px 13px 6px 17px;display:flex;flex-direction:column;justify-content:center}
.holeArrivalCopy>small{color:#8ee9ff;font-size:8px;font-weight:1000;letter-spacing:.17em}
.holeArrivalTitle{display:flex;align-items:baseline;gap:13px;min-width:0;margin-top:7px}.holeArrivalTitle b{flex:0 0 auto;color:#ffd675;font-size:22px;line-height:1;letter-spacing:.03em}.holeArrivalTitle strong{min-width:0;overflow:hidden;color:#fff;font-size:29px;line-height:1;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.025em}
.holeArrivalJa{margin-top:6px;color:#cde3ed;font-size:11px}.holeArrivalMeta{display:flex;gap:6px;margin-top:10px}.holeArrivalMeta em{padding:4px 9px;border:1px solid #ffffff22;border-radius:7px;background:#ffffff0c;color:#f2f9fc;font-size:9px;font-style:normal;font-weight:1000;letter-spacing:.08em}.holeArrivalMeta em:first-child{border-color:#ffd84f55;color:#ffe38a}
.holeArrivalProgress{display:grid;grid-template-columns:repeat(9,1fr);gap:5px;margin-top:11px}.holeArrivalProgress i{height:3px;border-radius:99px;background:#ffffff1b}.holeArrivalProgress i.done{background:#5ce6b0}.holeArrivalProgress i.active{background:#ffd84f;box-shadow:0 0 9px #ffd84f}
.shotBanner.eventBanner{width:auto;min-width:250px;display:flex;align-items:baseline;justify-content:center;gap:10px;padding:15px 24px;border-radius:15px}.shotBanner.eventBanner b{color:#fff;font-size:clamp(32px,5vw,58px);line-height:.95;letter-spacing:-.04em}.shotBanner.eventBanner span{color:#ffd84f;font-size:12px;font-weight:1000;letter-spacing:.14em;text-transform:uppercase}

.tourPinProgress article.tourHoleCard{display:grid;grid-template-columns:56px minmax(0,1fr);gap:8px;min-height:70px;padding:6px;overflow:hidden}.tourHoleArt{width:56px;height:56px;margin:0!important;align-self:center;border:1px solid #ffffff2d;border-radius:10px;box-shadow:inset 0 0 0 1px #ffffff12}.tourPinProgress article.active .tourHoleArt{border-color:#75f5c1;box-shadow:0 0 14px #52ffc244}.tourPinProgress article.done .tourHoleArt{filter:saturate(.72) brightness(.8)}.tourHoleMeta{min-width:0;align-self:center}.tourHoleMeta small,.tourHoleMeta b,.tourHoleMeta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.mapHoleGallery{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:5px;padding:9px 4px 0;flex:0 0 auto}.mapHoleTile{min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr);gap:6px;align-items:center;padding:4px;border:1px solid #ffffff13;border-radius:10px;background:#ffffff08}.mapHoleTile.active{border-color:#ffd84f8a;background:linear-gradient(145deg,#ffd84f18,#ffffff08);box-shadow:0 0 14px #ffd84f18}.mapHoleTile.done{border-color:#5ce6b044}.mapHoleArt{width:38px;height:38px;border-radius:7px}.mapHoleTile>div{min-width:0}.mapHoleTile small,.mapHoleTile b,.mapHoleTile span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mapHoleTile small{color:#8ee9ff;font-size:5px;font-weight:1000;letter-spacing:.1em}.mapHoleTile b{margin-top:2px;color:#edf8fc;font-size:7px}.mapHoleTile span{margin-top:2px;color:#8faebe;font-size:5px}.mapHoleTile.active span{color:#ffe17d}

.scoreboardHole{display:grid;grid-template-columns:30px minmax(0,1fr);gap:6px;align-items:center}.scoreboardHoleArt{width:30px;height:30px;border:1px solid #ffffff25;border-radius:7px}.scoreboardHoleCopy{min-width:0;display:block}

@media(max-width:900px){.pinGuideArt{display:none}.pinGuideHud{min-width:150px}.mapHoleGallery{overflow-x:auto;grid-template-columns:repeat(9,90px);padding-bottom:3px;scrollbar-width:thin}}
@media(max-width:620px){
  .shotBanner{top:39%;width:calc(100vw - 16px);border-radius:15px}.shotBanner.holeArrival{grid-template-columns:78px minmax(0,1fr);padding:7px}.shotBannerArt{width:78px;height:78px;border-radius:10px}.holeArrivalCopy{padding:3px 6px 3px 10px}.holeArrivalCopy>small{font-size:5px}.holeArrivalTitle{gap:7px;margin-top:4px}.holeArrivalTitle b{font-size:13px}.holeArrivalTitle strong{font-size:17px}.holeArrivalJa{margin-top:3px;font-size:7px}.holeArrivalMeta{margin-top:5px}.holeArrivalMeta em{padding:2px 5px;font-size:6px}.holeArrivalProgress{gap:3px;margin-top:6px}.holeArrivalProgress i{height:2px}.shotBanner.eventBanner{min-width:190px;padding:11px 16px}.shotBanner.eventBanner b{font-size:30px}.shotBanner.eventBanner span{font-size:8px}
  .mapHoleGallery{grid-template-columns:repeat(9,82px);gap:4px;padding:6px 1px 0}.mapHoleTile{grid-template-columns:30px minmax(0,1fr);gap:4px;padding:3px}.mapHoleArt{width:30px;height:30px}.mapHoleTile b{font-size:6px}
  .scoreboardHole{grid-template-columns:22px minmax(0,1fr);gap:4px}.scoreboardHoleArt{width:22px;height:22px;border-radius:5px}
}
@media(prefers-reduced-motion:reduce){.shotBanner{transition:opacity .01s;will-change:auto}}

/* 2026-07 objective marker clarity pass */
.pinCompass{position:relative;isolation:isolate;border:1px solid #b9ffeabb;background:radial-gradient(circle at 50% 50%,#dffff4 0 9%,#52ffc2 10% 38%,#143c42 40% 56%,#071b29 58% 100%);box-shadow:0 8px 22px #0007,0 0 0 3px #52ffc218,0 0 22px #52ffc247,inset 0 1px #ffffffaa}
.pinCompass:before{content:"";position:absolute;inset:4px;z-index:-1;border:1px solid #dffff47a;border-radius:50%;background:repeating-conic-gradient(from -2deg,#dffff4 0 3deg,transparent 3deg 87deg,#dffff4 87deg 93deg,transparent 93deg 177deg,#dffff4 177deg 183deg,transparent 183deg 267deg,#dffff4 267deg 273deg,transparent 273deg 360deg);opacity:.72}
.pinCompass i{position:relative;z-index:1;width:29px;height:29px;filter:drop-shadow(0 2px 2px #001b20cc);transition:transform .1s linear;will-change:transform}
.pinCompass i svg{overflow:visible;fill:none;filter:none}.pinCompassArrowBody{fill:#ecfff9;stroke:#062a30;stroke-width:1.25;stroke-linejoin:round}.pinCompassArrowInset{fill:#0e625d;stroke:#9bffe1;stroke-width:.8;stroke-linejoin:round}.pinCompassArrowDot{fill:#ffd84f;stroke:#082c32;stroke-width:1}
.aimControlPad button{position:relative;overflow:hidden;border-color:#7dddf06e;background:linear-gradient(180deg,#16435ee8,#061826f2)}
.aimControlPad button:before{content:"";position:absolute;inset:3px;border:1px solid #ffffff12;border-radius:6px;pointer-events:none}.aimControlPad button svg{position:relative;z-index:1;overflow:visible;stroke-width:2}.aimTurnArc{stroke:#eefcff}.aimTurnHead{stroke:#79f2d2;stroke-width:2.45}.aimTurnPivot{fill:#ffd84f;stroke:#092636;stroke-width:1.2;filter:drop-shadow(0 0 3px #ffd84f)}
.aimControlPad button:active .aimTurnHead,.aimControlPad button.active .aimTurnHead{stroke:#102b3d}.aimControlPad button:active .aimTurnPivot,.aimControlPad button.active .aimTurnPivot{fill:#102b3d;stroke:#fff}
.aimTargetBtn{position:relative;overflow:hidden;isolation:isolate}.aimTargetBtn:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:currentColor;opacity:.72}.aimTargetBtn svg{overflow:visible;filter:drop-shadow(0 0 4px currentColor)}.aimTargetBtn .targetIconHalo{opacity:.25;stroke-width:3.8}.aimTargetBtn .targetIconCore{stroke:#fff;stroke-width:2.35}.aimTargetBtn.pin .targetIconCore{fill:#ffd84f;stroke:#fff}.aimTargetBtn.selected svg{transform:scale(1.08)}.aimTargetBtn.selected:after{content:"";position:absolute;right:6px;top:5px;width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:0 0 8px currentColor}
.fullLandingHud{overflow:hidden;border-width:1px 1px 1px 4px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.fullLandingHud:before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,#ff44551f,transparent 48%);pointer-events:none}.fullLandingHud svg{position:relative;z-index:1;flex-basis:29px;width:29px;height:24px;overflow:visible;stroke:#ff7580;stroke-width:1.8}.fullLandingArrowRing{fill:#220912;stroke:#ff7580;stroke-width:1.5;stroke-dasharray:2 1.5}.fullLandingArrowShaft{stroke:#fff;stroke-width:2.6}.fullLandingArrowHead{stroke:#ff7580;stroke-width:2.8}.fullLandingArrowCore{fill:#fff;stroke:#ff4455;stroke-width:1.2;filter:drop-shadow(0 0 4px #ff4455)}.fullLandingHud>div{position:relative;z-index:1}
.crosshair{border-color:#c7fff0b8;background:radial-gradient(circle,#071b29cc 0 8%,transparent 9%);box-shadow:0 0 0 4px #071b294d,inset 0 0 10px #52ffc218;filter:drop-shadow(0 2px 3px #000c)}.crosshair:after{background:#ffd84f;box-shadow:0 0 0 2px #071b29,0 0 9px #ffd84f}.crosshair span:first-child,.crosshair span:last-child{background:#eafff8}
@media(max-width:620px){.pinCompass i{width:24px;height:24px}.aimTargetBtn.selected:after{right:3px;top:3px;width:3px;height:3px}.fullLandingHud svg{flex-basis:24px;width:24px;height:20px}}