.play-shell{--game-accent:#28776d;color:#172126;background:radial-gradient(ellipse at 50% 0, color-mix(in srgb, var(--game-accent) 8%, transparent), transparent 45%), #f3efe6;padding-bottom:24px}.game-jump{z-index:5;width:min(100%,420px);margin:0 auto 18px;position:relative}.game-jump>button{border:1px solid var(--line);background:var(--surface);width:100%;min-height:48px;color:var(--ink);font:inherit;cursor:pointer;border-radius:14px;justify-content:space-between;align-items:center;padding:0 16px;font-weight:700;display:flex}.game-jump-menu{top:54px;background:var(--surface);border:1px solid var(--line);border-radius:15px;max-height:300px;position:absolute;inset-inline:0;overflow:auto;box-shadow:0 18px 42px #17212629}.game-jump-menu a{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:44px;padding:8px 14px;font-size:.9rem;display:flex}:is(.game-jump-menu a:hover,.game-jump-menu a:focus-visible){outline-offset:-2px;background:#e8eee9;outline:2px solid #315f55}.expanded-grid{aspect-ratio:1;background:var(--surface);border-radius:18px;width:min(100%,520px);margin:auto;display:grid;overflow:hidden;box-shadow:0 18px 45px #433a2b24}.expanded-grid button{background:var(--surface);min-width:0;min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border-style:solid;border-color:#526c66;position:relative}.expanded-grid button strong{font-size:clamp(1rem,5vw,1.55rem)}.expanded-grid button small{color:#a64764;font-size:.625rem;font-weight:800;position:absolute;top:2px;left:4px}.expanded-grid button.selected{background:#e4eddf}.expanded-grid button.given{cursor:default;background:#f1eadf}.expanded-grid button.error{background:#f8ddd4}.expanded-grid.hitori button.shaded{background:var(--ink);color:#fff}.expanded-grid button i{color:#a64764;z-index:2;font-style:normal;font-weight:900;position:absolute}.expanded-grid button i.horizontal{top:50%;right:-7px;transform:translateY(-50%)}.expanded-grid button i.vertical{bottom:-9px;left:50%;transform:translate(-50%)}.expanded-keypad,.expanded-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin:18px auto 0;display:flex}.expanded-keypad button,.expanded-actions button{border:1px solid var(--line);background:var(--surface);min-width:48px;min-height:48px;color:var(--ink);font:inherit;cursor:pointer;border-radius:14px;font-weight:750}.expanded-actions button{padding:0 22px}.expanded-actions .primary{background:var(--ink);color:#fff}.masyu-web-board{aspect-ratio:1;background:var(--surface);border:3px solid #b85068;border-radius:18px;width:min(100%,520px);margin:auto;position:relative;overflow:hidden;box-shadow:0 18px 45px #433a2b24}.masyu-web-board svg{width:100%;height:100%}.masyu-web-board line{stroke:#ced2cb;stroke-width:.7px;stroke-linecap:round}.masyu-web-board line.active{stroke:var(--ink);stroke-width:2px}.masyu-web-board circle.white{fill:var(--surface);stroke:var(--ink);stroke-width:1.3px}.masyu-web-board circle.black{fill:var(--ink)}.masyu-web-board button{cursor:pointer;background:0 0;border:0;min-width:44px;min-height:44px;position:absolute}.masyu-web-board button:focus-visible{outline-offset:-3px;outline:3px solid #286b8f}.difficulty-picker{background:#fffdf6;border:1px solid #b7c0b8;border-radius:15px;gap:4px;width:min(100%,420px);margin:0 auto 14px;padding:4px;display:flex}.difficulty-picker legend{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.difficulty-picker button{color:#3f514a;min-height:44px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:11px;flex:1;font-size:.875rem;font-weight:750}.difficulty-picker button[aria-pressed=true]{color:#fff;background:#213c35;box-shadow:0 3px 10px #17212629}.difficulty-picker button:focus-visible{outline-offset:2px;outline:3px solid #125cb0}.play-shell *{box-sizing:border-box}.play-shell button{font:inherit;cursor:pointer}.play-shell button:disabled{opacity:.48;cursor:default}:is(.play-shell button:focus-visible,.play-shell a:focus-visible,.play-shell summary:focus-visible){outline-offset:3px;z-index:5;outline:3px solid #125cb0}.play-nav{border-bottom:1px solid #d3d6ce;justify-content:space-between;align-items:center;gap:12px;max-width:1000px;min-height:68px;margin:auto;padding:10px 20px;font-size:.875rem;display:flex}.play-nav>a{color:#263c37;align-items:center;min-height:44px;text-decoration:none;display:flex}.play-nav>span{font-weight:800}.play-nav button,.play-actions button,.puzzle-confirm button{color:#fff;background:#172126;border:1px solid #172126;border-radius:12px;min-height:44px;padding:10px 16px;font-weight:700}.play-nav button:hover,.play-actions button:hover{background:#30473e}.play-stage{text-align:center;width:100%;max-width:760px;margin:auto;padding:24px 20px 36px}.play-heading h1{letter-spacing:-.045em;margin:8px 0 12px;font-size:clamp(2rem,6vw,3rem);line-height:1.1}.play-heading>p:not(.puzzle-edition){color:#4b5852;max-width:560px;margin:0 auto 20px;font-size:1rem;line-height:1.5}.puzzle-edition{color:#4b5852;letter-spacing:.08em;margin:0;font-size:.75rem;font-weight:700}.puzzle-edition>span{white-space:nowrap;letter-spacing:0}.board-wrap{width:100%;max-width:520px;margin:0 auto}.puzzle-grid{grid-template-columns:repeat(var(--grid-size), minmax(0, 1fr));background:#fffdf6;border:2px solid #52645c;width:100%;display:grid;box-shadow:0 12px 32px #2c3f3012}.puzzle-grid-row{display:contents}.puzzle-cell,.cross-clue{aspect-ratio:1;color:#1c4d69;-webkit-user-select:none;user-select:none;background:#fffdf6;border:1px solid #829086;border-radius:0;place-items:center;min-width:0;min-height:0;padding:0;font-size:clamp(1rem,4vw,1.5rem);font-weight:600;line-height:1;display:grid;position:relative}.puzzle-cell:hover{background:#eef1e6}.puzzle-cell.given{color:#172126;cursor:default;background:#eaece2;font-weight:800}.puzzle-cell.selected{background:#dcecf2;box-shadow:inset 0 0 0 2px #2b6b86}.puzzle-cell.cell-error{background:#ffe4dc;box-shadow:inset 0 0 0 2px #ac3027}.puzzle-cell.painted{color:#fff;background:#263d35}.puzzle-cell.marked{color:#476254;background:#fffdf6;font-size:1.4rem}.grid-nurikabe .puzzle-cell.marked,.grid-nurikabe .puzzle-cell.given{background:#e6efdf}.cross-clue{color:#fff;cursor:default;background:#263c37}.cross-clue.has-clue{background:linear-gradient(45deg,#0000 calc(50% - .5px),#a3b7ad 50%,#0000 calc(50% + .5px)),#263c37}.cross-clue span{font-size:clamp(.75rem,2.7vw,1rem);font-weight:700;position:absolute}.cross-clue .across{top:12%;right:12%}.cross-clue .down{bottom:12%;left:12%}.grid-calcudoku .puzzle-cell{border-color:#4b6257;padding-top:16px}.cage-label{color:#253c31;font-size:.75rem;font-weight:700;line-height:1;position:absolute;top:4px;left:4px}.cell-notes{color:#4b5852;overflow-wrap:anywhere;padding:2px;font-size:clamp(.75rem,2.4vw,.875rem);font-weight:500;line-height:1.35}.grid-word-search{touch-action:none;border:1px solid #aebcb3;border-radius:12px;padding:6px}.grid-word-search .puzzle-cell{color:#263c37;border:0;border-radius:4px;font-size:clamp(.875rem,3vw,1.2rem);font-weight:700}.grid-word-search .word-found{color:#174a37;background:#d6e8db}.grid-word-search .word-preview{color:#fff;background:#2b6b86;box-shadow:inset 0 0 0 1px #173f50}.word-list{flex-wrap:wrap;justify-content:center;gap:8px 14px;max-width:560px;margin:0 auto 12px;padding:0;list-style:none;display:flex}.word-list li{letter-spacing:.04em;color:#344d42;padding:4px 0;font-size:.875rem;font-weight:700}.word-list li.found{color:#326444}.word-list li.found>span:first-child{text-decoration:line-through;text-decoration-thickness:2px}.board-instruction{color:#4b5852;margin:10px 0 14px;font-size:.875rem;line-height:1.5}.grid-nonogram{grid-template-columns:56px repeat(var(--grid-size), minmax(0, 1fr));box-shadow:none;background:0 0;border:0}.nonogram-column,.nonogram-row{color:#172126;gap:4px;font-size:.875rem;font-weight:700;display:flex}.nonogram-column{flex-direction:column;justify-content:flex-end;align-items:center;min-height:68px;padding-bottom:8px}.nonogram-row{justify-content:flex-end;align-items:center;padding-right:8px;font-size:.75rem}.number-row,.mark-tools{flex-wrap:wrap;justify-content:center;gap:6px;max-width:520px;margin:16px auto 10px;display:flex}.number-row button,.mark-tools button,.notes-toggle{color:#263c37;background:#fffdf6;border:1px solid #a9b7ad;border-radius:10px;min-width:44px;min-height:44px;font-weight:700}.number-row button{flex:1 0 8%;max-width:52px;font-size:1.1rem}.mark-tools button,.notes-toggle{padding:8px 16px}.mark-tools button[aria-pressed=true],.notes-toggle[aria-pressed=true]{color:#fff;background:#263c37;border-color:#263c37}.play-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px;display:flex}.play-actions .quiet,.puzzle-confirm button+button{color:#263c37;background:0 0;border-color:#a9b7ad}.play-actions .quiet:hover{background:#e7ecdf}.play-message{color:#4b5852;max-width:560px;min-height:44px;margin:14px auto 0;font-size:.875rem;line-height:1.5;display:block}.play-message.solved{color:#245536;background:#e2efdf;border-radius:12px;padding:14px;font-weight:700}.puzzle-confirm{background:#fff6de;border:1px solid #ae9a64;border-radius:12px;margin-bottom:20px;padding:16px}.puzzle-confirm p{font-size:1rem;line-height:1.5}.puzzle-confirm button{margin:4px}.loop-frame{background:#fffdf6;border:1px solid #b7c2bb;border-radius:14px;padding:22px;box-shadow:0 12px 32px #2c3f3012}.loop-board{aspect-ratio:1;position:relative}.loop-dot{pointer-events:none;background:#263c37;border-radius:50%;width:6px;height:6px;position:absolute;transform:translate(-50%,-50%)}.loop-clue{pointer-events:none;font-size:clamp(1rem,4vw,1.5rem);font-weight:700;position:absolute;transform:translate(-50%,-50%)}.loop-edge{color:#785544;z-index:1;touch-action:manipulation;background:0 0;border:0;border-radius:4px;padding:0;font-size:1rem;position:absolute;transform:translate(-50%,-50%)}.loop-edge.horizontal{height:28px}.loop-edge.vertical{width:28px}.loop-edge:before{content:"";pointer-events:none;background:#829086;border-radius:4px;position:absolute}.loop-edge.horizontal:before{width:100%;height:3px;top:calc(50% - 1.5px);left:0}.loop-edge.vertical:before{width:3px;height:100%;top:0;left:calc(50% - 1.5px)}.loop-edge.edge-1:before{background:#91425f}.loop-edge.edge-2:before{display:none}.loop-edge:hover{background:#e9e5da}.bridges-board{aspect-ratio:1;background:#fffdf6;border:1px solid #b7c2bb;border-radius:14px;width:100%;position:relative;box-shadow:0 12px 32px #2c3f3012}.bridges-board svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.bridge-line{stroke:#2b6c89;stroke-width:.06px}.bridge-guide{stroke:#d9e1d8;stroke-width:.025px;stroke-dasharray:.08 .08}.bridge-control,.hashi-island{min-width:44px;min-height:44px;position:absolute;transform:translate(-50%,-50%)}.bridge-control{z-index:1;background:0 0;border:0;border-radius:8px;padding:0}.bridge-control:hover{background:#2b6c891a}.hashi-island{color:#263c37;z-index:2;background:#fffdf6;border:2px solid #456858;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;font-size:1.2rem;font-weight:800;display:grid}.hashi-island.selected{background:#cfe1ee;border-color:#174a68}.hashi-island.island-done{background:#dcebd9;border-style:double;border-width:4px}.hashi-island.island-over{background:#ffe1d7;border-color:#ae342c}.puzzle-guide{text-align:left;border-top:1px solid #c7cfc4;margin:28px auto 0;padding-top:12px}.puzzle-guide summary{cursor:pointer;color:#263c37;min-height:44px;padding:12px 0;font-size:1rem;font-weight:700}.puzzle-guide>div{grid-template-columns:1fr 1fr;gap:24px;padding:8px 0 18px;display:grid}.puzzle-guide h2{margin:0 0 8px;font-size:1rem}.puzzle-guide p{color:#4b5852;margin:0;font-size:1rem;line-height:1.65}.puzzle-guide .guide-note{border-top:1px solid #c7cfc4;padding-top:12px;font-size:.875rem}.game-card{border-radius:25px;display:block}.game-card article{height:100%}.play-label{color:var(--accent);letter-spacing:.04em;margin-top:13px;font-size:12px;font-weight:900;display:inline-block}.game-card:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.play-shell .sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (max-width:600px){.play-stage{padding:20px 12px 32px}.play-nav{gap:8px;padding:8px 12px}.play-nav>span{display:none}.play-heading h1{margin-top:8px}.puzzle-guide>div{grid-template-columns:1fr}.number-row{gap:4px}.number-row button{flex:0 0 calc(20% - 4px);max-width:none}.grid-word-search{padding:4px}.play-actions button{padding:10px 12px}}@media (prefers-reduced-motion:reduce){.play-shell *{scroll-behavior:auto;transition:none!important;animation:none!important}}@media (forced-colors:active){.puzzle-cell.painted,.puzzle-cell.word-found,.mark-tools button[aria-pressed=true]{color:highlighttext;forced-color-adjust:none;background:highlight}.puzzle-cell.word-preview{outline:3px solid highlight}.bridge-line{stroke:canvastext}.loop-edge.edge-1:before{background:canvastext}.cross-clue{forced-color-adjust:none}.hashi-island.selected{outline:3px solid highlight}}.game-select-label{text-align:left;color:#59635b;flex-direction:column;gap:6px;width:min(100%,420px);margin:0 auto 18px;font-size:.8125rem;font-weight:700;display:flex}.game-select-label select{border:1px solid var(--line);background:var(--surface);width:100%;min-height:48px;color:var(--ink);font:inherit;cursor:pointer;border-radius:14px;padding:0 14px;font-size:1rem}.game-select-label select:focus-visible{outline-offset:3px;outline:3px solid #125cb0}
