:root{color-scheme:light;--navy:#123d53;--teal:#176b78;--sand:#f9e8c4;--ink:#173747;--muted:#4d6872}*{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth}body{margin:0;background:linear-gradient(#e2f2ef,#f5f0e6 70%);color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;line-height:1.5}button{font:inherit;cursor:pointer}a{color:inherit}:focus-visible{outline:3px solid #f6ae4f;outline-offset:3px}.wrap{width:min(100% - 28px,1120px);margin-inline:auto}.site-header{background:#103b50;color:white}.header-inner{min-height:58px;display:flex;justify-content:space-between;align-items:center;gap:12px}.brand{text-decoration:none;font-weight:900;letter-spacing:.03em}.back{font-size:.85rem;text-underline-offset:3px}main{padding:22px 0 42px}.intro{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.eyebrow{margin:0 0 3px;color:#98603d;font-size:.72rem;font-weight:900;letter-spacing:.16em}h1{margin:0;font-size:clamp(1.95rem,5vw,3.15rem);letter-spacing:.015em;line-height:1.15}.lead{margin:7px 0 0;color:var(--muted);font-size:.91rem}.intro-seal{flex:none;display:grid;place-items:center;width:105px;height:105px;border:2px solid #dfb982;border-radius:50%;background:#fff6e1;color:#7c552c;line-height:1.15;text-align:center;font-size:.8rem;font-weight:800;transform:rotate(8deg);box-shadow:0 7px 20px #294b5720}.intro-seal strong{font-size:1.8rem}.mobile-break{display:none}.game{position:relative;overflow:hidden;border:2px solid #e8d7b9;border-radius:22px;background:#fffaf1;box-shadow:0 20px 44px #123d5323}.welcome{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 20px;background:#14566a;color:white}.welcome[hidden]{display:none}.welcome p{margin:0;max-width:64ch;font-size:.86rem}.welcome strong{color:#ffe0a2}.primary{min-height:46px;padding:9px 20px;border:0;border-radius:11px;background:#f6ca72;color:#213f4a;font-weight:900;box-shadow:0 3px 0 #bb8b45}.primary:hover{background:#ffe0a2}.primary:active{transform:translateY(2px);box-shadow:0 1px 0 #bb8b45}.welcome .primary{flex:none}.game-head{display:flex;justify-content:space-between;align-items:end;gap:12px;padding:13px 20px 8px}.stage-kicker{margin:0;color:#ae6844;font-size:.7rem;font-weight:900;letter-spacing:.15em}.game-head h2{margin:0;font-size:1.35rem}.counters{display:flex;flex-wrap:wrap;justify-content:end;gap:5px}.counters span{padding:5px 9px;border:1px solid #c9d9d3;border-radius:8px;background:#ecf4ee;font-size:.75rem;font-weight:700;white-space:nowrap}.counters strong{font-size:.98rem;color:#155c72}.progress{height:7px;margin:0 20px;background:#d7e4dc;border-radius:99px;overflow:hidden}.progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,#3b9c9a,#e8bd6c);transition:width .3s}.status{min-height:24px;margin:9px 20px 10px;color:#355866;font-size:.84rem;font-weight:700}.pictures{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:0 17px}.picture{min-width:0;margin:0}.picture figcaption{display:flex;align-items:center;gap:7px;margin:0 0 6px;font-size:.82rem;font-weight:900}.picture figcaption span{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:#165e72;color:white}.picture-frame{position:relative;aspect-ratio:640/420;overflow:hidden;border:5px solid #fff;border-radius:12px;background:#7ab0bb;box-shadow:0 0 0 2px #417d86,0 7px 15px #315b6236;touch-action:manipulation;cursor:crosshair}.picture-frame img{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none;user-select:none}.spot-layer{position:absolute;inset:0}.spot{position:absolute;display:grid;place-items:center;width:min(18%,76px);aspect-ratio:1;border:0;border-radius:50%;background:transparent;color:transparent;transform:translate(-50%,-50%);padding:0;touch-action:manipulation}.spot:hover:not(.found){box-shadow:inset 0 0 0 2px #fff9}.spot:focus-visible{outline:3px solid #ffdc7d;outline-offset:2px;background:#174e6750}.spot.found{border:4px solid #ffe6a0;background:#127d82bb;color:white;box-shadow:0 0 0 2px #164355,0 2px 8px #092e4388;font-size:1.3rem;font-weight:900}.spot.hinting:not(.found){border:4px dashed #fff0bd;background:#f2b34c75;box-shadow:0 0 0 3px #194d68,0 0 18px #fff2bc}.spot.miss-pop{border:3px solid #dc6954;background:#e96b4b62;color:white;font-size:1.2rem;font-weight:900;pointer-events:none;animation:miss .45s ease-out forwards}@keyframes miss{to{opacity:0;transform:translate(-50%,-50%) scale(1.35)}}.actions{display:flex;gap:9px;justify-content:space-between;padding:14px 20px 17px}.actions button{min-height:44px;padding:8px 15px;border:1px solid #86b4b0;border-radius:9px;background:#e3f1e9;color:#174a56;font-weight:800;font-size:.82rem}.actions button:hover:not(:disabled){background:#cbe8e1}.actions button:disabled{opacity:.55;cursor:default}.result{position:absolute;inset:0;display:grid;place-items:center;padding:14px;background:#0b2a3dd9;z-index:5}.result[hidden]{display:none}.result-card{width:min(100%,410px);padding:24px 22px;border:2px solid #fff0c7;border-radius:18px;background:#fffaf0;text-align:center;box-shadow:0 17px 40px #05273888}.result-kicker{margin:0;color:#a87045;font-size:.72rem;letter-spacing:.15em;font-weight:900}.result-card h3{margin:4px 0 7px;color:#174b5b;font-size:1.55rem}.result-card p:not(.result-kicker){margin:0 0 17px;font-size:.9rem;color:#49616b}.how{margin:21px 0 0;padding:18px 20px;border:1px solid #d4dfd7;border-radius:16px;background:#fffef9}.how h2{margin:0 0 9px;font-size:1.15rem}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.how p{margin:0;color:#4b636b;font-size:.83rem}.how strong{color:#19596b}.how .fine{margin-top:13px;font-size:.75rem}footer{display:flex;flex-wrap:wrap;gap:17px;padding:0 0 28px;color:#526a70;font-size:.78rem}footer small{margin-left:auto}@media(max-width:720px){main{padding-top:13px}.intro-seal{display:none}.intro{margin-bottom:11px}.mobile-break{display:block}.welcome{align-items:start;flex-direction:column;gap:8px;padding:10px 13px}.welcome p{font-size:.78rem}.pictures{grid-template-columns:1fr;gap:14px;padding:0 13px}.picture-frame{border-width:4px}.game-head{padding:9px 13px 6px;align-items:start}.status{margin:7px 13px 8px}.progress{margin-inline:13px}.actions{padding:13px}.how-grid{grid-template-columns:1fr;gap:10px}}@media(max-width:400px){h1{font-size:1.72rem}.lead{font-size:.78rem}.eyebrow{font-size:.64rem}.game-head{display:block}.game-head h2{font-size:1.15rem}.counters{justify-content:start;margin-top:7px}.counters span{padding:3px 6px;font-size:.69rem}.counters strong{font-size:.82rem}.status{font-size:.76rem}.picture figcaption{margin-bottom:4px}.actions button{font-size:.75rem;padding-inline:9px}.result-card{padding:19px 13px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.progress span{transition:none}.spot.miss-pop{animation:none;opacity:0}}
/* A fixed game cabinet keeps the keyboard cursor and all play controls together. */
.wrap{width:min(100% - 28px,960px)}
.control-guide{margin:-3px 20px 10px;padding:7px 10px;border-left:4px solid #d5a35e;border-radius:0 8px 8px 0;background:#f4eddb;color:#3d5b65;font-size:.76rem;font-weight:700}
.aim{position:absolute;z-index:3;left:50%;top:50%;display:none;width:34px;height:34px;border:3px solid #fff6d7;border-radius:50%;background:#13465a55;box-shadow:0 0 0 2px #0c4158,0 1px 10px #052c4fa8;transform:translate(-50%,-50%);pointer-events:none}
.aim.active{display:block}.aim::before,.aim::after{content:"";position:absolute;background:#fff5d2;left:50%;top:50%;transform:translate(-50%,-50%)}.aim::before{width:18px;height:2px}.aim::after{width:2px;height:18px}.aim:focus-visible{outline:3px solid #fbb95b;outline-offset:4px}
@media(max-width:720px){.control-guide{margin:0 13px 9px;font-size:.69rem;line-height:1.35}}
