:root{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;color:#17332f;background:#f6f3e9}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit}.wrap{width:min(1100px,calc(100% - 40px));margin:auto}.site-header{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{text-decoration:none;font-weight:800;font-size:1.08rem;letter-spacing:.02em}.brand span{color:#d49747;font-size:1.45rem;vertical-align:-.06em}.site-header nav{display:flex;gap:26px;font-size:.84rem;font-weight:700}.site-header nav a{text-decoration:none}.site-header a:hover,.footer a:hover{text-decoration:underline}.hero{display:grid;grid-template-columns:1fr .92fr;min-height:480px;align-items:center;gap:60px;padding-top:42px;padding-bottom:70px}.eyebrow{margin:0 0 18px;color:#a7733c;font-size:.72rem;font-weight:800;letter-spacing:.16em}.hero h1{font-size:clamp(3.4rem,7vw,6rem);line-height:1.1;letter-spacing:-.075em;margin:0 0 20px}.hero h1 em{font-style:normal;color:#c48d51}.lead{max-width:480px;line-height:1.85;font-size:1.02rem}.jump{display:inline-flex;align-items:center;justify-content:space-between;gap:60px;padding:15px 20px;border-radius:9px;background:#173f3b;color:#fff;text-decoration:none;font-weight:700;margin-top:19px;box-shadow:0 7px 0 #b4c6b9}.jump:hover{transform:translateY(2px);box-shadow:0 5px 0 #b4c6b9}.hero-art{position:relative;min-height:340px;overflow:hidden;border-radius:40px;background:radial-gradient(circle at 65% 20%,#78938c 0%,#456865 42%,#1e4440 78%)}.moon{position:absolute;right:17%;top:14%;width:90px;height:90px;border-radius:50%;background:#fbe8b7;box-shadow:0 0 48px #ffe5a180}.hill{position:absolute;left:-15%;bottom:-45%;width:110%;height:85%;border-radius:50%;background:#214541}.hill-back{left:15%;bottom:-35%;background:#365c53}.hill-front{z-index:1}.hero-light{position:absolute;z-index:2;color:#ffd073;font-size:2.1rem;text-shadow:0 0 16px #ffd073}.l1{left:23%;bottom:25%}.l2{left:55%;bottom:36%}.l3{left:78%;bottom:17%}.l4{left:40%;bottom:8%}.play-zone{background:#e5ece3;padding:72px 0 84px}.play-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);gap:24px;align-items:start}.game-card,.side-card{border-radius:24px;background:#fffcf4;box-shadow:0 12px 32px #365b4a16}.game-card{position:relative;overflow:hidden;padding:30px}.game-top,.game-meta,.controls{display:flex;align-items:center;justify-content:space-between;gap:14px}.game-top h2{margin:0;font-size:1.55rem}.game-top .eyebrow{margin-bottom:6px}.level-pill{border-radius:50px;background:#e9eee6;padding:9px 15px;font-size:.75rem;font-weight:700;color:#527064;white-space:nowrap}.level-pill strong{font-size:1rem;color:#173f3b}.progress{height:7px;border-radius:10px;background:#e3e8dd;margin:24px 0 18px;overflow:hidden}.progress span{display:block;height:100%;background:#d3a45b;border-radius:10px;transition:width .25s}.game-meta{font-size:.85rem;color:#60746b}.game-meta strong{color:#193a35;font-size:1.03rem}.status{min-height:42px;line-height:1.5;margin:20px 0 14px;font-size:.9rem;font-weight:700;color:#345a50}.board-shell{display:grid;place-items:center;background:#e8eee7;border-radius:18px;padding:clamp(12px,3vw,24px)}.board{--size:4;display:grid;grid-template-columns:repeat(var(--size),1fr);gap:clamp(4px,1vw,8px);width:min(100%,430px);aspect-ratio:1}.cell{position:relative;min-width:0;min-height:0;border:0;border-radius:12px;background:#fdfaf0;box-shadow:0 3px 0 #d7dfd5;color:#193a35;display:grid;place-items:center;cursor:pointer;transition:background .15s,transform .15s}.cell:not(:disabled):hover{transform:translateY(-2px);background:#fff}.cell:focus-visible,.controls button:focus-visible,.stage-picker button:focus-visible,.jump:focus-visible,.win button:focus-visible{outline:3px solid #e5a63d;outline-offset:3px}.cell.wall{background:#abc3af;box-shadow:inset 0 3px 8px #42715430;cursor:default}.cell.path{background:#9ccabb;box-shadow:0 3px 0 #6da18e}.cell.current{background:#236759;color:#fff;box-shadow:0 3px 0 #13483e}.cell.reachable{box-shadow:0 0 0 3px #d5ae66 inset,0 3px 0 #d7dfd5}.cell.goal{background:#e8ceb0}.cell.goal.reachable{background:#f3d99b}.cell .glyph{font-size:clamp(1.3rem,4vw,2.25rem);line-height:1}.cell .dot{position:absolute;bottom:13%;width:8px;height:8px;border-radius:50%;background:#fff7d7}.cell .light{font-size:clamp(1.3rem,3.8vw,2rem);color:#e3a942;text-shadow:0 0 12px #ffd67a}.cell.path .light,.cell.current .light{color:#fff1b6}.controls{justify-content:center;flex-wrap:wrap;margin-top:22px}.controls button{cursor:pointer;border:1px solid #bfd1c4;border-radius:10px;background:#fff;padding:10px 15px;color:#245247;font-size:.84rem;font-weight:700}.controls button:hover{background:#eaf2e9}.controls button:disabled{opacity:.45;cursor:not-allowed}.side-card{padding:34px}.side-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:16px;background:#f6e9cb;color:#bd8c40;font-size:2rem}.side-card h2{font-size:2rem;line-height:1.35;margin:25px 0 16px}.side-card p{line-height:1.8;color:#547067;font-size:.9rem}.stage-heading{display:flex;justify-content:space-between;align-items:end;gap:8px;margin-top:40px;margin-bottom:13px;font-weight:800}.stage-heading small{font-size:.65rem;color:#688077;font-weight:500}.stage-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.stage-picker button{height:49px;border:0;border-radius:10px;background:#eaf0e7;color:#366155;font-weight:800;cursor:pointer}.stage-picker button.active{background:#215c50;color:white}.stage-picker button.complete:not(.active){background:#e8d7ac;color:#655123}.stage-picker button:disabled{opacity:.4;cursor:not-allowed}.side-card .save-note{margin-top:22px;font-size:.75rem}.how{padding-top:72px;padding-bottom:76px}.how h2{margin:0 0 28px;font-size:2.2rem}.rules{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.rules article{background:#fffdf7;border-radius:16px;padding:25px}.rules article span{font-size:.72rem;font-weight:800;color:#c28a45}.rules h3{margin:16px 0 8px}.rules p,.how-note{line-height:1.75;color:#577166;font-size:.9rem}.how-note{margin-top:22px}.footer{border-top:1px solid #d7ddd3;display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:27px;padding-bottom:35px;font-size:.8rem;color:#597267}.footer a{text-decoration:none}.win[hidden]{display:none}.win{position:absolute;inset:0;z-index:3;display:grid;place-items:center;background:#173b36db;padding:24px}.win-inner{text-align:center;background:#fffaf0;border-radius:22px;padding:40px 25px;width:min(100%,390px)}.win-star{font-size:3rem;color:#d2a053}.win h3{font-size:1.5rem;margin:16px 0 8px}.win p{color:#5b7369;line-height:1.7}.win button{border:0;border-radius:10px;background:#215c50;color:#fff;padding:13px 23px;font-weight:800;cursor:pointer;margin-top:12px}@media(max-width:780px){.hero{grid-template-columns:1fr;gap:30px;padding-top:40px;min-height:auto}.hero-art{min-height:230px}.play-grid{grid-template-columns:1fr}.side-card{order:2}.rules{grid-template-columns:1fr}.site-header nav{gap:13px;font-size:.75rem}}@media(max-width:480px){.wrap{width:min(100% - 24px,1100px)}.site-header{min-height:68px}.site-header nav a:nth-child(3){display:none}.hero{padding-bottom:50px}.hero h1{font-size:3.55rem}.play-zone{padding:35px 0}.game-card{padding:18px}.game-top h2{font-size:1.3rem}.cell{border-radius:8px}.controls button{font-size:.72rem;padding:9px}.side-card{padding:24px}.footer{flex-wrap:wrap}}
/* A hinted move remains visible without relying on the status text alone. */
.cell.hinted{box-shadow:0 0 0 4px #f1a930 inset,0 3px 0 #d7dfd5;animation:hint-pulse 1s ease-in-out infinite alternate}
@keyframes hint-pulse{to{box-shadow:0 0 0 4px #f1a930 inset,0 0 20px #f1a93080}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cell.hinted{animation:none}}
