/* Boming Games — night scene + cinnabar seal + gold leaf; documents on rice paper.
   Night #0f1218 · Slate #1c2330 · Cinnabar #c23a2b · Gold #d6b26e · Paper #efe4cc · Ink #2a2118 */
:root{--night:#0f1218;--slate:#1c2330;--slate2:#252e3d;--cin:#c23a2b;--cin2:#9e2a1e;--gold:#d6b26e;--paper:#efe4cc;--ink:#2a2118;--mist:#a9b0bd;--text:#e9e3d6;
  --brush:'Ma Shan Zheng','STXingkai','Kaiti SC','STKaiti','KaiTi',serif;--sans:'PingFang SC','Hiragino Sans GB','Microsoft YaHei','Noto Sans SC',sans-serif;--latin:'Cormorant Garamond','Iowan Old Style','Georgia',serif}
*{box-sizing:border-box}
html{background:var(--night);scroll-behavior:smooth}
body{margin:0;color:var(--text);font:16px/1.75 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.en{font-family:var(--latin);font-size:1.08em;letter-spacing:.01em;color:var(--mist)}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}

/* the seal: cinnabar block, characters cut out of it, edges eaten like a real stamp (svg filter #rough) */
.seal{display:inline-grid;place-items:center;direction:rtl;background:var(--cin);color:var(--paper);font-family:var(--brush);line-height:1;filter:url(#rough);border-radius:3px}
.seal.sm{width:38px;height:38px;font-size:17px;grid-template-columns:1fr 1fr;padding:3px 2px;gap:0 1px}
.seal.sm span{writing-mode:vertical-rl;letter-spacing:-1px}

/* nav */
.nav{position:absolute;top:0;left:0;right:0;z-index:5}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:76px;gap:16px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand b{font-family:var(--latin);font-weight:600;letter-spacing:.32em;font-size:15px;color:var(--paper)}
.nav nav{display:flex;gap:26px;font-size:14px}
.nav nav a{text-decoration:none;color:var(--mist);transition:color .2s}.nav nav a:hover{color:var(--paper)}

/* hero: the game's own key art, the title written down the right side like the inscription on a hanging scroll */
.hero{position:relative;min-height:100svh;display:grid;grid-template-columns:1fr auto;align-items:end;overflow:hidden;isolation:isolate}
.hero::before{content:'';position:absolute;inset:0;background:url(/img/hero.webp) 58% 30%/cover no-repeat;z-index:-2;transform:scale(1.04);animation:drift 22s ease-in-out infinite alternate}
.hero::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(15,18,24,.92) 0%,rgba(15,18,24,.55) 38%,rgba(15,18,24,.05) 70%,rgba(15,18,24,.35) 100%),linear-gradient(0deg,var(--night) 0%,rgba(15,18,24,0) 32%)}
@keyframes drift{to{transform:scale(1.1) translate(-1.5%,-1%)}}
.pitch{padding:0 0 13vh 24px;max-width:560px;justify-self:start;margin-left:max(0px,calc((100vw - 1120px)/2))}
.pitch .kicker{font-size:13px;letter-spacing:.3em;color:var(--gold);margin:0 0 18px}
.pitch h2{font-family:var(--brush);font-weight:400;font-size:clamp(26px,3.2vw,38px);line-height:1.35;margin:0 0 14px;color:var(--paper)}
.pitch p{margin:0 0 6px;color:#cfc8ba}
.acts{display:flex;gap:14px;align-items:center;margin-top:28px;flex-wrap:wrap}
.play{display:inline-flex;align-items:center;gap:10px;background:var(--cin);color:var(--paper);text-decoration:none;font-size:17px;letter-spacing:.2em;padding:14px 30px 14px 34px;border-radius:2px;box-shadow:0 0 0 1px rgba(214,178,110,.45) inset,0 10px 30px -10px rgba(194,58,43,.8);transition:transform .15s,background .2s}
.play:hover{background:#d24534;transform:translateY(-1px)}.play:active{transform:translateY(1px)}
.play.off{background:#4a3a36;box-shadow:0 0 0 1px rgba(214,178,110,.25) inset;pointer-events:none;color:#cbbfae}
.ghost{color:var(--mist);text-decoration:none;font-size:14px;border-bottom:1px solid rgba(169,176,189,.4);padding-bottom:2px}.ghost:hover{color:var(--paper)}

.scroll{display:flex;flex-direction:row-reverse;align-items:flex-start;gap:14px;position:relative;padding:120px max(28px,calc((100vw - 1120px)/2 + 24px)) 12vh 24px}
.title{writing-mode:vertical-rl;font-family:var(--brush);font-weight:400;font-size:clamp(80px,15vh,156px);line-height:1;margin:0;color:var(--paper);letter-spacing:.06em;text-shadow:0 0 30px rgba(194,58,43,.35),0 4px 18px rgba(0,0,0,.7);
  animation:ink 1.3s cubic-bezier(.6,.05,.25,1) .2s both}
@keyframes ink{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
.scroll::before{content:"";position:absolute;right:max(0px,calc((100vw - 1120px)/2 - 40px));top:60px;width:340px;height:85%;background:radial-gradient(closest-side,rgba(15,18,24,.62),rgba(15,18,24,0));z-index:-1;pointer-events:none}
.sub{writing-mode:vertical-rl;font-size:15px;letter-spacing:.5em;color:var(--gold);margin-top:14px}
.stamp{width:62px;height:62px;font-size:24px;grid-template-columns:1fr 1fr;padding:6px 4px;align-self:flex-end;margin-top:auto;transform:rotate(-4deg);animation:stamp .35s cubic-bezier(.3,1.6,.5,1) 1.35s both}
.stamp span{writing-mode:vertical-rl}
@keyframes stamp{from{opacity:0;transform:scale(1.6) rotate(-14deg)}to{opacity:1;transform:scale(1) rotate(-4deg)}}

/* sections */
section{padding:96px 0}
.eyebrow{font-size:13px;letter-spacing:.3em;color:var(--gold);margin:0 0 10px}
.h{font-family:var(--brush);font-weight:400;font-size:clamp(30px,4vw,44px);margin:0 0 8px;color:var(--paper);line-height:1.2;text-wrap:balance}

/* what you do in the game: one cinnabar character says what each line is about */
.look{display:grid;grid-template-columns:1.25fr 1fr;gap:56px;align-items:center}
.frame{position:relative;padding:12px;background:linear-gradient(var(--slate2),var(--slate));border:1px solid rgba(214,178,110,.35)}
.frame img{display:block;width:100%;height:auto}
.frame figcaption{font-size:13px;color:var(--mist);padding:10px 2px 0}
.marks{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:22px}
.marks li{display:grid;grid-template-columns:44px 1fr;gap:16px;align-items:start}
.marks i{font-style:normal;font-family:var(--brush);font-size:26px;width:44px;height:44px;display:grid;place-items:center;color:var(--cin);border:1.5px solid var(--cin);border-radius:50%;line-height:1}
.marks b{display:block;color:var(--paper);font-weight:600;margin-bottom:2px}
.marks span{color:#bdb6a8;font-size:15px}

/* the price board: rice paper, ink, dotted leaders like a shop's list on the wall */
.board{background:var(--paper);color:var(--ink);padding:56px clamp(22px,6vw,72px) 48px;position:relative;box-shadow:0 30px 60px -30px rgba(0,0,0,.8);
  background-image:radial-gradient(rgba(120,90,50,.08) 1px,transparent 1.2px),linear-gradient(var(--paper),#e7dabd);background-size:5px 5px,100% 100%}
.board::before,.board::after{content:'';position:absolute;left:-10px;right:-10px;height:14px;background:linear-gradient(#5a3a22,#2e1d10);border-radius:7px}
.board::before{top:-7px}.board::after{bottom:-7px}
.board .h{color:var(--ink)}.board .eyebrow{color:var(--cin2)}
.board .seal{position:absolute;right:clamp(22px,6vw,72px);top:46px;width:54px;height:54px;font-size:21px;grid-template-columns:1fr 1fr;padding:5px 3px;transform:rotate(3deg)}
.board .seal span{writing-mode:vertical-rl}
.prices{list-style:none;margin:26px 0 0;padding:0;max-width:640px}
.prices li{display:flex;align-items:baseline;gap:10px;padding:9px 0;font-size:17px}
.prices li::after{content:'';order:2;flex:1;border-bottom:2px dotted rgba(42,33,24,.35);transform:translateY(-4px)}
.prices .n{order:1}.prices .p{order:3;font-family:var(--latin);font-weight:600;font-size:20px}
.prices small{color:var(--cin2);font-size:13px;margin-left:6px}
.fine{margin:26px 0 0;font-size:14px;color:#5b4a36;line-height:1.85;max-width:720px}
.fine a{color:var(--cin2)}
.fine .en{color:#6d5c47;font-size:15px;display:block;margin-top:8px}

/* studio + contact */
.studio{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.studio p{color:#c7c0b2;margin:0 0 10px}
.mail{font-family:var(--latin);font-size:22px;color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(214,178,110,.4)}.mail:hover{color:var(--paper)}
footer{border-top:1px solid rgba(214,178,110,.2);padding:26px 0 40px;font-size:13px;color:var(--mist)}
footer .wrap{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}footer a{text-decoration:none;margin-left:18px}footer a:hover{color:var(--paper)}

/* documents (terms / privacy / refund): a sheet of paper on the night */
.docnav{position:relative;background:var(--night);border-bottom:1px solid rgba(214,178,110,.18)}
.doc{background:var(--paper);color:var(--ink);max-width:860px;margin:48px auto 64px;padding:56px clamp(22px,6vw,68px);box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.doc h1{font-family:var(--brush);font-weight:400;font-size:40px;margin:0;line-height:1.2}
.doc .upd{color:#7a6850;font-size:13px;margin:6px 0 26px}
.doc h2{font-size:18px;margin:30px 0 8px;color:var(--cin2)}
.doc p,.doc li{color:#3a2f22}
.doc a{color:var(--cin2)}
.doc .en{color:inherit;font-family:var(--latin);font-size:17px;margin-top:46px;padding-top:30px;border-top:1px solid rgba(42,33,24,.2)}
.doc .en h1{font-family:var(--latin);font-weight:600;font-size:34px}
.doc .en p,.doc .en li{color:#3a2f22}
.doc table{border-collapse:collapse;width:100%;margin:10px 0;font-size:14px}.doc td,.doc th{border:1px solid rgba(42,33,24,.2);padding:6px 10px;text-align:left}

@media(max-width:820px){
  .nav nav{display:none}
  .hero{grid-template-columns:1fr auto;align-items:stretch}
  .pitch{align-self:end;padding:0 0 9vh 20px}
  .scroll{padding:96px 16px 9vh 0}
  .title{font-size:clamp(58px,10vh,84px)}
  .hero::after{background:linear-gradient(0deg,rgba(15,18,24,.98) 8%,rgba(15,18,24,.55) 45%,rgba(15,18,24,.2) 100%)}
  .look,.studio{grid-template-columns:1fr;gap:36px}
  section{padding:72px 0}
  .board .seal{display:none}
}
@media(max-width:520px){.hero{grid-template-columns:1fr 76px}.pitch{max-width:none}.scroll{flex-direction:column;align-items:center;align-self:start;gap:16px;padding:92px 12px 0 0}.title{font-size:60px}.sub{display:none}.stamp{width:46px;height:46px;font-size:17px;margin:0;align-self:center}}
@media(prefers-reduced-motion:reduce){.hero::before,.title,.stamp{animation:none}}
