:root{--paper:#f8f4e9;--ink:#244f4b;--muted:#656762;--gold:#ac8949;--line:#d5bf8e;font-size:16px;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Yu Mincho','Hiragino Mincho ProN','Noto Serif JP',serif;line-break:strict;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:6px}p,blockquote{font-size:1rem;line-height:2.15;letter-spacing:.045em;margin:1.5rem 0;overflow-wrap:break-word}h1,h2,h3{font-weight:400;overflow-wrap:break-word}h2{font-size:clamp(1.5rem,5.6vw,3.35rem);line-height:1.85;letter-spacing:.06em;margin:0 0 1.5rem}.skip{position:fixed;top:-100px;z-index:20;background:var(--paper);padding:1rem}.skip:focus{top:0}header{display:flex;justify-content:space-between;align-items:center;gap:1rem;max-width:1160px;margin:auto;padding:24px 6%}.logo{display:block;width:145px;flex-shrink:0}.about{font-size:.875rem;white-space:nowrap;padding:12px 0}.about span{color:var(--gold);margin-left:.5rem}main{overflow:clip}.cover,.chapter{max-width:1100px;margin:auto}.cover-logo{width:88%;max-width:960px;margin:46px auto 34px}.cover-title{text-align:center;padding:0 5%}.cover h1{font-size:clamp(1.6rem,5.8vw,3.65rem);line-height:1.65;letter-spacing:.08em;margin:0}.cover h1 span{font-size:.85em;letter-spacing:.015em}.cover-title p{font-size:clamp(.875rem,2.6vw,1.6rem);letter-spacing:.06em;margin:20px 0 38px}.prologue{position:relative;display:grid;grid-template-columns:44% 56%;align-items:start;margin:0 auto;width:100%}.cover-water{grid-column:1/-1;grid-row:1;width:70%;margin-left:auto;margin-top:10px}.guide{grid-column:1;grid-row:1/3;position:relative;width:137%;max-width:none;z-index:1;align-self:start;margin-left:-8%;margin-top:0}.prologue-copy{grid-column:2;grid-row:2;position:relative;z-index:2;padding:20px 8% 0 0;min-width:0}.eyebrow{display:block;color:var(--gold);font-size:.875rem;letter-spacing:.13em;text-align:right}.prologue-copy p{font-size:1rem;line-height:2;letter-spacing:.01em;margin:18px 0}.prologue-copy br{display:none}.follow{display:flex;align-items:center;flex-direction:column;width:fit-content;margin:32px auto 0;padding:12px 20px 0;font-size:1rem;letter-spacing:.14em;gap:24px}.follow span{height:76px;width:1px;background:var(--line)}.chapter-copy{text-align:center;padding:46px 6% 36px}.number{display:block;color:var(--muted);font-size:.875rem;letter-spacing:.14em;margin:0 0 30px;line-height:1.8}.tree .chapter-copy{padding-top:28px;padding-bottom:30px}.tree h2{font-size:clamp(1.35rem,5.1vw,3.5rem)}.tree blockquote{margin-top:30px}.tree-art{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:right center;mask-image:linear-gradient(#000 93%,transparent);-webkit-mask-image:linear-gradient(#000 93%,transparent)}#connections .chapter-copy{padding-top:36px;padding-bottom:32px}blockquote{margin-left:0;margin-right:0}.between{position:relative;padding-top:30px}.between .chapter-copy{padding-bottom:0}.ripple-art{width:100%;aspect-ratio:1.2;object-fit:cover;object-position:center bottom;margin-top:-18px;mask-image:linear-gradient(transparent,#000 18%,#000 90%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 18%,#000 90%,transparent)}.flow{padding-top:66px;position:relative}.flow-copy{padding:0 8%;text-align:left;position:relative;z-index:1}.quiet-title{font-size:clamp(1.25rem,4.8vw,2.3rem);line-height:1.9}.flow blockquote{font-size:clamp(1.05rem,3.4vw,1.6rem);line-height:2.15}.flow-copy br{display:none}.flow-art{width:100%;margin-top:4px;mask-image:linear-gradient(transparent,#000 15%,#000 86%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 15%,#000 86%,transparent)}.meaning .chapter-copy{padding:62px 7% 72px}.meaning h2{line-height:1.9}.meaning p{font-size:1rem}.meaning p br{display:none}.meaning .choices{font-size:1.12rem;line-height:2;color:#89703e;margin:32px 0 24px;display:flex;flex-wrap:wrap;justify-content:center;gap:0 .5em}.small-pause{width:1px;height:40px;background:var(--line);margin:34px auto}.soft-copy{color:var(--muted)}.town-copy{padding:36px 8% 0;text-align:left;position:relative;z-index:1}.town-art{width:100%;margin-top:-8px;mask-image:linear-gradient(transparent,#000 16%,#000 85%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 16%,#000 85%,transparent)}.town-after{text-align:right;padding:0 8% 64px}.town-after blockquote{font-size:clamp(1.25rem,4.6vw,2rem);margin-top:28px;line-height:1.9}.return{position:relative;padding-top:18px}.return-copy{padding:25px 8% 0;text-align:center}.return-copy h2{font-size:clamp(1.5rem,5.4vw,2.8rem)}.return-copy p{font-size:1rem}.return-art{width:100%;mask-image:linear-gradient(transparent,#000 13%,#000 86%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 13%,#000 86%,transparent)}.transition-copy{font-size:1rem;text-align:center;line-height:2.2;margin:0;padding:70px 20px 36px}.closing-world{max-width:1120px;margin:auto;padding:0 6%}.section-heading{text-align:center}.section-heading h2{font-size:clamp(1.7rem,6vw,2.8rem);margin-bottom:25px}.ornament{display:flex;align-items:center;gap:18px;max-width:180px;margin:auto;color:var(--gold)}.ornament:before,.ornament:after{content:'';flex:1;background:var(--line);height:1px}.banners{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;margin:32px auto 60px;max-width:500px}.banner{display:flex;flex-direction:column;width:100%;min-width:0;border:1px solid var(--line);border-radius:4px;padding:0 0 24px;overflow:hidden;background:#fbf8f0;cursor:pointer;transition:border-color .2s,box-shadow .2s}.banner:hover{border-color:var(--gold);box-shadow:0 6px 24px #ac8d551c}.banner-visual{display:block;width:100%;aspect-ratio:2.75;overflow:hidden;mask-image:linear-gradient(#000 70%,transparent);-webkit-mask-image:linear-gradient(#000 70%,transparent)}.banner-art{width:100%;height:auto}.banner-copy{padding:0 20px;width:100%;display:flex;flex-direction:column;align-items:center;flex:1}.banner h3{font-size:1.7rem;letter-spacing:.05em;margin:4px 0 10px;line-height:1.6}.banner p{font-size:1rem;line-height:1.9;margin:8px 0 22px;letter-spacing:.015em}.banner p br{display:none}.banner-bottom{display:flex;justify-content:center;gap:20px;width:100%;max-width:310px;padding:12px 16px;border:1px solid var(--line);border-radius:30px;font-size:1rem;margin-top:auto}.banner small{font-size:.875rem;color:var(--muted);margin-top:10px}.divider{max-width:100%;margin:20px auto 30px}.links h2{font-size:1.4rem;text-align:center;margin-bottom:30px}.link-list{display:flex;flex-direction:column;gap:16px}.link-list a{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:4px 12px;padding:16px;border:1px solid var(--line);border-radius:4px}.link-icon{grid-row:1/3;display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--gold);border-radius:50%;color:var(--gold)}.link-list h3{font-size:1.1rem;line-height:1.7;margin:0}.note-label{font-family:Arial,sans-serif}.note-title{font-size:1rem}.link-action{grid-column:2;font-size:.875rem;text-align:right}.link-action>span{color:var(--gold);margin-left:12px}.closing-signature{font-size:.875rem;letter-spacing:.12em;color:var(--muted);text-align:center;margin:46px 0 20px}footer{padding:24px 6% 42px;text-align:center}footer .logo{margin:auto;width:180px}footer p{font-size:.875rem}footer small{display:none}.back{display:inline-block;font-size:.875rem;padding:16px}dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:50px 24px 30px;width:min(500px,calc(100% - 32px));max-height:calc(100dvh - 40px);text-align:center;overflow:auto}dialog::backdrop{background:#244c4960}dialog .eyebrow{text-align:center}dialog h2{font-size:1.5rem;margin-top:22px}dialog p br{display:none}.close{position:absolute;right:8px;top:5px;border:0;background:none;font-size:1.8rem;min-width:44px;min-height:44px;cursor:pointer}.dialog-back{padding:12px 20px;border:1px solid var(--line);background:none;font-size:1rem;cursor:pointer}
@media(min-width:600px){header{padding:30px 6%}.logo{width:220px}.about{font-size:1rem}.cover-logo{margin-top:50px;margin-bottom:55px}.cover-title p{margin:30px 0 65px}.prologue-copy{padding:30px 11% 0 4%}.eyebrow{font-size:1rem}.prologue-copy p{font-size:clamp(1rem,2.25vw,1.55rem);line-height:2.1;margin:26px 0}.prologue-copy br{display:block}.guide{width:126%;margin-left:-3%}.follow{margin-top:30px;font-size:1.2rem}.follow span{height:130px}.chapter-copy{padding:65px 7% 45px}.number{font-size:1.1rem;margin-bottom:40px}.chapter p,.chapter blockquote{font-size:clamp(1.1rem,2.2vw,1.6rem)}.tree .chapter-copy{padding-bottom:45px}.tree-art{aspect-ratio:1.16}.tree blockquote{margin-top:48px}.between{padding-top:45px}.ripple-art{aspect-ratio:1.5;margin-top:-25px}.flow{padding-top:75px}.flow-copy{max-width:870px}.flow-copy br{display:block}.flow-art{margin-top:-25px}.meaning .chapter-copy{padding:90px 7% 100px}.meaning p br{display:block}.narrow{display:none}.meaning .choices{font-size:1.6rem;gap:0 .8em;margin-top:46px}.town-copy{padding-top:50px}.town-art{margin-top:-90px}.town-after{padding-top:0;padding-bottom:100px}.town-after blockquote{font-size:2rem}.return-copy{padding-top:40px}.return-art{margin-top:-25px}.transition-copy{padding-top:90px;padding-bottom:50px;font-size:1.2rem}.link-list a{grid-template-columns:48px minmax(0,1fr) auto;padding:20px 28px}.link-icon{grid-row:auto;width:44px;height:44px}.link-action{grid-column:auto}.links h2{font-size:1.75rem}}
@media(min-width:1000px){.cover-logo{width:88%}.cover h1{font-size:3.7rem}.cover-title p{font-size:1.5rem}.guide{width:122%}.prologue-copy{padding-top:35px}.prologue-copy p{font-size:1.5rem}.follow{margin-top:45px}.tree .chapter-copy{padding-top:50px;padding-bottom:55px}.tree-art{aspect-ratio:1.23}.between .chapter-copy{padding-top:75px}.ripple-art{margin-top:-80px}.flow{padding-top:100px}.flow-copy{padding-left:10%}.flow-art{margin-top:-40px}.meaning .chapter-copy{padding:100px 7% 115px}.town-copy{padding-left:10%}.town-art{margin-top:-150px}.town-after{padding-right:10%}.return-copy{position:relative;z-index:1}.return-art{margin-top:-65px}.banners{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}.banner h3{font-size:2rem}.banner-copy{padding-left:26px;padding-right:26px}.banner p br{display:block}.links{max-width:880px;margin:auto}.closing-world{padding:0 3%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
