@font-face{font-family:MoonSerif;src:local("Songti SC"),local("STSong"),local("SimSun");font-display:swap}
:root{--ink:#081a17;--ink-deep:#061310;--cream:#efe9d9;--gold:#d9c098;--muted:#a3b1a7;--line:rgba(218,223,199,.19);--serif:MoonSerif,"Noto Serif SC","SimSun",serif;--sans:"Helvetica Neue","Microsoft YaHei",sans-serif;--ease:cubic-bezier(.22,1,.36,1);color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--ink);color:var(--cream);font-family:var(--sans);-webkit-font-smoothing:antialiased}body.dialog-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;border-radius:0}button:disabled{cursor:wait}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:7px}button[hidden]{display:none}img{display:block;width:100%;height:auto}::selection{background:#d9c098;color:#081a17}svg{display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:20px;top:-100px;z-index:1000;background:var(--cream);color:var(--ink);padding:15px}.skip-link:focus{top:15px}.section-shell{padding-left:6%;padding-right:6%}.page-grain{position:fixed;inset:0;z-index:50;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 170 170' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.75' d='M0 0h170v170H0z'/%3E%3C/svg%3E")}.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:70;pointer-events:none}.scroll-progress span{display:block;width:100%;height:100%;background:var(--gold);transform:scaleX(0);transform-origin:left}.pointer-aura{position:fixed;top:0;left:0;width:34px;height:34px;border:1px solid #e6d7b277;border-radius:50%;z-index:60;pointer-events:none;opacity:0;transition:width .3s,height .3s,opacity .3s,background .3s;mix-blend-mode:screen}.pointer-aura.over-link{width:58px;height:58px;background:#d9c09813;border-color:#e6d7b244}
/* Ambient scenes stay beneath the interface and never intercept input. */
.atmosphere-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;opacity:0;transition:opacity 1.4s ease}
.atmosphere-layer.atmosphere-ready{opacity:1}
.atmosphere-orbit{z-index:0}
.atmosphere-wish{z-index:-1}
.motion-enabled .scene-active .moon-glow{animation:lunar-breath 8s ease-in-out infinite alternate}
.motion-enabled .scene-active .wish-background{animation:lantern-drift 18s ease-in-out infinite alternate}
.motion-off .atmosphere-layer{display:none}
html:not(.page-visible) .poetry-marquee>div,html:not(.page-visible) .scroll-invitation svg,html:not(.page-visible) .sound-bars i{animation-play-state:paused}
@keyframes lunar-breath{from{transform:scale(1.42);opacity:.64}to{transform:scale(1.75);opacity:1}}
@keyframes lantern-drift{from{transform:scale(1.045) translate3d(-.35%,.6%,0)}to{transform:scale(1.09) translate3d(.35%,-.7%,0)}}
/* Navigation */
.sound-button:not([data-audio-state=playing]) .sound-bars i{animation:none}
.site-header{height:106px;padding:0 4.1%;position:absolute;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;z-index:30;border-bottom:1px solid #d6dbc319;gap:25px}.brand{display:flex;align-items:center;gap:13px}.brand-icon{width:43px;height:43px;color:var(--gold)}.brand-name{font:25px/1 var(--serif);letter-spacing:5px}.brand-name>span{display:block;font:8px var(--sans);letter-spacing:2.4px;margin-top:9px;color:#d7d7c7}.desktop-nav{display:flex;align-items:center;gap:35px;font-size:12px;letter-spacing:2px}.desktop-nav a{padding:20px 0;color:#bec5b9;transition:color .3s}.desktop-nav a span{font:9px var(--sans);letter-spacing:0;color:#809184;margin-right:9px}.desktop-nav a:hover,.desktop-nav a.active{color:#fff8df}.desktop-nav a.active:after{content:"";display:block;width:4px;height:4px;border-radius:50%;background:var(--gold);margin:10px auto -14px}.header-actions{display:flex;align-items:center;gap:26px}.sound-button{border:0;background:transparent;display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:1px;color:#c4cdbc;padding:12px 0}.sound-bars{height:15px;display:flex;align-items:center;gap:3px}.sound-bars i{width:1px;height:5px;background:var(--gold)}.sound-bars i:nth-child(2){height:12px}.sound-bars i:nth-child(3){height:8px}.sound-button[aria-pressed=true] i{animation:sound-bar .85s ease-in-out infinite alternate}.sound-button[aria-pressed=true] i:nth-child(2){animation-delay:-.3s}.sound-button[aria-pressed=true] i:nth-child(3){animation-delay:-.6s}.header-wish{border:1px solid #dbcda248;padding:13px 18px;font-size:11px;letter-spacing:1px;transition:background .3s}.header-wish:hover{background:#ddc59b16}.header-wish span{margin-left:17px;color:var(--gold)}
/* Opening scene */
.hero{height:100svh;min-height:760px;position:relative;overflow:hidden;isolation:isolate;background:#0b211b}.hero-media{position:absolute;inset:0;z-index:-3;transform:scale(1.035);transform-origin:65% 50%;will-change:transform}.hero-fallback,#hero-canvas{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center}#hero-canvas{opacity:0;transition:opacity 1.2s}.hero-media.webgl-ready #hero-canvas{opacity:1}.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(2,18,13,.52),rgba(3,18,13,.25) 35%,transparent 64%),linear-gradient(0deg,#071813 0%,rgba(5,18,14,.35) 13%,transparent 37%)}.hero-coordinate{position:absolute;left:6%;right:6%;top:155px;display:flex;align-items:center;gap:14px;font:8px var(--sans);letter-spacing:2px;color:#b7c0ad}.tiny-cross{font:17px Georgia;color:var(--gold)}.coordinate-line{width:80px;height:1px;background:#d9c09844;margin-left:4px}.hero-copy{position:absolute;left:9.4%;top:29%;max-width:650px}.eyebrow{font:10px/1.6 var(--sans);letter-spacing:3px;color:var(--gold);margin:0 0 29px}.small-star{font-size:13px;margin-right:11px}.hero h1{font:400 clamp(58px,6.25vw,112px)/1.3 var(--serif);letter-spacing:.08em;margin:0 0 24px;filter:drop-shadow(0 5px 16px #0a18197a)}.title-line{display:block;overflow:hidden}.title-line>span{display:block}.moon-word{color:#e4d3ac}.hero-description{font:12px/2.1 var(--sans);letter-spacing:2px;color:#c4cdc0;margin:0 0 33px}.solid-link{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;background:#e5d4b3;border:1px solid #e5d4b3;padding:8px 8px 8px 24px;color:#14251e;min-height:52px;font-size:12px;letter-spacing:1.7px;position:relative;overflow:hidden;transition:background .3s,border-color .3s,box-shadow .3s}.solid-link:hover{background:#f5e8cc;border-color:#f5e8cc;box-shadow:0 0 35px #d6c89d1a}.button-arrow{display:grid;place-items:center;width:35px;height:35px;border:1px solid #354c333d;border-radius:50%;font:20px var(--sans);transition:transform .4s var(--ease)}.solid-link:hover .button-arrow{transform:rotate(45deg)}.moon-caption{position:absolute;right:8%;top:57%;display:flex;align-items:center;gap:12px;mix-blend-mode:screen}.moon-caption i{width:30px;height:1px;background:#f7eac499}.moon-caption span{font:8px/1.6 var(--sans);letter-spacing:2px;color:#dfe0cb}.moon-caption b{font-weight:400;color:#fff6de}.hero-vertical{position:absolute;right:4%;top:31%;writing-mode:vertical-rl;font:13px var(--serif);letter-spacing:8px;color:#eddfba}.hero-bottom{position:absolute;bottom:40px;left:6%;right:6%;display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.hero-edition{font-size:9px;letter-spacing:1.5px;display:flex;align-items:center;gap:10px;color:#b0b9a9}.live-dot{width:4px;height:4px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px #d9c098}.scroll-invitation{position:absolute;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:14px;font:8px var(--sans);letter-spacing:2px;color:#ddd6c1}.scroll-invitation svg{width:12px;height:29px;animation:scroll-nudge 2.3s ease-in-out infinite}.hero-date{text-align:right}.hero-date>span{display:block;font:8px var(--sans);letter-spacing:2px;color:#b3b8a6;margin-bottom:10px}.hero-date strong{font:400 17px var(--serif);letter-spacing:4px}.frame-corner{position:absolute;bottom:25px;width:15px;height:15px;border-bottom:1px solid #d9c09866}.frame-corner-left{left:28px;border-left:1px solid #d9c09866}.frame-corner-right{right:28px;border-right:1px solid #d9c09866}
/* Prologue */
.section-topline{display:flex;justify-content:space-between;align-items:center;gap:20px}.section-code{font:9px var(--sans);letter-spacing:2.3px;color:#d8c8a9}.section-note{font:9px/1.7 var(--sans);letter-spacing:1.8px;color:#8fa699}.prologue{padding-top:77px;padding-bottom:112px;background:var(--ink)}.prologue .section-topline{padding-bottom:25px;border-bottom:1px solid var(--line)}.prologue-body{max-width:1020px;margin:90px auto 0;position:relative;padding-left:85px}.prologue-seal{position:absolute;left:0;top:7px;border:1px solid #bfb38b88;padding:9px 5px;font:13px/1.5 var(--serif);color:#d1ba8e}.reading-text{font:400 clamp(32px,3.6vw,59px)/1.9 var(--serif);letter-spacing:.05em;margin:0}.reading-text .read-char{color:rgba(233,234,211,.24);transition:color .18s}.reading-text .read-char.lit{color:#e6e5d4}.prologue-foot{display:flex;justify-content:space-between;align-items:center;gap:35px;margin-top:38px}.prologue-foot p{font:12px/2.2 var(--sans);letter-spacing:1.2px;color:#92a99b}.prologue-spark{font:53px Georgia;color:#c8b18c}.serif-en{font:italic 23px/1.2 Georgia,serif;color:#e0d5bd}.serif-en em{color:#8fa395;font-weight:400}
/* Interactive lunar atelier */
.lunar-section{height:145vh;min-height:1050px;background:radial-gradient(ellipse at 59% 48%,#153429 0,#0a2019 42%,#091b16 70%);position:relative}.lunar-sticky{position:sticky;top:0;min-height:800px;height:100svh;display:flex;flex-direction:column;justify-content:space-between;padding-top:60px;padding-bottom:46px;overflow:hidden}.lunar-layout{display:grid;grid-template-columns:1fr 1.35fr .35fr;align-items:center;gap:0;min-height:450px;flex:1}.lunar-copy{position:relative;z-index:3}.lunar-copy .eyebrow{font-size:10px;letter-spacing:2px;margin-bottom:27px}h2{font-weight:400}.lunar-copy h2{font:400 clamp(29px,3.2vw,50px)/1.6 var(--serif);letter-spacing:.05em;margin:0 0 28px;white-space:nowrap}h2 em{font-style:normal;color:var(--gold)}.body-copy{font:11px/2.2 var(--sans);letter-spacing:1px;color:#96ad9f}.lunar-instruction{display:flex;align-items:center;gap:14px;margin-top:32px;font:9px var(--sans);letter-spacing:1px;color:#bac8b6}.lunar-instruction>span{font:23px var(--sans);color:#cfbd98}.moon-instrument{aspect-ratio:1;position:relative;width:100%;max-width:580px;justify-self:center;--moon-scale:1}.instrument-orbit{position:absolute;border:1px solid #c6c59b26;border-radius:50%;left:6%;right:6%;top:6%;bottom:6%;pointer-events:none}.orbit-b{transform:rotate(-29deg) scaleX(1.34) scaleY(.64);border-color:#c6c59b30}.instrument-ticks{position:absolute;inset:10%;border-radius:50%;background:repeating-conic-gradient(from 0deg,#c5c8a84d 0deg .3deg,transparent .3deg 6deg);mask:radial-gradient(transparent 69%,#000 70%);-webkit-mask:radial-gradient(transparent 69%,#000 70%);opacity:.6}.instrument-north,.instrument-west,.instrument-east{position:absolute;font:8px var(--sans);letter-spacing:2px;color:#a0b2a0}.instrument-north{top:1%;left:50%;transform:translateX(-50%)}.instrument-west{left:2%;top:49%;font-size:15px}.instrument-east{right:1%;top:49%;font-size:13px;color:var(--gold)}.moon-glow{position:absolute;inset:7%;border-radius:50%;background:radial-gradient(#dbd8b526,#c5b9770b 40%,transparent 68%);transform:scale(1.6);pointer-events:none}.moon-disc{position:absolute;inset:16%;border-radius:50%;transform:scale(var(--moon-scale));filter:drop-shadow(0 0 24px #dcd9a51a);overflow:hidden;isolation:isolate;background:#091b16}.moon-disc-fallback{position:absolute;inset:0;border-radius:50%;background-image:radial-gradient(circle at 43% 43%,#eedfba44,transparent 70%),url('./assets/moon-texture.jpg');background-size:cover;background-position:center;box-shadow:inset -14px -12px 27px #00160899}.moon-disc:after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 2px #e4dab177;pointer-events:none}.moon-disc canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:pan-y;opacity:0;transition:opacity .5s}.moon-disc canvas:active{cursor:grabbing}.moon-disc.webgl-ready canvas{opacity:1}.moon-phase-readout{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:15px;color:var(--gold)}.moon-phase-readout span:first-child{font:17px var(--serif);letter-spacing:5px}.moon-phase-readout span:last-child{font:8px var(--sans);letter-spacing:2px}.lunar-aside{text-align:right;position:relative;z-index:3}.lunar-aside>span{font:8px/1.8 var(--sans);letter-spacing:1.4px;color:#91a58f}.lunar-aside p{margin:35px 0 8px;white-space:nowrap}.lunar-aside strong{font:400 48px Georgia;color:var(--cream)}.lunar-aside p span{font:17px Georgia;color:#98ab94;margin-left:5px}.phase-controls{width:65%;align-self:center}.phase-range-label{display:flex;justify-content:space-between;margin-bottom:18px;font:9px var(--sans);letter-spacing:1px;color:#a6b6a1}.phase-range-label>span{color:#7f9788}.phase-range-label>span span{margin-left:13px;color:var(--gold)}#phase-range{display:block;width:100%;height:22px;appearance:none;-webkit-appearance:none;background:transparent;cursor:ew-resize;margin:0;padding:0}#phase-range::-webkit-slider-runnable-track{height:1px;background:#aab3946b}#phase-range::-moz-range-track{height:1px;background:#aab3946b}#phase-range::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;background:#e4d3ad;border:4px solid #233a2a;outline:1px solid #c2b18b;border-radius:50%;width:15px;height:15px;margin-top:-7px;box-shadow:0 0 16px #d2c09833}#phase-range::-moz-range-thumb{background:#e4d3ad;border:4px solid #233a2a;outline:1px solid #c2b18b;border-radius:50%;width:7px;height:7px}.phase-stops{display:flex;justify-content:space-between;gap:12px;padding-top:11px}.phase-stops button{display:flex;align-items:center;gap:10px;background:none;border:0;padding:10px 0;font:10px var(--sans);letter-spacing:2px;color:#92a58f}.phase-stops button[aria-pressed=true],.phase-stops button:hover{color:var(--gold)}.phase-icon{width:13px;height:13px;border:1px solid #bfba91;border-radius:50%}.phase-icon.first{background:linear-gradient(90deg,transparent 50%,#d4c29c 50%)}.phase-icon.full{background:#d4c29c}.phase-icon.last{background:linear-gradient(90deg,#d4c29c 50%,transparent 50%)}
/* Keep the actual interactive canvas above its image fallback. */
.moon-disc canvas{position:relative;z-index:1}.moon-disc-fallback{pointer-events:none}
/* Editorial moments */
.poetry-marquee{overflow:hidden;background:#cfc5a7;color:#192c22;padding:32px 0}.poetry-marquee>div{display:flex;width:max-content;gap:42px;align-items:center;animation:marquee 32s linear infinite}.poetry-marquee span{font:400 59px/1 Georgia,var(--serif);white-space:nowrap;letter-spacing:2px}.poetry-marquee i{font:35px Georgia;font-style:normal}.poetry-marquee .marquee-outline{color:transparent;-webkit-text-stroke:1px #314f39;font-family:var(--serif);font-size:47px;letter-spacing:6px}.ritual-section{padding-top:85px;padding-bottom:80px;background:#0b1d17}.ritual-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin:77px 0 50px}.ritual-heading h2{font:400 clamp(33px,3.6vw,57px)/1.55 var(--serif);letter-spacing:.05em;margin:0}.ritual-heading>p{font:11px/2.2 var(--sans);letter-spacing:1px;color:#9dad9e;margin:0 0 10px;max-width:320px}.ritual-gallery{display:grid;grid-template-columns:1.25fr 1fr;align-items:start;gap:28px}.ritual-panel{position:relative;overflow:hidden;isolation:isolate;min-width:0;height:680px}.ritual-panel-small{height:540px;margin-top:140px}.ritual-image{position:absolute;inset:-5%;z-index:-3;will-change:transform}.ritual-image img{width:100%;height:100%;object-fit:cover}.ritual-panel-large .ritual-image img{object-position:64% center}.ritual-panel-small .ritual-image img{object-position:60% center}.panel-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#03110e 0%,#03110ee0 8%,#03110e19 50%,#03110e40 100%)}.panel-top{position:absolute;left:30px;right:30px;top:25px;display:flex;justify-content:space-between;align-items:center;font:8px var(--sans);letter-spacing:2px;color:#e7d8b7}.panel-symbol{font:30px Georgia}.panel-caption{position:absolute;left:38px;right:30px;bottom:36px}.panel-caption .eyebrow{font-size:9px;letter-spacing:2px;margin-bottom:18px}.panel-caption h3{font:400 clamp(24px,2.4vw,37px)/1.6 var(--serif);letter-spacing:1px;margin:0 0 15px}.panel-caption p{font:11px/1.9 var(--sans);color:#b1baa9;letter-spacing:.7px}.text-button{display:inline-flex;align-items:center;gap:22px;border:0;background:none;padding:9px 0;font:10px var(--sans);letter-spacing:1.5px;color:#e0cca4;border-bottom:1px solid #c0b08866;transition:gap .4s var(--ease),color .3s}.text-button:hover{gap:35px;color:#fff3ce}.panel-caption .text-button{margin-top:17px}.ritual-afterword{display:flex;justify-content:space-between;gap:20px;margin-top:30px;font:9px var(--sans);letter-spacing:2px;color:#92a390}.ritual-afterword span:last-child{font-size:8px}
/* Wishes */
.wish-section{min-height:850px;height:105svh;position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;padding:60px 0 45px}.wish-background{position:absolute;inset:0;z-index:-4;background:url('./assets/lantern-world.webp') center 52%/cover;filter:brightness(.68);transform:scale(1.035)}.wish-overlay{position:absolute;inset:0;z-index:-2;background:linear-gradient(0deg,#061611ef,#06161150 30%,#06161150 65%,#091b17d9),linear-gradient(90deg,#06161155,#06161133 50%,#06161155)}.wish-content{text-align:center;padding:50px 24px 65px;position:relative;z-index:2}.wish-star{display:block;font:33px Georgia;color:#dec593;margin-bottom:26px}.wish-content .eyebrow{font-size:10px;margin-bottom:22px}.wish-content h2{font:400 clamp(40px,4.7vw,72px)/1.6 var(--serif);letter-spacing:.06em;margin:0;text-shadow:0 3px 30px #04140ec9}.wish-content h2 em{color:#e8d5af}.wish-description{font:12px/1.9 var(--sans);color:#d0d3bd;letter-spacing:1.5px;margin:26px 0 30px}.wish-saved{font:9px/1.8 var(--sans);letter-spacing:1px;color:#a7b09d;margin:23px 0 0}.wish-content .saved-wish-button{font-size:9px;margin-top:10px}.wish-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px;margin:0 6%;font-size:10px;letter-spacing:1.2px;color:#a5b4a1}.wish-bottom .serif-en{font-size:21px;letter-spacing:0}.wish-sky{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}.flying-lantern{position:absolute;left:50%;top:78%;width:65px;height:90px;transform:translateX(-50%);border-radius:30% 30% 38% 38%;background:repeating-linear-gradient(90deg,transparent 0 19%,#56422833 20% 21%),radial-gradient(ellipse at 50% 87%,#fff6c6,#dcc38bd9 44%,#a18b6888 90%);box-shadow:0 0 30px #ffd58e88,inset 0 0 13px #ffe7b988;animation:lantern-rise 6s var(--ease) both}.flying-lantern:after{content:"";position:absolute;bottom:1px;left:20%;right:20%;height:6px;border-radius:50%;border:1px solid #e2c993;background:#9e633b;box-shadow:0 -3px 12px #ffd58e}.flying-lantern span{position:absolute;top:28%;left:0;right:0;text-align:center;color:#5f533b;font:16px var(--serif);writing-mode:vertical-rl;margin:auto;max-height:50px}
/* Footer and dialogs */
.site-footer{background:#061511;display:grid;grid-template-columns:1fr 1fr auto;gap:30px;align-items:center;padding-top:60px;padding-bottom:25px}.footer-brand{font:30px var(--serif);letter-spacing:8px}.footer-brand span{display:block;font:8px var(--sans);letter-spacing:3px;margin-top:10px;color:#bcc3ae}.site-footer>p{font:13px/1.9 var(--serif);letter-spacing:2px;color:#a9b4a1;margin:0}.back-to-top{width:47px;height:47px;border:1px solid #c1c6a83d;border-radius:50%;display:grid;place-items:center;font-size:21px;color:#d9c098;transition:background .3s}.back-to-top:hover{background:#d9c09815}.footer-bottom{grid-column:1/-1;border-top:1px solid var(--line);padding-top:25px;margin-top:25px;display:flex;justify-content:space-between;gap:20px;font:8px/1.7 var(--sans);letter-spacing:1px;color:#839c89}.footer-bottom button{font:inherit;color:inherit;background:none;border:0;padding:0}.footer-bottom button:hover,.footer-bottom a:hover{color:var(--gold)}
dialog{border:1px solid #b4b79e55;background:#10271f;color:var(--cream);max-height:calc(100svh - 40px);overflow:auto;box-shadow:0 30px 100px #0008;padding:48px;width:550px;max-width:calc(100vw - 30px)}dialog::backdrop{background:#020d0ad9;backdrop-filter:blur(12px)}dialog[open]{animation:dialog-in .5s var(--ease)}.dialog-close{position:absolute;right:17px;top:13px;width:34px;height:34px;background:none;border:0;font:28px/1 var(--sans);color:#cfc4aa;z-index:3}.dialog-orbit{font:64px Georgia;color:#d5c199;text-align:center;margin:0 auto 30px}.wish-dialog .eyebrow{text-align:center;font-size:8px;letter-spacing:2px;margin-bottom:14px}.wish-dialog h2{font:28px/1.5 var(--serif);text-align:center;letter-spacing:2px;margin:0 0 30px}.wish-dialog label{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;margin:24px 0 10px;color:#d4d6bf}.wish-dialog label span{font-size:9px;color:#8ea490}.wish-dialog input,.wish-dialog textarea{width:100%;padding:12px 14px;border:1px solid #93a18055;background:#061a144d;color:#f0e8d4;outline-offset:3px;line-height:1.8;font-size:13px;resize:vertical}.wish-dialog input::placeholder,.wish-dialog textarea::placeholder{color:#809782}.wish-form-meta{display:flex;justify-content:space-between;gap:12px;font-size:9px;line-height:1.8;color:#97aa95;margin:12px 0 27px}.wish-form-meta>span:last-child{white-space:nowrap}.wish-dialog .solid-link{width:100%}.card-dialog{width:440px;padding:32px}.wish-card-preview{min-height:430px;position:relative;padding:25px;text-align:center;background:linear-gradient(180deg,#0b211982,#0b2119ef),url('./assets/moon-world.webp') 60% center/cover;border:1px solid #dfc9a34a;display:flex;flex-direction:column;align-items:center}.card-eyebrow{font:8px var(--sans);letter-spacing:2px;color:#d4bc93}.card-moon{display:block;width:75px;height:75px;border-radius:50%;margin:35px 0 25px;background:radial-gradient(circle at 40% 35%,#efdfbdaa,#ad9c6755),url('./assets/moon-texture.jpg') center/cover;box-shadow:0 0 35px #d9c09822}.wish-card-preview #card-to{font:12px var(--serif);letter-spacing:2px;color:#d9c098}.wish-card-preview #card-message{font:20px/1.9 var(--serif);word-break:break-word;white-space:pre-wrap;margin:18px 0 30px;flex:1}.card-signature{font:12px/2 var(--serif);letter-spacing:2px;color:#c9c9ae}.card-signature small{font:7px var(--sans);letter-spacing:2px}.card-actions{display:flex;align-items:center;gap:20px;margin-top:22px}.card-actions .solid-link{font-size:10px;letter-spacing:1px;gap:24px;padding:12px 15px;min-height:42px}.card-actions .text-button{font-size:9px}.download-status{font-size:10px;color:#bbc5ac;margin-bottom:0;line-height:1.8}.ritual-dialog{padding:0;width:670px}.ritual-dialog>img{height:270px;object-fit:cover}.ritual-dialog>div{padding:35px 40px}.ritual-dialog h2{font:26px/1.6 var(--serif);margin:0 0 20px}.ritual-dialog p:not(.eyebrow){font:13px/2.2 var(--serif);color:#b9c4ad}.ritual-dialog .eyebrow{font-size:8px;margin-bottom:15px}.toast{position:fixed;left:50%;bottom:35px;z-index:90;transform:translate(-50%,20px);border:1px solid #d9c09866;background:#0b241dea;padding:15px 25px;max-width:calc(100vw - 40px);font-size:11px;line-height:1.8;letter-spacing:1px;color:#e9ddc1;opacity:0;pointer-events:none;transition:opacity .35s,transform .35s;backdrop-filter:blur(10px)}.toast.show{opacity:1;transform:translate(-50%,0)}
/* Motion is progressive enhancement: without JS all content remains visible. */
.motion-enabled .reveal{opacity:0;transform:translateY(30px);transition:transform 1.1s var(--ease),opacity 1.1s var(--ease)}.motion-enabled .reveal.visible{opacity:1;transform:translateY(0)}.motion-enabled .title-line>span{animation:title-enter 1.4s var(--ease) both}.motion-enabled .title-line:nth-child(2)>span{animation-delay:.15s}.motion-enabled .hero-eyebrow,.motion-enabled .hero-description,.motion-enabled .hero-copy>.solid-link{animation:fade-up 1.3s var(--ease) both;animation-delay:.3s}.motion-enabled .hero-description{animation-delay:.5s}.motion-enabled .hero-copy>.solid-link{animation-delay:.7s}.motion-enabled .hero-media{animation:hero-enter 2.7s var(--ease) both}.motion-off *,.motion-off *:before,.motion-off *:after{animation:none!important;transition:none!important}.motion-off{scroll-behavior:auto}.motion-off .reading-text .read-char{color:#e6e5d4}.motion-off .pointer-aura{display:none}
@keyframes title-enter{from{transform:translateY(115%) rotate(3deg);opacity:0}to{transform:translateY(0) rotate(0);opacity:1}}@keyframes fade-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-enter{from{filter:brightness(.55);transform:scale(1.13)}to{filter:brightness(1);transform:scale(1.035)}}@keyframes scroll-nudge{0%,100%{transform:translateY(-3px)}50%{transform:translateY(4px)}}@keyframes sound-bar{from{transform:scaleY(.4)}to{transform:scaleY(1.3)}}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes dialog-in{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}@keyframes lantern-rise{0%{opacity:0;transform:translate(-50%,70px) scale(.65)}12%{opacity:1}70%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--drift, 140px)),-650px) scale(.2) rotate(-7deg)}}
@media(min-width:1800px){.hero-copy{left:12%;top:30%}.hero h1{font-size:112px}.lunar-layout{max-width:1850px;width:100%;margin:auto}.moon-instrument{max-width:660px}.prologue-body{max-width:1150px}}
@media(max-width:1100px){.site-header{height:90px}.desktop-nav{gap:22px}.header-actions{gap:18px}.hero{min-height:720px}.hero-copy{left:7%;top:29%}.hero h1{font-size:7vw}.hero-coordinate{top:135px}.hero-description{font-size:11px}.moon-caption{right:6%;top:64%}.hero-edition{max-width:220px;font-size:8px;line-height:1.8}.lunar-layout{grid-template-columns:1fr 1.25fr .23fr}.lunar-copy h2{font-size:33px}.lunar-aside strong{font-size:36px}.lunar-aside>span{font-size:7px;letter-spacing:.5px}.moon-instrument{min-width:350px}.phase-controls{width:80%}.ritual-panel{height:600px}.ritual-panel-small{height:480px;margin-top:120px}.panel-caption{left:28px;right:23px}.panel-caption h3{font-size:28px}.ritual-heading{gap:25px}.ritual-heading>p{font-size:10px}.prologue-body{padding-left:70px}.reading-text{font-size:3.9vw}}
@media(max-width:760px){html{scroll-padding-top:25px}.section-shell{padding-left:24px;padding-right:24px}.site-header{height:83px;padding:0 22px;gap:10px}.brand{gap:9px}.brand-icon{width:33px;height:33px}.brand-name{font-size:21px;letter-spacing:4px}.brand-name>span{font-size:6px;letter-spacing:1.8px;margin-top:7px}.desktop-nav{display:none}.header-actions{gap:16px}.sound-label{display:none}.header-wish{padding:10px 12px;font-size:9px;letter-spacing:.5px}.header-wish span{margin-left:7px}.hero{height:100svh;min-height:780px;max-height:1100px}.hero-media{transform-origin:62% 45%}.hero-fallback{object-position:63% center}.hero-shade{background:linear-gradient(0deg,#071813 0%,#071813a6 24%,#07181344 55%,#07181311 85%),linear-gradient(90deg,#07181333,transparent)}.hero-coordinate{top:115px;left:25px;right:25px;font-size:6px;letter-spacing:1.4px;gap:10px}.coordinate-line{width:45px}.hero-copy{left:28px;top:auto;bottom:154px;max-width:calc(100% - 48px)}.hero h1{font-size:clamp(43px,10.6vw,73px);letter-spacing:.08em;line-height:1.45;margin-bottom:20px}.hero-eyebrow{font-size:8px;letter-spacing:1.7px;margin-bottom:18px}.hero-description{font-size:10px;letter-spacing:1px;margin-bottom:25px;color:#d0d7c9}.hero-copy>.solid-link{font-size:10px;gap:30px;min-height:47px;padding:6px 6px 6px 18px}.hero-copy .button-arrow{width:31px;height:31px;font-size:18px}.moon-caption{top:30%;right:30px;gap:7px}.moon-caption span{font-size:6px;letter-spacing:1px}.moon-caption i{width:17px}.hero-vertical{display:none}.hero-bottom{left:26px;right:26px;bottom:30px}.hero-edition{max-width:180px;font-size:8px;line-height:2;letter-spacing:.8px}.scroll-invitation{left:auto;right:0;transform:none;font-size:6px;letter-spacing:1.2px;gap:12px}.scroll-invitation svg{height:23px}.hero-date{display:none}.frame-corner{display:none}.section-code{font-size:7px;letter-spacing:1.5px}.section-note{font-size:7px;letter-spacing:.5px;max-width:155px;text-align:right}.prologue{padding-top:54px;padding-bottom:76px}.prologue .section-topline>.tiny-cross{display:none}.prologue-body{margin-top:60px;padding-left:0}.prologue-seal{position:static;display:inline-block;font-size:10px;line-height:1.3;padding:6px;margin-bottom:26px;writing-mode:vertical-rl;letter-spacing:3px}.reading-text{font-size:clamp(22px,5.6vw,39px);line-height:1.95;letter-spacing:0}.prologue-foot{margin-top:30px;gap:20px}.prologue-foot p{font-size:10px;letter-spacing:.3px;line-height:2}.prologue-spark{display:none}.prologue-foot .serif-en{font-size:17px}.lunar-section{height:auto;min-height:0}.lunar-sticky{position:relative;height:auto;min-height:0;padding-top:40px;padding-bottom:38px;overflow:hidden}.lunar-layout{display:flex;flex-wrap:wrap;gap:0;position:relative;padding-top:43px}.lunar-copy{width:100%}.lunar-copy .eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:15px}.lunar-copy h2{font-size:34px;line-height:1.55;margin-bottom:18px}.lunar-copy .body-copy{font-size:10px;line-height:2}.lunar-instruction{font-size:8px;margin-top:21px}.moon-instrument{width:min(100%,420px);min-width:0;margin:15px auto 0;max-width:none}.moon-disc{inset:16%}.moon-phase-readout span:first-child{font-size:14px}.moon-phase-readout span:last-child{font-size:7px}.lunar-aside{position:absolute;right:28px;top:114px}.lunar-aside>span:first-child{font-size:6px;letter-spacing:.4px}.lunar-aside p{margin:14px 0 4px}.lunar-aside strong{font-size:34px}.lunar-aside p span{font-size:12px}.lunar-aside>span:last-child{font-size:7px}.phase-controls{width:100%;margin-top:40px;padding-left:34px;padding-right:34px}.phase-range-label{font-size:8px}.phase-stops button{font-size:9px;letter-spacing:1px;gap:7px}.phase-icon{width:11px;height:11px}.poetry-marquee{padding:23px 0}.poetry-marquee>div{gap:25px}.poetry-marquee span{font-size:37px}.poetry-marquee .marquee-outline{font-size:30px;letter-spacing:2px}.poetry-marquee i{font-size:24px}.ritual-section{padding-top:52px;padding-bottom:45px}.ritual-heading{display:block;margin:46px 0 32px}.ritual-heading h2{font-size:32px;line-height:1.6}.ritual-heading>p{margin-top:22px;font-size:10px;line-height:2}.ritual-gallery{grid-template-columns:1fr;gap:24px}.ritual-panel,.ritual-panel-small{height:500px;margin-top:0}.ritual-panel-large .ritual-image img{object-position:63% center}.ritual-panel-small .ritual-image img{object-position:59% center}.panel-top{left:22px;right:22px;top:20px;font-size:7px;letter-spacing:1.3px}.panel-caption{left:25px;right:22px;bottom:27px}.panel-caption h3{font-size:28px}.panel-caption p{font-size:10px}.panel-caption .eyebrow{font-size:8px}.ritual-afterword{font-size:8px;letter-spacing:1px}.ritual-afterword span:last-child{display:none}.wish-section{min-height:760px;height:95svh;padding-top:39px;padding-bottom:30px}.wish-background{background-position:57% center}.wish-content{padding:55px 22px}.wish-star{font-size:26px;margin-bottom:25px}.wish-content h2{font-size:clamp(29px,7vw,47px);line-height:1.8;letter-spacing:.03em}.wish-content .eyebrow{font-size:8px;letter-spacing:2px}.wish-description{font-size:10px;letter-spacing:.5px;margin:23px 0 30px}.wish-saved{font-size:8px}.wish-bottom{margin:0 24px;display:block;text-align:center;font-size:8px;line-height:2}.wish-bottom .serif-en{display:block;font-size:17px;margin-top:14px}.site-footer{grid-template-columns:1fr auto;gap:30px;padding-top:43px;padding-bottom:25px}.footer-brand{font-size:28px;letter-spacing:7px}.footer-brand span{font-size:7px}.site-footer>p{grid-column:1;grid-row:2;font-size:11px;letter-spacing:1px}.back-to-top{grid-column:2;grid-row:1/3;width:43px;height:43px}.footer-bottom{margin-top:0;display:flex;flex-wrap:wrap;gap:17px;font-size:7px;letter-spacing:.5px}.footer-bottom>span{width:100%}dialog{padding:35px 24px;max-height:calc(100svh - 25px)}.wish-dialog h2{font-size:23px;letter-spacing:1px}.dialog-orbit{font-size:48px;margin-bottom:25px}.wish-form-meta{font-size:8px}.card-dialog{padding:27px 23px}.card-actions{gap:17px}.wish-card-preview{padding:22px 17px;min-height:380px}.wish-card-preview #card-message{font-size:18px}.ritual-dialog>div{padding:28px}.ritual-dialog h2{font-size:23px}.ritual-dialog>img{height:200px}.toast{font-size:10px;padding:14px 20px}.pointer-aura{display:none}}
@media(max-width:360px){.header-actions{gap:10px}.hero h1{font-size:39px}.hero-copy{left:24px}.hero{min-height:760px}.lunar-copy h2{font-size:29px}.lunar-aside{right:24px;top:110px}.lunar-aside strong{font-size:29px}.reading-text{font-size:21px}.prologue-foot .serif-en{font-size:14px}.ritual-heading h2{font-size:29px}.wish-content h2{font-size:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1!important;transform:none!important}.pointer-aura,.atmosphere-layer{display:none}}

/* ── 心愿墙入口 ──────────────────────────────────────────────
   首页本次只新增这一个图标（在声音图标左侧）。
   以下是纯追加规则，只作用于 .header-icon-link / .header-icon-label，
   上面的既有规则一条都没有改动。 */
.header-icon-link{display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:1px;color:#c4cdbc;padding:12px 0;transition:color .3s;position:relative}
/* 图标本体只有 16px 宽，手指点不准；用伪元素把热区撑到约 40×56，视觉上完全不变。
   热区只向右扩 12px，而 .header-actions 的间距在手机上就有 16px，不会盖住右边声音按钮。 */
.header-icon-link::after{content:"";position:absolute;inset:-10px -12px}
.header-icon-link:hover,.header-icon-link:focus-visible{color:#fff8df}
.header-icon-link svg{width:16px;height:16px;color:var(--gold);flex:none}
@media(max-width:760px){.header-icon-label{display:none}.header-icon-link{padding:10px 0}}
