:root{
  --green:#99cc00;
  --green2:#85b500;
  --deep:#557514;
  --dark:#405723;
  --cream:#fbf8ee;
  --paper:#fffefa;
  --brown:#6a431f;
  --orange:#eba331;
  --line:#e8dfc8;
  --text:#49463d;
  --shadow:0 16px 36px rgba(80,90,40,.13);
  --container:min(1180px,calc(100vw - 32px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:var(--text);background:var(--cream);line-height:1.8;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
.container{width:var(--container);margin-inline:auto}
.page-shell{overflow:hidden;background:radial-gradient(circle at 12% 18%,rgba(153,204,0,.055),transparent 26%),var(--cream)}

/* header */
.site-header{position:sticky;top:0;z-index:50;padding-bottom:10px;background:rgba(251,248,238,.9);backdrop-filter:blur(12px)}
.header-card{background:rgba(255,255,255,.94);border:1px solid rgba(153,204,0,.12);border-top:0;border-radius:0 0 38px 38px;box-shadow:0 8px 26px rgba(84,91,53,.10);padding:15px 30px 16px}
.topbar{min-height:74px;display:grid;grid-template-columns:330px auto 1fr;align-items:center;gap:22px}
.logo-mark,.footer-logo-mark{display:block;width:322px;height:62px;background:url("../imgs/head3.gif") left center/auto 62px no-repeat}
.header-mascots{height:44px;width:auto;justify-self:start}
.utility-links{display:flex;justify-content:flex-end;gap:28px;color:var(--deep);font-weight:800;font-size:.94rem}
.utility-link{display:flex;align-items:center;gap:8px;white-space:nowrap}.utility-link svg{width:22px;height:22px;fill:#79a600}
.menu-toggle{display:none;width:48px;height:48px;border:0;border-radius:14px;background:linear-gradient(180deg,#a6d31f,#7eab00);box-shadow:0 8px 18px rgba(103,144,0,.23);padding:12px}.menu-toggle span{display:block;height:2px;background:#fff;border-radius:2px;margin:5px 0}
.global-nav{border-top:2px solid rgba(126,171,0,.55);padding-top:16px}
.nav-track{display:grid;grid-template-columns:repeat(5,1fr);gap:22px}
.nav-pill{height:48px;border:1px solid rgba(112,139,50,.17);border-radius:999px;display:grid;place-items:center;background:#fffdf9;color:var(--deep);font-weight:800;box-shadow:0 4px 13px rgba(0,0,0,.035);transition:.2s ease}
.nav-pill:hover{transform:translateY(-2px);border-color:rgba(126,171,0,.4)}

/* hero */
.hero-section{position:relative;padding-top:6px}
.hero-stage{position:relative;height:615px}
.hero-slider{position:absolute;inset:0 0 24px 0;border-radius:28px 28px 38px 38px;overflow:hidden;box-shadow:var(--shadow);background:#ddd}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity .7s ease}.hero-slide.is-active{opacity:1}.hero-slide img{width:100%;height:100%;object-fit:cover;object-position:center 35%}
.hero-slider::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(23,29,19,.03) 0%,rgba(23,29,19,.01) 48%,rgba(255,252,242,.1) 100%);pointer-events:none}
.slider-btn{position:absolute;top:50%;z-index:5;width:44px;height:44px;border:0;border-radius:50%;transform:translateY(-50%);background:rgba(255,255,255,.87);color:var(--deep);font-size:2rem;line-height:1;box-shadow:0 7px 18px rgba(0,0,0,.12);cursor:pointer}.slider-btn.prev{left:17px}.slider-btn.next{right:17px}
.slider-dots{position:absolute;z-index:5;left:20px;bottom:22px;display:flex;gap:8px}.slider-dots button{width:10px;height:10px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.55);box-shadow:0 1px 3px rgba(0,0,0,.15)}.slider-dots button.is-active{background:#fff;transform:scale(1.18)}
.welcome-board{position:absolute;z-index:7;right:2.8%;top:56px;width:min(51%,555px);min-height:430px;padding:34px 38px 42px;border-radius:46% 42% 44% 40% / 25% 30% 22% 27%;background:linear-gradient(180deg,#fffdf8 0%,#f8f0df 100%);box-shadow:0 20px 45px rgba(65,68,36,.17);border:1px solid rgba(153,204,0,.15);overflow:visible}
.welcome-board::before{content:"";position:absolute;inset:13px;border-radius:45% 40% 43% 38% / 25% 30% 23% 28%;border:1px solid rgba(140,169,78,.23);box-shadow:inset 0 0 36px rgba(169,139,81,.05)}
.welcome-board::after{content:"";position:absolute;inset:0;border-radius:inherit;opacity:.22;pointer-events:none;background:repeating-linear-gradient(2deg,transparent 0 14px,rgba(126,102,58,.10) 15px 16px,transparent 17px 29px)}
.welcome-mascots{position:relative;z-index:2;width:auto;height:57px;margin:0 auto 20px}
.welcome-board h1{position:relative;z-index:2;margin:0;text-align:center;line-height:1.03}.welcome-board h1 span{display:block;color:#78ad00;font-size:clamp(2.2rem,4.1vw,4.15rem);font-weight:900;letter-spacing:.02em;text-shadow:0 2px 0 #fff}.welcome-board h1 strong{display:block;color:var(--brown);font-size:clamp(3rem,5.8vw,5rem);font-weight:900;letter-spacing:.08em;margin-top:10px}
.welcome-ribbon{position:absolute;z-index:5;left:5%;right:5%;bottom:-38px;margin:0;padding:17px 20px;border-radius:10px;background:linear-gradient(180deg,#98c419,#789f0a);color:#fff;text-align:center;font-size:1.06rem;font-weight:800;box-shadow:0 13px 25px rgba(102,135,9,.26);border:1px dashed rgba(255,255,255,.48)}
.welcome-ribbon::before,.welcome-ribbon::after{content:"";position:absolute;top:12px;width:45px;height:55px;background:#82aa0d;z-index:-1}.welcome-ribbon::before{left:-31px;clip-path:polygon(100% 0,100% 100%,0 75%,24% 50%,0 25%)}.welcome-ribbon::after{right:-31px;clip-path:polygon(0 0,0 100%,100% 75%,76% 50%,100% 25%)}
.decor{position:absolute;z-index:4;pointer-events:none}.branch-left{left:-11px;top:46px;width:92px;height:142px;transform:rotate(-15deg)}.branch-left::before,.branch-right::before{content:"";position:absolute;width:3px;height:128px;background:#78933b;border-radius:100%;left:47%;top:8px}.branch-left::after,.branch-right::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 30% 20%,#88b850 0 8%,transparent 9%),radial-gradient(ellipse at 70% 33%,#769e38 0 9%,transparent 10%),radial-gradient(ellipse at 27% 52%,#95bc5e 0 9%,transparent 10%),radial-gradient(ellipse at 69% 66%,#6f9636 0 9%,transparent 10%),radial-gradient(ellipse at 30% 82%,#88b850 0 9%,transparent 10%)}.branch-right{right:-8px;top:54px;width:98px;height:142px;transform:rotate(21deg) scaleX(-1)}
.acorn{right:26px;bottom:32px;width:53px;height:53px;border-radius:50% 50% 46% 46%;background:linear-gradient(180deg,#b67b27 0 33%,#7b4d18 34% 42%,#a56720 43% 100%);transform:rotate(20deg);box-shadow:0 4px 8px rgba(101,67,22,.2)}.acorn::before{content:"";position:absolute;width:13px;height:17px;background:#78501c;border-radius:60% 20%;right:6px;top:-11px;transform:rotate(30deg)}
.hero-wave{position:absolute;z-index:3;left:-5%;right:-5%;bottom:-1px;height:105px;background:var(--cream);border-radius:54% 48% 0 0/86% 78% 0 0;pointer-events:none}

/* intro */
.intro-section{position:relative;z-index:5;display:grid;grid-template-columns:1.02fr .98fr;gap:34px;align-items:center;padding:34px 0 40px}.intro-copy{position:relative;padding:8px 14px 8px 10px}.intro-copy h2{margin:0 0 16px;color:var(--deep);font-size:clamp(1.7rem,3vw,2.65rem);line-height:1.45;letter-spacing:.02em}.intro-copy p{margin:0;font-size:1rem;line-height:2}.intro-photo{height:330px;border-radius:48% 52% 48% 52% / 38% 42% 58% 62%;overflow:hidden;box-shadow:var(--shadow);background:#fff}.intro-photo img{width:100%;height:100%;object-fit:cover;object-position:center 40%}.intro-acorn{position:absolute;right:30px;bottom:-12px;width:24px;height:29px;border-radius:50% 50% 45% 45%;background:#a86b22;transform:rotate(18deg)}.intro-acorn::before{content:"";position:absolute;left:-3px;top:-6px;width:30px;height:10px;border-radius:50%;background:#704b1d}

/* feature cards */
.features-section{padding:14px 0 34px;position:relative}.features-section::before{content:"";position:absolute;left:0;right:0;top:0;bottom:0;background:radial-gradient(circle at 5% 55%,rgba(153,204,0,.06),transparent 18%),radial-gradient(circle at 95% 26%,rgba(235,163,49,.045),transparent 16%);pointer-events:none}.feature-grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.feature-card{position:relative;background:rgba(255,254,250,.94);border:1px solid var(--line);border-radius:28px;padding:22px 20px 19px;box-shadow:0 10px 24px rgba(80,80,40,.07);display:flex;flex-direction:column;min-width:0}.feature-title{display:flex;gap:12px;align-items:center}.feature-title h2{margin:0;color:var(--deep);font-size:1.55rem;line-height:1.2}.feature-icon{width:52px;height:52px;flex:0 0 52px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:900;box-shadow:0 7px 14px rgba(0,0,0,.08)}.icon-green{background:linear-gradient(180deg,#a2cf23,#77a003)}.icon-orange{background:linear-gradient(180deg,#f2b540,#e58a18)}.feature-card p{font-size:.9rem;line-height:1.75;margin:13px 1px 15px;min-height:78px}.feature-photo{overflow:hidden;border-radius:22px;margin-top:auto}.feature-photo img{width:100%;height:180px;object-fit:cover;transition:transform .35s ease}.feature-card:hover .feature-photo img{transform:scale(1.035)}.detail-button{align-self:center;position:relative;margin:-17px auto 0;z-index:3;min-width:130px;height:36px;padding:0 16px;border-radius:999px;background:#fffefa;border:1px solid rgba(97,130,34,.45);display:inline-flex;align-items:center;justify-content:center;color:var(--deep);font-size:.88rem;font-weight:800;box-shadow:0 6px 13px rgba(60,70,30,.08)}.detail-button::after{content:"›";width:19px;height:19px;border-radius:50%;display:grid;place-items:center;margin-left:9px;background:#779d17;color:#fff;font-size:.92rem}.detail-button.ghost{margin:0;background:transparent;box-shadow:none}.detail-button.small{margin:0;min-width:112px;height:32px;font-size:.82rem}

/* daily gallery */
.daily-section{background:rgba(255,254,250,.88);border:1px solid var(--line);border-radius:28px;padding:20px 22px 22px;margin-bottom:26px;box-shadow:0 9px 23px rgba(75,78,42,.06)}.daily-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}.daily-head h2{margin:0;color:var(--brown);font-size:1.75rem}.daily-head .home-gallery-title h2{color:var(--deep);font-size:1.55rem;line-height:1.2}.daily-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.daily-gallery img{width:100%;height:156px;border-radius:18px;object-fit:cover}

/* bottom */
.bottom-panels{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding-bottom:40px}.info-panel{min-height:170px;display:grid;grid-template-columns:1fr 46%;align-items:center;gap:16px;background:linear-gradient(180deg,#fffefa,#f8f4e6);border:1px solid var(--line);border-radius:25px;padding:16px 17px;box-shadow:0 9px 22px rgba(75,78,42,.06);overflow:hidden}.info-copy{display:flex;gap:12px;align-items:flex-start}.info-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#80ad00;font-size:.9rem;flex:0 0 34px}.mail-shape{font-size:1.4rem}.info-panel h2{margin:0;color:var(--deep);font-size:1.65rem}.info-panel p{margin:4px 0 13px;font-size:.85rem;line-height:1.65}.info-panel>img{width:100%;height:136px;object-fit:cover;border-radius:18px;background:#fff}.map-panel>img{object-fit:contain;padding:5px}

/* footer */
.site-footer{background:linear-gradient(180deg,#719b08,#577d02);color:#fff;padding:30px 0 46px}.footer-inner{display:grid;grid-template-columns:auto 1fr;gap:16px 34px;align-items:center}.footer-brand{display:flex;align-items:center;gap:16px}.footer-logo-mark{width:250px;height:52px;background-size:auto 52px}.footer-brand img{height:40px;width:auto}.footer-contact{font-size:.86rem;line-height:1.65}.footer-contact p{margin:0}.footer-nav{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.24);padding-top:14px;display:flex;gap:20px;flex-wrap:wrap;font-size:.86rem;font-weight:700}

@media(max-width:980px){
  .topbar{grid-template-columns:300px auto 1fr}.logo-mark{width:290px;height:56px;background-size:auto 56px}.header-mascots{height:39px}.utility-links{gap:15px;font-size:.84rem}.nav-track{gap:12px}
  .hero-stage{height:auto;padding-bottom:18px}.hero-slider{position:relative;height:520px;inset:auto}.welcome-board{position:relative;right:auto;top:auto;width:min(90%,650px);min-height:0;margin:-86px auto 0;padding:30px 32px 48px}.hero-wave{display:none}
  .intro-section{padding-top:36px}.feature-grid{grid-template-columns:repeat(2,1fr)}.feature-card p{min-height:58px}.daily-gallery{grid-template-columns:repeat(2,1fr)}.daily-gallery img{height:220px}
}
@media(max-width:760px){
  :root{--container:min(100% - 22px,680px)}.site-header{padding-bottom:6px}.header-card{padding:11px 13px 13px;border-radius:0 0 25px 25px}.topbar{display:flex;min-height:58px}.logo-mark{width:235px;height:47px;background-size:auto 47px}.header-mascots,.utility-links{display:none}.menu-toggle{display:block;margin-left:auto}.global-nav{display:none;border-top:1px solid rgba(126,171,0,.3);padding-top:12px;margin-top:8px}.global-nav.is-open{display:block}.nav-track{grid-template-columns:1fr;gap:8px}.nav-pill{height:43px}
  .hero-section{padding-top:3px}.hero-slider{height:355px;border-radius:20px}.hero-slide img{object-position:center 35%}.slider-btn{width:38px;height:38px}.slider-btn.prev{left:10px}.slider-btn.next{right:10px}.slider-dots{left:50%;transform:translateX(-50%);bottom:13px}
  .welcome-board{width:calc(100% - 6px);margin-top:-48px;border-radius:28px;min-height:0;padding:22px 17px 45px}.welcome-board::before{inset:9px;border-radius:23px}.welcome-mascots{height:45px;margin-bottom:12px}.welcome-board h1 span{font-size:1.75rem}.welcome-board h1 strong{font-size:2.75rem;margin-top:6px}.welcome-ribbon{left:5%;right:5%;bottom:-28px;padding:12px 11px;font-size:.88rem}.decor{display:none}
  .intro-section{grid-template-columns:1fr;gap:18px;padding:52px 0 26px}.intro-copy{padding:0 4px}.intro-copy h2{font-size:1.45rem}.intro-copy p{font-size:.93rem;line-height:1.9}.intro-photo{height:260px;border-radius:28px}.intro-acorn{display:none}
  .features-section{padding-top:4px}.feature-grid{grid-template-columns:1fr;gap:14px}.feature-card{padding:17px}.feature-title h2{font-size:1.35rem}.feature-card p{min-height:0;margin-bottom:12px}.feature-photo img{height:220px}
  .daily-section{padding:16px 14px}.daily-head h2{font-size:1.4rem}.daily-head .home-gallery-title h2{font-size:1.35rem}.daily-head .detail-button{font-size:.78rem;min-width:105px}.daily-head-gallery{align-items:flex-start;flex-wrap:wrap}.daily-head-gallery .home-gallery-title{width:100%}.daily-head-gallery .home-gallery-button{margin-left:auto}.daily-gallery{grid-template-columns:1fr 1fr;gap:8px}.daily-gallery img{height:122px;border-radius:13px}
  .bottom-panels{grid-template-columns:1fr;gap:12px}.info-panel{grid-template-columns:1fr 42%;min-height:150px}.info-panel h2{font-size:1.4rem}.info-panel>img{height:120px}.footer-inner{grid-template-columns:1fr;gap:14px}.footer-brand{flex-wrap:wrap}.footer-logo-mark{width:210px;height:44px;background-size:auto 44px}.footer-brand img{height:34px}.footer-nav{grid-column:auto;gap:10px 16px}
}
@media(max-width:420px){.logo-mark{width:205px;height:42px;background-size:auto 42px}.menu-toggle{width:44px;height:44px}.hero-slider{height:320px}.welcome-board h1 span{font-size:1.55rem}.welcome-board h1 strong{font-size:2.45rem}.feature-photo img{height:190px}.daily-gallery img{height:106px}.info-panel{grid-template-columns:1fr}.info-panel>img{height:110px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* ===== refinement v4 ===== */
body{overflow-x:hidden}
.page-shell{overflow-x:clip}
.scroll-progress{position:fixed;z-index:1200;left:0;top:0;width:100%;height:3px;pointer-events:none}.scroll-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--green-dark),var(--green));box-shadow:0 0 12px rgba(153,204,0,.55)}
.site-header.is-scrolled .header-card{box-shadow:0 14px 30px rgba(103,112,57,.16)}
.hero-slider{min-height:560px}
.hero-overlay{background:linear-gradient(90deg,rgba(0,0,0,0) 0 43%,rgba(0,0,0,.03) 58%,rgba(255,250,239,.05) 100%)}
.welcome-board{width:min(41%,440px);right:2%;top:88px;padding:24px 24px 28px}
.welcome-board h1 span{font-size:clamp(1.9rem,3.6vw,3.65rem)}
.welcome-board h1 strong{font-size:clamp(2.35rem,4.5vw,3.9rem)}
.welcome-ribbon{margin-top:22px;font-size:1rem}
.intro-card{position:relative;background:rgba(255,253,248,.92);border:1px solid var(--line);border-radius:30px;padding:28px 28px 40px;box-shadow:0 10px 24px rgba(0,0,0,.05)}
.intro-card .acorn-sprite{position:absolute;right:18px;bottom:12px;width:56px;height:54px;overflow:hidden;display:block}
.intro-card .acorn-sprite img{width:276px;max-width:none;transform:translateX(-55px) translateY(0)}
.smile-panel,.smile-gallery,.feature-card,.bottom-panel,.intro-card{background:#fffef9}
.feature-card,.smile-panel,.smile-gallery,.bottom-panel{border-color:#e3dbc3}
@media (max-width:980px){
  .welcome-board{width:min(52%,430px);top:74px}
}
@media (max-width:760px){
  .hero-slider{min-height:320px}
  .welcome-board{position:relative;top:auto;right:auto;width:calc(100% - 8px);margin:-38px auto 0;padding:20px 16px 22px}
  .intro-card{padding:22px 20px 42px}
  .intro-card .acorn-sprite{right:10px;bottom:8px;width:50px;height:48px}
}
/* ===== v4.1 final tweaks ===== */
.welcome-board{width:min(38%,410px);right:1.8%;top:76px;padding:22px 22px 26px}
.welcome-mascots{height:48px;margin-bottom:14px}
.welcome-ribbon{left:7%;right:7%;bottom:-32px}
.hero-slider::after{background:linear-gradient(90deg,rgba(23,29,19,.01) 0%,rgba(23,29,19,0) 48%,rgba(255,252,242,.04) 100%)}
.intro-copy{position:relative;padding:8px 16px 30px 10px}
.intro-acorn{width:52px;height:52px;right:18px;bottom:-6px;overflow:hidden;background:none;transform:none}
.intro-acorn::before{content:none}
.intro-acorn::after{content:"";position:absolute;inset:0;background:url('../imgs/character.gif') no-repeat;background-size:276px 61px;background-position:-55px 0}
@media (max-width:980px){.welcome-board{width:min(48%,400px);top:66px}}
@media (max-width:760px){.welcome-board{width:calc(100% - 6px);top:auto}.intro-acorn{display:block;right:8px;bottom:-2px;width:46px;height:46px}}
/* ===== v5 requested fixes ===== */
.page-shell{overflow-x:clip;overflow-y:visible}
.site-header{position:sticky;top:0;z-index:90}
.welcome-board{width:min(36%,380px);top:82px;right:2%;min-height:auto;padding:18px 22px 22px;border-radius:42px}
.welcome-board::before{inset:10px;border-radius:34px}
.welcome-mascots{height:44px;margin-bottom:8px}
.welcome-board h1{padding:0 34px;line-height:1.08}
.welcome-board h1 span{font-size:clamp(1.75rem,3.2vw,3.15rem)}
.welcome-board h1 strong{font-size:clamp(2.4rem,4vw,3.55rem);margin-top:4px}
.welcome-ribbon{left:7%;right:7%;bottom:-26px;padding:12px 14px;font-size:.95rem}
.branch-left,.branch-right{width:58px;height:116px;top:56px}
.branch-left{left:-18px;transform:rotate(-12deg)}
.branch-right{right:-18px;transform:rotate(12deg) scaleX(-1)}
.branch-left::before,.branch-right::before{height:108px}
.acorn{display:none}
@media(max-width:980px){
  .welcome-board{width:min(44%,360px);top:70px}
}
@media(max-width:760px){
  .welcome-board{width:calc(100% - 10px);margin:-34px auto 0;padding:18px 14px 20px}
  .welcome-board h1{padding:0 14px}
  .welcome-board h1 span{font-size:1.58rem}
  .welcome-board h1 strong{font-size:2.25rem}
  .branch-left,.branch-right{display:none}
  .welcome-ribbon{position:relative;left:auto;right:auto;bottom:auto;margin:14px auto 0;max-width:96%}
}

/* ===== v6 unified header ===== */
.page-shell{overflow:visible!important}
.site-header{position:sticky!important;top:0;z-index:1200;padding:0 0 10px;background:rgba(251,248,238,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.site-header .header-card{width:min(1180px,calc(100vw - 32px));margin:0 auto;padding:15px 30px 16px;background:rgba(255,255,255,.96);border:1px solid rgba(153,204,0,.12);border-top:0;border-radius:0 0 38px 38px;box-shadow:0 8px 26px rgba(84,91,53,.10)}
.site-header .topbar{min-height:74px;display:flex;align-items:center;gap:24px}
.site-header .header-brand{display:block;flex:0 1 520px;min-width:300px}
.site-header .header-brand img{display:block;width:min(520px,100%);height:auto}
.site-header .utility-links{margin-left:auto;display:flex;justify-content:flex-end;align-items:center;gap:28px;color:#557514;font-weight:800;font-size:.94rem}
.site-header .utility-link{display:flex;align-items:center;gap:8px;white-space:nowrap}
.site-header .utility-link svg{width:22px;height:22px;fill:#79a600;flex:0 0 auto}
.site-header .menu-toggle{display:none;width:48px;height:48px;border:0;border-radius:14px;background:linear-gradient(180deg,#a6d31f,#7eab00);box-shadow:0 8px 18px rgba(103,144,0,.23);padding:12px;flex:0 0 48px}
.site-header .menu-toggle span{display:block;height:2px;background:#fff;border-radius:2px;margin:5px 0}
.site-header .global-nav{margin:0;border-top:2px solid rgba(126,171,0,.55);padding:16px 0 0}
.site-header .nav-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px}
.site-header .nav-pill{height:48px;border:1px solid rgba(112,139,50,.17);border-radius:999px;display:grid;place-items:center;background:#fffdf9;color:#557514;font-weight:800;box-shadow:0 4px 13px rgba(0,0,0,.035);transition:.2s ease;text-decoration:none}
.site-header .nav-pill:hover{transform:translateY(-2px);border-color:rgba(126,171,0,.4)}
body[data-page="home"] .site-header .nav-pill[data-page="home"],
body[data-page="forest"] .site-header .nav-pill[data-page="forest"],
body[data-page="food"] .site-header .nav-pill[data-page="food"],
body[data-page="daily"] .site-header .nav-pill[data-page="daily"],
body[data-page="admission"] .site-header .nav-pill[data-page="admission"]{background:linear-gradient(180deg,#a9d520,#83b300);color:#fff;border-color:transparent;box-shadow:0 8px 18px rgba(103,144,0,.18)}
.site-header.is-scrolled .header-card{box-shadow:0 14px 32px rgba(84,91,53,.15)}
@media(max-width:980px){
  .site-header .header-card{padding:12px 18px 14px}.site-header .header-brand{flex-basis:470px;min-width:250px}.site-header .header-brand img{width:min(470px,100%)}.site-header .utility-links{gap:16px;font-size:.85rem}.site-header .nav-track{gap:12px}
}
@media(max-width:760px){
  .site-header{padding-bottom:6px}.site-header .header-card{width:min(100% - 14px,720px);padding:10px 12px 12px;border-radius:0 0 25px 25px}.site-header .topbar{min-height:58px;gap:10px}.site-header .header-brand{flex:1;min-width:0}.site-header .header-brand img{width:min(100%,430px)}.site-header .utility-links{display:none}.site-header .menu-toggle{display:block;margin-left:auto}.site-header .global-nav{display:none;border-top:1px solid rgba(126,171,0,.3);padding-top:12px;margin-top:8px}.site-header .global-nav.is-open{display:block}.site-header .nav-track{grid-template-columns:1fr;gap:8px}.site-header .nav-pill{height:43px}
}


/* ===== V8: V6 baseline, requested fixes only ===== */
/* Keep V6 welcome-board size. Only prevent unnatural wrapping and remove non-official nut decoration. */
.welcome-board .acorn{display:none!important}
.welcome-board h1 span{white-space:nowrap;font-size:clamp(1.62rem,2.55vw,2.05rem)}
.welcome-board h1 strong{font-size:clamp(2.15rem,3.45vw,3rem)}
.daily-head-gallery{justify-content:space-between}
/* The intro decoration uses the official mascot sprite already defined by V6. */
.intro-acorn{background:none!important}
@media(max-width:760px){
  .welcome-board h1 span{font-size:clamp(1.35rem,6.2vw,1.75rem)}
  .welcome-board h1 strong{font-size:clamp(2rem,9.5vw,2.45rem)}
}

/* ===== V9: V8 base, requested delta only ===== */
@media (min-width:981px){
  .welcome-board{top:22px;right:1.6%;}
}

/* v10: index bottom map icon matches the header map-pin icon */
.info-icon.map-pin-icon{background:none;border-radius:0;color:#79a600}
.info-icon.map-pin-icon svg{width:24px;height:24px;fill:#79a600;display:block}


/* ===== V21 deterministic welcome-banner positioning ===== */
.welcome-board.welcome-board-image{position:absolute!important;z-index:8;top:-38px!important;right:-100px!important;width:min(48%,575px)!important;min-height:0!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;overflow:visible!important;border-radius:0!important}
.welcome-board.welcome-board-image::before,.welcome-board.welcome-board-image::after{display:none!important}
.welcome-board.welcome-board-image .decor,.welcome-board.welcome-board-image .welcome-mascots,.welcome-board.welcome-board-image h1,.welcome-board.welcome-board-image .welcome-ribbon,.welcome-board.welcome-board-image .acorn{display:none!important}
.welcome-banner-image{display:block;width:100%;height:auto;filter:drop-shadow(0 18px 24px rgba(65,68,36,.14))}
.welcome-ribbon-text{position:absolute!important;left:50%!important;top:calc(68.4% - 5px)!important;bottom:auto!important;transform:translate(-50%,-50%)!important;width:56%!important;text-align:center!important;color:#fffef6;font-family:"Hiragino Sans","Yu Gothic","Meiryo",sans-serif;font-weight:900;line-height:1.18;letter-spacing:.01em;text-shadow:0 1px 0 rgba(110,130,17,.58),0 2px 4px rgba(55,70,5,.50),0 0 2px rgba(55,70,5,.28)}
.welcome-ribbon-text span{display:block;white-space:nowrap;text-align:center}
.welcome-ribbon-text .line1{font-size:clamp(9px,1.02vw,15px)}
.welcome-ribbon-text .line2{font-size:clamp(9px,1.00vw,15px);margin-top:1px}
@media(max-width:980px){.welcome-board.welcome-board-image{width:min(56%,470px)!important;top:-24px!important;right:-100px!important}.welcome-ribbon-text{top:calc(68.4% - 5px)!important;width:56%!important}.welcome-ribbon-text .line1,.welcome-ribbon-text .line2{font-size:clamp(8px,1.25vw,12px)}}
@media(max-width:760px){.welcome-board.welcome-board-image{position:relative!important;top:auto!important;right:auto!important;width:min(98%,540px)!important;margin:-90px 0 0 auto!important}.welcome-banner-image{filter:drop-shadow(0 10px 16px rgba(65,68,36,.12))}.welcome-ribbon-text{top:calc(68.4% - 5px)!important;width:56%!important}.welcome-ribbon-text .line1,.welcome-ribbon-text .line2{font-size:clamp(7px,1.7vw,10px);line-height:1.15}.welcome-ribbon-text .line2{margin-top:1px}}

/* feature-card pictograms */
.feature-icon{font-size:0;position:relative;overflow:hidden}
.feature-icon::before{content:"";position:absolute;inset:11px;background-repeat:no-repeat;background-position:center;background-size:contain}
.icon-tree::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23fff' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M32 50V35'/%3E%3Cpath d='M17 29 32 14l15 15'/%3E%3Cpath d='M21 33h22'/%3E%3Cpath d='M24 39h16'/%3E%3Cpath d='M27 45h10'/%3E%3C/g%3E%3C/svg%3E")}
.icon-meal::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23fff' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 28h32'/%3E%3Cpath d='M22 28c0 10 4 17 10 17s10-7 10-17'/%3E%3Cpath d='M18 20c2-4 4-6 6-8'/%3E%3Cpath d='M30 18c2-4 4-6 6-8'/%3E%3Cpath d='M42 20c2-4 4-6 6-8'/%3E%3C/g%3E%3C/svg%3E")}
.icon-daily::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23fff' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 28 32 14l20 14'/%3E%3Cpath d='M18 28v20h28V28'/%3E%3Cpath d='M28 48V36h8v12'/%3E%3C/g%3E%3C/svg%3E")}
.icon-admission::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23fff' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M32 50V34'/%3E%3Cpath d='M32 34c0-8 6-14 14-14-1 8-7 14-14 14Z'/%3E%3Cpath d='M32 38c0-8-6-14-14-14 1 8 7 14 14 14Z'/%3E%3C/g%3E%3C/svg%3E")}
.icon-gallery::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23fff' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 23h9l4-6h10l4 6h9v25H14Z'/%3E%3Ccircle cx='32' cy='35' r='8'/%3E%3C/g%3E%3C/svg%3E")}


/* ===== V24 mobile navigation consistency ===== */
.mobile-nav-extra,.mobile-dock,.mobile-nav-backdrop{display:none}
@media(max-width:760px){
  :root{--mobile-dock-h:72px}
  body{padding-bottom:calc(var(--mobile-dock-h) + env(safe-area-inset-bottom))}
  body.nav-open{overflow:hidden;touch-action:none}

  .mobile-nav-backdrop{display:block;position:fixed;z-index:1170;inset:0;background:rgba(18,37,0,.34);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease}
  body.nav-open .mobile-nav-backdrop{opacity:1;visibility:visible}

  .site-header .global-nav{display:block!important;position:fixed!important;z-index:1180;left:10px;right:10px;top:auto!important;bottom:calc(10px + env(safe-area-inset-bottom));margin:0!important;padding:18px 12px calc(18px + var(--mobile-dock-h))!important;max-height:min(78vh,650px);overflow:auto;border:1px solid rgba(153,204,0,.20)!important;border-radius:28px;background:rgba(255,255,255,.98);box-shadow:0 26px 80px rgba(24,47,0,.28);opacity:0;visibility:hidden;transform:translateY(28px) scale(.985);transform-origin:50% 100%;transition:opacity .22s ease,visibility .22s ease,transform .25s ease}
  .site-header .global-nav::before{content:"メニュー";display:block;margin:0 4px 12px;color:#405723;font-size:20px;font-weight:900}
  .site-header .global-nav.is-open{opacity:1;visibility:visible;transform:none}
  .site-header .nav-track{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
  .site-header .nav-pill{height:50px!important;border-radius:16px!important}

  .mobile-nav-extra{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
  .mobile-nav-extra-link{min-height:48px;display:flex;align-items:center;justify-content:center;padding:10px 8px;border:1px solid rgba(72,111,0,.13);border-radius:16px;background:#f8f7f1;color:#557514;font-size:14px;font-weight:800}
  .mobile-nav-extra-link:last-child{grid-column:1/-1}

  .mobile-dock{position:fixed;z-index:1160;left:8px;right:8px;bottom:calc(7px + env(safe-area-inset-bottom));height:var(--mobile-dock-h);display:grid;grid-template-columns:repeat(5,1fr);align-items:stretch;padding:6px;border:1px solid rgba(255,255,255,.78);border-radius:23px;background:rgba(255,255,255,.93);box-shadow:0 18px 50px rgba(30,57,0,.20);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
  .mobile-dock a,.mobile-dock button{appearance:none;border:0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:4px 2px;border-radius:16px;background:transparent;color:#445330;text-decoration:none;font-size:10px;font-weight:800;line-height:1;touch-action:manipulation}
  .mobile-dock a::before,.mobile-dock button::before{display:grid;place-items:center;width:28px;height:28px;border-radius:10px;background:rgba(153,204,0,.10);color:#557514;font-size:17px;font-weight:700;line-height:1}
  .mobile-dock a[data-page="home"]::before{content:"⌂"}
  .mobile-dock a[data-page="forest"]::before{content:"♧"}
  .mobile-dock a[data-page="daily"]::before{content:"☀"}
  .mobile-dock a[data-page="admission"]::before{content:"✓"}
  .mobile-dock button::before{content:"☰"}
  .mobile-dock a[aria-current="page"]{color:#405723;background:rgba(153,204,0,.16)}
  .mobile-dock a[aria-current="page"]::before{background:#99cc00;color:#203700}
  body.nav-open .mobile-dock{z-index:1190}
}

/* ===== V27 index opening animation: official Kinomi characters ===== */
.kinomi-loader{display:none;position:fixed;z-index:3000;inset:0;overflow:hidden;background:
  radial-gradient(circle at 14% 18%,rgba(153,204,0,.12),transparent 25%),
  radial-gradient(circle at 86% 78%,rgba(229,162,45,.10),transparent 24%),
  linear-gradient(180deg,#fffdf6 0%,#f7f2e3 100%);opacity:1;transition:opacity .34s ease,visibility .34s ease;visibility:visible;pointer-events:auto}
html.kinomi-loader-will-show,html.kinomi-loader-will-show body{overflow:hidden}
html.kinomi-loader-will-show .kinomi-loader{display:block}
.kinomi-loader.is-leaving{opacity:0;visibility:hidden;pointer-events:none}
.kinomi-loader::before{content:"";position:absolute;left:-12%;right:-12%;bottom:-16vh;height:39vh;border-radius:50% 50% 0 0;background:rgba(153,204,0,.07);transform:rotate(-1deg)}
.kinomi-loader::after{content:"";position:absolute;left:8%;right:8%;top:51%;height:2px;background:linear-gradient(90deg,transparent,rgba(118,157,21,.13),transparent);transform:rotate(-2deg)}
.kinomi-loader-stage{position:absolute;inset:0}
.kinomi-walker{position:absolute;left:50%;top:47%;width:82px;height:90px;margin:-45px 0 0 -41px;opacity:0;will-change:transform,opacity}
.kinomi-walker img{display:block;max-width:100%;max-height:76px;width:auto;height:auto;margin:auto;filter:drop-shadow(0 7px 5px rgba(82,63,26,.13));transform-origin:50% 100%;animation:kinomi-step .20s ease-in-out infinite alternate;will-change:transform}
.kinomi-walker:nth-child(1){animation:kinomi-route-1 1.72s cubic-bezier(.22,.68,.32,1) .03s forwards}
.kinomi-walker:nth-child(2){animation:kinomi-route-2 1.70s cubic-bezier(.22,.68,.32,1) .10s forwards}
.kinomi-walker:nth-child(3){width:92px;margin-left:-46px;animation:kinomi-route-3 1.74s cubic-bezier(.22,.68,.32,1) .00s forwards}
.kinomi-walker:nth-child(4){animation:kinomi-route-4 1.68s cubic-bezier(.22,.68,.32,1) .15s forwards}
.kinomi-walker:nth-child(5){width:88px;margin-left:-44px;animation:kinomi-route-5 1.76s cubic-bezier(.22,.68,.32,1) .06s forwards}
.kinomi-walker:nth-child(2) img,.kinomi-walker:nth-child(4) img{animation-delay:.10s}
.kinomi-walker:nth-child(3) img{animation-duration:.24s}
@keyframes kinomi-step{from{transform:translateY(1px) rotate(-2deg)}to{transform:translateY(-4px) rotate(2deg)}}
@keyframes kinomi-route-1{
  0%{opacity:0;transform:translate3d(-58vw,18vh,0) rotate(-7deg) scale(.94)}
  12%{opacity:1}
  34%{transform:translate3d(-31vw,-9vh,0) rotate(4deg) scale(1)}
  57%{transform:translate3d(-21vw,8vh,0) rotate(-3deg) scale(1)}
  76%,100%{opacity:1;transform:translate3d(-132px,5px,0) rotate(0) scale(1)} }
@keyframes kinomi-route-2{
  0%{opacity:0;transform:translate3d(58vw,-18vh,0) rotate(8deg) scale(.94)}
  12%{opacity:1}
  35%{transform:translate3d(33vw,10vh,0) rotate(-4deg) scale(1)}
  58%{transform:translate3d(17vw,-7vh,0) rotate(3deg) scale(1)}
  77%,100%{opacity:1;transform:translate3d(-67px,1px,0) rotate(0) scale(1)} }
@keyframes kinomi-route-3{
  0%{opacity:0;transform:translate3d(-10vw,56vh,0) rotate(-5deg) scale(.94)}
  10%{opacity:1}
  33%{transform:translate3d(9vw,25vh,0) rotate(4deg) scale(1)}
  57%{transform:translate3d(-7vw,-10vh,0) rotate(-3deg) scale(1)}
  75%,100%{opacity:1;transform:translate3d(0,-5px,0) rotate(0) scale(1.04)} }
@keyframes kinomi-route-4{
  0%{opacity:0;transform:translate3d(54vw,48vh,0) rotate(7deg) scale(.94)}
  13%{opacity:1}
  36%{transform:translate3d(27vw,20vh,0) rotate(-3deg) scale(1)}
  59%{transform:translate3d(11vw,8vh,0) rotate(3deg) scale(1)}
  78%,100%{opacity:1;transform:translate3d(67px,1px,0) rotate(0) scale(1)} }
@keyframes kinomi-route-5{
  0%{opacity:0;transform:translate3d(4vw,-56vh,0) rotate(6deg) scale(.94)}
  11%{opacity:1}
  34%{transform:translate3d(22vw,-23vh,0) rotate(-4deg) scale(1)}
  58%{transform:translate3d(13vw,7vh,0) rotate(3deg) scale(1)}
  77%,100%{opacity:1;transform:translate3d(132px,5px,0) rotate(0) scale(1)} }
.kinomi-loader-message{position:absolute;z-index:2;left:50%;top:64%;width:min(90vw,620px);transform:translate(-50%,18px);text-align:center;opacity:0;animation:kinomi-message-in .52s ease 1.35s forwards}
.kinomi-loader-message span,.kinomi-loader-message strong{display:block}
.kinomi-loader-message span{color:#749d13;font-size:clamp(17px,2vw,25px);font-weight:800;letter-spacing:.06em}
.kinomi-loader-message strong{margin-top:3px;color:#724718;font-size:clamp(29px,4vw,52px);font-weight:900;letter-spacing:.10em;line-height:1.25}
@keyframes kinomi-message-in{to{opacity:1;transform:translate(-50%,0)}}

@media(max-width:760px){
  .kinomi-walker{top:44%;width:62px;height:72px;margin:-36px 0 0 -31px}
  .kinomi-walker:nth-child(3){width:72px;margin-left:-36px}
  .kinomi-walker:nth-child(5){width:67px;margin-left:-34px}
  @keyframes kinomi-route-1{0%{opacity:0;transform:translate3d(-62vw,20vh,0) rotate(-7deg) scale(.94)}12%{opacity:1}34%{transform:translate3d(-34vw,-10vh,0) rotate(4deg)}57%{transform:translate3d(-23vw,8vh,0) rotate(-3deg)}76%,100%{opacity:1;transform:translate3d(-94px,4px,0) rotate(0)}}
  @keyframes kinomi-route-2{0%{opacity:0;transform:translate3d(62vw,-18vh,0) rotate(8deg) scale(.94)}12%{opacity:1}35%{transform:translate3d(35vw,11vh,0) rotate(-4deg)}58%{transform:translate3d(18vw,-7vh,0) rotate(3deg)}77%,100%{opacity:1;transform:translate3d(-47px,1px,0) rotate(0)}}
  @keyframes kinomi-route-3{0%{opacity:0;transform:translate3d(-8vw,60vh,0) rotate(-5deg) scale(.94)}10%{opacity:1}33%{transform:translate3d(12vw,27vh,0) rotate(4deg)}57%{transform:translate3d(-8vw,-10vh,0) rotate(-3deg)}75%,100%{opacity:1;transform:translate3d(0,-4px,0) rotate(0) scale(1.03)}}
  @keyframes kinomi-route-4{0%{opacity:0;transform:translate3d(62vw,50vh,0) rotate(7deg) scale(.94)}13%{opacity:1}36%{transform:translate3d(31vw,22vh,0) rotate(-3deg)}59%{transform:translate3d(12vw,8vh,0) rotate(3deg)}78%,100%{opacity:1;transform:translate3d(47px,1px,0) rotate(0)}}
  @keyframes kinomi-route-5{0%{opacity:0;transform:translate3d(4vw,-60vh,0) rotate(6deg) scale(.94)}11%{opacity:1}34%{transform:translate3d(26vw,-24vh,0) rotate(-4deg)}58%{transform:translate3d(14vw,8vh,0) rotate(3deg)}77%,100%{opacity:1;transform:translate3d(94px,4px,0) rotate(0)}}
  .kinomi-loader-message{top:59%;width:92vw}
  .kinomi-loader-message span{font-size:16px}
  .kinomi-loader-message strong{font-size:32px}
}
@media(prefers-reduced-motion:reduce){
  .kinomi-walker{opacity:1!important;animation:none!important;top:46%}
  .kinomi-walker:nth-child(1){transform:translateX(-132px)}.kinomi-walker:nth-child(2){transform:translateX(-67px)}.kinomi-walker:nth-child(3){transform:translateY(-5px)}.kinomi-walker:nth-child(4){transform:translateX(67px)}.kinomi-walker:nth-child(5){transform:translateX(132px)}
  .kinomi-walker img{animation:none!important}
  .kinomi-loader-message{opacity:1;transform:translate(-50%,0);animation:none}
}


/* ===== V30 loader choreography variations ===== */
.kinomi-walker:nth-child(1){--kinomi-final-x:-132px}
.kinomi-walker:nth-child(2){--kinomi-final-x:-67px}
.kinomi-walker:nth-child(3){--kinomi-final-x:0px}
.kinomi-walker:nth-child(4){--kinomi-final-x:67px}
.kinomi-walker:nth-child(5){--kinomi-final-x:132px}

/* Pattern 1: original five-way gathering. */
html.kinomi-pattern-gather .kinomi-walker:nth-child(1){animation:kinomi-route-1 1.72s cubic-bezier(.22,.68,.32,1) .03s forwards}
html.kinomi-pattern-gather .kinomi-walker:nth-child(2){animation:kinomi-route-2 1.70s cubic-bezier(.22,.68,.32,1) .10s forwards}
html.kinomi-pattern-gather .kinomi-walker:nth-child(3){animation:kinomi-route-3 1.74s cubic-bezier(.22,.68,.32,1) 0s forwards}
html.kinomi-pattern-gather .kinomi-walker:nth-child(4){animation:kinomi-route-4 1.68s cubic-bezier(.22,.68,.32,1) .15s forwards}
html.kinomi-pattern-gather .kinomi-walker:nth-child(5){animation:kinomi-route-5 1.76s cubic-bezier(.22,.68,.32,1) .06s forwards}

/* Pattern 2: a playful chase from left to right before lining up. */
html.kinomi-pattern-chase .kinomi-walker{animation-name:kinomi-chase;animation-duration:1.72s;animation-timing-function:cubic-bezier(.2,.72,.28,1);animation-fill-mode:forwards}
html.kinomi-pattern-chase .kinomi-walker:nth-child(1){--chase-y:-12vh;--chase-mid:7vh;animation-delay:0s}
html.kinomi-pattern-chase .kinomi-walker:nth-child(2){--chase-y:6vh;--chase-mid:-5vh;animation-delay:.09s}
html.kinomi-pattern-chase .kinomi-walker:nth-child(3){--chase-y:-4vh;--chase-mid:8vh;animation-delay:.18s}
html.kinomi-pattern-chase .kinomi-walker:nth-child(4){--chase-y:11vh;--chase-mid:-7vh;animation-delay:.27s}
html.kinomi-pattern-chase .kinomi-walker:nth-child(5){--chase-y:-8vh;--chase-mid:4vh;animation-delay:.36s}
@keyframes kinomi-chase{
  0%{opacity:0;transform:translate3d(-72vw,var(--chase-y),0) rotate(-6deg) scale(.92)}
  10%{opacity:1}
  42%{transform:translate3d(-16vw,var(--chase-mid),0) rotate(4deg) scale(1)}
  63%{transform:translate3d(15vw,0,0) rotate(-3deg) scale(1)}
  80%,100%{opacity:1;transform:translate3d(var(--kinomi-final-x),0,0) rotate(0) scale(1)}
}

/* Pattern 3: each character makes a loose orbit before gathering. */
html.kinomi-pattern-orbit .kinomi-walker{animation-name:kinomi-orbit;animation-duration:1.82s;animation-timing-function:cubic-bezier(.18,.7,.3,1);animation-fill-mode:forwards}
html.kinomi-pattern-orbit .kinomi-walker:nth-child(1){--orbit-sx:-58vw;--orbit-sy:-28vh;--orbit-mx:-8vw;--orbit-my:25vh;--orbit-m2x:4vw;--orbit-m2y:-11vh;animation-delay:.04s}
html.kinomi-pattern-orbit .kinomi-walker:nth-child(2){--orbit-sx:54vw;--orbit-sy:-30vh;--orbit-mx:-24vw;--orbit-my:-3vh;--orbit-m2x:11vw;--orbit-m2y:2vh;animation-delay:.11s}
html.kinomi-pattern-orbit .kinomi-walker:nth-child(3){--orbit-sx:0vw;--orbit-sy:58vh;--orbit-mx:25vw;--orbit-my:-18vh;--orbit-m2x:-11vw;--orbit-m2y:8vh;animation-delay:0s}
html.kinomi-pattern-orbit .kinomi-walker:nth-child(4){--orbit-sx:58vw;--orbit-sy:34vh;--orbit-mx:5vw;--orbit-my:-26vh;--orbit-m2x:-2vw;--orbit-m2y:12vh;animation-delay:.15s}
html.kinomi-pattern-orbit .kinomi-walker:nth-child(5){--orbit-sx:-52vw;--orbit-sy:36vh;--orbit-mx:24vw;--orbit-my:5vh;--orbit-m2x:-11vw;--orbit-m2y:-2vh;animation-delay:.07s}
@keyframes kinomi-orbit{
  0%{opacity:0;transform:translate3d(var(--orbit-sx),var(--orbit-sy),0) rotate(-10deg) scale(.90)}
  10%{opacity:1}
  38%{transform:translate3d(var(--orbit-mx),var(--orbit-my),0) rotate(8deg) scale(1)}
  61%{transform:translate3d(var(--orbit-m2x),var(--orbit-m2y),0) rotate(-5deg) scale(1.02)}
  79%,100%{opacity:1;transform:translate3d(var(--kinomi-final-x),0,0) rotate(0) scale(1)}
}

/* Pattern 4: the five characters pop up from below in sequence. */
html.kinomi-pattern-pop .kinomi-walker{animation-name:kinomi-pop-up;animation-duration:1.52s;animation-timing-function:cubic-bezier(.18,.78,.28,1);animation-fill-mode:forwards}
html.kinomi-pattern-pop .kinomi-walker:nth-child(1){animation-delay:.04s}
html.kinomi-pattern-pop .kinomi-walker:nth-child(2){animation-delay:.16s}
html.kinomi-pattern-pop .kinomi-walker:nth-child(3){animation-delay:.28s}
html.kinomi-pattern-pop .kinomi-walker:nth-child(4){animation-delay:.40s}
html.kinomi-pattern-pop .kinomi-walker:nth-child(5){animation-delay:.52s}
@keyframes kinomi-pop-up{
  0%{opacity:0;transform:translate3d(var(--kinomi-final-x),55vh,0) rotate(-5deg) scale(.62)}
  18%{opacity:1}
  58%{transform:translate3d(var(--kinomi-final-x),-36px,0) rotate(4deg) scale(1.06)}
  72%{transform:translate3d(var(--kinomi-final-x),10px,0) rotate(-2deg) scale(.98)}
  84%{transform:translate3d(var(--kinomi-final-x),-9px,0) rotate(1deg) scale(1.01)}
  100%{opacity:1;transform:translate3d(var(--kinomi-final-x),0,0) rotate(0) scale(1)}
}

/* Rare pattern (~10%): parade, synchronized hop, and a brief sparkle. */
html.kinomi-pattern-rare .kinomi-walker{animation-name:kinomi-rare-parade;animation-duration:1.88s;animation-timing-function:cubic-bezier(.16,.76,.28,1);animation-fill-mode:forwards}
html.kinomi-pattern-rare .kinomi-walker:nth-child(1){animation-delay:0s}
html.kinomi-pattern-rare .kinomi-walker:nth-child(2){animation-delay:.10s}
html.kinomi-pattern-rare .kinomi-walker:nth-child(3){animation-delay:.20s}
html.kinomi-pattern-rare .kinomi-walker:nth-child(4){animation-delay:.30s}
html.kinomi-pattern-rare .kinomi-walker:nth-child(5){animation-delay:.40s}
html.kinomi-pattern-rare .kinomi-loader-stage::before,
html.kinomi-pattern-rare .kinomi-loader-stage::after{content:"";position:absolute;z-index:1;inset:18% 15%;pointer-events:none;opacity:0;background:
  radial-gradient(circle at 12% 32%,rgba(153,204,0,.70) 0 3px,transparent 4px),
  radial-gradient(circle at 27% 14%,rgba(232,166,47,.65) 0 3px,transparent 4px),
  radial-gradient(circle at 44% 29%,rgba(153,204,0,.55) 0 2px,transparent 3px),
  radial-gradient(circle at 63% 12%,rgba(232,166,47,.60) 0 3px,transparent 4px),
  radial-gradient(circle at 79% 31%,rgba(153,204,0,.65) 0 3px,transparent 4px),
  radial-gradient(circle at 90% 17%,rgba(232,166,47,.55) 0 2px,transparent 3px);
  animation:kinomi-rare-sparkle .72s ease 1.45s forwards}
html.kinomi-pattern-rare .kinomi-loader-stage::after{transform:scale(.8) rotate(180deg);animation-delay:1.58s}
html.kinomi-pattern-rare .kinomi-loader-message{animation-delay:1.58s}
@keyframes kinomi-rare-parade{
  0%{opacity:0;transform:translate3d(-78vw,12vh,0) rotate(-7deg) scale(.90)}
  10%{opacity:1}
  48%{transform:translate3d(4vw,-5vh,0) rotate(4deg) scale(1)}
  68%{transform:translate3d(var(--kinomi-final-x),0,0) rotate(0) scale(1)}
  78%{transform:translate3d(var(--kinomi-final-x),-25px,0) rotate(-3deg) scale(1.04)}
  88%{transform:translate3d(var(--kinomi-final-x),4px,0) rotate(2deg) scale(.99)}
  100%{opacity:1;transform:translate3d(var(--kinomi-final-x),0,0) rotate(0) scale(1)}
}
@keyframes kinomi-rare-sparkle{
  0%{opacity:0;transform:scale(.82)}
  45%{opacity:1}
  100%{opacity:0;transform:scale(1.12)}
}

@media(max-width:760px){
  .kinomi-walker:nth-child(1){--kinomi-final-x:-94px}
  .kinomi-walker:nth-child(2){--kinomi-final-x:-47px}
  .kinomi-walker:nth-child(3){--kinomi-final-x:0px}
  .kinomi-walker:nth-child(4){--kinomi-final-x:47px}
  .kinomi-walker:nth-child(5){--kinomi-final-x:94px}
  html.kinomi-pattern-rare .kinomi-loader-stage::before,
  html.kinomi-pattern-rare .kinomi-loader-stage::after{inset:20% 7%}
}

@media(prefers-reduced-motion:reduce){
  html.kinomi-pattern-chase .kinomi-walker,
  html.kinomi-pattern-orbit .kinomi-walker,
  html.kinomi-pattern-pop .kinomi-walker,
  html.kinomi-pattern-rare .kinomi-walker{animation:none!important;opacity:1!important;transform:translate3d(var(--kinomi-final-x),0,0)!important}
  html.kinomi-pattern-rare .kinomi-loader-stage::before,
  html.kinomi-pattern-rare .kinomi-loader-stage::after{display:none!important}
}


/* ===== V32: page-enter fade 0.5s ===== */
@keyframes kinomi-page-fade-in{
  from{opacity:0}
  to{opacity:1}
}
body{animation:kinomi-page-fade-in .5s ease-out both}
@media (prefers-reduced-motion:reduce){
  body{animation:none!important}
}

/* ===== V46 persistent header route transition ===== */
main.kinomi-route-enter{animation:kinomiRouteEnter .5s ease both}
@keyframes kinomiRouteEnter{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){main.kinomi-route-enter{animation:none!important}}


/* ===== V52: V50-approved welcome banner position lock =====
   IMPORTANT: values below are copied unchanged from the approved V50 rules.
   This block only prevents later cascade/timing from altering that position.
*/
.welcome-board.welcome-board-image{
  position:absolute!important;
  z-index:8;
  top:-38px!important;
  right:-100px!important;
  width:min(48%,575px)!important;
  min-height:0!important;
  padding:0!important;
  background:none!important;
  border:0!important;
  box-shadow:none!important;
  overflow:visible!important;
  border-radius:0!important
}
.welcome-board.welcome-board-image::before,
.welcome-board.welcome-board-image::after{display:none!important}
.welcome-board.welcome-board-image .decor,
.welcome-board.welcome-board-image .welcome-mascots,
.welcome-board.welcome-board-image h1,
.welcome-board.welcome-board-image .welcome-ribbon,
.welcome-board.welcome-board-image .acorn{display:none!important}
.welcome-banner-image{
  display:block;
  width:100%;
  height:auto;
  filter:drop-shadow(0 18px 24px rgba(65,68,36,.14))
}
.welcome-ribbon-text{
  position:absolute!important;
  left:50%!important;
  top:calc(68.4% - 5px)!important;
  bottom:auto!important;
  transform:translate(-50%,-50%)!important;
  width:56%!important;
  text-align:center!important;
  color:#fffef6;
  font-family:"Hiragino Sans","Yu Gothic","Meiryo",sans-serif;
  font-weight:900;
  line-height:1.18;
  letter-spacing:.01em;
  text-shadow:0 1px 0 rgba(110,130,17,.58),0 2px 4px rgba(55,70,5,.50),0 0 2px rgba(55,70,5,.28)
}
.welcome-ribbon-text span{display:block;white-space:nowrap;text-align:center}
.welcome-ribbon-text .line1{font-size:clamp(9px,1.02vw,15px)}
.welcome-ribbon-text .line2{font-size:clamp(9px,1.00vw,15px);margin-top:1px}
@media(max-width:980px){
  .welcome-board.welcome-board-image{
    width:min(56%,470px)!important;
    top:-24px!important;
    right:-100px!important
  }
  .welcome-ribbon-text{top:calc(68.4% - 5px)!important;width:56%!important}
  .welcome-ribbon-text .line1,
  .welcome-ribbon-text .line2{font-size:clamp(8px,1.25vw,12px)}
}
@media(max-width:760px){
  .welcome-board.welcome-board-image{
    position:relative!important;
    top:auto!important;
    right:auto!important;
    width:min(98%,540px)!important;
    margin:-90px 0 0 auto!important
  }
  .welcome-banner-image{filter:drop-shadow(0 10px 16px rgba(65,68,36,.12))}
  .welcome-ribbon-text{top:calc(68.4% - 5px)!important;width:56%!important}
  .welcome-ribbon-text .line1,
  .welcome-ribbon-text .line2{font-size:clamp(7px,1.7vw,10px);line-height:1.15}
  .welcome-ribbon-text .line2{margin-top:1px}
}


/* ===== V53: welcome banner tablet-PC-layout containment ONLY =====
   Scope is intentionally limited to 761-980px.
   >=981px desktop placement and <=760px smartphone placement are unchanged.
*/
@media (min-width:761px) and (max-width:980px){
  .welcome-board.welcome-board-image{
    position:absolute!important;
    top:-32px!important;
    right:-50px!important;
    width:min(56%,470px)!important;
    margin:0!important;
  }
}


/* ===== V60: routed-content load mask / fade ONLY =====
   Header is intentionally excluded. New page content remains invisible until
   the destination stylesheet is confirmed loaded and layout has settled.
*/
body.kinomi-spa-routing{animation:none!important}
body.kinomi-spa-stable{animation:none!important}
main.kinomi-route-preparing{
  opacity:0!important;
  animation:none!important;
}
footer.site-footer.kinomi-route-preparing{
  opacity:0!important;
}
main.kinomi-route-enter{
  animation:kinomiRouteEnter .5s ease both!important;
}
@keyframes kinomiRouteEnter{
  from{opacity:0}
  to{opacity:1}
}
@media(prefers-reduced-motion:reduce){
  main.kinomi-route-enter{animation:none!important}
}
/* Index only: hide the inner-page skip link that can remain after SPA navigation. */
.skip-link{display:none!important;}


/* ===== V61: index feature photo gallery uses the existing lightbox visual language ===== */
.lightbox{position:fixed;z-index:3000;inset:0;display:grid;place-items:center;padding:70px 74px;background:rgba(9,18,0,.88);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:.25s}.lightbox.is-open{opacity:1;visibility:visible}.lightbox figure{margin:0;max-width:min(1200px,92vw);max-height:86vh;display:flex;flex-direction:column;align-items:center;gap:10px}.lightbox figure img{display:block;max-width:100%;max-height:80vh;width:auto;height:auto;border-radius:12px;box-shadow:0 20px 80px rgba(0,0,0,.5);background:white}.lightbox figcaption{color:white;font-size:.95rem;line-height:1.6}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;border:0;background:rgba(255,255,255,.14);color:#fff;cursor:pointer;backdrop-filter:blur(10px)}.lightbox-close{right:22px;top:18px;width:50px;height:50px;border-radius:50%;font-size:34px}.lightbox-prev,.lightbox-next{top:50%;width:54px;height:72px;border-radius:18px;transform:translateY(-50%);font-size:44px;line-height:1}.lightbox-prev{left:18px}.lightbox-next{right:18px}.feature-gallery-button{cursor:pointer}@media(max-width:900px){.lightbox{padding:64px 14px 82px}.lightbox-prev,.lightbox-next{top:auto;bottom:15px;height:50px}.lightbox-prev{left:calc(50% - 66px)}.lightbox-next{right:calc(50% - 66px)}}@media(max-width:760px){.lightbox{padding:58px 8px calc(92px + env(safe-area-inset-bottom));background:rgba(13,25,0,.96)}.lightbox figure{width:100%;max-width:none;margin:0;display:grid;place-items:center}.lightbox figure img{max-width:100%;max-height:calc(100svh - 170px);border-radius:12px;object-fit:contain}.lightbox-close{top:10px;right:10px;width:44px;height:44px}.lightbox-prev,.lightbox-next{bottom:calc(22px + env(safe-area-inset-bottom));width:52px;height:52px}.lightbox-prev{left:calc(50% - 64px)}.lightbox-next{right:calc(50% - 64px)}}
