/* Overgear Studio: one stylesheet for every page */
:root{
  --paper:#faf7f1;--tone:#f0e9dd;--ink:#17140f;--soft:#554c42;--shu:#b5261d;--on-shu:#fff8ef;
  --night:#191d38;--night-tone:#232849;--night-ink:#efe9dc;--night-soft:#c3bfd6;
  --gut:clamp(16px,3vw,32px);--max:1360px;color-scheme:light;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Hiragino Sans","Yu Gothic UI","Noto Sans JP",sans-serif;
}
@media (prefers-color-scheme:dark){:root{
  --paper:#14120f;--tone:#1f1b17;--ink:#efe8db;--soft:#b3a899;--shu:#e5574a;--on-shu:#14120f;
  --night:#10132a;--night-tone:#1a1e3d;color-scheme:dark}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font-size:18px;line-height:1.55}
img{display:block;max-width:100%;height:auto}
.px{image-rendering:pixelated}
a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--shu);outline-offset:3px}
h1,h2,h3{margin:0;line-height:1;letter-spacing:-.03em;font-weight:750;text-wrap:balance}
h2{font-size:clamp(36px,5vw,68px)}
h3{font-size:clamp(22px,2vw,28px);letter-spacing:-.015em;line-height:1.15}
p{margin:0}
[lang=ja]{letter-spacing:0}
.wrap{max-width:var(--max);margin-left:auto;margin-right:auto;padding-left:var(--gut);padding-right:var(--gut)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:var(--gut);top:-80px;background:var(--ink);color:var(--paper);padding:10px 16px;z-index:9}
.skip:focus{top:12px}

/* Bar */
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:20px;padding-bottom:20px}
.mark{display:flex;align-items:center;gap:10px;font-weight:700;text-decoration:none;font-size:18px}
.mark svg{width:30px;height:30px;color:var(--shu);flex:none}
.bar nav{display:flex;gap:clamp(14px,2.4vw,32px);font-size:16px}
.bar nav a{text-decoration:none;padding:6px 0}
.bar nav a:hover,.bar nav a[aria-current]{text-decoration:underline}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;background:var(--shu);color:var(--on-shu);
  font-weight:650;font-size:17px;text-decoration:none;touch-action:manipulation;transition:transform .12s}
.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn:active{transform:translateY(1px)}
.btn.line{background:transparent;color:inherit;box-shadow:inset 0 0 0 2px currentColor}

/* Sections */
section{padding:clamp(88px,12vw,180px) 0 0}
.lede{font-size:clamp(20px,1.6vw,23px);color:var(--soft);max-width:44ch}
.say{font-size:clamp(24px,2.6vw,36px);line-height:1.3;letter-spacing:-.015em;font-weight:500;max-width:30ch}
.muted{color:var(--soft)}
.small{font-size:15px}

/* Home: hero */
.hero h1{font-size:clamp(60px,12.4vw,184px);line-height:.88;letter-spacing:-.05em;margin:clamp(24px,5vw,72px) 0 clamp(32px,4vw,56px)}
.hero-row{display:grid;grid-template-columns:5fr 7fr;gap:clamp(24px,4vw,64px);align-items:end}
.hero-row .lede{color:var(--ink);margin-bottom:28px}
.hero-pic{position:relative;display:block;text-decoration:none}
.hero-pic img{width:100%;aspect-ratio:16/9;object-fit:cover}
.hero-pic .sprite{position:absolute;right:9%;bottom:6%;width:22%;aspect-ratio:1;object-fit:contain}
.cap{font-size:15px;color:var(--soft);margin-top:10px}

/* Home: the game */
.game{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:center;margin-top:clamp(40px,5vw,72px)}
.phone{border-radius:clamp(22px,2.4vw,34px);overflow:hidden;background:var(--tone);max-width:400px;width:100%;align-self:start}
.phone img{width:100%}
.game h3{font-size:clamp(40px,4.6vw,64px);letter-spacing:-.035em;line-height:.95}
.game h3 span{display:block;font-size:.5em;font-weight:600;margin-top:10px}
.game .say{margin:24px 0 28px;font-size:clamp(20px,1.8vw,26px)}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 32px;margin:0 0 36px;padding:0}
.facts div{display:flex;flex-direction:column-reverse}
.facts dt{font-size:15px;color:var(--soft)}
.facts dd{margin:0;font-size:clamp(28px,2.6vw,38px);font-weight:750;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}

