:root{
  --vermilion:#D63A2F;
  --paper:#F4E9D2;
  --indigo:#18233F;
  --gold:#E9B95F;
  --moss:#546B55;
  --plum:#5A2445;
  --foxfire:#78D8E8;
  --title:"Shippori Mincho","Yu Mincho","Hiragino Mincho ProN",serif;
  --round:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Trebuchet MS",sans-serif;
  --jp:"Noto Serif JP","Hiragino Mincho ProN",serif;
  --prose:"Fraunces",Georgia,serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--indigo)}
body{margin:0;min-height:100vh;overflow-x:hidden;color:var(--paper);font-family:var(--prose);background:radial-gradient(circle at 12% 4%,rgba(90,36,69,.65),transparent 28rem),linear-gradient(180deg,#121b33 0%,var(--indigo) 29%,#1c2540 52%,#111b31 100%)}
button,a{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer}
.paper-grain{position:fixed;inset:0;pointer-events:none;z-index:60;opacity:.34;background-image:radial-gradient(circle at 20% 30%,rgba(244,233,210,.16) 0 1px,transparent 1.8px),radial-gradient(circle at 70% 60%,rgba(233,185,95,.12) 0 1px,transparent 2px),linear-gradient(115deg,transparent 0 46%,rgba(244,233,210,.05) 47% 49%,transparent 50%);background-size:19px 23px,31px 37px,130px 130px;mix-blend-mode:screen}
.rain{position:fixed;inset:0;z-index:4;pointer-events:none;opacity:.38;background:repeating-linear-gradient(100deg,transparent 0 38px,rgba(120,216,232,.24) 39px 40px,transparent 42px 78px);animation:rainDrift 1.8s linear infinite}.foxfire-cursor{position:fixed;left:0;top:0;width:26px;height:26px;border-radius:50%;z-index:70;pointer-events:none;background:radial-gradient(circle,var(--foxfire),rgba(120,216,232,.38) 38%,transparent 72%);filter:blur(1px);opacity:.75;transform:translate3d(-50px,-50px,0);transition:opacity .4s}

.bell-nav{position:fixed;right:2.1rem;top:50%;transform:translateY(-50%);z-index:50;display:flex;flex-direction:column;gap:1rem}.bell-knot{width:24px;height:24px;display:grid;place-items:center;text-decoration:none}.bell-knot span{width:10px;height:10px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 2px rgba(244,233,210,.18),0 0 16px rgba(233,185,95,.45);transition:.35s}.bell-knot.is-active span{background:var(--vermilion);transform:scale(1.55);box-shadow:0 0 0 5px rgba(214,58,47,.22),0 0 24px rgba(214,58,47,.8)}
.wandering-cord{position:fixed;left:5.2vw;top:0;width:13vw;height:100vh;z-index:18;overflow:visible;pointer-events:none;filter:drop-shadow(0 6px 10px rgba(0,0,0,.25))}#cordPath{fill:none;stroke:var(--vermilion);stroke-width:3.4;stroke-linecap:round;stroke-dasharray:9 7;stroke-dashoffset:0;opacity:.92;transition:stroke-dashoffset .12s linear}

.threshold{position:relative;min-height:100vh;overflow:hidden;display:grid;align-items:center;padding:8vh 8vw;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(120,216,232,.07),transparent 22rem)}
.threshold:before{content:"";position:absolute;inset:6%;border:1px solid rgba(244,233,210,.12);border-radius:42% 58% 50% 48%/48% 42% 58% 52%;background:radial-gradient(circle at 35% 35%,rgba(244,233,210,.04),transparent 35%);filter:blur(.2px);pointer-events:none}.threshold:after{content:"";position:absolute;inset:auto -10% -20% -10%;height:34%;background:radial-gradient(ellipse at center,rgba(84,107,85,.34),transparent 65%);pointer-events:none}.ritual-label{font-family:var(--round);letter-spacing:.18em;text-transform:uppercase;font-size:.72rem;color:var(--foxfire)}
.poem{position:relative;z-index:25;max-width:450px;padding:1.4rem 1.6rem;background:linear-gradient(135deg,rgba(244,233,210,.92),rgba(244,233,210,.72));color:var(--indigo);box-shadow:0 28px 55px rgba(0,0,0,.28);border-radius:2px 34px 4px 28px}.poem h2,.final-seal h2{font-family:var(--title);font-size:clamp(2.3rem,5vw,5.6rem);font-weight:400;line-height:.94;margin:.45rem 0;color:var(--plum)}.poem p,.final-seal p{font-size:1.05rem;line-height:1.75;margin:.5rem 0 0}.cluster-right{margin-left:auto;margin-right:8vw}.cluster-left{margin-left:9vw}.cluster-center{margin:auto}.lower{align-self:end;margin-bottom:8vh}

.watercolor{position:absolute;border-radius:50%;filter:blur(18px);opacity:.55}.bloom-a{width:52vw;height:52vw;left:-14vw;top:4vh;background:radial-gradient(circle,var(--plum),transparent 63%)}.torii{position:absolute;z-index:8}.torii-large{left:14vw;top:8vh;width:62vw;height:68vh;opacity:.8}.torii i{position:absolute;background:var(--vermilion);box-shadow:inset 0 -8px 0 rgba(90,36,69,.25)}.torii .roof{left:3%;top:1%;width:94%;height:7%;border-radius:60% 60% 9px 9px;transform:rotate(-1deg)}.torii .beam{left:13%;top:14%;width:74%;height:7%}.torii .pillar{top:18%;width:7%;height:72%;border-radius:8px}.torii .left{left:21%;transform:rotate(2deg)}.torii .right{right:21%;transform:rotate(-2deg)}.torii .shadow{left:18%;bottom:0;width:64%;height:16%;background:rgba(0,0,0,.26);filter:blur(20px);border-radius:50%}.rice-title{position:relative;z-index:24;width:min(580px,80vw);margin-left:auto;margin-right:6vw;padding:2rem;background:rgba(244,233,210,.86);color:var(--indigo);clip-path:polygon(3% 0,100% 4%,96% 100%,0 94%);box-shadow:0 22px 45px rgba(0,0,0,.35)}.rice-title h1{font-family:var(--title);font-weight:400;font-size:clamp(4rem,10vw,9rem);line-height:.85;margin:.3rem 0;color:var(--indigo);animation:brushIn 2.2s ease both}.rice-title h1 span{color:var(--vermilion)}.rice-title p{font-size:1.1rem;line-height:1.75}.cord-tail{position:absolute;left:38%;top:55%;width:42vw;height:3px;background:var(--vermilion);transform:rotate(12deg);z-index:20;border-radius:50%;animation:cordSway 5s ease-in-out infinite}.vertical-inscription{position:absolute;right:4vw;bottom:8vh;writing-mode:vertical-rl;font-family:var(--jp);font-size:1.7rem;color:rgba(244,233,210,.55);letter-spacing:.25em}

.basin{background-color:#17213b}.stone-basin{position:relative;z-index:20;width:min(54vw,690px);height:min(54vw,690px);margin-left:7vw;border-radius:50%;background:radial-gradient(circle at 50% 48%,rgba(120,216,232,.28) 0 36%,rgba(24,35,63,.9) 37% 49%,var(--moss) 50% 63%,#334338 64%);box-shadow:inset 0 20px 50px rgba(0,0,0,.5),0 28px 70px rgba(0,0,0,.32)}.water-surface{position:absolute;inset:21%;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,rgba(120,216,232,.38),rgba(24,35,63,.38) 56%,transparent);overflow:hidden}.water-surface span{font-family:var(--title);font-size:clamp(1.5rem,3vw,3.4rem);text-align:center;color:var(--paper);opacity:.28;filter:blur(3px);transition:.6s}.stone-basin.is-rippling .water-surface span{opacity:.95;filter:blur(0)}.ripple{position:absolute;inset:27%;border:2px solid rgba(120,216,232,.42);border-radius:50%;animation:ripple 4s ease-in-out infinite}.ripple-two{animation-delay:1.2s}.ripple-three{animation-delay:2.3s}.shide-arrow{position:absolute;right:18vw;bottom:12vh;width:90px;height:160px;background:linear-gradient(135deg,transparent 0 28%,var(--paper) 29% 42%,transparent 43% 57%,var(--paper) 58% 72%,transparent 73%);opacity:.7;transform:rotate(18deg)}

.ema-grove{background:radial-gradient(circle at 70% 24%,rgba(233,185,95,.12),transparent 22rem),#1a243c}.ema-cloud{position:absolute;inset:6vh 7vw;z-index:19}.ema{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);width:180px;height:118px;padding:2.5rem 1rem 1rem;background:linear-gradient(#dba85c,#c89146);color:#4b2334;font-family:var(--jp);clip-path:polygon(50% 0,100% 26%,100% 100%,0 100%,0 26%);box-shadow:0 18px 28px rgba(0,0,0,.25);transform:rotate(calc(var(--r)*1deg));transform-origin:50% -20px;transition:transform .35s}.ema:before{content:"";position:absolute;left:50%;top:15px;width:12px;height:12px;border:2px solid var(--plum);border-radius:50%;transform:translateX(-50%)}.ema:hover,.ema.is-tilted{transform:rotate(calc(var(--r)*1deg + var(--tilt,8deg))) translateY(-8px)}

.kagura{background:linear-gradient(180deg,#1e2440,#20223a 48%,#291d34)}.ribbon-court{position:absolute;inset:0;z-index:16;overflow:hidden}.ribbon-court i{position:absolute;left:-15%;width:130%;height:38px;background:linear-gradient(90deg,transparent,var(--vermilion),#f08370,var(--vermilion),transparent);opacity:.78;filter:drop-shadow(0 12px 14px rgba(0,0,0,.22));animation:ribbon 8s ease-in-out infinite}.ribbon-court i:nth-child(1){top:18%;transform:rotate(-13deg)}.ribbon-court i:nth-child(2){top:35%;transform:rotate(8deg);animation-delay:-1.5s;background:linear-gradient(90deg,transparent,var(--paper),#fff8df,var(--paper),transparent)}.ribbon-court i:nth-child(3){top:52%;transform:rotate(-6deg);animation-delay:-3s}.ribbon-court i:nth-child(4){top:68%;transform:rotate(12deg);animation-delay:-4.5s;background:linear-gradient(90deg,transparent,var(--plum),#8a486d,var(--plum),transparent)}.ribbon-court i:nth-child(5){top:82%;transform:rotate(-10deg);animation-delay:-6s}.lanterns{position:absolute;left:12vw;bottom:11vh;display:flex;gap:4rem}.lanterns b{width:44px;height:74px;border-radius:50% 50% 45% 45%;background:var(--gold);box-shadow:0 0 45px rgba(233,185,95,.75);animation:lantern 3s ease-in-out infinite}.lanterns b:nth-child(2){animation-delay:.6s}.lanterns b:nth-child(3){animation-delay:1.2s}

.fox-path{background:radial-gradient(circle at 34% 60%,rgba(120,216,232,.18),transparent 18rem),#142039}.foxfire-field i{position:absolute;width:34px;height:52px;border-radius:50% 50% 45% 45%;background:radial-gradient(circle at 50% 25%,#fff,var(--foxfire) 32%,rgba(120,216,232,.05) 70%);filter:blur(.4px);animation:wisp 5s ease-in-out infinite}.foxfire-field i:nth-child(1){left:16%;top:28%}.foxfire-field i:nth-child(2){left:31%;top:55%;animation-delay:.7s}.foxfire-field i:nth-child(3){left:48%;top:39%;animation-delay:1.4s}.foxfire-field i:nth-child(4){left:62%;top:65%;animation-delay:2.1s}.foxfire-field i:nth-child(5){left:74%;top:25%;animation-delay:2.8s}.foxfire-field i:nth-child(6){left:84%;top:51%;animation-delay:3.5s}.paw-trail span{position:absolute;width:22px;height:16px;border-radius:50%;background:rgba(120,216,232,.52);box-shadow:10px -9px 0 -5px rgba(120,216,232,.52),-8px -8px 0 -5px rgba(120,216,232,.52);opacity:0;transform:rotate(25deg)}.paw-trail.is-visible span{animation:paw 3.8s linear infinite}.paw-trail span:nth-child(1){left:18%;top:72%;animation-delay:0s}.paw-trail span:nth-child(2){left:27%;top:63%;animation-delay:.35s}.paw-trail span:nth-child(3){left:36%;top:56%;animation-delay:.7s}.paw-trail span:nth-child(4){left:47%;top:50%;animation-delay:1.05s}.paw-trail span:nth-child(5){left:58%;top:44%;animation-delay:1.4s}.paw-trail span:nth-child(6){left:69%;top:37%;animation-delay:1.75s}.paw-trail span:nth-child(7){left:80%;top:31%;animation-delay:2.1s}

.archive{background:linear-gradient(180deg,#19213b,#231c34)}.ofuda-stack{position:relative;z-index:22;width:min(520px,72vw);height:580px;margin-left:auto;margin-right:12vw}.ofuda{position:absolute;left:50%;top:50%;width:210px;height:420px;margin:-210px 0 0 -105px;background:linear-gradient(180deg,var(--paper),#e5d7b8);color:var(--plum);box-shadow:0 26px 45px rgba(0,0,0,.32);transform:rotate(var(--rot));transition:.45s;transform-origin:50% 92%;border-radius:3px}.ofuda:nth-child(1){--rot:-13deg}.ofuda:nth-child(2){--rot:-4deg}.ofuda:nth-child(3){--rot:7deg}.ofuda:nth-child(4){--rot:16deg}.ofuda:hover,.ofuda.is-open{transform:rotate(calc(var(--rot) + 2deg)) translateY(-80px)}.ofuda span{display:block;margin-top:3rem;font-family:var(--jp);font-size:5rem}.ofuda em{display:block;margin-top:8rem;font-family:var(--round);font-style:normal;letter-spacing:.18em;text-transform:uppercase}.ofuda:after{content:"";position:absolute;left:50%;bottom:58px;width:72px;height:72px;border-radius:50%;border:8px double var(--vermilion);transform:translateX(-50%) rotate(-8deg);opacity:.72}

.summit{background:radial-gradient(circle at 50% 18%,rgba(233,185,95,.2),transparent 22rem),linear-gradient(180deg,#111a31,#1c1f39)}.moon-bell{position:relative;z-index:22;width:50vw;height:80vh;margin-left:8vw}.moon{position:absolute;left:26%;top:2%;width:min(35vw,420px);height:min(35vw,420px);border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff7cf,var(--gold) 58%,rgba(233,185,95,.05) 70%);box-shadow:0 0 90px rgba(233,185,95,.42)}.bell-body{position:absolute;left:37%;top:34%;width:190px;height:170px;border-radius:90px 90px 35px 35px;background:linear-gradient(140deg,#f5d77f,var(--gold),#a66e2e);box-shadow:0 20px 45px rgba(0,0,0,.34);transition:transform .3s}.bell-body:hover,.bell-body.is-ringing{animation:ringBell .8s ease-in-out}.bell-body span{position:absolute;left:50%;bottom:-18px;width:42px;height:42px;border-radius:50%;background:#f7d783;transform:translateX(-50%)}.bell-cord-final{position:absolute;left:44%;top:54%;height:35vh;width:7px;background:var(--vermilion);border-radius:5px}.bell-rings:before,.bell-rings:after{content:"";position:absolute;left:47%;top:41%;width:120px;height:120px;border-radius:50%;border:2px solid rgba(233,185,95,.0);transform:translate(-50%,-50%)}.bell-rings.is-ringing:before{animation:bellCircle 1.4s ease-out}.bell-rings.is-ringing:after{animation:bellCircle 1.4s .25s ease-out}.final-seal{position:absolute;right:10vw;bottom:12vh;z-index:25;max-width:520px;color:var(--paper)}.final-seal b{display:grid;place-items:center;margin-top:1.5rem;width:110px;height:110px;border:10px double var(--vermilion);border-radius:50%;font-family:var(--jp);font-size:2rem;color:var(--vermilion);transform:rotate(-9deg);background:rgba(244,233,210,.08)}

@keyframes rainDrift{to{background-position:-90px 180px}}@keyframes brushIn{from{clip-path:inset(0 100% 0 0);filter:blur(5px)}to{clip-path:inset(0 0 0 0);filter:blur(0)}}@keyframes cordSway{50%{transform:rotate(5deg) translateY(16px)}}@keyframes ripple{0%{transform:scale(.65);opacity:.9}100%{transform:scale(1.45);opacity:0}}@keyframes ribbon{50%{translate:4vw -2vh;filter:drop-shadow(0 18px 20px rgba(0,0,0,.3))}}@keyframes lantern{50%{transform:translateY(-12px);opacity:.75}}@keyframes wisp{50%{transform:translateY(-24px) scale(1.14);opacity:.62}}@keyframes paw{0%,18%{opacity:0}24%,70%{opacity:.85}100%{opacity:0}}@keyframes ringBell{20%{transform:rotate(9deg)}40%{transform:rotate(-8deg)}60%{transform:rotate(5deg)}80%{transform:rotate(-3deg)}}@keyframes bellCircle{0%{width:60px;height:60px;border-color:rgba(233,185,95,.9)}100%{width:520px;height:520px;border-color:rgba(233,185,95,0)}}

@media (max-width:760px){.bell-nav{right:.8rem}.wandering-cord{left:-1vw;width:22vw}.threshold{padding:7vh 7vw}.rice-title{margin:0 auto}.torii-large{left:-6vw;width:105vw}.stone-basin{width:82vw;height:82vw;margin:0 auto}.poem,.cluster-left,.cluster-right,.cluster-center{margin:0;max-width:82vw}.ema{width:140px;height:96px}.ofuda-stack{margin:0 auto}.moon-bell{width:90vw;margin:0}.final-seal{right:7vw;bottom:7vh}}
