:root{--blue:#168dcc;--ink:#23465a;--line:#c9e7f5;--paper:#f8fcff;--lime:#d6f1ff}body{color:var(--ink);background:#f8fcff;font-size:15px;line-height:1.8}h1,h2,h3,.button,.section-label{font-family:'Zen Maru Gothic','Noto Sans JP',sans-serif}h1,h2,h3{font-weight:900}h2{font-size:30px;line-height:1.5;margin:10px 0 18px;color:var(--blue)}p{margin-bottom:14px}header{max-width:1200px;padding:14px 28px;border:0;background:#f8fcff;gap:20px}.brand img{width:190px;border-radius:8px}nav{font-size:13px;gap:20px;font-weight:700}nav a:hover{color:var(--blue)}.mobile-menu{display:none}.button{border:2px solid var(--blue);border-radius:999px;padding:12px 22px;font-size:14px;min-height:48px;box-shadow:0 3px 0 #12659120;gap:10px;line-height:1.6}.button:hover{background:#0876b3;color:white;opacity:1}.button.small{background:#d6f1ff;color:#165978}.outline{background:#f8fcff}.section{max-width:1140px;padding:38px 28px;border:0}.section-label{font-size:12px;letter-spacing:1.5px;color:var(--blue);font-weight:900;display:inline-block;background:#d6f1ff;padding:4px 14px;border-radius:30px}.section-head{margin:0 0 22px;gap:20px}.section-head>p{font-size:14px}.section-note{font-size:12px;line-height:1.7;margin-top:16px}.hero.hero-key-visual{max-width:none;padding:34px max(28px,calc((100vw - 1140px)/2)) 44px;gap:28px;grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr);background-color:#2abbe5;background-image:radial-gradient(#ffffff15 2px,transparent 2px);background-size:23px 23px;position:relative;color:white}.hero:after{content:'';position:absolute;height:18px;bottom:-1px;left:0;right:0;background:radial-gradient(ellipse at 50% 100%,#f8fcff 69%,transparent 72%) 0 0/44px 20px repeat-x}.hero h1{color:#ffffff;font-size:clamp(27px,2.8vw,40px);line-height:1.4;margin:13px 0}.hero h1 span{font-size:inherit}.hero .eyebrow{color:#d6f1ff;font-size:12px;letter-spacing:0}.hero-sub{font-size:18px;margin:10px 0}.hero-description{font-size:14px}.hero-copy{padding:0}.hero-art{transform:rotate(1deg);background:#f8fcff;padding:8px;border-radius:30px 35px 28px 12px;box-shadow:8px 8px 0 #176e9d40}.hero-art img{border-radius:22px 28px 20px 6px}.hero-art figcaption{color:#35647d;margin:5px 0 0}.hero .date{margin:20px 0 12px}.hero .date strong{font-size:31px}.hero .venue{font-size:14px}.hero .venue span{color:#f1fbff}.hero .button{background:#d6f1ff;color:#145676;border-color:#d6f1ff}.hero-note{font-size:12px}.hero-copy>a:not(.button){display:block;margin-top:12px;color:white;font-size:13px}.welcome-strip{display:flex;justify-content:center;gap:12px;padding:22px 24px 6px;margin:0}.welcome-strip span{font-weight:700;background:#e8f6ff;border:1px dashed #91cde8;border-radius:99px;padding:7px 18px;font-size:14px}.intro{gap:20px 30px}.intro p{font-size:14px}.about-event-visual img{border-radius:24px}.about-actions{margin-top:18px;gap:10px}#experience{padding-top:30px}.marathon.experience-marathon{background:#e8f6ff;border:2px solid #b0ddf3;border-radius:28px;padding:24px;gap:30px;margin:0 0 24px}.marathon h2{margin:8px 0 16px}.marathon p{font-size:14px}.run-poster img{max-height:360px;object-fit:contain}.run-stats{margin:16px 0;gap:28px}.run-stats b{font-size:30px}.experience-grid{gap:18px;grid-template-columns:repeat(3,minmax(0,1fr))}.experience{border:2px solid #bcdef0;padding:14px;border-radius:24px;background:white;box-shadow:0 5px 0 #d0eaf8}.experience-photo{height:200px;margin-bottom:12px;border-radius:15px}.experience h3{font-size:20px;color:#168dcc;margin:7px 0}.experience .number{font-size:12px}.experience p{font-size:14px;min-height:0}.card-link.button{font-size:13px!important}.everyday-fun{background:#d6f1ff;border-radius:32px;margin:24px auto;padding:30px 28px}.everyday-fun h2{text-align:center;font-size:30px;margin-bottom:20px}.everyday-fun-lead{font-size:19px}.everyday-fun-grid{gap:18px}.everyday-fun-grid article{background:#f8fcff;border-radius:22px;overflow:hidden;padding:0 18px 18px;border:1px solid #badfee}.everyday-fun-grid img{width:calc(100% + 36px)!important;max-width:none;margin-left:-18px;aspect-ratio:3/2;object-fit:cover}.everyday-fun-grid h3{font-size:21px;margin:14px 0 8px}.everyday-fun-grid p{font-size:14px;margin-bottom:14px}.stage-section{background:#eaf7ff;border-radius:40px 40px 0 0}.tabs{gap:12px;border:0;margin:18px 0}.tabs button{flex:1;border:2px solid #168dcc;background:#f8fcff;border-radius:999px;padding:10px 20px}.tabs button[aria-selected=true]{background:#168dcc;color:white}.day-catchcopy{font-size:20px;margin-bottom:20px}.headliner{gap:26px;margin-bottom:22px;background:#f8fcff;padding:22px;border-radius:24px}.artist-photo img{max-height:310px;object-fit:contain;border-radius:16px}.headliner h3{font-size:26px;margin:8px 0 12px}.headliner p{font-size:14px}.text-button{background:transparent;font-size:13px;padding:12px 0 0}.stage-row,.stage-row.stage-row-juju{grid-template-columns:115px minmax(0,1fr) 180px;gap:16px;background:#f8fcff;padding:16px;border:0;border-radius:18px;margin-bottom:10px}.stage-row>b,.stage-row>span{font-size:12px}.row-artist>img{width:130px;height:90px;border-radius:10px}.driver-description{white-space:normal}.row-artist h3{font-size:17px}.ticket-section{background:#f8fcff}.ticket-grid{gap:18px}.ticket{padding:22px;border:2px solid #b9ddee;border-radius:24px}.ticket h3{color:#168dcc;font-size:22px;margin:10px 0}.ticket p:not(.price):not(.premium){font-size:14px}.ticket>span{font-size:12px}.price{color:#168dcc;margin:5px 0}.price small{font-size:13px}.donation{background:#d6f1ff;border:0;border-radius:20px;padding:18px;margin-top:18px}.donation p{font-size:14px}.visit{gap:30px}.visit p{font-size:14px}.faqs details{padding:15px 18px;background:#eaf7ff;border:0;border-radius:16px;margin-bottom:9px}.faqs details:last-child{border:0}summary{font-size:14px}.stay-teaser{gap:28px;background:#eaf7ff;border-radius:28px}.stay-teaser figure img{max-height:330px;object-fit:contain}.stay-teaser p{font-size:14px}.access-section{background:#d6f1ff;margin-top:24px}.access{gap:30px}.access>img{border-radius:24px}.access h2{font-size:28px}.access h3{font-size:22px}dl{font-size:14px;gap:8px;margin:16px 0}.supporters{padding-top:28px;padding-bottom:24px}.supporters p{margin:10px 0}.home-information{gap:24px}.home-information>div{border:2px solid #c9e7f5;border-radius:22px;padding:20px}.home-information h2{font-size:22px}.home-information p{font-size:14px}.closing{max-width:none;background:#2abbe5;color:white;border:0;padding:30px 24px}.closing h2{color:#ffffff;margin:0 0 18px}.closing .button{background:#d6f1ff;color:#23536e}footer{max-width:1140px;padding:26px 28px 20px;border:0}.footer-top{font-size:12px}.footer-bottom{font-size:10px;margin-top:20px;padding-top:16px}.button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #e2a83e;outline-offset:4px}
@media(max-width:800px){header{padding:12px 18px;flex-wrap:wrap;gap:10px}header>nav{display:none}header>.brand{margin-right:auto}.brand img{width:165px}.mobile-menu{display:block;width:100%;border-top:1px solid #c9e7f5;padding-top:8px}.mobile-menu summary{justify-content:center;color:var(--blue);font-weight:700}.mobile-menu nav{display:grid;grid-template-columns:1fr;gap:0;margin-top:8px}.mobile-menu nav a{padding:10px 14px;border-top:1px solid #c9e7f5;font-size:14px}.hero.hero-key-visual{grid-template-columns:minmax(0,1fr);padding:20px 18px 30px;gap:20px}.hero-key-visual .hero-art{grid-row:1;transform:none}.hero-key-visual .hero-copy{grid-row:2}.hero h1{font-size:clamp(25px,7vw,34px);margin:10px 0}.hero h1 span{display:block}.hero .date{display:flex;flex-direction:column;align-items:flex-start;gap:8px;white-space:normal}.hero .date strong{font-size:30px}.hero .date b{font-size:13px}.hero .date i{display:none}.hero .venue span{display:block}.hero .button{width:100%}.hero .eyebrow{font-size:12px}.welcome-strip{display:grid;grid-template-columns:1fr;gap:8px;padding:16px 18px 0;text-align:center}.section{padding:26px 18px}.section-head{display:block;margin-bottom:18px}.section-head>p{margin:10px 0 0}h2{font-size:25px;margin:8px 0 16px}.intro,.headliner,.marathon.experience-marathon,.visit,.access,.stay-teaser,.home-information{grid-template-columns:minmax(0,1fr);gap:18px}.intro>.section-label{grid-column:1}.intro img{max-height:330px;object-fit:contain}.intro p{font-size:15px}.about-actions{gap:10px}.experience-grid,.everyday-fun-grid,.ticket-grid.ticket-grid-two{grid-template-columns:minmax(0,1fr);gap:16px}.experience{padding:15px}.experience-photo{height:auto;max-height:280px;aspect-ratio:3/2;object-fit:contain}.experience p{font-size:15px;min-height:0}.experience h3{font-size:22px}.marathon.experience-marathon{padding:18px;margin-bottom:20px}.marathon-actions{display:grid;grid-template-columns:1fr;width:100%}.run-stats{display:grid;grid-template-columns:1fr;gap:12px}.run-poster img{max-height:390px}.everyday-fun{margin:14px 10px;padding:24px 16px;border-radius:24px}.everyday-fun h2{font-size:24px;text-align:left}.everyday-fun-lead{font-size:18px}.everyday-fun-grid p{font-size:15px}.tabs{display:grid;grid-template-columns:1fr;gap:10px}.tabs button{width:100%;font-size:22px;min-width:0}.headliner{padding:18px}.headliner p{font-size:15px}.headliner .button{width:100%}.stage-row,.stage-row.stage-row-juju{grid-template-columns:minmax(0,1fr);gap:10px;padding:16px}.stage-row>b{text-align:left}.row-artist{display:flex;flex-direction:column;align-items:stretch;gap:12px}.row-artist>img,.duo-photos{width:100%;height:auto;max-height:240px;object-fit:contain}.duo-photos img{max-height:220px}.driver-description{white-space:normal!important}.day-catchcopy{font-size:18px}.headliner dl,.access dl{grid-template-columns:1fr;gap:4px}.headliner dd,.access dd{margin-bottom:10px}.ticket{padding:20px}.ticket .price small{display:block;margin-left:0}.donation{flex-direction:column;align-items:flex-start;gap:6px}.donation h3{font-size:19px}.learning{margin-top:16px}.stay-teaser{margin:0 10px;padding:22px 16px}.access h2{font-size:25px}.supporters p>span{display:block;margin:10px 0 0}.home-information{gap:14px}.home-information>div{padding:18px}.button,.about-actions .button{width:100%;font-size:14px;gap:8px;padding:12px 16px;white-space:normal;overflow-wrap:anywhere}.footer-top,.footer-bottom{flex-direction:column;gap:14px}.footer-links a{display:block;padding:5px 0}header>.button{width:auto}.section-label{font-size:11px;letter-spacing:.6px}.closing h2{font-size:25px}body{overflow-wrap:break-word}main>*{min-width:0}summary{align-items:center}dd{min-width:0}}
/* Festival composition v2: a full-width visual, bold signage and scalloped panels. */
:root{--blue:#0785c1;--ink:#25495e}body{background:#f3fbff}header{max-width:none;padding:12px 4%;position:relative;z-index:3;background:#ffffff;border-bottom:3px solid #176790}header:after{content:'';position:absolute;top:100%;height:28px;left:0;right:0;background:radial-gradient(ellipse at 50% 0,#ffffff 66%,#176790 68%,#176790 72%,transparent 74%) 0 0/180px 30px repeat-x;pointer-events:none}.festival-hero{position:relative;background:#2abbe5;background-image:radial-gradient(#e0f5ff 3px,transparent 4px),radial-gradient(#ffffff38 2px,transparent 3px);background-size:100px 100px,47px 47px;min-height:860px;padding:145px 6% 55px;overflow:hidden}.festival-brand{position:absolute;z-index:2;top:43px;left:5%;transform:rotate(-7deg);color:#eaf8ff;text-shadow:4px 5px 0 #175c80;filter:drop-shadow(0 2px 0 #175c80)}.festival-brand p{font-weight:900;font-size:16px;margin:0;color:#175c80;text-shadow:none;background:#eaf8ff;display:inline-block;padding:3px 12px;border:3px solid #175c80;border-radius:12px}.festival-brand h1{font-size:clamp(55px,6.8vw,100px);font-family:'Noto Sans JP',sans-serif;font-weight:900;line-height:.98;letter-spacing:-5px;margin:12px 0 16px;-webkit-text-stroke:2px #175c80;paint-order:stroke fill}.festival-brand h1 span{display:block;font-size:inherit}.festival-brand h1 small{font-size:.48em;letter-spacing:-1px}.festival-date{background:#eac84e;color:#175c80;border:3px solid #175c80;padding:5px 14px;font-size:30px;font-weight:900;text-shadow:none;box-shadow:5px 5px 0 #175c80}.festival-date small{font-size:14px}.festival-photo{max-width:1060px;margin:0 auto;border:7px solid #ffffff;border-radius:48% 52% 18% 22% / 13% 18% 18% 22%;overflow:hidden;transform:rotate(3deg);box-shadow:0 0 0 3px #216c94}.festival-photo img{width:100%;height:auto}.festival-dog{position:absolute;right:6%;top:16px;width:210px;z-index:2;transform:rotate(10deg)}.festival-place{position:absolute;right:5%;bottom:45px;background:#eaf8ff;color:#175c80;border:4px solid #175c80;box-shadow:7px 7px 0 #175c80;padding:18px 24px;transform:rotate(-5deg);z-index:2}.festival-place small{display:block;font-size:18px;font-weight:900}.festival-place strong{display:block;font-family:'Zen Maru Gothic',sans-serif;font-size:30px;line-height:1.25;margin:5px 0 10px}.festival-place span,.festival-place b{display:block;font-size:14px}.festival-stamp{position:absolute;bottom:46px;left:2%;background:#eac84e;border:3px solid #175c80;border-radius:50%;width:160px;height:160px;display:grid;place-content:center;text-align:center;font-size:19px;line-height:1.2;transform:rotate(-13deg)}.festival-stamp b{font-size:37px}.festival-booking{display:flex;justify-content:center;gap:40px;align-items:center;background:#175c80;color:white;padding:22px}.festival-booking p{margin:0}.festival-booking strong{font-size:22px}.festival-booking span{display:block;font-size:13px}.festival-booking .button{background:#edce57;color:#175c80;border-color:#edce57;min-width:250px;font-size:18px}.festival-shortcuts{display:grid;grid-template-columns:repeat(4,1fr);max-width:1100px;margin:20px auto;gap:12px;padding:0 24px}.festival-shortcuts a{border:2px solid #175c80;border-radius:16px;background:#ffffff;text-align:center;padding:14px 8px;font-size:20px;box-shadow:3px 4px 0 #175c80;font-family:'Zen Maru Gothic',sans-serif;font-weight:900}.festival-shortcuts span{display:block;font-size:11px;letter-spacing:2px;margin-top:3px}.welcome-strip{display:none}.section-label{background:none;border-radius:0;padding:0;font-family:'Noto Sans JP',sans-serif;font-size:42px;letter-spacing:1px;font-weight:900;line-height:1.1;color:#0785c1}.section h2{font-size:32px}.intro{display:block;text-align:center;max-width:900px;padding:30px 24px}.intro>.section-label{font-size:16px;background:#eac84e;border:2px solid #175c80;border-radius:99px;padding:6px 20px}.about-event-visual{display:none}.intro .about-copy h2{font-size:36px;line-height:1.4;margin:14px 0}.intro .about-copy p{font-size:14px;margin:8px 0}.about-actions{flex-direction:row;justify-content:center}.about-actions .button{min-width:260px}.everyday-fun{max-width:none;border-radius:0;background:#cfedfc;margin:10px 0 0;padding:34px max(28px,calc((100vw - 1084px)/2));position:relative;border-top:3px solid #175c80;border-bottom:3px solid #175c80}.everyday-fun>.section-label{display:block;text-align:center;font-size:18px;letter-spacing:3px}.everyday-fun h2{font-size:36px;line-height:1.4}.everyday-fun-grid article{border:3px solid #175c80;border-radius:28px 28px 14px 14px;box-shadow:5px 6px 0 #175c80;background:#ffffff}.everyday-fun-grid h3{font-size:23px}.everyday-fun-grid p{font-size:14px}.everyday-fun-lead{background:#eaf8ff;display:inline-block;transform:rotate(-3deg);padding:2px 20px;border:2px solid #175c80;margin-bottom:10px}.experience-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.experience{border:3px solid #175c80;box-shadow:6px 7px 0 #175c80;border-radius:35px 35px 15px 15px;padding:18px;background:#ffffff}.experience-photo{height:280px;border-radius:22px}.experience h3{font-size:27px}.experience .number{background:#eac84e;border-radius:99px;padding:3px 14px;align-self:flex-start;color:#175c80;font-weight:700}.experience p{margin:10px 0 15px}.section-head{display:block;text-align:center}.section-head h2{margin-top:8px}.section-head>p{margin-top:10px}.marathon.experience-marathon{border:3px solid #175c80;background:#d4eeff;border-radius:45px 16px 45px 16px;box-shadow:6px 6px 0 #175c80;margin-bottom:26px}.marathon .section-label{font-size:17px}.button{border:2px solid #175c80;box-shadow:3px 4px 0 #175c80;border-radius:12px}.stage-section{border-radius:0;background:#d9f1fe;border-top:3px solid #175c80;border-bottom:3px solid #175c80;margin-top:30px}.stage-section .section-label{font-size:38px}.headliner .section-label{font-size:13px}.headliner,.stage-row{border:2px solid #175c80}.ticket-section .section-label{font-size:42px}.ticket{border:3px solid #175c80;box-shadow:5px 5px 0 #175c80;background:#ffffff}.visit .section-label,.stay-teaser .section-label,.access .section-label{font-size:26px}.supporters .section-label{font-size:20px}.home-information .section-label{font-size:24px}.access-section{background:#cfedfc;border-top:3px solid #175c80;border-bottom:3px solid #175c80}.closing{background:#175c80}.closing h2{font-size:36px}.footer-top .brand img{border-radius:12px}
@media(max-width:800px){header{padding:10px 18px}header:after{height:18px;background-size:95px 20px}.festival-hero{min-height:0;padding:205px 12px 150px}.festival-brand{left:18px;top:35px;transform:rotate(-5deg)}.festival-brand p{font-size:11px}.festival-brand h1{font-size:57px;letter-spacing:-3px;margin:8px 0 12px;-webkit-text-stroke:1.2px #175c80}.festival-date{font-size:23px;padding:5px 10px}.festival-date small{font-size:11px}.festival-dog{width:100px;right:10px;top:55px}.festival-photo{border-width:4px;border-radius:35% 40% 16% 20% / 10% 12% 15% 18%;transform:rotate(2deg)}.festival-place{bottom:24px;right:18px;padding:12px 16px;max-width:250px;box-shadow:4px 4px 0 #175c80}.festival-place strong{font-size:23px}.festival-place small{font-size:14px}.festival-place span,.festival-place b{font-size:12px}.festival-stamp{width:100px;height:100px;bottom:50px;left:12px;font-size:12px}.festival-stamp b{font-size:25px}.festival-booking{display:grid;grid-template-columns:1fr;gap:12px;padding:18px;text-align:center}.festival-booking strong{font-size:17px}.festival-booking .button{min-width:0}.festival-shortcuts{grid-template-columns:1fr;margin:14px 0;padding:0 18px;gap:10px}.festival-shortcuts a{font-size:19px;padding:10px}.festival-shortcuts span{font-size:10px;margin:0}.intro{padding:22px 18px}.intro .about-copy h2{font-size:28px}.intro .about-copy p{font-size:14px}.about-actions{flex-direction:column}.about-actions .button{min-width:0}.section-label,.stage-section .section-label,.ticket-section .section-label{font-size:34px}.section h2{font-size:26px}.everyday-fun{margin:8px 0;padding:26px 18px}.everyday-fun h2{font-size:26px}.everyday-fun-grid{gap:22px}.experience-grid{grid-template-columns:1fr;gap:22px}.experience{padding:14px}.experience-photo{height:auto;max-height:300px}.experience h3{font-size:24px}.section-head{text-align:left}.experience p{font-size:14px}.marathon.experience-marathon{padding:18px;border-radius:28px 12px 28px 12px}.headliner .section-label{font-size:12px}.stage-section{margin-top:16px}.ticket-grid{gap:22px}.closing h2{font-size:27px}}
@media(min-width:801px){.festival-hero{padding-top:280px;min-height:0}.festival-brand h1{font-size:76px}.festival-dog{top:35px;width:185px}}
@media(max-width:800px){.festival-hero{padding-top:270px;padding-bottom:22px}.festival-place{position:relative;right:auto;bottom:auto;margin:18px 4px 0 auto;transform:rotate(-3deg)}.festival-stamp{bottom:65px}.festival-photo{border-radius:30% 35% 14% 16% / 8% 10% 12% 14%}}

/* Key color and small canine accents */
:root{--key-color:#2abbe5;--blue:#087b9e;--ink:#23495b}
.festival-hero{background-color:var(--key-color)}
.button:not(.outline),.festival-booking .button,.hero .button,.closing .button{background:#2abbe5;border-color:#175c80;color:#103f55}
.tabs button[aria-selected=true]{background:#2abbe5;color:#103f55}
.festival-date,.festival-stamp,.experience .number,.intro>.section-label{background:#bceefa}
.section-label{color:#087b9e}
.dog-accent-section{position:relative}
.dog-accent{display:block;width:86px;height:80px;object-fit:contain;margin:0 auto 8px;pointer-events:none}
#experience>.dog-accent{margin-left:auto;margin-right:16px;transform:rotate(9deg)}
#enjoy-with-dog>.dog-accent{transform:rotate(-8deg)}
#tickets>.dog-accent{transform:rotate(7deg)}
.closing>.dog-accent{width:92px;height:85px}
@media(max-width:800px){.dog-accent{width:62px;height:58px;margin-bottom:6px}.closing>.dog-accent{width:70px;height:65px}}

/* Logo-inspired transparent mascot */
.festival-dog{object-fit:contain}.dog-accent{width:100px;height:110px}.closing>.dog-accent{width:108px;height:118px}@media(max-width:800px){.dog-accent{width:74px;height:82px}.closing>.dog-accent{width:80px;height:88px}}

/* Keep dog accents beside headings rather than in separate tall rows. */
.dog-heading{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 18px}
.dog-heading>.dog-accent,.closing .dog-heading>.dog-accent{flex:0 0 64px;width:64px;height:70px;margin:0;transform:none}
.dog-heading>h2,.section .dog-heading>h2,.closing .dog-heading>h2{margin:0;min-width:0}
#experience .section-head,#tickets .section-head{margin-bottom:18px}
#tickets>.section{padding-top:28px}
.everyday-fun{padding-top:26px;padding-bottom:26px}
.closing{padding-top:24px;padding-bottom:24px}
.closing .dog-heading{margin-bottom:14px}
@media(max-width:800px){.dog-heading{gap:8px;justify-content:flex-start;margin-bottom:14px}.dog-heading>.dog-accent,.closing .dog-heading>.dog-accent{flex-basis:48px;width:48px;height:54px}.dog-heading>h2{flex:1}.everyday-fun{padding-top:22px;padding-bottom:22px}#tickets>.section{padding-top:22px}.closing .dog-heading{justify-content:center}.closing .dog-heading>h2{flex:0 1 auto}}

/* Keep the event name on one line at every screen size. */
.festival-brand h1{white-space:nowrap;font-size:clamp(40px,5.8vw,76px);letter-spacing:-3px}
.festival-brand h1 .festival-name{display:inline;white-space:nowrap}
@media(max-width:800px){.festival-brand{right:18px}.festival-brand h1{font-size:clamp(25px,7.2vw,52px);letter-spacing:-1.5px}.festival-dog{top:140px;width:85px}}

.festival-brand #festival-title{display:block;white-space:nowrap;word-break:normal;overflow-wrap:normal;font-size:clamp(30px,5.2vw,72px);letter-spacing:-2px;line-height:1.2}
@media(max-width:800px){.festival-brand #festival-title{font-size:clamp(22px,6.3vw,48px);letter-spacing:-1px}}

/* Size the date ribbon to its text, not the full heading width. */
.festival-date{display:table;width:max-content;max-width:100%;white-space:nowrap}

/* Compact hero spacing, with content-driven title height. */
.festival-hero{padding-top:32px;min-height:0}
.festival-brand{position:relative;top:auto;left:auto;right:auto;width:max-content;max-width:100%;margin:0 0 12px;transform:rotate(-3deg);transform-origin:left center}
.festival-brand h1{margin:8px 0 10px}
.festival-brand p{margin:0}
.festival-photo{margin-top:12px;transform:rotate(1deg)}
.festival-dog{top:24px;right:6%;width:130px}
@media(max-width:800px){.festival-hero{padding:24px 16px 18px}.festival-brand{top:auto;left:auto;right:auto;margin-bottom:12px}.festival-brand h1{margin:6px 0 8px}.festival-brand p{font-size:10px}.festival-date{font-size:21px;padding:4px 10px}.festival-photo{margin-top:12px}.festival-dog{top:84px;right:18px;width:65px}.festival-place{margin-top:14px}}

/* Larger mascots beside headings, without separate spacing rows. */
.dog-heading>.dog-accent,.closing .dog-heading>.dog-accent{flex-basis:100px;width:100px;height:110px}
.dog-heading{gap:12px;margin-bottom:12px}
.festival-dog{width:170px}
.festival-stamp b{font-size:28px}
@media(max-width:800px){.dog-heading>.dog-accent,.closing .dog-heading>.dog-accent{flex-basis:74px;width:74px;height:82px}.dog-heading{gap:8px;margin-bottom:10px}.festival-dog{width:85px;top:100px;right:12px}.festival-stamp b{font-size:19px}}
