/* culture.css — このページ固有のCSS。共通部分は assets/css/shared/*.css に分離。 */

*,*::before,*::after { box-sizing: border-box; }
:root{
            --ink:#141010; --sumi:#1d1815; --cream:#f2ebdd; --paper:#e9e0ce; --perf:#1b1f27;
            --gold:#b3894f; --gold-lt:#c9ab74; --crimson:#8a2b26;
            --pad:22px; --maxw:1360px;
            
            --nav-height:78px; --padding-container:20px;
            --nav:var(--nav-height);   
            --serif:'Shippori Mincho B1',serif; --latin:'Cormorant Garamond',serif; --sans:'Zen Kaku Gothic New',sans-serif;
        }
@media (min-width:768px) { :root{ --padding-container:40px; } }
@media (min-width:1024px){ :root{ --pad:64px; --nav-height:102px; --padding-container:64px; } }
@media (min-width:1280px){ :root{ --padding-container:96px; } }
html{ -webkit-text-size-adjust:100%; }
body{ margin:0; background:var(--cream); color:var(--ink); font-family:var(--sans); font-weight:400;
            -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--ink); color:var(--cream); }
.grain{ position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.5; mix-blend-mode:multiply;
            background-image:radial-gradient(rgba(60,40,20,.05) 1px,transparent 1px); background-size:3px 3px; }
.intro{ position:fixed; inset:0; z-index:200; background:var(--ink); display:grid; place-items:center;
            transition:opacity 1s ease 0s, visibility 0s linear 1s; }
body.ready .intro{ opacity:0; visibility:hidden; }
@keyframes rise{ to{ transform:translateY(0); } }
@keyframes fade{ to{ opacity:1; } }
.site-header{ position:fixed; top:0; left:0; width:100%; z-index:50; background:transparent;
            transition:background-color .4s ease, box-shadow .4s ease, backdrop-filter .4s ease; }
.site-header > div{ width:100%; height:var(--nav-height); padding:0 var(--padding-container);
            display:flex; justify-content:space-between; align-items:center; }
.site-header a{ display:flex; align-items:center; }
.site-header .site-logo{ height:28px; width:auto; display:block; filter:brightness(0); transition:filter .4s ease; }
@media (min-width:768px){ .site-header .site-logo{ height:36px; } }
.site-header .navbtn, .site-header .site-social{ color:var(--ink); }
.site-header.is-scrolled{ background:rgba(242,235,221,.92);
            backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
            box-shadow:0 1px 0 rgba(20,16,16,.10); }
.site-header.is-scrolled .site-logo{ filter:brightness(0); }
.site-header.is-scrolled .navbtn, .site-header.is-scrolled .site-social{ color:var(--ink); }
.navbtn{ display:flex; align-items:center; gap:12px; background:none; border:0; color:inherit; cursor:pointer; padding:8px 0; min-height:44px;
            font-family:var(--latin); font-size:12px; letter-spacing:.3em; text-transform:uppercase; }
.navbtn .bars{ display:inline-flex; flex-direction:column; gap:5px; width:26px; }
.navbtn .bars i{ height:1.5px; background:currentColor; display:block; }
.navbtn .bars i:nth-child(1){ width:26px; }
.navbtn .bars i:nth-child(2){ width:18px; margin-left:auto; }
.menu{ position:fixed; inset:0; z-index:150; visibility:hidden; }
.menu.open{ visibility:visible; }
.menu__bg{ position:absolute; inset:0; background:rgba(15,12,12,.6); opacity:0; transition:opacity .5s ease; }
.menu.open .menu__bg{ opacity:1; }
.menu__panel{ position:absolute; top:0; right:0; height:100%; width:min(460px,90vw); background:var(--ink); color:var(--cream);
            transform:translateX(100%); transition:transform .6s cubic-bezier(.7,0,.2,1); padding:calc(var(--nav) + 20px) var(--pad) 40px;
            display:flex; flex-direction:column; }
