@font-face{font-family:River Sans;src:url('assets/v2/noto-sans-sc.woff2') format('woff2');font-display:swap;font-weight:100 900}
:root{--ink:#204b3d;--deep:#204b3d;--deep-2:#2b6250;--muted:#577065;--jade:#4f8069;--mint:#dfeadf;--paper:#f7f8ef;--paper-2:#fffff7;--gold:#c0a262;--orange:#a57a42;--line:#cbd8cb;--shadow:0 22px 55px rgba(34,72,52,.12);color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:#8fa993 #e5ede3}body{margin:0;min-width:320px;color:var(--ink);font-family:River Sans,"PingFang SC","Microsoft YaHei",sans-serif;background:#e7eee4;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #946e2e;outline-offset:4px}button:disabled{cursor:not-allowed}::selection{color:#fffef4;background:#476f58}
.site-header{width:min(1120px,calc(100% - 80px));height:78px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.site-header a{text-decoration:none;display:inline-flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.site-header .brand{font-size:19px;font-weight:600;color:var(--ink);letter-spacing:.14em}.site-header .brand svg{width:26px;height:26px}.site-header a:last-child span{font-size:17px}.site-header a:hover{color:#163b2c}
.page{width:min(1050px,calc(100% - 80px));margin:0 auto;min-height:calc(100svh - 78px);display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,440px);align-items:center;gap:clamp(40px,6vw,86px);padding:20px 0 22px}.info{grid-column:1;grid-row:1;max-width:510px}.game-column{grid-column:2;grid-row:1;display:grid;justify-items:center;gap:12px}.phone-shell{position:relative;width:min(390px,calc((100svh - 128px)*9/16));min-width:320px;padding:0;border:0;border-radius:16px;box-shadow:0 24px 64px rgba(48,78,53,.16);background:#d7e7d4}.phone-shell::before{display:none}.game-wrap{position:relative;width:100%;aspect-ratio:9/16;overflow:hidden;border-radius:16px;background:#d7e7d4;isolation:isolate;touch-action:none;user-select:none}canvas{display:block;width:100%;height:100%;image-rendering:auto}.phone-note{color:var(--muted);font-size:11px;letter-spacing:.04em;text-align:center}
.info h1{margin:0;font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-size:clamp(48px,5vw,66px);font-weight:500;letter-spacing:-.03em;line-height:1.24;text-wrap:balance}.info h1 .title-line{display:block}.info h1 .river-name{display:block;margin-top:20px;font-family:River Sans,sans-serif;color:#55745d;font-size:12px;line-height:1.6;font-weight:500;letter-spacing:.2em}.lead{margin:25px 0 24px;max-width:390px;font-size:14px;line-height:1.95;color:var(--muted)}.lead strong{color:var(--ink);font-weight:500}.page-actions{display:flex;align-items:center;gap:12px;margin:0 0 36px}.page-btn{min-height:45px;padding:0 22px;border-radius:8px;font-size:12px;font-weight:500;transition:background .2s,color .2s,transform .2s}.page-btn.primary{color:#fffef2;border:0;background:var(--ink)}.page-btn.primary:hover{background:#163e2f;transform:translateY(-1px)}.page-btn.secondary{color:var(--ink);background:transparent;border:1px solid #a5bba7}.page-btn.secondary:hover{background:#dce6d7}.page-btn:active{transform:translateY(1px)}
.voyage-modes{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding-top:23px;border-top:1px solid #bfcebd}.voyage-mode h2{font-size:13px;font-weight:600;margin:0 0 7px;display:flex;align-items:baseline;gap:10px}.voyage-mode h2 span{font-size:11px;color:#536b57;font-weight:400}.voyage-mode p{margin:0;color:var(--muted);font-size:11px;line-height:1.8}.how-to{margin-top:27px;border-top:1px solid #bfcebd;padding-top:20px}.how-to h2{margin:0 0 13px;font-size:12px;font-weight:500}.instruction{display:flex;align-items:flex-start;gap:11px;margin:9px 0;font-size:11px;line-height:1.8;color:var(--muted)}.instruction svg{flex:0 0 17px;width:17px;height:17px;margin-top:2px;stroke:#52735b;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.instruction strong{font-weight:500;color:var(--ink)}kbd{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;padding:0 4px;border:1px solid #b5c7b4;border-radius:4px;font:inherit;color:#31533b;background:#eff3e8;box-shadow:0 1px 2px rgba(35,70,40,.05)}.footer-note{margin:22px 0 0;color:#536b57;font-size:11px;line-height:1.8}.footer-note a{color:#3f6248}
.game-hud{position:absolute;z-index:4;inset:12px 12px auto;padding:10px 10px 9px;border:0;border-radius:10px;color:#244b38;background:#fbfcf0;box-shadow:0 8px 25px rgba(41,77,49,.12);font-size:11px;letter-spacing:0;transition:opacity .2s}.game-hud[hidden]{display:none}.hud-row{display:grid;align-items:center;gap:7px}.hud-row.top{grid-template-columns:1fr .93fr .88fr auto auto}.hud-row.mid{grid-template-columns:1fr .9fr 1.1fr 32px;margin-top:7px}.hud-row.shop{grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.hud-value{white-space:nowrap;font-variant-numeric:tabular-nums}.hud-value strong{color:#214c39;font-size:11px;font-weight:600}.hud-value.hearts{font-size:14px;letter-spacing:2px;color:#a95643}.hud-icon-btn{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:6px;color:#3b5c44;background:#e7eddf;font-size:14px}.hud-icon-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.hud-icon-btn.active{color:#fffef5;background:#486f50}.hud-icon-btn:hover{background:#c8d8c1;color:#173d28}.hud-icon-btn.active:hover{background:#315a39;color:#fff}.shop-btn{min-height:30px;padding:4px 6px;border:1px solid #c8d4bf;border-radius:6px;color:#31543b;background:#edf1e4;font-weight:500;font-size:11px}.shop-btn:hover:not(:disabled){background:#d7e3cb}.shop-btn:disabled{opacity:.46}
.game-toast{position:absolute;z-index:5;top:143px;left:50%;width:max-content;max-width:89%;padding:9px 14px;border-radius:8px;transform:translate(-50%,-5px);color:#fbfced;background:#315b40;box-shadow:0 8px 24px rgba(30,62,39,.16);text-align:center;font-size:11px;font-weight:500;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.game-toast.show{opacity:1;transform:translate(-50%,0)}.control-hint{position:absolute;z-index:3;left:50%;bottom:22px;top:auto;width:84%;transform:translateX(-50%);padding:8px 10px;background:rgba(249,252,237,.93);border-radius:7px;color:#31543b;text-align:center;font-size:11px;font-weight:500;pointer-events:none;transition:opacity .35s}.control-hint.fade{opacity:0}#startOverlay:not(.hidden)~.control-hint{display:none}
.overlay{position:absolute;z-index:7;inset:0;display:grid;place-items:center;padding:16px;background:rgba(35,64,43,.3)}.overlay.hidden{display:none}#startOverlay{place-items:end center;padding:14px;background:transparent;pointer-events:none}.start-card,.dialog-card{width:100%;padding:18px;border:0;border-radius:12px;color:var(--ink);background:#fbfcf0;box-shadow:0 12px 36px rgba(36,72,42,.18);text-align:left;pointer-events:auto}.start-card{padding:15px 16px 13px}.start-card .seal,.start-card h2,.start-card .en,.start-card .copy{display:none}.choice-label{margin:9px 0 6px;color:#4a684d;text-align:left;font-size:11px;font-weight:500;letter-spacing:.04em}.choice-label:first-of-type{margin-top:0}.choice-row{display:grid;grid-template-columns:1fr 1fr;gap:7px}.choice{min-height:44px;padding:6px 7px;border:1px solid #d3ddca;border-radius:7px;color:#49664c;background:#f4f6e9;cursor:pointer;font-weight:500;font-size:11px;line-height:1.45;transition:background .2s,border-color .2s}.choice small{display:block;margin-top:2px;color:#526c50;font-weight:400;font-size:11px}.choice.selected{color:#244e35;border-color:#698964;background:#e1ebd6;box-shadow:inset 0 0 0 .5px #698964}.choice.selected small{color:#3b603f}.choice:hover{background:#e9efdf}.game-actions{display:grid;gap:8px;margin-top:14px}.start-card .game-actions{grid-template-columns:1.15fr 1fr;gap:7px;margin-top:12px}.game-primary,.game-secondary{min-height:43px;padding:8px 9px;border-radius:7px;cursor:pointer;font-size:11px;font-weight:500;transition:background .2s,transform .2s}.game-primary{color:#fffdef;background:#315a3d;border:0}.game-primary:hover{background:#20492e}.game-secondary{color:#36593c;background:#e6eddb;border:1px solid #c6d4bd}.game-secondary:hover{background:#d5e1c9}.game-primary:active,.game-secondary:active{transform:translateY(1px)}.micro{margin:9px 0 0;color:#60745a;text-align:center;font-size:11px;line-height:1.6}.micro br{display:none}.micro br::after{content:' · '}.dialog-card{max-width:326px;padding:24px 22px;text-align:center}.dialog-card .badge{display:inline-block;margin-bottom:12px;color:#536d48;font-size:11px;letter-spacing:.08em}.dialog-card h2{margin:0;color:#244b35;font-family:"Songti SC","STSong",serif;font-size:27px;font-weight:500;letter-spacing:0;line-height:1.3}.dialog-card>p{color:#5b7357;font-size:12px;line-height:1.8;margin:14px 0 18px}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 8px;margin:22px 0;padding:17px 0;border-top:1px solid #d3ddc9;border-bottom:1px solid #d3ddc9}.result-grid div{padding:0;background:none;border:0}.result-grid strong{display:block;color:#526b3f;font-size:24px;font-weight:500;line-height:1.3;font-variant-numeric:tabular-nums}.result-grid span{color:#607657;font-size:11px}.dialog-card .game-actions{margin-top:16px}.dialog-card .game-primary,.dialog-card .game-secondary{min-height:40px}
@media(min-width:1500px){.page{width:1100px;gap:100px}.phone-shell{width:414px}.info h1{font-size:74px}.lead{font-size:15px}}
@media(max-width:960px) and (min-width:701px){.site-header,.page{width:calc(100% - 48px)}.page{grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:28px}.info h1{font-size:45px}.phone-shell{min-width:300px;width:min(360px,calc((100svh - 126px)*9/16))}.lead{font-size:12px}.page-btn{padding:0 13px;font-size:11px}.voyage-modes{gap:12px}.voyage-mode h2{display:block}.voyage-mode h2 span{display:block;margin-top:4px}.instruction{font-size:11px}}
@media(max-width:700px){.site-header{width:calc(100% - 36px);height:56px}.site-header .brand{font-size:15px;letter-spacing:.12em}.site-header .brand svg{width:22px;height:22px}.site-header a{font-size:11px}.page{display:flex;flex-direction:column;width:100%;gap:0;min-height:0;padding:15px 0 32px;align-items:stretch}.info{display:contents}.info h1{order:-3;margin:0 20px;font-family:River Sans,sans-serif;font-size:25px;font-weight:400;letter-spacing:-.025em;line-height:1.4;display:flex;align-items:baseline;gap:0}.info h1 .title-line{display:inline}.info h1 .river-name{display:none}.lead{order:-2;max-width:none;margin:8px 20px 15px;font-size:11px;line-height:1.8}.lead .desktop-copy{display:none}.game-column{order:-1;gap:10px}.phone-shell{width:min(390px,calc(100vw - 24px));min-width:0;border-radius:12px;box-shadow:0 14px 34px rgba(48,78,53,.14)}.game-wrap{border-radius:12px}.phone-note{display:none}.page-actions{display:none}.voyage-modes{margin:28px 22px 0;padding-top:21px;gap:22px}.voyage-mode h2{font-size:12px;gap:8px}.voyage-mode h2 span{font-size:11px}.voyage-mode p{font-size:11px}.how-to{margin:22px 22px 0;padding-top:19px}.instruction{font-size:11px}.footer-note{margin:19px 22px 0;font-size:11px}.start-card{padding:14px 15px 12px}#startOverlay{padding:12px}.choice{font-size:11px}.micro{font-size:11px}.game-hud{inset:10px 10px auto}}
@media(max-width:380px){.info h1{font-size:23px}.lead{font-size:11px}.start-card{padding:11px 12px}.choice{font-size:11px}.choice small{font-size:11px}.choice-label{margin-top:7px}.start-card .game-actions{margin-top:9px}.game-primary,.game-secondary{font-size:11px}.hud-row{gap:4px}.game-hud{font-size:11px;padding:8px}.hud-value strong{font-size:11px}.hud-icon-btn{width:25px;height:26px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* Keep small-screen reading and touch controls comfortable. */
.lead,.instruction,.voyage-mode p{font-size:12px}.choice-label,.choice,.game-primary,.game-secondary,.page-btn{font-size:12px}.choice small{font-size:11px}.hud-value strong,.game-hud,.shop-btn{font-size:11px}.micro{font-size:10px}.dialog-card .game-primary,.dialog-card .game-secondary{min-height:44px}.phone-note{font-size:11px}
@media(max-width:700px){.lead{font-size:12px}.instruction,.voyage-mode p{font-size:12px}.site-header a{font-size:11px}.game-hud{font-size:11px}.hud-value strong{font-size:11px}}
