/* Round 25: gallery sections mapped to ugokko's wave, pickup, and story areas. */
.gallery-page{background:var(--c-base);}
.gallery-title{display:grid;place-content:center;min-height:clamp(250px,32vw,430px);padding:70px 24px 42px;text-align:center;background:var(--c-base);overflow:hidden;}
.gallery-kicker{margin:0 0 13px;color:var(--c-accent2);font:700 15px/1 Fredoka,sans-serif;letter-spacing:.24em;}
.gallery-title h1{display:grid;gap:12px;margin:0;color:var(--fixed-main);font:800 clamp(42px,7vw,104px)/.86 Fredoka,"Zen Maru Gothic",sans-serif;letter-spacing:.015em;}
.gallery-title h1 span{display:inline-block;position:relative;z-index:0;white-space:nowrap;}
.gallery-title h1 span:after{content:"";position:absolute;z-index:-1;right:-.09em;bottom:.03em;left:-.09em;height:.38em;border-radius:6px;background:var(--c-accent1-alpha-72);transform:rotate(-2deg);}
.gallery-title h1 small{display:block;font:800 clamp(25px,3.3vw,48px)/1.1 "Zen Maru Gothic",sans-serif;letter-spacing:.08em;white-space:nowrap;}
.gallery-ribbon{position:relative;height:420px;overflow:hidden;background:var(--c-main);isolation:isolate;}
.gallery-ribbon:before,.gallery-ribbon:after{content:"";position:absolute;z-index:2;right:0;left:0;height:34px;background:radial-gradient(28px 17px at 50% 0,var(--c-base) 97%,transparent 100%) 0 0/56px 34px repeat-x;pointer-events:none;}
.gallery-ribbon:before{top:-1px;transform:rotate(180deg);}.gallery-ribbon:after{bottom:-1px;}
.gallery-ribbon__track{display:flex;width:max-content;height:100%;will-change:transform;animation:gallery-wave-slide 96s linear infinite;}
.gallery-ribbon__item{flex:0 0 auto;height:100%;padding:0;margin:0;border:0;background:transparent;line-height:0;cursor:zoom-in;}
.gallery-ribbon__item img{display:block;width:auto;height:100%;max-width:none;}
@keyframes gallery-wave-slide{to{transform:translateX(-50%);}}
.gallery-photos{padding:clamp(60px,8vw,110px) 0 clamp(76px,10vw,138px);background:var(--c-main);color:var(--c-base);}
.gallery-shell{width:min(1200px,calc(100% - clamp(40px,10vw,128px)));margin:0 auto;padding:0;}
.gallery-section-label{margin:0 0 20px;color:var(--c-accent1);font:700 clamp(27px,3vw,42px)/1 Fredoka,sans-serif;letter-spacing:.08em;}
.gallery-tabs{justify-content:flex-start;margin:0 0 35px;gap:12px;}
.gallery-tabs button{min-height:44px;border-color:var(--c-base);background:transparent;color:var(--c-base);box-shadow:none;transition:transform .22s ease,box-shadow .22s ease,background .22s ease;}
.gallery-tabs button:nth-child(2){border-color:var(--c-accent3);}.gallery-tabs button:nth-child(3){border-color:var(--c-accent1);}.gallery-tabs button:nth-child(4){border-color:var(--c-accent2);}
.gallery-tabs button[aria-selected="true"]{background:var(--fixed-white);color:var(--fixed-main);box-shadow:4px 5px 0 var(--c-main-alpha-30);}
.gallery-grid{column-count:4;column-gap:clamp(16px,2vw,27px);}
.gallery-tile{position:relative;display:block;break-inside:avoid;width:100%;margin:8px 0 25px;padding:8px;border:0;border-radius:18px;background:var(--fixed-white);box-shadow:4px 7px 0 var(--c-main-alpha-30);overflow:visible;cursor:zoom-in;line-height:0;transform:rotate(var(--gallery-tilt,0deg));transition:transform .25s cubic-bezier(.17,.88,.3,1.28),box-shadow .25s ease;}
.gallery-tile:nth-child(4n+1){--gallery-tilt:-1.6deg;}.gallery-tile:nth-child(4n+2){--gallery-tilt:.8deg;}.gallery-tile:nth-child(4n+3){--gallery-tilt:-.5deg;}.gallery-tile:nth-child(4n){--gallery-tilt:1.4deg;}
.gallery-tile img{display:block;width:100%;height:auto;border-radius:11px;transition:none;}.gallery-tile:hover,.gallery-tile:focus-visible{box-shadow:5px 13px 0 var(--c-main-alpha-30);transform:translateY(-6px) rotate(0);}.gallery-tile.is-visible{animation:gallery-pop .52s cubic-bezier(.17,.88,.3,1.28) both;animation-delay:var(--gallery-delay,0ms);}
@keyframes gallery-pop{from{opacity:0;transform:translateY(17px) rotate(var(--gallery-tilt,0deg)) scale(.92)}to{opacity:1;transform:translateY(0) rotate(var(--gallery-tilt,0deg)) scale(1)}}
.gallery-notices{position:relative;min-height:670px;overflow:hidden;padding:clamp(92px,12vw,160px) 0 70px;background:var(--c-base);}.gallery-notices__word{position:absolute;top:clamp(30px,5vw,72px);left:0;width:max-content;color:transparent;font:800 clamp(76px,12vw,184px)/.8 Fredoka,sans-serif;letter-spacing:.035em;white-space:nowrap;-webkit-text-stroke:2px var(--c-main-alpha-18);animation:gallery-notice-word 48s linear infinite;}@keyframes gallery-notice-word{to{transform:translateX(-25%);}}.gallery-notices__inner{position:relative;width:min(1200px,calc(100% - clamp(40px,10vw,128px)));margin:0 auto;}.gallery-notices__labels{display:flex;gap:12px;margin:0 0 22px;}.gallery-notices__labels span{display:inline-block;padding:10px 17px;border-radius:12px;background:var(--c-accent1);color:var(--fixed-main);font:800 17px/1 "Zen Maru Gothic",sans-serif;transform:rotate(-2deg);}.gallery-notices__labels span+span{background:var(--c-accent2);transform:rotate(2deg);}.gallery-notices__controls{position:absolute;z-index:2;top:5px;right:0;display:flex;gap:8px;}.gallery-scroll-button{display:grid;place-items:center;width:42px;height:42px;padding:0;border:2px solid var(--c-main);border-radius:50%;background:var(--c-base);color:var(--fixed-main);font:400 34px/.7 Arial,sans-serif;cursor:pointer;}.gallery-scroll-button:hover,.gallery-scroll-button:focus-visible{background:var(--c-main);color:var(--c-base);}.gallery-notices__rail{display:flex;gap:25px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:10px 3px 34px;}.gallery-notices__rail::-webkit-scrollbar{display:none;}.gallery-notice-card{flex:0 0 min(290px,72vw);padding:10px;border:0;border-radius:22px;background:var(--fixed-white);box-shadow:7px 9px 0 var(--c-main-alpha-18);cursor:zoom-in;scroll-snap-align:start;line-height:0;}.gallery-notice-card img{display:block;width:100%;height:auto;border-radius:14px;}
.gallery-materials{padding:clamp(70px,9vw,120px) 0 145px;background:var(--c-accent3);}.gallery-materials__grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(12px,2vw,25px);}.gallery-material-card{padding:6px;border:0;border-radius:12px;background:var(--fixed-white);box-shadow:3px 5px 0 var(--c-main-alpha-18);cursor:zoom-in;line-height:0;}.gallery-material-card img{display:block;width:100%;height:auto;border-radius:7px;}.gallery-tile:focus-visible,.gallery-tabs button:focus-visible,.gallery-lightbox button:focus-visible,.gallery-notice-card:focus-visible,.gallery-material-card:focus-visible,.gallery-scroll-button:focus-visible{outline:3px solid var(--fixed-accent2);outline-offset:4px;}
@media(max-width:1000px){.gallery-grid{column-count:3;}.gallery-materials__grid{grid-template-columns:repeat(4,minmax(0,1fr));}}@media(max-width:760px){.gallery-title{min-height:230px;padding:68px 16px 35px;}.gallery-ribbon{height:240px;}.gallery-ribbon:before,.gallery-ribbon:after{height:22px;background-size:38px 22px;background-image:radial-gradient(19px 11px at 50% 0,var(--c-base) 97%,transparent 100%);}.gallery-photos{padding:58px 0 82px;}.gallery-shell,.gallery-notices__inner{width:calc(100% - 32px);}.gallery-tabs{gap:8px;margin-bottom:27px;}.gallery-tabs button{min-height:39px;padding:7px 12px;font-size:12px;}.gallery-grid{column-count:2;column-gap:13px;}.gallery-tile{margin:5px 0 19px;padding:6px;border-radius:14px;}.gallery-notices{min-height:500px;padding:79px 0 48px;}.gallery-notices__word{top:27px;-webkit-text-stroke-width:1px;}.gallery-notices__labels{margin-bottom:16px;}.gallery-notices__labels span{padding:8px 12px;font-size:14px;}.gallery-notices__controls{display:none;}.gallery-notices__rail{gap:16px;padding-bottom:22px;}.gallery-notice-card{padding:7px;border-radius:17px;}.gallery-materials{padding:62px 0 110px;}.gallery-materials__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}.gallery-material-card{padding:5px;}}@media(prefers-reduced-motion:reduce){.gallery-ribbon__track,.gallery-notices__word{animation:none;}.gallery-tile.is-visible{animation:none;}}
/* 10/21 fix: notice cards hug their image (no tall empty boxes) */
.gallery-notices__rail{align-items:flex-start}
.gallery-notice-card{flex-basis:min(340px,74vw);height:auto;align-self:flex-start}
.gallery-lead{max-width:760px;margin:30px auto 0;color:var(--fixed-main);font:700 clamp(15px,1.25vw,18px)/2 "Zen Maru Gothic",sans-serif;letter-spacing:.04em}
.gallery-lead .nw{display:inline-block}
@media(max-width:760px){.gallery-lead{margin-top:22px;font-size:14px;line-height:1.9;text-align:left}}
