html.game-shell,html.game-shell body{width:100%;height:100%;overflow:hidden}
html.game-shell body{background:#071824}
html.game-shell .page{width:100%;max-width:none;min-height:100dvh;margin:0;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));display:grid;place-items:center;overflow:hidden}
html.game-shell .page>:not(.layout),html.game-shell .layout>:not(.stage-col),html.game-shell .stage-col>:not(.stage){display:none!important}
html.game-shell .layout{display:block!important;width:var(--stage-w);height:var(--stage-h);overflow:visible}
html.game-shell .stage-col,html.game-shell .stage{width:var(--stage-w);height:var(--stage-h);margin:0!important}
html.game-shell .stage{outline:0;transform:none;overflow:hidden}

/* The lake keeps its authored coordinates; the HUD and rail have their own layout. */
html.game-shell .field-art{transform:scale(var(--field-scale));transform-origin:top left;transition:none}
html.game-shell .sky,html.game-shell .water,html.game-shell .surface,html.game-shell .floor{width:var(--field-w)}
html.game-shell .sky{height:var(--sky-h)}
html.game-shell .water{top:var(--sky-h);height:var(--water-h)}
html.game-shell .surface{top:calc(var(--surface-front) - 1px)}
html.game-shell .floor{top:var(--floor-top);height:var(--floor-h)}
html.game-shell .hud-bar{width:var(--field-w);height:var(--hud-h);left:0}
html.game-shell .score,html.game-shell .points,html.game-shell .lives{top:calc((var(--hud-h) - 30px)/2);font-size:clamp(18px,1.8vw,25px)}
html.game-shell .score{left:2%;width:auto}
html.game-shell .points{left:23%;width:auto}
html.game-shell .lives{left:auto;right:124px;width:auto}
html.game-shell .hits-word,html.game-shell .hits-count{font-size:inherit}
html.game-shell .timer{left:calc(var(--field-w) * .55);top:calc((var(--hud-h) - var(--timer-h))/2);width:16%;height:var(--timer-h)}
html.game-shell .timer-seconds{font-size:clamp(13px,1.15vw,16px);line-height:var(--timer-h)}
html.game-shell .hud-button{top:calc((var(--hud-h) - 59px)/2)}
html.game-shell .music{left:auto;right:59px}
html.game-shell .pause{left:auto;right:0}
html.game-shell .music svg{width:clamp(18px,1.7vw,24px);height:clamp(18px,1.7vw,24px)}
html.game-shell .pause i{height:clamp(13px,1.3vw,18px)}

html.game-shell .panel{left:var(--field-w);top:0;width:var(--panel-w);height:var(--panel-h);transition:none}
html.game-shell .gauge{top:var(--gauge-top);left:50%;width:clamp(44px,5vw,58px);height:var(--gauge-h);transform:translateX(-50%)}
html.game-shell .scale-label{left:4%;width:25%;text-align:right;font-size:clamp(14px,1.3vw,19px)}
html.game-shell .zone-label{left:auto;right:3%;width:27%;font-size:clamp(14px,1.3vw,19px)}
html.game-shell .scale-label.s100,html.game-shell .zone-label.z100{top:var(--label-100)}
html.game-shell .scale-label.s75,html.game-shell .zone-label.z75{top:var(--label-75)}
html.game-shell .scale-label.s50,html.game-shell .zone-label.z50{top:var(--label-50)}
html.game-shell .scale-label.s25,html.game-shell .zone-label.z25{top:var(--label-25)}
html.game-shell .scale-label.s0,html.game-shell .zone-label.z0{top:var(--label-0)}
html.game-shell .indicator{left:0;width:100%}
html.game-shell .depth-value{left:2%;width:clamp(52px,28%,70px);font-size:clamp(20px,2vw,28px)}
html.game-shell .depth-word{right:2%;width:clamp(53px,29%,74px);font-size:clamp(16px,1.5vw,21px)}
html.game-shell .needle{left:calc(50% - 27px);width:54px}
html.game-shell .type-name{top:var(--type-top);left:0;width:100%;font-size:clamp(17px,1.7vw,24px)}
html.game-shell .reel{top:var(--reel-top);left:50%;width:min(86%,210px);height:var(--reel-h);transform:translateX(-50%)}
html.game-shell .rip{left:50%;top:auto;bottom:8px;width:var(--button-size);height:var(--button-size);transform:translateX(-50%)}
html.game-shell .rip svg{width:100%;height:100%}
html.game-shell .rip span{font-size:clamp(27px,2.5vw,37px)}
html.game-shell .reload-arc{left:50%;top:auto;bottom:4px;width:calc(var(--button-size) + 8px);height:calc(var(--button-size) + 8px);transform:translateX(-50%)}

