@charset "UTF-8";
:root{--paper:#f3efe5;--ink:#2d3935;--muted:#6a7169;--line:#d9d8cc;--jade:#506e63;--cinnabar:#a94334;--serif:"Kaiti SC","STKaiti","KaiTi","Songti SC","Noto Serif CJK SC",serif;--sans:"PingFang SC","Microsoft YaHei",system-ui,sans-serif}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button{border:0;background:none}button:focus-visible,a:focus-visible,summary:focus-visible,canvas:focus-visible{outline:2px solid var(--cinnabar);outline-offset:5px}button:hover{color:var(--cinnabar)}button:disabled{cursor:default}a{color:inherit}.app{max-width:1512px;margin:auto;padding:28px 56px 20px;min-height:100svh}.header{display:flex;align-items:center;justify-content:space-between;padding-bottom:24px;border-bottom:1px solid var(--line)}.identity{display:flex;gap:14px;align-items:center;text-decoration:none}.seal{background:var(--cinnabar);color:var(--paper);font-family:var(--serif);font-size:16px;line-height:1.05;padding:6px 7px;border-radius:1px;box-shadow:inset 0 0 0 2px #f3efe534;transform:rotate(-3deg)}.wordmark{font-family:var(--serif);font-size:28px;letter-spacing:5px;display:flex;align-items:baseline;gap:18px}.roman{font-family:var(--sans);font-size:10px;letter-spacing:1px;color:var(--muted)}.header-note{font-family:var(--serif);font-size:16px;letter-spacing:3px;color:var(--muted);margin-right:60px}.tools{display:flex;gap:28px}.tool{display:flex;align-items:center;gap:8px;padding:7px 0;font-size:14px;white-space:nowrap}.tool svg,.restart svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.tool[aria-pressed=true]{color:var(--cinnabar)}.game-heading{display:flex;justify-content:space-between;align-items:flex-end;padding:26px 0 22px}.eyebrow{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:2px;color:var(--muted);margin:0 0 9px}.dash{width:22px;height:1px;background:var(--cinnabar)}h1{font-size:34px;line-height:1.25;letter-spacing:5px;font-weight:400;font-family:var(--serif);margin:0}.heading-right{text-align:right}.chapter-label{font-family:var(--serif);font-size:16px;letter-spacing:2px}.heading-right p{font-size:13px;color:var(--muted);margin:9px 0 0}.scroll-frame{position:relative;padding:0 7px}.scroll-cap{position:absolute;top:-7px;bottom:-7px;width:8px;background:linear-gradient(90deg,#d3cabb,#f5eee0 42%,#d0c6b5);border:1px solid #bdb5a742;border-radius:3px;z-index:2;box-shadow:1px 1px 5px #2d393518}.cap-left{left:0}.cap-right{right:0}.painting{height:clamp(390px,58svh,690px);min-height:390px;position:relative;overflow:hidden;background:#edece2 url('assets/ink-landscape.webp') center center/cover;border:1px solid #c4c5b65c;box-shadow:0 14px 30px -20px #28362b45,inset 0 0 32px #ebe4d490}.painting:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 42px #e8e2d660}.season-wash{position:absolute;inset:0;pointer-events:none;transition:background 1.2s;background:#b0cab609;mix-blend-mode:multiply}body[data-season=spring] .season-wash{background:#e0b2aa17}body[data-season=autumn] .season-wash{background:#b1885622}body[data-season=winter] .painting{filter:saturate(.45)}body[data-season=winter] .season-wash{background:#7294a918}#lake{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair;z-index:1;outline-offset:-5px}.painting-name{position:absolute;top:38px;right:36px;z-index:2;display:flex;flex-direction:column;align-items:center;pointer-events:none;gap:16px}.painting-name>span:first-child{writing-mode:vertical-rl;font-family:var(--serif);font-size:31px;letter-spacing:8px}.painting-name small{writing-mode:vertical-rl;font-family:var(--serif);font-size:14px;letter-spacing:3px;color:var(--muted)}.mini-seal{font-family:var(--serif);font-size:18px;color:var(--cinnabar);border:1px solid var(--cinnabar);padding:2px 3px;transform:rotate(-5deg)}.in-painting-poem{position:absolute;bottom:34px;left:36px;display:flex;gap:15px;z-index:2;pointer-events:none;font-family:var(--serif);font-size:17px;letter-spacing:2px;color:#4d5b50}.in-painting-poem span{writing-mode:vertical-rl;line-height:1.7}.water-label{position:absolute;top:73%;left:71%;transform:translateX(-50%);font-family:var(--serif);font-size:12px;color:#627969;display:flex;align-items:center;gap:7px;pointer-events:none;z-index:2;letter-spacing:2px}.tiny-line{height:1px;width:15px;background:#62796977}.first-hint{position:absolute;left:43%;top:61%;display:flex;flex-direction:column;align-items:center;gap:16px;pointer-events:none;z-index:2;transition:opacity .6s;color:#52675c;font-size:13px;letter-spacing:1px}.first-hint.hidden{opacity:0}.hint-ripple{display:block;border:1px solid #6d8d7566;width:24px;height:9px;border-radius:50%;box-shadow:0 0 0 9px #78957a0a;animation:breathe 3s ease-in-out infinite}.restart{position:absolute;bottom:24px;right:24px;font-size:12px;display:flex;gap:8px;align-items:center;z-index:3;padding:10px;background:#f6f2e9b3;border:1px solid #bebdad44;border-radius:2px}.restart svg{width:15px;height:15px}.game-footer{display:flex;align-items:center;justify-content:space-between;padding:26px 0 24px;border-bottom:1px solid var(--line);gap:24px}.instruction{display:flex;align-items:center;gap:14px}.instruction-mark{font-family:var(--serif);font-size:30px;color:var(--jade);transform:rotate(-12deg)}.instruction p{font-size:14px;margin:0 0 6px}.instruction small{font-size:12px;color:var(--muted);letter-spacing:1px}.progress{display:flex;gap:17px;align-items:center;margin-left:30px}.progress-label{font-family:var(--serif);font-size:14px;letter-spacing:1px}.progress-dots{display:flex;gap:11px}.progress-dots i{display:block;width:8px;height:8px;border:1px solid #71877a;border-radius:50%;transition:all .5s}.progress-dots i.filled{background:var(--cinnabar);border-color:var(--cinnabar);box-shadow:0 0 0 3px #a9433410}.progress-count{font-family:Georgia,serif;font-size:14px;color:var(--muted);letter-spacing:1px;font-variant-numeric:tabular-nums}.mode-button{display:flex;align-items:center;gap:10px;font-size:14px;border:1px solid #7d8a7d6b;border-radius:2px;padding:10px 17px;white-space:nowrap}.mode-symbol{font-family:Georgia,serif;font-size:21px;line-height:1}.mode-button[aria-pressed=true]{background:var(--jade);color:var(--paper);border-color:var(--jade)}.bottom{display:flex;align-items:center;justify-content:space-between;padding-top:22px;gap:20px}.bottom-note{font-family:var(--serif);font-size:13px;color:var(--muted);letter-spacing:2px}.seasons{display:flex;gap:30px}.seasons button{font-family:var(--serif);font-size:14px;color:var(--muted);padding:5px 0 9px;letter-spacing:1px;border-bottom:1px solid transparent}.seasons button span{margin:0 3px}.seasons button[aria-current=true]{color:var(--cinnabar);border-color:var(--cinnabar)}.seasons button:hover{color:var(--cinnabar)}.bottom-index{font-family:var(--serif);font-size:12px;letter-spacing:2px;color:var(--muted)}.completion{position:absolute;inset:0;z-index:5;display:grid;place-items:center;background:#f3efe55c;backdrop-filter:blur(3px);padding:24px;animation:appear .7s ease-out}.completion[hidden]{display:none}.completion-card{text-align:center;background:#f7f3e9f2;border:1px solid #b7beac77;box-shadow:0 10px 50px #283a2914;padding:32px 44px 23px;max-width:510px}.completion-seal{display:inline-block;border:2px solid var(--cinnabar);padding:4px 7px;color:var(--cinnabar);font-family:var(--serif);letter-spacing:3px;font-size:18px;transform:rotate(-5deg);margin-bottom:21px}.completion-card .eyebrow{justify-content:center;letter-spacing:2px}.completion-card h2{font-family:var(--serif);font-weight:400;font-size:27px;line-height:1.5;margin:14px 0 19px}.completion-poem{font-family:var(--serif);font-size:18px;line-height:1.8;margin:0}.poem-credit{font-family:var(--serif);font-size:13px;color:var(--muted);margin:8px 0 20px}.culture-note{font-size:14px;line-height:1.85;color:#596457;max-width:370px;margin:0 auto 22px}.completion-actions{display:flex;justify-content:center;gap:20px;align-items:center}.primary{background:var(--jade);color:#f7f3e9;border-radius:2px;padding:12px 24px;font-size:14px;border:1px solid var(--jade)}.primary:hover{background:#3e5a4d;color:white}.text-button{font-size:14px;text-decoration:underline;text-decoration-color:#89938466;text-underline-offset:5px}.source-link{display:inline-block;font-size:12px;margin-top:18px;color:var(--muted);text-decoration:none;border-bottom:1px solid #6a716944;padding-bottom:2px}dialog{border:1px solid #bdc1b2;border-radius:3px;padding:38px 40px 32px;background:#f7f3e9;color:var(--ink);max-width:500px;width:calc(100% - 40px);max-height:calc(100svh - 40px);overflow-y:auto;box-shadow:0 25px 70px #15221822}dialog::backdrop{background:#24342d66;backdrop-filter:blur(4px)}dialog h2{font-family:var(--serif);font-size:26px;font-weight:400;line-height:1.5;margin:10px 0 25px}.dialog-close{position:absolute;top:10px;right:12px;font-size:25px;padding:4px 10px;color:var(--muted)}dialog ol{padding-left:22px;margin:0}dialog li{padding-left:6px;margin:0 0 20px;color:var(--jade)}dialog li b{display:block;font-size:16px;font-weight:500;color:var(--ink);margin-bottom:6px}dialog li span,dialog details p{font-size:14px;line-height:1.8;color:var(--muted)}dialog details{font-size:14px;margin:0 0 18px}dialog summary{cursor:pointer}.help-footnote{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 22px}dialog>.primary{width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.noscript{position:fixed;bottom:0;padding:20px;background:var(--paper);width:100%;text-align:center;z-index:10}@keyframes breathe{50%{transform:scale(1.4);opacity:.4}}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1700px){.app{padding-top:40px}.game-heading{padding-top:32px}}@media(max-width:1000px){.app{padding:22px 32px 20px}.header-note{margin:0}.roman{display:none}.painting{height:56svh}.seasons{gap:24px}.progress{margin-left:0;gap:12px}.progress-label{display:none}.bottom-note{font-size:12px}}
@media(max-width:650px){.app{padding:18px 18px 22px}.header{padding-bottom:16px}.wordmark{font-size:25px}.identity{gap:10px}.header-note{display:none}.tools{gap:20px}.game-heading{padding:23px 0 18px;align-items:center}.eyebrow{font-size:11px;letter-spacing:1px;gap:7px}h1{font-size:30px;letter-spacing:4px}.heading-right p{display:none}.chapter-label{font-size:14px;letter-spacing:1px}.painting{height:55svh;min-height:390px;max-height:600px;background-position:57% center}.painting-name{top:25px;right:21px;gap:11px}.painting-name>span:first-child{font-size:26px;letter-spacing:6px}.painting-name small{font-size:12px}.mini-seal{font-size:16px}.in-painting-poem{bottom:35px;left:17px;font-size:14px;gap:5px}.first-hint{left:34%;top:55%;font-size:12px;gap:18px}.water-label{left:71%;top:72%;font-size:11px;gap:3px;letter-spacing:1px}.tiny-line{width:7px}.restart{right:12px;bottom:16px;font-size:11px;padding:8px;gap:5px}.game-footer{padding:20px 0;display:grid;grid-template-columns:1fr auto;gap:18px 15px}.instruction{gap:9px}.instruction-mark{font-size:23px}.instruction p{font-size:13px}.instruction small{font-size:11px;letter-spacing:0}.mode-button{padding:9px 11px;font-size:13px;gap:7px;grid-row:1;grid-column:2}.progress{grid-column:1/-1;justify-content:center;gap:15px}.progress-label{display:block;font-size:13px}.progress-dots{gap:14px}.progress-count{font-size:13px}.bottom{padding-top:17px;justify-content:center;flex-wrap:wrap;gap:14px}.bottom-note{order:2;width:100%;text-align:center;font-size:12px}.bottom-index{display:none}.seasons{gap:25px}.seasons button{font-size:14px}.completion{padding:14px}.completion-card{padding:23px 21px 17px;width:100%;max-height:calc(100% - 6px);overflow-y:auto}.completion-seal{font-size:15px;margin-bottom:14px}.completion-card h2{font-size:23px;margin:10px 0 12px}.completion-poem{font-size:16px}.poem-credit{margin-bottom:14px}.culture-note{font-size:13px;margin-bottom:17px}.completion-actions{gap:13px}.primary{padding:11px 17px;font-size:14px}.completion .eyebrow{font-size:11px}.source-link{margin-top:14px}dialog{padding:34px 26px 27px}dialog h2{font-size:24px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/* Keep the complete poem and primary action inside shorter scrolls. */
.completion-card{max-height:100%;overflow-y:auto;overscroll-behavior:contain}
@media(max-width:1000px){.completion{padding:16px}.completion-card{padding:20px 28px 16px}.completion-seal{margin-bottom:12px}.completion-card .eyebrow{margin-bottom:5px}.completion-card h2{font-size:24px;margin:8px 0 12px}.completion-poem{font-size:17px}.poem-credit{margin:5px 0 12px}.culture-note{font-size:13px;line-height:1.7;margin-bottom:16px}.source-link{margin-top:12px}}
[hidden]{display:none!important}
.completion-card{display:flex;flex-direction:column;overflow:hidden}
.completion-content{min-height:0;overflow-y:auto;overscroll-behavior:contain}
.completion-actions{flex-shrink:0;margin-top:12px}
.completion-actions button{white-space:nowrap}
.source-link{align-self:center;flex-shrink:0}
@media(max-width:650px){.completion-card{padding:19px 14px 15px}.completion-actions{gap:12px}.seasons{width:100%;justify-content:space-between;gap:12px}.seasons button{white-space:nowrap}}

.back-to-hall{text-decoration:none;white-space:nowrap}.back-to-hall:hover{color:var(--cinnabar)}