.menu.open .menu__panel{ transform:translateX(0); }
.menu__close{ position:absolute; top:12px; right:calc(var(--pad) - 14px); background:none; border:0; color:var(--cream); cursor:pointer;
            font-family:var(--latin); letter-spacing:.28em; font-size:12px; text-transform:uppercase;
            /* タップ領域を 44px 以上確保する（文字サイズは変えない） */
            padding:14px; min-height:44px; display:inline-flex; align-items:center; }
.menu__kick{ font-family:var(--latin); letter-spacing:.36em; font-size:11px; color:var(--gold-lt); text-transform:uppercase; margin-bottom:22px; }
.menu__nav a{ display:flex; align-items:baseline; gap:16px; padding:15px 0; border-bottom:1px solid rgba(255,255,255,.1);
            font-family:var(--serif); font-size:24px; font-weight:600; transition:color .3s, padding-left .3s; }
.menu__nav a:hover{ color:var(--gold-lt); padding-left:8px; }
.menu__nav a .idx{ font-family:var(--latin); font-size:12px; letter-spacing:.1em; opacity:.5; }
.menu__cta{ margin-top:auto; display:flex; gap:14px; flex-wrap:wrap; padding-top:26px; }
.menu__cta a{ font-family:var(--latin); letter-spacing:.2em; font-size:12px; text-transform:uppercase;
            border:1px solid rgba(255,255,255,.4); padding:14px 26px; transition:background .3s,color .3s; }
.menu__cta a.fill{ background:var(--gold); border-color:var(--gold); color:var(--ink); }
.menu__cta a:hover{ background:var(--cream); color:var(--ink); border-color:var(--cream); }
body.menu-open{ overflow:hidden; }
.menu__nav a[aria-current="page"]{ color:var(--gold-lt); }
.kick{ font-family:var(--latin); letter-spacing:.4em; font-size:11px; text-transform:uppercase; color:var(--gold); display:inline-flex; align-items:center; gap:12px; }
.kick::before{ content:""; width:34px; height:1px; background:currentColor; display:inline-block; }
.jsil{ width:100%; }
.jsil svg{ width:100%; height:auto; display:block; overflow:visible; }
.jsil .sil-img{ filter:grayscale(.55) contrast(1.05) brightness(1.02) sepia(.22) saturate(1.15); transition:filter .9s ease; }
.fig:hover .jsil .sil-img{ filter:grayscale(0) contrast(1.05) saturate(1.12); }
.jsil-dancer{ transform-box:fill-box; transform-origin:50% 92%; animation:jsilDance 5s ease-in-out infinite; will-change:transform; }
@keyframes jsilDance{
            0%,100%{ transform:rotate(-2.4deg); }
            25%    { transform:rotate(0deg) translateY(-0.8%); }
            50%    { transform:rotate(2.4deg); }
            75%    { transform:rotate(0deg) translateY(-0.8%); }
        }
@media (prefers-reduced-motion:reduce){ .jsil-dancer{ animation:none; } }
.jsil[data-dance]{ perspective:1600px; }
.jsil[data-dance] svg{ transform-style:preserve-3d; transform-origin:50% 100%; animation:jsilTurn 9s ease-in-out infinite; will-change:transform; }
@keyframes jsilTurn{
            0%,100%{ transform:rotateY(-24deg); }
            50%    { transform:rotateY(24deg); }
        }
@media (prefers-reduced-motion:reduce){ .jsil[data-dance] svg{ animation:none; } }
.hero{ position:relative; min-height:100svh; padding:calc(var(--nav) + 20px) var(--pad) 40px; overflow:hidden; display:grid; align-content:center; }
@media (min-width:900px){ .hero{ height:100svh; min-height:0; } }
.hero__year{ position:absolute; right:2%; top:0; height:100%; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-weight:700;
            writing-mode:vertical-rl; text-orientation:upright; letter-spacing:.04em; white-space:nowrap;
            font-size:clamp(120px,25vw,320px); line-height:.94; color:transparent; -webkit-text-stroke:1px rgba(120,90,50,.30);
            pointer-events:none; z-index:0; user-select:none; }
