*{box-sizing:border-box}html,body{margin:0;height:100%;background:#100a25;color:#fff2c7;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;overflow:hidden;overscroll-behavior:none}button{font:inherit;touch-action:none;-webkit-tap-highlight-color:transparent;cursor:pointer}button:focus-visible{outline:3px solid #ffe079;outline-offset:4px}[hidden]{display:none!important}#cabinet{width:100%;height:100dvh;display:grid;place-items:center;position:relative;user-select:none;-webkit-user-select:none;background:#100a25}canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges;box-shadow:0 0 70px #331d69;width:min(100vw,177.777dvh);height:auto;max-height:100dvh;aspect-ratio:16/9}.scanlines{position:absolute;inset:0;pointer-events:none;opacity:.09;background:repeating-linear-gradient(transparent 0 3px,#000 3px 4px)}.top-buttons{position:absolute;top:max(10px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));display:flex;gap:8px}.top-buttons button{background:#140c2ec9;border:1px solid #8263af;color:#e4d5f4;padding:8px;font-size:11px;font-weight:bold}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;padding-top:100px}.overlay button{pointer-events:auto;border:2px solid #fff2b0;background:#572b77;color:#fff2b0;padding:12px 20px;font-weight:bold;letter-spacing:2px;box-shadow:4px 4px #180d2e;font-size:16px;margin:6px}.overlay p{text-align:center;font-size:12px;line-height:1.6;color:#bfc9fa;text-shadow:2px 2px #130a27;margin:10px}.overlay h2{font-size:24px;color:#ffdf78;background:#170e39;margin:4px;padding:8px;text-align:center}#pauseScreen,#endScreen{background:#0b072acc;padding-top:0}.controller{position:absolute;bottom:max(14px,env(safe-area-inset-bottom));left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none}.joystick{width:116px;height:116px;border:2px solid #aa8dc080;border-radius:50%;position:relative;background:#231636b3;box-shadow:inset 0 0 0 12px #9781b51a,3px 4px #0a061a77;pointer-events:auto;touch-action:none}.joystick-rings{position:absolute;inset:22px;border:1px solid #ae90ca55;border-radius:50%;pointer-events:none}.stick{position:absolute;width:50px;height:50px;left:calc(50% - 25px);top:calc(50% - 25px);background:#765589;border:3px solid #c6a8dd;border-radius:50%;box-shadow:0 4px 0 #1a0d33;pointer-events:none;will-change:transform}.joystick.active .stick{background:#a676b4;border-color:#ffe5ab}.buttons{display:flex;gap:18px;pointer-events:auto}.buttons button{border:3px solid #b278a4;background:#652849d9;color:#fff3dc;width:64px;height:64px;border-radius:50%;box-shadow:3px 4px #160a24}.buttons button:last-child{transform:translateY(-14px)}.buttons span{font-size:24px;font-weight:bold;display:block}.buttons small{font-size:9px}.controller button.pressed{background:#dc729b;border-color:#ffe5aa;color:#180c2f}.portrait-tip{position:absolute;bottom:155px;font-size:10px;color:#a190ba;letter-spacing:1px;display:none}@media(orientation:portrait){.portrait-tip{display:block}.overlay{padding-top:60px}.overlay .desktop{display:none}.top-buttons{top:max(14px,env(safe-area-inset-top))}}@media(max-height:450px){.joystick{width:92px;height:92px}.stick{width:42px;height:42px;left:calc(50% - 21px);top:calc(50% - 21px)}.buttons button{width:52px;height:52px}.buttons{gap:12px}.buttons span{font-size:20px}.buttons small{font-size:8px}.controller{bottom:max(8px,env(safe-area-inset-bottom))}.top-buttons{top:6px}.overlay{padding-top:55px}.overlay p{font-size:10px;margin:6px}.overlay button{padding:8px 16px;font-size:14px}.overlay .desktop{display:none}}

html,body,#cabinet{position:fixed;inset:0;width:100%;height:100%;touch-action:none;-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow:hidden}#cabinet{height:100dvh;min-height:100dvh}canvas{touch-action:none}.buttons button{background:#e74469;border-color:#ff879f;color:#fff;box-shadow:0 5px 0 #8b2448,0 7px 12px #0005}.buttons button:last-child{background:#20aac6;border-color:#82e2ec;box-shadow:0 5px 0 #155a85,0 7px 12px #0005}.buttons button.pressed{background:#b82e50;border-color:#ffb0bd;color:#fff;box-shadow:0 2px 0 #8b2448;translate:0 3px}.buttons button:last-child.pressed{background:#168398;border-color:#b8f6fb;box-shadow:0 2px 0 #155a85}.buttons small{font-weight:800;letter-spacing:.5px}

#startScreen{justify-content:flex-start;padding-top:calc(50dvh + min(14.0625vw,25dvh))}.stage-choices{display:flex;gap:8px;align-items:center;pointer-events:auto}#cabinet:has(#startScreen:not([hidden])) .controller{visibility:hidden}#startScreen p{margin:6px}@media(max-height:450px){#startScreen p{display:none}#startScreen .stage-choices button{margin:4px}}

#cinematicUi{position:absolute;inset:0;pointer-events:none}#skipCinematic{position:absolute;right:max(18px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));pointer-events:auto;background:#081525df;border:1px solid #c2d9e5;color:#ecf6fa;font-size:12px;padding:10px 14px;letter-spacing:1px}#cabinet:has(#cinematicUi:not([hidden])) .controller{visibility:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.buttons button{width:88px;height:88px;flex:0 0 88px;border-width:4px}.buttons{gap:18px}.buttons span{font-size:32px}.buttons small{font-size:12px}#skipCinematic{min-height:48px;font-size:14px;padding:12px 18px}@media(max-height:450px){.buttons button{width:76px;height:76px;flex-basis:76px}.buttons{gap:16px}.buttons span{font-size:30px}.buttons small{font-size:11px}}@media(max-width:360px) and (orientation:portrait){.buttons button{width:76px;height:76px;flex-basis:76px}.buttons{gap:12px}.joystick{width:100px;height:100px}}

.stage-choices{gap:2px}.stage-choices #start{font-size:13px;padding:10px 12px;letter-spacing:1px}.top-buttons{gap:5px}.top-buttons button{min-height:36px}@media(max-width:360px){.stage-choices #start{font-size:12px;padding:8px}}

.stage-choices{flex-wrap:wrap;justify-content:center;max-width:min(96vw,540px)}.stage-choices #start{flex-basis:100%;max-width:210px}#cabinet:has(#cinematicUi:not([hidden])) .portrait-tip{display:none}#endText{max-width:560px;padding:0 16px;line-height:1.6}#cinematicUi[data-scene="treasure"] #skipCinematic{bottom:max(8px,env(safe-area-inset-bottom));font-size:12px;padding:8px 12px;min-height:40px}@media(max-height:450px){.stage-choices #start{flex-basis:auto;max-width:none}}

.stage-choices{width:min(94vw,440px)}.stage-choices #start{max-width:none}#rewardHint{color:#ffe0a3;font-size:11px}@media(max-height:450px){.stage-choices{width:auto;max-width:96vw}}.top-buttons{gap:4px}.top-buttons button{font-size:10px;padding:7px}.continue-campaign{font-size:12px!important;padding:8px!important}.overlay:has(#continueCampaign:not([hidden])) p.desktop{display:none}#endScreen[data-kind="round"],#endScreen[data-kind="finale"]{background:transparent;justify-content:flex-end;flex-direction:row;align-items:flex-end;gap:10px;padding-bottom:max(8px,env(safe-area-inset-bottom))}#endScreen[data-kind="round"] h2,#endScreen[data-kind="round"] p,#endScreen[data-kind="finale"] h2,#endScreen[data-kind="finale"] p{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#endScreen[data-kind="round"] button,#endScreen[data-kind="finale"] button{font-size:12px;padding:10px 12px;letter-spacing:1px;margin:0;min-height:44px}#cabinet:has(#endScreen:not([hidden])) .controller{visibility:hidden}


/* v2: compact top buttons so they no longer cover the in-canvas HUD. */.top-buttons button{font-size:11px;padding:6px 8px;min-width:36px;min-height:34px;letter-spacing:0}#pause{font-size:10px;letter-spacing:-1px}
#cabinet:has(#pauseScreen:not([hidden])) .controller{visibility:hidden}

/* v4: the canvas backing store is high resolution; keep it smooth when the browser scales it. */canvas#scene{image-rendering:auto}.scanlines{display:none}
.overlay .small-option{font-size:12px;padding:8px 14px;letter-spacing:1px}
@media (hover:hover) and (pointer:fine){.controller{display:none}}


/* Settings */
.settings{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#07041acc;z-index:20;padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
.settings .panel{width:min(620px,100%);max-height:100%;overflow:auto;background:linear-gradient(#1d1146,#120a2e);border:2px solid #ffd27a;box-shadow:0 0 0 4px #0b0620,0 20px 60px #000a;padding:14px 18px 16px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain;touch-action:pan-y}
.settings h2{margin:0;text-align:center;color:#ffdf78;font-size:20px;letter-spacing:4px}
.settings button{border:2px solid #8e6fc4;background:#2d1a5c;color:#f3e8ff;padding:8px 12px;font-weight:bold;letter-spacing:1px;font-size:12px;box-shadow:2px 3px #0b0620}
.settings button:hover{border-color:#ffe079}
.settings button:focus-visible,.settings input:focus-visible{outline:3px solid #ffe079;outline-offset:2px}
.settings .tabs{display:flex;gap:6px;justify-content:center}
.settings .tab.on{background:#ffd27a;color:#1a0c30;border-color:#fff2b0}
.settings .row{display:grid;grid-template-columns:96px 64px 1fr 48px;align-items:center;gap:10px;padding:6px 0}
.settings .label{color:#bfc9fa;font-size:12px;letter-spacing:1px}
.settings .toggle[aria-pressed="false"]{background:#3a1026;border-color:#a0507a;color:#ffc0d8}
.settings .toggle.wide{grid-column:2/4;justify-self:start;min-width:110px}
.settings output{font-size:12px;color:#fff2c7;text-align:right}
.settings input[type=range]{width:100%;accent-color:#ffd27a;height:28px}
.settings .note{font-size:10px;line-height:1.6;color:#a9a3cc;margin:0;text-align:center}
.settings .presets{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.settings .binds{display:flex;flex-direction:column;gap:4px}
.settings .bind-head,.settings .bind-row{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:6px;align-items:center}
.settings .bind-head span{font-size:9px;color:#8f86b8;letter-spacing:1px;text-align:center}
.settings .bind-row>span{font-size:11px;color:#dcd2ff;letter-spacing:1px}
.settings .bind{padding:6px 4px;font-size:11px;min-height:32px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.settings .bind.pad{border-color:#5aa8c8;background:#132c4a}
.settings .bind.listening{background:#ffd27a;color:#1a0c30;border-color:#fff;animation:blink .6s steps(2) infinite}
@keyframes blink{50%{opacity:.55}}
.settings .back{align-self:center;min-width:140px;background:#572b77;border-color:#fff2b0;color:#fff2b0;font-size:14px}
.stage-choices .secondary{font-size:13px;padding:10px 12px;background:#2d1a5c}
#cabinet:has(#settingsScreen:not([hidden])) .controller{visibility:hidden}
#cabinet.pad-active .controller{visibility:hidden}
@media(max-height:450px){.settings .panel{padding:8px 12px 10px;gap:6px}.settings h2{font-size:15px}.settings .row{padding:2px 0}.settings button{padding:6px 10px}.settings .bind{min-height:28px;padding:4px}}
@media(max-width:480px){.settings .row{grid-template-columns:72px 56px 1fr 40px;gap:6px}.settings .bind-row>span{font-size:9px}.settings .bind{font-size:9px}}
.stage-choices{flex-wrap:nowrap;width:auto}.stage-choices #start{flex-basis:auto}
#settingsButton{font-size:16px;line-height:1}

/* Profiles, high scores, name entry */
.profile-chip{position:absolute;top:max(10px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));pointer-events:auto;margin:0!important;padding:8px 12px!important;font-size:12px!important;letter-spacing:1px!important;background:#140c2ee6!important;border:1px solid #ffd27a!important;color:#ffe9b0!important;box-shadow:none!important;max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.settings .plist{display:flex;flex-direction:column;gap:5px}
.settings .prow{display:grid;grid-template-columns:1fr auto 70px;gap:10px;align-items:center;text-align:left;padding:9px 12px}
.settings .prow.on{border-color:#ffd27a;background:#3b2470}
.settings .prow .pbest{font-size:10px;color:#a9a3cc}
.settings .prow .ptag{font-size:10px;text-align:right;color:#8f86b8}
.settings .prow.on .ptag{color:#ffd27a}
.settings .field{display:grid;grid-template-columns:96px 1fr auto;gap:8px;align-items:center}
.settings .field label{font-size:11px;color:#bfc9fa;letter-spacing:1px}
.settings input[type=text],.score-entry input{font:inherit;font-size:14px;letter-spacing:2px;text-transform:uppercase;background:#0b0620;color:#fff2c7;border:2px solid #8e6fc4;padding:7px 10px;min-width:0;width:100%}
.settings input[type=text]:focus,.score-entry input:focus{outline:3px solid #ffe079;outline-offset:1px}
.settings .danger{border-color:#c0506f;background:#3a1026;color:#ffc0d8}
.settings button:disabled{opacity:.45;cursor:default}
table.scores{width:100%;border-collapse:collapse;font-size:12px}
table.scores th{font-size:9px;color:#8f86b8;letter-spacing:1px;text-align:left;padding:4px 6px;border-bottom:1px solid #3a2a6a}
table.scores td{padding:5px 6px;color:#e8e0ff;border-bottom:1px solid #22164a}
table.scores td.num{color:#fff2c7;font-weight:bold;letter-spacing:1px}
table.scores tr.new td{background:#ffd27a;color:#1a0c30}
table.scores td.empty{text-align:center;color:#a9a3cc;padding:18px}
.score-entry{pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:4px;margin:4px 0}
.score-entry p{margin:2px!important;color:#ffdf78!important;font-size:12px!important}
.score-entry .name-row{display:flex;gap:6px;align-items:center}
.score-entry input{width:190px}
.score-entry .name-row button{margin:0!important;padding:9px 14px!important;font-size:13px!important}
table.scores.mini{width:min(460px,92vw);background:#120a2ecc;pointer-events:none;margin:4px 0}
@media(max-width:560px){table.scores .date{display:none}.settings .field{grid-template-columns:1fr auto}.settings .field label{grid-column:1/3}}
@media(max-height:450px){table.scores td{padding:3px 6px}table.scores.mini{display:none}.profile-chip{top:6px}.score-entry input{width:150px}}

/* No zooming on phones: every game surface refuses pinch and double-tap
   zoom; the settings panels may only scroll vertically. Text fields use 16px
   type so iOS does not zoom in when they are focused. */
#cabinet,#cabinet *{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
#cabinet .settings .panel,#cabinet .settings .panel *{touch-action:pan-y}
#cabinet .panel input[type=text],#cabinet input[type=text]{font-size:16px!important;-webkit-user-select:text;user-select:text;touch-action:manipulation}

/* Modes and records */
.continues{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;pointer-events:none}
.stage-choices #startSpeed{font-size:13px;padding:10px 12px;letter-spacing:1px;background:#16466a;border-color:#9ff0ff;color:#e6fbff}
table.scores tbody.pb th{color:#ffd27a;text-align:left;padding-top:12px}
table.scores tbody.pb td{font-size:11px}
table.scores.mini td.num{font-size:11px}
#pauseInfo:empty{display:none}
@media(max-height:450px){.stage-choices button{font-size:11px!important;padding:8px 9px!important;letter-spacing:.5px!important}}
#endScreen[data-kind="speed"] table.scores.mini{display:table}

table.scores tbody.sect th{color:#ffd27a;text-align:left;padding-top:10px}
table.scores th.lvlpick{display:flex;align-items:center;gap:8px;justify-content:space-between}
table.scores th.lvlpick span{flex:1;text-align:center;color:#ffd27a;font-size:10px}
table.scores th.lvlpick button{padding:4px 10px;font-size:11px}
table.scores button.pbcell{background:transparent;border:1px solid transparent;box-shadow:none;color:inherit;padding:2px 4px;font:inherit;font-size:11px;letter-spacing:0;width:100%;text-align:left}
table.scores button.pbcell.on{border-color:#ffd27a;color:#ffd27a}

.records h3{margin:10px 0 4px;font-size:11px;color:#ffd27a;letter-spacing:1px;font-weight:bold}
.records .lvlpick{display:flex;align-items:center;gap:8px;margin-top:6px}
.records .lvlpick h3{flex:1;text-align:center;margin:0}
.records .lvlpick button{padding:4px 10px;font-size:11px}
table.scores.times{table-layout:fixed}
table.scores.times col.c-rank{width:34px}table.scores.times col.c-time{width:26%}table.scores.times col.c-date{width:24%}
table.scores.pbgrid td:first-child,table.scores.pbgrid th:first-child{width:34px}
@media(max-width:560px){table.scores.times col.c-date{width:0}}

/* Level record name entry over the held boss still */
.record-entry{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:6px;background:#060a19e6;border:2px solid #ffd27a;padding:10px 14px;box-shadow:0 10px 30px #000a}
.record-entry p{margin:0;color:#ffdf78;font-size:12px;letter-spacing:1px;text-align:center}
.record-entry .name-row{display:flex;gap:6px}
.record-entry input{font:inherit;font-size:16px!important;letter-spacing:2px;text-transform:uppercase;background:#0b0620;color:#fff2c7;border:2px solid #8e6fc4;padding:6px 10px;width:170px;-webkit-user-select:text;user-select:text;touch-action:manipulation}
.record-entry button{border:2px solid #fff2b0;background:#572b77;color:#fff2b0;font-weight:bold;letter-spacing:1px;padding:7px 12px;font-size:12px;touch-action:none}
.record-entry.saved input,.record-entry.saved button{display:none}
.overlay button.quit{background:#2a1838;border-color:#a98fc6;color:#e4d5f4;font-size:13px}
@media(max-height:450px){.record-entry{top:50%;padding:6px 10px}.record-entry input{width:140px}}
.record-entry.saved{pointer-events:none}

/* Difficulty picker */
.diffcards{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.settings .diffcard{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:10px 12px;min-height:84px}
.settings .diffcard b{font-size:15px;letter-spacing:3px;color:#ffd27a}
.settings .diffcard span{font-size:10px;line-height:1.5;color:#cfc6ef;font-weight:normal;letter-spacing:.5px}
.settings .diffcard[data-d="easy"] b{color:#a8f9ca}.settings .diffcard[data-d="hard"] b{color:#ffb070}.settings .diffcard[data-d="ultra"] b{color:#ff8aa8}
.settings .diffcard.default{border-color:#ffd27a}
@media(max-height:450px){.settings .diffcard{min-height:64px;padding:6px 10px}.settings .diffcard span{font-size:9px}}
@media(max-width:480px){.diffcards{grid-template-columns:1fr}}

.records .diffpick{display:flex;gap:4px;justify-content:center;margin:2px 0 4px}
.records .diffpick button{padding:4px 8px;font-size:10px}
.records .diffpick button.on{background:#ffd27a;color:#1a0c30;border-color:#fff2b0}

/* Controller / keyboard menu highlight (namake-12). Safari does not show a
   focus ring for focus moved by a controller, so the game marks the item. */
.nav-focus{outline:3px solid #ffe079!important;outline-offset:3px!important;box-shadow:0 0 0 6px #ffe07933,4px 4px #180d2e!important}
.settings .nav-focus,.osk .nav-focus{outline-offset:2px!important}
input.nav-focus{border-color:#ffe079!important}
.pad-only{display:none}
#cabinet.pad-active .pad-only{display:block;font-size:10px!important;color:#9cc9f1!important;margin:2px!important}
/* On-screen keyboard for typing names with a controller. */
.osk{position:absolute;inset:0;display:grid;place-items:center;background:#07041acc;z-index:30;padding:max(8px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));touch-action:none}
.osk-panel{background:#1a0f3a;border:2px solid #8e6fc4;box-shadow:6px 6px #0b0620;padding:10px 14px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;max-width:100%}
.osk-title{margin:0;font-size:12px;letter-spacing:2px;color:#ffdf78;text-transform:uppercase;text-align:center}
.osk-field{min-width:14ch;min-height:1.6em;padding:6px 12px;background:#0b0620;border:2px solid #ffe079;color:#fff2c7;font-size:18px;letter-spacing:3px;text-align:center;white-space:pre}
.osk-keys{display:flex;flex-direction:column;gap:4px}
.osk-row{display:flex;gap:4px;justify-content:center}
.osk-key{width:34px;height:32px;border:2px solid #8e6fc4;background:#2d1a5c;color:#f3e8ff;font-weight:bold;font-size:14px;padding:0;box-shadow:2px 2px #0b0620;touch-action:manipulation}
.osk-key.wide{width:auto;padding:0 12px}
.osk-key.done{background:#572b77;border-color:#fff2b0;color:#fff2b0}
.osk-key:hover{border-color:#ffe079}
.osk-help{margin:0;font-size:10px;color:#9cc9f1;letter-spacing:1px;text-align:center}
@media(max-height:450px){.osk-panel{padding:6px 10px;gap:4px}.osk-key{width:30px;height:26px;font-size:12px}.osk-field{font-size:15px;padding:3px 10px}.osk-title,.osk-help{font-size:9px}}

/* Title (namake-16): the menu fades and rises in after the opening. */
#startScreen .profile-chip,#startScreen .stage-choices button,#startScreen .continues,#startScreen p{opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,1.4,.4,1)}
#startScreen.ready .profile-chip,#startScreen.ready .stage-choices button,#startScreen.ready .continues,#startScreen.ready p{opacity:1;transform:none}
#startScreen.ready .stage-choices button:nth-child(2){transition-delay:.06s}#startScreen.ready .stage-choices button:nth-child(3){transition-delay:.12s}#startScreen.ready .stage-choices button:nth-child(4){transition-delay:.18s}#startScreen.ready .continues{transition-delay:.22s}#startScreen.ready p{transition-delay:.3s}
#startScreen{padding-top:0;justify-content:flex-end;padding-bottom:max(16px,4vh)}#startScreen p{margin:4px!important;font-size:11px}#startScreen #rewardHint{display:none}
#startScreen .stage-choices button{background:linear-gradient(#8a4ac0,#4a1f7a 55%,#2e1150);border:2px solid #ffd27a;color:#fff4d0;text-shadow:0 2px 0 #1a0c30;box-shadow:0 0 0 2px #120624,0 0 16px #ffb84a55,0 6px 0 #120624;letter-spacing:3px}
#startScreen .stage-choices button.secondary{background:linear-gradient(#3a2a6a,#1f1444);border-color:#a98be0;color:#e6dcff;box-shadow:0 0 0 2px #120624,0 6px 0 #120624}
#startScreen #start{font-size:18px;padding:14px 26px;animation:titlePulse 2.4s ease-in-out infinite}
@keyframes titlePulse{0%,100%{box-shadow:0 0 0 2px #120624,0 0 14px #ffb84a55,0 6px 0 #120624}50%{box-shadow:0 0 0 2px #120624,0 0 30px #ffcf6acc,0 6px 0 #120624}}
#startScreen .stage-choices button:hover{filter:brightness(1.15)}
#startScreen p{color:#cfc4f0}#startScreen.ready p{opacity:.8}
@media(max-height:450px){#startScreen{padding-bottom:max(8px,env(safe-area-inset-bottom))}#startScreen #start{font-size:14px;padding:8px 16px}#startScreen .stage-choices button{margin:4px}#startScreen p{display:none}}
@media(orientation:portrait){#startScreen{justify-content:flex-start;padding-top:calc(50vh + 56.25vw * .5)}}
@media(prefers-reduced-motion:reduce){#startScreen #start{animation:none}#startScreen *{transition:none!important}}
#startScreen .stage-choices{display:flex;flex-wrap:wrap;justify-content:center;max-width:100%;padding:0 8px}
#startScreen .stage-choices button{white-space:nowrap}
@media(orientation:portrait){#startScreen .stage-choices button{font-size:13px;padding:9px 14px}#startScreen #start{flex-basis:100%;max-width:260px}}
#startScreen:not([hidden]) ~ .portrait-tip{display:none!important}
