.player-shell{width:min(900px,100%);margin:24px auto;padding:0 16px}.player-top{text-align:center;margin:24px 0}.player-top h1{font-size:clamp(26px,5vw,40px);letter-spacing:-1px}.player-top p{color:#b6bed0;margin:10px auto;max-width:650px}.player-card{background:#141d30;border:1px solid #33415c;border-radius:22px;padding:20px}.player-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #33415c;padding-bottom:16px}.play-button,.play-cell{font:inherit;font-weight:700;border:1px solid #40506a;color:#f4f6ff;background:#25334d;border-radius:10px;min-height:44px;padding:10px 15px;cursor:pointer;touch-action:manipulation}.play-button:hover,.play-cell:hover{background:#354967}.play-button:disabled,.play-cell:disabled{cursor:default;opacity:.65}.play-button.selected,.play-cell.selected{outline:3px solid #b0a2ff;outline-offset:-3px}.play-grid{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:5px;width:min(460px,100%);margin:18px auto}.play-cell{padding:3px;aspect-ratio:1;font-size:clamp(13px,4vw,24px);min-width:0;min-height:30px}.play-cell.on{background:#a68bff;color:#15152b}.play-cell.good{background:#286c58;color:white}.play-cell.bad{background:#77354e}.play-cell.wall{background:#465269}.play-cell.goal{background:#3d6848}.play-cell.dark{background:#0b1020}.play-controls{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0}.play-input{font:inherit;border:1px solid #536482;background:#0d1424;color:white;border-radius:10px;min-height:46px;padding:10px;max-width:100%;width:230px}.play-prompt{font-size:clamp(26px,6vw,44px);text-align:center;margin:24px 0;font-weight:800;letter-spacing:2px}.play-note,#play-status{text-align:center;color:#c3cee3;margin:14px 0;line-height:1.6}.result-banner{text-align:center;background:#284638;color:#d6ffdf;padding:20px;border-radius:12px;margin:18px 0;font-weight:700}.play-arena{position:relative;width:100%;max-width:620px;aspect-ratio:1.4;background:radial-gradient(ellipse at top,#273958,#0b1122);overflow:hidden;margin:16px auto;border:1px solid #435171;border-radius:14px;touch-action:none}.play-arena button{position:absolute;border-radius:50%;min-width:44px;min-height:44px}.play-canvas{width:100%;height:auto;display:block;touch-action:none;border-radius:12px;background:#0a1020}.play-tube{display:flex;flex-direction:column-reverse;gap:3px;width:54px;height:184px;border:3px solid #61718c;border-top:0;border-radius:0 0 16px 16px;background:#0c1220;padding:4px;cursor:pointer}.play-tube span{height:36px;flex-shrink:0;border-radius:4px;text-align:center;color:white;text-shadow:0 1px 3px black}.rules-panel{margin-top:24px;background:#121b2d;border:1px solid #303e56;border-radius:18px;padding:24px;line-height:1.8}.rules-panel h2{margin:0 0 10px}.rules-panel p,.rules-panel li{color:#c0cadd}.rules-panel ol{padding-left:22px}.play-clues{font-size:13px;line-height:1.8;text-align:center;overflow-wrap:anywhere}.play-cell:focus-visible,.play-button:focus-visible{outline:3px solid #cbbcff;outline-offset:2px}.site-nav{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:18px max(20px,calc((100vw - 1240px)/2));border-bottom:1px solid #303c54;background:#101728}.site-nav a{color:#c9d1e5;text-decoration:none;font-size:14px}.site-nav .site-brand{margin-right:auto;font-size:20px;font-weight:800;color:white}.site-bottom{padding:30px 20px;text-align:center;color:#a8b3c9;line-height:2}.site-bottom a{color:#c5b8ff;margin:0 10px}.related-row{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.related-row a{background:#27334c;color:white;padding:12px 16px;border-radius:12px;text-decoration:none}.play-history{max-height:160px;overflow:auto;padding:16px;font-family:monospace;line-height:1.7}.play-card-face{font-size:55px;text-align:center}.play-cell.small{font-size:15px}.play-button.active{background:#6c54c3}@media(max-width:420px){.player-card{padding:12px}.play-grid{gap:3px}.site-nav{gap:12px}.play-cell{min-height:26px}.play-tube{width:45px}.rules-panel{padding:18px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