.hero__grid{ position:relative; z-index:2; width:100%; max-width:var(--maxw); margin-inline:auto; display:grid; gap:24px; align-items:center; grid-template-columns:1fr; }
@media (min-width:900px){ .hero__grid{ grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:40px; } }
.hero__copy .kick{ margin-bottom:24px; }
.hero__title{ font-family:var(--serif); font-weight:800; color:var(--ink); line-height:1.16; font-size:clamp(32px,6vw,66px); letter-spacing:.03em; margin:0; }
.hero__title .em{ color:var(--crimson); }
.hero__lead{ margin-top:26px; max-width:30em; font-size:15px; line-height:2.1; color:#40382e; }
.fig{ position:relative; width:100%; max-width:520px; margin-inline:auto; }
.hero__copy{ position:relative; z-index:3; }
.hero__fig{ align-self:start; z-index:1; }
.hero__fig .jsil{ width:132%; margin:0; transform:translate(-22%,-2%); }
.hero__fig .jsil svg{ overflow:visible; }
@media (min-width:900px){ .hero__fig .jsil{ transform:translate(-45%,-2%) scale(1.15); } }
@media (orientation:portrait) and (max-width:1024px){
            .hero{ height:auto; min-height:100svh; }
            .hero__grid{ grid-template-columns:1fr; gap:22px; max-width:none; }
            .hero__fig{ order:-1; align-self:center; display:flex; justify-content:center; }
            .hero__fig .jsil{ width:64%; max-width:340px; margin:0; transform:scale(2); }
            /* scale(2) はレイアウト上の高さを持たないため、はみ出す足元の分だけ下に余白を取る（無いとキッカーと重なる） */
            .hero__fig{ margin-bottom:min(23vw,120px); }
            .hero{ padding-bottom:110px; }   /* .scrollcue（絶対配置）と本文の重なり防止 */
            .hero__year{ top:auto; bottom:clamp(56px,12vh,150px); height:auto; right:var(--pad); left:auto; transform:none;
                align-items:flex-start; justify-content:flex-start; font-size:clamp(80px,22vw,150px); }
        }
.scrollcue{ position:absolute; bottom:20px; left:var(--pad); z-index:3; display:flex; flex-direction:column;
            align-items:center; gap:10px; color:var(--gold); font-family:var(--latin); letter-spacing:.3em; font-size:10px; text-transform:uppercase; }
.scrollcue .ln{ width:1px; height:46px; background:linear-gradient(180deg,var(--gold),transparent); overflow:hidden; }
.scrollcue .ln::after{ content:""; display:block; width:1px; height:14px; background:var(--cream); animation:drop 1.8s ease-in-out infinite; }
@keyframes drop{ 0%{ transform:translateY(-14px); } 60%,100%{ transform:translateY(46px); } }
.concept{ position:relative; background:var(--ink); color:var(--cream); padding:120px var(--pad); overflow:hidden; z-index:2; }
.concept__mask{ position:absolute; inset:0; z-index:0; }
.concept__mask img{ width:100%; height:100%; object-fit:cover; opacity:.30; filter:grayscale(.2) contrast(1.05) saturate(1.1); }
.concept__mask::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(20,16,16,.4),rgba(20,16,16,.85)); }
.concept__in{ position:relative; z-index:2; max-width:900px; margin:0 auto; text-align:center; }
.concept__jp{ font-family:var(--serif); font-weight:700; font-size:clamp(30px,6vw,64px); line-height:1.4; letter-spacing:.03em; margin:0; }
.concept__jp .g{ color:var(--gold-lt); }
.concept__body{ margin:34px auto 0; max-width:34em; line-height:2.2; font-size:15px; color:#cfc4b0; }
.rows{ display:flex; flex-direction:column; }
.row{ position:relative; isolation:isolate; overflow:hidden; --band:min(var(--maxw), 37.5vw + 640px); --gutter:max(0px, calc((100vw - var(--band)) / 2)); min-height:clamp(440px,62vh,660px); display:flex; align-items:center; padding:56px calc(var(--gutter) + var(--pad)); }
.row.rev{ justify-content:flex-end; }
.row__fig{ position:absolute; inset:0; margin:0; z-index:0; pointer-events:none; overflow:hidden; }
.row__bg{ position:absolute; inset:0; background:var(--scene) center/cover no-repeat; filter:grayscale(.9) sepia(.14) brightness(1.05) contrast(.95); }
.row__bg::after{ content:""; position:absolute; inset:0; background:rgba(236,232,224,.46); }
.row__vivid{ position:absolute; inset:0; background:var(--scene) center/cover no-repeat; filter:contrast(1.08) saturate(1.5) brightness(1.03);
            -webkit-mask:var(--mask) right var(--gutter) bottom / auto 96% no-repeat; mask:var(--mask) right var(--gutter) bottom / auto 96% no-repeat; }
.row.rev .row__vivid{ -webkit-mask:var(--mask) left var(--gutter) bottom / auto 96% no-repeat; mask:var(--mask) left var(--gutter) bottom / auto 96% no-repeat; }
.row::after{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none; }
.row:not(.rev)::after{ background:linear-gradient(90deg, rgba(242,235,221,.98) 0%, rgba(242,235,221,.94) 30%, rgba(242,235,221,.6) 45%, rgba(242,235,221,0) 64%); }
.row.rev::after{ background:linear-gradient(270deg, rgba(242,235,221,.98) 0%, rgba(242,235,221,.94) 30%, rgba(242,235,221,.6) 45%, rgba(242,235,221,0) 64%); }
.row__txt{ position:relative; z-index:2; width:min(440px,92%); }
@media (max-width:760px){
            .row, .row.rev{ flex-direction:column; align-items:stretch; justify-content:flex-end; min-height:clamp(460px,84vh,680px); padding:0 var(--pad) 44px; }
            .row__vivid, .row.rev .row__vivid{ -webkit-mask-position:center top; mask-position:center top; -webkit-mask-size:auto 60%; mask-size:auto 60%; }
            .row:not(.rev)::after, .row.rev::after{ background:linear-gradient(180deg, rgba(242,235,221,0) 26%, rgba(242,235,221,.5) 50%, rgba(242,235,221,.96) 76%); }
            .row__txt{ width:100%; }
        }
.row__txt .num{ font-family:var(--latin); font-style:italic; font-size:15px; letter-spacing:.2em; color:var(--gold); }
.row__txt h3{ font-family:var(--serif); font-weight:800; font-size:clamp(30px,5vw,50px); margin:10px 0 0; line-height:1.1; }
.row__txt h3 .en{ display:block; font-family:var(--latin); font-weight:500; font-size:14px; letter-spacing:.34em; text-transform:uppercase; color:var(--gold); margin-top:14px; }
.row__txt .desc{ margin-top:22px; max-width:26em; line-height:2.1; color:#453d31; font-size:14px; }
.row__txt .thread{ margin-top:26px; display:inline-flex; align-items:center; gap:14px; font-family:var(--latin); letter-spacing:.22em; font-size:12px; text-transform:uppercase; color:var(--ink); }
.row__txt .thread .ar{ transition:transform .4s ease; }
.row__txt a.thread:hover .ar{ transform:translateX(8px); }
.perf{ position:relative; z-index:2; background:var(--perf); color:var(--cream); padding:110px 0 120px; overflow:hidden; }
.perf::before{ content:""; position:absolute; inset:0; pointer-events:none;
            background:radial-gradient(ellipse 70% 50% at 50% 0%, rgba(201,171,116,.10), transparent 60%); }
.perf__head{ position:relative; text-align:center; margin-bottom:64px; padding:0 var(--pad); }
.perf__head .kick{ justify-content:center; color:var(--gold-lt); }
.perf__head h2{ font-family:var(--serif); font-weight:800; font-size:clamp(28px,5vw,54px); margin:18px 0 0; letter-spacing:.05em; }
.perf__head p{ margin:14px auto 0; max-width:30em; font-size:13px; color:#a9a08e; line-height:1.9; }
.perf__grid{ position:relative; display:flex; flex-wrap:nowrap; width:max-content; gap:24px; padding:0 12px; animation:perfMarquee 55s linear infinite; }
.perf:hover .perf__grid{ animation-play-state:paused; }
@keyframes perfMarquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.perf__item{ flex:0 0 auto; width:clamp(212px,19vw,278px); display:block; text-align:center; }
@media (prefers-reduced-motion:reduce){ .perf__grid{ animation:none; } .perf{ overflow-x:auto; } }
.perf__fig{ position:relative; aspect-ratio:3/4; display:grid; place-items:center; overflow:hidden;
            background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(0,0,0,.14)); border:1px solid rgba(201,171,116,.16);
            transition:border-color .4s ease; }
.perf__item:hover .perf__fig{ border-color:rgba(201,171,116,.5); }
.perf__fig .jsil{ width:88%; transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.perf__fig .jsil[data-fit="tall"]{ width:auto; height:46%; display:flex; align-items:center; justify-content:center; }
.perf__fig .jsil[data-fit="tall"] svg{ width:auto; height:100%; }
.perf__item:hover .perf__fig .jsil{ transform:scale(1.05); }
.perf__play{ position:absolute; inset:0; margin:auto; width:54px; height:54px; border:1.5px solid var(--gold);
            border-radius:50%; display:grid; place-items:center; transition:background .35s,border-color .35s,transform .35s; }
.perf__play::before{ content:""; width:0; height:0; margin-left:3px;
            border-left:11px solid var(--gold); border-top:7px solid transparent; border-bottom:7px solid transparent; transition:border-left-color .35s; }
.perf__item:hover .perf__play{ background:var(--gold); border-color:var(--gold); transform:scale(1.1); }
.perf__item:hover .perf__play::before{ border-left-color:#fff; }
.perf__cap{ margin-top:18px; }
.perf__cap h3{ font-family:var(--serif); font-weight:700; font-size:19px; letter-spacing:.06em; margin:0; }
.perf__cap h3 span{ display:block; font-family:var(--latin); font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-lt); margin-top:6px; }
.perf__cap p{ margin:9px 0 0; font-size:12px; color:#b3a892; letter-spacing:.04em; }
.reveal{ opacity:0; transform:translateY(34px); transition:opacity 1s ease, transform 1.1s cubic-bezier(.2,.7,.2,1); }
.reveal.in{ opacity:1; transform:none; }
.shead{ text-align:center; padding:0 var(--pad); }
.shead .kick{ justify-content:center; }
.shead h2{ font-family:var(--serif); font-weight:800; font-size:clamp(28px,5vw,54px); margin:18px 0 0; letter-spacing:.04em; }
.faq{ position:relative; z-index:2; background:var(--cream); padding:100px 0; }
.faq .shead{ margin-bottom:46px; }
.faq__list{ width:100%; max-width:1000px; margin:0 auto; padding:0 var(--pad); }
.faq details{ border-top:1px solid rgba(20,16,16,.14); }
.faq details:last-child{ border-bottom:1px solid rgba(20,16,16,.14); }
.faq summary{ list-style:none; cursor:pointer; display:flex; align-items:center; gap:20px; padding:24px 4px; }
.faq summary::-webkit-details-marker{ display:none; }
.faq .qi{ font-family:var(--latin); font-style:italic; font-size:14px; letter-spacing:.12em; color:var(--gold); min-width:2.4em; }
.faq .q{ flex:1; font-family:var(--serif); font-weight:600; font-size:clamp(15px,2.2vw,19px); letter-spacing:.02em; color:var(--ink); transition:color .3s; }
.faq summary:hover .q{ color:var(--gold); }
.faq .pm{ flex-shrink:0; color:var(--gold); font-size:24px; line-height:1; transition:transform .45s cubic-bezier(.2,.7,.2,1); }
.faq details[open] .pm{ transform:rotate(45deg); }
.faq .a{ margin:0; padding:0 46px 26px calc(2.4em + 20px); max-width:60em; color:#4a4235; line-height:2.05; font-size:14px; }
@media (max-width:600px){ .faq .qi{ display:none; } .faq .a{ padding-left:4px; padding-right:10px; } }
.access{ position:relative; z-index:2; background:var(--paper); padding:100px 0 110px; }
.access .shead{ margin-bottom:46px; }
.fam{ position:relative; z-index:2; background:var(--cream); padding:100px 0 100px; }
.fam__head{ text-align:center; margin:0 auto; padding:0 var(--pad); max-width:var(--maxw); }
.fam__head .kick{ justify-content:center; }
.fam__head h2{ font-family:var(--serif); font-weight:800; font-size:clamp(30px,5.4vw,58px); margin:20px 0 0; letter-spacing:.04em; }
.fam__head p{ margin:18px auto 0; max-width:40em; color:#4a4235; line-height:2; font-size:14px; }
.fam .rows{ margin-top:60px; }
.fam .row{ min-height:clamp(540px,74vh,820px); }
.fam .row__vivid{ -webkit-mask:none; mask:none; filter:contrast(1.03) saturate(1.12) brightness(1.0); }
.fam .row__txt .desc em{ font-style:italic; color:var(--ink); }
.fam__why{ max-width:var(--maxw); margin:88px auto 0; padding:56px var(--pad) 0; border-top:1px solid rgba(20,16,16,.12); }
.fam__why-head{ text-align:center; }
.fam__why-head .kick{ justify-content:center; }
.fam__why-head h3{ font-family:var(--serif); font-weight:700; font-size:clamp(22px,3.4vw,34px); margin:16px 0 0; }
.fam__grid{ list-style:none; margin:44px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(20,16,16,.12); border:1px solid rgba(20,16,16,.12); }
.fam__grid li{ background:var(--cream); padding:32px 26px; }
.fam__grid .i{ display:inline-block; font-family:var(--serif); font-weight:700; font-size:18px; color:var(--gold); letter-spacing:.14em; }
.fam__grid h3{ font-family:var(--serif); font-weight:700; font-size:17px; margin:12px 0 0; color:var(--ink); }
.fam__grid p{ margin:10px 0 0; font-size:13px; line-height:1.9; color:#544b3d; }
.fam__cta{ text-align:center; margin-top:52px; }
.fam__cta .thread{ display:inline-flex; align-items:center; gap:14px; font-family:var(--latin); letter-spacing:.22em; font-size:12px; text-transform:uppercase; color:var(--ink); border-bottom:1px solid var(--gold); padding-bottom:6px; }
.fam__cta .thread .ar{ transition:transform .4s ease; }
.fam__cta .thread:hover .ar{ transform:translateX(8px); }
@media (max-width:860px){
            .fam__grid{ grid-template-columns:1fr; }
        }
@media (min-width:861px) and (max-width:1100px){
            .fam__grid{ grid-template-columns:repeat(2,1fr); }
        }
.culex{ position:relative; z-index:2; background:var(--sumi); color:var(--cream); padding:110px var(--pad) 120px; overflow:hidden; }
.culex::before{ content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(ellipse 70% 50% at 50% 0%, rgba(201,171,116,.10), transparent 60%); }
.culex__head{ position:relative; text-align:center; max-width:var(--maxw); margin:0 auto; }
.culex__head .kick{ justify-content:center; color:var(--gold-lt); }
.culex__head h2{ font-family:var(--serif); font-weight:800; font-size:clamp(30px,5.4vw,58px); margin:18px 0 0; letter-spacing:.04em; line-height:1.12; }
.culex__head h2 .g{ color:var(--gold-lt); }
.culex__head p{ margin:22px auto 0; max-width:42em; color:#c9bda8; line-height:2.1; font-size:14px; }
.culex__grid{ position:relative; max-width:var(--maxw); margin:60px auto 0; display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(201,171,116,.22); border:1px solid rgba(201,171,116,.22); }
.culex__card{ background:var(--sumi); padding:34px 26px 40px; }
.culex__kanji{ display:inline-block; font-family:var(--serif); font-weight:700; font-size:22px; color:var(--gold-lt); letter-spacing:.1em; }
.culex__card h3{ font-family:var(--serif); font-weight:700; font-size:20px; margin:14px 0 0; color:var(--cream); }
.culex__card h3 .en{ display:block; font-family:var(--latin); font-weight:500; font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-top:8px; }
.culex__card p{ margin:14px 0 0; font-size:13px; line-height:1.95; color:#b7ab97; }
.culex__card p em{ font-style:italic; color:var(--gold-lt); }
.culex__cta{ text-align:center; margin-top:52px; }
.culex__cta .thread{ display:inline-flex; align-items:center; gap:14px; font-family:var(--latin); letter-spacing:.22em; font-size:12px; text-transform:uppercase; color:var(--cream); border-bottom:1px solid var(--gold); padding-bottom:6px; }
.culex__cta .thread .ar{ transition:transform .4s ease; }
.culex__cta .thread:hover .ar{ transform:translateX(8px); }
@media (max-width:980px){ .culex__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .culex__grid{ grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce){ *{ animation:none !important; transition:none !important; } .reveal{ opacity:1; transform:none; } }
body.is-page-loading { overflow: hidden; }
#jisaku-loader { position: fixed; inset: 0; z-index: 4000; background: #f6f1ee; display: flex; align-items: center; justify-content: center; opacity: 1; transition: opacity .6s ease; }
#jisaku-loader.is-hidden { opacity: 0; pointer-events: none; }
#jisaku-loader .jl-logo { width: clamp(112px, 16vw, 188px); height: auto; filter: brightness(0); opacity: 0; transform: translateY(10px) scale(.98); animation: jlLogoIn 1s cubic-bezier(.2,.7,.2,1) forwards; }
@keyframes jlLogoIn { to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { #jisaku-loader .jl-logo { animation: none; opacity: 1; transform: none; } }
.skip-link{position:absolute;left:-9999px;top:0;z-index:5000;}
.skip-link:focus{left:0;padding:14px 20px;background:#2e3a3e;color:#fff;
        font:700 12px/1 "Lato",sans-serif;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;}
.h1 { font-family: "Vollkorn", serif; font-weight: 500; line-height: 1.04; letter-spacing: .005em;
              font-size: clamp(2.6rem, 6vw + .2rem, 7rem); }
.btn-ants { position: relative; transition: border-color .35s ease, color .35s ease; }
.btn-ants:hover { border-color: #c19a5e !important; color: #c19a5e !important; }
.kicker { font-family: "Lato", sans-serif; font-size: 11px; letter-spacing: .28em; font-weight: 700;
                  color: #c19a5e; text-transform: uppercase; }
.kicker .idx { opacity: .6; margin-right: .9em; letter-spacing: .1em; }
.kv-kicker { font-family: "Lato", sans-serif; font-size: 10px; letter-spacing: .3em; font-weight: 700;
                     color: #f7f4f0; opacity: .8; text-transform: uppercase; }
.kv-mark { display: inline-block; width: .5rem; height: .5rem; background: #e3bf8d; border-radius: 9999px; }
.site-footer { transform: translateY(110%); opacity: 0; pointer-events: none;
                       transition: transform .35s ease, opacity .35s ease; }
.site-footer.is-visible { transform: translateY(0); opacity: 1; pointer-events: auto; }
:where(footer.bg-geino-dark, footer.site-footer) :where(*, *::before, *::after) {
            box-sizing: border-box; border-width: 0; border-style: solid; border-color: rgba(255,255,255,.1);
        }
:where(footer.bg-geino-dark, footer.site-footer) :where(ul, ol) { list-style: none; margin: 0; padding: 0; }
:where(footer.bg-geino-dark, footer.site-footer) :where(p, h1, h2, h3, h4, h5, h6, address) { margin: 0; }
:where(footer.bg-geino-dark, footer.site-footer) :where(h1, h2, h3, h4, h5, h6) { font-size: inherit; font-weight: inherit; }
:where(footer.bg-geino-dark, footer.site-footer) :where(a) { color: inherit; text-decoration: inherit; }
:where(footer.bg-geino-dark, footer.site-footer) :where(img, svg) { display: block; max-width: 100%; height: auto; }
footer .h1 { color: #f7f4f0 !important; }
