/* Sankranti atmosphere. A fixed decorative background with a quiet reading layer. */
.festival-site{isolation:isolate;background:#fff8e9}.festival-site>.site-header,.festival-site>main,.festival-site>footer,.festival-site>.notice{position:relative;z-index:1}.festival-scenery{position:fixed;inset:0;overflow:hidden;z-index:0;pointer-events:none;user-select:none;contain:strict}.festival-pattern{position:absolute;inset:0;background:url('muggu-pattern.svg') repeat;background-size:230px;opacity:.23}.festival-toran{position:absolute;left:-2%;top:-3px;width:104%;height:74px;background:url('toranam.svg') repeat-x top center;background-size:360px 74px;z-index:5;transform-origin:50% 0;animation:toran-sway 7s ease-in-out infinite alternate}.festival-dressed>.site-header{padding-top:60px;background:#fffaefed;border-bottom:1px solid #d2b77d;box-shadow:0 6px 25px #9b64120a}.festival-dressed>.site-header:before{content:'';position:absolute;left:0;right:0;top:0;height:47px;background:url('toranam.svg') repeat-x top center;background-size:300px 62px;pointer-events:none}.festival-bull,.festival-roosters{position:absolute;bottom:28px;width:clamp(130px,15vw,245px);height:auto;filter:drop-shadow(0 9px 14px #813b1720);opacity:.92}.festival-bull{left:-19px;transform-origin:40% 100%;animation:bull-breathe 8s ease-in-out infinite alternate}.festival-roosters{right:-16px;transform-origin:60% 100%;animation:bull-breathe 9s 1s ease-in-out infinite alternate}.festival-kite{position:absolute;display:block;width:74px;height:120px;background:url('kite.svg') center/contain no-repeat;opacity:.72;transform-origin:50% 80%;animation:kite-float 9s ease-in-out infinite alternate}.kite-one{top:19%;right:4%;--lean:12deg}.kite-two{top:39%;left:3%;width:50px;height:88px;--lean:-18deg;animation-delay:-4s;filter:hue-rotate(35deg)}.festival-muggu{position:absolute;display:block;width:210px;height:210px;background:url('muggu-medallion.svg') center/contain no-repeat;opacity:.28;animation:muggu-turn 100s linear infinite}.muggu-one{left:-115px;top:22%}.muggu-two{right:-125px;bottom:32%;animation-direction:reverse}.festival-petal{position:absolute;top:-40px;width:7px;height:12px;border-radius:80% 20% 70% 30%;background:#e8a328;opacity:0;animation:petal-fall 25s linear infinite;will-change:transform}.petal-0{left:4%;animation-delay:-4s}.petal-1{left:96%;animation-delay:-13s;background:#bb542d}.petal-2{left:12%;animation-delay:-19s}.petal-3{left:88%;animation-delay:-8s}.petal-4{left:2%;animation-delay:-23s;background:#b93e35}.petal-5{left:98%;animation-delay:-17s}.petal-6{left:18%;animation-delay:-10s;width:5px;height:8px}.petal-7{left:82%;animation-delay:-2s;width:5px;height:8px}.petal-8{left:50%;animation-delay:-21s;opacity:.1}
.festival-dressed .section{max-width:1100px;background:#fffaf2f0;border-radius:16px}.festival-dressed .importance{margin-top:34px;margin-bottom:32px;box-shadow:0 12px 50px #99651408;border:1px solid #e4cea655}.festival-dressed .schedule{background:linear-gradient(120deg,#fff6e5f5,#f7ebd2f5);border-color:#dfc69c}.festival-dressed .section+.section{margin-top:26px;margin-bottom:30px}.festival-dressed .page-intro{background:linear-gradient(90deg,#fff5e5ce,#fff9edf5 25%,#fff9edf5 75%,#fff5e5ce);position:relative;overflow:hidden}.festival-dressed .page-intro:before,.festival-dressed .page-intro:after{content:'';position:absolute;width:190px;height:190px;bottom:-92px;background:url('muggu-medallion.svg') center/contain no-repeat;opacity:.18;pointer-events:none}.festival-dressed .page-intro:before{left:5%}.festival-dressed .page-intro:after{right:5%;transform:rotate(22deg)}.festival-dressed .page-intro h1,.festival-dressed .page-intro p,.festival-dressed .page-intro>.eyebrow{position:relative;z-index:1}.festival-dressed .article{background:#fffaf4f7;box-shadow:0 12px 55px #98571b0c;border-inline:1px solid #ecdab9;margin-top:32px;margin-bottom:35px;border-radius:16px}.festival-dressed .gallery-wrap{margin-top:32px;margin-bottom:32px}.festival-dressed .ad-slot{position:relative;z-index:1;background:#f9f3e7}.festival-site .card,.festival-site .design,.festival-site .schedule-grid article{transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.festival-site .card:hover,.festival-site .design:hover{transform:translateY(-5px);box-shadow:0 18px 35px #6c3c1615;border-color:#d8ad67}.festival-site .schedule-grid article:hover{transform:translateY(-3px)}.festival-site .button{transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.festival-site .button:hover{transform:translateY(-2px);box-shadow:0 8px 18px #7c321e1c}.festival-site .time-box{box-shadow:0 9px 27px #7f451215}.festival-site .time-box strong.is-ticking{animation:digit-arrive .28s ease-out}.festival-site .reveal-in{animation:section-arrive .65s ease-out both}.festival-site>footer{background:linear-gradient(#f8efdbf5,#ebddc1);padding-top:0;margin-top:35px;overflow:hidden}.courtyard-border{height:235px;max-width:950px;position:relative;margin:0 auto 25px;border-bottom:1px solid #d9bf87;background:radial-gradient(ellipse at 50% 100%,#e4bc5d20,transparent 65%)}.courtyard-border:after{content:'';position:absolute;left:-10%;right:-10%;bottom:0;height:7px;background:repeating-linear-gradient(90deg,#a64d30 0 8px,#e7bd63 8px 16px,#557049 16px 24px);opacity:.6}.courtyard-bull,.courtyard-roosters{position:absolute;bottom:4px;width:285px;height:auto;max-height:230px;object-fit:contain}.courtyard-bull{left:6%;animation:bull-breathe 9s ease-in-out infinite alternate;transform-origin:50% 100%}.courtyard-roosters{right:6%;animation:bull-breathe 10s 1s ease-in-out infinite alternate;transform-origin:50% 100%}.courtyard-flower{position:absolute;left:50%;bottom:14px;translate:-50% 0;width:170px;height:170px;background:url('muggu-medallion.svg') center/contain no-repeat;opacity:.65;animation:muggu-turn 100s linear infinite}.motion-toggle{display:block;margin:20px auto;color:#694529;background:#fff8e6;border:1px solid #c9ac78;border-radius:30px;min-height:40px;padding:9px 17px;font-size:11px;letter-spacing:.3px;font-weight:500}.motion-toggle:hover{background:#f4e5c3;color:#4b2e15}.festival-site>footer>small{display:block}.festival-dressed .hero{border-bottom:3px solid #d8ad62}.festival-dressed .hero:before{content:'';position:absolute;inset:auto 0 0;height:9px;background:repeating-linear-gradient(90deg,#913b27 0 14px,#e7b559 14px 28px,#4c7050 28px 42px);opacity:.7;z-index:1;pointer-events:none}
@keyframes toran-sway{from{transform:rotate(-.35deg) translateY(-1px)}to{transform:rotate(.35deg) translateY(1px)}}@keyframes bull-breathe{from{transform:translateY(0) rotate(-.4deg)}to{transform:translateY(-3px) rotate(.4deg)}}@keyframes kite-float{from{transform:translate(0,0) rotate(var(--lean))}to{transform:translate(10px,-17px) rotate(calc(var(--lean) + 8deg))}}@keyframes muggu-turn{to{transform:rotate(360deg)}}@keyframes petal-fall{0%{opacity:0;transform:translate3d(0,-20px,0) rotate(0)}10%{opacity:.45}85%{opacity:.4}100%{opacity:0;transform:translate3d(20px,105vh,0) rotate(320deg)}}@keyframes digit-arrive{from{transform:translateY(3px);opacity:.72}to{transform:translateY(0);opacity:1}}@keyframes section-arrive{from{transform:translateY(16px);opacity:.7}to{transform:translateY(0);opacity:1}}
@media(min-width:1450px){.festival-bull,.festival-roosters{width:230px}.festival-bull{left:0}.festival-roosters{right:0}}
@media(max-width:1199px){.festival-bull,.festival-roosters{width:160px;opacity:.38;bottom:12px}.festival-kite{opacity:.4}.festival-dressed .section{margin-inline:30px}.festival-dressed .article{max-width:800px;margin-inline:auto}.festival-dressed .hero-content{padding-top:36px}}
@media(max-width:900px){.festival-bull,.festival-roosters{width:130px;opacity:.22}.festival-dressed .section{margin-inline:20px}.festival-dressed .article{margin-inline:20px}.festival-muggu{opacity:.2}.courtyard-bull,.courtyard-roosters{width:230px}.courtyard-bull{left:0}.courtyard-roosters{right:0}.courtyard-flower{width:140px;height:140px}.courtyard-border{height:200px}}
@media(max-width:600px){.festival-dressed>.site-header{padding-top:45px}.festival-toran{height:36px;background-size:215px 44px}.festival-dressed>.site-header:before{height:32px;background-size:215px 44px}.festival-bull,.festival-roosters{width:110px;bottom:2px;opacity:.16}.festival-kite{width:38px;height:65px;opacity:.25}.kite-one{top:30%;right:0}.kite-two{left:0;top:55%;width:32px;height:55px}.festival-petal:nth-last-child(-n+5){display:none}.festival-dressed .section{margin-inline:10px;padding-inline:19px;border-radius:12px}.festival-dressed .importance{margin-top:20px}.festival-dressed .article{margin:20px 10px;padding:35px 18px;border-radius:12px}.festival-dressed .gallery-wrap{margin-top:20px}.festival-dressed .page-intro{padding-top:38px}.festival-dressed .page-intro:before,.festival-dressed .page-intro:after{width:115px;height:115px;bottom:-75px}.festival-dressed .hero-content{padding-top:26px}.festival-dressed .hero h1{font-size:36px}.festival-dressed .hero{min-height:650px}.courtyard-border{height:155px;margin-bottom:22px}.courtyard-bull,.courtyard-roosters{width:160px;max-width:48%}.courtyard-bull{left:-9px}.courtyard-roosters{right:-9px}.courtyard-flower{width:85px;height:85px;bottom:15px;opacity:.38}.festival-site>footer{padding-inline:18px}.festival-site .reveal-in{animation-duration:.45s}.festival-pattern{background-size:170px;opacity:.15}}
@media(max-width:350px){.festival-dressed .hero h1{font-size:32px}.festival-dressed .section{padding-inline:15px}.courtyard-bull,.courtyard-roosters{width:145px}.courtyard-border{height:140px}}
.festival-still .festival-scenery *,.festival-still .courtyard-border *,.festival-still .hero-art,.festival-still .reveal-in,.festival-still .is-ticking{animation:none!important}.festival-still .festival-petal{display:none}.festival-still .card,.festival-still .design,.festival-still .schedule-grid article,.festival-still .button{transition:none!important;transform:none!important}.festival-backgrounded .festival-scenery *,.festival-backgrounded .courtyard-border *,.festival-backgrounded .hero-art{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.festival-site *,.festival-site *:before,.festival-site *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.festival-petal{display:none!important}.festival-site .card:hover,.festival-site .design:hover,.festival-site .button:hover,.festival-site .schedule-grid article:hover{transform:none!important}}

/* Harvest garden: all ornament stays outside the interaction layer. */
.festival-cane{position:absolute;bottom:90px;width:90px;height:360px;background:url('sugarcane.svg') center/contain no-repeat;opacity:.48;transform-origin:50% 100%;animation:cane-sway 8s ease-in-out infinite alternate}.cane-left{left:-22px}.cane-right{right:-22px;scale:-1 1;animation-delay:-3s}.festival-diya{position:absolute;bottom:18px;width:42px;height:19px;border-radius:5px 5px 28px 28px;background:linear-gradient(#dca748,#8c452d);border-bottom:3px solid #854526;box-shadow:0 -8px 30px #ecad3540}.diya-left{left:38%}.diya-right{right:38%}.festival-diya i{position:absolute;width:13px;height:25px;left:15px;top:-24px;border-radius:85% 15% 60% 40%;background:linear-gradient(#ef9320,#ffde77 75%,#fff1b5);transform-origin:50% 100%;animation:diya-glow 3s ease-in-out infinite alternate}.read-next{border-top:1px solid #d9bc8d;padding:24px 0 0;margin-top:30px}.read-next h2{font-size:24px}.read-next ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0;list-style:none}.read-next a{display:block;padding:15px;border:1px solid #e1c99d;border-radius:12px;background:#fff4dd;color:#703c2c;overflow-wrap:anywhere;text-decoration:none}.read-next a:hover{background:#f9e7bd}.admin details{padding:14px 0;border-bottom:1px solid #ddd}.admin summary{cursor:pointer;font-weight:600}.admin details p{overflow-wrap:anywhere}
@keyframes cane-sway{from{transform:rotate(-2deg)}to{transform:rotate(2deg)}}@keyframes diya-glow{from{transform:scale(.96) rotate(-3deg);opacity:.85}to{transform:scale(1.05) rotate(3deg);opacity:1}}
@media(max-width:900px){.festival-cane{width:55px;height:250px;opacity:.22;bottom:80px}.cane-left{left:-20px}.cane-right{right:-20px}}
@media(max-width:600px){.festival-cane{width:42px;height:180px;opacity:.15}.festival-diya{width:26px;height:12px;bottom:6px}.festival-diya i{width:9px;height:17px;left:9px;top:-16px}.diya-left{left:39%}.diya-right{right:39%}.read-next ul{grid-template-columns:1fr}.read-next h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){.festival-cane,.festival-diya i{animation:none!important}}
/* Dashboard-controlled atmosphere; transforms and opacity avoid layout work. */
.festival-scenery{opacity:var(--festival-opacity,.8)}
.festival-toran{animation-duration:calc(7s * var(--festival-speed,1))}.festival-kite{animation-duration:calc(9s * var(--festival-speed,1))}.festival-cane{animation-duration:calc(8s * var(--festival-speed,1))}.festival-petal{animation-duration:calc(25s * var(--festival-speed,1))}.festival-muggu,.courtyard-flower{animation-duration:calc(100s * var(--festival-speed,1))}.festival-bull,.festival-roosters,.courtyard-bull,.courtyard-roosters{animation-duration:calc(9s * var(--festival-speed,1))}.festival-diya i{animation-duration:calc(3s * var(--festival-speed,1))}
.festival-spark{position:absolute;left:var(--spark-x);top:var(--spark-y);width:5px;height:5px;border-radius:50%;background:#e8bb59;box-shadow:0 0 12px 3px #e9bd6933;opacity:0;animation:golden-drift calc(12s * var(--festival-speed,1)) var(--spark-delay) ease-in-out infinite}
@keyframes golden-drift{0%,100%{transform:translateY(8px) scale(.8);opacity:0}45%{opacity:.55}70%{transform:translateY(-28px) scale(1.15);opacity:.25}}
.festival-dressed:not(.no-toran)>.site-header:before{transform-origin:50% 0;animation:toran-sway calc(9s * var(--festival-speed,1)) ease-in-out infinite alternate}
.no-toran>.site-header:before{display:none}.no-toran>.site-header{padding-top:22px}.no-muggu .page-intro:before,.no-muggu .page-intro:after{display:none}
.no-hover .card,.no-hover .design,.no-hover .button,.no-hover .schedule-grid article{transition:none!important;transform:none!important}
.festival-still .site-header:before,.festival-backgrounded .site-header:before{animation:none!important}.festival-still .festival-spark{display:none}
@media(max-width:600px){.no-mobile-decor .festival-scenery,.no-mobile-decor .courtyard-border,.no-mobile-decor .site-header:before,.no-mobile-decor .page-intro:before,.no-mobile-decor .page-intro:after{display:none!important}.no-mobile-decor>.site-header{padding-top:20px}.no-mobile-motion *,.no-mobile-motion *:before,.no-mobile-motion *:after{animation:none!important;transition:none!important}.no-mobile-motion .festival-petal,.no-mobile-motion .festival-spark{display:none}.festival-spark:nth-last-child(-n+3){display:none}}
@media(prefers-reduced-motion:reduce){.festival-spark{display:none!important}.festival-dressed>.site-header:before{animation:none!important}}
