:root{--blue:#0568b7;--deep:#073761;--sky:#eaf7ff;--green:#72af43;--orange:#f47a22;--yellow:#ffc83d;--ink:#24313a;--paper:#fffdf7;--radius:28px;--shadow:0 22px 60px rgba(6,68,110,.13)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:"M PLUS Rounded 1c",sans-serif;background:var(--paper);overflow-x:hidden}.noise{position:fixed;inset:0;pointer-events:none;opacity:.035;z-index:100;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' 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%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}.skip-link{position:fixed;left:10px;top:-50px;z-index:999;background:#fff;padding:10px}.skip-link:focus{top:10px}.site-header{height:84px;display:flex;align-items:center;gap:36px;padding:0 clamp(22px,5vw,80px);position:absolute;z-index:20;width:100%}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);line-height:1.15}.brand-mark{font-size:35px;color:#e74636;text-shadow:12px 0 #2e9c55,-6px 10px #f3b633}.brand strong,.brand small{display:block}.brand small{margin-top:5px;font-size:12px}.desktop-nav{margin-left:auto;display:flex;gap:26px}.desktop-nav a{font-size:13px;color:var(--ink);text-decoration:none;font-weight:700}.desktop-nav a:hover{color:var(--blue)}.header-cta{background:var(--orange);color:white;text-decoration:none;border-radius:999px;padding:13px 20px;font-weight:800;font-size:13px}.menu-button,.mobile-menu{display:none}.hero{min-height:950px;padding:150px clamp(22px,7vw,110px) 80px;background:radial-gradient(circle at 77% 14%,#fff 0 4%,transparent 4.2%),linear-gradient(145deg,#eef9ff 0%,#ccecff 60%,#eaf8e5 100%);position:relative;overflow:hidden}.hero:before{content:"";position:absolute;left:-10%;right:-10%;bottom:150px;height:170px;background:rgba(255,255,255,.78);border-radius:50% 50% 0 0/70% 70% 0 0;transform:rotate(-2deg)}.hero-copy{width:50%;position:relative;z-index:3}.eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.13em;font-weight:800}.eyebrow span{border:1px solid rgba(0,0,0,.15);padding:7px 12px;border-radius:999px;background:#fff8}.eyebrow b{background:#fff;border-radius:999px;padding:7px 12px;color:var(--orange)}h1{font-family:"Zen Maru Gothic",sans-serif;font-size:clamp(46px,6.2vw,91px);line-height:1.17;letter-spacing:-.06em;margin:26px 0 4px;color:#143e62;text-shadow:0 4px white}.orange{color:var(--orange)}.green{color:var(--green)}.hero-name{font-family:"Zen Maru Gothic";font-weight:900;color:var(--blue);font-size:clamp(34px,4vw,64px);margin:0 0 22px;letter-spacing:-.05em}.hero-name span{font-size:1.15em}.lead{line-height:2;font-size:15px;font-weight:700}.hero-actions{display:flex;align-items:center;gap:16px;margin-top:28px}.button{display:inline-flex;align-items:center;gap:16px;padding:17px 24px;border-radius:999px;text-decoration:none;font-weight:800;border:0}.button.primary{background:var(--blue);color:#fff;box-shadow:0 12px 28px rgba(5,104,183,.26)}.sound-button{border:0;background:#fff;border-radius:50%;width:60px;height:60px;display:grid;place-items:center;color:var(--blue);box-shadow:var(--shadow);cursor:pointer}.sound-button span{position:absolute;opacity:0}.hero-visual{position:absolute;right:2%;top:100px;width:min(55vw,720px);height:650px;z-index:2;perspective:1000px;transform-style:preserve-3d}.hero-visual img{width:100%;height:100%;object-fit:cover;border-radius:52% 48% 15% 20%/27% 27% 13% 15%;box-shadow:0 35px 90px rgba(15,92,140,.22);border:9px solid rgba(255,255,255,.55)}.sun-disc{position:absolute;right:3%;top:0;width:118px;height:118px;background:#fff;border-radius:50%;z-index:3;display:grid;place-items:center;color:var(--orange);font-size:28px;font-weight:900;border:2px dashed #70b7e9;transform:rotate(7deg)}.sun-disc small{display:block;font-size:11px}.float-label{position:absolute;background:#fff;padding:9px 13px;border-radius:999px;box-shadow:0 10px 30px #176a9b22;font-weight:900;font-size:11px;animation:float 4s ease-in-out infinite}.label-food{left:0;top:48%;color:var(--orange)}.label-kids{right:0;top:62%;color:#b48c00;animation-delay:-1.2s}.label-med{left:12%;bottom:2%;color:var(--blue);animation-delay:-2.1s}@keyframes float{50%{transform:translateY(-12px) rotate(2deg)}}.hero-orbit{position:absolute;border:1px dashed rgba(5,104,183,.25);border-radius:50%;animation:spin 28s linear infinite}.orbit-a{width:440px;height:440px;right:-130px;top:-90px}.orbit-b{width:230px;height:230px;left:-100px;top:320px;animation-direction:reverse}@keyframes spin{to{transform:rotate(360deg)}}.date-ribbon{position:absolute;z-index:6;left:7%;right:7%;bottom:130px;min-height:135px;background:#fff;border-radius:70px;box-shadow:var(--shadow);display:grid;grid-template-columns:1.2fr 1fr auto;align-items:center;padding:24px 46px;gap:35px}.date-ribbon>div{display:grid;grid-template-columns:auto 1fr;gap:5px 18px;align-items:center}.date-ribbon small{color:var(--blue);font-weight:900}.date-ribbon strong{font-size:20px}.date-ribbon em{font-style:normal;font-size:48px;margin:0 9px}.date-ribbon span{grid-column:2;font-size:14px}.date-ribbon>a{border:1px solid var(--blue);border-radius:999px;padding:14px 20px;color:var(--blue);text-decoration:none;font-size:12px;font-weight:900}.marquee{position:absolute;left:0;bottom:55px;width:100%;transform:rotate(-2deg);background:var(--yellow);padding:10px 0;border-block:2px solid var(--ink);overflow:hidden}.marquee div{white-space:nowrap;font-size:13px;font-weight:900;letter-spacing:.16em;animation:marquee 20s linear infinite}@keyframes marquee{to{transform:translateX(-50%)}}.section{padding:110px clamp(22px,7vw,110px)}.message{background:#fff;position:relative}.section-tag{color:var(--blue);font-weight:900;letter-spacing:.15em;font-size:12px;margin-bottom:38px}.message-grid{display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center}.message-title p{letter-spacing:.18em;font-weight:900;margin:0}.message-title h2{font-size:clamp(55px,8vw,120px);line-height:.86;color:var(--deep);margin:16px 0;letter-spacing:-.07em}.scribble{display:inline-block;background:var(--yellow);padding:8px 18px;transform:rotate(-2deg);font-weight:900}.message-body h3{font-size:clamp(28px,3vw,43px);line-height:1.5;color:var(--deep)}.message-body p{line-height:2.1}.wavy-line{height:35px;margin-top:70px;background:radial-gradient(circle at 12px -4px,transparent 16px,var(--green) 17px 19px,transparent 20px);background-size:34px 32px;opacity:.45}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:45px}.section-heading span{color:var(--orange);font-size:12px;font-weight:900;letter-spacing:.18em}.section-heading h2{font-size:clamp(34px,4vw,60px);margin:10px 0 0;color:var(--deep)}.section-heading p{max-width:360px;line-height:1.8}.ticket-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.ticket{position:relative;min-height:340px;background:#fff;border:1px solid #dce8ec;border-radius:20px;padding:34px 27px;box-shadow:0 12px 0 #dcecf3;transition:.3s;overflow:hidden}.ticket:before,.ticket:after{content:"";position:absolute;width:24px;height:24px;border-radius:50%;background:var(--paper);top:70px}.ticket:before{left:-13px}.ticket:after{right:-13px}.ticket:hover{transform:translateY(-10px) rotate(-1deg);box-shadow:0 22px 0 #dcecf3}.ticket-no{font-size:12px;font-weight:900;color:#79909f}.ticket>i{display:block;font-size:45px;color:var(--blue);margin:35px 0 22px}.ticket:nth-child(2)>i{color:var(--orange)}.ticket:nth-child(3)>i{color:#a27a00}.ticket:nth-child(4)>i{color:var(--green)}.ticket h3{font-size:20px}.ticket p{font-size:14px;line-height:1.8}.ticket span{position:absolute;bottom:24px;background:#eef7fb;padding:7px 11px;border-radius:99px;font-size:11px;font-weight:800}.experience{background:var(--deep);color:white;overflow:hidden}.section-heading.light h2,.section-heading.light p{color:white}.card-track{display:flex;gap:24px;overflow-x:auto;padding:14px 8vw 35px 2px;scroll-snap-type:x mandatory;scrollbar-width:none}.card-track::-webkit-scrollbar{display:none}.program-card{flex:0 0 320px;min-height:420px;border-radius:28px;padding:32px;color:#173245;scroll-snap-align:start;transition:.3s;box-shadow:0 20px 40px #0002}.program-card:hover{transform:translateY(-10px) rotate(1deg)}.program-card.coral{background:#ffb9a3}.program-card.blue{background:#a8ddf5}.program-card.yellow{background:#ffe083}.program-card.green{background:#bfe1a5}.card-icon{width:100%;height:150px;border:2px dashed #17324555;border-radius:20px;display:grid;place-items:center;margin-bottom:28px;background:#ffffff44}.card-icon i{font-size:70px}.program-card small{font-weight:900;letter-spacing:.13em}.program-card h3{font-size:27px;margin:10px 0}.program-card p{line-height:1.8}.program-card button{border:0;background:#fff;border-radius:999px;padding:12px 18px;font-weight:900;margin-top:15px}.drag-hint{text-align:right;letter-spacing:.15em;font-size:11px;color:#9ec4dc}.timeline{background:#fff8df}.timeline-line{display:grid;grid-template-columns:repeat(5,1fr);position:relative;gap:18px}.timeline-line:before{content:"";position:absolute;top:27px;left:2%;right:2%;height:3px;background:repeating-linear-gradient(90deg,var(--blue) 0 12px,transparent 12px 21px)}.time-stop{position:relative;padding-top:67px;text-align:center}.time-stop:before{content:"";position:absolute;width:18px;height:18px;background:var(--orange);border:6px solid white;box-shadow:0 0 0 2px var(--blue);border-radius:50%;top:17px;left:calc(50% - 15px)}.time-stop b{font-size:28px;color:var(--blue)}.time-stop span{display:block;margin-top:12px;font-size:13px;font-weight:800}.access{background:#dff2fb}.access-card{max-width:1200px;margin:auto;background:#fff;border-radius:40px;padding:60px;display:grid;grid-template-columns:1.2fr .8fr;box-shadow:var(--shadow);overflow:hidden;transform-style:preserve-3d}.access-card>div:first-child{transform:translateZ(25px)}.access-card span{color:var(--orange);font-weight:900;letter-spacing:.18em}.access-card h2{font-size:42px;color:var(--deep)}.access-card ul{padding:0;list-style:none;line-height:2.2}.map-art{min-height:310px;background:repeating-radial-gradient(circle at 20% 30%,#fff 0 5px,transparent 6px 35px),#b9e3c1;border-radius:50% 42% 48% 35%;display:grid;place-items:center;color:var(--orange);position:relative}.map-art i{font-size:100px;filter:drop-shadow(0 12px 0 #fff)}.map-art span{position:absolute;color:var(--deep);text-align:center;font-size:14px;transform:translateY(15px)}.faq{background:#fff}.faq-list{max-width:900px;margin:auto}.faq details{border-bottom:1px solid #cbdde6}.faq summary{list-style:none;padding:27px 0;font-size:18px;font-weight:900;display:flex;justify-content:space-between;cursor:pointer}.faq summary::-webkit-details-marker{display:none}.faq details[open] summary i{transform:rotate(45deg)}.faq details p{line-height:1.9;padding:0 0 25px;margin:0;color:#52636e}.faq i{transition:.3s}footer{background:#eff9ff}footer>img{width:100%;height:80px;object-fit:cover;object-position:center}.footer-inner{padding:35px clamp(22px,7vw,110px);display:flex;align-items:center;gap:30px}.footer-inner p{margin-left:auto;font-size:12px}.back-top{width:48px;height:48px;border:1px solid var(--blue);border-radius:50%;display:grid;place-items:center;color:var(--blue)}.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1)}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none;transition:none}}@media(max-width:980px){.desktop-nav,.header-cta{display:none}.menu-button{margin-left:auto;display:grid;width:48px;height:48px;border:0;border-radius:50%;background:#fff;place-content:center;gap:7px;box-shadow:var(--shadow)}.menu-button span{width:22px;height:2px;background:var(--deep)}.mobile-menu{display:flex;position:fixed;z-index:19;top:76px;right:20px;flex-direction:column;background:#fff;border-radius:20px;padding:15px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translateY(-10px)}.mobile-menu.open{opacity:1;pointer-events:auto;transform:none}.mobile-menu a{padding:12px 35px;color:var(--deep);text-decoration:none;font-weight:800}.hero{padding-top:115px;min-height:1120px}.hero-copy{width:100%;max-width:650px}.hero-visual{position:relative;right:auto;top:auto;width:100%;height:450px;margin-top:35px}.date-ribbon{bottom:115px;grid-template-columns:1fr 1fr;padding:25px 30px;border-radius:35px}.date-ribbon>a{grid-column:1/-1;text-align:center}.ticket-grid{grid-template-columns:repeat(2,1fr)}.message-grid{grid-template-columns:1fr}.timeline-line{grid-template-columns:1fr}.timeline-line:before{top:0;bottom:0;left:20px;width:3px;height:auto}.time-stop{text-align:left;padding:0 0 30px 65px}.time-stop:before{left:5px;top:5px}.access-card{grid-template-columns:1fr}.map-art{margin-top:35px}}@media(max-width:620px){.site-header{height:72px;padding:0 18px}.brand strong{font-size:13px}.hero{padding:105px 18px 55px;min-height:1050px}.hero-copy h1{font-size:47px}.hero-name{font-size:35px}.desktop-only{display:none}.hero-visual{height:365px}.date-ribbon{left:18px;right:18px;bottom:100px;grid-template-columns:1fr;padding:22px}.date-ribbon>div{border-bottom:1px dashed #ccdbe2;padding-bottom:12px}.date-ribbon em{font-size:37px}.date-ribbon>a{display:none}.marquee{bottom:35px}.section{padding:75px 20px}.section-heading{display:block}.ticket-grid{grid-template-columns:1fr}.ticket{min-height:280px}.message-title h2{font-size:60px}.program-card{flex-basis:82vw}.access-card{padding:32px 23px}.access-card h2{font-size:29px}.map-art{min-height:240px}.footer-inner{display:grid}.footer-inner p{margin:0}.hero-actions{align-items:stretch}.button{font-size:13px}.sound-button{width:55px;height:55px;flex:0 0 auto}}

/* 2025 information sections */
.desktop-nav{gap:clamp(12px,1.5vw,24px)}
.desktop-nav a{white-space:nowrap}
.upon{background:#fff8df}
.notice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.notice-item{display:grid;grid-template-columns:48px 1fr;gap:18px;align-items:start;background:#fff;border:1px solid #eadfb9;border-radius:20px;padding:25px;box-shadow:0 10px 0 #efe5c5}
.notice-item>i{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#eaf7ff;color:var(--blue);font-size:20px}
.notice-item p{margin:0;line-height:1.9;font-size:14px}
.access-layout{max-width:1200px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}
.access-info,.access-map{background:#fff;border-radius:28px;padding:32px;box-shadow:var(--shadow)}
.access-info h3{margin-top:0;color:var(--deep);font-size:28px}
.access-note{display:flex;gap:12px;align-items:flex-start;background:#fff8df;border-radius:16px;padding:16px;font-weight:800;line-height:1.7}
.access-note i{color:var(--orange);font-size:24px}
.access-map-image{display:block;width:100%;height:auto;margin-top:22px;border-radius:18px}
.access-map iframe{display:block;width:100%;height:400px;border:0;border-radius:18px;margin-bottom:22px}
.contact{background:#fff}
.contact-card{max-width:900px;margin:auto;display:flex;align-items:center;justify-content:center;gap:28px;padding:40px;background:var(--deep);color:#fff;border-radius:32px;box-shadow:var(--shadow)}
.contact-card>i{width:72px;height:72px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--orange);font-size:28px}
.contact-card small,.contact-card a,.contact-card p{display:block}
.contact-card small{font-weight:800}
.contact-card a{margin:6px 0;color:#fff;font-size:clamp(28px,4vw,48px);font-weight:900;text-decoration:none}
.contact-card a:hover{text-decoration:underline}
.contact-card a:focus-visible{outline:3px solid var(--yellow);outline-offset:5px;border-radius:4px}
.contact-card p{margin:0;color:#dcecf7}
@media(max-width:1200px) and (min-width:981px){.site-header{gap:18px;padding-inline:28px}.desktop-nav{gap:13px}.desktop-nav a{font-size:11px}.header-cta{padding:12px 15px}}
@media(max-width:980px){.notice-grid,.access-layout{grid-template-columns:1fr}}
@media(max-width:620px){.notice-item{grid-template-columns:40px 1fr;padding:20px;gap:14px}.notice-item>i{width:40px;height:40px}.access-info,.access-map{padding:22px}.access-map iframe{height:300px}.contact-card{align-items:flex-start;justify-content:flex-start;padding:28px 22px;gap:18px}.contact-card>i{width:52px;height:52px;font-size:20px}.contact-card a{overflow-wrap:anywhere}}
@media(max-width:620px){.contact-card a{font-size:24px;white-space:nowrap}}

/* Fluent UI icons and official Saiseikai branding */
.icon{width:1em;height:1em;display:inline-block;flex:0 0 auto;fill:currentColor;vertical-align:-.125em}
.brand{gap:10px}
.brand-logo{width:clamp(190px,18vw,250px);height:auto;display:block}
.brand>small{display:block;margin-top:0;white-space:nowrap;font-size:11px;font-weight:800;color:var(--blue)}
.header-cta{display:inline-flex;align-items:center;gap:8px}
.header-cta .icon{font-size:18px}
.ticket>.icon{display:block;width:45px;height:45px;color:var(--blue);margin:35px 0 22px}
.ticket:nth-child(2)>.icon{color:var(--orange)}
.ticket:nth-child(3)>.icon{color:#a27a00}
.ticket:nth-child(4)>.icon{color:var(--green)}
.card-icon .icon{width:70px;height:70px}
.program-card button{display:inline-flex;align-items:center;gap:8px}
.faq details[open] summary .icon{transform:rotate(45deg)}
.faq .icon{transition:.3s}
.notice-item>.icon{width:48px;height:48px;border-radius:50%;padding:13px;background:#eaf7ff;color:var(--blue)}
.access-note .icon{width:24px;height:24px;color:var(--orange)}
.contact-card>.icon{width:72px;height:72px;padding:21px;flex:0 0 auto;border-radius:50%;background:var(--orange)}
.back-top .icon{width:22px;height:22px}

/* Area guide and food booths */
.area-info{background:#fffaf1}
.area-map{margin:38px 0 44px}
.area-map img{width:100%;display:block;border:3px solid var(--ink);border-radius:24px;box-shadow:8px 8px 0 var(--ink)}
.area-map figcaption{margin-top:14px;text-align:center;font-size:13px;font-weight:700;color:#52636e}
.area-grid,.food-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.area-scroll-hint{display:none}
.area-card,.food-card{border:2px solid var(--ink);border-radius:22px;background:#fff;box-shadow:5px 5px 0 var(--ink);transition:transform .25s ease,box-shadow .25s ease}
.area-card:hover{transform:translateY(-4px);box-shadow:5px 9px 0 var(--ink)}
.food-card:hover{transform:translate(-2px,-4px);box-shadow:8px 9px 0 var(--ink)}
.area-card{padding:24px;min-width:0}
.area-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.area-card-head .icon{width:34px;height:34px;color:var(--orange)}
.area-number{font-size:12px;font-weight:900;letter-spacing:.12em;color:var(--blue)}
.area-card h3,.food-card h3{margin:14px 0 8px;color:var(--deep);line-height:1.4}
.area-card h3{font-size:23px}
.area-card ul{margin:0;padding-left:1.2em;font-size:13px;line-height:1.7}
.area-card li+li{margin-top:6px}
.area-card:nth-child(4n+2) .area-card-head .icon{color:var(--blue)}
.area-card:nth-child(4n+3) .area-card-head .icon{color:var(--green)}
.area-card:nth-child(4n) .area-card-head .icon{color:#a27a00}
.food-booth{background:var(--yellow)}
.food-grid{align-items:stretch}
.food-card{display:flex;gap:16px;align-items:flex-start;padding:22px;min-width:0;background:#fffdf7}
.food-card>.icon{width:40px;height:40px;padding:8px;border-radius:12px;color:#fff;background:var(--orange)}
.food-card div{min-width:0}
.food-card h3{margin-top:0;font-size:18px;overflow-wrap:anywhere}
.food-card p{margin:0;font-size:13px;line-height:1.7;color:#52636e}

@media(max-width:1200px) and (min-width:981px){
  .brand-logo{width:190px}
  .brand>small{display:none}
}
@media(max-width:980px){
  .header-cta{display:none}
  .area-grid,.food-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .brand-logo{width:min(62vw,220px)}
  .brand>small{display:none}
  .food-grid{grid-template-columns:1fr}
  .area-scroll-hint{display:flex;margin:0 0 14px;color:var(--blue);font-size:13px;font-weight:900;align-items:center;gap:8px}
  .area-scroll-hint .icon{width:22px;height:22px}
  .area-grid{display:flex;margin-inline:-20px;padding:5px 20px 18px;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:20px;overscroll-behavior-inline:contain;scrollbar-width:none}
  .area-grid::-webkit-scrollbar{display:none}
  .area-grid:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
  .area-card{flex:0 0 84vw;scroll-snap-align:start}
  .area-map{margin:28px 0 34px}
  .area-map img{border-radius:16px;box-shadow:5px 5px 0 var(--ink)}
  .area-card,.food-card{box-shadow:4px 4px 0 var(--ink)}
  .notice-item>.icon{width:40px;height:40px;padding:10px}
  .contact-card>.icon{width:52px;height:52px;padding:15px}
}

/* Featured news */
.featured-news{padding-block:72px;background:var(--sky)}
.featured-news .section-heading{align-items:center}
.featured-status{display:flex;max-width:400px;padding:15px 18px;border-left:5px solid var(--yellow);background:#fff;box-shadow:0 8px 24px #07376112;flex-direction:column;gap:4px;line-height:1.55}
.featured-status strong{color:var(--orange);font-size:13px}
.featured-status span{font-size:13px;font-weight:700}
.featured-layout{display:grid;gap:24px}
.featured-lead{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr);height:330px;min-height:330px;overflow:hidden;border:2px solid var(--deep);background:#fff;box-shadow:8px 8px 0 var(--deep)}
.featured-lead__media{position:relative;min-width:0;overflow:hidden;background:#dcecf3}
.featured-lead__media img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .45s ease}
.featured-lead:hover .featured-lead__media img{transform:scale(1.018)}
.featured-badge{position:absolute;top:24px;left:24px;display:inline-block;padding:9px 14px;border:2px solid var(--ink);border-radius:999px;background:var(--yellow);color:var(--ink);font-weight:900;transform:rotate(-2deg);box-shadow:3px 3px 0 var(--ink)}
.featured-lead__copy{display:flex;padding:clamp(26px,3.5vw,48px);align-items:flex-start;justify-content:center;flex-direction:column}
.featured-kicker{margin:0 0 14px;color:var(--orange);font-size:11px;font-weight:900;letter-spacing:.18em}
.featured-lead__copy h3{margin:0 0 18px;color:var(--deep);font-family:"Zen Maru Gothic",sans-serif;font-size:clamp(30px,3.4vw,44px);line-height:1.08;letter-spacing:-.045em}
.featured-lead__copy>p:not(.featured-kicker){margin:0 0 18px;font-size:15px;font-weight:700;line-height:1.75}
.featured-meta{display:inline-block;color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.06em}
.featured-briefs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.featured-brief{display:grid;grid-template-columns:minmax(120px,34%) 1fr;min-height:150px;overflow:hidden;border:1px solid #bfd9e9;background:#fff;box-shadow:0 10px 28px #07376110}
.featured-brief>img,.featured-brief__icon{width:100%;height:100%;min-height:150px}
.featured-brief>img{display:block;object-fit:cover}
.featured-brief__icon{display:grid;place-items:center;background:var(--yellow);color:var(--deep)}
.featured-brief__icon .icon{width:56px;height:56px}
.featured-brief>div:last-child{display:flex;padding:19px 22px;justify-content:center;flex-direction:column}
.featured-brief h3{margin:7px 0 5px;color:var(--deep);font-size:clamp(18px,1.6vw,23px);line-height:1.35}
.featured-brief p{margin:0;font-size:14px;font-weight:700;line-height:1.65}
@media(max-width:980px){
  .featured-lead{grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);height:340px;min-height:340px}
  .featured-lead__copy{padding:30px}
  .featured-brief{grid-template-columns:120px 1fr}
  .featured-brief>div:last-child{padding:19px}
}
@media(max-width:640px){
  .featured-news{padding-block:56px}
  .featured-news .section-heading{display:block}
  .featured-status{margin-top:24px}
  .featured-lead{grid-template-columns:1fr;height:auto;min-height:0}
  .featured-lead__media{aspect-ratio:16/9}
  .featured-lead__copy{padding:25px 22px 28px}
  .featured-lead__copy h3{font-size:32px}
  .featured-badge{top:16px;left:16px}
  .featured-briefs{grid-template-columns:1fr;gap:14px}
  .featured-brief{grid-template-columns:104px 1fr;min-height:136px}
  .featured-brief>img,.featured-brief__icon{min-height:136px}
  .featured-brief__icon .icon{width:52px;height:52px}
  .featured-brief>div:last-child{padding:18px 17px}
  .featured-brief h3{font-size:20px}
  .featured-brief p{font-size:16px}
  .featured-news .featured-meta{font-size:16px;letter-spacing:0}
  .featured-status strong,.featured-status span{font-size:16px}
}

/* Stage program */
.stage-program{background:var(--deep);color:#fff}
.stage-program .section-heading p,.stage-program .section-heading strong{color:#fff}
.stage-program .section-heading strong{display:inline-block;margin-bottom:5px;color:var(--yellow)}
.stage-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
.stage-period h3{display:flex;align-items:baseline;gap:10px;margin:0 0 24px;color:var(--yellow);font-size:28px}
.stage-period h3 small{font-size:12px;letter-spacing:.16em}
.stage-list{position:relative}
.stage-list:before{content:"";position:absolute;top:16px;bottom:16px;left:43px;border-left:2px dashed #6ba9d5}
.stage-item{position:relative;display:grid;grid-template-columns:86px 1fr;gap:18px;padding-bottom:20px}
.stage-item time{position:relative;z-index:1;align-self:start;padding:8px 0;border-radius:999px;background:var(--yellow);color:var(--deep);text-align:center;font-size:16px;font-weight:900}
.stage-item>div{padding:18px 20px;border-radius:18px;background:#fff;color:var(--ink);box-shadow:0 8px 0 #021f39}
.stage-item h4{margin:0 0 5px;color:var(--deep);font-size:18px;line-height:1.45}
.stage-item p{margin:0 0 10px;font-size:13px;line-height:1.7}
.stage-item span{font-size:11px;font-weight:900;color:var(--blue)}
@media(max-width:640px){
  .stage-columns{grid-template-columns:1fr;gap:36px}
  .stage-item{grid-template-columns:74px 1fr;gap:13px}
  .stage-list:before{left:36px}
  .stage-item>div{padding:16px}
}

/* Fair purpose and continuous photo loop */
.fair-purpose{overflow:hidden;background:#fff}
.fair-purpose__body{padding-bottom:78px}
.fair-purpose__eyebrow{margin:0 0 52px;color:var(--orange);font-size:12px;font-weight:900;letter-spacing:.16em}
.fair-purpose__grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:clamp(55px,10vw,150px);align-items:start}
.fair-purpose__title h2{margin:0;color:var(--deep);font-family:"Zen Maru Gothic",sans-serif;font-size:clamp(58px,8vw,116px);line-height:.96;letter-spacing:-.07em}
.fair-purpose__title h2 span{display:block}
.fair-purpose__message{max-width:690px;padding-top:12px}
.fair-purpose__lead{margin:0 0 28px;color:var(--deep);font-family:"Zen Maru Gothic",sans-serif;font-size:clamp(26px,3vw,42px);font-weight:900;line-height:1.55}
.fair-purpose__message>p:not(.fair-purpose__lead){margin:0 0 18px;font-size:16px;font-weight:700;line-height:2}
.fair-purpose__keywords{display:flex;margin:36px 0 0;padding:0;list-style:none;gap:10px;flex-wrap:wrap}
.fair-purpose__keywords li{display:flex;padding:12px 16px;border:1px solid var(--blue);color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.12em;align-items:baseline;gap:8px}
.fair-purpose__keywords span{color:var(--ink);font-size:12px;letter-spacing:0}
.purpose-loop{position:relative;height:260px;overflow:hidden;background:var(--deep)}
.purpose-loop:before,.purpose-loop:after{content:"";position:absolute;z-index:2;top:0;bottom:0;width:clamp(24px,7vw,110px);pointer-events:none}
.purpose-loop:before{left:0;background:linear-gradient(90deg,var(--deep),transparent)}
.purpose-loop:after{right:0;background:linear-gradient(270deg,var(--deep),transparent)}
.purpose-loop__track{display:flex;width:max-content;padding:20px 0;will-change:transform;animation:purpose-photo-loop 90s linear infinite}
.purpose-loop__set{display:flex;padding-right:14px;gap:14px;flex:none;align-items:center}
.purpose-loop__photo{width:300px;height:220px;margin:0;overflow:hidden;border:4px solid #fff;background:#dcecf3;flex:none;transform:translateY(6px)}
.purpose-loop__photo:nth-child(3n+1){width:365px;transform:translateY(-8px)}
.purpose-loop__photo:nth-child(3n+2){width:255px;transform:translateY(15px)}
.purpose-loop__photo img{width:100%;height:100%;display:block;object-fit:cover}
@keyframes purpose-photo-loop{to{transform:translate3d(-50%,0,0)}}
@media(max-width:980px){
  .fair-purpose__grid{grid-template-columns:1fr;gap:44px}
  .fair-purpose__message{padding-top:0}
}
@media(max-width:640px){
  .fair-purpose__body{padding-bottom:52px}
  .fair-purpose__eyebrow{margin-bottom:34px}
  .fair-purpose__grid{gap:35px}
  .fair-purpose__title h2{font-size:64px}
  .fair-purpose__lead{font-size:27px}
  .fair-purpose__message>p:not(.fair-purpose__lead){font-size:16px;line-height:1.9}
  .fair-purpose__keywords{margin-top:28px}
  .fair-purpose__keywords li{padding:10px 12px}
  .purpose-loop{height:150px}
  .purpose-loop__track{padding:12px 0}
  .purpose-loop__set{padding-right:10px;gap:10px}
  .purpose-loop__photo,.purpose-loop__photo:nth-child(3n+1),.purpose-loop__photo:nth-child(3n+2){width:190px;height:126px;border-width:3px;transform:none}
}
@media(prefers-reduced-motion:reduce){
  .purpose-loop__track{animation:none;transform:none}
}

/* Footer social */
.footer-social{display:flex;align-items:center;gap:16px}
.footer-social>h2{margin:0;color:var(--deep);font-family:inherit;font-size:12px;white-space:nowrap}
.footer-social__links{display:flex;gap:8px}
.footer-social a{display:inline-flex;min-height:44px;padding:9px 12px;border:1px solid #bfd9e9;background:#fff;color:var(--ink);text-decoration:none;font-size:12px;font-weight:900;align-items:center;gap:7px;transition:transform .2s ease,box-shadow .2s ease}
.footer-social a:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0568b71c}
.footer-social a:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.footer-social img{width:20px;height:20px}
.footer-social a:nth-child(1) img{filter:invert(35%) sepia(90%) saturate(1838%) hue-rotate(307deg) brightness(92%) contrast(92%)}
.footer-social a:nth-child(3) img{filter:invert(35%) sepia(95%) saturate(1316%) hue-rotate(191deg) brightness(88%) contrast(101%)}
.footer-inner{flex-wrap:wrap}
.footer-inner>p{margin-left:auto}
@media(max-width:1280px){
  .desktop-nav{gap:15px}
  .desktop-nav a{font-size:12px}
}
@media(max-width:760px){
  .footer-social{width:100%;align-items:flex-start;flex-direction:column}
  .footer-social__links{width:100%;flex-wrap:wrap}
  .footer-inner>p{margin:0}
}
@media(max-width:420px){
  .footer-social__links{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .footer-social a{justify-content:center}
  .footer-social a:first-child{grid-column:1/-1}
}

/* Festival hero redesign */
.hero-decor{position:absolute;z-index:2;inset:0;pointer-events:none}
.festival-sun{position:absolute;top:92px;right:clamp(38px,7vw,112px);width:174px;aspect-ratio:1;animation:sun-turn 56s linear infinite}
.sun-core{position:absolute;inset:42px;border-radius:48% 52% 46% 54%;background:var(--orange);box-shadow:inset 4px -5px 0 #d85c16}
.sun-rays{position:absolute;inset:0}
.sun-ray{position:absolute;top:3px;left:calc(50% - 3px);width:6px;height:28px;border-radius:999px;background:var(--orange);transform-origin:3px 84px}
.sun-ray:nth-child(2n){height:20px;top:7px}
.sun-ray:nth-child(1){transform:rotate(0deg)}
.sun-ray:nth-child(2){transform:rotate(22.5deg)}
.sun-ray:nth-child(3){transform:rotate(45deg)}
.sun-ray:nth-child(4){transform:rotate(67.5deg)}
.sun-ray:nth-child(5){transform:rotate(90deg)}
.sun-ray:nth-child(6){transform:rotate(112.5deg)}
.sun-ray:nth-child(7){transform:rotate(135deg)}
.sun-ray:nth-child(8){transform:rotate(157.5deg)}
.sun-ray:nth-child(9){transform:rotate(180deg)}
.sun-ray:nth-child(10){transform:rotate(202.5deg)}
.sun-ray:nth-child(11){transform:rotate(225deg)}
.sun-ray:nth-child(12){transform:rotate(247.5deg)}
.sun-ray:nth-child(13){transform:rotate(270deg)}
.sun-ray:nth-child(14){transform:rotate(292.5deg)}
.sun-ray:nth-child(15){transform:rotate(315deg)}
.sun-ray:nth-child(16){transform:rotate(337.5deg)}
@keyframes sun-turn{to{transform:rotate(360deg)}}
.balloons{position:absolute;top:190px;right:clamp(65px,15vw,240px);width:250px;height:280px}
.balloon{position:absolute;width:58px;height:72px;border-radius:52% 48% 48% 52%/58% 58% 42% 42%;box-shadow:inset -7px -9px 0 #00000012}
.balloon:before{content:"";position:absolute;left:25px;bottom:-8px;border:5px solid transparent;border-top-color:currentColor}
.balloon:after{content:"";position:absolute;left:29px;top:72px;width:1px;height:105px;background:#52636e80;transform:rotate(4deg);transform-origin:top}
.balloon-a{top:15px;left:25px;color:var(--yellow);background:var(--yellow);animation:balloon-float 9s ease-in-out infinite}
.balloon-b{top:75px;right:25px;color:var(--blue);background:var(--blue);animation:balloon-float 12s ease-in-out infinite reverse}
.balloon-c{top:145px;left:100px;color:var(--green);background:var(--green);animation:balloon-float 10.5s ease-in-out infinite -3s}
@keyframes balloon-float{50%{transform:translate(7px,-15px) rotate(2deg)}}
.garland{position:relative;z-index:4;height:58px;overflow:hidden;pointer-events:none}
.garland__line{position:absolute;top:5px;left:-2%;width:104%;height:32px;border-bottom:2px solid var(--deep);border-radius:0 0 50% 50%}
.garland__flag{position:relative;display:inline-block;top:28px;width:0;height:0;margin-left:clamp(13px,2.5vw,40px);border-left:11px solid transparent;border-right:11px solid transparent;border-top:24px solid var(--orange);transform-origin:50% -18px;animation:flag-sway 5s ease-in-out infinite alternate}
.garland__flag:nth-of-type(4n+2){border-top-color:var(--yellow);animation-delay:-1s}
.garland__flag:nth-of-type(4n+3){border-top-color:var(--blue);animation-delay:-2s}
.garland__flag:nth-of-type(4n){border-top-color:var(--green);animation-delay:-3s}
@keyframes flag-sway{to{transform:rotate(1.5deg)}}
.stage-program>.garland,.food-booth>.garland{margin:-110px calc(50% - 50vw) 52px}

.hero{display:flex;min-height:800px;padding:132px clamp(22px,7vw,110px) 46px;flex-direction:column;background:#eef9ff;isolation:isolate}
.hero:before{content:"";z-index:1;inset:0;height:auto;border-radius:0;background:linear-gradient(90deg,#eef9fff5 0%,#eef9ffdd 35%,#eef9ff5c 62%,transparent 82%);transform:none;pointer-events:none}
.hero-media{position:absolute;z-index:0;inset:0;background-color:#d9eef8;background-image:linear-gradient(135deg,#d9eef8 0%,#f5fbff 48%,#dff1e2 100%);background-position:center;background-size:cover}
.hero-media__placeholder{position:absolute;inset:112px 5.5% 170px auto;left:calc(clamp(22px,7vw,110px) + min(620px,48vw) + 32px);display:grid;border:2px dashed #0568b766;color:var(--blue);place-content:center;text-align:center;letter-spacing:.14em}
.hero-media__placeholder strong{font-size:20px}
.hero-media__placeholder span{margin-top:8px;font-size:11px;font-weight:900}
.hero-copy{position:relative;z-index:3;width:100%;max-width:620px}
.hero-copy h1{font-size:clamp(50px,5.7vw,82px)}
.hero-cta{margin-top:28px}
.hero-info-wrap{position:relative;z-index:5;width:100%;margin-top:48px}
.hero-info-bar{display:grid;grid-template-columns:1fr 1fr minmax(220px,.7fr);min-height:118px;border:2px solid var(--deep);background:#fff;box-shadow:7px 7px 0 var(--deep);align-items:stretch}
.hero-info-item,.hero-access{display:grid;padding:21px 26px;align-content:center}
.hero-info-item+.hero-info-item,.hero-access{border-left:1px dashed #aac4d3}
.hero-info-item small,.hero-access small{color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.1em}
.hero-info-item strong{margin-top:3px;color:var(--deep);font-size:18px}
.hero-info-item em{color:var(--orange);font-style:normal;font-size:34px}
.hero-info-item span{font-size:12px;font-weight:700}
.hero-access{color:var(--deep);text-decoration:none;grid-template-columns:1fr auto}
.hero-access small{grid-column:1/-1}
.hero-access strong{font-size:17px}
.hero-access .icon{align-self:center;color:var(--orange);font-size:23px}
.hero-access:focus-visible,.hero-cta:focus-visible{outline:3px solid var(--orange);outline-offset:4px}

@media(max-width:980px){
  .hero{min-height:920px;padding-top:108px}
  .hero-copy{max-width:min(620px,58%)}
  .hero-media__placeholder{inset:105px 4% 205px auto;left:66%}
  .festival-sun{width:140px;top:82px}
  .balloons{transform:scale(.8);transform-origin:top right}
  .hero-info-bar{grid-template-columns:1fr 1fr}
  .hero-access{grid-column:1/-1;border-top:1px dashed #aac4d3;border-left:0}
}

@media(max-width:640px){
  .hero{display:grid;min-height:0;padding:72px 0 0;background:#eef9ff;grid-template-columns:1fr}
  .hero:before{display:none}
  .hero-media{position:relative;inset:auto;aspect-ratio:16/10;grid-row:1}
  .hero-media__placeholder{inset:32px 20px 26px}
  .hero-copy{max-width:none;padding:38px 20px 30px;background:#eef9ff;grid-row:2}
  .hero-copy h1{font-size:clamp(38px,11vw,46px)}
  .hero-name{font-size:32px}
  .hero-copy .lead{font-size:15px;line-height:1.8}
  .hero-cta{margin-top:24px}
  .hero-decor{inset:72px 0 auto;height:234px}
  .festival-sun{top:16px;right:15px;width:108px}
  .sun-core{inset:27px}
  .sun-ray{left:calc(50% - 2px);width:4px;height:18px;transform-origin:2px 52px}
  .sun-ray:nth-child(2n){height:13px;top:5px}
  .balloons{top:75px;right:68px;width:150px;height:150px;transform:scale(.64)}
  .balloon-c{display:none}
  .garland{height:45px}
  .hero-info-wrap{padding:0 20px 42px;margin-top:0;background:#eef9ff}
  .hero-info-bar{grid-template-columns:1fr}
  .hero-info-item,.hero-access{padding:18px 20px}
  .hero-info-item+.hero-info-item,.hero-access{border-top:1px dashed #aac4d3;border-left:0}
  .hero-access{grid-column:auto}
  .stage-program>.garland,.food-booth>.garland{margin:-75px calc(50% - 50vw) 40px}
}

@media(prefers-reduced-motion:reduce){
  .festival-sun,.balloon,.garland__flag{animation:none;transform:none}
}

@media(min-width:621px) and (max-width:640px){
  .hero{padding-top:84px}
  .hero-decor{inset:84px 0 auto}
}

/* Family hero copy and one-shot balloon departure */
.hero-copy h1{display:grid;gap:2px;margin-bottom:14px;letter-spacing:-.065em}
.hero-title__hospital,.hero-title__main{display:block}
.hero-title__hospital{color:var(--blue);font-size:.78em}
.hero-title__main{white-space:nowrap}
.hero-title__yellow{color:#e3aa00}
.hero-title__pink{color:#f25c82}
.hero-tagline{margin:0 0 18px;color:var(--deep);font-size:clamp(17px,1.7vw,23px);font-weight:900;letter-spacing:.02em}
.hero-info-item--date em{font-size:44px;line-height:1}
.hero-info-item--date>span{font-size:16px;font-weight:900}
.balloon-a{animation:balloon-depart-a 4.5s 1.8s cubic-bezier(.28,.15,.3,1) forwards}
.balloon-b{animation:balloon-depart-b 4.5s 2.05s cubic-bezier(.28,.15,.3,1) forwards}
.balloon-c{animation:balloon-depart-c 4.5s 2.3s cubic-bezier(.28,.15,.3,1) forwards}
@keyframes balloon-depart-a{to{transform:translate(-18vw,-125vh) rotate(-12deg);opacity:0}}
@keyframes balloon-depart-b{to{transform:translate(12vw,-130vh) rotate(14deg);opacity:0}}
@keyframes balloon-depart-c{to{transform:translate(-4vw,-128vh) rotate(-8deg);opacity:0}}
@media(max-width:640px){
  .hero-title__main{white-space:normal}
  .hero-title__yellow,.hero-title__pink{display:inline}
  .hero-info-item--date em{font-size:40px}
}
@media(prefers-reduced-motion:reduce){
  .balloons{display:none}
}

/* Replaceable 2025 food booth photography */
.food-card{display:block;padding:0;overflow:hidden}
.food-card__media{aspect-ratio:4/3;overflow:hidden;background:#dcecf3}
.food-card__media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.food-card:hover .food-card__media img{transform:scale(1.025)}
.food-card__body{padding:18px 20px 22px}
.food-card__body h3{margin:0 0 7px}
.food-photo-note{font-size:12px;font-weight:800}
.food-photo-note strong{color:var(--orange)}
.food-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:980px){
  .food-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .food-grid>.food-card:last-child:nth-child(odd){grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center}
}
@media(max-width:640px){
  .food-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .food-card,.food-card:hover{box-shadow:3px 3px 0 var(--ink);border-radius:16px}
  .food-card:hover{transform:none}
  .food-card__body{padding:10px 12px 13px}
  .food-card__body h3{margin-bottom:4px;font-size:14px;line-height:1.4}
  .food-card__body p{font-size:12px;line-height:1.5}
  .food-grid>.food-card:last-child:nth-child(odd){grid-template-columns:calc(50% - 7px) 1fr;gap:0}
}

/* Compact scalable news archive and manual Instagram feed */
.featured-news{padding-block:58px}
.featured-layout{display:block}
.featured-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.featured-card{display:flex;position:relative;min-height:132px;overflow:hidden;border:1px solid #bfd9e9;background:#fff;box-shadow:0 6px 18px #0737610d}
.featured-card__media{width:140px;flex:none;overflow:hidden;background:#dcecf3}
.featured-card__media img{width:100%;height:100%;display:block;object-fit:cover}
.featured-card__media--icon{display:grid;place-items:center;background:var(--yellow);color:var(--deep)}
.featured-card__media--icon .icon{width:52px;height:52px}
.featured-card__body{display:flex;min-width:0;padding:17px 19px;justify-content:center;flex-direction:column}
.featured-card h3{margin:5px 0 4px;color:var(--deep);font-size:19px;line-height:1.3}
.featured-card p{margin:0;font-size:13px;line-height:1.55}
.featured-pin{position:absolute;z-index:2;top:8px;right:8px;padding:4px 9px;border:1px solid var(--deep);border-radius:999px;background:var(--yellow);color:var(--deep);font-size:10px;font-weight:900;line-height:1}

/* Editorial notes beside section headings */
.section-callout{position:relative;max-width:350px;margin:0 0 4px;padding:4px 0 4px 18px;border:0;border-left:4px solid var(--orange);border-radius:0;background:transparent;box-shadow:none;color:#385269;font-size:13px;font-weight:700;line-height:1.75;text-wrap:pretty;transform:none}
.section-callout span{color:inherit;font-size:inherit;font-weight:inherit;letter-spacing:normal}
.section-callout__label{display:inline-block;margin:0 8px 5px 0;padding:3px 8px;border-radius:999px;background:#fff1cf;color:#9c460c;font-size:10px;font-weight:900;letter-spacing:.06em;line-height:1.5}
.section-heading.light .section-callout{border-left-color:var(--yellow);background:transparent;color:#fff;box-shadow:none}
.section-heading.light .section-callout__label{background:var(--yellow);color:var(--deep)}
.featured-more{margin-top:16px}
.featured-more>summary{display:flex;min-height:48px;padding:12px 18px;border:1px solid var(--blue);background:#fff;color:var(--blue);font-weight:900;cursor:pointer;align-items:center;justify-content:center;gap:9px}
.featured-more>summary .icon{width:18px;height:18px}
.featured-more>.featured-grid{margin-top:14px}
.instagram-feed{margin-top:44px;padding-top:30px;border-top:1px dashed #8bb6cf}
.instagram-feed__head{display:flex;margin-bottom:18px;align-items:end;justify-content:space-between;gap:20px}
.instagram-feed__head span{color:var(--orange);font-size:11px;font-weight:900;letter-spacing:.16em}
.instagram-feed__head h3{margin:6px 0 0;color:var(--deep);font-size:28px}
.instagram-feed__head a{color:var(--blue);font-size:13px;font-weight:900}
.instagram-grid{display:grid;grid-template-columns:repeat(3,minmax(0,240px));gap:20px;justify-content:center}
.instagram-card{display:grid;width:min(240px,100%);padding:10px;border:1px solid #bfd9e9;background:#fff;color:var(--ink);text-decoration:none;box-shadow:0 8px 22px #07376110;grid-template-columns:1fr auto}
.instagram-card img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;grid-column:1/-1}
.instagram-card span{grid-column:1/-1;margin-top:10px;color:var(--orange);font-size:10px;font-weight:900}
.instagram-card time{margin-top:5px;color:#667985;font-size:11px}
.instagram-card p{grid-column:1/-1;margin:7px 0 3px;font-size:13px;line-height:1.55}
@media(max-width:640px){
  .featured-grid{grid-template-columns:1fr}
  .featured-card{min-height:120px}
  .featured-card__media{width:104px}
  .featured-card__body{padding:14px}
  .featured-card h3{font-size:17px}
  .featured-card p{font-size:12px}
  .instagram-feed__head{align-items:start;flex-direction:column}
  .instagram-grid{display:flex;overflow-x:auto;justify-content:flex-start;scroll-snap-type:x mandatory}
  .instagram-card{width:min(240px,78vw);min-width:0;flex:0 0 min(240px,78vw);scroll-snap-align:start}
  .section-callout{width:100%;max-width:none;margin:20px 0 4px;padding:14px 0 0;border-top:2px solid var(--orange);border-left:0;transform:none}
  .section-heading.light .section-callout{border-top-color:var(--yellow);border-left:0}
}

/* Search and generative-engine readable event summary */
.event-summary{position:relative;z-index:5;max-width:980px;margin:24px auto 0;color:#385269;font-size:13px;font-weight:700;line-height:1.8;text-align:center}
@media(max-width:640px){
  .event-summary{margin:0;padding:0 20px 34px;text-align:left}
  .hero-copy h1{font-size:clamp(36px,10.2vw,42px)}
  .hero-title__pink{display:inline-block}
}

/* One-time hero assembly */
.hero-intro--playing [data-hero-part]{will-change:opacity,transform,clip-path}
.hero-intro--playing [data-hero-part="media"]{animation:hero-assemble-media .72s .04s cubic-bezier(.22,1,.36,1) both}
.hero-intro--playing [data-hero-part="garland"]{animation:hero-assemble-drop .58s .12s cubic-bezier(.22,1,.36,1) both}
.hero-intro--playing [data-hero-part="sun"]{animation:hero-assemble-pop .78s .18s cubic-bezier(.2,1.25,.32,1) both}
.hero-intro--playing [data-hero-part="balloons"]{animation:hero-assemble-pop .72s .26s cubic-bezier(.2,1.2,.32,1) both}
.hero-intro--playing [data-hero-part="badge"]{animation:hero-assemble-from-left .5s .3s cubic-bezier(.22,1,.36,1) both}
.hero-intro--playing [data-hero-part="title-hospital"]{animation:hero-assemble-from-left .62s .38s cubic-bezier(.22,1,.36,1) both}
.hero-intro--playing [data-hero-part="title-main"]{animation:hero-assemble-from-right .66s .46s cubic-bezier(.22,1,.36,1) both}
.hero-intro--playing [data-hero-part="event-name"]{animation:hero-assemble-rise .54s .58s cubic-bezier(.22,1,.36,1) both}
.hero-intro--playing [data-hero-part="tagline"]{animation:hero-assemble-from-left .5s .68s cubic-bezier(.22,1,.36,1) both}
.hero-intro--playing [data-hero-part="lead"]{animation:hero-assemble-rise .48s .76s cubic-bezier(.22,1,.36,1) both}
.hero-intro--playing [data-hero-part="cta"]{animation:hero-assemble-pop .52s .84s cubic-bezier(.2,1.25,.32,1) both}
.hero-intro--playing [data-hero-part="info"]{animation:hero-assemble-info .62s .94s cubic-bezier(.22,1,.36,1) both}
@keyframes hero-assemble-media{from{opacity:.25;clip-path:inset(0 0 0 48%);transform:translate3d(8vw,0,0) scale(1.06)}to{opacity:1;clip-path:inset(0);transform:none}}
@keyframes hero-assemble-drop{from{opacity:0;transform:translate3d(0,-90px,0) rotate(-2deg)}to{opacity:1;transform:none}}
@keyframes hero-assemble-from-left{from{opacity:0;transform:translate3d(-14vw,18px,0) rotate(-4deg)}to{opacity:1;transform:none}}
@keyframes hero-assemble-from-right{from{opacity:0;transform:translate3d(14vw,-12px,0) rotate(3deg)}to{opacity:1;transform:none}}
@keyframes hero-assemble-rise{from{opacity:0;transform:translate3d(0,58px,0)}to{opacity:1;transform:none}}
@keyframes hero-assemble-pop{from{opacity:0;transform:translate3d(13vw,-10vh,0) rotate(-18deg) scale(.52)}75%{opacity:1;transform:translate3d(-5px,4px,0) rotate(2deg) scale(1.04)}to{opacity:1;transform:none}}
@keyframes hero-assemble-info{from{opacity:0;transform:translate3d(0,130px,0) rotate(.8deg)}to{opacity:1;transform:none}}
@media(max-width:640px){
  .hero-intro--playing [data-hero-part="media"]{animation-delay:.03s}
  .hero-intro--playing [data-hero-part="title-hospital"]{animation-delay:.32s}
  .hero-intro--playing [data-hero-part="title-main"]{animation-delay:.4s}
  @keyframes hero-assemble-from-left{from{opacity:0;transform:translate3d(-22vw,12px,0) rotate(-3deg)}to{opacity:1;transform:none}}
  @keyframes hero-assemble-from-right{from{opacity:0;transform:translate3d(22vw,-8px,0) rotate(2deg)}to{opacity:1;transform:none}}
}
@media(prefers-reduced-motion:reduce){
  .hero-intro--playing [data-hero-part]{animation:none!important;opacity:1;clip-path:none;transform:none}
}

/* ========== 楽しみ方ガイド（フリップカード） ========== */
.flip-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:24px;
}

.flip-card{
  perspective:1400px;
  min-height:480px;
  cursor:pointer;
}

.flip-card-inner{
  position:relative;
  width:100%;
  height:100%;
  min-height:480px;
  transform-style:preserve-3d;
  transition:transform .8s cubic-bezier(.4,.2,.2,1);
}

.flip-card.is-flipped .flip-card-inner{
  transform:rotateY(180deg);
}

.flip-face{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  padding:26px 24px;
  border-radius:32px;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}

/* ---------- 表面 ---------- */
.flip-front{
  background:#fff;
  border:2px solid #e5eff8;
  box-shadow:0 15px 35px rgba(33,86,150,.08);
  color:#244166;
  align-items:flex-start;
}

.flip-front .icon{
  width:60px;
  height:60px;
  color:#4b8de3;
  margin-top:18px;
}

.ticket-no{
  position:absolute;
  top:18px;
  right:22px;
  font-size:3rem;
  font-weight:900;
  color:#d9e8f5;
  line-height:1;
}

.flip-front h3{
  margin:16px 0 10px;
  font-size:1.35rem;
}

.flip-front > p{
  margin:0;
  line-height:1.7;
}

.flip-front > span{
  margin-top:auto;
  font-weight:700;
  color:#4b8de3;
}

.flip-hint{
  margin-top:12px;
  font-size:.8rem;
  color:#8aa6c4;
}

/* ---------- 裏面 ---------- */
.flip-back{
  background:
    radial-gradient(circle at top right, rgba(255,214,76,.30), transparent 38%),
    radial-gradient(circle at bottom left, rgba(255,175,189,.22), transparent 38%),
    linear-gradient(180deg,#f8fcff 0%,#edf7ff 100%);
  border:2px solid #cfe5f5;
  color:#26476c;
  transform:rotateY(180deg);
  overflow:hidden;
}

.flip-back::before{
  content:"";
  position:absolute;
  inset:0;
  background:repeating-linear-gradient(
    transparent,transparent 31px,rgba(120,164,218,.08) 32px);
  pointer-events:none;
}

.flip-back > *{
  position:relative;
  z-index:1;
}

.course-badge{
  display:inline-block;
  align-self:flex-start;
  padding:5px 12px;
  border-radius:999px;
  background:#dff1ff;
  color:#1260a8;
  font-size:.75rem;
  font-weight:700;
  margin-bottom:12px;
}

.flip-back h3{
  color:#1260a8;
  font-size:1.15rem;
  margin:0 0 12px;
}

.flip-back ul{
  list-style:none;
  padding:0;
  margin:0;
}

.flip-back li{
  background:#fff;
  border:1px solid #d7e7f6;
  border-radius:14px;
  padding:8px 12px;
  margin-bottom:7px;
  font-size:.92rem;
  font-weight:600;
}

.course-area{
  margin:10px 0 2px;
  font-size:.85rem;
  font-weight:700;
  color:#1260a8;
}

.course-time{
  margin:0;
  font-size:.85rem;
  font-weight:600;
}

/* ---------- 誘導リンク ---------- */
.course-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}

.course-link{
  display:inline-block;
  background:#3d92ff;
  color:#fff;
  text-decoration:none;
  padding:10px 16px;
  border-radius:999px;
  font-size:.85rem;
  font-weight:700;
  transition:.2s;
}

.course-link:hover{
  background:#2277e6;
  transform:translateY(-2px);
}

.course-link--sub{
  background:transparent;
  color:#1260a8;
  border:2px solid #b9d9f2;
  padding:8px 14px;
}

.course-link--sub:hover{
  background:#dff1ff;
  color:#0f5290;
}

@media (max-width:520px){
  .flip-card,
  .flip-card-inner{ min-height:520px; }
}

@media (prefers-reduced-motion:reduce){
  .flip-card-inner{ transition:none; }
}
