:root{--ink:#0b0d10;--paper:#ece5d3;--muted:#9a9484;--gold:#d4b06a;--jade:#7cc4ae;--vermilion:#e0735a;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ink);color:var(--paper);font-family:var(--serif);margin:0;line-height:1.7;overflow-x:hidden}body.lock{overflow:hidden}button{font:inherit;color:inherit}.mist{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.blob{filter:blur(90px);opacity:.22;border-radius:50%;animation:38s ease-in-out infinite alternate drift;position:absolute}.b1{background:#2a6f66;width:55vmax;height:55vmax;top:-20vmax;left:-15vmax}.b2{background:#7a4f2b;width:45vmax;height:45vmax;animation-duration:46s;bottom:-18vmax;right:-12vmax}.b3{opacity:.14;background:#3a3f78;width:35vmax;height:35vmax;animation-duration:52s;top:40%;left:45%}@keyframes drift{to{transform:translate(8vmax,6vmax)scale(1.15)}}.glyphs{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.glyphs span{color:var(--paper);opacity:0;font-family:Noto Serif CJK SC,Noto Serif SC,Songti SC,serif;animation:linear infinite rise;position:absolute;bottom:-80px}@keyframes rise{0%{opacity:0;transform:translateY(0)rotate(-4deg)}10%{opacity:.07}90%{opacity:.07}to{opacity:0;transform:translateY(-115vh)rotate(6deg)}}.hero{z-index:1;text-align:center;place-content:center;justify-items:center;min-height:100svh;padding:2rem 1.5rem;display:grid;position:relative}.mark{aspect-ratio:1;width:clamp(180px,34vmin,300px);margin-bottom:1.5rem;transition:transform .4s ease-out;position:relative}.enso{width:112%;height:112%;position:absolute;inset:-6%;overflow:visible}.enso path{fill:none;stroke:var(--gold);stroke-width:3.5px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;opacity:.85;animation:3.2s cubic-bezier(.6,.1,.2,1) .3s forwards brush}@keyframes brush{to{stroke-dashoffset:0}}.yy{filter:drop-shadow(0 0 22px #d4b06a40);width:68%;height:68%;animation:40s linear infinite spin,2s .2s both fadein;position:absolute;inset:16%}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadein{0%{opacity:0}}.kicker{letter-spacing:.35em;text-transform:uppercase;color:var(--gold);margin:0;font-size:.8rem;animation:1.2s .9s both up}.hero h1{letter-spacing:.04em;background:linear-gradient(180deg, #fff6df, var(--gold));color:#0000;-webkit-background-clip:text;background-clip:text;margin:.4rem 0 .6rem;font-size:clamp(2.8rem,9vw,6rem);font-weight:400;line-height:1.05;animation:1.4s 1.1s both up}.with{color:var(--vermilion);font-family:var(--sans);letter-spacing:.32em;text-transform:uppercase;text-shadow:0 0 24px #e0735a73;margin:0 0 .9rem;font-size:clamp(.8rem,2vw,1.05rem);font-weight:600;animation:1.4s 1.25s both up}.sub{color:var(--muted);margin:0 0 2.4rem;font-size:clamp(1rem,2.4vw,1.3rem);font-style:italic;animation:1.4s 1.4s both up}.down{color:var(--paper);letter-spacing:.2em;text-transform:uppercase;border:1px solid #ece5d34d;border-radius:999px;padding:.8rem 1.8rem;font-size:.8rem;text-decoration:none;transition:all .3s;animation:1.4s 1.7s both up}.down span{animation:2s ease-in-out infinite bob;display:inline-block}.down:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}@keyframes bob{50%{transform:translateY(4px)}}@keyframes up{0%{opacity:0;transform:translateY(22px)}}main,footer{z-index:1;position:relative}.reveal{opacity:0;transition:opacity .9s,transform .9s;transition-delay:calc(var(--i,0) * 60ms);transform:translateY(26px)}.reveal.in{opacity:1;transform:none}.about{max-width:46rem;margin:0 auto;padding:6rem 1.5rem 3rem}.about h2,.chapters>h2{color:var(--gold);margin:0 0 1.2rem;font-size:clamp(1.8rem,4.5vw,2.6rem);font-weight:400}.lead{color:#f4eedb;font-size:clamp(1.15rem,2.6vw,1.4rem)}.about p{margin:0 0 1.2rem}.about em{color:var(--jade);font-style:italic}.about strong{color:var(--gold);font-weight:600}.terms{gap:.9rem;margin:2.5rem 0 0;padding:0;list-style:none;display:grid}.terms li{background:#ece5d308;border:1px solid #ece5d31a;border-radius:12px;grid-template-columns:3.2rem 7rem 1fr;align-items:baseline;gap:.8rem;padding:.9rem 1.1rem;font-size:.97rem;display:grid}.terms .han{color:var(--vermilion);font-family:Noto Serif CJK SC,Noto Serif SC,serif;font-size:1.8rem;line-height:1}.terms strong{color:var(--paper);font-weight:600}.terms span:last-child{color:var(--muted)}@media (width<=560px){.terms li{grid-template-columns:2.6rem 1fr}.terms span:last-child{grid-column:1/-1}}.chapters{max-width:72rem;margin:0 auto;padding:3rem 1.5rem 6rem}.chapters>h2{text-align:center}.hint{text-align:center;color:var(--muted);margin:0 0 3rem;font-style:italic}.part{--accent:var(--jade);margin-bottom:3.5rem}.part-te{--accent:var(--gold)}.part h3{color:var(--accent);border-bottom:1px solid color-mix(in srgb, var(--accent) 30%, transparent);flex-wrap:wrap;align-items:baseline;gap:.8rem;margin:0 0 1.4rem;padding-bottom:.7rem;font-size:1.5rem;font-weight:400;display:flex}.part h3 small{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:.85rem;font-family:var(--sans)}.grid{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:.9rem;margin:0;padding:0;list-style:none;display:grid}.card{text-align:left;cursor:pointer;background:linear-gradient(160deg,#ece5d30d,#ece5d303);border:1px solid #ece5d31a;border-radius:12px;align-items:flex-start;gap:.9rem;width:100%;height:100%;padding:1rem 1.1rem;transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .35s,background .3s;display:flex;position:relative;overflow:hidden}.card:after{content:"";background:radial-gradient(circle at 0 0, color-mix(in srgb, var(--accent) 22%, transparent), transparent 60%);opacity:0;transition:opacity .4s;position:absolute;inset:0}.card:hover,.card:focus-visible{border-color:var(--accent);box-shadow:0 12px 30px -12px color-mix(in srgb, var(--accent) 45%, transparent);outline:none;transform:translateY(-4px)}.card:hover:after,.card:focus-visible:after{opacity:1}.card .num{font-family:var(--sans);color:var(--accent);z-index:1;min-width:2.3rem;font-size:1.7rem;font-weight:300;line-height:1;position:relative}.card .title{color:var(--paper);z-index:1;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.98rem;line-height:1.45;display:-webkit-box;position:relative;overflow:hidden}footer{text-align:center;color:var(--muted);border-top:1px solid #ece5d314;padding:3rem 1.5rem 4rem}footer p{margin:.2rem 0}footer .contact a{color:var(--gold);border-bottom:1px solid #0000;text-decoration:none;transition:border-color .3s}footer .contact a:hover,footer .contact a:focus-visible{border-bottom-color:var(--gold);outline:none}.foot-tools{font-family:var(--sans);opacity:.8;flex-wrap:wrap;justify-content:center;align-items:center;gap:.7rem;font-size:.75rem;display:flex;margin-top:1rem!important}.linklike{color:var(--muted);cursor:pointer;text-underline-offset:3px;font-size:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.linklike:hover{color:var(--paper)}.fuel{--c:var(--jade);align-items:center;gap:.45rem;display:inline-flex}.fuel[data-level=low]{--c:#e6b450}.fuel[data-level=critical]{--c:var(--vermilion)}.fuel .dot{background:var(--c);width:.55rem;height:.55rem;box-shadow:0 0 8px var(--c);border-radius:50%;animation:2.4s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}.consent{z-index:60;backdrop-filter:blur(8px);width:min(36rem,100% - 2rem);font-family:var(--sans);opacity:0;background:#12151af5;border:1px solid #ece5d32e;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.1rem;font-size:.85rem;transition:transform .5s cubic-bezier(.2,.9,.25,1),opacity .4s;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%,140%);box-shadow:0 20px 50px -15px #000c}.consent[hidden]{display:none}.consent.on{opacity:1;transform:translate(-50%)}.consent p{color:var(--muted);flex:14rem;margin:0;line-height:1.5}.consent-btns{gap:.5rem;display:flex}.consent button{cursor:pointer;background:0 0;border:1px solid #ece5d340;border-radius:999px;padding:.45rem 1.1rem;transition:all .25s}.consent button:hover{border-color:var(--paper)}.consent button.primary{background:var(--gold);color:#1a1405;border-color:var(--gold);font-weight:600}footer .small{max-width:40rem;font-size:.8rem;font-family:var(--sans);opacity:.75;margin:.6rem auto 0}.viewer{z-index:50;--accent:var(--jade);place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.viewer[hidden]{display:none}.viewer[data-part=te]{--accent:var(--gold)}.backdrop{backdrop-filter:blur();opacity:0;cursor:pointer;background:#050608b8;transition:opacity .45s,backdrop-filter .45s;position:absolute;inset:0}.viewer.on .backdrop{opacity:1;backdrop-filter:blur(10px)}.sheet{border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);width:min(46rem,100%);max-height:min(92svh,56rem);box-shadow:0 40px 100px -20px #000c, 0 0 80px -30px var(--accent);opacity:0;filter:blur(6px);background:radial-gradient(120% 80% at 50% 0,#1b1f26 0%,#12151a 70%);border-radius:18px;flex-direction:column;transition:opacity .45s,transform .55s cubic-bezier(.2,.9,.25,1),filter .45s;display:flex;position:relative;transform:translateY(40px)scale(.94)}.viewer.on .sheet{opacity:1;filter:none;transform:none}.x{z-index:2;cursor:pointer;background:0 0;border:1px solid #ece5d333;border-radius:50%;width:2.4rem;height:2.4rem;font-size:1.5rem;line-height:1;transition:all .3s;position:absolute;top:.6rem;right:.8rem}.x:hover{background:var(--paper);color:var(--ink);transform:rotate(90deg)}.scroll{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--accent) 40%, transparent) transparent;padding:2.6rem 2.4rem 1.4rem;overflow-y:auto}.v-part{font-family:var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.75rem}.sheet h2{color:#fff6df;margin:.3rem 0 0;font-size:clamp(2rem,6vw,3rem);font-weight:400}.rule{background:linear-gradient(90deg, var(--accent), transparent);width:0;height:1px;margin:1.1rem 0 1.6rem}.verse{text-align:center;color:#f6efdc;font-size:clamp(1.1rem,2.6vw,1.32rem);line-height:1.85}.verse p{margin:0 0 .35rem}.meaning{border-left:3px solid var(--vermilion);font-family:var(--sans);background:linear-gradient(90deg,#e0735a1f,#e0735a05);border-radius:12px;margin-top:2rem;padding:1.2rem 1.4rem}.m-label{letter-spacing:.3em;text-transform:uppercase;color:var(--vermilion);margin:0 0 .4rem;font-size:.7rem;font-weight:600}.meaning p:last-child{color:#f0cdc2;margin:0;font-size:1.02rem;font-style:italic;line-height:1.7}.scroll .v-part,.scroll h2,.scroll .meaning,.scroll .verse p{opacity:0}.scroll.play .v-part{animation:.7s .15s both show}.scroll.play h2{animation:.8s .2s both show}.scroll.play .rule{animation:1s .3s both grow}.scroll.play .verse p{animation:line .9s var(--d,.3s) both}.scroll.play .meaning{animation:1s 1.1s both show}@keyframes grow{to{width:100%}}@keyframes show{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes line{0%{opacity:0;filter:blur(4px);transform:translateY(10px)}to{opacity:1;filter:none;transform:none}}.pager{font-family:var(--sans);color:var(--muted);border-top:1px solid #ece5d314;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1.4rem 1rem;font-size:.9rem;display:flex}.pager button{cursor:pointer;background:0 0;border:1px solid #ece5d333;border-radius:999px;padding:.45rem 1.1rem;transition:all .25s}.pager button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.pager button:disabled{opacity:.25;cursor:default}@media (width<=560px){.scroll{padding:2.4rem 1.3rem 1rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.glyphs{display:none}}
