/* Lightweight illustration, motion and small-screen refinements. */
picture{display:block;min-width:0}
.image-surface{background-image:var(--image-preview);background-size:cover;background-position:center}
.hero-photo{background-position:56% 72%}
.hero,.section,.festival-card{position:relative;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0 -25px;z-index:-2;background:radial-gradient(ellipse at 82% 42%,#e8bd8236 0,transparent 53%);pointer-events:none}
.community-section::before{content:"";position:absolute;inset:40px 0 0;z-index:-2;background:radial-gradient(ellipse at 0 24%,#dae7ed80,transparent 53%);pointer-events:none}
.story::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 75% 72%,#efce7528,transparent 55%);pointer-events:none}
.homecoming{overflow:clip;background-color:#dae7ed;background-image:radial-gradient(ellipse at 25% 27%,#fffaf07a,transparent 38%),radial-gradient(ellipse at 83% 76%,#b5cfc653,transparent 44%)}
.badge-section{background:radial-gradient(ellipse at 76% 68%,#efce7535,transparent 50%)}
.decor{position:absolute;display:block;pointer-events:none;z-index:-1;overflow:visible}
.decor-hero{width:160px;left:-76px;top:-36px;color:#ad6e42;opacity:.68}
.photo-frame{z-index:1}.round-stamp{z-index:2}
.decor-leaf{width:115px;right:12px;top:34px;color:#648272;opacity:.48;transform-origin:50% 100%;animation:leaf-sway 7s ease-in-out infinite;animation-play-state:paused}
.decor-leaf-story{top:auto;bottom:6px;right:5px;width:120px;opacity:.36;transform:rotate(20deg)}
.festival-card{overflow:hidden}
.decor-sun{right:-15px;top:87px;width:122px;color:var(--yellow);opacity:.2;animation:sun-turn 28s linear infinite;animation-play-state:paused}
.decor-map{width:100%;height:100%;inset:0;color:#6e98a1;opacity:.16}
.decor-yarn{left:0;bottom:15px;width:100%;max-height:280px;color:#b77b4d;opacity:.4}
.is-inview>.decor-leaf,.is-inview>.decor-sun{animation-play-state:running}
.is-inview .yarn-line{animation:unspool 1.8s ease-out both}
.page-hidden .decor{animation-play-state:paused!important}
.journey-scene{min-width:0}
.paw-step{opacity:0;transition:opacity .22s ease}
.paw-print{transform:scale(.55);transform-origin:0 0;transition:transform .26s cubic-bezier(.2,.7,.3,1.4)}
.paw-step.is-printed{opacity:.88}
.paw-step.is-printed .paw-print{transform:scale(1)}
@media(prefers-reduced-motion:no-preference){
 .motion-enabled .reveal-ready{opacity:0;transform:translate3d(0,24px,0);transition:opacity .65s ease,transform .75s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}
 .motion-enabled .reveal-ready.is-visible{opacity:1;transform:translate3d(0,0,0)}
 .press-item:nth-child(2){--reveal-delay:65ms}.press-item:nth-child(3){--reveal-delay:130ms}
}
@keyframes leaf-sway{0%,100%{rotate:-3deg}50%{rotate:3deg}}
@keyframes sun-turn{to{rotate:360deg}}
@keyframes unspool{from{stroke-dasharray:1;stroke-dashoffset:1}to{stroke-dasharray:1;stroke-dashoffset:0}}
@media(max-width:1050px){.decor-hero{width:120px;left:-42px;top:-32px}.decor-leaf{width:92px;right:0}.decor-yarn{bottom:6px}}
@media(max-width:760px){
 .wrap{width:calc(100% - 36px)}
 .header{gap:14px}.header>.button{min-height:44px}
 .header nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding-top:9px}
 .header nav a{display:flex;align-items:center;justify-content:center;text-align:center;min-height:44px;font-size:11px;line-height:1.3;border-bottom:0;padding:4px}
 .hero{padding-top:36px;gap:43px;overflow:clip;padding-left:4px;padding-right:4px}
 .hero-photo{height:clamp(260px,80vw,390px)}
 .hero-art{margin-top:7px;margin-bottom:5px}
 .decor-hero{width:100px;left:-20px;top:-39px;opacity:.55}
 .hero::before{inset:0}
 .section{padding-top:64px;padding-bottom:64px}
 .community-section>.section-heading{padding-right:60px}
 .decor-leaf{width:70px;top:48px;opacity:.34;right:0}
 .decor-leaf-story{top:auto;bottom:-15px;right:0;width:83px;opacity:.25}
 .decor-sun{width:108px;top:88px;right:-14px;opacity:.16}
 .decor-map{opacity:.12}
 .decor-yarn{bottom:2px;left:0;width:100%;opacity:.28}
 .story-photo img{height:clamp(285px,87vw,430px)}
 .story-copy>p:not(.large-copy),.hero-description{font-size:14px;line-height:1.8}
 .journey-stops{row-gap:48px}
 .journey-copy p{font-size:13px;line-height:1.8}
 .journey-copy h3{font-size:clamp(27px,7vw,35px)}
 .journey-location{font-size:10px;flex-wrap:wrap}
 .journey-art{touch-action:manipulation}
 .enlarge-icon{width:30px;height:30px}
 .press-item{--reveal-delay:0ms!important}
 .press-item p,.festival-card>p:not([class]){font-size:13px}
 input,select{font-size:16px;min-height:48px}
 .scene-dialog{width:calc(100vw - 20px);padding:12px;max-height:94dvh}
 .scene-dialog-head{gap:12px}.scene-dialog-head h2{font-size:21px}
 .scene-dialog-head button{width:44px;height:44px}
 .scene-dialog>img{max-height:calc(94dvh - 135px)}
 .source-line a{display:inline-flex;align-items:center;min-height:40px}
 .footer-top>.text-link{min-height:40px;display:flex;align-items:center}
}
@media(max-width:360px){
 .wrap{width:calc(100% - 28px)}.hero h1{font-size:45px}
 .journey-stops{padding-left:40px}.journey-pin,.journey-stop:nth-child(even) .journey-pin{left:-40px}
 .journey-location{font-size:9px}.journey-copy h3{font-size:27px}
 .header nav a{font-size:10px;padding:3px}
 .hero .actions{gap:17px}.hero .actions>.button{padding:12px 20px}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .reveal-ready{opacity:1!important;transform:none!important}
 .paw-step{opacity:.88}.paw-print{transform:none}
}
@media print{.reveal-ready{opacity:1!important;transform:none!important}.paw-step{opacity:.7}.paw-print{transform:none}.decor{animation:none!important}}
