/* Immersive play layout. The course and touch controls share one safe-area viewport. */
html.ff-game-open,html.ff-game-open body{overflow:hidden;overscroll-behavior:none}.game-fullscreen-button{display:flex;align-items:center;justify-content:center;gap:6px}.game-fullscreen-button:first-letter{font-size:20px}.game-header-mark{width:100px;flex:none}.game-header-mark .ff-game-mark{width:100%;max-width:none}.arcade-game-heading:has(.game-header-mark){gap:16px}.arcade-game-heading:has(.game-header-mark)>div:nth-child(2){flex:1}.level-pill{display:inline-flex!important;align-items:center;gap:8px;font:10px/1.5 var(--mono)!important;color:#c9dec0!important;margin-bottom:5px}.level-pill:before{content:'';width:6px;height:6px;border-radius:2px;background:#b0dfb6}.game-ball-inspect{display:flex;align-items:center;gap:10px;margin-top:14px;border-top:1px solid #adc29726;padding-top:14px}.game-ball-inspect canvas{width:65px;height:65px;flex:none}.game-ball-inspect>span{font-size:12px;line-height:1.6;color:#bacead;overflow-wrap:anywhere}.game-ball-inspect small{display:block;font:8px/1.6 var(--mono);color:#8fab84;margin-top:4px}
@media(max-width:700px),(max-width:1000px) and (max-height:600px),(pointer:coarse) and (max-width:1100px),(pointer:coarse) and (max-height:700px){
 #modal.arcade-game-modal[open]{position:fixed;inset:0;width:var(--ff-play-width,100vw);max-width:none;min-width:0;height:var(--ff-play-height,100dvh);max-height:none;min-height:0;margin:0;padding:max(10px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));box-sizing:border-box;border:0;border-radius:0;background:#142b20;overflow:auto;overscroll-behavior:none}
 #modal.arcade-game-modal[open]:has(#arcade-canvas){display:grid;grid-template-rows:60px 51px minmax(0,1fr);gap:9px;overflow:hidden;align-content:stretch}
 #modal.arcade-game-modal:has(#arcade-canvas)>.modal-heading{position:absolute;right:max(12px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));margin:0;padding:0;min-height:0;z-index:12}
 #modal.arcade-game-modal:has(#arcade-canvas)>.modal-heading h2{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 #modal.arcade-game-modal:has(#arcade-canvas)>.modal-heading .icon-button{width:48px;min-width:48px;height:48px;min-height:48px;border:1px solid #c8dab777;border-radius:9px;background:#213d2c;color:#fafafa}
 #modal.arcade-game-modal:has(#arcade-canvas)>.arcade-game-heading{grid-row:1;display:flex;align-items:center;justify-content:flex-start;gap:10px;margin:0;padding:0 59px 0 0;min-width:0}
 #modal.arcade-game-modal .game-header-mark{width:108px;align-self:center}
 #modal.arcade-game-modal .game-header-mark .ff-game-mark{width:108px;max-height:57px;margin:0}
 #modal.arcade-game-modal .arcade-game-heading h3{font-size:22px;margin:0;line-height:1.05}
 #modal.arcade-game-modal .arcade-game-heading>div:not(.game-header-mark)>span:not(.level-pill){display:none}
 #modal.arcade-game-modal .arcade-game-heading>span{display:none}
 #modal.arcade-game-modal .arcade-game-heading:has(.game-header-mark) h3{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 #modal.arcade-game-modal .level-pill{font-size:10px!important;display:flex!important;line-height:1.45!important;margin:0;color:#dcebcf!important;max-width:145px}
 #modal.arcade-game-modal>.game-utility-bar{grid-row:2;display:flex;align-items:center;justify-content:space-between;gap:8px;position:static;margin:0;min-width:0}
 #modal.arcade-game-modal .game-utility-bar>div{display:flex;gap:7px}
 #modal.arcade-game-modal .game-utility-bar button,#modal.arcade-game-modal .game-instructions>summary{font-size:13px;padding:10px 13px;min-height:48px;border-radius:8px;border-color:#b8cdaa55;background:#26432f;color:#edf4e5;line-height:1.2}
 #modal.arcade-game-modal .game-instructions>summary{gap:8px}
 #modal.arcade-game-modal .game-fullscreen-button{width:48px;min-width:48px;padding:8px;font-size:25px}
 #modal.arcade-game-modal .game-fullscreen-button>span{display:none}
 #modal.arcade-game-modal .game-instructions>div{position:fixed;top:calc(max(10px,env(safe-area-inset-top)) + 119px);left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));width:auto;max-height:calc(var(--ff-play-height,100dvh) - 170px);overflow:auto;padding:22px;z-index:20;background:#e9eddd;color:#173b28;box-shadow:0 10px 30px #0009;border-radius:12px}
 #modal.arcade-game-modal .game-instructions>div p{color:#3b5440;font-size:16px}
 #modal.arcade-game-modal>.arcade-play-layout{grid-row:3;display:grid;grid-template-rows:minmax(130px,1fr) auto;grid-template-columns:minmax(0,1fr);gap:12px;min-height:0;min-width:0;align-items:stretch}
 #modal.arcade-game-modal .arcade-stage{min-height:0;display:flex;flex-direction:column;width:100%;min-width:0;border:1px solid #abc69555;border-radius:12px;overflow:hidden;background:#355c3d}
 #modal.arcade-game-modal .arcade-stage .arcade-game-hud{width:100%;max-width:none;flex:none;margin:0;padding:10px 14px;font-size:13px;line-height:1.5;min-height:43px;border:0;border-bottom:1px solid #bfd0a333;background:#203d29;box-sizing:border-box}
 #modal.arcade-game-modal .arcade-stage .arcade-canvas-wrap{position:relative;flex:1;min-height:0;width:100%;max-width:none;margin:0;border:0;border-radius:0;box-shadow:none;background:repeating-linear-gradient(100deg,#335a39 0 45px,#365f3d 45px 90px)}
 #modal.arcade-game-modal .arcade-canvas-wrap canvas{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:contain;touch-action:none}
 #modal.arcade-game-modal #arcade-game-message{font-size:12px;line-height:1.35;bottom:7px;padding:7px 12px;border-radius:7px;max-width:calc(100% - 18px);background:#112b1be8}
 #modal.arcade-game-modal .arcade-control-panel{padding:13px 15px 12px;min-height:0;min-width:0;border:1px solid #abc69540;border-radius:13px;background:#1d3828;box-shadow:0 -4px 18px #03100925;overflow:visible}
 #modal.arcade-game-modal .arcade-control-panel .putt-aim-bar{display:flex;flex-direction:row;align-items:center;gap:10px;margin:0 0 11px;min-width:0}
 #modal.arcade-game-modal .putt-aim-bar>span{font-size:13px;line-height:1.4;flex:1}
 #modal.arcade-game-modal .putt-aim-bar button{min-height:49px;font-size:13px;padding:10px 13px;border-radius:8px;width:auto;background:#c3d4b612;color:#deebce}
 #modal.arcade-game-modal .putt-aim-bar b,#modal.arcade-game-modal .putt-controls label b{display:none}
 #modal.arcade-game-modal .putt-controls{display:grid;grid-template-columns:1fr;gap:10px;margin:0;position:static;width:100%}
 #modal.arcade-game-modal .putt-controls>label>span{font-size:16px;line-height:1.5}
 #modal.arcade-game-modal .putt-controls>label strong{font-size:12px}
 #modal.arcade-game-modal .putt-controls input,#modal.arcade-game-modal .putt-precision input{display:block;appearance:none;width:100%;height:44px;min-height:44px;background:transparent;touch-action:pan-y;margin:3px 0 0;cursor:pointer}
 #modal.arcade-game-modal .putt-controls input::-webkit-slider-runnable-track,#modal.arcade-game-modal .putt-precision input::-webkit-slider-runnable-track{height:9px;border-radius:8px;background:linear-gradient(90deg,#7fe3cf,#d6df9a)}
 #modal.arcade-game-modal .putt-controls input::-webkit-slider-thumb,#modal.arcade-game-modal .putt-precision input::-webkit-slider-thumb{width:37px;height:37px;appearance:none;margin-top:-14px;border:3px solid #f4f8e9;border-radius:50%;background:radial-gradient(circle at 30% 20%,#fafafa,#b5c5a3);box-shadow:0 3px 8px #03170e88}
 #modal.arcade-game-modal .putt-controls input::-moz-range-track,#modal.arcade-game-modal .putt-precision input::-moz-range-track{height:9px;border-radius:8px;background:#acd7a8}
 #modal.arcade-game-modal .putt-controls input::-moz-range-thumb,#modal.arcade-game-modal .putt-precision input::-moz-range-thumb{width:32px;height:32px;border:3px solid #f4f8e9;background:#e6efdc;border-radius:50%}
 #modal.arcade-game-modal .putt-controls .power-scale{margin:0;line-height:1}
 #modal.arcade-game-modal .power-scale small{font-size:9px}
 #modal.arcade-game-modal .putt-controls .btn{width:100%;min-height:65px;display:flex;align-items:center;justify-content:center;flex-direction:row;font-size:19px;font-weight:700;padding:16px;border-radius:10px;color:#103424;background:#a6e3c7;margin-top:4px;box-shadow:0 4px 0 #386b53}
 #modal.arcade-game-modal .putt-controls .btn>small{display:none}
 #modal.arcade-game-modal .putt-controls .btn:disabled{background:#6d8f79;color:#d8e6cf;box-shadow:none}
 #modal.arcade-game-modal .putt-precision{border-top:0;padding-top:0;margin:10px 0 0;max-width:none}
 #modal.arcade-game-modal .putt-precision>summary{font-size:12px;min-height:27px;line-height:1.6;display:block}
 #modal.arcade-game-modal .putt-precision[open]{position:absolute;bottom:calc(13px + env(safe-area-inset-bottom));left:16px;right:16px;z-index:21;background:#263f2c;border:1px solid #aec6a1;border-radius:10px;padding:16px;box-shadow:0 0 0 100vmax #04150b77;margin:0}
 #modal.arcade-game-modal .putt-precision[open]>summary{min-height:38px}
 #modal.arcade-game-modal .arcade-control-panel .arcade-play-hint,#modal.arcade-game-modal .game-ball-inspect{display:none}
 #modal.arcade-game-modal .cart-control-deck{position:static;width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:15px;margin:0}
 #modal.arcade-game-modal .cart-control-deck .cart-joystick{width:137px;height:137px;flex:none;border-width:2px}
 #modal.arcade-game-modal .joystick-knob{width:60px;height:60px;font-size:32px}
 #modal.arcade-game-modal .joystick-rings{inset:17px}
 #modal.arcade-game-modal .cart-control-copy{display:block;flex:1;order:0;text-align:left;min-width:0}
 #modal.arcade-game-modal .cart-control-copy strong{font-size:17px;line-height:1.25}
 #modal.arcade-game-modal .cart-control-copy>span{font-size:12px;line-height:1.5}
 #modal.arcade-game-modal .cart-control-copy>small{display:none}
 #modal.arcade-game-modal .cart-brake{min-width:88px;width:88px;min-height:98px;font-size:35px;border-radius:12px;border-width:2px;background:linear-gradient(#657457,#3b553d)}
 #modal.arcade-game-modal .cart-brake>span{font-size:13px;line-height:1.7}
 #modal.arcade-game-modal .cart-start-overlay .btn,#modal.arcade-game-modal .game-pause-overlay .btn{min-height:61px;font-size:18px;min-width:170px;border-radius:10px}
 #modal.arcade-game-modal .cart-start-overlay h4,#modal.arcade-game-modal .game-pause-overlay h4{font-size:30px;max-width:340px;margin:12px 0}
 #modal.arcade-game-modal .cart-start-overlay p{font-size:14px;line-height:1.6;margin-bottom:17px}
 #modal.arcade-game-modal>.pin-room-status{display:none}
}
@media(max-width:390px){#modal.arcade-game-modal .cart-control-copy{display:none}#modal.arcade-game-modal .cart-control-deck{justify-content:space-around}#modal.arcade-game-modal .game-utility-bar button,#modal.arcade-game-modal .game-instructions>summary{padding:9px 10px;font-size:12px}#modal.arcade-game-modal .game-utility-bar>div{gap:5px}}
@media(max-height:700px) and (orientation:portrait){#modal.arcade-game-modal[open]:has(#arcade-canvas){grid-template-rows:49px 47px minmax(0,1fr);gap:7px}#modal.arcade-game-modal .arcade-control-panel{padding:9px 12px}#modal.arcade-game-modal .putt-aim-bar{margin-bottom:6px!important}#modal.arcade-game-modal .putt-aim-bar>span{font-size:12px}#modal.arcade-game-modal .putt-controls .btn{min-height:59px;padding:12px}#modal.arcade-game-modal .putt-controls{gap:6px}#modal.arcade-game-modal .putt-precision{margin-top:7px}#modal.arcade-game-modal .cart-control-deck .cart-joystick{width:117px;height:117px}#modal.arcade-game-modal .arcade-stage .arcade-game-hud{min-height:37px;padding:7px 12px;font-size:12px}}
@media(orientation:landscape) and (max-height:700px){
 #modal.arcade-game-modal[open]:has(#arcade-canvas){grid-template-rows:47px 46px minmax(0,1fr);gap:7px;padding-top:max(7px,env(safe-area-inset-top));padding-bottom:max(8px,env(safe-area-inset-bottom))}
 #modal.arcade-game-modal .arcade-game-heading{padding-right:60px!important}
 #modal.arcade-game-modal .game-header-mark{width:95px}
 #modal.arcade-game-modal .game-header-mark .ff-game-mark{width:95px;max-height:45px}
 #modal.arcade-game-modal>.game-utility-bar{justify-content:flex-start;gap:12px}
 #modal.arcade-game-modal .game-utility-bar button,#modal.arcade-game-modal .game-instructions>summary{min-height:44px;padding:9px 15px}
 #modal.arcade-game-modal>.arcade-play-layout{grid-template-columns:minmax(0,1fr) 245px;grid-template-rows:minmax(0,1fr);gap:12px}
 #modal.arcade-game-modal .arcade-control-panel{padding:10px 13px;overflow:auto;scrollbar-width:thin}
 #modal.arcade-game-modal .putt-aim-bar{gap:9px;margin:0 0 6px!important}
 #modal.arcade-game-modal .putt-aim-bar>span{font-size:12px}
 #modal.arcade-game-modal .putt-aim-bar button{font-size:11px;min-height:46px;padding:8px 10px}
 #modal.arcade-game-modal .putt-controls{gap:5px}
 #modal.arcade-game-modal .putt-controls>label>span{font-size:14px}
 #modal.arcade-game-modal .putt-controls .btn{min-height:59px;font-size:17px;padding:12px}
 #modal.arcade-game-modal .putt-precision{margin-top:6px}
 #modal.arcade-game-modal .cart-control-deck{flex-wrap:wrap;justify-content:center;gap:16px}
 #modal.arcade-game-modal .cart-control-copy{display:none}
 #modal.arcade-game-modal .cart-control-deck .cart-joystick{width:128px;height:128px}
 #modal.arcade-game-modal .cart-brake{min-width:70px;width:70px;min-height:90px}
 #modal.arcade-game-modal .cart-start-overlay p{display:none}
 #modal.arcade-game-modal .cart-start-overlay h4,#modal.arcade-game-modal .game-pause-overlay h4{font-size:25px}
 #modal.arcade-game-modal .arcade-stage .arcade-game-hud{min-height:35px;padding:6px 12px;font-size:12px}
}
