:root{color-scheme:dark;--gold:#ead09a;--ink:#142132}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 0,#30364e,#141e30 60%,#0c1422);color:#f4ead5;font:14px system-ui,'Noto Sans JP',sans-serif;min-height:100dvh}main{max-width:1280px;margin:auto;padding:0 26px}button,input{font:inherit}button,summary{cursor:pointer}button{color:inherit;border:1px solid #a6987970;background:#223347;border-radius:6px}button:hover,summary:hover{border-color:var(--gold);background:#31485b}button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #b8deeb;outline-offset:3px}[hidden]{display:none!important}header{height:66px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #b6aa8d30;max-width:1120px;margin:auto;gap:16px}.brand{font-family:Georgia,'Yu Mincho',serif;font-size:20px;font-weight:700;letter-spacing:1px;background:transparent;border:0;padding:8px 0}.brand:hover{background:transparent}.header-actions{display:flex;gap:9px;align-items:center}.icon-button{width:42px;height:42px;display:inline-grid;place-items:center;padding:9px;flex-shrink:0}.icon-button svg{width:23px;height:23px;display:block}.icon-button[aria-pressed=true]{color:#f8e0a6}#audio-options{position:relative}#audio-options summary{list-style:none;border:1px solid #a6987970;border-radius:6px;background:#223347}#audio-options summary::-webkit-details-marker{display:none}#audio-options>div{position:absolute;right:0;top:49px;width:195px;background:#f4efdf;color:#263c4c;border:1px solid #c6b899;border-radius:7px;padding:5px 17px 18px;z-index:20;box-shadow:0 8px 24px #0005}#audio-options label{display:block;font-size:12px;margin-top:13px}#audio-options input{display:block;width:100%;accent-color:#476b83;margin-top:8px}footer{display:flex;justify-content:space-between;border-top:1px solid #b6aa8d30;color:#bac2cc;font-size:10px;padding:20px 0;margin-top:30px;letter-spacing:1px}
/* The original moonlit cover now opens the marble game directly. */
#home-screen{min-height:calc(100dvh - 150px);display:flex;align-items:center;justify-content:center;padding:30px 0}.heist-cover{width:min(100%,600px);border:1px solid #a58459;border-radius:12px;overflow:hidden;background:#151329;box-shadow:0 18px 70px #060b1a55}.cover{height:490px;position:relative;isolation:isolate}.cover>svg{position:absolute;inset:0;width:100%;height:100%;z-index:-2}.cover::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#151329,transparent 60%);z-index:-1}.cover-title{position:absolute;bottom:25px;left:30px;right:30px}.cover-title small{font-size:10px;letter-spacing:3px;color:#f0c58c}.cover-title h1{font:700 49px/1.4 Georgia,'Yu Mincho',serif;margin:8px 0;color:#fff0cf;text-shadow:0 3px #25182a}.cover-title p{font-size:14px;color:#eadbc3;margin:5px 0}.cover-actions{display:grid;grid-template-columns:1fr 48px;gap:12px;padding:0 30px 27px}.primary{padding:16px 20px;text-align:left;background:linear-gradient(100deg,#edc78b,#c29155);border-color:#f5d59e;color:#251d26;font-weight:700;font-size:15px;display:flex;justify-content:space-between;align-items:center}.primary:hover{background:#f3d29a}.primary svg{width:19px;height:19px}.cover-actions .icon-button{height:54px;width:48px}.cover-actions p{grid-column:1/-1;font-size:11px;color:#c6bbce;margin:2px 0 0;text-align:center;letter-spacing:.4px}
/* Bright mission files retain contrast in the night operations room. */
#select-screen{max-width:1120px;min-height:calc(100dvh - 170px);margin:auto;padding-bottom:16px}.select-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:30px 0 20px;border-bottom:1px solid #b6aa8d30;margin-bottom:20px}.eyebrow{color:var(--gold);font-size:10px;letter-spacing:2px}.select-heading h2{font:600 28px Georgia,'Yu Mincho',serif;margin:10px 0;color:#f8edd7;letter-spacing:1px}.select-heading p:not(.eyebrow){color:#c4cdd3;font-size:12px}.select-heading button{padding:10px 16px;font-size:12px}.chapter-tabs{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px}.chapter-tabs button{padding:10px 14px;color:#e8edf0;background:#203449;border-color:#7e939e70;font-size:11px}.chapter-tabs button[aria-pressed=true]{background:#ead29b;border-color:#f3e4bb;color:#162a3a;font-weight:700}.stage-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.stage-card{display:grid;grid-template-columns:41px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:98px;padding:18px 15px 18px 12px;background:linear-gradient(120deg,#fff5,transparent 65%),#f3eedf;border:1px solid #c4bba2;border-left:4px solid var(--stage-glow,#e8cf88);border-radius:5px;text-align:left;box-shadow:0 3px 12px #050d1733;transition:transform .15s,border-color .15s}.stage-card:hover{transform:translateY(-2px);background:#fff8e9;border-color:#e3d3ac;border-left-color:var(--stage-glow)}.stage-index{display:grid;place-items:center;width:41px;height:46px;color:#fbefd4;background:var(--stage-ink,#1b2d3c);border:1px solid #7b8273;border-radius:3px;font:25px Georgia,serif}.stage-text strong{display:block;font-size:15px;line-height:1.5;color:#243342}.stage-text small{display:block;font-size:11px;color:#505d66;margin-top:5px;line-height:1.65}.stage-state{font-size:20px;color:#4f6067}.stage-state.cleared{font-size:8px;color:#773936;background:#f1e4d8;border:1px solid #c7a6a0;padding:5px;border-radius:3px;white-space:nowrap}.select-tip{color:#c2ccd4;font-size:11px;margin-top:22px}
/* The tower occupies the available height, with no sidebars or movement panel. */
body[data-screen=play]{background:radial-gradient(ellipse at 50% 20%,var(--tower-wall,#253659),#0d1623 72%)}body[data-screen=play] header{height:47px;max-width:960px;border:0}body[data-screen=play] .brand{font-size:16px}body[data-screen=play] header .icon-button,body[data-screen=play] header summary{width:36px;height:36px;padding:7px}body[data-screen=play] footer{display:none}#play-screen{padding-top:2px}.play-nav{display:grid;grid-template-columns:38px minmax(0,1fr) 38px 38px;align-items:center;gap:8px;max-width:650px;margin:0 auto 7px}.play-nav .icon-button{height:36px;width:38px;padding:7px}#stage-title{font-size:12px;font-weight:600;text-align:center;color:#f0e0ba;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.layout{display:flex;justify-content:center;margin:0;padding:0}.cabinet{width:min(650px,calc((100dvh - 126px)*.533333),calc(100vw - 36px));border:1px solid #9b8c6b;border-radius:9px;background:#162233;overflow:hidden;box-shadow:0 0 0 3px #07101b44,0 20px 60px #030a1466}.game-top{height:28px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-size:10px;letter-spacing:.6px;color:#e6dbc4;background:linear-gradient(100deg,var(--tower-wall,#253659),#172333);font-variant-numeric:tabular-nums}.viewport{position:relative}canvas{display:block;width:100%;aspect-ratio:480/900;touch-action:none;cursor:grab;image-rendering:auto}canvas:active{cursor:grabbing}#toast{position:absolute;bottom:3%;left:15%;width:70%;text-align:center;pointer-events:none;font-size:12px;color:#f6dfac;text-shadow:0 1px 4px #000;transition:opacity .15s}#overlay{position:absolute;inset:0;background:#101b2be8;backdrop-filter:blur(3px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}#overlay h2{font:700 29px/1.5 Georgia,'Yu Mincho',serif;color:#faefd7;margin:17px 0 10px}#overlay p{font-size:12px;line-height:1.8;color:#d0d9e0}#overlay button{width:76%;padding:13px 12px;margin:7px 0;background:#e9cd96;color:#202a38;font-weight:700;border-color:#efdab5}#overlay #result-select{background:#24394f;color:#f4e3c5;border-color:#b8ab8a80}#overlay small{color:#c9d2dc;font-size:10px;margin-top:12px}.cabinet:fullscreen{height:100dvh;width:100vw;background:#0b1421;display:flex;flex-direction:column;align-items:center;border:0;border-radius:0}.cabinet:fullscreen .game-top{height:30px;width:min(100vw,calc((100dvh - 30px)*.533333))}.cabinet:fullscreen .viewport{width:min(100vw,calc((100dvh - 30px)*.533333))}
@media(max-width:1000px){.stage-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){main{padding:0 13px}header{height:56px}.brand{font-size:17px}.header-actions{gap:6px}.icon-button{width:40px;height:40px}#home-screen{padding:20px 0;min-height:calc(100dvh - 130px)}.cover{height:min(100vw,420px)}.cover-title{left:22px;bottom:20px}.cover-title h1{font-size:37px}.cover-title p{font-size:12px}.cover-actions{padding:0 22px 23px;gap:9px}.cover-actions p{font-size:10px}.primary{font-size:14px;padding:15px}.select-heading{padding:23px 0 17px}.select-heading h2{font-size:25px}.stage-cards{grid-template-columns:1fr;gap:9px}.stage-card{min-height:84px;padding:14px 12px;grid-template-columns:38px minmax(0,1fr) auto}.stage-index{width:38px;height:43px;font-size:24px}.chapter-tabs{gap:6px}.chapter-tabs button{padding:9px 10px;font-size:10px}.select-tip{font-size:10px}.play-nav{gap:6px;grid-template-columns:36px minmax(0,1fr) 36px 36px}.play-nav .icon-button{width:36px}#stage-title{font-size:11px}.cabinet{width:min(calc(100vw - 28px),calc((100dvh - 126px)*.533333))}#overlay h2{font-size:25px}#overlay p{font-size:11px}footer{font-size:9px;margin-top:20px}}
@media(prefers-reduced-motion:reduce){.stage-card{transition:none}.stage-card:hover{transform:none}}
.cabinet{position:relative}#exit-fullscreen{display:none}.cabinet:fullscreen #exit-fullscreen{display:grid;position:absolute;right:8px;top:7px;z-index:5;background:#162738e8}

.select-heading .icon-button{padding:9px}.play-nav:has(#fullscreen[hidden]){grid-template-columns:38px minmax(0,1fr) 38px}
/* First visit: the goal and input are readable before entering a stage. */
#home-screen{padding:18px 0}.cover{height:min(420px,calc(100dvh - 300px));min-height:220px}.cover-title{bottom:20px}.cover-actions{padding-bottom:20px}.stage-select-button{grid-column:1/-1;min-height:44px;padding:10px;background:#24374e;border-color:#948971;color:#f4e4c5}.cover-actions .home-how{font-size:12px;line-height:1.8;text-align:left;color:#e7dece;margin:0}.cover-actions p{grid-column:1/-1}#home-ad{grid-column:1/-1;max-width:100%;width:100%;min-height:60px;padding:16px 8px;text-align:center;background:#e9e9e1;color:#555b5f;border:1px dashed #9a9f9d;font-size:11px;overflow-wrap:anywhere;pointer-events:none}#home-ad[hidden]{display:none!important}#play-hint{position:absolute;top:15%;left:7%;width:86%;padding:9px 12px;text-align:center;border:1px solid #d5be8e70;background:#17283beF;border-radius:6px;color:#f8e8c7;font-size:13px;line-height:1.6;pointer-events:none}#overlay[data-result=clear] #start{background:#24394f;color:#f4e3c5;border-color:#b8ab8a80}#overlay[data-result=clear]:has(#next-stage[hidden]) #start{background:#e9cd96;color:#202a38}#overlay p{max-width:90%}button,summary{-webkit-tap-highlight-color:transparent}canvas{user-select:none;-webkit-user-select:none}body{overscroll-behavior-x:none}main{padding-bottom:env(safe-area-inset-bottom)}
@media(max-width:600px){.cover{height:min(65vw,calc(100dvh - 325px));min-height:185px}.cover-title{bottom:15px;left:20px}.cover-title h1{font-size:32px}.cover-title p{font-size:11px}.cover-title small{font-size:8px}.cover-actions{padding:0 20px 18px;gap:8px}.cover-actions .home-how{font-size:11px;line-height:1.7}#play-hint{font-size:12px;padding:8px;top:15%}.heist-cover{width:min(100%,440px)}#home-screen{min-height:0;padding:18px 0}footer{margin-top:12px;padding:14px 0}}

#overlay h2{font-size:clamp(20px,5vw,28px)}canvas:focus-visible{outline:2px solid #c7dbdf;outline-offset:-2px}
@media(max-height:500px) and (orientation:landscape){#overlay{padding:8px}#overlay h2{font-size:16px;margin:4px 0}#overlay p{font-size:10px;margin:4px 0}#overlay button{width:96%;min-height:36px;font-size:11px;padding:7px 5px;margin:3px 0}#overlay small{font-size:9px;margin-top:4px}#overlay .eyebrow{font-size:8px}}

.cover-actions{grid-template-columns:1fr}.cover-actions .primary{width:100%}.stage-card.locked{background:#dedbcf;color:#62707a;border-left-color:#aaa698;box-shadow:none;cursor:not-allowed}.stage-card.locked:hover{transform:none;background:#dedbcf;border-color:#b5b3a9}.stage-card.locked .stage-text{opacity:.65}.stage-card.locked .stage-index{background:#64717c;color:#efede4}.stage-card.locked .stage-state{font-size:16px;filter:grayscale(1)}

/* Unreleased destination: an empty, dark dossier, distinct from playable stages. */
.stage-card.coming-soon-card{background:#141b29;border:1px dashed #69727d;border-left:4px solid #535b69;box-shadow:none;min-height:110px}.stage-card.coming-soon-card:hover{transform:none;background:#1b2332;border-color:#8b94a1}.coming-soon-card .stage-index{background:#0c121d;border-color:#4c5868;color:#aeb7c6}.coming-soon-card .stage-text strong{color:#d0d6df}.coming-soon-card .stage-text small{color:#a9b3c3}.coming-soon-card .stage-state{color:#8d97a8}#coming-screen{min-height:calc(100dvh - 150px);display:flex;align-items:center;justify-content:center;padding:24px 0}.coming-panel{width:min(100%,520px);padding:38px 26px;text-align:center;border:1px dashed #596475;border-radius:12px;background:linear-gradient(#141c2b,#0b111c);box-shadow:0 20px 65px #0003}.coming-panel .eyebrow{color:#9aa8ba}.coming-number{font:100px/1.2 Georgia,serif;color:#637085;margin:20px 0 10px;letter-spacing:6px}.coming-panel h2{font:600 30px Georgia,'Yu Mincho',serif;letter-spacing:4px;color:#d6dce6;margin:15px 0}.coming-panel p{font-size:13px;color:#aeb9cb;line-height:1.8}.coming-status{display:block;margin:22px auto;padding:9px 12px;width:fit-content;border:1px solid #4d596b;border-radius:4px;font-size:12px;color:#b6c0d0;background:#101827}.coming-panel button{width:100%;min-height:46px;margin-top:12px;padding:12px;border-color:#69798e;color:#e2e8f1;background:#263449}@media(max-width:600px){.coming-panel{padding:25px 20px}.coming-number{font-size:82px}.coming-panel h2{font-size:26px}}
