:root{color-scheme:dark;font-family:Georgia,'Times New Roman',serif;color:#f8f5ed;background:#080714}
*{box-sizing:border-box}body{margin:0;min-height:100dvh;display:grid;place-items:center;padding:14px;background:radial-gradient(ellipse at 50% 30%,#26173c,#050511 74%)}
.title-shell{width:min(1400px,100%,calc((100dvh - 30px)*1.77778))}.title-scene{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;isolation:isolate;background:#110e27;border:1px solid #9891aa;box-shadow:0 0 0 3px #171124,0 0 0 4px #40394f,0 22px 70px #000a;outline:none}
.title-scene [hidden]{display:none!important}.title-background,.title-clouds,.title-shade,#title-embers{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.title-background{object-fit:cover;image-rendering:pixelated}.title-clouds{background:url('assets/title-screen/storm-ruins-v1.png') center/cover;image-rendering:pixelated;clip-path:inset(0 0 43% 0);mask-image:linear-gradient(#000 35%,transparent 59%);mix-blend-mode:screen;opacity:.23;animation:cloud-drift 45s ease-in-out infinite alternate}.title-shade{background:linear-gradient(#05030d3d,#10092019 45%,#07021037 78%,#040207bb)}#title-embers{image-rendering:pixelated;mix-blend-mode:screen}
.title-wordmark{position:absolute;inset:17% 5% auto;text-align:center;z-index:2;opacity:0;transform:translateY(12px) scale(.95);transition:opacity 2s ease,transform 3s ease;pointer-events:none}.title-scene.is-revealing .title-wordmark{opacity:1;transform:translateY(0) scale(1)}h1{margin:0;font-weight:700;line-height:.88;letter-spacing:-.045em;text-transform:uppercase;filter:drop-shadow(0 4px 0 #29162a) drop-shadow(0 8px 6px #030007)}h1 span{display:block;color:#dbb57a;background:linear-gradient(#fff1bb 3%,#f0d395 18%,#c38d4d 43%,#ffe7a6 49%,#8f542f 71%,#d6ab66 94%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;-webkit-text-stroke:.5px #b38551}.title-beyond{font-size:clamp(34px,6.9vw,101px);letter-spacing:.03em}.title-horizon{font-size:clamp(59px,11.5vw,162px);margin-top:10px}.title-rule{height:2px;width:64%;margin:22px auto 0;background:linear-gradient(90deg,transparent,#d6af72,transparent)}
button,input{font:inherit}button{color:#f8f8ef;border:1px solid #c4c6d8;border-radius:2px;background:#181f62;padding:9px 15px;cursor:pointer;text-shadow:1px 2px #060523;min-height:42px}button:hover{background:#263484}button:disabled{color:#999bb5;background:#171c49;cursor:default}button:focus-visible,input:focus-visible,[data-gamepad-focus]{outline:2px solid #fff1a2!important;outline-offset:3px!important}.start-prompt{position:absolute;z-index:3;left:50%;bottom:19%;transform:translateX(-50%);font:clamp(13px,1.6vw,21px)/1.2 Georgia,serif;letter-spacing:.15em;text-transform:uppercase;background:transparent;border:0;text-shadow:2px 2px #090314,0 0 14px #f1bd6a5e;padding:14px 24px;white-space:nowrap}.start-prompt:hover{background:#180e3755}.title-scene[data-view="press"] .start-prompt{animation:press-breathe 3s ease-in-out infinite}
.classic-panel{position:absolute;z-index:4;border:2px solid #daddec;border-radius:5px;background:linear-gradient(115deg,#243084f5,#171e68fa 48%,#0d164cfb);box-shadow:inset 0 0 0 2px #5a69a3,0 0 0 2px #181425,0 8px 24px #0009;padding:19px 24px;text-shadow:1px 2px #07052c}.main-panel{left:50%;bottom:12%;transform:translateX(-50%);width:30%;min-width:230px;padding:15px 28px}.menu-choice{display:block;width:100%;text-align:left;border:0;border-radius:0;background:transparent;font-size:clamp(17px,1.9vw,25px);padding:8px 15px}.menu-choice:focus,.menu-choice[data-gamepad-focus],.menu-choice:hover{background:#ffffff10}.menu-choice:focus::before,.menu-choice[data-gamepad-focus]::before{content:'▸';position:absolute;margin-left:-24px;color:#fff8ce}.menu-choice:disabled{background:transparent}
.files-panel{width:68%;left:16%;top:31%;bottom:9%;display:flex;flex-direction:column;gap:9px;padding:14px 20px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-heading h2{font-size:clamp(20px,2.2vw,29px);margin:0;letter-spacing:.03em}.small-button{font-size:13px;padding:5px 12px;min-height:30px}.panel-help{font:13px/1.4 system-ui;margin:0;color:#d9dbf2}.save-files{display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:8px;flex:1;min-height:0}.save-file{position:relative;display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;text-align:left;width:100%;height:100%;min-height:0;padding:8px 14px;border:1px solid #9aabd4;background:#0a134d77;gap:12px}.save-file:hover{background:#4653a14d}.save-file:disabled{background:#080e3544}.file-number{font-size:19px;white-space:nowrap}.file-data{display:flex;flex-direction:column;gap:3px;min-width:0}.file-place{font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-detail,.file-date{font:11px/1.3 system-ui;color:#d1d5ed}.file-date{color:#aeb8d7}.file-roster{display:flex;align-items:center;gap:3px;max-height:36px;overflow:hidden}.file-roster canvas{width:30px;height:35px;image-rendering:pixelated;flex-shrink:0}.file-names{font:11px system-ui;color:#e2e6ff}.empty-file{grid-template-columns:100px minmax(0,1fr)}.file-empty{font:15px Georgia,serif;color:#b7c1e0}
.title-scene[data-view="files"] .title-wordmark,.title-scene[data-view="overwrite"] .title-wordmark,.title-scene[data-view="settings"] .title-wordmark{top:5%;transform:scale(.6);transform-origin:center top}.title-scene[data-view="menu"] .title-wordmark{top:12%;transform:scale(.87);transform-origin:center top}.confirm-panel{left:25%;width:50%;top:43%;padding:25px 28px}.confirm-panel h2{margin:0 0 12px;font-size:26px}.confirm-panel p{font:15px/1.6 system-ui;color:#e5e6f4}.confirm-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.confirm-actions button{flex:1;white-space:nowrap}.title-scene[data-view="overwrite"]::after{content:'';position:absolute;inset:0;background:#0702158c;z-index:3}
.settings-panel{left:30%;width:40%;top:33%;bottom:9%;display:flex;flex-direction:column;gap:11px}.settings-panel>button{width:100%;text-align:left}.volume-label{display:flex;justify-content:space-between;font:15px system-ui}.settings-panel input{width:100%;accent-color:#eddda5;min-height:22px}.settings-note{font:11px/1.45 system-ui;color:#cbd2ea;margin:0}.title-scene .controller-bar{font:10px/1.4 system-ui;color:#c5cbe7;margin:0;gap:7px}.title-scene .controller-bar button{font:11px Georgia,serif;min-height:27px;padding:4px 10px;color:#f2f4ff;background:#222c72;border:1px solid #b8c3de}.title-scene .controller-guide{position:fixed;left:var(--title-center-x,50vw);top:var(--title-center-y,50dvh);transform:translate(-50%,-50%);margin:0;width:min(500px,var(--title-panel-width,90vw));max-height:var(--title-panel-height,80dvh);overflow:auto;background:#182262;border:2px solid #d8dbea;color:#eff2ff;border-radius:5px;z-index:10}.title-scene .controller-guide::backdrop{background:#04001588}.title-scene .controller-guide dd{color:#d4ddf6}
.title-status{position:absolute;z-index:6;left:10%;right:10%;bottom:4.7%;margin:0;color:#f2e6bd;font:12px/1.5 system-ui;text-align:center;text-shadow:1px 2px #080214}.title-status[data-error="true"]{color:#ffe3a5;background:#100c27e8;border:1px solid #a88060;padding:8px 12px}.title-footer{position:absolute;left:17px;right:17px;bottom:12px;z-index:2;display:flex;justify-content:space-between;gap:12px;font:10px system-ui;color:#b6acba;letter-spacing:.05em}.title-scene.is-frozen .title-clouds,.title-scene.is-frozen .start-prompt{animation-play-state:paused}.title-scene:fullscreen{height:min(100dvh,56.25vw);width:min(100vw,177.77778dvh);margin:auto;border:0;aspect-ratio:16/9}.title-scene:fullscreen::backdrop{background:#04030c}
@keyframes cloud-drift{from{transform:translate(-1.5%,0) scale(1.04)}to{transform:translate(1.5%,-1.2%) scale(1.04)}}@keyframes press-breathe{0%,100%{opacity:.75}50%{opacity:1}}
@media(max-width:800px){body{padding:6px}.title-shell{width:min(100%,calc((100dvh - 14px)*1.77778))}.title-beyond{font-size:7vw}.title-horizon{font-size:11.8vw;margin-top:5px}.title-rule{margin-top:12px}.main-panel{min-width:180px;padding:9px 18px}.menu-choice{font-size:17px;padding:5px 10px;min-height:31px}.files-panel{width:88%;left:6%;top:28%;bottom:11%;padding:10px 13px;gap:5px}.panel-help{font-size:10px}.save-files{gap:5px}.save-file{grid-template-columns:66px 1fr;gap:7px;padding:4px 9px}.file-number{font-size:15px}.file-place{font-size:14px}.file-detail,.file-date,.file-names{font-size:9px}.file-roster{max-height:27px}.file-roster canvas{width:23px;height:27px}.file-data{gap:1px}.settings-panel{left:22%;width:56%;top:29%;bottom:10%;padding:11px 16px;gap:7px}.settings-panel>button{min-height:30px;font-size:13px;padding:5px 10px}.settings-panel .controller-bar span{display:none}.settings-note{font-size:9px}.confirm-panel{left:15%;width:70%;top:39%;padding:17px 20px}.confirm-panel h2{font-size:21px}.confirm-panel p{font-size:12px}.confirm-actions{margin-top:12px}.confirm-actions button{font-size:12px;min-height:34px;padding:7px 10px}.title-footer{font-size:8px;bottom:7px;left:10px;right:10px}.title-status{font-size:10px;bottom:5.1%}.volume-label{font-size:12px}}
@media(max-width:520px){.title-shell{width:100%}.title-scene{aspect-ratio:4/3}.title-background{object-position:center}.title-beyond{font-size:8vw}.title-horizon{font-size:14vw}.title-wordmark{top:24%}.main-panel{bottom:13%;width:50%}.start-prompt{bottom:22%;font-size:14px}.files-panel{top:26%;bottom:12%}.file-date{display:none}.file-detail{font-size:10px}.file-place{font-size:14px}.settings-panel{width:82%;left:9%;top:26%;bottom:12%;gap:8px}.confirm-panel{width:84%;left:8%;top:34%}.title-scene[data-view="files"] .title-wordmark,.title-scene[data-view="settings"] .title-wordmark,.title-scene[data-view="overwrite"] .title-wordmark{top:4%;transform:scale(.7)}.title-scene[data-view="menu"] .title-wordmark{top:15%;transform:scale(.9)}.title-scene:fullscreen{aspect-ratio:4/3;height:min(100dvh,75vw);width:min(100vw,133.33333dvh)}}
@media(prefers-reduced-motion:reduce){.title-clouds,.start-prompt{animation:none!important}.title-wordmark{transition:none}}
.settings-panel{overflow:auto}.settings-panel>*{flex-shrink:0}.settings-panel input{margin-inline:0}
@media(max-height:720px){.file-date{display:none}.file-roster{max-height:27px}.file-roster canvas{width:23px;height:27px}}
@media(max-width:520px){.file-roster canvas{display:none}.file-data{gap:0}.file-roster{max-height:15px}}