html.game-shell .intro-screen{padding:clamp(16px,3vw,36px)}
html.game-shell .intro-content{width:min(100%,1000px);max-width:none;grid-template-columns:minmax(190px,.7fr) 1fr;gap:clamp(20px,3vw,48px);padding:clamp(22px,3vw,40px)}
html.game-shell .intro-heading h2{font-size:clamp(58px,6vw,88px)}
html.game-shell .intro-instructions li{font-size:clamp(15px,1.5vw,21px)}
html.game-shell .intro-action{font-size:clamp(30px,2.8vw,40px)}
html.game-shell .atomic-card{width:min(88%,clamp(420px,42vw,620px));padding:clamp(16px,2vw,30px)}
html.game-shell .atomic-card h2{font-size:clamp(44px,4vw,62px)}
html.game-shell .atomic-card p{font-size:clamp(20px,2.2vw,30px)}
html.game-shell .atomic-card .atomic-bonus{font-size:clamp(30px,3vw,44px)}
html.game-shell .pause-card{width:min(80%,clamp(260px,30vw,400px))}

html.game-shell.game-portrait .panel{top:var(--field-h);left:0;width:var(--field-w);height:var(--panel-h)}
html.game-shell.game-portrait .gauge{left:82px;top:20px;width:44px;height:170px;transform:none}
html.game-shell.game-portrait .scale-label{left:6px;width:52px;font-size:15px}
html.game-shell.game-portrait .zone-label{left:135px;right:auto;width:75px;font-size:15px}
html.game-shell.game-portrait .indicator{left:0;width:198px}
html.game-shell.game-portrait .depth-value{left:0;width:55px}
html.game-shell.game-portrait .depth-word{right:0;width:68px}
html.game-shell.game-portrait .needle{left:78px;width:52px}
html.game-shell.game-portrait .type-name{left:210px;top:32px;width:calc(100% - 430px);font-size:21px}
html.game-shell.game-portrait .reel{left:210px;top:68px;width:calc(100% - 430px);height:62px;transform:none}
html.game-shell.game-portrait .rip{left:auto;right:30px;top:49px;bottom:auto;width:134px;height:134px;transform:none}
html.game-shell.game-portrait .reload-arc{left:auto;right:26px;top:45px;bottom:auto;width:142px;height:142px;transform:none}
html.game-shell.game-portrait .intro-content{max-width:650px;grid-template-columns:1fr;gap:18px}
html.game-shell.game-portrait .intro-heading{text-align:center}
html.game-shell.game-portrait .intro-heading h2{font-size:58px}
html.game-shell.game-portrait .intro-action{margin-top:0}

.game-viewport-message{display:none;position:fixed;inset:0;z-index:100;align-items:center;justify-content:center;flex-direction:column;gap:12px;padding:24px;text-align:center;background:#071824;color:#f5f6e9}
.game-viewport-message h2{margin:0;color:#ffe94d;font:clamp(36px,8vw,64px)/1 Bangers,sans-serif}
.game-viewport-message p{max-width:30ch;margin:0;font:800 18px/1.35 Nunito,sans-serif}
html.game-shell.game-rotate .game-viewport-message,html.game-shell.game-small .game-viewport-message{display:flex}
html.game-shell.game-rotate .page,html.game-shell.game-small .page{visibility:hidden}
