@font-face{font-family:Tower;src:url('assets/display.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Body;src:url('assets/body.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{color-scheme:dark;--paper:#f5eee0;--muted:#89938e;--gold:#ffbd66;--fire:#ff5a32;--line:#343936;--ui-scale:1}
*{box-sizing:border-box;letter-spacing:0}
html,body{margin:0;min-height:100%;background:#0b1012}
body{font-family:Body,'Segoe UI',sans-serif;color:var(--paper);background-image:linear-gradient(#0b1012f5,#0b1012ec),url('assets/cavern.webp');background-size:cover;background-attachment:fixed;overflow-x:hidden}
button,a,input,summary{-webkit-tap-highlight-color:transparent}
button,input{font:inherit}
button{cursor:pointer}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
button:disabled{opacity:.45;cursor:wait}
button{color:inherit}
.hidden{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.app{width:min(1500px,calc(100% - 64px));margin:0 auto;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:22px 0 15px}
.masthead{display:flex;align-items:center;justify-content:space-between;height:52px;margin-bottom:18px;flex:none}
.wordmark{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--paper);font:700 20px Tower,sans-serif}
.wordmark svg{width:23px;height:29px;color:var(--fire);fill:#ff6b251c}
.wordmark b{color:var(--fire);font-size:24px;margin-left:3px}
.masthead-right{display:flex;align-items:center;gap:10px}
.edition{font-size:10px;color:#939c96;margin-right:18px;font-weight:600}
.icon-button{display:inline-grid;place-items:center;flex:none;width:38px;height:38px;padding:8px;border:1px solid #434841;border-radius:4px;background:#101719b3;color:#b7beb5;transition:color .16s,border-color .16s,background .16s}
.icon-button:hover{color:#fff1dc;border-color:#bb8450;background:#23272a}
.icon-button svg{width:18px;height:18px;stroke-width:1.6}
.site-layout{display:grid;grid-template-columns:208px minmax(0,1fr);align-items:start;gap:22px}
.site-layout.boards-hidden{grid-template-columns:minmax(0,1fr)}
.site-layout.boards-hidden .site-leaderboard{display:none}
.site-leaderboard{height:var(--game-area-height,640px);max-height:var(--game-area-height,640px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#424842 transparent;padding:22px 0 12px;border-top:1px solid #60665a;border-bottom:1px solid var(--line)}
.rank-heading{display:flex;gap:12px;align-items:center;margin-bottom:26px;padding:0 10px;font:500 12px/1.2 Tower,sans-serif;color:#a4aca2}
.rank-heading svg{width:29px;height:32px;color:#d39855;stroke-width:1.2}
.rank-heading strong{font:700 34px/1 Tower,sans-serif;color:var(--paper)}
.leaderboard-board{border-top:1px solid var(--line);padding:16px 0 18px}
.leaderboard-board summary{display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;padding:0 8px;color:#e3e4d8;font:600 18px Tower,sans-serif;text-transform:uppercase}
.leaderboard-board summary::-webkit-details-marker{display:none}
.leaderboard-board summary svg{width:14px;height:14px;color:#9a9d88;transition:transform .2s}
.leaderboard-board:not([open]) summary svg{transform:rotate(-90deg)}
table{width:100%;border-collapse:collapse;table-layout:fixed;margin-top:12px;font-size:10px;font-variant-numeric:tabular-nums}
th,td{padding:8px 5px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #ffffff07}
th{font-size:9px;font-weight:500;text-transform:uppercase;color:#717e79}
th:first-child,td:first-child{width:24px;color:#9b9a7e}
th:last-child,td:last-child{width:60px;text-align:right}
td:nth-child(2){font-weight:600;color:#bbc6bf}
td:last-child{font-weight:600;color:#e1d5b8}
tbody tr:first-child td{color:#ffbf68}
td[colspan]{color:#89938e!important;text-align:left!important;padding:13px 8px;font-weight:400!important}
.rank-footer{display:flex;align-items:center;gap:7px;padding:16px 8px;font-size:8px;color:#82938b}
.status-dot{width:4px;height:4px;background:#d69455;transform:rotate(45deg)}
.shell{position:relative;aspect-ratio:742/480;width:100%;overflow:hidden;background:#081013;border:1px solid #6b5138;box-shadow:0 16px 70px #0008;isolation:isolate}
.shell:before,.shell:after{content:'';position:absolute;z-index:5;pointer-events:none;width:16px;height:16px;border-color:#e0a66c;border-style:solid}
.shell:before{left:0;top:0;border-width:2px 0 0 2px}.shell:after{right:0;bottom:0;border-width:0 2px 2px 0}
canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}
.ui-layer{position:absolute;left:0;top:0;width:742px;height:480px;transform-origin:0 0;transform:scale(var(--ui-scale));pointer-events:none}
.sidebar{position:absolute;top:0;width:116px;height:480px;pointer-events:none;background:linear-gradient(90deg,#0c1215,#111a1c 80%,#0b1114);z-index:2}
.left-sidebar{left:0;border-right:1px solid #7b674c}
.right-sidebar{right:0;border-left:1px solid #7b674c;background:linear-gradient(90deg,#0b1114,#111a1c 25%,#0c1215)}
.hud-logo{position:absolute;top:20px;left:17px;width:80px;height:93px;background:none;border:0;padding:0;text-align:center;pointer-events:auto;line-height:1}
.hud-logo svg{display:block;width:21px;height:25px;color:#ff9e43;fill:#ff612322;margin:0 auto 5px;stroke-width:1.4}
.hud-logo span{display:block;font:750 21px/.88 Tower,sans-serif;color:#f0e6cf}
.hud-logo b{display:block;margin-top:6px;font:500 22px/.85 Tower,sans-serif;color:#f98b50}
.score-stat{position:absolute;top:144px;left:12px;width:91px;text-align:center;border-top:1px solid #39413e;padding-top:16px}
.stat-label{display:block;color:#9faaa0;font:500 9px Body,sans-serif}
.score-stat strong{display:block;margin-top:5px;font:650 34px/1.15 Tower,sans-serif;font-variant-numeric:tabular-nums;color:#fff2d6}
.zone-stat{position:absolute;top:333px;left:17px;width:83px;text-align:center}
.zone-stat .stat-label{font-size:7px;color:#ac8f69}
.zone-stat>span:last-child{display:block;margin-top:7px;font:500 13px/1.2 Tower,sans-serif;color:#d0c8b3}
.left-footer{position:absolute;bottom:19px;left:17px;width:82px;display:flex;justify-content:center;align-items:center;gap:5px}
.left-footer .icon-button{pointer-events:auto;width:30px;height:30px;background:none;border-color:#4c5248}
#fpsValue{font-size:8px;color:#96cd9d}
.combo-stat{position:absolute;top:29px;left:8px;width:99px;text-align:center}
.combo-stat strong{display:block;font:650 49px/1 Tower,sans-serif;color:#ffba61;margin-top:10px;font-variant-numeric:tabular-nums}
.combo-track{position:absolute;left:47px;top:111px;width:21px;height:244px;background:#03090a;border:1px solid #4d5954;clip-path:polygon(50% 0,100% 8px,100% calc(100% - 8px),50% 100%,0 calc(100% - 8px),0 8px)}
.combo-ticks{position:absolute;inset:5px;background:repeating-linear-gradient(0deg,transparent 0 23px,#53625555 23px 24px)}
.combo-fill{position:absolute;left:3px;right:3px;bottom:4px;height:calc((100% - 8px)*var(--remaining,0));background:linear-gradient(90deg,var(--combo-dark,#842c17),var(--combo-color,#ffb830) 65%,#fff0c3);transition:background .2s;box-shadow:0 -2px 12px var(--combo-color)}
.combo-tip{position:absolute;left:3px;right:3px;bottom:calc(4px + (100% - 8px)*var(--remaining,0));height:2px;background:#fff5d8;opacity:var(--active,0)}
.combo-name{position:absolute;top:371px;width:100%;font:600 13px Tower,sans-serif;text-align:center;color:var(--combo-color,#6f817b);text-transform:uppercase}
.altitude{position:absolute;bottom:26px;width:100%;display:flex;align-items:center;justify-content:center;gap:6px;color:#98a69c;font:600 13px Tower,sans-serif}
.altitude svg{width:13px;height:13px;color:#ab8f64}
.hurry-notice{position:absolute;top:238px;left:16px;width:83px;color:#ff9a48;opacity:0;transform:translateY(6px);transition:opacity .18s,transform .18s;text-align:center}
.hurry-notice.active{opacity:1;transform:translateY(0)}
.hurry-notice svg{width:16px;height:16px}.hurry-notice strong{display:block;font:700 23px/.95 Tower,sans-serif;margin-top:4px}
.overlay{position:absolute;inset:0 116px;display:flex;align-items:center;justify-content:center;text-align:center;pointer-events:auto;background:linear-gradient(90deg,#07101355,#05090bc9 35%,#05090bc9 65%,#07101355);z-index:3;animation:appear .25s ease-out}
.menu-overlay{background:linear-gradient(90deg,#07101322,#05090b99 38%,#05090b99 63%,#07101322)}
.menu-content{margin-top:-4px;width:100%}
.eyebrow{display:block;font:500 9px Body,sans-serif;color:#dfbb80}
h1{margin:16px 0 9px;font:800 77px/.85 Tower,sans-serif;text-transform:uppercase;cursor:pointer;text-shadow:0 4px 0 #070b0d,0 7px 22px #000}
h1>span{display:block}h1>span:first-child{color:#ffe7b0}h1>span:last-child{color:#ff9b4c;margin-top:3px}
h1 em{font-style:normal;color:#ffe5a2;display:inline-block;font-weight:400;margin-left:2px}
.title-rule{display:flex;align-items:center;justify-content:center;gap:14px;margin:19px 0 15px;color:#ed8546}
.title-rule span{height:1px;width:64px;background:#b887524d}.title-rule svg{width:19px;height:24px;fill:#ff8b391a;stroke-width:1.3}
.best-line{font:400 9px Body,sans-serif;color:#a2aca1;min-height:12px}
.menu-actions{display:flex;justify-content:center;margin-top:21px}
.primary-button{display:inline-flex;justify-content:center;align-items:center;gap:16px;min-width:192px;min-height:43px;padding:11px 24px;border:1px solid #ffce85;border-radius:2px;background:linear-gradient(#ffc578,#f39042);box-shadow:0 3px 0 #713521,0 5px 20px #0006;color:#251b13;font:700 17px/1.2 Tower,sans-serif;transition:filter .15s,transform .15s}
.primary-button:hover{filter:brightness(1.12);transform:translateY(-1px)}.primary-button:active{transform:translateY(2px);box-shadow:none}
.primary-button svg{height:17px;width:17px;stroke-width:2}
.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:transparent;border:1px solid #657065;border-radius:2px;padding:10px 16px;font:500 11px Body,sans-serif;color:#d5d7c8}
.secondary-button:hover{border-color:var(--gold);color:var(--gold)}.secondary-button svg{width:13px;height:13px}
h2{font:750 59px/.95 Tower,sans-serif;margin:13px 0 23px;color:#f7ebd3}h2 em,h2>span{color:#ff9654;font-style:normal}
.result-content{width:100%;padding:25px 26px}.result-stats{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:8px;padding:16px 0;border-top:1px solid #64716555;border-bottom:1px solid #64716555;margin-bottom:16px}
.result-stats span{display:block;font-size:8px;color:#a2b1a6}.result-stats strong{display:block;font:600 30px Tower,sans-serif;margin-top:4px;color:#fff0cf}
.game-over-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:17px}
.leaderboard-form{max-width:280px;margin:12px auto}.leaderboard-form label{font-size:10px;color:#ecc277}
.skip-save{background:none;border:0;color:#aeb6a4;text-decoration:underline;text-underline-offset:3px;font-size:9px;padding:6px 10px}
.skip-save:hover{color:#ffd38c}
.name-field{display:flex;gap:7px;margin-top:8px}.name-field input{min-width:0;flex:1;width:100%;background:#081217;border:1px solid #727865;padding:9px 12px;color:#f6e9c7;font-size:12px;border-radius:2px}
.name-field .icon-button{height:35px;width:36px}.leaderboard-status{font-size:9px;line-height:1.35;color:#a7b4a6;min-height:13px;margin-top:6px}
.pause-card{width:290px}.pause-card h2{margin-bottom:32px}.setting-row{display:flex;gap:14px;align-items:center;min-height:48px;border-top:1px solid #58605666;padding:16px 0;font-size:12px;text-align:left}
.volume-control{flex:1;min-width:0;font-size:10px}.volume-control span{display:block;margin-bottom:7px}input[type=range]{width:100%;height:3px;accent-color:#ffa64c;cursor:pointer;display:block}
.setting-row output{font-size:9px;color:#b9bc9f;min-width:27px}.pause-card .primary-button{margin-top:26px}
.sound-button{font-size:0}.sound-button:before{content:'';width:16px;height:16px;background:currentColor;mask:url('assets/volume-2.svg') center/contain no-repeat}
.sound-button[aria-label='Sound off']:before{mask-image:url('assets/volume-x.svg')}
.switch-label{flex:1}.switch{appearance:none;width:31px;height:17px;border-radius:12px;background:#34413d;position:relative;cursor:pointer;margin:0}
.switch:before{content:'';position:absolute;width:11px;height:11px;background:#a8b0a3;border-radius:50%;top:3px;left:3px;transition:transform .2s}.switch:checked{background:#b16c32}.switch:checked:before{transform:translateX(14px);background:#ffe0a8}
.demo-tag{position:absolute;top:10px;left:133px;color:#ffe6b6;font:500 8px Body,sans-serif;background:#0b1215b3;padding:5px 8px;z-index:1}.cheat-tag{left:auto;right:133px;color:#ffb7b0}
.site-footer{display:flex;align-items:center;justify-content:space-between;font:500 9px Body,sans-serif;color:#78837a;margin-top:18px;height:20px;flex:none}.site-footer b{color:#c78848}.footer-mark{color:#ad7541;font-size:12px}
.touch-pad{display:none}
@keyframes appear{from{opacity:0}to{opacity:1}}
@media(min-width:1100px) and (max-height:850px){.app{width:min(1320px,calc((100svh - 132px)*1.5458 + 230px),calc(100% - 48px));padding-top:10px}.masthead{height:36px;margin-bottom:12px}.site-footer{margin-top:12px}}
@media(max-width:1000px){.app{width:calc(100% - 32px)}.site-layout{grid-template-columns:170px minmax(0,1fr);gap:15px}.rank-heading{margin-bottom:18px}.rank-heading strong{font-size:28px}.leaderboard-board{padding:12px 0}.leaderboard-board summary{font-size:16px}table{font-size:9px}th:last-child,td:last-child{width:49px}th,td{padding:6px 3px}}
@media(max-width:760px){.app{width:calc(100% - 20px);padding:12px 0;justify-content:flex-start}.masthead{height:40px;margin-bottom:12px}.wordmark{font-size:18px}.edition{display:none}.site-layout{display:flex;flex-direction:column;gap:16px}.shell{order:0}.site-leaderboard{order:1;width:100%;height:auto;max-height:350px;padding:16px 4px;display:none}.site-layout.mobile-boards .site-leaderboard{display:block}.rank-heading{margin-bottom:14px}.rank-heading strong{font-size:26px}.rank-heading br{display:none}.rank-heading span{display:flex;align-items:baseline;gap:7px}.leaderboard-board table{font-size:12px}.site-footer{font-size:8px}.masthead-right{gap:7px}.icon-button{width:34px;height:34px}.shell{border-radius:0}}
@media(pointer:coarse){.touch-pad{display:flex;gap:14px;margin:20px 12px 8px;touch-action:none}.touch-button{height:60px;width:68px;display:grid;place-items:center;background:#172124;border:1px solid #657062;border-radius:5px;touch-action:none;user-select:none}.touch-button:active{background:#664126}.touch-button svg{width:24px;height:24px}.touch-button.jump{margin-left:auto;width:94px;background:#b66a32;color:#fff0cf;border-color:#edb276}}
@media(max-width:600px) and (orientation:portrait){
  .shell{aspect-ratio:510/555}
  canvas{position:absolute;top:0;left:-22.745098%;width:145.490196%;height:86.486486%}
  .ui-layer{left:-22.745098%;height:555px}
  .sidebar{top:480px;width:255px;height:75px;border-top:1px solid #576351}
  .left-sidebar{left:116px;border-right:0}.right-sidebar{left:371px;right:auto;border-left:0}
  .hud-logo,.zone-stat{display:none}
  .score-stat{left:14px;top:14px;width:142px;padding:0;border:0;text-align:left}
  .score-stat .stat-label{font-size:10px}.score-stat strong{margin-top:1px}
  .left-footer{left:179px;top:20px;bottom:auto;width:55px}
  .left-footer .icon-button{width:34px;height:34px}
  .combo-stat{top:13px;left:9px;width:85px}.combo-stat strong{font-size:32px;margin-top:3px}
  .combo-track{left:107px;top:15px;height:46px;width:16px}
  .combo-name{left:134px;top:17px;width:107px;font-size:13px}
  .altitude{width:107px;left:134px;bottom:17px}
  .overlay{bottom:75px}
  .hurry-notice{top:-58px;left:132px;width:220px;text-align:center;background:#091113da;padding:8px;border:1px solid #9d693c}
  .hurry-notice svg{display:none}.hurry-notice strong{font-size:19px;line-height:1;margin:0}.hurry-notice br{display:none}
  .touch-pad{display:flex;gap:14px;margin:20px 12px 8px;touch-action:none}.touch-button{height:60px;width:68px;display:grid;place-items:center;background:#172124;border:1px solid #657062;border-radius:5px;touch-action:none;user-select:none}.touch-button svg{width:24px;height:24px}.touch-button.jump{margin-left:auto;width:94px;background:#b66a32;color:#fff0cf;border-color:#edb276}
}
@media(max-width:760px) and (orientation:landscape){.app{width:min(calc((100svh - 70px)*1.5458),calc(100% - 130px));padding:4px 0}.masthead{height:27px;margin-bottom:5px}.site-footer{margin-top:5px;height:12px}.touch-pad{position:fixed;inset:auto 8px 20px;margin:0;pointer-events:none}.touch-button{pointer-events:auto;width:50px;height:50px}.touch-button.jump{width:50px}.touch-pad .touch-button:nth-child(2){position:absolute;left:0;bottom:60px}.wordmark{font-size:14px}.wordmark svg{height:18px}.masthead .icon-button{height:25px;width:25px;padding:5px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
