@font-face{font-family:Neo;src:url(/fonts/neodgm.woff2)format("woff2");font-display:swap}:root{font-synthesis:none;color:#edf5ff;--night:#080c1b;--metal:#131b32;--panel:#10172b;--ink:#edf5ff;--muted:#a8b5d2;--cyan:#37e8f4;--pink:#ff4d9d;--amber:#ffd36a;--line:#2c3853;background:#080c1b;font-family:system-ui,-apple-system,Apple SD Gothic Neo,Malgun Gothic,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;color:inherit;background:0 0;border:0}button:disabled{cursor:default;opacity:.4}a{color:inherit;text-decoration:none}button,a,input,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}h1,h2,h3,p{margin:0}::selection{color:#080c1b;background:#37e8f4}.arcade{background:radial-gradient(ellipse at 48% 80%,#10213e70,transparent 60%),var(--night);min-height:100svh}.site-header{z-index:2;border-bottom:1px solid #2c38536b;align-items:center;gap:55px;max-width:1330px;margin:auto;padding:20px 35px;display:flex;position:relative}.brand{white-space:nowrap;align-items:center;gap:10px;font-family:Neo,monospace;font-size:25px;line-height:1.1;display:flex}.brand-bottom{color:var(--cyan);text-shadow:0 0 17px #37e8f480;margin-left:6px;display:inline-block}.brand-symbol{color:var(--pink);text-shadow:0 0 15px #ff4d9d80;font-family:system-ui;font-size:30px}.site-header nav{align-items:center;gap:25px;font-size:13px;display:flex}.site-header nav a,.site-header nav button{color:var(--muted);padding:13px 0;position:relative}.site-header nav .active{color:var(--ink)}.site-header nav .active:after{content:"";background:var(--cyan);height:2px;position:absolute;bottom:3px;left:0;right:0;box-shadow:0 0 10px #37e8f460}.site-header nav button span{color:var(--pink);margin-left:6px}.header-free{letter-spacing:2px;color:var(--amber);margin-left:auto;font-family:Neo,monospace;font-size:12px}.settings-button{color:var(--muted);align-items:center;gap:8px;padding:11px 13px;font-size:12px;display:flex}.settings-button>span:first-child{font-size:23px;line-height:1}.lobby{max-width:1260px;margin:auto;padding:0 0 45px}.welcome{isolation:isolate;align-items:center;min-height:400px;margin-top:18px;display:flex;position:relative;overflow:hidden}.arcade-environment{object-fit:cover;object-position:center;z-index:-3;width:100%;height:100%;position:absolute;inset:0}.welcome-shade{z-index:-2;background:linear-gradient(90deg,#080c1be6 0%,#080c1b9c 24%,#0000 65%),linear-gradient(#0000 73%,#080c1b 100%);position:absolute;inset:0}.welcome-copy{max-width:620px;padding:35px 36px 38px;position:relative}.open-label{color:var(--cyan);letter-spacing:1.3px;align-items:center;gap:10px;margin-bottom:21px;font-family:Neo,monospace;font-size:12px;display:flex}.open-label i{background:var(--cyan);width:6px;height:6px;box-shadow:0 0 12px var(--cyan);border-radius:50%}.welcome h1{letter-spacing:-3px;font-family:Neo,monospace;font-size:74px;font-weight:400;line-height:1.15}.welcome h1 span:first-child{color:#ffeff7;text-shadow:0 0 2px #fff,0 0 18px #ff4d9d80,0 0 45px #ff4d9d40}.welcome h1 span:last-child{color:#e7feff;text-shadow:0 0 2px #fff,0 0 18px #37e8f480,0 0 45px #37e8f440}.welcome p{color:#c1cbe0;text-shadow:0 2px 6px #000;margin-top:21px;font-size:14px;line-height:1.9}.entry-button{color:#e5fcff;border-bottom:1px solid #8adbe3;align-items:center;gap:22px;margin-top:24px;padding:8px 0;font-size:13px;display:inline-flex}.entry-button span{color:var(--cyan);font-size:20px}.arcade-sign{color:var(--amber);background:#0a1022bd;border:1px solid #ffd36a8c;flex-direction:column;gap:5px;padding:14px 22px;font-family:Neo,monospace;display:flex;position:absolute;bottom:45px;right:43px;transform:rotate(-4deg);box-shadow:0 0 17px #ffd36a22,inset 0 0 15px #ffd36a0a}.arcade-sign span{letter-spacing:3px;font-size:12px}.arcade-sign strong{text-shadow:0 0 13px #ffd36a55;font-size:25px;font-weight:400}.arcade-sign i{display:none}.led-board{background:radial-gradient(circle,#3343569c .9px,#0000 1.2px) 0 0/5px 5px,#0b1020;border:1px solid #3b475b;border-top:2px solid #5b6274;justify-content:center;align-items:center;gap:18px;min-height:58px;margin:0 30px 40px;padding:15px 20px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 3px 12px #000b,0 1px #ffffff10}.led-board p{color:var(--amber);letter-spacing:1.4px;text-align:center;text-shadow:0 0 9px #ffd36a65;font-family:Neo,monospace;font-size:15px;line-height:1.65}.led-indicator{background:var(--amber);flex:none;width:7px;height:7px;box-shadow:0 0 10px #ffd36a88}.led-end{color:#bf9c58;font-size:20px}.lights-on .led-board:after{content:"";background:linear-gradient(90deg,#0000,#ffd36a09,#0000);animation:9s linear infinite led-sweep;position:absolute;inset:0;transform:translate(-100%)}.lights-on .open-label i{animation:5s ease-in-out infinite slow-light}.lights-on .arcade-sign{animation:7s ease-in-out infinite sign-breathe}@keyframes led-sweep{to{transform:translate(100%)}}@keyframes slow-light{50%{opacity:.45}}@keyframes sign-breathe{50%{box-shadow:0 0 25px #ffd36a30,inset 0 0 15px #ffd36a0a}}.shelf-heading{justify-content:space-between;align-items:end;gap:25px;margin-bottom:22px;padding:0 30px;scroll-margin-top:25px;display:flex}.eyebrow{color:#879bbd;letter-spacing:2px;margin-bottom:10px;font-family:Neo,monospace;font-size:11px;display:block}.shelf-heading h2{letter-spacing:-1px;font-size:23px;font-weight:700}.search{color:var(--muted);border-bottom:1px solid #52617c;align-items:center;gap:10px;width:245px;padding:10px 0;display:flex}.search>span{font-size:23px;line-height:1}.search input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:none;font-size:13px}.search input::placeholder{color:#8292af}.search:focus-within{border-color:var(--cyan)}.search button{padding:0;font-size:22px}.filter-bar{flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:27px;padding:0 30px;display:flex}.filter-bar button{color:#a4b3cf;white-space:nowrap;border:1px solid #0000;border-radius:2px;min-height:39px;padding:10px 16px;font-size:12px}.filter-bar button.active{color:var(--cyan);background:#37e8f40a;border-color:#37e8f45c;box-shadow:inset 0 -2px #37e8f430}.filter-bar button:hover:not(.active){color:var(--ink);background:#1c2740}.game-count{letter-spacing:1px;color:#8191b0;margin-left:auto;font-family:Neo,monospace;font-size:11px}.game-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 25px;padding:0 30px;display:grid}.game-card{isolation:isolate;background:linear-gradient(110deg,#263049 0%,#131b32 3%,#19223a 97%,#080c17 100%);border:1px solid #3b455e;border-radius:8px 8px 3px 3px;transition:transform .22s,box-shadow .22s;position:relative;box-shadow:0 10px 26px #0006,4px 0 #0008,inset 1px 0 #8ba0c019}.game-card:hover,.game-card:focus-within{box-shadow:0 14px 34px #0008,0 0 27px color-mix(in srgb,var(--card-accent) 10%,transparent);transform:translateY(-5px)}.cabinet-marquee{background:var(--card-color);border:1px solid color-mix(in srgb,var(--card-accent) 33%,#1b2338);color:var(--card-accent);letter-spacing:1px;text-shadow:0 0 10px color-mix(in srgb,var(--card-accent) 45%,transparent);border-radius:3px;justify-content:space-between;align-items:center;margin:10px 11px 0;padding:12px 14px;font-family:Neo,monospace;font-size:13px;display:flex;box-shadow:inset 0 0 16px #0006}.cabinet-power{box-shadow:0 0 11px var(--card-accent);border-radius:50%;font-family:system-ui;font-size:6px}.screen-bezel{background:linear-gradient(#111728,#242b3f);border-bottom:1px solid #3d455d;padding:11px 15px 13px}.card-art{aspect-ratio:4/3;isolation:isolate;background:#0b1222;border:3px solid #070b14;border-radius:5px;position:relative;overflow:hidden;box-shadow:0 0 0 1px #5760795c,inset 0 0 18px #000}.artwork{object-fit:cover;width:100%;height:100%;display:block}.screen-glass{pointer-events:none;background:linear-gradient(135deg,#fff2 0%,#0000 23% 70%,#0004 100%);position:absolute;inset:0}.card-play{letter-spacing:1px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;white-space:nowrap;background:#081026cc;border:1px solid #ffffff45;align-items:center;gap:10px;padding:8px 13px;font-family:Neo,monospace;font-size:14px;transition:opacity .2s,transform .2s;display:flex;position:absolute;bottom:13px;left:50%;transform:translate(-50%)translateY(8px)}.card-play span{color:var(--card-accent);font-size:10px}.game-card:hover .card-play,.game-link:focus-visible .card-play{opacity:1;transform:translate(-50%)translateY(0)}.card-copy{padding:18px 20px 19px}.card-category{color:var(--card-accent);letter-spacing:1px;margin-bottom:8px;font-size:10px;display:block}.card-copy h3{letter-spacing:-.5px;color:#f0f5ff;font-family:Neo,monospace;font-size:25px;font-weight:400;line-height:1.3}.card-copy p{color:#a8b5d0;margin-top:8px;font-size:12px;line-height:1.7}.card-meta{color:#8f9eba;align-items:center;gap:11px;margin-top:15px;font-size:10px;display:flex}.card-meta span+span:before{content:"·";color:#5f708c;margin-right:11px}.best{color:var(--amber);margin-top:9px;font-size:11px;display:block}.cabinet-deck{background:linear-gradient(170deg,#2f3b53,#17213a 50%,#0c1326);border-top:2px solid #434c64;border-radius:0 0 3px 3px;align-items:center;gap:12px;height:65px;padding:0 25px;display:flex;position:relative;box-shadow:inset 0 2px #67718b33}.arcade-stick{background:#0b0f19;border-radius:50%;width:34px;height:22px;margin-right:5px;display:block;position:relative;transform:rotate(-6deg);box-shadow:0 0 0 2px #3e4556}.arcade-stick:before{content:"";background:linear-gradient(90deg,#8691a3,#c7cfda,#5a6374);border-radius:3px;width:8px;height:29px;position:absolute;bottom:7px;left:13px}.arcade-stick:after{content:"";background:radial-gradient(circle at 32% 24%,#c0fbff,var(--cyan) 34%,#158593 80%);border-radius:50%;width:31px;height:29px;position:absolute;bottom:24px;left:2px;box-shadow:2px 4px 6px #0007}.arcade-button{background:radial-gradient(circle at 40% 30%,#8bf5fc,#23c6d4 55%,#128591);border-radius:50%;width:24px;height:24px;display:block;box-shadow:0 3px #07525e,0 0 0 3px #0e1424,inset 0 1px #f1ffff8c}.button-pink{background:radial-gradient(circle at 40% 30%,#ffb6d6,#ef4b95 55%,#a32962);box-shadow:0 3px #641039,0 0 0 3px #0e1424,inset 0 1px #fff1f88c}.deck-label{color:#7187a8;letter-spacing:1px;margin-left:auto;margin-right:44px;font-family:Neo,monospace;font-size:9px}.favorite{z-index:2;color:#a4b4cf;background:#171f35;border:1px solid #64708a57;border-radius:4px;place-items:center;width:32px;height:31px;font-size:23px;line-height:1;display:grid;position:absolute;bottom:20px;right:18px;box-shadow:0 2px #060b19}.favorite.is-favorite{color:var(--pink);box-shadow:0 0 13px #ff4d9d18,0 2px #060b19}.favorite:hover{color:var(--pink)}.empty{text-align:center;padding:70px 20px}.empty h3{margin-bottom:20px;font-size:18px;font-weight:500}.lobby-note{border-top:1px solid #2c38536e;border-bottom:1px solid #2c38536e;align-items:center;gap:20px;margin:45px 30px 30px;padding:24px 0;display:flex}.lobby-note>span:first-child{color:var(--pink);text-shadow:0 0 17px #ff4d9d55;font-size:30px}.lobby-note p{color:#a8b5d2;font-size:12px;line-height:1.9}.lobby-note strong{color:#d3def3;font-weight:400}.note-end{letter-spacing:2px;color:#7186ab;margin-left:auto;font-family:Neo,monospace;font-size:10px}.planned-list{color:#92a1bd;margin:0 30px;font-size:12px}.planned-list summary{cursor:pointer;min-height:36px}.planned-list summary span{color:#cbd6ee;margin-left:8px}.planned-list>p{margin:8px 0 18px;line-height:1.8}.planned-list>div{flex-wrap:wrap;gap:8px;display:flex}.planned-list>div span{background:#121c31;border:1px solid #28334b;padding:7px 11px;font-size:11px}footer{color:#8597b8;border-top:1px solid #2c38536e;align-items:center;gap:25px;max-width:1200px;margin:auto;padding:24px 0 32px;font-size:11px;display:flex}.footer-brand{color:#c9d8f0;font-family:Neo,monospace;font-size:18px}footer button{color:inherit;margin-left:auto;font-size:11px}.primary-button,.secondary-button,.small-button{border-radius:3px;justify-content:center;align-items:center;min-height:46px;padding:12px 22px;font-size:14px;font-weight:650;display:inline-flex}.primary-button{color:#061623;background:var(--cyan);border:1px solid #a1fcff;transition:filter .15s,transform .15s;box-shadow:0 4px #127381,0 0 23px #37e8f419}.primary-button:hover{filter:brightness(1.12)}.primary-button:active{transform:translateY(2px);box-shadow:0 2px #127381}.secondary-button{color:#e1ebfc;background:#18263f;border:1px solid #50627f}.secondary-button:hover{border-color:var(--cyan)}.small-button{color:#bdcee8;background:#111c31;border:1px solid #435572;min-height:36px;padding:7px 13px;font-size:12px}.text-button{color:#aebfdf;padding:10px 1px;font-size:13px}.text-button:hover{color:var(--cyan)}.loading{text-align:center;color:var(--cyan);padding:100px 30px;font-family:Neo}.play-page{max-width:1100px;margin:auto;padding:17px 24px 30px}.play-nav{justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;display:flex}.play-nav>span{letter-spacing:1px;color:#748aac;font-family:Neo;font-size:11px}.play-heading{justify-content:space-between;align-items:center;max-width:720px;margin-bottom:19px;display:flex}.play-heading h1{font-family:Neo,monospace;font-size:34px;font-weight:400}.score-box{text-align:right;background:radial-gradient(circle,#385068 .7px,#0000 1.1px) 0 0/4px 4px,#0a1020;border:1px solid #33435c;padding:9px 16px}.score-box span{color:#8fa4c8;font-size:10px;display:block}.score-box strong{color:var(--amber);text-shadow:0 0 11px #ffd36a40;margin-top:5px;font-family:Neo;font-size:29px;font-weight:400;display:block}.play-layout{grid-template-columns:minmax(0,620px) 240px;justify-content:center;align-items:start;gap:32px;display:grid}.stage-wrap{isolation:isolate;background:#0c1326;border:8px solid #070c18;border-radius:8px;outline:1px solid #425475;width:100%;max-width:560px;margin:auto;position:relative;overflow:hidden;box-shadow:0 0 0 7px #18233b,0 0 40px #37e8f409,0 12px 30px #0007}.game-canvas{aspect-ratio:480/560;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.start-panel{text-align:center;min-height:560px;padding:0 25px 28px}.start-panel .artwork{object-fit:cover;width:calc(100% + 50px);height:280px;margin:0 -25px 23px;-webkit-mask-image:linear-gradient(#000 80%,#0000);mask-image:linear-gradient(#000 80%,#0000)}.start-panel h2{margin-bottom:13px;font-family:Neo;font-size:26px;font-weight:400}.start-panel p{color:#a8b8d5;max-width:370px;margin:auto;font-size:13px;line-height:1.9}.start-button{min-width:195px;margin:23px auto 20px;display:flex}.start-panel small{color:#7c92b8;font-size:11px}.mode-switch{border:1px solid #445776;border-radius:3px;justify-content:center;max-width:310px;margin:19px auto;display:flex;overflow:hidden}.mode-switch button{color:#b5c7e5;flex:1;padding:12px 8px;font-size:12px}.mode-switch .selected{color:#061623;background:var(--cyan)}.play-sidebar{padding-top:5px}.paper-note{border-top:2px solid #37e8f486;border-bottom:1px solid #2c38536b;padding:23px 0}.paper-note p{color:#aebedb;margin-bottom:20px;font-size:13px;line-height:1.9}.paper-note kbd{color:#839abe;font-family:inherit;font-size:11px;line-height:1.9;display:block}.quiet-note{padding:28px 0}.tiny-star{color:var(--pink);font-size:27px}.quiet-note p{color:#a7bddc;margin:14px 0;font-family:Neo;font-size:20px;line-height:1.7}.quiet-note small{color:#7890b6;font-size:11px}.play-bottom{max-width:560px;margin:26px auto 0;transform:translate(-136px)}.live-status{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:40px;display:flex}.live-status strong{color:#cbd9ef;font-size:12px;font-weight:650}.live-status span{color:#8fa6cb;font-size:11px}.game-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:9px;margin:15px 0;display:flex}.game-controls button{color:#def6ff;touch-action:none;-webkit-user-select:none;user-select:none;background:linear-gradient(#263b55,#172a40);border:1px solid #526682;border-radius:5px;min-width:49px;min-height:48px;padding:11px 18px;font-size:13px;font-weight:650;box-shadow:0 4px #070e1e,inset 0 1px #6585a740}.game-controls button:active{border-color:var(--cyan);transform:translateY(2px);box-shadow:0 2px #070e1e}.session-actions{justify-content:center;gap:28px;display:flex}.session-actions button{color:#88a1c7;min-width:44px;min-height:44px;font-size:12px}.game-overlay{z-index:4;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;background:#080f20f2;flex-direction:column;justify-content:center;align-items:center;gap:19px;padding:28px;display:flex;position:absolute;inset:0}.game-overlay h2{color:#ebf6ff;font-family:Neo;font-size:27px;font-weight:400;line-height:1.5}.game-overlay p{color:#a4b8d9;max-width:340px;font-size:13px;line-height:1.9}.pause-symbol{color:var(--cyan);text-shadow:0 0 15px #37e8f44a;font-family:Neo;font-size:37px}.result-score{color:var(--amber);text-shadow:0 0 18px #ffd36a44;font-family:Neo;font-size:57px;font-weight:400}.result-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.result-actions button{min-height:46px;padding:11px 15px;font-size:12px}.notice{border-left:3px solid var(--amber);color:#e0d5b9;background:#252544;margin:15px 0;padding:14px 18px;font-size:12px;line-height:1.8}dialog{color:var(--ink);background:#111b31;border:1px solid #526986;border-radius:6px;width:calc(100% - 32px);max-width:480px;padding:0;box-shadow:0 0 0 6px #0a1123,0 0 40px #37e8f414,0 20px 100px #0009}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#020711b3}.dialog-content{padding:36px}.dialog-close{color:#9cb3d4;width:42px;height:42px;font-size:28px;position:absolute;top:7px;right:10px}.dialog-content h2{color:#e8f6ff;margin:13px 0 25px;font-family:Neo;font-size:28px;font-weight:400}.dialog-content>p{color:#afc1df;margin-bottom:17px;font-size:13px;line-height:1.9}.dialog-content>a{color:var(--cyan);margin:5px 0 20px;font-size:13px;text-decoration:underline;display:inline-block}.setting-row{border-bottom:1px solid #344561;justify-content:space-between;align-items:center;gap:20px;padding:18px 0;display:flex}.setting-row strong{font-size:14px;display:block}.setting-row small{color:#8ba4c9;margin-top:7px;font-size:11px;line-height:1.8;display:block}.setting-row input{width:20px;height:20px;accent-color:var(--cyan)}.muted{margin-top:22px;color:#8ba2c6!important;font-size:12px!important}.save-warning{z-index:10;color:#f4dfb3;background:#17223b;border:1px solid #d9a654;border-radius:4px;width:calc(100% - 32px);max-width:560px;padding:17px 50px 17px 20px;font-size:12px;line-height:1.7;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 7px 30px #0009}.save-warning button{padding:7px;font-size:26px;position:absolute;top:7px;right:10px}@media (min-width:851px) and (min-height:501px){.stage-wrap:has(.game-canvas){max-width:min(560px,max(320px,100svh - 420px)/1.16667)}}@media (max-width:1280px){.lobby{margin:0 20px}.site-header{padding-left:30px;padding-right:30px}footer{margin:0 50px}.welcome h1{font-size:65px}.game-grid{gap:24px 19px}.card-copy h3{font-size:23px}.deck-label{letter-spacing:.5px;font-size:8px}}@media (max-width:950px){.game-grid{gap:20px 14px;padding:0 15px}.shelf-heading,.filter-bar{padding:0 15px}.cabinet-marquee{padding:10px;font-size:11px}.screen-bezel{padding:10px}.card-copy{padding:15px}.card-copy h3{font-size:21px}.card-meta{gap:7px;font-size:9px}.card-meta span+span:before{margin-right:7px}.cabinet-deck{gap:10px;padding:0 18px}.deck-label{display:none}.led-board{margin-left:15px;margin-right:15px}.arcade-sign{right:22px}.welcome-copy{padding-left:25px}.welcome{min-height:370px}}@media (max-width:850px){.play-sidebar{display:none}.play-layout{display:block}.play-heading{max-width:560px;margin-left:auto;margin-right:auto}.play-bottom{transform:none}.site-header{gap:28px}.header-free{display:none}.settings-button{margin-left:auto}.site-header nav{gap:20px}.welcome h1{font-size:56px}.arcade-sign{display:none}.welcome{min-height:350px}.welcome p{font-size:13px}}@media (max-width:640px){.site-header{gap:21px;padding:17px 18px}.brand{gap:7px;font-size:21px}.brand-bottom{letter-spacing:3px;margin:3px 0 0;font-size:16px;display:block}.brand-symbol{font-size:24px}.site-header nav{gap:17px;font-size:12px}.settings-button{padding:9px 4px}.settings-button>span:last-child{display:none}.lobby{margin:0 14px;padding-bottom:30px}.welcome{min-height:345px;margin:10px -14px 0}.arcade-environment{object-position:65% center}.welcome-shade{background:linear-gradient(90deg,#080c1bea,#080c1b82 50%,#080c1b0a),linear-gradient(#0000 65%,#080c1b)}.welcome-copy{padding:28px 22px 37px}.open-label{letter-spacing:.6px;margin-bottom:21px;font-size:10px}.welcome h1{letter-spacing:-2px;max-width:240px;font-size:50px}.welcome h1 span{display:block}.welcome p{margin-top:18px;font-size:12px;line-height:1.8}.entry-button{gap:14px;margin-top:18px;font-size:12px}.led-board{gap:10px;min-height:58px;margin:0 4px 28px;padding:13px 12px}.led-board p{letter-spacing:.4px;text-wrap:balance;font-size:11px}.led-indicator{width:5px;height:5px}.led-end{display:none}.shelf-heading{margin-bottom:14px;padding:0 4px;display:block}.shelf-heading h2{letter-spacing:-.8px;font-size:19px}.shelf-heading .eyebrow{letter-spacing:1.5px;font-size:9px}.search{width:100%;margin-top:17px}.search input{font-size:12px}.filter-bar{gap:3px;margin-bottom:22px;padding:0 4px}.filter-bar button{min-height:36px;padding:8px 10px;font-size:11px}.game-count{display:none}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 11px;padding:0 4px}.game-card{border-radius:6px 6px 3px 3px}.cabinet-marquee{letter-spacing:.3px;gap:5px;margin:7px 7px 0;padding:9px 8px;font-size:9px}.cabinet-power{font-size:4px}.screen-bezel{padding:8px 8px 9px}.card-art{aspect-ratio:1;border-width:2px;border-radius:3px}.card-play{display:none}.card-copy{padding:12px 11px 13px}.card-category{letter-spacing:.5px;margin-bottom:6px;font-size:9px}.card-copy h3{letter-spacing:-1px;word-break:keep-all;min-height:48px;font-size:19px;line-height:1.3}.card-copy p{word-break:keep-all;color:#b0bed6;min-height:34px;margin-top:5px;font-size:10px;line-height:1.7}.card-meta{margin-top:10px;font-size:9px;line-height:1.8;display:block}.card-meta span{display:block}.card-meta span+span:before{display:none}.cabinet-deck{gap:8px;height:52px;padding:0 12px}.arcade-stick{width:26px;height:17px;margin-right:3px}.arcade-stick:before{width:6px;height:21px;bottom:6px;left:10px}.arcade-stick:after{width:23px;height:22px;bottom:17px;left:2px}.arcade-button{width:18px;height:18px}.favorite{width:26px;height:27px;font-size:20px;bottom:13px;right:9px}.lobby-note{gap:14px;margin:31px 4px 23px;padding:22px 0}.lobby-note p{font-size:11px}.lobby-note>span:first-child{font-size:24px}.note-end{display:none}.planned-list{margin:0 4px;font-size:11px}footer{flex-wrap:wrap;gap:17px;margin:0 18px;padding:23px 0;font-size:10px}.footer-brand{font-size:16px}footer button{font-size:10px}.play-page{padding:12px 17px 23px}.play-nav{gap:10px;margin-bottom:14px}.play-nav>span{display:none}.play-heading{margin-bottom:18px}.play-heading h1{font-size:25px}.play-heading .eyebrow{letter-spacing:1px;margin-bottom:7px;font-size:9px}.score-box{padding:7px 10px}.score-box strong{font-size:24px}.stage-wrap{border-width:5px;border-radius:5px;box-shadow:0 0 0 4px #18233b,0 10px 30px #0006}.stage-wrap:has(.game-canvas){max-width:min(100%,45.4286svh)}.start-panel{min-height:0;padding:0 21px 25px}.start-panel .artwork{width:calc(100% + 42px);height:230px;margin:0 -21px 18px}.start-panel h2{font-size:23px}.start-panel p{font-size:12px}.start-panel small{font-size:10px}.play-bottom{margin-top:23px}.live-status{gap:5px;min-height:35px}.live-status strong{font-size:11px}.live-status span{font-size:10px}.game-controls{gap:7px;margin:13px 0}.game-controls button{min-width:41px;min-height:47px;padding:11px 12px;font-size:12px}.session-actions{gap:23px}.session-actions button{font-size:11px}.game-overlay{gap:16px;padding:19px}.game-overlay h2{font-size:23px}.game-overlay p{font-size:12px}.result-score{font-size:40px}.dialog-content{padding:30px 24px}.dialog-content h2{font-size:26px}.game-controls button:focus-visible{outline-offset:1px}}@media (max-width:359px){.game-grid{grid-template-columns:1fr}.card-art{aspect-ratio:4/3}.card-copy h3{min-height:0;font-size:24px}.card-copy p{min-height:0;font-size:12px}.cabinet-marquee{font-size:12px}.card-meta{display:flex}.brand{font-size:19px}.site-header{gap:14px}.site-header nav{gap:13px;font-size:11px}.filter-bar button{padding:8px}.welcome h1{font-size:46px}.card-copy{padding:16px}.favorite{right:15px}}@media (max-height:500px) and (orientation:landscape){.play-sidebar{display:none}.site-header:has(~.play-page){display:none}.arcade:has(.play-page) footer{display:none}.play-page{max-width:960px;padding:8px 22px 12px}.play-nav{margin-bottom:5px}.play-nav>span{display:none}.play-heading{max-width:none;margin-bottom:10px}.play-heading h1{font-size:23px}.play-heading .eyebrow{display:none}.score-box{background:0 0;border:0;padding:2px 8px}.score-box span{display:none}.score-box strong{margin:0;font-size:24px}.play-layout{float:left;width:47%;display:block}.stage-wrap{max-width:260px}.stage-wrap:has(.game-canvas){max-width:min(100%,62.5714svh)}.play-bottom{margin-top:0;margin-left:51%;padding-top:6px;transform:none}.start-panel{min-height:0;padding:0 17px 13px}.start-panel .artwork{width:calc(100% + 34px);max-height:110px;margin:0 -17px 8px}.start-panel h2{display:none}.start-panel p{font-size:10px}.start-button{min-height:38px;margin:10px auto;font-size:12px}.start-panel small{font-size:9px}.mode-switch{margin:8px auto}.mode-switch button{padding:8px;font-size:10px}.play-page:after{content:"";clear:both;display:block}}.lights-off .led-board:after,.lights-off .open-label i,.lights-off .arcade-sign{animation:none!important}.lights-off .welcome h1,.lights-off .brand-bottom,.lights-off .brand-symbol,.lights-off .cabinet-marquee{text-shadow:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}:root{--night:#150d29;--metal:#292044;--panel:#211936;--ink:#fff1ff;--muted:#c6b5dd;--cyan:#8beee4;--pink:#ff76c6;--amber:#ffe795;--line:#594773;background:#150d29}.arcade{background:radial-gradient(ellipse at 18% 12%,#d1459718,transparent 45%),radial-gradient(ellipse at 85% 50%,#914bf11a,transparent 50%),var(--night)}.welcome-shade{background:linear-gradient(90deg,#150d29dc 0%,#150d298a 25%,#0000 70%),linear-gradient(#0000 75%,#150d29 100%)}.game-card{background:linear-gradient(110deg,#674a76 0%,#2d2246 3%,#35244e 97%,#170f2b 100%);border-color:#765787;box-shadow:0 8px 25px #08001466,4px 0 #11081f88,inset 1px 0 #edc2f133}.screen-bezel{background:linear-gradient(#20152f,#4c335f);border-bottom-color:#674676}.card-copy p{color:#c3b6d9}.card-category{color:var(--card-accent)}.card-meta{color:#b0a0c7}.cabinet-deck{background:linear-gradient(170deg,#684878,#3d2a59 50%,#281939);border-top-color:#a080b4;box-shadow:inset 0 2px #f3bcec30}.favorite{color:#e0cce9;background:#352143;border-color:#a889ba6b}.led-board{background:radial-gradient(circle,#78608480 .9px,#0000 1.2px) 0 0/5px 5px,#24152f;border-color:#a084b6 #866796 #866796}.header-free{color:#ffd195}.site-header{border-bottom-color:#76558047}.eyebrow{color:#b29cc9}.search{color:#c7b4d9;border-bottom-color:#80658d}.filter-bar button{color:#c4aed5}.filter-bar button.active{color:#bdfaf0;background:#8beee40d;border-color:#8beee475}.game-count{color:#a68bbd}.stage-wrap{background:#241734;border-color:#1a0e28;outline-color:#a889ba;box-shadow:0 0 0 7px #3c2853,0 0 40px #ff76c619,0 12px 30px #08001477}.paper-note p{color:#c8b8db}.quiet-note p{color:#cbb0e1}.score-box{background:radial-gradient(circle,#6e517a .7px,#0000 1.1px) 0 0/4px 4px,#271535;border-color:#735783}.start-panel p{color:#c9badb}.game-overlay{background:#1a102cf2}.game-overlay p{color:#c4b1d9}.secondary-button{background:#3b2853;border-color:#8c6da4}.game-controls button{color:#fff0ff;background:linear-gradient(#745687,#4b3562);border-color:#a384b9;box-shadow:0 4px #1a0c2a,inset 0 1px #e2c0f240}.game-controls button:active{box-shadow:0 2px #1a0c2a}.live-status strong{color:#f1dcff}.live-status span{color:#baa2cf}.session-actions button{color:#bda2d2}dialog{background:#2b1a3d;border-color:#a17ab4;box-shadow:0 0 0 6px #1a0c2b,0 0 40px #ff76c622,0 20px 100px #0009}.dialog-content>p{color:#d0bcde}.setting-row{border-color:#644378}.setting-row small{color:#bca3d0}.muted{color:#b79aca!important}.dialog-close{color:#d5b8e5}.planned-list{color:#bfa5d2}.planned-list>div span{background:#2b1d3d;border-color:#62437b}.lobby-note{border-color:#6d49784f}.lobby-note p{color:#baa5ce}.lobby-note strong{color:#e1c9ef}.note-end{color:#a98cbf}footer{color:#b198c7;border-color:#6d49784f}.footer-brand{color:#eed8fa}@media (max-width:640px){.welcome-shade{background:linear-gradient(90deg,#150d29dc,#150d2970 50%,#150d290a),linear-gradient(#0000 65%,#150d29)}.card-copy h3{min-height:0;font-size:18px}.card-copy p{min-height:34px}.stage-wrap{box-shadow:0 0 0 4px #3c2853,0 10px 30px #08001466}}.play-goal{color:#c9b2df;margin-top:10px;font-size:13px;line-height:1.7}.start-panel h2{font-size:22px;line-height:1.5}.start-panel .artwork{height:245px}@media (max-width:640px){.play-goal{margin-top:7px;font-size:11px}.start-panel h2{font-size:19px}.start-panel .artwork{height:220px}}@media (max-height:500px) and (orientation:landscape){.play-goal{display:none}.start-panel .artwork{height:100px}}.timing-setting{color:#dbc5e8;margin:18px 0;font-size:12px}.timing-setting summary{cursor:pointer;align-items:center;min-height:44px;display:flex}.timing-setting summary:after{content:"＋";margin-left:auto}.timing-setting[open] summary:after{content:"−"}.timing-setting p{color:#bea4d0;margin:12px 0;font-size:11px;line-height:1.7}.timing-setting .text-button{font-size:11px}.setting-volume input[type=range]{width:120px;min-height:44px;accent-color:var(--pink)}.physics-toggle{color:#e7c9ef;cursor:pointer;justify-content:center;align-items:center;gap:9px;min-height:32px;margin:12px auto;font-size:12px;display:flex}.physics-toggle input{accent-color:#ff9bcd;width:18px;height:18px}.practice-setting{color:#e7c9ef;cursor:pointer;justify-content:center;align-items:center;gap:9px;max-width:320px;min-height:44px;margin:10px auto;font-size:12px;display:flex}.practice-setting input{accent-color:#ff9bcd;flex:none;width:18px;height:18px}.observation-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:3px 12px;margin:12px auto;display:flex}.observation-row .physics-toggle{margin:0}.observation-value{color:#a4ebdc;font-variant-numeric:tabular-nums;text-align:center;font-size:12px;line-height:1.5}.rule-switch{margin-top:10px;margin-bottom:8px}.rule-caption{color:#dcc2e9!important;font-size:11px!important}@media (max-height:350px) and (orientation:landscape){.play-nav{margin-bottom:3px}.play-heading{margin-bottom:7px}.play-heading h1{font-size:20px}.stage-wrap:has(.game-canvas){max-width:min(100%,60svh)}.play-bottom{padding-top:0}.live-status{gap:3px;min-height:33px}.physics-toggle{min-height:26px;margin:6px auto;font-size:11px}.game-controls{gap:6px;margin:8px 0}.game-controls button{min-height:44px;padding:9px 14px}.session-actions{gap:18px}.observation-row{gap:2px 8px;margin:6px auto}}@media (max-width:640px) and (orientation:portrait){.arcade:has(.game-canvas) .site-header{gap:12px;padding:8px 17px}.arcade:has(.game-canvas) .site-header nav{display:none}.arcade:has(.game-canvas) footer{display:none}.arcade:has(.game-canvas) .brand{gap:7px;font-size:18px}.arcade:has(.game-canvas) .brand-bottom{letter-spacing:0;margin:0 0 0 5px;font-size:18px;display:inline-block}.arcade:has(.game-canvas) .settings-button{min-width:40px;min-height:40px;padding:8px}.play-page:has(.game-canvas) .play-nav{margin-bottom:8px}.play-page:has(.game-canvas) .play-heading{margin-bottom:10px}.play-page:has(.game-canvas) .play-heading .eyebrow{display:none}.play-page:has(.game-canvas) .play-heading h1{font-size:24px}.play-page:has(.game-canvas) .stage-wrap{max-width:min(100%,max(180px,100svh - 420px)/1.16667)}.play-page:has(.game-canvas) .play-bottom{margin-top:12px}.play-page:has(.game-canvas) .observation-row{gap:3px 8px;margin:7px auto}.play-page:has(.game-canvas) .game-controls{gap:6px;margin:10px 0}.play-page:has(.game-canvas) .game-controls button{min-width:44px;min-height:44px;padding:10px 7px}.play-page:has(.game-canvas) .session-actions{gap:22px}}.control-help{text-align:center;margin:8px auto}.control-help summary{color:#c9b2df;cursor:pointer;min-height:30px;padding:7px;font-size:11px}.control-help[open]{border-top:1px solid #745687}.play-page:has(.game-canvas) .play-sidebar{display:none}.play-page:has(.game-canvas) .play-layout{display:block}.play-page:has(.game-canvas) .play-bottom{max-width:680px;margin:10px auto;transform:none}.play-page:has(.game-canvas) .stage-wrap{max-width:680px}.arcade:has(.game-canvas) .site-header{padding:8px 24px}.arcade:has(.game-canvas) .site-header nav{display:none}.arcade:has(.game-canvas) .header-free{display:none}.arcade:has(.game-canvas) footer{display:none}.play-page:has(.game-canvas) .play-nav{margin-bottom:6px}.play-page:has(.game-canvas) .play-heading{max-width:680px;margin:0 auto 10px}.play-page:has(.game-canvas) .play-heading h1{font-size:25px}.play-page:has(.game-canvas) .play-heading .eyebrow{display:none}.play-page:has(.game-canvas) .stage-wrap{width:100%}.play-page:has(.game-canvas) .play-bottom .live-status{min-height:28px}.play-page:has(.game-canvas) .play-goal{margin-top:3px}.play-page:has(.game-canvas) .session-actions{gap:26px}@media (min-width:700px) and (min-height:600px){.play-page:has(.game-canvas) .stage-wrap{max-width:min(680px,85.7143svh - 162.857px)}.play-page:has(.game-canvas) .play-nav{max-width:680px;margin:0 auto 5px}.play-page:has(.game-canvas) .play-heading{max-width:min(680px,85.7143svh - 162.857px)}}@media (max-width:640px) and (orientation:portrait){.play-page:has(.game-canvas){padding:10px 12px 18px}.play-page:has(.game-canvas) .stage-wrap{max-width:100%}.play-page:has(.game-canvas) .play-nav>span{display:none}.play-page:has(.game-canvas) .score-box{padding:5px 10px}.play-page:has(.game-canvas) .play-bottom{margin-top:8px}.play-page:has(.game-canvas) .play-goal{display:none}}@media (max-height:599px) and (orientation:landscape){.arcade:has(.game-canvas) .site-header{display:none}.play-page:has(.game-canvas){padding:8px 15px}.play-page:has(.game-canvas) .play-nav{z-index:3;position:absolute;top:7px;right:13px}.play-page:has(.game-canvas) .play-nav .text-button{display:none}.play-page:has(.game-canvas) .play-nav>span{display:none}.play-page:has(.game-canvas) .play-heading{width:31%;margin:0;display:block;position:absolute;top:50px;right:20px}.play-page:has(.game-canvas) .play-heading h1{font-size:20px}.play-page:has(.game-canvas) .play-heading .score-box{text-align:left;margin-top:8px;display:inline-block}.play-page:has(.game-canvas) .play-layout{float:left;width:66%}.play-page:has(.game-canvas) .stage-wrap{max-width:calc(85.7143svh - 30px);margin:auto}.play-page:has(.game-canvas) .play-bottom{width:30%;margin:120px 0 0 69%;padding:0}.play-page:has(.game-canvas) .control-help summary{font-size:10px}.play-page:has(.game-canvas) .session-actions{flex-wrap:wrap;gap:4px}.play-page:has(.game-canvas) .session-actions button{font-size:11px}.play-page:has(.game-canvas) .game-controls{gap:4px}.play-page:has(.game-canvas) .game-controls button{padding:8px}.play-page:has(.game-canvas) .observation-row{font-size:11px}.play-page:has(.game-canvas) .play-heading .play-goal{display:none}}.control-help summary{justify-content:center;align-items:center;min-height:44px;display:flex}@media (max-height:599px) and (orientation:landscape){.arcade:has(.game-canvas) .site-header{z-index:4;border:0;width:44px;padding:0;display:flex;position:absolute;top:7px;right:105px}.arcade:has(.game-canvas) .site-header .brand{display:none}.arcade:has(.game-canvas) .settings-button{width:44px;min-width:44px;height:44px;min-height:44px;padding:0}.arcade:has(.game-canvas) .settings-button span:last-child{display:none}}.character-choice{flex-wrap:wrap;justify-content:center;gap:10px;margin:12px 0;display:flex}.character-choice button{color:#774785;background:#fff0f8;border:2px solid #c7a6d2;border-radius:15px;justify-items:center;gap:3px;width:106px;min-height:100px;padding:6px;display:grid}.character-choice button.selected{background:#dbf7ed;border-color:#64c8af}.character-choice img{object-fit:contain;width:76px;height:68px}.character-choice span{font-size:13px}.character-choice button:focus-visible{outline-offset:3px;outline:3px solid #eda0c7}.learning-note{color:#edd9f0;max-width:960px;margin:22px auto;padding:0 18px}.learning-note>summary{cursor:pointer;border-bottom:1px solid #795588;justify-content:space-between;align-items:center;min-height:44px;padding:8px 4px;font-size:15px;display:flex}.learning-note>div{background:#342342;border:1px solid #946b9f;border-top:0;border-radius:0 0 18px 18px;padding:18px 20px;font-family:system-ui,sans-serif}.learning-note h2{color:#b7edd9;margin:0 0 12px;font-size:18px;line-height:1.5}.learning-note p{margin:10px 0;font-size:15px;line-height:1.75}.learning-note .learning-experiment{color:#ffe2f0}.learning-note .learning-limit{color:#c9b4d1;font-size:13px}.learning-note small{color:#bda4c8;margin-top:14px;line-height:1.6;display:block}.learning-note[open]>summary span{transform:rotate(45deg)}.guide-toggle{color:#e8d6ed;cursor:pointer;align-items:center;gap:9px;width:max-content;min-height:44px;margin:0 auto;font-size:13px;display:flex}.guide-toggle input{accent-color:#8ce4c9;width:18px;height:18px}.course-choice{color:#e8d6ed;gap:8px;max-width:360px;margin:14px auto;font-size:14px;display:grid}.course-choice select{color:#fff4fa;background:#32213f;border:1px solid #a97cba;border-radius:10px;min-height:44px;padding:10px 12px}.course-choice small{font-size:12px;line-height:1.6}.game-canvas{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.result-actions .secondary-button:first-child{color:#254c42;background:#a9e9d6}.play-page .result-panel .eyebrow{display:none}.play-page .live-status span{line-height:1.6}.start-rules{color:#ebd8ed;text-align:left;max-width:480px;margin:8px auto;font-size:14px}.start-rules summary{cursor:pointer;text-underline-offset:4px;justify-content:center;align-items:center;min-height:44px;text-decoration:underline;display:flex}.start-rules p{padding:0 14px 10px;line-height:1.75}.start-panel .start-gesture{color:#baf0de;margin:8px auto;font-size:16px}.start-panel .artwork{max-height:180px}.game-canvas:focus-visible{outline-offset:4px;outline:3px solid #a8f0d9}.creator-credit{color:#dbc4e7;flex-wrap:wrap;justify-content:center;gap:6px 10px;font-size:13px;line-height:1.6;display:flex}.creator-credit a{color:#a6efdc;text-underline-offset:3px}.creator-credit a:focus-visible{outline-offset:4px;outline:2px solid #ffb7df}button,summary{touch-action:manipulation}
