/* AMIX GAMES KIDS — 入口のページ */
:root{
  --ink:#26324a; --ink2:#4e5a73; --cream:#fff8ec; --paper:#ffffff;
  --pink:#e8537a; --blue:#009fdf; --green:#6ab838; --orange:#f08d29; --yellow:#ffd23f;
  --sky1:#74c9ff; --sky2:#bfe9ff; --sky3:#eaf8ff;
  --f:"M PLUS Rounded 1c","Hiragino Maru Gothic ProN","Hiragino Sans","Yu Gothic",sans-serif;
  --fe:"Fredoka","M PLUS Rounded 1c",sans-serif;
  --bar:64px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--bar) + 8px)}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--f);font-weight:500;font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
button{font-family:inherit;color:inherit}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--ink);color:#fff;padding:8px 14px;border-radius:10px;text-decoration:none}
.skip:focus{top:12px}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:8px}
.wrap{width:min(100% - 32px,1120px);margin:0 auto}

/* ---------- ロゴ ---------- */
.kl-logo{display:block;overflow:visible}
.kl-logo g{fill:var(--ink)}
.kl-k{transform-box:fill-box;transform-origin:50% 100%}
.kl-big .kl-k{animation:klHop 2.8s cubic-bezier(.3,.7,.4,1) infinite}
.kl-big .kl-k2{animation-delay:.14s}.kl-big .kl-k3{animation-delay:.28s}.kl-big .kl-k4{animation-delay:.42s}
@keyframes klHop{0%,62%,100%{transform:translateY(0) scale(1,1)}70%{transform:translateY(0) scale(1.12,.86)}80%{transform:translateY(-22%) scale(.94,1.08)}90%{transform:translateY(0) scale(1.06,.94)}}
.kl-big .kl-k.pop{animation:klPop .55s cubic-bezier(.3,.7,.4,1)}
@keyframes klPop{0%{transform:scale(1)}30%{transform:scale(1.3,.7)}60%{transform:translateY(-30%) scale(.9,1.15)}100%{transform:none}}
.kl-foot g{fill:#fff}

/* ---------- 上の バー ---------- */
.bar{position:fixed;inset:0 0 auto;z-index:40;height:var(--bar);display:flex;align-items:center;gap:12px;padding:0 max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));transition:background .3s,box-shadow .3s}
.bar.is-solid{background:rgba(255,248,236,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 2px 0 rgba(38,50,74,.08)}
.bar-logo{display:block;line-height:0;opacity:0;transform:translateY(-6px);transition:opacity .3s,transform .3s;pointer-events:none}
.bar.is-solid .bar-logo{opacity:1;transform:none;pointer-events:auto}
.kl-small{height:22px;width:auto}
.bar-nav{margin-left:auto;display:flex;gap:4px}
.bar-nav a{font-weight:800;font-size:14px;text-decoration:none;padding:8px 12px;border-radius:999px;transition:background .2s}
.bar-nav a:hover{background:rgba(38,50,74,.08)}
.snd{display:flex;align-items:center;gap:6px;height:42px;padding:0 14px 0 10px;border-radius:999px;border:3px solid var(--ink);background:#fff;font-weight:900;font-size:14px;cursor:pointer;box-shadow:0 4px 0 var(--ink);touch-action:manipulation;transition:transform .08s,box-shadow .08s}
.snd:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}
.snd svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.snd .spk{fill:currentColor}
.snd[aria-pressed="true"] .x,.snd[aria-pressed="false"] .w{display:none}
.snd[aria-pressed="false"]{background:#eef0f4;color:var(--ink2)}

/* ---------- 島の ヒーロー ---------- */
.hero{position:relative;min-height:clamp(600px,100svh,1000px);display:flex;flex-direction:column;overflow:hidden;
  background:linear-gradient(180deg,var(--sky1) 0%,var(--sky2) 45%,var(--sky3) 78%,var(--cream) 100%)}
.sky{position:absolute;inset:0;pointer-events:none}
.sun{position:absolute;right:8%;top:12%;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,#fff6c8 0 38%,rgba(255,238,150,.55) 39% 55%,rgba(255,238,150,0) 70%);animation:sun 6s ease-in-out infinite}
@keyframes sun{50%{transform:scale(1.08)}}
.hero-head{position:relative;z-index:3;flex:none;text-align:center;padding:calc(var(--bar) + 6px) 16px 0;pointer-events:none}
.hero-head h1{margin:0 auto;width:min(620px,86vw);line-height:0}
.hero-head h1 .kl-logo{width:100%;height:auto;pointer-events:auto;cursor:pointer;filter:drop-shadow(0 4px 0 rgba(255,255,255,.9))}
.hero-lead{display:inline-flex;flex-direction:column;align-items:center;margin:14px auto 0;padding:10px 26px 12px;background:#fff;border:3px solid var(--ink);border-radius:26px;box-shadow:0 5px 0 var(--ink);position:relative;line-height:1.5}
.hero-lead::after{content:"";position:absolute;left:50%;bottom:-15px;width:22px;height:15px;transform:translateX(-50%);background:var(--ink);clip-path:polygon(0 0,100% 0,50% 100%)}
.hero-lead::before{content:"";position:absolute;left:50%;bottom:-9px;width:14px;height:10px;transform:translateX(-50%);background:#fff;clip-path:polygon(0 0,100% 0,50% 100%);z-index:1}
.hero-lead b{font-size:clamp(18px,2.6vw,24px);font-weight:900;letter-spacing:.06em}
.hero-lead span{font-size:13px;font-weight:700;color:var(--ink2);letter-spacing:.08em}

.town{position:absolute;inset:0;z-index:1;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.town-gl{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .6s;cursor:grab;touch-action:pan-y}
.town.is-ready .town-gl{opacity:1}
.town.is-drag .town-gl{cursor:grabbing}
.town-poster{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 60%;transition:opacity .6s;pointer-events:none}
.town.is-ready .town-poster{opacity:0}
.town-pins{position:absolute;inset:0;pointer-events:none;z-index:2}
.hero.is-pop .scroll-cue,.hero.is-pop .town-hint{opacity:0;pointer-events:none}
.scroll-cue,.town-hint{transition:opacity .3s}
.town:not(.is-ready) .town-pins{display:none}
.pin{position:absolute;left:0;top:0;pointer-events:auto;border:0;background:none;padding:0;cursor:pointer;touch-action:manipulation;transition:opacity .3s}
.pin-in{display:flex;align-items:center;gap:7px;transform:translate(-50%,calc(-100% - 10px));white-space:nowrap;background:#fff;border:3px solid var(--ink);border-radius:999px;padding:5px 13px 6px 6px;font-weight:900;font-size:14px;line-height:1.2;box-shadow:0 4px 0 var(--ink);animation:pinBob 2.4s ease-in-out infinite;transition:transform .15s}
.pin-in::after{content:"";position:absolute;left:50%;bottom:-11px;width:14px;height:10px;transform:translateX(-50%);background:var(--ink);clip-path:polygon(0 0,100% 0,50% 100%)}
.pin-dot{width:24px;height:24px;border-radius:50%;background:var(--pc,var(--pink));border:2.5px solid var(--ink);flex:none;display:grid;place-items:center;color:#fff;font-family:var(--fe);font-size:12px;font-weight:700}
.pin:hover .pin-in,.pin.is-hot .pin-in{transform:translate(-50%,calc(-100% - 16px)) scale(1.08)}
.pin-short{display:none}
@media (max-width:600px){.pin-name{display:none}.pin-short{display:inline}}
.pin.is-back{opacity:.0;pointer-events:none}
.pin-soon .pin-in{background:#fff4c9;border-style:dashed;box-shadow:none}
.pin-soon .pin-in::after{display:none}
@keyframes pinBob{50%{margin-top:-5px}}
.town-hint{position:absolute;left:50%;bottom:78px;transform:translateX(-50%);z-index:2;margin:0;padding:6px 16px;border-radius:999px;background:rgba(38,50,74,.72);color:#fff;font-size:13px;font-weight:700;white-space:nowrap;pointer-events:none;transition:opacity .5s}
.town-hint.is-off{opacity:0}
@media (hover:none){.town-hint .ms{display:none}}
@media (hover:hover){.town-hint .tp{display:none}}

/* 場所を タップした ときの カード */
.pop{position:absolute;z-index:5;left:50%;bottom:22px;width:min(600px,calc(100% - 32px));transform:translateX(-50%);display:grid;grid-template-columns:200px 1fr;gap:0;background:#fff;border:3px solid var(--ink);border-radius:24px;box-shadow:0 8px 0 var(--ink);overflow:hidden;animation:popIn .38s cubic-bezier(.3,1.4,.5,1)}
@keyframes popIn{0%{transform:translate(-50%,40px) scale(.9);opacity:0}100%{transform:translate(-50%,0);opacity:1}}
.pop-img{background:var(--pc,var(--pink));border-right:3px solid var(--ink)}
.pop-img img{width:100%;height:100%;object-fit:cover}
.pop-body{padding:14px 18px 16px}
.pop-tag{margin:0;font-size:12px;font-weight:800;color:var(--ink2);letter-spacing:.08em}
.pop-name{margin:2px 0 4px;font-size:21px;font-weight:900;line-height:1.35}
.pop-catch{margin:0 0 12px;font-size:14px;line-height:1.7;color:var(--ink2)}
.pop-btns{display:flex;gap:8px;flex-wrap:wrap}
.pop-x{position:absolute;right:8px;top:8px;width:34px;height:34px;border-radius:50%;border:2.5px solid var(--ink);background:#fff;font-size:20px;line-height:1;font-weight:900;cursor:pointer;touch-action:manipulation}
.pop.is-soon{grid-template-columns:1fr}
.pop.is-soon .pop-img{display:none}

.scroll-cue{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;gap:2px;margin:auto auto 16px;font-weight:800;font-size:13px;text-decoration:none;color:var(--ink)}
.scroll-cue i{width:30px;height:30px;border-radius:50%;background:var(--ink);position:relative;animation:cue 1.6s ease-in-out infinite}
.scroll-cue i::after{content:"";position:absolute;left:50%;top:44%;width:9px;height:9px;border-right:3px solid #fff;border-bottom:3px solid #fff;transform:translate(-50%,-50%) rotate(45deg)}
@keyframes cue{50%{transform:translateY(5px)}}

/* ---------- ボタン ---------- */
.btn{--bc:var(--pink);display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:46px;padding:0 22px;border-radius:999px;border:3px solid var(--ink);background:var(--bc);color:#fff;font-weight:900;font-size:16px;letter-spacing:.06em;text-decoration:none;box-shadow:0 5px 0 var(--ink);touch-action:manipulation;transition:transform .08s,box-shadow .08s,filter .2s;cursor:pointer}
.btn:hover{filter:brightness(1.06)}
.btn:active{transform:translateY(4px);box-shadow:0 1px 0 var(--ink)}
.btn-play::after{content:"";width:0;height:0;border-left:10px solid currentColor;border-top:7px solid transparent;border-bottom:7px solid transparent;margin-left:2px}
.btn-sub{background:#fff;color:var(--ink)}

/* ---------- 節 ---------- */
.sec{position:relative;padding:72px 0 80px}
.wave{position:absolute;left:0;right:0;height:40px;pointer-events:none}
.wave-top{top:-39px;background:var(--wc);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V22C20 22 20 6 40 6s20 16 40 16 20-16 40-16 20 16 40 16v18z'/%3E%3C/svg%3E") 0 0/160px 40px repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V22C20 22 20 6 40 6s20 16 40 16 20-16 40-16 20 16 40 16v18z'/%3E%3C/svg%3E") 0 0/160px 40px repeat-x}
.sec-head{text-align:center;margin-bottom:34px}
.sec-en{margin:0;font-family:var(--fe);font-weight:600;font-size:15px;letter-spacing:.24em;color:var(--pink)}
.sec-head h2{margin:2px 0 0;font-size:clamp(30px,5vw,46px);font-weight:900;line-height:1.3;letter-spacing:.04em}
.sec-sub{margin:8px 0 0;font-weight:700;color:var(--ink2)}

/* ---------- ゲームの カード ---------- */
.games-sec{background:var(--cream);--wc:var(--cream)}
.filters{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:-6px 0 30px}
.filters button{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:0 16px;border-radius:999px;border:3px solid var(--ink);background:#fff;font-weight:800;font-size:14px;cursor:pointer;box-shadow:0 4px 0 var(--ink);touch-action:manipulation;transition:transform .08s,box-shadow .08s,background .2s}
.filters button svg{width:20px;height:20px}
.filters button:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}
.filters button[aria-pressed="true"]{background:var(--ink);color:#fff}
.finder{display:flex;flex-direction:column;align-items:center;gap:14px;margin:-6px 0 30px}
.search{position:relative;width:min(100%,420px)}
.search input{width:100%;height:50px;padding:0 18px 0 48px;border-radius:999px;border:3px solid var(--ink);background:#fff;font:inherit;font-weight:700;font-size:16px;box-shadow:0 4px 0 var(--ink)}
.search svg{position:absolute;left:16px;top:50%;width:22px;height:22px;transform:translateY(-50%);fill:none;stroke:var(--ink);stroke-width:2.6;stroke-linecap:round}
.count{margin:0;font-weight:800;font-size:14px;color:var(--ink2)}
.games{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,268px),1fr));gap:26px}
.game{position:relative;display:flex;flex-direction:column;background:#fff;border:3px solid var(--ink);border-radius:26px;box-shadow:0 7px 0 var(--ink);overflow:hidden;transition:transform .25s cubic-bezier(.3,1.4,.5,1)}
.game:hover{transform:translateY(-6px) rotate(-.8deg)}
.game:nth-child(even):hover{transform:translateY(-6px) rotate(.8deg)}
.game.is-hidden{display:none}
.game.is-hot{animation:hot 1.2s ease}
@keyframes hot{0%,100%{transform:none}20%{transform:translateY(-10px) scale(1.03)}40%{transform:translateY(0)}}
.game-cover{display:block;position:relative;aspect-ratio:20/13;background:var(--c1);border-bottom:3px solid var(--ink);overflow:hidden}
.game-cover img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.game:hover .game-cover img{transform:scale(1.06)}
.game-new{position:absolute;right:10px;top:10px;z-index:1;font-family:var(--fe);font-weight:700;font-size:14px;letter-spacing:.08em;color:#fff;background:var(--pink);border:3px solid var(--ink);border-radius:999px;padding:1px 11px;transform:rotate(6deg);box-shadow:0 3px 0 var(--ink)}
.game-body{display:flex;flex-direction:column;flex:1;padding:14px 18px 18px;background:linear-gradient(180deg,var(--c3,#fff) 0,#fff 90px)}
.game-name{margin:0;font-size:20px;font-weight:900;line-height:1.35}
.game-name a{text-decoration:none}
.game-name a::after{content:"";position:absolute;inset:0;z-index:0}
.game-catch{margin:5px 0 10px;font-weight:700;font-size:14px;line-height:1.65;color:var(--ink2)}
.game-chips{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-wrap:wrap;gap:5px}
.chip{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.03em;padding:1px 9px 2px;border-radius:999px;background:#fff;border:2px solid var(--ink)}
.chip-job{background:var(--yellow)}
.game-dev{margin:0 0 14px;font-size:12px;font-weight:700;color:var(--ink2)}
.game-dev::before{content:"あそべる きかい：";color:#8a93a6}
.game-btns{position:relative;z-index:1;margin:auto 0 0;display:flex;gap:8px}
.game-btns .btn{min-height:44px;padding:0 16px;font-size:15px}
.game-btns .btn-play{--bc:var(--c1);flex:1}
.game-soon{border-style:dashed;box-shadow:none;background:#fffaf0}
.game-soon:hover{transform:none}
.game-soon .game-body{background:none}
.soon-art{aspect-ratio:20/13;display:grid;place-items:center;position:relative;border-bottom:3px dashed var(--ink);background:repeating-linear-gradient(-45deg,#ffe8a8 0 18px,#fff4cf 18px 36px)}
.soon-art i{position:absolute;width:50px;height:50px;border-radius:12px;border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink)}
.soon-art i:nth-child(1){background:var(--pink);transform:translate(-46px,20px) rotate(-8deg)}
.soon-art i:nth-child(2){background:var(--blue);transform:translate(8px,20px) rotate(4deg)}
.soon-art i:nth-child(3){background:var(--green);transform:translate(-20px,-30px) rotate(10deg);animation:blockBob 2.4s ease-in-out infinite}
.soon-art i:nth-child(4){background:var(--orange);transform:translate(60px,20px) rotate(-3deg)}
@keyframes blockBob{50%{transform:translate(-20px,-42px) rotate(-6deg)}}
.game-soon .game-name{font-size:18px}
.more-wrap{text-align:center;margin:34px 0 0}
.empty{grid-column:1/-1;text-align:center;font-weight:800;color:var(--ink2);padding:30px 0}

/* ---------- ガチャ ---------- */
.gacha-sec{background:#fff1c7;background-image:radial-gradient(circle,rgba(240,141,41,.18) 2.5px,transparent 3px);background-size:26px 26px}
.gacha-sec::before{content:"";position:absolute;left:0;right:0;top:-39px;height:40px;background:#fff1c7;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V22C20 22 20 6 40 6s20 16 40 16 20-16 40-16 20 16 40 16v18z'/%3E%3C/svg%3E") 0 0/160px 40px repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V22C20 22 20 6 40 6s20 16 40 16 20-16 40-16 20 16 40 16v18z'/%3E%3C/svg%3E") 0 0/160px 40px repeat-x}
.gc{display:grid;grid-template-columns:auto minmax(0,400px);justify-content:center;align-items:center;gap:56px}
.gc-machine{position:relative;width:300px;user-select:none;-webkit-user-select:none}
.gc-top{position:relative;z-index:2;height:44px;margin:0 34px -16px;background:var(--pink);border:4px solid var(--ink);border-radius:22px 22px 12px 12px;display:grid;place-items:center;color:#fff;font-family:var(--fe);font-weight:700;letter-spacing:.2em}   /* 四辺を 閉じて ガラスの 上に 少し 重ねる ( ふた )。前は 下の 線が なく、左右の 線が 途中で 切れて 見えた */
.gc-dome{position:relative;height:230px;margin:0 14px;border:4px solid var(--ink);border-radius:50% 50% 18px 18px/60% 60% 18px 18px;background:rgba(220,244,255,.55);overflow:hidden}
.gc-balls{position:absolute;inset:0}
.gc-ball{position:absolute;width:52px;height:52px;border-radius:50%;border:3px solid var(--ink);background:linear-gradient(180deg,var(--bc) 0 50%,#fff 50%);transition:transform .2s}
.gc-ball::after{content:"";position:absolute;left:9px;top:7px;width:13px;height:8px;border-radius:50%;background:rgba(255,255,255,.75);transform:rotate(-25deg)}
.gc-machine.is-shake .gc-ball{animation:ballShake .32s ease-in-out 3}
.gc-ball:nth-child(3n){animation-delay:.06s!important}.gc-ball:nth-child(3n+1){animation-delay:.12s!important}
@keyframes ballShake{25%{transform:translate(4px,-10px) rotate(14deg)}50%{transform:translate(-3px,-4px) rotate(-10deg)}75%{transform:translate(2px,-8px) rotate(6deg)}}
.gc-shine{position:absolute;left:16%;top:10%;width:26%;height:46%;border-radius:50%;background:linear-gradient(160deg,rgba(255,255,255,.85),rgba(255,255,255,0));pointer-events:none}
.gc-body{position:relative;height:190px;background:var(--blue);border:4px solid var(--ink);border-top-width:6px;border-radius:0 0 24px 24px;box-shadow:inset 0 -10px 0 rgba(0,0,0,.12)}
.gc-label{position:absolute;left:20px;top:18px;margin:0;color:#fff;font-family:var(--fe);font-weight:700;font-size:26px;line-height:1;letter-spacing:.06em;text-shadow:0 3px 0 var(--ink)}
.gc-label small{font-family:var(--f);font-weight:900;font-size:17px;letter-spacing:.1em}
.gc-handle{position:absolute;right:26px;top:22px;width:92px;height:92px;border-radius:50%;border:4px solid var(--ink);background:var(--yellow);cursor:pointer;box-shadow:0 6px 0 var(--ink);touch-action:manipulation;transition:box-shadow .1s,transform .1s}
.gc-handle i{position:absolute;left:50%;top:50%;width:68px;height:20px;margin:-10px 0 0 -34px;border-radius:10px;background:#fff;border:3px solid var(--ink);transition:transform .9s cubic-bezier(.3,.1,.3,1)}
.gc-handle:active{transform:translateY(4px);box-shadow:0 2px 0 var(--ink)}
.gc-handle:disabled{cursor:default}
.gc-handle.is-turn i{transform:rotate(360deg)}
.gc-slot{position:absolute;left:28px;bottom:20px;width:96px;height:64px;border-radius:14px;background:#1b2436;border:4px solid var(--ink);overflow:hidden}
.gc-cap{position:absolute;left:50%;top:2px;width:50px;height:50px;margin-left:-25px;border-radius:50%;opacity:0;pointer-events:none}
.gc-cap b{position:absolute;left:0;right:0;height:50%;border:3px solid var(--ink)}
.gc-cap b:first-child{top:0;border-radius:30px 30px 0 0;border-bottom-width:1.5px;background:var(--bc,var(--pink))}
.gc-cap b:last-child{bottom:0;border-radius:0 0 30px 30px;border-top-width:1.5px;background:#fff}
.gc-cap.is-drop{animation:capDrop .9s cubic-bezier(.3,.6,.4,1) forwards}
@keyframes capDrop{0%{opacity:1;transform:translateY(-60px)}45%{opacity:1;transform:translateY(4px)}62%{transform:translateY(-10px)}80%{transform:translateY(4px)}100%{opacity:1;transform:translateY(4px)}}
.gc-cap.is-open b:first-child{animation:capOpen .5s ease forwards}
@keyframes capOpen{to{transform:translate(-14px,-30px) rotate(-40deg);opacity:0}}
.gc-foot{height:22px;margin:0 30px;background:var(--ink);border-radius:0 0 14px 14px}
.gc-result{min-height:300px;display:flex;flex-direction:column;justify-content:center}
.gc-wait{margin:0;text-align:center;display:flex;flex-direction:column;gap:6px}
.gc-wait b{font-size:22px;font-weight:900}
.gc-wait span{font-size:14px;font-weight:700;color:var(--ink2)}
.gc-card{background:#fff;border:3px solid var(--ink);border-radius:24px;box-shadow:0 8px 0 var(--ink);overflow:hidden;animation:popIn2 .55s cubic-bezier(.3,1.4,.5,1)}
@keyframes popIn2{0%{transform:scale(.5) rotate(-8deg);opacity:0}100%{transform:none;opacity:1}}
.gc-card img{width:100%;aspect-ratio:20/13;object-fit:cover;border-bottom:3px solid var(--ink)}
.gc-card div{padding:14px 18px 18px}
.gc-card p{margin:0;font-weight:800;color:var(--pink);font-size:15px}
.gc-card h3{margin:2px 0 6px;font-size:22px;font-weight:900;line-height:1.35}
.gc-card .gc-catch{margin:0 0 12px;color:var(--ink2);font-weight:700;font-size:14px}
.gc-card .btn-play{--bc:var(--c1)}

/* ---------- おうちの方へ ---------- */
.parents-sec{background:#e6f5ff;--wc:#e6f5ff}
.parents-sec .sec-en{color:var(--blue)}
.pgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.pbox{background:#fff;border-radius:22px;padding:22px 24px 24px;border:2px solid #cfe6f5}
.pbox h3{margin:0 0 8px;font-size:18px;font-weight:900}
.pbox p,.pbox li{margin:0;font-size:15px;line-height:1.85;color:var(--ink2)}
.pbox p+p{margin-top:8px}
.pbox ul{margin:0;padding-left:1.2em}
.sec-head-s{margin:56px 0 22px}
.sec-head-s h2{font-size:clamp(24px,3.6vw,32px)}
.faq{max-width:820px;margin:0 auto}
.faq details{background:#fff;border-radius:18px;margin:0 0 10px;padding:0 22px;border:2px solid #cfe6f5}
.faq summary{cursor:pointer;padding:16px 30px 16px 0;font-weight:800;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:11px;font-size:26px;line-height:1.2;color:var(--blue);font-weight:900}
.faq details[open] summary::after{content:"−"}
.faq details p{margin:0 0 18px;color:var(--ink2);font-size:15px}

/* ---------- フッター ---------- */
.foot{background:var(--ink);color:#fff;text-align:center;padding:48px 0 calc(40px + env(safe-area-inset-bottom))}
.foot-logo{margin:0 auto 18px;width:min(300px,70vw);line-height:0}
.foot-logo .kl-logo{width:100%;height:auto}
.foot-links{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 20px;margin:0 0 10px;font-weight:700;font-size:14px}
.foot-c{margin:0;font-size:12.5px;color:#c9d0de}
.foot a{text-underline-offset:3px}

/* ---------- 出てくる 動き ---------- */
.rv{opacity:0;transform:translateY(26px);transition:opacity .6s,transform .6s cubic-bezier(.3,1.2,.5,1)}
.rv.in{opacity:1;transform:none}

/* 分かち書きの 文は スペースの 所で だけ 改行する ( ことばの 途中で 折らない ) */
.sec-sub,.hero-lead b,.hero-lead span,.game-catch,.pop-catch,.gc-wait,.gc-catch,.game-name,.pop-name,.town-hint,.empty{word-break:keep-all;overflow-wrap:anywhere}

/* ---------- せまい 画面 ---------- */
@media (max-width:760px){
  :root{--bar:58px}
  .bar-nav{display:none}
  .filters{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;width:calc(100% + 32px);margin:0 -16px;padding:2px 16px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .filters::-webkit-scrollbar{display:none}
  .filters button{flex:none}
  .snd{margin-left:auto;height:40px}
  .hero{min-height:max(640px,100svh)}
  .hero-head h1{width:min(420px,88vw)}
  .hero-lead{padding:8px 18px 10px;margin-top:10px}
  .pin-in{font-size:12.5px;padding:4px 10px 5px 5px}
  .pin-dot{width:20px;height:20px}
  .pop{grid-template-columns:110px 1fr;bottom:12px;border-radius:20px}
  .pop-body{padding:12px 14px 14px}
  .pop-name{font-size:18px;padding-right:28px}
  .pop-catch{font-size:13px;margin-bottom:10px}
  .pop .btn{min-height:42px;padding:0 16px;font-size:15px}
  .sec{padding:56px 0 64px}
  .games{gap:24px}
  .gc{grid-template-columns:1fr;gap:30px;justify-items:center}
  .gc-result{width:100%;max-width:420px;min-height:0}
  .games{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}
  .pgrid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .kl-big .kl-k,.pin-in,.sun,.scroll-cue i,.soon-art i,.gc-ball{animation:none!important}
  .rv{opacity:1;transform:none;transition:none}
  .game,.game:hover{transition:none;transform:none}
}
.pbox .pnote{font-size:13.5px;color:#6a7488}

/* ---------- 入口：タップして はいる（2026-10-15）。html.gate-on の ときだけ 出す（head の 小さな script が 決める） ---------- */
.gate{display:none}
html.gate-on{overflow:hidden}
html.gate-on .gate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px 16px calc(24px + env(safe-area-inset-bottom));
  background:linear-gradient(180deg,var(--sky1) 0%,var(--sky2) 55%,var(--cream) 100%);overflow:hidden;transition:opacity .55s ease,visibility .55s}
html.gate-on .gate.is-out{opacity:0;visibility:hidden}
.gate-cloud{position:absolute;width:180px;height:56px;border-radius:999px;background:#fff;box-shadow:40px -22px 0 -6px #fff,-34px -14px 0 -10px #fff;opacity:.92;animation:gateCloud 22s linear infinite}
.gate-cloud.gc1{top:12%;left:-10%}.gate-cloud.gc2{top:28%;left:60%;transform:scale(.7);animation-duration:30s;animation-delay:-12s}.gate-cloud.gc3{top:70%;left:20%;transform:scale(.85);animation-duration:26s;animation-delay:-6s;opacity:.7}
@keyframes gateCloud{from{translate:-30vw 0}to{translate:130vw 0}}
.gate-in{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px;width:min(100%,460px);text-align:center}
.gate-logo{width:min(100%,380px);height:auto;animation:gateHop 2.6s cubic-bezier(.3,.7,.4,1) infinite;transform-origin:50% 100%}
@keyframes gateHop{0%,60%,100%{transform:none}70%{transform:scale(1.04,.94)}80%{transform:translateY(-8%) scale(.98,1.03)}90%{transform:scale(1.02,.98)}}
.gate-load{width:min(100%,360px);padding-top:30px}
.gate-rail{--p:0;position:relative;height:12px;border-radius:999px;background:repeating-linear-gradient(90deg,#9aa4b8 0 4px,transparent 4px 14px),#e3e8f0;border:3px solid var(--ink)}
.gate-fill{position:absolute;inset:0 auto 0 0;width:calc(var(--p) * 100%);border-radius:999px;background:var(--orange);transition:width .2s linear}
.gate-train{position:absolute;bottom:6px;left:calc(var(--p) * (100% - 64px));width:64px;height:auto;transition:left .2s linear;animation:gateBob .5s ease-in-out infinite alternate}
@keyframes gateBob{to{translate:0 -2px}}
.gate-msg{margin:0;font-weight:800;font-size:15px;color:var(--ink2);min-height:1.8em}
.gate-go{--bc:var(--pink);min-height:62px;padding:0 34px;font-size:20px;font-weight:900;letter-spacing:.08em;color:#fff;box-shadow:0 6px 0 var(--ink);transition:transform .15s,opacity .3s}
.gate-go:disabled{opacity:.45;cursor:default;box-shadow:0 3px 0 var(--ink)}
.gate-go:not(:disabled){animation:gatePulse 1.4s ease-in-out infinite}
@keyframes gatePulse{50%{transform:scale(1.05)}}
.gate-snd{display:inline-flex;align-items:center;gap:6px;padding:7px 16px 7px 12px;border-radius:999px;border:2.5px solid var(--ink);background:#fff;font-weight:800;font-size:14px;cursor:pointer;touch-action:manipulation}
.gate-snd svg{width:20px;height:20px;fill:var(--ink);stroke:var(--ink);stroke-width:2;stroke-linecap:round}
.gate-snd svg .w{fill:none}
.gate-snd[aria-pressed="false"] svg .w{display:none}
.gate-snd[aria-pressed="false"]{color:var(--ink2);background:#eef1f6}
.gate-go,.gate-snd{touch-action:manipulation}
@media (prefers-reduced-motion:reduce){.gate-cloud,.gate-logo,.gate-train,.gate-go:not(:disabled){animation:none}}
