:root{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif;color:#243d35;background:#f6f3ed;font-synthesis:none;--ink:#243d35;--muted:#67756b;--green:#2c5747;--line:#d6ddd3;--photo:url('assets/mountain.jpg')}
*{box-sizing:border-box}body{margin:0;min-width:280px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #9d6524;outline-offset:4px}button:disabled{cursor:default;opacity:.4}[hidden]{display:none!important}.ambient{position:fixed;inset:-120px;z-index:-1;background:linear-gradient(125deg,#f8f6f0ef,#f6f3edf0),var(--photo) center/cover;filter:blur(40px);pointer-events:none}.page{max-width:1160px;padding:36px 48px 20px;margin:auto}.masthead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:68px}.brand{text-decoration:none;font-weight:750;letter-spacing:-.4px;font-size:18px;display:flex;align-items:center;gap:10px}.tag{font-size:11px;letter-spacing:.06em;color:#52665a;background:#fff8;border:1px solid #fff;padding:8px 12px;border-radius:30px}main{display:grid;grid-template-columns:1fr 440px;gap:74px;align-items:start}.introduction{padding-top:50px}.eyebrow{font-size:10px;letter-spacing:.14em;font-weight:700;color:#778579}h1{font-size:29px;letter-spacing:.06em;margin:22px 0}.lead{font-size:clamp(33px,3.8vw,44px);font-weight:600;line-height:1.5;letter-spacing:-.025em;margin:24px 0}.description{font-size:14px;line-height:2;color:#657268;margin:0}.full-app{display:flex;gap:14px;align-items:center;margin:36px 0 26px}.full-app p{font-size:13px;line-height:1.9;margin:0}.line-mark{font-size:31px;font-weight:400;color:#647b62}.store-link{display:inline-flex;gap:24px;align-items:center;font-size:14px;font-weight:650;text-decoration:none;border-bottom:1px solid #6c8272;padding:9px 0}.desktop-note{font-size:10px;line-height:1.9;color:#798379;margin:12px 0}.play-area{position:relative;background:#fff9;border:1px solid #fff;border-radius:32px;padding:24px;box-shadow:0 16px 50px #323b2d07}.game-top{display:flex;justify-content:space-between;align-items:center}.game-top h2{font-size:18px;font-weight:600;margin:9px 0 0;letter-spacing:-.02em}.icon-button{display:grid;place-items:center;width:36px;height:36px;border:1px solid #c6d1c37a;border-radius:50%;background:#fff8;font-size:20px;font-weight:500}.instruction{font-size:12px;margin:18px 0;color:#566a5b}.progress-row{display:flex;gap:16px;align-items:center;margin:0 0 19px}.progress-row span{font-size:11px;color:#66785e;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}progress{appearance:none;-webkit-appearance:none;border:0;width:100%;height:4px;border-radius:5px;overflow:hidden;background:#dce1d4}progress::-webkit-progress-bar{background:#dce1d4}progress::-webkit-progress-value{background:#47694e;border-radius:5px;transition:width .15s}progress::-moz-progress-bar{background:#47694e}.rule-key{display:flex;gap:16px;font-size:11px;margin:-3px 0 14px;color:#647763}.rule-key span{display:flex;align-items:center;gap:5px}.rule-key b{display:grid;place-items:center;width:24px;height:24px;border-radius:6px;font-size:21px;font-weight:700;color:#2b5948}.turn-symbol{background:#f7dba0}.straight-symbol{background:#c7e1eb}.board-wrap{position:relative;width:100%;aspect-ratio:1;isolation:isolate;touch-action:none;user-select:none;-webkit-user-select:none}.completed-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:18px;opacity:0;transform:scale(1);transition:opacity .65s,transform 1.1s cubic-bezier(.2,.8,.2,1),box-shadow 1.1s;pointer-events:none;z-index:0}.board{display:grid;grid-template-columns:repeat(var(--n,4),1fr);grid-template-rows:repeat(var(--n,4),1fr);gap:9px;position:absolute;inset:0;z-index:auto;transition:opacity .6s}.cell{position:relative;padding:0;display:grid;place-items:center;border-radius:14px;background:#dee4d1;touch-action:none;min-width:0;min-height:0;aspect-ratio:1;transition:background .15s,box-shadow .15s;isolation:auto}.cell.empty{visibility:hidden;pointer-events:none}.cell.turn{background:#f8dda3}.cell.straight{background:#c5e0ed}.cell.visited{background:#00000014}.cell.start,.cell.goal{font-size:23px;font-weight:750}.cell.start{color:#fff}.cell .mark{position:relative;z-index:3;line-height:1;pointer-events:none;padding:5px;border-radius:8px}.cell.start .mark{background:#2c5747}.cell.goal .mark{background:#dee4d1}.cell.goal.visited .mark{background:#2c5747;color:#fff}.cell.visited .symbol{background:#faf9f3f0;border-radius:7px;padding:3px;box-sizing:content-box}.cell .symbol{position:relative;z-index:3;width:44%;height:44%;fill:none;stroke:#31594a;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.cell.tip{box-shadow:inset 0 0 0 2px #fffffff0,inset 0 0 0 3px #243d3555}.cell.hint{box-shadow:inset 0 0 0 3px #ac7426,0 0 0 3px #f3c7757a}.cell.warning{animation:shake .25s 2;background:#efc8b7}.route{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible;transition:opacity .5s}.route polyline{fill:none;stroke:#2f5c4a;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.route #route-halo{stroke:#faf9f3e6}.route circle{fill:#2f5c4a}.start-cue{position:absolute;z-index:4;background:#fff;color:#2f5747;padding:5px 8px;border-radius:9px;font-size:10px;font-weight:600;white-space:nowrap;box-shadow:0 3px 12px #253f3020;pointer-events:none;transform:translate(-50%,-125%);animation:breathe 2s ease-in-out infinite}.start-cue:after{content:"";position:absolute;bottom:-5px;left:calc(50% - 5px);border-top:6px solid #fff;border-left:5px solid transparent;border-right:5px solid transparent}.board-wrap.complete .completed-photo{opacity:1;transform:scale(1.03);box-shadow:0 12px 25px #283e3826}.board-wrap.complete .board,.board-wrap.complete .route{opacity:0;pointer-events:none}.board-wrap.complete .start-cue{display:none}.caption{margin:16px 0 4px;display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#657268}.caption a{text-decoration:none}.caption a:hover{text-decoration:underline}.status{font-size:11px;line-height:1.8;min-height:36px;margin:14px 0 12px;color:#63765e}.status.error{color:#9b3d21}.play-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.secondary{padding:12px 4px;background:#e4e9ddd9;border-radius:14px;font-size:12px;min-height:44px}.secondary:hover{background:#d4dfce}.success{text-align:center;animation:appear .8s}.complete-label{font-size:9px;letter-spacing:.2em;color:#6a8269;font-weight:700;margin:24px 0 9px}.success h2{font-size:21px;font-weight:600;letter-spacing:.02em;margin:0 0 12px}.success p{font-size:12px;line-height:1.9;color:#62745e}.primary{display:flex;align-items:center;justify-content:center;gap:16px;min-height:48px;width:100%;padding:13px 18px;background:#2c5747;border-radius:15px;color:white;font-weight:600;font-size:14px;text-decoration:none;margin-top:18px}.primary:hover{background:#204737}.success-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:5px 18px;margin-top:12px}.text-button{font-size:11px;background:transparent;text-decoration:underline;text-underline-offset:4px;min-height:40px}.small-note,.success .small-note{font-size:10px;line-height:1.9;color:#788371}.mobile-pitch{display:none}footer{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:64px 0 0;padding-top:20px;border-top:1px solid #cdd4c6;font-size:10px;color:#73806c;line-height:1.9}footer nav{display:flex;gap:18px}footer a{text-decoration:none}dialog{border:1px solid #fff;border-radius:26px;max-width:440px;width:calc(100% - 32px);padding:25px;color:#243d35;background:#faf9f3;box-shadow:0 22px 80px #25362e30}dialog::backdrop{background:#20352d58;backdrop-filter:blur(4px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center}dialog h2{font-size:22px;margin:0}dialog p,dialog li{font-size:13px;line-height:1.9}dialog ol{padding-left:22px}dialog li{padding:5px 0}.policy{max-width:680px;display:block;margin:50px auto;font-size:14px;line-height:2}.policy h1{font-size:28px}.policy h2{font-size:18px;margin-top:30px}.policy a{text-underline-offset:3px}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes breathe{50%{transform:translate(-50%,-140%)}}@keyframes shake{25%{translate:-3px}75%{translate:3px}}
@media(max-width:800px){.page{padding:19px 20px 20px;max-width:510px}.masthead{margin-bottom:21px}.brand{font-size:15px;gap:7px}.tag{font-size:9px;padding:6px 9px}main{display:block}.introduction{padding:0}.introduction .eyebrow,.lead,.description,.full-app,.desktop-store,.desktop-note{display:none}h1{font-size:27px;margin:0 0 22px;letter-spacing:.04em}.play-area{padding:20px;border-radius:26px}.game-top h2{font-size:17px;margin-top:6px}.game-top .eyebrow{font-size:9px}.instruction{font-size:11px;margin:14px 0}.progress-row{margin-bottom:16px}.board{gap:7px}.cell{border-radius:12px}.status{margin-top:13px;min-height:37px}.caption{font-size:9px}.caption span{max-width:55%;text-align:right}.mobile-pitch{display:block;text-align:center;margin:29px 0 0}.mobile-pitch p{font-size:12px;line-height:1.9;margin:0 0 8px}.mobile-pitch small{display:block;font-size:9px;color:#7a8573;margin-top:10px}footer{margin-top:35px;font-size:9px;gap:9px;align-items:flex-start}footer nav{gap:8px;flex-wrap:wrap;justify-content:flex-end}.policy{margin:30px auto}}
@media(max-width:360px){.page{padding:14px 13px}.play-area{padding:14px}.tag{font-size:8px}h1{font-size:24px}.secondary{font-size:11px}.cell{border-radius:9px}.cell.start,.cell.goal{font-size:20px}.board{gap:6px}.caption{flex-wrap:wrap}.caption span{max-width:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.board-wrap.complete .completed-photo{transform:none}}

.release-notice{font-size:12px;line-height:1.7;color:#50685d;border-left:2px solid #bfccb9;padding:5px 12px;margin:0 0 24px;max-width:640px}.success .release-notice{margin:16px auto;text-align:left;}

/* Match the app: reveal only the cells in the player's current path. */
.photo-reveal{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;transition:opacity .5s}
.photo-mask-cell{opacity:0;transition:opacity .32s ease-out}
.photo-mask-cell.revealed{opacity:1}
.board-wrap.complete .photo-reveal{opacity:0}
.board-wrap.photo-unavailable .completed-photo,.board-wrap.photo-unavailable .photo-reveal{visibility:hidden}
.board-wrap.photo-unavailable .cell.visited{background:#b6cbb4}
.board-wrap.complete.photo-unavailable .board,.board-wrap.complete.photo-unavailable .route{opacity:1}

/* Easy entry: clear goal and one visible continuation point. */
.easy-board .cell.goal .mark{background:#e9b54f;color:#203e32}.easy-board .start-cue{font-size:11px}.challenge-invite{text-align:center;margin:28px 0 0;font-size:13px}.challenge-link{display:block;margin:18px 0 2px;font-size:12px;text-underline-offset:4px}