/* Home: about */
.about{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,6vw,96px);margin-top:clamp(36px,4vw,56px)}
.about .say{margin-bottom:clamp(40px,5vw,72px)}
.ways{list-style:none;margin:0;padding:0;display:grid;gap:clamp(32px,4vw,52px)}
.ways li{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,6fr);gap:12px 32px;align-items:start}
.ways p{color:var(--soft)}
.about figure{margin:0;align-self:start;position:sticky;top:32px}
.about figure img{width:100%;aspect-ratio:4/5;object-fit:cover}

/* Fields of colour */
.field{margin-top:clamp(88px,12vw,180px);padding:clamp(72px,10vw,150px) 0}
.field.shu{background:var(--shu);color:var(--on-shu)}
.field.night{background:var(--night);color:var(--night-ink)}
.field.night .muted{color:var(--night-soft)}
.field h2+*{margin-top:24px}
.mail{display:inline-block;font-size:clamp(24px,6.4vw,92px);font-weight:750;letter-spacing:-.04em;line-height:1;margin:clamp(28px,4vw,56px) 0 24px;overflow-wrap:anywhere}
.field.shu .btn{background:var(--on-shu);color:var(--shu)}

/* Footer */
footer{background:var(--ink);color:var(--paper);padding:clamp(64px,8vw,120px) 0 32px}
.field+footer{margin-top:0}
main>section:last-child+footer{margin-top:clamp(88px,12vw,180px)}
footer .big{font-size:clamp(48px,11.5vw,172px);font-weight:750;letter-spacing:-.05em;line-height:.9;margin:0 0 clamp(40px,5vw,72px)}
footer .row{display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between;font-size:15px;opacity:.85}
footer nav{display:flex;flex-wrap:wrap;gap:12px 28px}

/* Game page: hero */
.kq-hero{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(32px,5vw,80px);align-items:center;padding-top:clamp(16px,3vw,40px)}
.kq-hero h1{font-size:clamp(56px,8.4vw,128px);line-height:.9;letter-spacing:-.05em}
.kq-hero h1 span{display:block;font-size:.42em;font-weight:650;margin-top:16px}
.kq-hero .lede{color:var(--ink);margin:28px 0 32px}
.kq-hero .small{margin-top:16px}
.stage{position:relative;aspect-ratio:1/1;overflow:hidden}
.stage>img:first-child{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.stage .phone{position:absolute;left:50%;top:7%;transform:translateX(-50%);width:52%;box-shadow:0 30px 60px -20px rgba(0,0,0,.45)}

/* Game page: story */
.story{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:clamp(32px,5vw,80px);align-items:center}
.story .say{max-width:none}
.story .say+p{margin-top:28px;max-width:58ch}
.story img{width:100%;max-width:340px;justify-self:center}

/* Game page: battle */
.shots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,3vw,48px);margin-top:clamp(40px,5vw,72px);list-style:none;padding:0}
.shots .phone{max-width:none}
.shots p{margin-top:16px;font-size:16px}
.shots b{display:block;font-size:19px}
.modes{width:100%;border-collapse:collapse;margin-top:clamp(48px,6vw,88px);font-variant-numeric:tabular-nums}
.modes th,.modes td{text-align:left;padding:18px 16px 18px 0;vertical-align:baseline}
.modes thead th{font-size:15px;font-weight:600;color:var(--soft);padding-bottom:12px}
.modes tbody tr:nth-child(odd){background:var(--tone)}
.modes tbody th,.modes tbody td{padding:20px 16px}
.modes tbody th{font-size:22px;white-space:nowrap}
.modes tbody th span{font-weight:500;margin-right:10px}
.modes td:last-child{text-align:right;font-size:24px;font-weight:750}
.modes thead th:last-child{text-align:right}

