@charset "UTF-8";
:root{--paper:#f4f1e8;--ink:#243e36;--green:#34584b;--muted:#7a8270;--line:#d7d8c9;--red:#a4513c;--serif:"STKaiti","KaiTi","楷体","Songti SC","SimSun",serif;--sans:"Microsoft YaHei","PingFang SC",system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:30;opacity:.15;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23797859' filter='url(%23n)' opacity='.22' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}
button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #a4513c;outline-offset:5px}a{color:inherit;text-decoration:none}button{border:0;background:none}button svg{flex-shrink:0}h1,h2,h3,p{margin:0}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}.skip-link{position:fixed;top:-60px;left:15px;z-index:100;background:var(--ink);color:white;padding:12px}.skip-link:focus{top:10px}
.site-header{height:108px;max-width:1440px;margin:0 auto;padding:0 6.25%;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:5}.brand{display:flex;gap:13px;align-items:center}.brand>svg{width:40px;height:40px;fill:none;stroke:var(--green);stroke-width:1.7;stroke-linejoin:round}.brand>span{font-family:var(--serif);font-size:25px;letter-spacing:3px;font-weight:bold}.brand small{display:block;font-family:Georgia,serif;font-size:8px;letter-spacing:1.9px;font-weight:400;margin-top:6px}.header-nav{display:flex;gap:42px;position:absolute;left:50%;transform:translateX(-50%);height:100%;align-items:center;font-size:13px;letter-spacing:1px}.header-nav>*{height:100%;display:flex;align-items:center;padding:0;position:relative;color:#767f70}.header-nav .is-current{color:var(--ink)}.header-nav .is-current::after{content:"";height:4px;width:4px;background:var(--red);position:absolute;bottom:26px;left:calc(50% - 2px);transform:rotate(45deg)}.sound-toggle{display:flex;gap:10px;align-items:center;font-size:11px;letter-spacing:1px}.sound-toggle svg{width:34px;height:34px;padding:8px;border:1px solid var(--line);border-radius:50%;fill:none;stroke:var(--green);stroke-width:1.3}.sound-toggle .sound-waves{display:none}.sound-toggle[aria-pressed=true] .sound-waves{display:block}.sound-toggle[aria-pressed=true] .sound-slash{display:none}
.hero{max-width:1600px;min-height:720px;height:min(760px,calc(100vh - 108px));position:relative;margin:0 auto;isolation:isolate;overflow:hidden}.hero-art{position:absolute;z-index:-2;width:88%;height:100%;right:-7%;top:0;pointer-events:none}.hero-art img{width:100%;height:100%;object-fit:contain;object-position:right center}.hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,var(--paper) 1%,rgba(244,241,232,.96) 11%,rgba(244,241,232,.38) 30%,transparent 47%)}.hero-copy{position:relative;padding-top:50px;margin-left:7.7%;width:410px}.eyebrow{font-size:11px;letter-spacing:3px;color:#7c846f;font-weight:400;display:flex;align-items:center;gap:12px}.eyebrow>span{width:28px;height:1px;background:#9eaa94}.hero h1{font-family:var(--serif);font-size:110px;line-height:1.15;letter-spacing:15px;font-weight:500;margin:22px 0 20px;text-shadow:0 1px 0 #1f3931}.hero h1>span{display:block;position:relative}.seal{font:14px/1.15 var(--serif);border:1px solid var(--red);padding:6px 4px;color:var(--red);display:inline-block;letter-spacing:2px;transform:rotate(-5deg);margin-left:18px;vertical-align:middle;text-shadow:none;position:absolute;top:35px}.hero-subtitle{font-family:var(--serif);font-size:23px;letter-spacing:3px;line-height:1.8}.hero-description{font-size:12px;line-height:2.1;color:#7b8273;letter-spacing:1px;margin-top:14px}.primary-button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;background:var(--ink);color:#f5f0df;min-height:54px;padding:15px 26px;border-radius:2px;letter-spacing:3px;position:relative;transition:background .2s,box-shadow .2s}.primary-button:hover{background:#3c6152;box-shadow:0 5px 18px #243e3614}.primary-button svg{width:36px;height:16px;fill:none;stroke:currentColor;stroke-width:1.2}.start-button{min-width:218px;margin-top:27px}.experience-note{color:#888c7a;font-size:10px;letter-spacing:1px;margin-top:15px;display:flex;align-items:center;gap:7px}.experience-note>span:not(.tiny-dot){color:#b6b8a8;margin:0 3px}.tiny-dot{height:4px;width:4px;background:#83947a;border-radius:50%}.poem{position:absolute;right:5.6%;top:50px;writing-mode:vertical-rl;font-family:var(--serif);font-size:16px;letter-spacing:5px;line-height:2.4;color:#607562}.poem span{margin-top:31px}.poem i{font-size:12px;letter-spacing:2px;line-height:1.5;color:var(--red);border:1px solid #ad6f5799;padding:7px 4px;margin-top:24px;font-style:normal;writing-mode:horizontal-tb;transform:rotate(4deg)}.hero-bottom{position:absolute;bottom:29px;left:6.3%;right:6.3%;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:2px;color:#8c907f}.chapter-label{display:flex;gap:14px;align-items:center}.chapter-label i{font:9px Georgia,serif;letter-spacing:1.7px;color:#9ea38e}.scroll-cue{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:16px}.scroll-cue span{display:flex;align-items:center;justify-content:center;border:1px solid #cbd0bd;height:27px;width:27px;border-radius:50%;font-size:14px}.art-caption{font-family:var(--serif);font-size:12px;letter-spacing:3px}
.journey{max-width:1260px;margin:0 auto;padding:52px 20px 60px;border-top:1px solid var(--line);display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:50px}.journey-intro .eyebrow{font-size:10px;letter-spacing:3px;margin-bottom:15px}.journey h2{font-family:var(--serif);font-size:30px;font-weight:400;line-height:1.5;letter-spacing:3px}.journey-step{padding:9px 0 0 32px;position:relative;border-left:1px solid var(--line)}.step-number{color:var(--red);font-family:var(--serif);font-size:20px}.step-number i{font:italic 11px Georgia,serif;color:#9ba08d;margin-left:12px}.journey h3{font-family:var(--serif);font-size:21px;letter-spacing:2px;font-weight:400;margin:18px 0 12px}.journey-step p{color:#7f8575;font-size:11px;line-height:2.1;letter-spacing:.7px}.site-footer{max-width:1260px;margin:0 auto;padding:23px 20px 28px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#8c9181;letter-spacing:1px}.site-footer i{margin:0 9px;font-style:normal}.site-footer button{font-size:10px;padding:6px 0}.site-footer button span{margin-left:15px}
.game-heading{text-align:center;padding:28px 16px 32px;position:relative;max-width:1260px;margin:auto}.game-heading .eyebrow{justify-content:center}.game-heading h1{font:400 42px/1.5 var(--serif);letter-spacing:4px;margin:13px 0 10px}.game-heading>p:last-child{font-size:12px;letter-spacing:1px;color:#7f8677;line-height:1.8}.text-button{font-size:12px;letter-spacing:1px;padding:12px 6px;min-height:44px}.back-button{position:absolute;left:20px;top:14px;color:#727e6d;font-size:18px}.back-button span{font-size:11px;margin-left:8px}.game-layout{max-width:1260px;padding:0 20px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:44px}.workbench{border:1px solid #d7d9c8;background:#f0efe3;box-shadow:0 8px 35px #32473605;min-width:0}.board-topline{display:flex;align-items:center;justify-content:space-between;padding:19px 23px;border-bottom:1px solid #d7d9c8;font-size:11px;letter-spacing:2px}.board-topline i{font:9px Georgia,serif;color:#9a9f8c;letter-spacing:1px;margin-left:10px}.timer-wrap{color:#8b907d;font-size:10px}.timer-wrap time{font:14px Georgia,serif;letter-spacing:2px;color:var(--ink);margin-left:10px;font-variant-numeric:tabular-nums}.game-board{position:relative;aspect-ratio:1000/600;isolation:isolate;overflow:hidden;user-select:none;-webkit-user-select:none}.board-landscape{position:absolute;inset:0;width:100%;height:100%;z-index:-2;pointer-events:none}.target,.beam{position:absolute;width:28%;height:7%;transform:translate(-50%,-50%) rotate(var(--angle));display:flex;align-items:center;justify-content:center;border-radius:3px;transition:background .2s,box-shadow .2s;isolation:isolate}.target{border:1px dashed #8d987f;background:#e5e7d5b0;color:#6b7c62;z-index:1;cursor:pointer}.target span{font-family:var(--serif);font-size:15px;line-height:1;background:var(--paper);border:1px solid #b9bda6;border-radius:50%;height:26px;width:26px;display:flex;align-items:center;justify-content:center;transform:rotate(calc(-1 * var(--angle)))}.target::after{content:"";position:absolute;inset:-12px 0}.target.is-filled{opacity:0;pointer-events:none}.target.is-active{background:#d8c59888;border-color:#967347;box-shadow:0 0 0 5px #c0a46917}.beam{z-index:4;cursor:grab;border:1px solid #815536;color:#fff4d8;background:repeating-linear-gradient(0deg,transparent 0 7px,#75492525 7px 8px),linear-gradient(180deg,#bc9565 0%,#a47546 40%,#8b5d37 100%);box-shadow:0 4px 0 #68452a,0 7px 12px #3e382a24;touch-action:none;padding:0}.beam::before{content:"";position:absolute;width:14px;height:65%;left:-1px;top:18%;background:#f0efe3;clip-path:polygon(0 0,100% 0,100% 30%,60% 30%,60% 70%,100% 70%,100% 100%,0 100%)}.beam::after{content:"";position:absolute;inset:-13px 0}.beam span{width:25px;height:25px;border:1px solid #efdec17a;border-radius:50%;display:flex;align-items:center;justify-content:center;font:14px var(--serif);text-shadow:0 1px #593c26;transform:rotate(calc(-1 * var(--angle)))}.beam i{position:absolute;right:6px;top:18%;height:64%;width:4px;border-left:1px solid #6a492c;border-right:1px solid #d2b17f}.beam.is-dragging{z-index:10;cursor:grabbing;box-shadow:0 4px 0 #68452a,0 15px 20px #28382d38;filter:brightness(1.08)}.beam.is-selected{outline:2px solid #a4513c;outline-offset:5px}.beam.is-placed{box-shadow:0 3px 0 #68452a,0 5px 8px #3e382a14;cursor:default;z-index:3;animation:join .4s ease-out}.beam.is-placed span{opacity:.6}.beam.shake{animation:shake .35s}.tray-label{position:absolute;top:69%;left:6%;right:6%;text-align:center;border-top:1px solid #bac8b399;padding-top:14px;color:#78876d;font-size:9px;letter-spacing:2px;pointer-events:none}.tray-label span{display:inline-block;font-size:9px;color:#8d977f;margin-left:12px;letter-spacing:1px}.game-hint{min-height:54px;display:flex;align-items:center;justify-content:center;padding:12px 15px;border-top:1px solid var(--line);font-size:11px;letter-spacing:.5px;color:#79816c;text-align:center;line-height:1.8}.craft-guide{padding-top:24px}.craft-guide>.eyebrow{font-size:10px;letter-spacing:3px}.craft-guide h2{font:400 34px/1.5 var(--serif);letter-spacing:4px;margin:14px 0 25px}.progress-row{display:flex;justify-content:space-between;font-size:11px;color:#879078;letter-spacing:1px}.progress-row strong{font:14px Georgia,serif;color:var(--ink)}.progress-track{height:3px;background:#dedfce;margin:13px 0 27px}.progress-track span{display:block;width:0;height:100%;background:#7f9979;transition:width .5s ease}.craft-steps{padding:0;list-style:none;margin:0}.craft-steps li{display:flex;align-items:center;gap:12px;margin:0 0 22px;color:#9a9e8d}.craft-steps li>span{font:20px var(--serif);border:1px solid #d6d9c7;display:flex;align-items:center;justify-content:center;width:36px;height:40px;flex-shrink:0}.craft-steps li strong{font-size:12px;font-weight:400;letter-spacing:1px}.craft-steps li small{display:block;font-size:10px;letter-spacing:.5px;margin-top:5px}.craft-steps li>i{margin-left:auto;font-size:11px;font-style:normal}.craft-steps li.current{color:#536d51}.craft-steps li.current>span{border-color:#91a082;background:#e3e7d5}.craft-steps li.done{color:#536d51}.craft-steps li.done>span{background:#34584b;color:#faf1da;border-color:#34584b}.craft-steps li.done>i{font-size:0}.craft-steps li.done>i::after{content:"✓";font-size:13px}.game-actions{margin-top:26px;display:flex;flex-direction:column;gap:5px}.secondary-button{border:1px solid #c1c9b2;min-height:44px;padding:12px 17px;font-size:11px;letter-spacing:2px;display:flex;align-items:center;justify-content:space-between}.secondary-button:hover{background:#e6e9da}.secondary-button span{font-size:19px;line-height:1}.game-actions .text-button{color:#8e937f}.guide-note{font-size:9px;line-height:2;color:#929981;margin-top:16px;letter-spacing:.5px}.game-footer{text-align:center;color:#939883;font-family:var(--serif);letter-spacing:2px;font-size:12px;padding:32px 16px 38px}.bridge-reveal{opacity:0;transition:opacity 1.2s}.is-complete .bridge-reveal{opacity:1}.is-complete .beam,.is-complete .target{opacity:0;transition:opacity .7s .1s}.is-complete .tray-label{opacity:0}.little-boat{transition:transform 4s}.is-complete .little-boat{transform:translateX(-125px)}.completion-glow{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 36%,#faf1bd88,transparent 64%)}.is-complete .completion-glow{animation:glow 1.5s ease-out}.completion-mark{position:absolute;left:50%;top:78%;transform:translate(-50%,-50%);text-align:center;opacity:0;pointer-events:none}.completion-mark span{display:block;font:34px var(--serif);letter-spacing:12px;color:#9d593e}.completion-mark small{display:block;font-size:10px;letter-spacing:3px;margin-top:8px;color:#73836a}.is-complete .completion-mark{animation:mark 1s .4s both}
dialog{border:1px solid #d4d4bc;background:var(--paper);color:var(--ink);padding:50px 52px;max-width:calc(100% - 32px);box-shadow:0 20px 100px #162e3040}dialog::backdrop{background:#1d392e77;backdrop-filter:blur(5px)}dialog[open]{animation:dialog-in .4s ease-out}.success-dialog{width:440px;text-align:center}.success-dialog .eyebrow{justify-content:center;font-size:10px;letter-spacing:2px}.success-art{font-family:var(--serif);font-size:35px;border:1px solid #9b5c4580;color:#a15e47;transform:rotate(-6deg);width:58px;height:58px;margin:0 auto 28px;display:flex;align-items:center;justify-content:center}.success-dialog h2{font:400 48px/1.4 var(--serif);letter-spacing:7px;margin:19px 0}.success-dialog>p:not(.eyebrow){font-size:12px;line-height:2;letter-spacing:1px;color:#7d8470}.success-stat{padding:23px 0 21px;color:#8d927c;font-size:10px;letter-spacing:2px}.success-stat strong{font:18px Georgia,serif;color:#7a6c45;margin-left:12px}.success-dialog .primary-button{width:100%;letter-spacing:2px;justify-content:center}.success-dialog>.text-button{margin-top:8px;color:#8b937e}.about-dialog{width:500px;position:relative}.about-dialog h2{font:400 37px/1.5 var(--serif);letter-spacing:4px;margin:18px 0}.about-dialog>p:not(.eyebrow){font-size:13px;color:#7a826e;line-height:2.2;margin-bottom:17px}.about-dialog .primary-button{margin-top:10px;font-size:12px;letter-spacing:1px}.dialog-close{position:absolute;right:15px;top:10px;font-size:25px;width:44px;height:44px;color:#808c77}
@keyframes join{0%{filter:brightness(1.4)}100%{filter:brightness(1)}}@keyframes shake{0%,100%{margin-left:0}30%{margin-left:-6px}70%{margin-left:6px}}@keyframes glow{0%{opacity:0}30%{opacity:1}100%{opacity:0}}@keyframes mark{from{opacity:0;margin-top:15px}to{opacity:1;margin-top:0}}@keyframes dialog-in{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.hero-copy{margin-left:10.5%}.hero-art{right:-1%;width:84%}}
@media(max-width:1100px){.site-header{padding:0 5%;height:92px}.hero{min-height:690px;height:720px}.hero-copy{margin-left:6%;padding-top:38px}.hero h1{font-size:96px}.hero-art{width:103%;right:-22%;opacity:.95}.poem{right:4%;font-size:14px}.journey{margin:0 5%;gap:24px;padding-left:0;padding-right:0}.journey-step{padding-left:20px}.site-footer{margin:0 5%;padding-left:0;padding-right:0}.game-layout{gap:25px;grid-template-columns:minmax(0,1fr) 200px}.craft-guide{padding-top:8px}.craft-guide h2{font-size:28px;margin-bottom:16px}.craft-steps li{margin-bottom:17px}.game-heading h1{font-size:35px}.board-topline i{display:none}.game-actions{margin-top:15px}.guide-note{margin-top:8px}}
@media(max-width:760px){.site-header{height:86px;padding:0 6%}.brand>svg{width:31px;height:36px}.brand{gap:8px}.brand>span{font-size:21px;letter-spacing:2px}.brand small{font-size:7px;letter-spacing:1.2px;margin-top:4px}.header-nav{display:none}.sound-toggle{gap:6px;font-size:9px}.sound-toggle svg{width:32px;height:32px}.hero{height:850px;min-height:0}.hero-copy{padding-top:26px;margin-left:8%;width:84%}.eyebrow{font-size:9px;letter-spacing:2.5px}.hero h1{font-size:87px;line-height:1.14;letter-spacing:13px;margin:22px 0 19px}.seal{font-size:12px;top:27px;margin-left:10px}.hero-subtitle{font-size:20px;line-height:1.8;letter-spacing:2px}.hero-description{font-size:11px;line-height:2;margin-top:12px;letter-spacing:.7px}.start-button{min-height:50px;min-width:203px;margin-top:24px;font-size:13px;padding:13px 23px}.experience-note{font-size:9px;margin-top:14px;letter-spacing:.5px}.hero-art{width:160%;height:470px;top:auto;bottom:14px;right:-28%;opacity:1}.hero-art img{object-fit:contain;object-position:center}.hero::after{background:linear-gradient(180deg,var(--paper) 0%,#f4f1e8dd 37%,#f4f1e888 47%,transparent 65%)}.poem{right:7%;top:65px;font-size:13px;line-height:1.9;letter-spacing:3px}.poem span{margin-top:20px}.poem i{display:none}.hero-bottom{bottom:20px;left:8%;right:8%;font-size:8px;letter-spacing:1px}.chapter-label i{display:none}.art-caption{display:none}.scroll-cue{left:auto;right:0;transform:none;gap:9px;font-size:9px}.scroll-cue span{width:25px;height:25px}.journey{margin:0 8%;padding:34px 0 16px;grid-template-columns:1fr 1fr;gap:26px 20px}.journey h2{font-size:27px}.journey-intro{padding-bottom:10px}.journey-intro .eyebrow{margin-bottom:10px}.journey-step{padding:2px 0 15px 19px}.step-number{font-size:20px}.journey h3{font-size:20px;margin:15px 0 10px}.journey-step p{font-size:10px;letter-spacing:.3px;line-height:2}.site-footer{margin:0 8%;padding:20px 0;gap:16px;flex-direction:column;font-size:9px;align-items:flex-start}.site-footer button{font-size:9px}.game-heading{padding:15px 20px 23px}.game-heading .eyebrow{font-size:9px}.game-heading h1{font-size:28px;letter-spacing:2px;margin-top:10px}.game-heading>p:last-child{font-size:10px;letter-spacing:.3px;margin-top:4px}.back-button{position:static;display:block;margin:-8px 0 12px -5px;font-size:16px;min-height:36px}.back-button span{font-size:10px}.game-layout{display:block;padding:0 16px}.board-topline{padding:15px 14px;font-size:10px;letter-spacing:1px}.timer-wrap{font-size:9px}.timer-wrap time{font-size:13px;margin-left:7px;letter-spacing:1px}.game-board{aspect-ratio:1/1.05}.board-landscape{object-fit:fill}.beam,.target{height:7.4%;width:27%}.beam::before{width:8px}.beam span,.target span{font-size:12px;width:23px;height:23px}.beam i{right:4px;width:3px}.tray-label{font-size:8px;letter-spacing:1px;padding-top:16px;top:69%}.tray-label span{font-size:8px;letter-spacing:.2px;margin-left:8px}.game-hint{font-size:10px;line-height:1.8;padding:12px;min-height:58px}.craft-guide{padding:26px 4px 0}.craft-guide>.eyebrow,.craft-guide>h2{display:none}.progress-row{font-size:10px}.progress-track{margin:10px 0 23px}.craft-steps{display:flex;justify-content:space-between;gap:7px}.craft-steps li{gap:6px;flex:1;align-items:center;min-width:0;margin-bottom:0}.craft-steps li>span{width:28px;height:32px;font-size:16px}.craft-steps li strong{font-size:10px;letter-spacing:0;white-space:nowrap}.craft-steps li small,.craft-steps li>i{display:none}.game-actions{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:24px}.secondary-button{font-size:10px;letter-spacing:1px}.game-actions .text-button{font-size:10px}.guide-note{text-align:center;font-size:9px;margin-top:11px;letter-spacing:0}.game-footer{font-size:10px;padding:24px 10px 28px;letter-spacing:1px}.completion-mark span{font-size:28px}.completion-mark small{font-size:9px;letter-spacing:2px}.completion-mark{top:80%}.success-dialog{padding:33px 27px;width:370px}.success-art{width:49px;height:49px;font-size:29px;margin-bottom:21px}.success-dialog h2{font-size:41px;letter-spacing:6px;margin:16px 0}.success-dialog>p:not(.eyebrow){font-size:11px}.success-stat{padding:20px 0}.success-dialog .primary-button{min-height:49px;font-size:12px}.about-dialog{padding:40px 27px}.about-dialog h2{font-size:31px}.about-dialog>p:not(.eyebrow){font-size:12px}}
@media(max-width:360px){.hero h1{font-size:76px}.poem{right:6%;font-size:12px}.hero-subtitle{font-size:19px}.hero-description{font-size:10px}.game-heading h1{font-size:24px}.craft-steps li strong{font-size:9px}.craft-steps li>span{width:25px}}
.beam.is-dragging{transition:none}.beam.is-placed{pointer-events:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}
