/* NorthVane Games — shared styles. The header (.nv) never takes a game theme. */
@font-face{font-family:"Archivo Black";src:url(../fonts/archivo-black-latin-400-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Manrope;font-weight:400;src:url(../fonts/manrope-latin-400-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Manrope;font-weight:500;src:url(../fonts/manrope-latin-500-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Manrope;font-weight:600;src:url(../fonts/manrope-latin-600-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Manrope;font-weight:700;src:url(../fonts/manrope-latin-700-normal.woff2) format("woff2");font-display:swap}
@font-face{font-family:Manrope;font-weight:800;src:url(../fonts/manrope-latin-800-normal.woff2) format("woff2");font-display:swap}
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.45s}
:root{
  --nv-ink:#2E2E33;--nv-ink2:#1E1E22;--nv-stone:#8B8279;--nv-stone-d:#6F675F;--nv-bg:#F1EEE9;--nv-panel:#FAF8F5;--nv-rule:#DEDAD3;--nv-cream:#E6DCC8;--nv-muted:#5E5B57;
  /* page tokens: a game theme replaces these, the header ignores them */
  --bg:var(--nv-bg);--panel:var(--nv-panel);--ink:var(--nv-ink);--muted:var(--nv-muted);--rule:var(--nv-rule);--accent:var(--nv-stone-d);--accent-ink:#fff;
  --display:"Archivo Black",system-ui,sans-serif;--body:Manrope,system-ui,sans-serif;--label:Manrope,system-ui,sans-serif;
  --radius:12px;--wrap:1200px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.65 var(--body);-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%;height:auto}
video::cue{font:600 15px/1.35 Manrope,system-ui,sans-serif;background:rgba(0,0,0,.72);color:#fff}
a{color:inherit}
:focus-visible{outline:3px solid #B39D7A;outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:8px 12px;z-index:99}.skip:focus{left:8px}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.1;margin:0;overflow-wrap:break-word;hyphens:manual}
h1{font-size:clamp(38px,5.2vw,64px)}h2{font-size:clamp(28px,3.6vw,44px)}h3{font-size:22px}
p{margin:0}
.eyebrow{font:700 13px/1.2 var(--label);letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.lead{font-size:19px;color:var(--muted);max-width:640px}
.btn{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 22px;border-radius:8px;font:700 15px var(--label);text-decoration:none;border:1.5px solid transparent;background:var(--nv-ink);color:var(--nv-bg);cursor:pointer}
.btn:hover{background:#000}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--nv-stone)}
.btn.ghost:hover{border-color:var(--ink)}
section{padding:88px 0}
.sec-head{display:flex;flex-direction:column;gap:10px;margin-bottom:36px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font:700 12px/1 var(--label);letter-spacing:.1em;text-transform:uppercase;padding:6px 10px;border:1px solid var(--rule);border-radius:99px;color:var(--muted)}

/* ---------- header: always NorthVane ---------- */
.nv{position:sticky;top:0;z-index:50;background:rgba(241,238,233,.94);backdrop-filter:blur(8px);border-bottom:1px solid #DEDAD3;font-family:Manrope,system-ui,sans-serif;color:#2E2E33;view-transition-name:nvheader}
.nv .wrap{display:flex;align-items:center;justify-content:space-between;min-height:68px;gap:20px}
.nv-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#2E2E33}
.nv-brand img{width:46px;height:auto}
.nv-brand span{font:400 20px "Archivo Black",system-ui,sans-serif;letter-spacing:-.01em}
.nv-nav{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0}
.nv-nav>li>a,.nv-nav>li>button{display:flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;font:600 15px Manrope,system-ui,sans-serif;color:#2E2E33;text-decoration:none;background:none;border:0;border-radius:8px;cursor:pointer}
.nv-nav>li>a:hover,.nv-nav>li>button:hover,.nv-nav>li>a[aria-current]{background:#E7E3DC}
.chev{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.has-menu{position:relative}
.menu{position:absolute;right:0;top:calc(100% + 6px);width:560px;background:#FAF8F5;border:1px solid #DEDAD3;border-radius:12px;box-shadow:0 18px 40px rgba(30,30,34,.14);padding:12px;display:none;grid-template-columns:1fr 1fr;gap:4px}
.has-menu:hover .menu,.has-menu:focus-within .menu,.has-menu.open .menu{display:grid}
.menu a{display:flex;gap:12px;align-items:center;padding:10px;border-radius:8px;text-decoration:none;color:#2E2E33}
.menu a:hover{background:#EFEBE5}
.menu img{width:40px;height:40px;border-radius:9px;object-fit:cover;flex:none}
.menu b{display:block;font:700 14px/1.25 Manrope,system-ui,sans-serif}
.menu small{display:block;font:500 12px/1.3 Manrope,system-ui,sans-serif;color:#6F675F}
.menu .all{grid-column:1/-1;justify-content:center;font:700 14px Manrope,system-ui,sans-serif;border-top:1px solid #DEDAD3;border-radius:0;margin-top:6px;padding-top:14px}
.menu .grp{grid-column:1/-1;font:700 11px Manrope,system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#8B8279;padding:6px 10px 2px}
.burger{display:none;width:44px;height:44px;border:0;background:none;cursor:pointer;position:relative}
.burger span,.burger span::before,.burger span::after{position:absolute;left:11px;width:22px;height:2px;background:#2E2E33;content:""}
.burger span{top:21px}.burger span::before{top:-7px;left:0}.burger span::after{top:7px;left:0}
.mob{display:none}
@media (max-width:860px){
  .nv-nav{display:none}.burger{display:block}
  .mob[data-open=true]{display:block;border-top:1px solid #DEDAD3;padding:8px 24px 20px;max-height:calc(100vh - 68px);overflow:auto}
  .mob a{display:flex;align-items:center;gap:12px;min-height:46px;text-decoration:none;color:#2E2E33;font:600 16px Manrope,system-ui,sans-serif}
  .mob img{width:32px;height:32px;border-radius:7px}
  .mob .grp{font:700 11px Manrope,system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#8B8279;margin-top:14px}
}

/* ---------- home ---------- */
.hero{padding:22px 0 8px}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero h1{margin:10px 0 12px;font-size:clamp(32px,3.6vw,48px)}
.hero .btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.hero .lead{font-size:17px}
.hero-mark{width:100%;max-width:340px;margin:0 auto}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}.hero{padding-top:36px}}
.genres{background:var(--nv-ink);color:#F1EEE9;padding:12px 0}
.genres ul{list-style:none;margin:0 auto;padding:0 24px;max-width:1200px;display:flex;flex-wrap:wrap;justify-content:space-around;gap:14px 28px;font:700 14px Manrope,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.genres li{display:flex;align-items:center;gap:10px}
.genres svg{width:24px;height:24px;stroke:#E6DCC8;fill:none;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
@media (max-width:1020px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.cards{grid-template-columns:1fr}}
.card{position:relative;display:flex;flex-direction:column;background:var(--nv-panel);border:1px solid var(--nv-rule);border-radius:14px;overflow:hidden;text-decoration:none;color:var(--nv-ink);transition:transform .2s,box-shadow .2s;min-width:0}
.card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(30,30,34,.12)}
.card .art{aspect-ratio:16/9;background:#2E2E33;overflow:hidden}
.card .art img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .art img{transform:scale(1.03)}
.card .icon{position:absolute;left:20px;top:calc((100% * 0) + 0px);}
.card .body{position:relative;padding:40px 24px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.card .gicon{position:absolute;left:22px;top:-30px;width:60px;height:60px;border-radius:14px;border:3px solid var(--nv-panel);box-shadow:0 4px 12px rgba(0,0,0,.2);background:#2E2E33}
.card h3{font-size:24px;line-height:1.15}
.card p{color:var(--nv-muted);font-size:15.5px;line-height:1.55}
.card .foot{margin-top:auto;padding-top:10px;display:flex;justify-content:space-between;align-items:center;gap:10px;font:700 13px Manrope,sans-serif;color:var(--nv-stone-d)}
.card .tag{position:absolute;right:12px;top:12px;font:700 11px Manrope,sans-serif;letter-spacing:.14em;text-transform:uppercase;background:rgba(30,30,34,.78);color:#F1EEE9;padding:6px 9px;border-radius:6px}
.studio-band{background:#E7E4DE}
.studio-band .wrap{display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:center}
.studio-band img{width:220px}
.studio-band h2 span{display:block;color:var(--nv-stone)}
@media (max-width:760px){.studio-band .wrap{grid-template-columns:1fr}.studio-band img{width:150px}}

/* ---------- footer (takes the page theme) ---------- */
.foot-site{background:var(--foot-bg,#1E1E22);color:var(--foot-ink,#D9D3CA);padding:56px 0 32px;font-family:var(--body)}
.foot-site .wrap{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:32px}
.foot-site img{width:200px;height:auto}
.foot-site h4{margin:0 0 12px;font:700 12px/1 var(--label);letter-spacing:.18em;text-transform:uppercase;color:var(--foot-head,#B5ADA3)}
.foot-site a{display:block;color:inherit;text-decoration:none;padding:4px 0;font-size:15px}
.foot-site a:hover{text-decoration:underline}
.foot-site .fine{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:20px;font-size:13px;opacity:.8}
@media (max-width:760px){.foot-site .wrap{grid-template-columns:1fr 1fr}.foot-site .wrap>div:first-child{grid-column:1/-1}}

/* ---------- plain pages ---------- */
.page{padding:64px 0 96px}.page .wrap{max-width:820px}
.page h1{margin-bottom:20px}.page h2{font-size:26px;margin:40px 0 12px}
.page p,.page li{color:var(--muted)}.page p+p{margin-top:14px}
.page ul{padding-left:22px}

/* ---------- game pages: structure (themes fill the look) ---------- */
.store{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 18px;border-radius:10px;background:#000;color:#fff;text-decoration:none;font:600 15px Manrope,system-ui,sans-serif;border:1px solid rgba(255,255,255,.25)}
.store small{display:block;font-size:11px;opacity:.75;line-height:1}
.store svg{width:22px;height:22px;fill:currentColor}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0;border-top:1px solid var(--rule)}
.facts div{padding:18px 0;border-bottom:1px solid var(--rule)}
.facts dt{font:700 12px var(--label);letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.facts dd{margin:6px 0 0}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.qa{border-top:1px solid var(--rule);padding:18px 0}.qa h3{font-size:19px;font-family:var(--body);font-weight:700;margin-bottom:6px}
.page .glist,.glist{list-style:none;padding:0;margin:0 0 8px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.page .glist li{margin:0;padding:0;display:flex}
.glist a{display:flex;align-items:center;gap:14px;padding:14px 16px;width:100%;box-sizing:border-box;border:1px solid var(--rule);border-radius:10px;text-decoration:none;background:var(--nv-panel)}
.glist img{width:48px;height:48px;border-radius:10px;flex:none}
.glist span{line-height:1.3}
@media (max-width:640px){.gbar .gname span{display:none}.gbar .wrap{gap:8px}.gbar nav a{padding:8px 9px}.hero .wrap{gap:20px}.hero-mark{max-width:380px}}


/* ===== game page model (after the Two Shores kit): hero art fading into the ground, centred title, story slips, plays, world, cast, closing ===== */
.g section{padding:28px 0}
.g .prose p{margin:0 0 14px;max-width:62ch;line-height:1.7}.g .prose.c p{margin-inline:auto;text-align:center}
.sec-head.c{align-items:center;text-align:center}
.g h2{font-size:clamp(28px,4vw,42px);line-height:1.15;text-wrap:balance;margin:0}
.g-divider{display:block;width:min(520px,70%);height:34px;margin:36px auto;background:var(--divider,linear-gradient(var(--rule),var(--rule)) center/100% 1px no-repeat)}
.ghero{position:relative;isolation:isolate;overflow:hidden}
.ghero-art{position:relative;height:clamp(320px,50vw,720px);background:var(--hero-night,#111)}
.ghero-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--hero-pos,center 30%)}
.ghero-art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--hero-top,rgba(0,0,0,.35)) 0,transparent 26%,transparent 50%,color-mix(in srgb,var(--bg) 70%,transparent) 76%,var(--bg) 96%)}
.ghero.art-title .ghero-art{height:auto;aspect-ratio:16/9;max-height:820px}
.ghero.art-title .ghero-art::after{background:linear-gradient(180deg,transparent 78%,var(--bg) 100%)}
.ghero-body{position:relative;z-index:2;text-align:center;margin-top:calc(-1*var(--title-lift,clamp(70px,11vw,170px)));padding-bottom:20px}
.ghero.art-title .ghero-body{margin-top:0;padding-top:22px}
.g-title-img{margin:0}.g-title-img img{display:block;margin:0 auto;width:min(760px,92%);height:auto}
.g-title{margin:0;line-height:1}.g-title span{display:block;font-size:clamp(46px,8.4vw,104px);text-wrap:balance}.g-title small{display:block;margin-top:10px;font:var(--sub-font,600 clamp(15px,1.8vw,19px)/1.2 var(--label));letter-spacing:.3em;text-transform:uppercase;color:var(--accent)}
.tagline{font-family:var(--quote,var(--display));font-size:clamp(19px,2.3vw,24px);line-height:1.55;max-width:40ch;margin:18px auto 20px;text-wrap:balance}
.ghero .chips{justify-content:center;margin-bottom:22px}.ghero .row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;align-items:center}
.chip.status{border-color:var(--accent);color:var(--accent)}
.story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:start}
.beats{display:grid;gap:14px}
.beat{background:var(--slip,var(--panel));border-left:6px solid var(--ink);padding:20px 28px 22px 22px;clip-path:var(--slip-clip,none);box-shadow:0 6px 18px rgba(0,0,0,.14)}
.beat h3{font-size:22px;margin:6px 0 8px}.beat p{margin:0;font-size:15.5px;line-height:1.6}
.g .features{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}
.feature h3{font-size:21px;margin:12px 0 6px}.feature p{margin:0;font-size:15.5px;line-height:1.6;color:var(--muted)}
.ficon{width:56px;height:56px;display:block}
.watch{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:48px;align-items:center;margin-top:48px}
.watch.wide{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.vframe{width:100%;max-width:360px;margin:0 auto}.watch.wide .vframe{max-width:none}
.vframe video{display:block;width:100%;height:auto;aspect-ratio:720/1560;object-fit:cover;border-radius:var(--v-radius,18px);background:#000}
.watch.wide .vframe video{aspect-ratio:16/9}
.watch-text h3{font-size:28px;margin:8px 0 10px}.watch-text p{margin:0;line-height:1.7;max-width:46ch}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-top:48px}
.gallery.phone{display:flex;flex-wrap:wrap;justify-content:center}.gallery.phone figure{flex:0 1 164px}.gallery.phone img{aspect-ratio:9/19.5;object-fit:cover;object-position:top}
.gallery figure{margin:0;min-width:0}.gallery img{display:block;width:100%;height:auto;border-bottom:var(--shot-rule,4px solid var(--ink))}
.gallery figcaption{font-size:13.5px;color:var(--muted);margin-top:6px}
.world{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:48px;align-items:center}
.world-img img,.world-wide img{display:block;width:100%;height:auto;box-shadow:0 10px 30px rgba(0,0,0,.28)}
.world-wide{margin:0 0 28px}
.cast{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.cast figure{margin:0;min-width:0}
.cast img,.cast .ph{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;object-position:center 22%;border-bottom:4px solid var(--ink);background:var(--panel)}
.cast .ph{display:grid;place-items:center}.cast .ph img{width:56px;height:56px;aspect-ratio:auto;border:0;background:none;opacity:.75}
.cast figcaption{font:700 19px/1.25 var(--display);margin-top:10px}.cast figcaption small{display:block;font:400 14px/1.4 var(--body);color:var(--muted);margin-top:2px}
.cast.arch img{aspect-ratio:240/308;border:0;-webkit-mask:var(--arch-mask) center/100% 100%;mask:var(--arch-mask) center/100% 100%}
.g .note{max-width:60ch;margin:24px auto 0;text-align:center;color:var(--muted);font-style:italic}
.closing{padding-bottom:72px!important}.closing-line{font:italic 400 clamp(20px,2.4vw,26px)/1.5 var(--quote,var(--display));text-align:center;max-width:44ch;margin:40px auto 0;text-wrap:balance}
.civs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.civ{padding:22px;background:var(--panel);border-top:4px solid var(--accent)}.civ h3{font-size:22px;margin:0 0 6px}.civ .who{margin:0 0 10px;font-style:italic;color:var(--muted)}.civ .way{margin:0;font-size:15px;line-height:1.6}
.board ol{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.board li{display:grid;grid-template-columns:auto 64px 1fr;gap:18px;align-items:center}
.board .lens img{display:block;width:64px;height:64px;border-radius:50%;object-fit:cover}
.board .room b{display:block;font:700 18px var(--display)}.board .room span{font-size:15px;color:var(--muted)}
.story-letter{max-width:760px}
.letter{position:relative;margin-top:16px;padding:48px 56px 56px;background:var(--panel);color:#2a2018;line-height:1.75}
.letter .to{font:italic 400 22px var(--display);margin:0 0 18px}.letter p{margin:0 0 14px}.letter .sign{font-size:30px;margin:26px 0 0}.letter .firm{font-size:14px;letter-spacing:.14em;text-transform:uppercase;margin:0}
.letter .seal{position:absolute;right:40px;bottom:36px;width:86px;height:86px}

@media (max-width:980px){.civs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:820px){.story,.world,.watch,.watch.wide{grid-template-columns:1fr}.gallery{grid-template-columns:1fr 1fr}.cast{grid-template-columns:repeat(2,minmax(0,1fr))}.letter{padding:32px 26px 110px}.g-divider{margin:24px auto}}
@media (max-width:520px){.gallery:not(.phone){grid-template-columns:1fr 1fr;gap:10px}.gallery figcaption{font-size:12.5px}.gallery.phone figure{flex-basis:calc(50% - 7px)}.civs{grid-template-columns:1fr}.board li{grid-template-columns:56px 1fr}.board .tag{grid-column:1/-1;justify-self:start}.board .lens img{width:56px;height:56px}}

/* ===== in-page game views (playbook): the NorthVane view hides, the game's view takes the whole page ===== */
html[class*="theme-"] #nv-view{display:none}
.gview{min-height:100vh;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px}
.gview[hidden]{display:none}
.gview.enter{animation:gv-in .45s ease both}
@keyframes gv-in{from{opacity:0}to{opacity:1}}
.g{display:block}
.gtop{position:sticky;top:0;z-index:40;background:var(--top-bg,var(--bg));border-bottom:var(--top-rule,1px solid var(--rule))}
.gtop .wrap{display:flex;align-items:center;gap:18px;min-height:58px}
.gback{font:700 13px/1 var(--label);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--top-ink,var(--ink));padding:10px 14px;border:var(--back-border,1px solid currentColor);white-space:nowrap}
.gback:hover{background:var(--back-hover,rgba(0,0,0,.08))}
.gtop nav{display:flex;gap:4px;margin-left:auto}
.gtop nav a{font:600 14px var(--label);text-decoration:none;color:var(--top-muted,var(--muted));padding:8px 10px}
.gtop nav a[aria-current]{color:var(--top-ink,var(--ink));box-shadow:inset 0 -2px 0 var(--accent)}
.gstatus{font:600 12px/1 var(--label);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);white-space:nowrap}
.gfoot{border-top:var(--foot-rule,1px solid var(--rule));padding:26px 0 40px;margin-top:20px}
.gfoot .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px;color:var(--muted)}
.gfoot p{margin:0}
.gview .page{padding:48px 0 72px}.gview .page .wrap{max-width:820px}
@media (max-width:640px){.gtop .wrap{gap:10px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px;min-height:0}.gtop nav{margin-left:0;order:3;width:100%}.gstatus{margin-left:auto}.gback{padding:8px 10px;font-size:12px}}
/* the crossing: a small shape in the game's ground grows from the click and fades as the page arrives */
.cross{position:fixed;z-index:300;pointer-events:none;width:70vmin;height:70vmin;transform:translate(-50%,-50%) scale(.05);opacity:1;
  -webkit-mask:var(--shape) center/contain no-repeat;mask:var(--shape) center/contain no-repeat;
  transition:transform .55s cubic-bezier(.62,.04,.28,1),opacity .35s ease .35s}
.cross.go{transform:translate(-50%,-50%) scale(1);opacity:0}

/* contact form */
.cform{display:grid;gap:18px;margin:32px 0 48px;padding:28px;background:var(--panel,#fff);border:1px solid var(--rule);border-radius:12px}
.cform label{display:grid;gap:6px;font:700 13px/1.2 var(--label);letter-spacing:.06em;color:var(--ink)}
.cform input,.cform select,.cform textarea{font:400 16px/1.4 var(--body);color:var(--ink);background:var(--bg,#fff);border:1px solid var(--nv-stone,#bbb);border-radius:8px;padding:12px 14px;width:100%;box-sizing:border-box}
.cform textarea{resize:vertical;min-height:150px}
.cform :focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.cform [aria-invalid="true"]{border-color:#a8321f}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.hp{position:absolute;left:-9999px;width:1px;height:1px}
.fnote{margin:0;font-size:14px;color:var(--muted)}
.fsend{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.fstatus{margin:0;font-size:15px}.fstatus.ok{color:#2f6b3a}.fstatus.err{color:#a8321f}
@media (max-width:640px){.frow{grid-template-columns:1fr}.cform{padding:20px}}
.portal{margin:22px 0 8px}
.store.soon{opacity:.72;cursor:default}

#games{padding-top:18px}#games .sec-head{margin-bottom:20px}
