:root{--paper:#f6f3ec;--surface:#fffdf8;--ink:#273e35;--muted:#7f8276;--line:#deded0;--green:#376450;--pale:#e7ecdf;--red:#a6503b;--gold:#ac8b52;--serif:"Noto Serif SC","Songti SC","STSong","SimSun",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.42}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button{border:0;background:none}a{color:var(--green)}svg{width:20px;height:20px;vertical-align:middle;flex-shrink:0;stroke-width:1.6}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:500}h1{font-size:36px;letter-spacing:.08em;line-height:1.45}h2{font-size:24px;letter-spacing:.04em}h3{font-size:19px}small{font-size:11px}button:active:not(:disabled){transform:translateY(1px)}.app-shell{display:grid;grid-template-columns:226px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);padding:36px 24px 24px;display:flex;flex-direction:column;background:#f0eee5;z-index:10}.brand{display:flex;align-items:center;gap:13px;text-align:left;padding:0}.seal{width:42px;height:44px;display:grid;place-items:center;flex-shrink:0;background:var(--red);color:#fff7e8;font:30px var(--serif);outline:1px solid #f5e9d4;outline-offset:-5px;border-radius:2px;letter-spacing:0}.brand-name{font:23px var(--serif);letter-spacing:.09em;white-space:nowrap}.brand-sub{font-size:9px;letter-spacing:.25em;color:var(--muted);margin-top:4px}.side-label{color:#999b8d;font-size:10px;letter-spacing:.16em;margin:45px 12px 13px}.nav{display:grid;gap:8px}.nav button{display:flex;align-items:center;gap:13px;text-align:left;padding:13px 15px;border-radius:5px;color:#777f70;font-size:14px;letter-spacing:.06em}.nav button.active{background:var(--green);color:#fffaf0}.nav button:not(.active):hover{background:#e5e7d9}.side-rule{width:28px;height:1px;background:#c1c8b5;margin:30px 13px}.side-verse{font-family:var(--serif);color:#8e9483;letter-spacing:.18em;line-height:2.3;padding-left:14px}.side-bottom{margin-top:auto;padding:20px 11px 0;color:#8d9284;font-size:11px}.sound-btn{display:flex;align-items:center;gap:8px;padding:8px 0;margin-bottom:10px;font-size:11px;color:#6f7b6b}.main{min-width:0;padding:0 48px 44px;max-width:1640px;width:100%;margin:auto}.topbar{height:87px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:15px;color:var(--muted);font-size:11px;letter-spacing:.08em}.topbar-left{display:flex;align-items:center;gap:9px}.topbar-right{display:flex;align-items:center;gap:22px}.topbar-right span{display:flex;align-items:center;gap:6px}.avatar{border:1px solid #c9cfbe;border-radius:50%;width:32px;height:32px;display:grid!important;place-items:center;font:14px var(--serif);color:var(--green)}.hero{position:relative;min-height:350px;display:flex;align-items:center;isolation:isolate;overflow:hidden;border-bottom:1px solid var(--line)}.hero-art{position:absolute;width:70%;height:100%;right:-55px;bottom:0;object-fit:cover;object-position:bottom;z-index:-1;opacity:.94;mask-image:linear-gradient(to right,transparent 0%,black 35%)}.hero-copy{padding:38px 0 42px;max-width:510px}.eyebrow{font-size:10px;letter-spacing:.2em;color:var(--gold);display:flex;align-items:center;gap:10px}.eyebrow:before{content:"";width:22px;height:1px;background:currentColor}.hero h1{font-size:46px;line-height:1.5;margin:14px 0}.hero p{color:#7c8375;font-size:13px;line-height:1.95;max-width:340px}.hero-actions{display:flex;align-items:center;gap:20px;margin-top:25px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:4px;font-size:13px;letter-spacing:.07em;transition:background .16s,transform .16s;min-height:44px}.btn.primary{background:var(--green);color:#fffaf0}.btn.primary:hover{background:#264e3b}.btn.secondary{background:#e9ecdf;color:var(--green)}.btn.secondary:hover{background:#dce3d1}.btn.outline{border:1px solid #cbd2c0;background:transparent}.btn.danger{background:var(--red);color:var(--surface)}.btn.small{padding:8px 13px;min-height:36px;font-size:12px}.text-btn{display:inline-flex;align-items:center;gap:7px;padding:7px 0;color:var(--green);font-size:12px}.text-btn:hover{text-decoration:underline}.hero-note{position:absolute;right:26px;top:33px;font-family:var(--serif);writing-mode:vertical-rl;letter-spacing:.3em;color:#6c7e69;font-size:12px;line-height:2.1}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:30px 0 17px}.section-heading p{font-size:11px;color:var(--muted);margin-top:4px}.subtle{color:var(--muted);font-size:12px}.overview-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:22px 0 0}.metric{display:flex;gap:13px;align-items:center;padding:3px 16px;border-right:1px solid var(--line)}.metric:first-child{padding-left:0}.metric:last-child{border:0}.metric strong{font:26px var(--serif);font-variant-numeric:tabular-nums}.metric span{font-size:11px;line-height:1.8;color:var(--muted)}.theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.theme-card{position:relative;text-align:left;padding:23px 22px 17px;background:var(--surface);border:1px solid var(--line);border-radius:6px;overflow:hidden;transition:border-color .18s,transform .18s;min-height:165px}.theme-card:hover{border-color:#94a48d;transform:translateY(-3px)}.theme-card-top{display:flex;align-items:center;justify-content:space-between;color:var(--theme)}.theme-icon{width:37px;height:37px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--theme) 25%,transparent);border-radius:50%}.theme-icon svg{width:23px;height:23px}.theme-card-top small{font-size:10px;letter-spacing:.12em;color:#929485}.theme-card h3{margin:15px 0 4px;font-size:21px}.theme-card .subtitle{font-size:11px;color:var(--muted)}.theme-card-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:15px;color:#8e9585;font-size:10px}.mini-track{display:flex;gap:4px}.mini-track i{display:block;width:17px;height:3px;background:#e5e8dc;border-radius:2px}.mini-track i.done{background:var(--theme)}.bottom-note{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:28px;padding-top:19px;font-size:11px;color:#8b9282}.bottom-note strong{font-family:var(--serif);font-size:15px;font-weight:400;color:#697b65}.page-title{padding:28px 0 23px;display:flex;align-items:end;justify-content:space-between;gap:20px}.page-title h1{font-size:31px;margin-top:8px}.page-title p{color:var(--muted);font-size:12px;margin-top:9px;max-width:650px}.chapter-hero{position:relative;display:flex;align-items:center;gap:30px;padding:28px 30px;border:1px solid var(--line);background:#eceee2;min-height:165px;border-radius:6px}.chapter-symbol{font:70px var(--serif);color:color-mix(in srgb,var(--theme) 60%,white);line-height:1}.chapter-hero h2{margin-bottom:8px}.chapter-hero p{font-family:var(--serif);font-size:17px;color:#73816a}.chapter-hero small{display:block;margin-top:10px;color:var(--muted)}.chapter-layout{display:grid;grid-template-columns:1fr 275px;gap:26px;margin-top:25px}.level-list{display:grid;gap:12px}.level-row{display:flex;align-items:center;gap:18px;border:1px solid var(--line);padding:17px 20px;background:var(--surface);border-radius:5px;text-align:left;min-height:88px}.level-row:hover{border-color:#8da087}.level-num{font:28px var(--serif);color:#a6ad98;min-width:33px}.level-row.complete .level-num{color:var(--green)}.level-row h3{font-size:18px}.level-row p{color:var(--muted);font-size:11px;margin-top:4px}.level-row .level-end{margin-left:auto;display:flex;align-items:center;gap:13px;color:var(--green)}.difficulty{display:flex;gap:3px}.difficulty i{height:10px;width:3px;background:#e1e5d8}.difficulty i.on{background:#899d78}.side-panel{border-left:1px solid var(--line);padding:5px 0 0 25px}.side-panel h3{font-size:18px;margin-bottom:14px}.rule-item{display:flex;gap:12px;margin:20px 0;color:#77816f;font-size:12px}.rule-num{font-family:var(--serif);color:var(--gold);font-size:18px}.rule-item strong{display:block;color:var(--ink);font-weight:500;margin-bottom:3px}.tip-box{border:1px solid #d9dece;background:#eef0e4;border-radius:5px;padding:17px 18px;font-size:12px;color:#708069;line-height:1.9}.tip-box strong{display:block;color:var(--green);margin-bottom:5px;font-weight:500}.game-top{display:flex;align-items:center;justify-content:space-between;margin:22px 0 15px;gap:15px}.game-breadcrumb{display:flex;align-items:center;gap:8px;font-size:12px;color:#8b907f}.game-breadcrumb button{padding:3px 0;color:var(--green)}.mode-tag{font-size:10px;letter-spacing:.06em;padding:4px 9px;border:1px solid #cfd7c1;border-radius:3px;color:#6e815d}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 282px;gap:24px}.game-board-wrap{min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:6px;overflow:hidden}.board-heading{display:flex;align-items:center;justify-content:space-between;padding:16px 21px;border-bottom:1px solid #e7e7dc}.board-heading h2{font-size:20px}.board-progress{font-size:11px;color:#87917b;display:flex;align-items:center;gap:8px}.board-progress b{font-weight:500;color:var(--green)}.board-scroll{overflow:auto;padding:26px 20px;min-height:330px;display:flex;justify-content:center;align-items:center;background-image:radial-gradient(#bcc6b327 .7px,transparent .7px);background-size:12px 12px}.board-grid{display:grid;gap:4px;--cell:clamp(27px,3.1vw,43px);width:max-content;margin:auto}.cell{height:var(--cell);width:var(--cell);border:1px solid #d4d7c5;border-radius:3px;background:#f2f1e7;display:grid;place-items:center;position:relative;font:clamp(17px,1.8vw,25px) var(--serif);transition:background .15s,border-color .15s;line-height:1}.cell.given{color:#5d6b53;background:#e9ecdf;border-color:#dfe3d4;cursor:default}.cell.empty{color:var(--green);background:#fffcf4}.cell.active-line{background:#f5edce;border-color:#d9c89c}.cell.selected{outline:2px solid var(--gold);outline-offset:0;border-color:var(--gold);background:#faf0ca;z-index:1}.cell.filled{background:#e3ecda;color:#34553d;border-color:#b7c7a8}.cell.completed{background:#d6e4cd;color:#315137;border-color:#b6c9a7}.cell .number{position:absolute;top:3px;left:3px;font:8px var(--sans);color:#9da286}.cell.empty:after{content:"";width:9px;height:1px;background:#cbd2be}.cell.wrong{animation:shake .28s;background:#f2dcd0}.cell.new{animation:ink .32s}.board-caption{padding:9px 18px 13px;text-align:center;font-size:10px;color:#9a9c8c}.game-rail{display:flex;flex-direction:column;gap:14px;min-width:0}.rail-panel{border:1px solid var(--line);background:#eeefe4;border-radius:5px;padding:18px}.rail-panel h3{font-size:16px;margin-bottom:12px}.clue-number{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--gold);letter-spacing:.08em}.clue-pattern{font:19px/1.85 var(--serif);letter-spacing:.08em;margin:10px 0 12px;word-break:break-all;min-height:65px;color:#6c775d}.clue-pattern .blank{color:#bbc2aa}.clue-author{font-size:11px;color:#748069;line-height:1.8}.clue-author a{font-size:10px}.line-selects{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}.line-selects button{font-size:10px;border:1px solid #d7ddc9;min-width:31px;height:28px;border-radius:3px;background:#f7f7ec}.line-selects button.active{border-color:var(--gold);background:#f3e9c9}.line-selects button.done{background:#d7e3cb;color:var(--green)}.rail-actions{display:flex;flex-direction:column;gap:9px;margin-top:14px}.rail-actions .btn{width:100%;justify-content:space-between;text-align:left}.rail-help{color:#879079;font-size:11px;line-height:1.9}.rail-help b{color:#637856;font-weight:500}.ability-chips{display:flex;gap:6px;flex-wrap:wrap}.ability-chip{font-size:10px;background:#e0e7d3;padding:4px 8px;border-radius:2px;color:#577045}.next-cards{display:flex;gap:5px;margin-top:10px}.next-cards span{font:17px var(--serif);border:1px dashed #bbc8a9;padding:5px 8px;background:#f8f7ed}.hand-panel{margin-top:18px;background:#eeeee1;border:1px solid #d9ddc9;border-radius:6px;padding:16px 20px 18px}.hand-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.hand-header h3{font-size:16px}.hand-count{font-size:11px;color:#8a927b;display:flex;gap:7px;align-items:center}.hand-count strong{font-family:var(--serif);font-size:20px;font-weight:500;color:var(--green)}.hand-count.danger strong,.danger-text{color:var(--red)}.hand-slots{display:grid;grid-template-columns:repeat(var(--slots,12),minmax(0,1fr));gap:6px}.tile{aspect-ratio:.82;max-height:68px;border:1px solid #c8cfb9;border-bottom:3px solid #b7c2a3;border-radius:5px;background:#fffdf3;display:grid;place-items:center;font:clamp(19px,2.1vw,28px) var(--serif);position:relative;transition:transform .12s,background .12s}.tile:hover{transform:translateY(-5px);background:#fff8dd}.tile.chosen{border-color:var(--gold);outline:2px solid var(--gold);outline-offset:1px;background:#f6edca;transform:translateY(-6px)}.tile .key{position:absolute;bottom:3px;right:5px;color:#a2aa93;font:8px var(--sans)}.empty-slot{aspect-ratio:.82;max-height:68px;border:1px dashed #cdd3be;border-radius:4px;background:#e5e7d9;display:grid;place-items:center;color:#c0c8ad;font:15px var(--serif)}.hand-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:15px}.hand-note{font-size:10px;color:#8a927e;max-width:250px;line-height:1.8}.deal-btn{background:var(--green);color:#fffaf0;padding:11px 22px;min-width:160px;font-size:14px}.deal-btn.risky{background:var(--red)}.deal-btn span{font-size:10px;opacity:.72;letter-spacing:0}.game-status{font-family:var(--serif);font-size:15px;color:#7a876a;min-height:33px;text-align:center;padding:8px 0}.hero-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:21px}.hero-option{text-align:left;border:1px solid var(--line);padding:22px;background:var(--surface);border-radius:6px}.hero-option.active{border:2px solid var(--green);padding:21px;background:#eff1e5}.hero-option .hero-letter{font:39px var(--serif);color:#97a589;float:right}.hero-option h3{margin:6px 0}.hero-option small{color:var(--gold);font-size:10px;letter-spacing:.1em}.hero-option p{font-size:12px;color:#828a77;margin-top:13px;min-height:45px}.journey-intro{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;padding:30px;background:#eaeee1;border:1px solid var(--line);border-radius:6px}.journey-intro h2{font-size:29px;line-height:1.7;margin:12px 0}.journey-intro p{color:#7c8672;font-size:12px;line-height:1.9}.journey-diagram{display:flex;align-items:center;justify-content:center;gap:15px;min-height:130px}.journey-diagram i{font:23px var(--serif);font-style:normal;width:48px;height:48px;border:1px solid #c3cdb5;border-radius:50%;display:grid;place-items:center;color:#79906a;background:#f4f5e9}.journey-diagram span{color:#afba9e}.run-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#e9eddf;border:1px solid #d7deca;border-radius:5px;padding:16px 22px;margin-bottom:20px}.run-summary strong{font:19px var(--serif)}.run-summary .run-stats{display:flex;gap:20px;font-size:12px;color:#6e805e}.route{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:0}.route-step{position:relative;padding:16px 0 24px 55px;border-left:1px dashed #cbd4bc;margin-left:20px}.route-step:last-child{border-left-color:transparent}.route-step-dot{position:absolute;left:-14px;top:22px;width:27px;height:27px;border:1px solid #bac9a9;border-radius:50%;display:grid;place-items:center;background:var(--paper);font:13px var(--serif);color:#96a082}.route-step.current .route-step-dot{background:var(--green);border-color:var(--green);color:var(--surface)}.route-step.passed .route-step-dot{background:#d7e3ca;color:var(--green)}.route-step-label{font-size:10px;letter-spacing:.1em;color:#8c9780;margin-bottom:10px}.node-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.node{text-align:left;padding:16px 18px;border:1px solid #dce0d0;background:#f2f2e8;border-radius:5px;position:relative;min-height:102px}.current .node{background:var(--surface);border-color:#b5c4a4}.current .node:hover{border-color:var(--green);transform:translateY(-2px)}.node.chosen{background:#dfe8d5;border-color:#9bb189}.node small{font-size:10px;color:#8a927d}.node h3{font-size:17px;margin:7px 0 3px}.node p{font-size:10px;color:#909681}.node svg{position:absolute;right:13px;top:16px;color:#a3af95;width:16px}.route-step.future{opacity:.52}.searchbar{display:flex;gap:12px;align-items:center;margin:0 0 18px}.search-input{display:flex;align-items:center;gap:10px;flex:1;min-width:100px;border:1px solid #cfd5c1;background:var(--surface);padding:11px 15px;border-radius:4px}.search-input svg{color:#9aa48b;width:18px}.search-input input{width:100%;border:0;background:transparent;outline:none!important;color:var(--ink);font-size:13px}.searchbar select{padding:11px 30px 11px 12px;border:1px solid #cfd5c1;border-radius:4px;background:var(--surface);color:#6c7d60;max-width:165px}.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.filter-chip{padding:6px 13px;font-size:11px;border:1px solid #d7dcc9;border-radius:3px;color:#7f8a72}.filter-chip.active{background:#e1e8d5;border-color:#a6b795;color:var(--green)}.library-count{display:flex;justify-content:space-between;align-items:center;color:#8b937e;font-size:11px;margin-bottom:13px}.poem-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.poem-card{padding:20px;border:1px solid #dcdfcf;border-radius:5px;background:var(--surface);text-align:left;min-height:145px;position:relative}.poem-card:hover{border-color:#9dad8c}.poem-card h3{font-size:17px;line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-right:16px}.poem-card p{font-size:11px;color:#89937c;margin-top:8px}.poem-card .poem-tags{display:flex;gap:5px;margin-top:15px;flex-wrap:wrap}.tiny-tag{font-size:9px;color:#8c947d;background:#f0f1e7;border-radius:2px;padding:2px 5px}.bookmark-mark{position:absolute;right:16px;top:20px;color:#b28f50}.pagination{display:flex;gap:15px;justify-content:center;align-items:center;margin:24px 0;font-size:11px;color:#87937a}.empty-state{text-align:center;padding:65px 20px;border:1px dashed #cfd6c1;border-radius:6px;color:#87947a}.empty-state h2{font-size:23px;color:#617954;margin:12px 0}.empty-state p{font-size:12px;max-width:420px;margin:0 auto 18px}.collection-banner{border:1px solid var(--line);background:#e8eddf;border-radius:5px;padding:25px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px}.collection-banner h2{font-size:23px}.collection-banner p{font-size:12px;color:#809071;margin-top:6px}.collection-number{font:40px var(--serif);color:var(--green)}.modal-backdrop{position:fixed;inset:0;background:#1f3029a8;backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.modal{background:var(--paper);border:1px solid #d5d9c9;border-radius:8px;padding:30px;max-width:690px;width:100%;max-height:88vh;overflow:auto;position:relative;animation:appear .2s}.modal.narrow{max-width:470px}.modal-close{position:absolute;top:13px;right:14px;display:grid;place-items:center;padding:6px;color:#89947e;border-radius:3px}.modal-close:hover{background:#e4e8d9}.modal h2{font-size:28px;line-height:1.6;padding-right:20px;margin:7px 0 12px}.modal .modal-sub{font-size:12px;color:#818d76;line-height:1.9}.result-seal{font:41px var(--serif);color:var(--red);width:75px;height:75px;border:2px solid var(--red);border-radius:50%;display:grid;place-items:center;margin:4px auto 17px;transform:rotate(-9deg)}.result-center{text-align:center}.result-center h2{padding:0}.result-verse{font:21px/1.9 var(--serif);color:#6a805c;margin:18px 0}.result-stats{display:flex;justify-content:center;gap:30px;margin:20px 0 24px}.result-stats strong{font:25px var(--serif);display:block;color:var(--ink)}.result-stats span{font-size:10px;color:#8b957e}.modal-actions{display:flex;gap:10px;justify-content:center;margin-top:23px;flex-wrap:wrap}.reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:23px}.reward{text-align:left;border:1px solid #cfd8be;border-radius:5px;background:var(--surface);padding:18px 15px}.reward:hover{border-color:var(--green);background:#edf1e3}.reward .reward-symbol{font:29px var(--serif);color:var(--green);margin-bottom:12px}.reward small{font-size:9px;color:var(--gold)}.reward h3{font-size:17px;margin:4px 0 8px}.reward p{font-size:11px;line-height:1.8;color:#879478}.poem-reading{font:19px/2.05 var(--serif);color:#52694a;white-space:pre-line;padding:20px 0;border-top:1px solid var(--line);margin-top:20px;letter-spacing:.04em}.reading-source{font-size:10px;line-height:1.9;color:#8c957e;border-top:1px solid var(--line);padding-top:13px;word-break:break-all}.reading-source a{display:inline-block;margin-right:12px}.about-list{display:grid;gap:15px;margin-top:20px}.about-list p{font-size:12px;color:#7b8b70;line-height:1.9}.about-list strong{display:block;color:var(--green);font-weight:500;margin-bottom:3px}#toast{position:fixed;left:calc(50% + 80px);bottom:32px;transform:translateX(-50%) translateY(20px);background:#314e3e;color:#fff8e9;padding:11px 22px;border-radius:5px;opacity:0;transition:.2s;z-index:200;pointer-events:none;font-size:12px;max-width:min(90vw,600px);width:max-content}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.boot{min-height:100vh;display:grid;align-content:center;justify-items:center;gap:20px;color:var(--muted);font-family:var(--serif);letter-spacing:.15em}.mobile-brand{display:none}.muted{color:var(--muted)}.divider{height:1px;background:var(--line);margin:22px 0}.flex{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.mobile-hint{display:none}.resume-banner{background:#e8eddd;border:1px solid #c4d0b5;padding:12px 18px;margin:22px 0 0;border-radius:4px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:#637954}.run-cancel{font-size:11px;color:#a07862;padding:6px 0}.tutorial-demo{display:flex;align-items:center;gap:10px;justify-content:center;margin:24px 0}.tutorial-demo .tile{width:43px;height:53px;aspect-ratio:auto;font-size:25px}.tutorial-demo .cell{--cell:43px;font-size:25px}.help-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:22px}.help-grid div{border-top:1px solid #d4ddc6;padding-top:12px}.help-grid b{font-size:12px;display:block;margin-bottom:5px;color:var(--green)}.help-grid p{font-size:11px;color:#859276;line-height:1.8}.status-pill{font-size:10px;padding:4px 8px;border-radius:3px;background:#e5ead8;color:#698452}.chapter-switches{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.selected-theme{background:#dce6ce!important;border-color:#93a77f!important}.run-over-card{padding:28px;border:1px solid var(--line);background:#ecefe3;border-radius:6px;text-align:center}.run-over-card h2{font-size:29px;margin:10px 0}.run-over-card p{font-size:12px;color:#859177;line-height:1.9}.library-progress{width:100%;height:2px;background:#dde4cf;margin-top:15px}.library-progress span{display:block;height:100%;background:#8ca575}.clue-toggle{font-size:11px;color:#698251;border-bottom:1px dashed #a4b894;padding:0 0 2px}.finish-list{margin-top:20px;border-top:1px solid var(--line);padding-top:15px;display:grid;gap:8px}.finish-line{font-family:var(--serif);font-size:16px;color:#687e58}.finish-line small{font:10px var(--sans);color:#9aa18d;margin-left:6px}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}@keyframes ink{from{transform:scale(.85);opacity:.3}to{transform:scale(1);opacity:1}}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.main{padding-left:65px;padding-right:65px}.hero{min-height:400px}.hero h1{font-size:52px}.theme-card{min-height:180px;padding:26px}.board-grid{--cell:46px}}
@media(max-width:1150px){.app-shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:30px 18px 20px}.brand-name{font-size:19px}.brand{gap:9px}.seal{width:35px;height:39px;font-size:26px}.main{padding:0 28px 35px}.hero h1{font-size:39px}.hero{min-height:330px}.hero-art{right:-95px;width:80%}.game-layout{grid-template-columns:minmax(0,1fr) 235px;gap:16px}.board-grid{--cell:clamp(26px,3vw,39px)}.board-scroll{padding:23px 10px}.rail-panel{padding:15px}.hand-panel{padding:14px}.hand-slots{gap:4px}.theme-card{padding:18px}.chapter-layout{grid-template-columns:1fr 240px}.theme-card h3{font-size:19px}.hero-picker{gap:10px}.hero-option{padding:16px}.hero-option.active{padding:15px}}
@media(max-width:900px){.app-shell{grid-template-columns:160px minmax(0,1fr)}.sidebar{padding-left:14px;padding-right:14px}.brand{align-items:flex-start}.brand-name{font-size:16px;letter-spacing:.03em}.brand-sub{font-size:7px;letter-spacing:.08em}.seal{width:30px;height:34px;font-size:23px}.nav button{padding:12px 10px;gap:9px;font-size:12px}.main{padding:0 23px 30px}.theme-grid,.poem-grid{grid-template-columns:repeat(2,1fr)}.game-layout{grid-template-columns:1fr}.game-rail{display:grid;grid-template-columns:1fr 1fr;gap:13px}.game-rail .rail-panel:first-child{grid-row:span 2}.rail-panel{padding:14px}.board-grid{--cell:clamp(28px,4.7vw,43px)}.board-scroll{min-height:300px}.hero-art{right:-170px;width:100%;opacity:.7}.hero h1{font-size:36px}.hero-copy{max-width:400px}.chapter-layout{grid-template-columns:1fr}.side-panel{border-left:0;padding:15px 0;display:grid;grid-template-columns:1fr 1fr;gap:15px}.side-panel h3{grid-column:1/-1;margin:0}.side-panel .tip-box{grid-column:1/-1}.rule-item{margin:0}.hero-picker{grid-template-columns:1fr}.hero-option p{min-height:0;margin-top:5px}.hero-option{padding:17px 20px}.hero-option.active{padding:16px 19px}.hero-option .hero-letter{font-size:35px}.journey-intro{grid-template-columns:1fr;padding:25px}.journey-diagram{display:none}.node-options{gap:8px}.node{padding:13px;min-height:110px}.node h3{font-size:15px}.route-step{padding-left:29px}.node svg{display:none}.topbar-right{gap:10px}.topbar-right span:first-child{display:none}.hero-note{right:2px}.overview-strip{gap:0}.metric{padding:2px 12px}.metric strong{font-size:22px}.metric span{font-size:10px}}
@media(max-width:640px){.app-shell{display:block}.sidebar{position:fixed;top:auto;bottom:0;left:0;right:0;height:auto;border:0;border-top:1px solid #d9dfcf;padding:7px 10px calc(7px + env(safe-area-inset-bottom));background:#f4f3eaf5;backdrop-filter:blur(10px)}.sidebar .brand,.side-label,.side-rule,.side-verse,.side-bottom{display:none}.nav{display:flex;justify-content:space-around;gap:3px}.nav button{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;flex:1;font-size:9px;padding:5px 2px;border-radius:4px;letter-spacing:.03em}.nav button.active{background:#e3ead7;color:var(--green)}.nav button svg{width:20px;height:20px}.main{padding:0 18px 96px}.topbar{height:67px;font-size:10px}.topbar-left>.topbar-date{display:none}.mobile-brand{display:flex;align-items:center;gap:9px}.mobile-brand .seal{width:29px;height:31px;font-size:23px}.mobile-brand strong{font:19px var(--serif);letter-spacing:.05em}.topbar-right{gap:11px}.topbar-right span:first-child{display:flex}.topbar-right .avatar{display:none!important}.hero{min-height:315px}.hero h1{font-size:34px;margin-top:13px;line-height:1.55}.hero-copy{padding:28px 0 35px;max-width:330px}.hero p{font-size:11px;max-width:260px}.hero-art{width:125%;right:-140px;opacity:.47;mask-image:linear-gradient(to right,transparent 10%,black 70%)}.hero-note{display:none}.hero-actions{gap:15px;margin-top:20px}.btn{padding:11px 17px;font-size:12px}.eyebrow{font-size:9px;letter-spacing:.12em}.section-heading{margin-top:26px}.section-heading h2{font-size:22px}.theme-grid{gap:10px}.theme-card{padding:15px 14px;min-height:160px}.theme-card h3{font-size:20px}.theme-icon{width:32px;height:32px}.theme-card-top small{font-size:9px;letter-spacing:.03em}.theme-card .subtitle{font-size:10px}.theme-card-bottom{margin-top:14px}.mini-track i{width:12px}.theme-card-bottom>span{font-size:9px}.overview-strip{padding-top:18px}.metric{padding:0 9px;gap:7px}.metric strong{font-size:22px}.metric span{font-size:9px}.bottom-note{align-items:flex-start;gap:18px;font-size:9px}.bottom-note strong{font-size:13px}.page-title{padding:22px 0 20px;align-items:flex-start}.page-title h1{font-size:27px}.page-title p{font-size:11px}.page-title>.btn{padding:8px 11px;min-width:60px;font-size:10px}.chapter-hero{padding:22px;gap:18px;min-height:135px}.chapter-symbol{font-size:50px}.chapter-hero p{font-size:14px}.chapter-hero small{font-size:10px}.chapter-switches{gap:6px}.filter-chip{padding:5px 9px;font-size:10px}.level-row{padding:14px;gap:12px}.level-row h3{font-size:17px}.level-num{font-size:25px}.level-row .level-end{gap:7px}.game-top{margin:14px 0 12px}.game-breadcrumb{font-size:10px}.mode-tag{font-size:9px}.board-heading{padding:12px 14px}.board-heading h2{font-size:17px}.board-progress{font-size:10px}.board-scroll{padding:20px 10px;min-height:230px;justify-content:flex-start}.board-grid{--cell:min(7.8vw,36px);gap:3px}.cell{font-size:20px;border-radius:2px}.cell .number{font-size:7px;top:2px;left:2px}.board-caption{font-size:9px;padding-bottom:10px}.game-rail{grid-template-columns:1fr 1fr;gap:10px}.game-rail .rail-panel:first-child{grid-row:auto;grid-column:1/-1}.game-rail .rail-panel:first-child .clue-pattern{min-height:0;font-size:18px;margin:5px 0}.game-rail .rail-panel:first-child .clue-author{display:flex;flex-wrap:wrap;gap:10px}.game-rail .rail-panel:first-child .line-selects{margin-top:10px}.rail-panel h3{font-size:14px;margin-bottom:8px}.rail-panel .rail-help{font-size:10px}.rail-actions{margin-top:0;gap:7px}.rail-actions .btn{font-size:10px;padding:8px 10px;min-height:35px}.hand-panel{margin-top:12px;padding:12px}.hand-header{margin-bottom:12px}.hand-header h3{font-size:15px}.hand-count{font-size:10px}.hand-count strong{font-size:18px}.hand-slots{gap:4px;grid-template-columns:repeat(6,minmax(0,1fr))}.tile,.empty-slot{aspect-ratio:1.12;max-height:48px;font-size:24px}.tile .key{display:none}.hand-footer{gap:10px;align-items:center}.hand-note{font-size:9px;max-width:170px}.deal-btn{min-width:135px;padding:10px 13px;font-size:13px}.game-status{font-size:13px;min-height:30px}.mobile-hint{display:block;font-size:9px;color:#8d967f;margin-top:6px}.game-layout{gap:13px}.hero-picker{gap:9px}.journey-intro{padding:22px}.journey-intro h2{font-size:25px}.run-summary{padding:13px 15px;flex-wrap:wrap;gap:10px}.run-summary strong{font-size:17px}.run-summary .run-stats{gap:14px;font-size:10px}.route-step{padding-left:20px;margin-left:10px;padding-bottom:20px}.route-step-dot{width:23px;height:23px;left:-12px;font-size:11px}.node-options{gap:7px}.node{padding:11px 9px;min-height:105px}.node h3{font-size:14px;line-height:1.5}.node small{font-size:8px}.node p{font-size:9px;line-height:1.65}.route-step-label{font-size:9px}.searchbar{flex-wrap:wrap;gap:8px}.search-input{flex:1;min-width:180px;padding:10px 12px}.searchbar select{font-size:11px;padding:10px 20px 10px 10px;max-width:125px}.poem-grid{gap:10px}.poem-card{padding:15px 13px;min-height:140px}.poem-card h3{font-size:16px;margin-right:12px}.poem-card p{font-size:10px}.poem-card .poem-tags{margin-top:12px;gap:3px}.tiny-tag{font-size:8px;padding:2px 4px}.bookmark-mark{top:15px;right:11px}.bookmark-mark svg{width:14px}.filter-row{gap:6px}.library-count{font-size:10px;align-items:flex-start;gap:20px}.modal-backdrop{padding:14px}.modal{padding:23px 20px;max-height:86vh;border-radius:6px}.modal h2{font-size:24px}.modal .modal-sub{font-size:11px}.reward-grid{gap:8px}.reward{padding:14px 10px}.reward h3{font-size:15px}.reward p{font-size:10px}.reward .reward-symbol{font-size:27px}.result-verse{font-size:18px}.result-stats{gap:24px}.poem-reading{font-size:17px}.collection-banner{padding:20px}.collection-banner h2{font-size:21px}.collection-banner p{font-size:11px}.collection-number{font-size:33px}.help-grid{gap:10px}.help-grid p{font-size:10px}.help-grid b{font-size:11px}#toast{left:50%;bottom:92px;font-size:11px;padding:10px 16px;max-width:90vw;white-space:normal}.resume-banner{font-size:11px;padding:10px 12px}.side-panel{gap:13px}.status-pill{font-size:9px}.game-rail .rail-panel:last-child{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

@media(max-width:640px){.board-grid{--cell:clamp(23px,calc((100vw - 64px - (var(--board-width) - 1)*3px)/var(--board-width)),36px)}}

.brand-sub{display:block}.route-step.future{opacity:.8}.route-step .node:disabled{opacity:1}.route-step.future .node{background:#eeefe5}.route-step.future .node p,.route-step.future .node small{color:#78866e}