/* Game page: the road */
.road{list-style:none;margin:clamp(40px,5vw,72px) 0 0;padding:0;display:grid;gap:clamp(72px,9vw,140px)}
.prov>img{width:100%;aspect-ratio:16/8;object-fit:cover}
.prov-info{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:24px clamp(32px,5vw,80px);margin-top:clamp(24px,3vw,40px)}
.lv{display:inline-block;font-size:17px;font-weight:750;background:var(--ink);color:var(--paper);padding:4px 12px;border-radius:999px;margin-bottom:16px}
.prov h3{font-size:clamp(34px,3.6vw,52px);letter-spacing:-.03em}
.prov h3+p{margin-top:8px;font-size:19px}
.prov .need{margin-top:20px;color:var(--soft);max-width:34ch}
.foes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.foes img{width:100%;max-width:120px;aspect-ratio:1;object-fit:contain;background:var(--tone);border-radius:50%;padding:12%}
.foes .boss img{background:var(--shu)}
.foes b{display:block;margin-top:12px;font-size:17px;line-height:1.25}
.foes [lang=ja]{display:block;font-size:15px;color:var(--soft)}
.foes .lore{font-size:15px;color:var(--soft);margin-top:6px}
.hear{appearance:none;border:0;background:none;color:var(--shu);font:inherit;font-size:15px;font-weight:650;padding:8px 0;min-height:36px;cursor:pointer;touch-action:manipulation;display:inline-flex;gap:6px;align-items:center}
.hear:hover{text-decoration:underline}
.hear svg{width:16px;height:16px}

/* Game page: start where you are */
.split{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,80px);align-items:center}
.split img{width:100%;aspect-ratio:16/10;object-fit:cover}
.split p+p{margin-top:18px}

/* Game page: raids */
.raid-top{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,80px);align-items:end}
.raid-top .say{margin-top:24px}
.raid-top .phone{max-width:300px;justify-self:end;background:var(--night-tone)}
.giants{list-style:none;margin:clamp(56px,7vw,104px) 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(16px,2.5vw,40px)}
.giants img{width:100%;aspect-ratio:1;object-fit:contain}
.giants b{display:block;font-size:20px;margin-top:16px;line-height:1.2}
.giants [lang=ja]{display:block;color:var(--night-soft);font-size:15px}
.giants p{font-size:15px;margin-top:8px}
.giants .hp{font-variant-numeric:tabular-nums;font-weight:650;color:var(--night-ink)}

/* Game page: between battles */
.camp{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,80px);margin-top:clamp(40px,5vw,72px);align-items:start}
.camp .pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,32px)}
.camp dl{margin:0;display:grid;gap:clamp(28px,3vw,40px)}
.camp dt{font-size:22px;font-weight:700;letter-spacing:-.01em}
.camp dt span{font-weight:500;margin-right:10px}
.camp dd{margin:6px 0 0;color:var(--soft)}

/* Game page: free or pass */
.plans{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:clamp(40px,5vw,72px)}
.plans>div{padding:clamp(28px,4vw,56px)}
.plans>div:first-child{background:var(--tone)}
.plans>div:last-child{background:var(--ink);color:var(--paper)}
.plans h3{font-size:clamp(28px,2.8vw,40px)}
.plans ul{margin:20px 0 0;padding-left:1.1em}
.plans li{margin:8px 0}

@media (max-width:880px){
  .hero-row,.game,.about,.kq-hero,.story,.split,.raid-top,.camp,.prov-info{grid-template-columns:minmax(0,1fr)}
  .about figure{position:static}.about figure img{aspect-ratio:16/10}
  .game .phone{max-width:300px}
  .story img{max-width:220px;justify-self:start}
  .giants{grid-template-columns:repeat(3,minmax(0,1fr))}
  .raid-top .phone{justify-self:start}
  .ways li{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:600px){
  body{font-size:17px}
  .bar nav{width:100%;justify-content:space-between}
  .shots{grid-template-columns:minmax(0,1fr);max-width:320px}
  .foes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .giants{grid-template-columns:repeat(2,minmax(0,1fr))}
  .plans{grid-template-columns:minmax(0,1fr)}
  .facts{gap:20px}
  .stage{aspect-ratio:4/5}.stage .phone{width:64%}
  .prov>img{aspect-ratio:16/10}
  .modes tbody th{font-size:19px;white-space:normal}.modes td:last-child{font-size:20px}
  .modes th,.modes td{padding-right:8px}
}
