:root{--color-main:#6ba96b;--color-accent:#d9a52b;--color-bg:#fffdf5;--color-text:#333;--color-paper:#fff;--color-line:#dedbd2;--color-muted:#736f67;--content:1180px;--radius:14px;--shadow:0 14px 36px rgba(68,55,39,.08)}
*,*::before,*::after{box-sizing:border-box}
html{max-width:100%;overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:92px}
body{max-width:100%;margin:0;overflow-x:clip;background:var(--color-bg);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium",YuGothic,Meiryo,sans-serif;font-size:1rem;line-height:1.8;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
img{max-width:100%;height:auto}
a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.2em}
button,input,textarea{font:inherit}
button{color:inherit}
.container{width:min(calc(100% - 40px),var(--content));margin-inline:auto}
.screen-reader-text,.skip-link:not(:focus){position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link:focus{position:fixed;z-index:9999;top:8px;left:8px;padding:10px 16px;background:#fff;color:#111;border:2px solid var(--color-main)}
:focus-visible{outline:3px solid var(--color-accent);outline-offset:4px}
.site-header{position:sticky;z-index:100;top:0;background:rgba(255,253,245,.96);border-bottom:1px solid rgba(51,51,51,.1);backdrop-filter:blur(12px)}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:82px;gap:32px}
.brand{display:flex;flex-direction:column;flex:0 0 auto;text-decoration:none;line-height:1.1}
.brand-presented{margin:0 0 5px;color:var(--color-muted);font-size:.7rem;letter-spacing:.08em}
.brand-en{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:1.15rem;font-weight:700;letter-spacing:.02em}
.brand-ja{margin:3px 0 0;color:var(--color-main);font-size:.75rem;font-weight:700;letter-spacing:.16em}
.nav-list,.footer-links{display:flex;align-items:center;gap:24px;padding:0;margin:0;list-style:none}
.nav-list a{position:relative;font-size:.875rem;font-weight:700;text-decoration:none;white-space:nowrap}
.nav-list a::after{position:absolute;right:0;bottom:-8px;left:0;height:2px;background:var(--color-main);content:"";transform:scaleX(0);transition:transform .2s}
.nav-list a:hover::after,.nav-list a:focus-visible::after{transform:scaleX(1)}
.menu-toggle{display:none;width:44px;height:44px;padding:9px;background:transparent;border:0}
.menu-toggle-lines{display:grid;gap:5px}.menu-toggle-lines i{display:block;width:24px;height:2px;background:currentColor;transition:.2s}
.hero{padding:32px 0 64px;background:linear-gradient(180deg,rgba(107,169,107,.12),transparent 78%)}
.hero-media{overflow:hidden;aspect-ratio:16/9;padding:0;border-radius:18px;background:#ebe8de;box-shadow:var(--shadow)}
.hero-media picture{display:block;height:100%}.hero-image{display:block;width:100%;height:100%;aspect-ratio:16/9;object-fit:cover;background:#ece9e0}
.media-placeholder{display:grid;place-items:center;min-height:280px;color:#817b70;background:repeating-linear-gradient(135deg,#f1eee6,#f1eee6 12px,#ebe7dc 12px,#ebe7dc 24px);border:1px solid #d9d4c9}
.media-placeholder span{padding:8px 14px;background:rgba(255,255,255,.84);border-radius:999px;font-size:.875rem;font-weight:700}
.hero-placeholder{width:100%;height:100%;min-height:0;aspect-ratio:16/9}
.hero-copy{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:56px;align-items:end;padding-top:34px}
.event-vol{margin:0 0 5px;color:var(--color-main);font-size:.9rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.hero h1{max-width:800px;margin:0;font-family:Georgia,"Times New Roman","Yu Mincho",serif;font-size:clamp(2rem,4.7vw,4.5rem);font-weight:600;line-height:1.1;letter-spacing:-.025em}
.hero-ja{margin:12px 0 0;color:var(--color-main);font-size:1rem;font-weight:800;letter-spacing:.25em}
.hero-info{padding-left:28px;border-left:4px solid var(--color-accent)}
.hero-info p{margin:0 0 5px}.tagline{font-size:clamp(1.25rem,2.1vw,1.75rem);font-weight:800;line-height:1.5}.event-date{margin-top:10px!important;font-weight:800}
.button-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:11px 24px;border:2px solid transparent;border-radius:999px;font-size:.9rem;font-weight:800;line-height:1.35;text-decoration:none;transition:transform .18s,background-color .18s,color .18s}
.button:hover{transform:translateY(-2px)}.button-primary{background:var(--color-main);color:#fff}.button-outline{border-color:var(--color-main);color:var(--color-main);background:transparent}.button-outline:hover{background:var(--color-main);color:#fff}.button-accent{background:var(--color-accent);color:#221b0c}.button-large{min-width:260px;min-height:62px;font-size:1rem}
.section{padding:96px 0}.section-heading{margin-bottom:44px}.section-kicker{margin:0 0 6px;color:var(--color-main);font:700 .78rem/1.2 Georgia,"Times New Roman",serif;letter-spacing:.22em}.section-heading h2{margin:0;font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.35;letter-spacing:.02em}.section-heading h2::after{display:block;width:52px;height:4px;margin-top:14px;background:var(--color-accent);content:"";border-radius:3px}
.news{padding-top:72px;padding-bottom:72px;background:var(--color-bg)}.news .section-heading{margin-bottom:26px}.news-list{border-top:1px solid var(--color-line)}.news-item{display:grid;grid-template-columns:120px minmax(0,1fr);gap:24px;padding:20px 4px;border-bottom:1px solid var(--color-line)}.news-item time{padding-top:3px;color:var(--color-main);font:700 .84rem/1.5 Georgia,"Times New Roman",serif;letter-spacing:.06em}.news-item h3{margin:0;font-size:1rem;line-height:1.7}.news-item details{min-width:0}.news-item summary{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;cursor:pointer;font-weight:700;line-height:1.7;list-style:none}.news-item summary::-webkit-details-marker{display:none}.news-toggle{flex:0 0 auto;color:var(--color-main);font-size:1.35rem;line-height:1.2;transition:transform .2s}.news-item details[open] .news-toggle{transform:rotate(45deg)}.news-body{padding:12px 42px 0 0}.news-body p{margin:.45em 0;color:var(--color-text)}
.about{background:var(--color-paper)}.about-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:8vw;align-items:center}.about-media{overflow:hidden;border-radius:var(--radius)}.about-media img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.about-placeholder{aspect-ratio:4/3;min-height:0}.prose{font-size:1.02rem}.prose p{margin:0 0 1.4em}.prose-small p{margin:.6em 0 0;color:var(--color-muted)}
.features{position:relative}.feature-list{border-top:1px solid var(--color-line)}.feature-item{display:grid;grid-template-columns:110px 1fr;gap:28px;align-items:center;padding:28px 12px;border-bottom:1px solid var(--color-line)}.feature-icon{display:grid;place-items:center;width:76px;height:76px;color:var(--color-main);background:rgba(107,169,107,.12);border-radius:50%;font-size:1.65rem}.feature-icon img{width:100%;height:100%;object-fit:cover;border-radius:50%}.feature-item>div:last-child{display:grid;grid-template-columns:54px minmax(180px,.55fr) 1fr;gap:22px;align-items:baseline}.feature-item h3{margin:0;font-size:1.15rem;line-height:1.5}.item-number{margin:0;color:var(--color-accent);font:700 .8rem/1 Georgia,serif}
.past-events{background:var(--color-paper)}.event-list{display:grid;gap:72px}.event-item{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);gap:48px;align-items:start}.event-item:nth-child(even) .event-media-stack{order:2}.event-item:nth-child(even) .event-content{order:1}.event-media-stack{min-width:0}.event-kv{overflow:hidden;aspect-ratio:16/9;border-radius:var(--radius);box-shadow:var(--shadow)}.event-kv img{display:block;width:100%;height:100%;aspect-ratio:16/9;object-fit:cover}.event-placeholder{width:100%;height:100%;aspect-ratio:16/9;min-height:0}.event-content{padding-top:18px}.event-vol-large{margin:0;color:var(--color-main);font:700 2.3rem/1 Georgia,serif}.event-content h3{margin:10px 0;font-size:clamp(1.45rem,2.5vw,2rem);line-height:1.3}.event-period{display:inline-block;margin:0 0 14px;padding:4px 12px;background:rgba(217,165,43,.15);font-size:.9rem;font-weight:700}.activity-list{display:grid;gap:5px;padding:0;margin:20px 0 0;list-style:none}.activity-list li::before{margin-right:10px;color:var(--color-main);content:"✓";font-weight:900}.event-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.event-photos button,.gallery-item{padding:0;overflow:hidden;aspect-ratio:1/1;background:#eee;border:0;border-radius:8px;cursor:zoom-in}.event-photos img,.gallery-item img{display:block;width:100%;height:100%;aspect-ratio:1/1;object-fit:cover;transition:transform .28s}.event-photos button:hover img,.gallery-item:hover img{transform:scale(1.035)}
.gallery-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.gallery-item{border-radius:8px}.gallery-placeholder{min-height:0;aspect-ratio:1/1;border-radius:8px}
.for-vtubers{background:var(--color-main);color:#fff}.for-vtubers .section-kicker{color:#fff}.for-vtubers .section-heading h2::after{background:var(--color-accent)}.vtuber-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.vtuber-lead{max-width:570px;margin:0;font-size:1.08rem}.check-list{display:grid;gap:0;padding:0;margin:0;list-style:none;border-top:1px solid rgba(255,255,255,.35)}.check-list li{position:relative;padding:17px 10px 17px 42px;border-bottom:1px solid rgba(255,255,255,.35);font-weight:700}.check-list li::before{position:absolute;left:10px;color:var(--color-accent);content:"●"}
.contact{text-align:center;background:var(--color-contact-bg,#fff)}.contact .section-heading h2::after{margin-inline:auto}.contact-copy{max-width:700px;margin:0 auto 30px}.contact-copy p{margin-bottom:1.2em}
.shop{background:var(--color-paper)}.shop-lead{max-width:720px;margin:-22px 0 38px;color:var(--color-muted)}.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.product-card{overflow:hidden;background:var(--color-bg);border:1px solid var(--color-line);border-radius:var(--radius)}.product-image img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}.product-placeholder{min-height:0;aspect-ratio:1/1}.product-content{padding:22px}.product-content h3{margin:8px 0;font-size:1.18rem;line-height:1.5}.sale-badge{display:inline-block;margin:0;padding:4px 10px;color:#fff;background:var(--color-main);border-radius:999px;font-size:.78rem;font-weight:800}.sale-resale{background:var(--color-accent);color:#2e260f}.sale-coming{background:#6f7880}.sale-ended{background:#8b8580}.product-price{margin:6px 0;font-size:1.05rem;font-weight:800}.text-link{display:inline-block;margin-top:16px;color:var(--color-main);font-weight:800}.shop-cta{margin-top:36px;text-align:center}
.portal-main{--portal-ink:#15243a;--portal-accent:#e85f45;--portal-sky:#b9dce5;--portal-paper:#f5f0e8;min-height:70vh;background:var(--portal-paper);color:var(--portal-ink)}.portal-site-header{background:rgba(21,36,58,.97);border-bottom:0;color:#fff}.portal-brand{display:flex;align-items:baseline;gap:12px;color:#fff;text-decoration:none}.portal-brand-name{font-weight:800;letter-spacing:.04em}.portal-brand-label{padding-left:12px;border-left:1px solid rgba(255,255,255,.45);color:#9fd6e3;font:700 .72rem/1 Georgia,serif;letter-spacing:.22em}.portal-site-header .nav-list a::after{background:var(--portal-accent)}.portal-hero{position:relative;overflow:hidden;padding:128px 0 108px;background:var(--portal-sky)}.portal-hero::before,.portal-hero::after{position:absolute;border:2px solid rgba(21,36,58,.12);content:"";transform:rotate(18deg)}.portal-hero::before{top:-160px;right:-60px;width:440px;height:440px;border-radius:42%}.portal-hero::after{right:24%;bottom:-180px;width:280px;height:280px;border-radius:50%}.portal-hero .container{position:relative;z-index:1}.portal-eyebrow{margin:0 0 18px;color:var(--portal-ink);font:800 .76rem/1 Georgia,serif;letter-spacing:.24em}.portal-hero h1{max-width:820px;margin:0 0 28px;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:clamp(2.8rem,7vw,6.3rem);font-weight:900;line-height:1.08;letter-spacing:.01em}.portal-hero>div>p:last-child{max-width:680px;margin:0;font-size:1.08rem;font-weight:600}.portal-events{background:var(--portal-paper)}.portal-events .section-kicker{color:var(--portal-accent)}.portal-events .section-heading h2::after{background:var(--portal-accent)}.portal-grid{display:grid;gap:28px}.portal-card{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);overflow:hidden;background:#fff;border:1px solid rgba(21,36,58,.14);border-radius:6px;box-shadow:8px 8px 0 rgba(21,36,58,.08)}.portal-card-media img{display:block;width:100%;height:100%;min-height:320px;object-fit:cover}.portal-placeholder{height:100%;min-height:320px;background:repeating-linear-gradient(135deg,#dce9ec,#dce9ec 12px,#d4e3e7 12px,#d4e3e7 24px);border:0;color:var(--portal-ink)}.portal-card-content{display:flex;align-items:flex-start;flex-direction:column;justify-content:center;padding:48px}.portal-card-content .event-vol{color:var(--portal-accent)}.portal-card-content h2{margin:4px 0 10px;font-size:clamp(1.6rem,3vw,2.5rem);line-height:1.35}.portal-card-content .button{margin-top:18px;background:var(--portal-accent);color:#fff}.portal-site-footer{background:var(--portal-ink)}.portal-footer-brand p{margin:0}.portal-footer-brand p:first-child{font-size:1.15rem;font-weight:800}.portal-footer-brand p:last-child{color:#9fd6e3;font:700 .75rem/1.5 Georgia,serif;letter-spacing:.2em}
.partners{background:var(--color-bg)}.partner-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.partner-card{position:relative;display:grid;grid-template-columns:72px 1fr;gap:18px;align-items:center;min-height:126px;padding:22px 42px 22px 22px;background:#fff;border:1px solid var(--color-line);border-radius:var(--radius);color:inherit;text-decoration:none;box-shadow:0 5px 18px rgba(68,55,39,.04);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.partner-card[href]:hover,.partner-card[href]:focus-visible{border-color:var(--color-main);box-shadow:0 13px 28px rgba(68,55,39,.1);transform:translateY(-4px)}.partner-icon{display:grid;place-items:center;width:72px;height:72px;overflow:hidden;background:rgba(107,169,107,.1);border-radius:50%;color:var(--color-main);font-size:1.5rem}.partner-icon img{width:100%;height:100%;object-fit:contain}.partner-copy h3{margin:2px 0;font-size:1rem;line-height:1.45}.partner-type{margin:0;color:var(--color-main);font-size:.72rem;font-weight:800;letter-spacing:.12em}.partner-role p{margin:4px 0 0;color:var(--color-muted);font-size:.82rem;line-height:1.55}.partner-arrow{position:absolute;top:18px;right:18px;color:var(--color-main);font-size:1.1rem}
.site-footer{padding:58px 0 24px;background:#2e2b27;color:#fff}.footer-grid{display:grid;grid-template-columns:1.1fr .9fr .8fr;gap:50px;align-items:start}.footer-grid--compact{grid-template-columns:1fr auto}.footer-brand .brand-en{font-size:1.35rem}.footer-brand .brand-ja{color:#a8d3a8}.footer-links{align-items:flex-start;flex-direction:column;gap:8px}.footer-links a,.social-links a{color:#fff;text-decoration:none}.footer-links a:hover,.social-links a:hover{text-decoration:underline}.social-links{display:flex;align-items:flex-start;flex-direction:column;gap:8px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:28px;margin-top:38px;border-top:1px solid rgba(255,255,255,.2);color:#cbc7c1;font-size:.78rem}.footer-bottom a{color:inherit}
.lightbox{position:fixed;max-width:min(1100px,94vw);max-height:92vh;padding:44px 18px 18px;background:#171717;border:0;border-radius:10px;color:#fff}.lightbox::backdrop{background:rgba(0,0,0,.84)}.lightbox img{display:block;max-width:100%;max-height:76vh;margin:auto;object-fit:contain}.lightbox p{margin:10px 0 0;text-align:center}.lightbox-close{position:absolute;top:4px;right:8px;width:38px;height:38px;color:#fff;background:transparent;border:0;font-size:2rem;line-height:1;cursor:pointer}.content-page{min-height:60vh}.content-page h1{font-size:clamp(2rem,4vw,3.4rem)}
@media (max-width:1023px){.header-inner{min-height:72px}.menu-toggle{display:block}.site-nav{position:fixed;top:72px;right:0;bottom:0;width:min(360px,88vw);padding:28px;background:var(--color-bg);box-shadow:-15px 20px 40px rgba(0,0,0,.12);visibility:hidden;opacity:0;transform:translateX(100%);transition:.24s}.site-nav.is-open{visibility:visible;opacity:1;transform:translateX(0)}.nav-list{align-items:stretch;flex-direction:column;gap:0}.nav-list a{display:block;padding:14px 4px;border-bottom:1px solid var(--color-line);font-size:1rem}.menu-toggle[aria-expanded="true"] i:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded="true"] i:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.feature-item>div:last-child{grid-template-columns:45px 1fr}.feature-item .prose-small{grid-column:2}.gallery-grid{grid-template-columns:repeat(4,1fr)}.product-grid,.partner-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr}.social-links{grid-column:2}}
@media (max-width:767px){html{scroll-padding-top:70px}.container{width:min(calc(100% - 28px),var(--content))}.brand-en{font-size:1rem}.brand-presented{font-size:.62rem}.hero{padding:16px 0 50px}.hero-media{border-radius:10px}.hero-copy{grid-template-columns:1fr;gap:24px;padding-top:24px}.hero-info{padding-left:18px}.button-row{display:grid;grid-template-columns:1fr 1fr}.button{padding-inline:12px;font-size:.82rem}.section{padding:68px 0}.section-heading{margin-bottom:30px}.about-grid,.vtuber-grid{grid-template-columns:1fr;gap:36px}.about-media{order:-1}.feature-item{grid-template-columns:64px 1fr;gap:16px;padding:22px 4px}.feature-icon{width:58px;height:58px}.feature-item>div:last-child{display:block}.item-number{margin-bottom:6px}.feature-item h3{font-size:1.08rem}.event-list{gap:54px}.event-item{grid-template-columns:1fr;gap:20px}.event-item:nth-child(even) .event-media-stack,.event-item:nth-child(even) .event-content{order:initial}.event-content{padding-top:0}.event-photos{grid-template-columns:repeat(3,1fr);margin-top:10px}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:8px}.gallery-placeholder{min-height:0}.vtuber-grid{gap:30px}.product-grid,.partner-grid{grid-template-columns:1fr}.portal-hero{padding:78px 0 60px}.portal-card{grid-template-columns:1fr}.portal-card-content{padding:28px}.portal-card-media img,.portal-placeholder{min-height:220px}.footer-grid{grid-template-columns:1fr;gap:30px}.social-links{grid-column:auto}.footer-bottom{align-items:flex-start;flex-direction:column}.lightbox{width:96vw;padding:42px 10px 12px}}
@media (max-width:1023px){.portal-site-header .site-nav{background:#15243a;color:#fff}.portal-site-header .nav-list a{border-color:rgba(255,255,255,.18)}}
/* Event portal: retro restaurant ticket / postcard */
body.home{--portal-turquoise:#4cbdb8;--portal-orange:#ff9f18;--portal-yellow:#ffe653;--portal-ice:#e8f3f4;--portal-blue:#4eaec9;--portal-paper:#fffdf3;--portal-ink:#294b58;background:#fffdf3;color:#294b58}
.portal-main{--portal-turquoise:#4cbdb8;--portal-orange:#ff9f18;--portal-yellow:#ffe653;--portal-ice:#e8f3f4;--portal-blue:#4eaec9;--portal-paper:#fffdf3;--portal-ink:#294b58;background-color:var(--portal-paper);background-image:radial-gradient(rgba(76,189,184,.12) 1px,transparent 1px);background-size:12px 12px;color:var(--portal-ink)}
.portal-site-header{background:var(--portal-paper);border-bottom:3px solid var(--portal-turquoise);color:var(--portal-ink);box-shadow:none}.portal-site-header .header-inner{min-height:78px}.portal-brand{gap:11px;color:var(--portal-ink)}.portal-brand-name{font-family:Georgia,"Yu Mincho",serif;font-size:1.08rem;letter-spacing:.05em}.portal-brand-label{border-color:rgba(41,75,88,.3);color:var(--portal-blue);font-size:.72rem}.portal-site-header .nav-list a::after{background:var(--portal-orange)}
.portal-color-chips{display:flex;gap:4px;justify-content:center;margin:16px 0 18px}.portal-color-chips i{display:block;width:23px;height:9px;background:var(--portal-turquoise);transform:skewX(-15deg)}.portal-color-chips i:nth-child(2){background:var(--portal-orange)}.portal-color-chips i:nth-child(3){background:var(--portal-yellow)}.portal-color-chips i:nth-child(4){background:var(--portal-ice);border:1px solid rgba(41,75,88,.08)}.portal-color-chips i:nth-child(5){background:var(--portal-blue)}
.portal-hero{min-height:440px;padding:84px 0 78px;background-color:transparent;background-image:none;text-align:center}.portal-hero::before,.portal-hero::after{display:none}.portal-hero-inner{position:relative}.portal-eyebrow{margin:0;color:var(--portal-ink);font:700 .75rem/1.4 Georgia,serif;letter-spacing:.22em}.portal-hero h1{max-width:none;margin:0 0 20px;font-family:Georgia,"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(2.55rem,5.8vw,4.8rem);font-weight:700;line-height:1.25;letter-spacing:.04em}.portal-hero>div>p:last-of-type{max-width:650px;margin:0 auto;font-size:1rem;font-weight:600;line-height:1.9}.portal-hero-button,.portal-outline-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:10px 30px;border:2px solid var(--portal-turquoise);border-radius:999px;font-weight:800;text-decoration:none;transition:background-color .18s,color .18s,transform .18s}.portal-hero-button{margin-top:28px;background:var(--portal-turquoise);color:#fff;box-shadow:0 0 0 3px var(--portal-paper),0 0 0 4px var(--portal-turquoise)}.portal-hero-button:hover{background:#359f9b;transform:translateY(-2px)}.portal-outline-button:hover{background:var(--portal-turquoise);color:#fff}.portal-spark{position:absolute;color:var(--portal-orange);font-size:1.9rem;line-height:1}.portal-spark-one{top:38%;left:8%}.portal-spark-two{top:15%;right:10%;color:var(--portal-yellow)}.portal-ring{position:absolute;right:5%;bottom:4%;width:18px;height:18px;border:3px solid var(--portal-blue);border-radius:50%}
.portal-events{position:relative;padding-top:88px;background:rgba(255,253,243,.82);border-top:1px solid rgba(76,189,184,.25)}.portal-events::before{position:absolute;top:-10px;right:0;left:0;height:12px;background:radial-gradient(circle at 12px 0,transparent 10px,rgba(76,189,184,.36) 11px,rgba(76,189,184,.36) 12px,transparent 13px) 0 0/24px 13px repeat-x;content:""}.portal-section-heading{display:flex;align-items:center;gap:26px;margin-bottom:36px}.portal-section-heading>div:first-child p{margin:0;color:var(--portal-ink);font:700 clamp(2.2rem,5vw,4rem)/1 Georgia,serif;letter-spacing:.04em}.portal-section-heading h2{margin:8px 0 0;font-size:1.15rem;line-height:1.3}.portal-heading-chips{justify-content:flex-start;margin:0}.portal-heading-chips i{width:30px;height:13px}
.portal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.portal-card{--card-accent:var(--portal-turquoise);display:flex;flex-direction:column;overflow:hidden;background:rgba(255,255,255,.56);border:2px solid var(--card-accent);border-radius:16px;box-shadow:none}.portal-card:nth-child(4n+2){--card-accent:var(--portal-orange)}.portal-card:nth-child(4n+3){--card-accent:var(--portal-yellow)}.portal-card:nth-child(4n){--card-accent:var(--portal-blue)}.portal-card-media{display:block;overflow:hidden;background:var(--portal-ice);text-decoration:none}.portal-card-media img{display:block;width:100%;height:auto;min-height:0;aspect-ratio:16/9;object-fit:cover;transition:transform .22s}.portal-card-media:hover img{transform:scale(1.015)}.portal-placeholder{height:auto;min-height:0;aspect-ratio:16/9;background-color:var(--portal-ice);background-image:radial-gradient(rgba(78,174,201,.22) 1px,transparent 1px);background-size:12px 12px;border:0;color:var(--portal-ink)}.portal-card-content{display:flex;flex:1;align-items:stretch;justify-content:flex-start;padding:20px 22px 22px}.portal-event-type{align-self:flex-start;margin:-34px 0 11px;padding:5px 14px;background:var(--card-accent);border:3px solid var(--portal-paper);border-radius:999px;color:var(--portal-ink);font-size:.72rem;font-weight:900;letter-spacing:.13em;line-height:1.3}.portal-card-content h3{margin:0 0 7px;font-family:Georgia,"Yu Mincho",serif;font-size:1.35rem;line-height:1.45}.portal-card-content>p:not(.portal-event-type){display:-webkit-box;margin:0;color:var(--portal-ink);font-size:.92rem;line-height:1.65;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.portal-detail-link{align-self:flex-end;margin-top:auto;padding-top:14px;color:var(--portal-ink);font-weight:900;text-decoration:none}.portal-detail-link span{display:inline-grid;place-items:center;width:31px;height:31px;margin-left:7px;border:2px solid var(--card-accent);border-radius:50%;transition:background-color .18s,transform .18s}.portal-detail-link:hover span{background:var(--card-accent);transform:translateX(2px)}
.portal-about{padding:0 0 86px;background:rgba(255,253,243,.82)}.portal-about-inner{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:30px 34px;border:1px solid rgba(76,189,184,.55);border-radius:16px;background:var(--portal-paper)}.portal-about-inner>div{max-width:760px}.portal-about-kicker{margin:0 0 4px;color:var(--portal-orange);font:700 .72rem/1.2 Georgia,serif;letter-spacing:.18em}.portal-about h2{margin:0 0 8px;font-family:Georgia,"Yu Mincho",serif;font-size:1.55rem}.portal-about h2::after{display:inline-block;width:48px;height:10px;margin-left:14px;background:linear-gradient(105deg,var(--portal-turquoise) 0 18%,transparent 18% 23%,var(--portal-orange) 23% 41%,transparent 41% 46%,var(--portal-yellow) 46% 64%,transparent 64% 69%,var(--portal-blue) 69% 87%,transparent 87%);content:"";transform:skewX(-15deg)}.portal-about p:last-child{margin:0;font-size:.92rem}.portal-outline-button{flex:0 0 auto;color:var(--portal-ink)}
.portal-site-footer{padding-top:44px;background:var(--portal-turquoise);color:#173d47}.portal-site-footer .footer-links a,.portal-site-footer .social-links a{color:#173d47}.portal-site-footer .footer-bottom{border-top-color:rgba(23,61,71,.23);color:#173d47}.portal-footer-brand p:first-child{font-family:Georgia,"Yu Mincho",serif;font-size:1.18rem}.portal-footer-brand p:last-of-type{color:#173d47}.portal-footer-brand .portal-color-chips{justify-content:flex-start;margin:12px 0 0}.portal-footer-brand .portal-color-chips i{width:17px;height:7px}
@media (max-width:1023px){.portal-site-header .site-nav{background:var(--portal-paper);color:var(--portal-ink)}.portal-site-header .nav-list a{border-color:rgba(76,189,184,.28)}.portal-grid{gap:20px}.portal-about-inner{align-items:flex-start;flex-direction:column}}
@media (max-width:767px){.portal-site-header .header-inner{min-height:68px}.portal-brand-name{font-size:.92rem}.portal-brand-label{font-size:.65rem}.portal-hero{min-height:0;padding:55px 0 56px}.portal-eyebrow{font-size:.66rem;letter-spacing:.16em}.portal-color-chips{margin:13px 0 15px}.portal-hero h1{font-size:clamp(2.15rem,11vw,3.15rem);line-height:1.24}.portal-hero>div>p:last-of-type{max-width:330px;font-size:.92rem;line-height:1.8}.portal-hero-button{margin-top:25px;min-height:48px;padding-inline:27px}.portal-spark-one{top:28%;left:1%;font-size:1.35rem}.portal-spark-two{top:5%;right:2%;font-size:1.35rem}.portal-ring{right:2%;bottom:8%;width:13px;height:13px;border-width:2px}.portal-events{padding-top:64px}.portal-section-heading{align-items:flex-end;gap:15px;margin-bottom:25px}.portal-section-heading>div:first-child p{font-size:2.65rem}.portal-section-heading h2{margin-top:5px;font-size:1rem}.portal-heading-chips{padding-bottom:8px}.portal-heading-chips i{width:18px;height:9px}.portal-grid{grid-template-columns:1fr;gap:22px}.portal-card-media img,.portal-placeholder{aspect-ratio:16/9}.portal-card-content{padding:17px 18px 19px}.portal-event-type{margin-top:-31px}.portal-card-content h3{font-size:1.25rem}.portal-about{padding-bottom:60px}.portal-about-inner{gap:24px;padding:25px 22px}.portal-about h2{font-size:1.3rem}.portal-about h2::after{display:block;margin:10px 0 0}.portal-outline-button{width:100%}.portal-site-footer{padding-top:40px}}

/* Keep alternating section backgrounds when NEWS is present. */
.news{background:var(--color-paper);border-top:4px solid var(--color-accent)}.has-news .about{background:var(--color-bg)}.has-news .features{background:var(--color-paper)}.has-news .past-events{background:var(--color-bg)}.has-news .gallery{background:var(--color-paper)}

/* Application and general inquiry routes */
.contact-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:920px;margin:0 auto}.contact-option{display:flex;align-items:center;flex-direction:column;padding:30px 26px;background:var(--color-paper);border:1px solid var(--color-line);border-top:4px solid var(--color-main);border-radius:var(--radius)}.contact-option-general{border-top-color:var(--color-accent)}.contact-option-label{margin:0 0 7px;color:var(--color-main);font:800 .7rem/1 Georgia,serif;letter-spacing:.18em}.contact-option-general .contact-option-label{color:var(--color-accent)}.contact-option h3{margin:0 0 10px;color:var(--color-item-title);font-size:1.22rem}.contact-option>p:not(.contact-option-label){max-width:350px;margin:0 0 22px;color:var(--color-item-text);font-size:.9rem;line-height:1.75}.contact-option .button{margin-top:auto}.button.is-disabled{opacity:.55;cursor:not-allowed}.general-inquiry-form{max-width:780px;padding:34px;margin:38px auto 0;background:var(--color-paper);border:1px solid var(--color-line);border-radius:var(--radius);text-align:left}.general-inquiry-form>h3{margin:0 0 24px;color:var(--color-item-title);font-size:1.35rem;text-align:center}.notice-dialog{width:min(520px,calc(100% - 32px));padding:42px 34px 32px;background:var(--color-paper);border:2px solid var(--color-main);border-radius:18px;color:var(--color-text);text-align:center}.notice-dialog::backdrop{background:rgba(20,20,20,.65)}.notice-dialog-close{position:absolute;top:8px;right:12px;padding:4px 8px;background:transparent;border:0;color:var(--color-text);font-size:1.8rem;cursor:pointer}.notice-dialog-kicker{margin:0 0 10px;color:var(--color-main);font:800 .72rem/1 Georgia,serif;letter-spacing:.2em}.notice-dialog h2{margin:0 0 14px;font-size:clamp(1.35rem,4vw,1.8rem);line-height:1.55}.notice-dialog>p:not(.notice-dialog-kicker){margin:0 0 24px;line-height:1.75}.notice-dialog-ok{min-width:150px}

/* Past-event photos: four compact square thumbnails per scroll page */
.event-gallery{margin-top:12px}.event-photos{display:grid;grid-template-columns:none;grid-template-rows:1fr;grid-auto-flow:column;grid-auto-columns:calc((100% - 24px)/4);gap:8px;margin-top:0;padding:0 0 6px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-behavior:smooth;scroll-snap-type:inline mandatory;scrollbar-color:var(--color-main) rgba(0,0,0,.08);scrollbar-width:thin}.event-photos button{scroll-snap-align:none}.event-photos button:nth-child(4n+1){scroll-snap-align:start}.event-gallery-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:7px;color:#666;font-size:.7rem}.event-gallery-controls button{display:grid;place-items:center;width:30px;height:30px;padding:0;background:var(--color-paper);border:1px solid var(--color-main);border-radius:50%;color:var(--color-main);font-size:1.2rem;line-height:1;cursor:pointer}.event-gallery-controls button:disabled{opacity:.32;cursor:default}
@media (max-width:767px){.event-gallery{margin-top:10px}.event-photos{grid-template-columns:none;grid-auto-columns:calc((100% - 18px)/4);gap:6px;margin-top:0}.event-gallery-controls{margin-top:5px}}
@media (max-width:767px){.news{padding-top:54px;padding-bottom:54px}.news-item{grid-template-columns:1fr;gap:5px;padding:17px 2px}.news-item time{font-size:.76rem}.news-body{padding:10px 28px 0 0}}
@media (max-width:767px){.contact-options{grid-template-columns:1fr;gap:14px}.contact-option{padding:25px 20px}.general-inquiry-form{padding:25px 18px;margin-top:28px}.notice-dialog{padding:38px 20px 26px}}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
