/* Spring garden: decorations are local SVG/CSS, with no animation library. */
.spring-hero{isolation:isolate;background:radial-gradient(ellipse at 12% 16%,#fffbe6cc,transparent 47%),radial-gradient(ellipse at 88% 17%,#fff9d79e,transparent 40%),linear-gradient(120deg,#eff9dd,#e3f5be 70%,#ddefad)}
.spring-hero .hero-grid{position:relative;z-index:2;min-height:640px;padding-bottom:62px}
.spring-hero .hero-copy .eyebrow{width:max-content;max-width:100%;padding:7px 15px;border:1px solid #c9dfa49c;border-radius:99px;background:#ffffee83;font-size:12px}
.spring-hero h1{font-weight:850;letter-spacing:-.035em}
.spring-atmosphere{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.spring-atmosphere::after{content:"";position:absolute;inset:0;opacity:.7;background:radial-gradient(circle at 40% 12%,#fffdf5 0 2px,transparent 3px),radial-gradient(circle at 93% 55%,#fffdf5 0 3px,transparent 5px),radial-gradient(circle at 7% 68%,#ffffeb99 0 5px,transparent 8px),radial-gradient(circle at 55% 68%,#fffef7a8 0 4px,transparent 8px),radial-gradient(circle at 80% 10%,#ffffed 0 2px,transparent 4px);animation:spring-light 8s ease-in-out infinite alternate}
.spring-sun{position:absolute;top:24px;right:10%;width:155px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 40% 40%,#fff9ce,#f9e7a896);box-shadow:0 0 0 18px #fff5c22e,0 0 0 40px #fff5c214}
.spring-cloud{position:absolute;width:110px;height:30px;border-radius:60px;background:#fffff2a3;animation:cloud-wander 12s ease-in-out infinite alternate}
.spring-cloud::before,.spring-cloud::after{content:"";position:absolute;bottom:8px;width:48px;height:48px;background:inherit;border-radius:50%}
.spring-cloud::before{left:17px}.spring-cloud::after{right:17px;width:36px;height:36px}
.cloud-one{top:98px;left:49%}.cloud-two{right:2%;top:188px;scale:.7;opacity:.7;animation-delay:-6s}
.spring-leaf{position:absolute;width:19px;height:35px;border-radius:3px 90% 3px 90%;background:#a7c96a99;animation:leaf-drift 8s ease-in-out infinite alternate}
.leaf-one{left:2.6%;top:36%;rotate:-25deg}.leaf-two{right:3%;bottom:24%;scale:.75;rotate:25deg;animation-delay:-4s}
.spring-butterfly{position:absolute;display:flex;gap:2px;width:28px;height:24px;animation:butterfly-fly 7s ease-in-out infinite alternate}
.spring-butterfly i{width:14px;height:21px;display:block;background:#e9bd679e;border-radius:80% 70% 35% 70%;rotate:-22deg;transform-origin:right center;animation:wing-flutter 1.25s ease-in-out infinite alternate}
.spring-butterfly i+i{rotate:22deg;border-radius:70% 80% 70% 35%;transform-origin:left center}
.butterfly-one{top:42%;left:47%}.butterfly-two{top:8%;left:22%;scale:.65;animation-delay:-3s}
.spring-hero .mascot-stage{height:440px}
.spring-orbit{position:absolute;left:0;top:16px;width:100%;height:calc(100% - 40px);border:1px dashed #87ab5557;border-radius:50%;rotate:-8deg;pointer-events:none}
.spring-orbit::after{content:"✿";position:absolute;bottom:16%;left:0;color:#c2cf7b;font-size:38px;line-height:1}
.spring-hero .mascot{width:46%;top:45px;transform:none}
.spring-hero .chunchun{left:0}
.spring-hero .huahua{right:0;top:65px}
.spring-hero .mascot span{left:50%;transform:translateX(-50%)}
.mascot-hello{position:relative;display:block;width:100%;padding:0;border:0;border-radius:48%;background:transparent;color:var(--ink);animation:mascot-breathe 5s ease-in-out infinite;cursor:pointer;-webkit-tap-highlight-color:transparent}
.mascot-hello::before{content:"";position:absolute;inset:5% -4% -2%;border:1px solid #faffdc85;border-radius:47% 49% 40% 42%;rotate:5deg;pointer-events:none}
.huahua .mascot-hello{animation-duration:5.7s;animation-delay:-2.3s}
.mascot-hello.is-greeting{animation:mascot-greet .65s ease-in-out 2}
.mascot-reply{position:absolute;top:12px;left:20%;max-width:78%;padding:9px 18px;border:1px solid #d5e7ba;border-radius:20px 20px 20px 4px;background:#fffef1;box-shadow:0 8px 22px #506d1910;font-size:13px;z-index:5;opacity:0;translate:0 10px;pointer-events:none;transition:opacity .2s,translate .2s}
.mascot-reply.is-visible{opacity:1;translate:0 0}
.spring-hero .stage-caption{bottom:9px;right:11%;border:1px solid #d1e3b084;background:#faffedc2;border-radius:99px;padding:5px 15px;font-size:12px;letter-spacing:.08em}
.garden-scene{position:absolute;bottom:-1px;left:0;width:100%;height:185px;z-index:1;pointer-events:none;overflow:visible}
.garden-scene-mobile{display:none}
.home .garden-flower,.home .garden-sprig{transform-box:fill-box;transform-origin:center bottom;animation:garden-sway 6s ease-in-out infinite alternate}
.home .garden-sprig{animation-duration:7.5s;animation-delay:-2s}
.home .garden-scene>g:nth-of-type(2n) .garden-flower{animation-delay:-3s;animation-duration:6.8s}
.hero-bottom{position:absolute;bottom:15px;left:50%;translate:-50% 0;z-index:4;display:flex;align-items:center;justify-content:space-between;pointer-events:none;min-height:32px}
.spring-scroll{margin-left:34%;display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:.13em;color:#4b6f33}
.spring-scroll>span{display:inline-block;animation:scroll-nudge 2.5s ease-in-out infinite;font-size:17px}
.motion-toggle{pointer-events:auto;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 12px;border:1px solid #8fae6280;border-radius:99px;background:#f7ffe5d9;color:#486734;font-size:11px;line-height:1.5}
.motion-toggle[hidden]{display:none}.motion-toggle svg{width:14px;height:14px}.motion-toggle:disabled{opacity:.75}
.meadow-banner{height:clamp(320px,25vw,480px)}.meadow-banner img{object-position:50% 57%}.meadow-banner:after{background:linear-gradient(90deg,#24402ba8,transparent 43%)}
.meadow-copy>span{max-width:29%;display:block;line-height:1.5;text-shadow:0 2px 8px #203c2340}
.meadow-copy p{max-width:30%;font-size:13px;letter-spacing:.08em}
.services-strip{position:relative;z-index:3;margin-top:-21px;padding:19px 10px;background:#fffff7;border:1px solid #dce8c7;border-radius:27px;box-shadow:0 12px 32px #3e5c2210}
.service-item>div{border-radius:22px 16px 23px 17px;transition:transform .3s,background .3s}
.service-item:nth-child(2)>div{background:#e9f3e2;color:#638d64}.service-item:nth-child(3)>div{background:#f7f0d8;color:#a18b48}.service-item:nth-child(4)>div{background:#faecdc;color:#b2916d}.service-item:nth-child(5)>div{background:#edf1d4;color:#7e9353}
.home #knowledge,.home #albums,.home #supplies{position:relative;isolation:isolate}
.home #knowledge::before,.home #albums::before{content:"✿";position:absolute;top:15px;right:10%;font-size:105px;line-height:1;color:#e9f2d6;rotate:15deg;z-index:-1;pointer-events:none}
.home #supplies::before{content:"";position:absolute;inset:120px -25px -16px;background:#eff7e359;border-radius:48px 75px 55px 40px;z-index:-1;pointer-events:none}
.content-card{border-radius:23px;transition:transform .3s,box-shadow .3s,border-color .3s}
.content-card:hover{box-shadow:0 17px 35px #4c6f2114;border-color:#c6d9ab}
.identity-feature{position:relative;isolation:isolate;border-radius:38px 24px 38px 24px;box-shadow:0 12px 25px #4c6f2106}
.identity-feature::before{content:"";position:absolute;z-index:-1;pointer-events:none;width:280px;aspect-ratio:1;border:1px dashed #a9c38166;border-radius:50%;top:35px;right:7%}
.identity-card{transition:transform .45s}
.supply-card{transition:transform .3s,box-shadow .3s;border-radius:24px 18px 24px 18px}
.supply-icon{transition:transform .3s}
.social-card{transition:transform .3s,box-shadow .3s}
.wedding-card{position:relative;isolation:isolate;border-radius:34px 22px 34px 22px;background:radial-gradient(circle at 95% 0,#ffe9b780,transparent 60%),linear-gradient(125deg,#faf3df,#f3f8e4)}
.wedding-card::after{content:"✿";position:absolute;top:20px;right:26px;font-size:80px;color:#e7dca47a;z-index:-1;rotate:15deg;pointer-events:none}
.friends-card{border-radius:22px 34px 22px 34px}
.friends-card .social-photo{object-position:50% 47%}
.page-banner{position:relative;isolation:isolate;overflow:hidden;border-radius:0 0 40px 40px;background:radial-gradient(ellipse at 85% 15%,#fff8dca6,transparent 45%),linear-gradient(100deg,#eaf7d5,#f4fae9)}
.page-banner::after{content:"✿";position:absolute;right:8%;bottom:-46px;font-size:180px;line-height:1;color:#dcecc4a3;rotate:17deg;z-index:-1;pointer-events:none}
.about-mascots figure,.mini-program-panel>div{border-radius:28px 18px 28px 18px}
.home #albums .content-card:only-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.25fr;max-width:900px;width:100%;margin:0 auto}
.home #albums .content-card:only-child .card-image{aspect-ratio:1.3;height:100%}
.home #albums .content-card:only-child .card-body{padding:36px;align-self:center}
.home #albums .content-card:only-child h3{font-size:27px}
.closing-section{position:relative;isolation:isolate;border-radius:48px 48px 0 0;background:radial-gradient(ellipse at 90% 20%,#f5f9d8,#e6f4cb 70%)}
.closing-inner{position:relative;z-index:2;padding-bottom:15px}
.closing-section .garden-scene{height:100px;opacity:.7}
.closing-mascots img{transition:translate .35s}
.nav-list a{position:relative}
.desktop-nav .nav-list a::after{content:"";position:absolute;bottom:-9px;left:50%;translate:-50% 0;width:17px;height:3px;border-radius:9px;background:var(--accent);scale:0 1;transition:scale .2s}
.desktop-nav .nav-list a[aria-current=page]::after,.desktop-nav .nav-list a:hover::after{scale:1 1}
.mobile-bottom-nav a[aria-current=page]{color:var(--ink);font-weight:700}
.mobile-bottom-nav a[aria-current=page] svg{background:#e5f2cf;box-shadow:0 0 0 5px #e5f2cf;border-radius:6px}
.button svg,.text-link svg,.card-more svg{transition:translate .25s}
.spring-reveal{transition:opacity .65s ease,translate .65s ease,transform .3s,box-shadow .3s}
.spring-reveal.will-reveal{opacity:0;translate:0 20px}
.spring-reveal.is-visible,.spring-reveal:focus-within{opacity:1;translate:0 0}
@media(hover:hover) and (pointer:fine){
    .service-item:hover>div{transform:translateY(-5px) rotate(-6deg)}
    .content-card:hover{transform:translateY(-7px)}
    .supply-card:hover{transform:translateY(-5px);box-shadow:0 14px 25px #4c6f2110}
    .supply-card:hover .supply-icon{transform:rotate(-9deg)}
    .identity-feature:hover .identity-card{transform:rotate(1deg)}
    .social-card:hover{transform:translateY(-4px);box-shadow:0 14px 25px #4c6f2110}
    .button:hover svg,.text-link:hover svg,.card-more:hover svg{translate:3px 0}
    .closing-mascots:hover img{translate:0 -5px}
}
@keyframes garden-sway{from{transform:rotate(-2deg)}to{transform:rotate(3deg)}}
@keyframes spring-light{from{opacity:.35}to{opacity:.8}}
@keyframes mascot-breathe{0%,100%{transform:translateY(0) rotate(-.5deg)}50%{transform:translateY(-10px) rotate(1deg)}}
@keyframes mascot-greet{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-17px) rotate(-4deg)}65%{transform:translateY(-7px) rotate(4deg)}}
@keyframes cloud-wander{from{transform:translateX(-12px)}to{transform:translateX(18px)}}
@keyframes leaf-drift{from{transform:translateY(-6px) rotate(-8deg)}to{transform:translateY(9px) rotate(8deg)}}
@keyframes butterfly-fly{from{transform:translate(-5px,5px) rotate(-12deg)}to{transform:translate(14px,-12px) rotate(12deg)}}
@keyframes wing-flutter{from{transform:scaleX(.45)}to{transform:scaleX(1)}}
@keyframes scroll-nudge{0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}
@media(max-width:1200px){
    .spring-hero .hero-grid{min-height:600px}.spring-hero .mascot-stage{height:390px}
    .spring-hero .stage-caption{bottom:0;right:3%}
}
@media(max-width:1000px){
    .spring-hero .hero-grid{min-height:575px}.spring-hero .mascot-stage{height:clamp(290px,35vw,350px)}
    .spring-hero .stage-caption{font-size:11px;right:0;padding:4px 12px}
    .spring-orbit{top:20px;height:calc(100% - 40px)}.mascot-reply{left:6%;max-width:95%;top:0}
    .spring-cloud{scale:.8}.butterfly-one{left:44%;top:26%}
    .spring-hero>.garden-scene{height:110px}
    .friends-card .social-photo{height:auto;min-height:0;aspect-ratio:1;object-position:50% 76%}
    .home #albums .content-card:only-child .card-body{padding:27px}
}
@media(min-width:701px) and (max-width:1000px){
    .meadow-banner{height:calc(90px + 33.333vw);background:#eff5d9}
    .meadow-banner picture{position:absolute;bottom:0;left:0;height:33.333vw;width:100%;display:block}
    .meadow-banner img{object-position:50% 50%}
    .meadow-banner:after{background:linear-gradient(180deg,#eff5d9 78px,#eff5d966 102px,transparent 131px)}
    .meadow-copy{top:16px;left:0;transform:none;width:100%;padding:0 24px;text-align:center}
    .meadow-copy>span{font-size:22px;max-width:none;color:var(--ink);text-shadow:none}
    .meadow-copy p{font-size:12px;max-width:none;color:#5e7c44;margin-top:7px}
}
@media(max-width:700px){
    .spring-hero .hero-grid{padding-bottom:92px;min-height:0}
    .spring-hero .hero-copy{padding-top:29px}
    .spring-hero .hero-copy .eyebrow{margin:0 auto 18px;font-size:11px;padding:5px 12px}
    .spring-hero h1{font-size:39px;line-height:1.28}
    .spring-hero .mascot-stage{height:clamp(226px,62vw,280px);max-width:410px}
    .spring-hero .mascot{top:20px}.spring-hero .huahua{top:38px}
    .spring-hero .stage-caption{bottom:0;right:50%;font-size:10px;padding:3px 12px;gap:6px}
    .spring-orbit{top:8px;height:calc(100% - 30px)}
    .spring-orbit::after{font-size:27px;bottom:20%}
    .mascot-reply{top:7px;left:10%;font-size:11px;padding:7px 12px;max-width:84%}
    .spring-sun{width:90px;right:-32px;top:15px;opacity:.65}
    .cloud-one{left:-19px;top:223px;scale:.55}.cloud-two{top:354px;right:-30px;scale:.5}
    .leaf-one{left:3%;top:19%;width:11px;height:21px}.leaf-two{bottom:22%;right:2%}
    .butterfly-one{top:38%;left:auto;right:8%;scale:.7}.butterfly-two{display:none}
    .garden-scene{display:none}.garden-scene-mobile{display:block}
    .spring-hero>.garden-scene-mobile{width:100%;left:0;height:114px}
    .hero-bottom{bottom:13px;width:calc(100% - 32px)}
    .spring-scroll{margin-left:19%;font-size:10px;gap:9px;letter-spacing:.06em}
    .motion-toggle{font-size:10px;padding:4px 10px;gap:4px;min-height:31px}
    .motion-toggle svg{width:12px;height:12px}
    .meadow-banner{height:calc(98px + clamp(150px,49vw,190px));background:#eff5d9}
    .meadow-banner picture{position:absolute;bottom:0;left:0;height:clamp(150px,49vw,190px);width:100%;display:block}
    .meadow-banner img{object-position:100% 55%}
    .meadow-banner:after{background:linear-gradient(180deg,#eff5d9 80px,#eff5d966 109px,transparent 143px);pointer-events:none}
    .meadow-copy{top:19px;left:0;transform:none;width:100%;padding:0 18px;text-align:center}
    .meadow-copy>span{font-size:18px;max-width:none;line-height:1.5;color:var(--ink);text-shadow:none}
    .meadow-copy p{font-size:11px;max-width:none;letter-spacing:.07em;color:#5e7c44;margin-top:7px}
    .services-strip{width:calc(100% - 24px);margin-top:-15px;padding:18px 5px 17px;border-radius:21px}
    .service-item>div{width:40px;height:40px;border-radius:15px 11px 16px 12px}
    .service-item h2{font-size:11px}.service-item>div svg{width:24px;height:24px}
    .home #knowledge::before,.home #albums::before{font-size:76px;right:1%;top:16px}
    .home #supplies::before{inset:102px -10px 6px;border-radius:35px}
    .content-card{border-radius:20px}.identity-feature{border-radius:29px 20px 29px 20px}
    .identity-feature::before{top:auto;bottom:90px;right:5%;width:240px}
    .supply-card{border-radius:21px 15px 21px 15px}
    .wedding-card{border-radius:28px 18px 28px 18px}.friends-card{border-radius:18px 28px 18px 28px}
    .friends-card{display:block}.friends-card .social-photo{width:100%;height:auto;min-height:0;aspect-ratio:1;object-fit:cover;object-position:50% 76%}
    .friends-card>div{padding:25px}.friends-card h3{font-size:24px}.friends-card p{font-size:14px}
    .page-banner{border-radius:0 0 27px 27px}.page-banner::after{font-size:120px;bottom:-24px;right:0}
    .home #albums .content-card:only-child{display:block}
    .home #albums .content-card:only-child .card-image{aspect-ratio:1.65;height:auto}
    .home #albums .content-card:only-child .card-body{padding:22px}
    .home #albums .content-card:only-child h3{font-size:23px}
    .closing-section{border-radius:32px 32px 0 0;margin-top:45px}
    .closing-section .garden-scene{height:78px;width:100%;left:0}
    .closing-inner{padding-bottom:10px}.spring-reveal.will-reveal{translate:0 12px}
}
@media(max-width:360px){
    .spring-hero h1{font-size:35px}
    .spring-hero .hero-grid{padding-bottom:85px}.spring-scroll{margin-left:7%}
}
/* Motion can be paused without hiding information or disabling interaction. */
.motion-paused .spring-hero *,.motion-paused .spring-hero *::after,.motion-paused .garden-scene *{animation-play-state:paused!important}
.motion-paused .mascot-hello.is-greeting{animation:none}
.motion-paused .spring-reveal{opacity:1;translate:0 0;transition:none}
@media(prefers-reduced-motion:reduce){
    .spring-hero *,.garden-scene *{animation:none!important}
    .spring-reveal{opacity:1!important;translate:0 0!important;transition:none!important}
    .content-card:hover,.supply-card:hover,.social-card:hover,.service-item:hover>div,.mascot:hover{transform:none!important}
    .button:hover svg,.text-link:hover svg,.card-more:hover svg,.closing-mascots:hover img{translate:0 0!important}
}
