@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700;900&display=swap');
@font-face{font-family:"Ouyang Xun";src:url("../liuyao/ouyangxun.ttf") format("truetype");font-display:swap;font-weight:400}
:root{--ink:#102127;--deep:#082b35;--deep2:#10434f;--water:#2c899d;--water2:#75c3cf;--paper:#f0eadc;--paper2:#ddd3bd;--red:#a9392d;--gold:#c7a45c;--jade:#47736a;--sand:#b99a67;--muted:#74828a;--line:rgba(16,45,54,.18);--display:"Ouyang Xun","STKaiti","KaiTi",serif;--serif:"Noto Serif SC","Songti SC",serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.75 var(--serif)}body:before{content:"";position:fixed;inset:0;z-index:30;pointer-events:none;opacity:.14;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E")}a{color:inherit;text-decoration:none}button,input{font:inherit}.reading-progress{position:fixed;z-index:60;top:0;left:0;width:0;height:3px;background:var(--red)}
.masthead{position:absolute;z-index:10;top:0;left:0;right:0;height:82px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(22px,5vw,80px);color:#f3eddf;border-bottom:1px solid rgba(255,255,255,.13)}.brand{display:flex;align-items:center;gap:12px;letter-spacing:.14em}.brand span{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--water2);color:var(--water2);transform:rotate(-4deg);font:22px var(--display)}.brand b{font-weight:500}.masthead nav{display:flex;gap:32px}.masthead nav a{opacity:.62}.masthead nav a:hover{opacity:1;color:var(--water2)}.home{justify-self:end;font-size:13px;letter-spacing:.1em}
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:linear-gradient(#082a33,#144c57 58%,#9a8764)}#hero-water{position:absolute;inset:0;width:100%;height:100%}.hero-wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,26,32,.9),rgba(5,26,32,.35) 56%,rgba(5,26,32,.06)),linear-gradient(0deg,rgba(5,26,32,.38),transparent 45%)}.hero-copy{position:relative;z-index:2;width:min(720px,88vw);margin-left:clamp(28px,9vw,150px);padding-top:68px;color:#f4eddd}.hero-copy>p{margin:0 0 26px;color:var(--gold);font-size:13px;letter-spacing:.28em}.hero-copy h1{margin:0;font:400 clamp(66px,8.5vw,142px)/.95 var(--display);letter-spacing:.03em}.hero-copy h1 em{color:#e15d45;font-style:normal}.hero-copy>span{display:block;max-width:620px;margin:34px 0 26px;color:#c6d5d4;font-size:clamp(16px,1.4vw,21px)}.hero-copy>a{display:inline-flex;gap:36px;align-items:center;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.35);color:var(--gold);font-size:14px;letter-spacing:.1em}.hero-copy>a b{font-size:20px}.hero-number{position:absolute;z-index:2;right:clamp(28px,6vw,100px);bottom:clamp(36px,8vh,90px);display:grid;justify-items:end;color:#fff}.hero-number small{color:#9cb4b5;letter-spacing:.16em}.hero-number strong{font:clamp(38px,5vw,76px) Georgia,serif;color:var(--gold);line-height:1.1}.hero-number span{font-size:14px}.thesis{min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;background:#d8cdb7}.thesis span{color:#756e60;font-size:12px;letter-spacing:.18em}.thesis strong{margin:20px 0;font:400 clamp(40px,5.5vw,78px)/1.13 var(--display)}
.play-section{display:grid;grid-template-columns:minmax(280px,31%) 1fr;gap:clamp(25px,5vw,70px);padding:clamp(90px,10vw,150px) clamp(25px,5vw,80px);background:var(--deep);color:#edf2ed}.play-intro{position:sticky;top:80px;align-self:start}.play-intro>p,.intro>p{margin:0 0 24px;color:#df6147;font-size:12px;letter-spacing:.2em}.play-intro h2,.intro h2{margin:0 0 30px;font:400 clamp(52px,6vw,88px)/1.08 var(--display)}.play-intro h2 em,.intro h2 em{color:#e25d45;font-style:normal}.play-intro>span,.intro>span{display:block;max-width:430px;color:#8fa7a8;font-size:14px}.water-lab{align-self:start;padding:clamp(18px,3vw,40px);border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.035)}.lab-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:22px}.lab-head small,.lab-head strong{display:block}.lab-head small{color:#81999b;font-size:10px}.lab-head strong{font:400 30px var(--display)}.season-icon{font-size:36px;color:var(--water2)}.lab-result{text-align:right}.river-map{position:relative;overflow:hidden;background:#d7dece}.river-map svg{display:block;width:100%;height:auto}.terrain{fill:#7d9279}.terrain-left{fill:#68806f}.terrain-right{fill:#829276}.plain{fill:#c7b987}.river{fill:none;stroke:url(#water);stroke-linecap:round;stroke-linejoin:round;transition:stroke-width .3s,opacity .3s;filter:url(#glow)}.main-river{stroke-width:42}.spill{opacity:.55}.irrigation{stroke:#4a9ca8}.canal-line{fill:none;stroke:#4a9ca8;stroke-width:7;stroke-linecap:round}.fish-mouth{fill:#b4a173;stroke:#745d3b;stroke-width:3}.flying-weir{fill:none;stroke:#c8b581;stroke-width:10;stroke-dasharray:15 6}.mountain-cut{fill:#4f6258;stroke:#263e3c;stroke-width:4}.labels text{fill:#f4ecdb;font:400 28px var(--display);text-anchor:middle}.labels small{fill:#d3ded8;font:11px var(--serif);text-anchor:middle}.labels g:nth-child(n+7) text,.labels g:nth-child(n+7) small{fill:#233e3d}.particle{fill:#bde9ed}.sand-particle{fill:#d2b270}.map-readout{position:absolute;padding:12px 15px;border-left:2px solid var(--gold);background:rgba(5,35,43,.86);color:#eef1e9;backdrop-filter:blur(5px)}.map-readout small,.map-readout strong,.map-readout span{display:block}.map-readout small{color:#8fa8aa;font-size:9px}.map-readout strong{font:400 21px var(--display)}.map-readout>span{font-size:9px;color:#9eb1b1}.readout-fish{left:3%;top:3%}.readout-sand{left:3%;bottom:3%}.readout-bottle{right:3%;bottom:3%;text-align:right;border-left:0;border-right:2px solid var(--gold)}.slider-label{display:flex;justify-content:space-between;margin:25px 0 8px;color:#879fa0;font-size:12px}.slider-label b{font-weight:500;color:#edf2ed}.slider-label em{color:var(--water2);font-style:normal}input[type=range]{width:100%;accent-color:var(--water2);cursor:ew-resize}.season-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:22px}.season-presets button{border:1px solid rgba(255,255,255,.15);background:transparent;padding:15px;color:#8ea5a6;text-align:left;cursor:pointer}.season-presets b,.season-presets span{display:block}.season-presets span{font-size:10px}.season-presets button.active{border-color:var(--water2);background:rgba(110,190,201,.1);color:#edf2ed}.lab-note{margin:24px 0 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.13);color:#8da4a5;font-size:13px}
.chapter{display:grid;grid-template-columns:minmax(280px,34%) 1fr;gap:clamp(25px,5vw,80px);padding:clamp(90px,10vw,150px) clamp(25px,6vw,100px);min-height:850px}.intro{position:sticky;top:80px;align-self:start}.intro>span{color:var(--muted)}.stage{align-self:start;padding:clamp(20px,4vw,55px);border:1px solid var(--line);background:rgba(255,255,255,.35)}.discover{margin:30px 0 0;padding-top:24px;border-top:1px solid var(--line);color:var(--muted);font-size:14px}.split-source{display:grid;place-items:center;width:150px;height:150px;margin:0 auto 20px;border-radius:50%;background:var(--deep);color:#fff}.split-source b{font:34px var(--display)}.split-source span{font-size:10px;color:#9bb1b1}.split-branches{display:grid;grid-template-columns:1fr 1fr;gap:18px}.branch{position:relative;min-height:270px;padding:24px;overflow:hidden;background:#cadbd5}.branch.outer{background:#d5cdb8}.branch i{position:absolute;left:0;right:0;bottom:0;height:50%;background:repeating-linear-gradient(0deg,rgba(255,255,255,.18) 0 8px,transparent 9px 18px),var(--water);transition:height .35s}.branch b,.branch span{position:relative;z-index:1;display:block}.branch b{font:28px var(--display)}.branch b em{font-style:normal;color:var(--red)}.branch span{font-size:11px;color:#506264}.rule{display:grid;grid-template-columns:auto auto 1fr auto auto;gap:14px;align-items:center;margin-top:25px;color:var(--muted);font-size:11px}.rule strong{font:24px var(--display);color:var(--ink)}.rule i{height:1px;background:linear-gradient(90deg,var(--water),var(--red))}
.deep{background:#092b34;color:#eef1e9}.deep .intro>span{color:#8ea5a7}.deep .stage{border-color:rgba(255,255,255,.15);background:rgba(255,255,255,.035)}.vortex{position:relative;min-height:460px;overflow:hidden;background:#376f7b}.vortex-water{position:absolute;inset:-20%;border:34px solid rgba(158,221,226,.36);border-radius:48%;animation:turn 7s linear infinite}.vortex-water:after{content:"";position:absolute;inset:16%;border:23px solid rgba(158,221,226,.22);border-radius:47%}.sand-dots{position:absolute;inset:0}.sand-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:#d3b371;animation:drift 4s ease-in-out infinite}.weir{position:absolute;right:0;top:40%;width:42%;padding:18px;background:#c0aa78;color:#273b39;transform:rotate(-8deg);transform-origin:right}.weir b,.weir span{display:block}.weir b{font:28px var(--display)}.weir span{font-size:10px}.outer-arrow{position:absolute;right:4%;bottom:22%;color:#f4dfac;font-size:20px}.sand-facts{display:grid;grid-template-columns:1fr 1fr;margin-top:25px;border-top:1px solid rgba(255,255,255,.14);border-left:1px solid rgba(255,255,255,.14)}.sand-facts>div{padding:24px;border-right:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14)}.sand-facts small,.sand-facts b{display:block}.sand-facts small{color:var(--gold);font-size:10px}.sand-facts p{margin:7px 0 0;color:#8ca2a4;font-size:12px}@keyframes turn{to{transform:rotate(360deg)}}@keyframes drift{50%{transform:translate(85px,35px)}}
.bottle-chapter{background:#ded5c2}.bottle-visual{position:relative;min-height:450px;overflow:hidden;background:linear-gradient(#b9ccc5 0 40%,#4c98a5 40%)}.cliff{position:absolute;top:0;bottom:0;width:43%;background:#53675d}.cliff.left{left:0;clip-path:polygon(0 0,100% 0,83% 25%,100% 42%,76% 61%,91% 100%,0 100%)}.cliff.right{right:0;clip-path:polygon(0 0,100% 0,100% 100%,5% 100%,22% 72%,0 48%,18% 24%)}.bottle-water{position:absolute;left:38%;right:38%;top:35%;bottom:0;overflow:hidden}.bottle-water i{display:block;height:18px;margin:22px -20px;background:rgba(210,243,239,.4);border-radius:50%;animation:flow 2.4s linear infinite}.bottle-label{position:absolute;left:50%;top:46%;transform:translateX(-50%);color:#fff;text-align:center}.bottle-label b,.bottle-label span{display:block}.bottle-label b{font:34px var(--display)}.bottle-label span{font-size:10px}.bottle-flow{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;margin-top:28px;color:var(--muted);font-size:11px}.bottle-flow>i{height:12px;background:rgba(44,137,157,.16);overflow:hidden}.bottle-flow>i b{display:block;width:65%;height:100%;background:var(--water);transition:width .3s}@keyframes flow{to{transform:translateY(40px)}}
.algorithm{padding:clamp(100px,12vw,180px) clamp(25px,8vw,130px);background:var(--ink);color:#edf1eb;text-align:center}.algorithm>p{color:var(--gold);font-size:12px;letter-spacing:.2em}.algorithm h2{margin:30px 0 70px;font:400 clamp(50px,7vw,102px)/1.08 var(--display)}.algorithm h2 em{color:#e25c45;font-style:normal}.algorithm-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;text-align:left}.algorithm-flow article{padding:34px;border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16)}.algorithm-flow article span{color:var(--gold);font:24px var(--display)}.algorithm-flow article b{display:block;margin:8px 0}.algorithm-flow article p{margin:0;color:#8ca0a1;font-size:12px}.algorithm-flow>i{padding:20px;color:var(--gold);font-style:normal}.algorithm blockquote{margin:80px auto 0;font:400 clamp(32px,4vw,55px)/1.45 var(--display);color:#d7d0c1}.algorithm blockquote strong{color:var(--water2);font-weight:400}.sources{padding:100px clamp(25px,8vw,130px);background:#e7decc}.sources>p:first-child{color:var(--red);font-size:12px;letter-spacing:.2em}.sources h2{font:400 52px var(--display)}.sources>div{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.sources a{padding:24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.sources a:hover{background:rgba(255,255,255,.45)}.sources a b,.sources a span{display:block}.sources a b{font-size:14px}.sources a span{margin-top:6px;color:var(--muted);font-size:11px}.sources .note{max-width:930px;margin-top:28px;color:var(--muted);font-size:12px}footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:20px;padding:55px clamp(25px,6vw,90px);background:#08252c;color:#e7e0d0}footer>b{font:400 32px var(--display)}footer>span{align-self:center;color:#81999a;font-size:12px;letter-spacing:.16em}footer>a{justify-self:end;color:var(--gold);font-size:12px}.visitor-map{grid-column:1/-1;min-height:80px;margin-top:25px;overflow:hidden;opacity:.82}
@media(max-width:950px){.masthead{grid-template-columns:1fr auto}.masthead nav{display:none}.hero-copy{margin-left:28px;margin-bottom:150px}.hero-number{left:28px;right:auto;bottom:28px;justify-items:start}.play-section,.chapter{grid-template-columns:1fr;min-height:auto}.play-intro,.intro{position:static}.sources>div{grid-template-columns:1fr}.sources>div{border-top:0}.sources a{border-left:1px solid var(--line);border-top:1px solid var(--line)}footer{grid-template-columns:1fr auto}footer>span{display:none}}
@media(max-width:650px){.masthead{height:68px;padding:0 18px}.brand b{display:none}.home{font-size:11px}.hero-copy h1{font-size:61px}.hero-copy>span{font-size:14px}.thesis{min-height:260px}.play-section,.chapter{padding:75px 18px}.play-intro h2,.intro h2{font-size:48px}.water-lab,.stage{padding:18px}.river-map{margin-left:-18px;margin-right:-18px}.labels text{font-size:22px}.labels small{display:none}.map-readout{padding:7px 9px}.map-readout strong{font-size:16px}.map-readout>span{display:none}.season-presets{grid-template-columns:1fr}.split-branches,.sand-facts{grid-template-columns:1fr}.rule{grid-template-columns:1fr;text-align:center}.rule i{width:1px;height:24px;margin:auto}.algorithm,.sources{padding-left:18px;padding-right:18px}.algorithm-flow{grid-template-columns:1fr}.algorithm-flow>i{transform:rotate(90deg)}footer{padding:42px 18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.labels .sub{fill:#d3ded8;font:11px var(--serif);text-anchor:middle}
@media(max-width:650px){.labels .sub{display:none}}
