@font-face {
 font-family:"Pretendard";
 src:url("assets/fonts/PretendardVariable.woff2") format("woff2");
 font-weight:100 900;
 font-display:swap;
}
:root {
 color-scheme:light;
 --bg:#fbfbf9;
 --panel:#f0f1ee;
 --text:#20272d;
 --muted:#616970;
 --accent:#b22d36;
 --edge:#dce0df;
 --font:"Pretendard",Arial,sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
body { margin:0; background:var(--bg); color:var(--text); font-family:var(--font); word-break:keep-all; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
svg { width:20px; height:20px; flex:none; }
.frame { width:min(1240px,89%); margin:auto; }
#header { background:#fff; border-bottom:1px solid var(--edge); }
.bar { height:48px; display:flex; align-items:center; gap:9%; }
.brand { display:inline-flex; align-items:center; }
.wordmark { display:block; width:154px; height:auto; }
.bar nav { display:flex; gap:34px; font-size:15px; font-weight:550; }
.bar nav a { padding:8px 0; }
.bar nav a:hover,.bar nav a[aria-current],.plainlink:hover { color:var(--accent); }
.langs { margin-left:auto; display:flex; align-items:center; gap:10px; font-size:12px; color:var(--muted); }
.langs svg { width:16px; height:16px; margin-right:5px; }
.langs a+a { border-left:1px solid var(--edge); padding-left:10px; }
.langs .active { color:var(--text); font-weight:700; }
.hero { overflow:hidden; background:#f1f2ef; }
.hero-grid { display:grid; grid-template-columns:43% 57%; align-items:center; min-height:540px; padding:72px 0; gap:0; }
.kicker { font-size:11px; font-weight:650; letter-spacing:.15em; color:var(--accent); display:flex; align-items:center; gap:10px; }
.kicker i { width:17px; height:1px; background:currentColor; }
.hero h1,.detail h1 { font-size:clamp(40px,4vw,60px); font-weight:650; letter-spacing:-.045em; line-height:1.22; margin:22px 0; }
.hero h1 em { font-style:normal; color:var(--text); }
.hero p,.detail p,.studio p { color:var(--muted); line-height:1.8; font-size:16px; margin:0; }
.cta { display:inline-flex; align-items:center; gap:28px; background:var(--text); color:white; font-size:14px; font-weight:550; padding:15px 22px; margin-top:30px; border-radius:3px; }
.cta:hover { background:#39454f; }
.tv-stage { position:relative; width:100%; padding:2% 0 8% 8%; }
.set { position:relative; border:1px solid #555e63; border-radius:5px; padding:5px 5px 0; background:#20272d; box-shadow:0 18px 28px #20272d20; }
.screen { overflow:hidden; aspect-ratio:16/9; background:#14171a; }
.screen img { display:block; width:100%; height:100%; object-fit:cover; }
.chin { height:7px; background:#20272d; }
.foot { position:absolute; background:#252c32; width:10%; height:17px; top:100%; clip-path:polygon(70% 0,100% 0,10% 100%,0 100%); }
.foot.left { left:9%; }
.foot.right { right:9%; transform:scaleX(-1); }
.screen-caption { position:absolute; bottom:0; right:0; display:flex; align-items:center; gap:10px; font-size:10px; letter-spacing:.08em; color:var(--muted); }
.screen-caption b { color:var(--text); font-weight:600; }
.screen-caption i { width:4px; height:4px; background:var(--accent); border-radius:50%; }
.games-section,.home-news { padding:76px 0 84px; }
.sectionhead { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:28px; }
h2 { font-size:clamp(28px,2.7vw,40px); margin:10px 0 0; letter-spacing:-.035em; font-weight:650; line-height:1.3; }
h3 { font-weight:600; }
.plainlink { display:inline-flex; align-items:center; gap:9px; color:var(--text); font-size:14px; font-weight:550; }
.plainlink svg { width:16px; }
.cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.game { display:block; }
.cover { aspect-ratio:16/9; overflow:hidden; border-radius:5px; background:var(--panel); }
.cover img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .2s ease; }
.game:hover .cover img { transform:scale(1.025); }
.game-label { display:flex; align-items:center; justify-content:space-between; gap:6px; padding:16px 0 0; }
.game-label small { font-size:12px; color:var(--muted); }
.game-label h3 { font-size:20px; letter-spacing:-.025em; margin:7px 0 0; line-height:1.35; }
.game-label span { font-size:17px; color:var(--muted); }
.studio { background:#eceeeb; padding:60px 0; }
.studio-grid,.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:7%; align-items:center; }
.studio h2 { font-size:34px; letter-spacing:-.035em; }
.studio-more { margin-top:20px; color:var(--accent); }
footer { border-top:1px solid var(--edge); background:white; }
.footbar { display:flex; align-items:center; gap:26px; min-height:64px; padding:12px 0; color:var(--muted); font-size:13px; }
.footbar .footer-contact { white-space:nowrap; }
.footbar .wordmark { width:118px; }
.footer-legal { display:flex; gap:20px; margin-left:auto; font-size:12px; }
.footer-legal a { white-space:nowrap; }
.footbar a:hover { color:var(--accent); }
.detail { padding:34px 0 80px; }
.detail-grid { padding:50px 0 65px; }
.detail-art { width:100%; border-radius:5px; }
.platforms { display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:13px; margin-top:23px; color:var(--muted); }
.platforms svg { width:17px; }
.platforms svg:not(:first-child) { margin-left:8px; }
.device-guide { border-top:1px solid var(--edge); padding-top:32px; }
.device-guide h2 { font-size:clamp(25px,2.8vw,36px); }
.device-list { margin-top:28px; display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.device-list section { padding:27px; background:#f0f1ee; border-radius:4px; }
.device-list h3 { font-size:19px; margin:0 0 12px; }
.device-list .plainlink { margin-top:16px; color:var(--accent); }
.device-list dl { display:grid; grid-template-columns:max-content 1fr; gap:10px 20px; margin:0; font-size:15px; }
.device-list dd { margin:0; color:var(--muted); }
.device-list p+dl,.device-list p+p,.device-list .store-links+p { margin-top:15px; }
.store-links { display:flex; flex-wrap:wrap; gap:18px; }
@media(max-width:900px) {
 .hero-grid { min-height:460px; }
 .hero h1 { font-size:40px; }
 .hero p { font-size:14px; }
 .cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 20px; }
 .studio-grid { gap:30px; }
 .studio h2 { font-size:28px; }
}
@media(max-width:640px) {
 .frame { width:90%; }
 .bar { height:44px; gap:23px; }
 .wordmark { width:98px; }
 .bar nav { gap:15px; font-size:12px; }
 .langs { gap:6px; font-size:10px; }
 .langs svg { display:none; }
 .langs a+a { padding-left:6px; }
 .hero-grid { grid-template-columns:1fr; gap:35px; padding:38px 0 32px; }
 .hero h1 { font-size:40px; margin:18px 0; }
 .hero p { font-size:15px; }
 .cta { margin-top:23px; padding:13px 18px; }
 .tv-stage { padding:2% 0 10%; }
 .screen-caption { font-size:9px; }
 .games-section,.home-news { padding:45px 0 48px; }
 .sectionhead { margin-bottom:22px; }
 .kicker { font-size:10px; }
 .cards { gap:25px 14px; }
 .game-label { padding-top:11px; }
 .game-label h3 { font-size:17px; }
 .game-label small { font-size:11px; }
 .plainlink { font-size:12px; }
 .studio { padding:38px 0; }
 .studio-grid,.detail-grid { grid-template-columns:1fr; gap:24px; }
 .studio p,.detail p { font-size:15px; }
 .detail-grid { padding:28px 0 38px; }
 .device-list { grid-template-columns:1fr; }
 .device-list section { padding:20px; }
 .footbar { min-height:56px; gap:10px 14px; padding:10px 0; font-size:11px; flex-wrap:wrap; }
 .footbar .wordmark { width:90px; }
 .footer-legal { order:1; width:100%; margin-left:0; gap:16px; font-size:11px; }
 .footbar .footer-contact { margin-left:auto; }
}
@media(max-width:360px) { .bar { gap:13px; } .bar nav { gap:10px; } .wordmark { width:88px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .cover img { transition:none; } }
.legal-page { max-width:900px; padding-block:60px 80px; overflow-wrap:anywhere; }
.legal-page h1 { font-size:clamp(30px,4vw,48px); font-weight:650; line-height:1.3; letter-spacing:-.035em; margin:0 0 35px; padding-bottom:25px; border-bottom:1px solid var(--edge); }
.legal-page h2 { font-size:21px; margin:35px 0 14px; line-height:1.5; }
.legal-page h3 { font-size:17px; margin:24px 0 12px; }
.legal-page p,.legal-page li { font-size:15px; line-height:1.9; color:#464e55; }
.legal-page p { margin:12px 0; }
.legal-page a { text-decoration:underline; text-underline-offset:3px; }
@media(max-width:640px){ .legal-page { padding-block:35px 50px; } .legal-page h2 { font-size:19px; } }
/* Navigation stays available while browsing long game and policy pages. */
html { scroll-padding-top:68px; }
#header {
 position:sticky;
 top:0;
 z-index:100;
 background:rgba(255,255,255,.97);
 transition:box-shadow .2s ease, background-color .2s ease;
}
#header.is-scrolled {
 background:rgba(255,255,255,.94);
 backdrop-filter:blur(14px);
 box-shadow:0 5px 18px #20272d0d;
}
.bar nav a { position:relative; }
.bar nav a::after {
 content:"";
 position:absolute;
 bottom:0;
 left:0;
 right:0;
 height:2px;
 background:var(--accent);
 transform:scaleX(0);
 transform-origin:left;
 transition:transform .2s ease;
}
.bar nav a[aria-current]::after,
.bar nav a:focus-visible::after { transform:scaleX(1); }
.game,.showcase-card {
 transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.showcase-card img { transition:transform .3s ease; }
.game:focus-visible,.showcase-card:focus-visible {
 transform:translateY(-4px);
 box-shadow:0 10px 25px #20272d14;
}
.game:focus-visible .cover img,.showcase-card:focus-visible img { transform:scale(1.03); }
.feature-product:focus-visible { border-color:var(--accent); }
.cta,.plainlink,.genre-filters button,.langs a,.expo-tag,.expo-jump a {
 transition:color .18s ease, background-color .18s ease, border-color .18s ease;
}
.cta svg,.plainlink svg { transition:transform .2s ease; }
.cta:focus-visible svg,.plainlink:focus-visible svg { transform:translateX(3px); }
.bn-rows a { transition:background-color .2s ease; }
.bn-rows a:focus-visible { background:#f0f1ee; }
.library-search { transition:border-color .2s ease,box-shadow .2s ease; }
.library-search:focus-within { outline:0; border-color:var(--accent); box-shadow:0 0 0 3px #b22d3614; }
@media(hover:hover) and (pointer:fine) {
 .bar nav a:hover::after { transform:scaleX(1); }
 .game:hover,.showcase-card:hover { transform:translateY(-4px); box-shadow:0 10px 25px #20272d14; }
 .game:hover .cover img,.showcase-card:hover img { transform:scale(1.03); }
 .feature-product:hover { border-color:#b22d3660; }
 .cta:hover svg,.plainlink:hover svg { transform:translateX(3px); }
 .bn-rows a:hover { background:#f0f1ee; }
}
@media(max-width:640px) { html { scroll-padding-top:64px; } }
@media(prefers-reduced-motion:reduce) {
 #header,.bar nav a::after,.game,.showcase-card,.showcase-card img,
 .cover img,.cta,.plainlink,.genre-filters button,.langs a,.expo-tag,
 .expo-jump a,.cta svg,.plainlink svg,.bn-rows a,.library-search { transition:none; }
 .game:hover,.game:focus-visible,.showcase-card:hover,.showcase-card:focus-visible,
 .game:hover .cover img,.game:focus-visible .cover img,
 .showcase-card:hover img,.showcase-card:focus-visible img,
 .cta:hover svg,.cta:focus-visible svg,.plainlink:hover svg,.plainlink:focus-visible svg { transform:none; }
}
.archive-entry img { transition:box-shadow .22s ease,border-color .22s ease; }
.archive-entry:focus-within img { border-color:#b22d3660; box-shadow:0 7px 20px #20272d12; }
@media(hover:hover) and (pointer:fine) {
 .archive-entry:hover img { border-color:#a6adaa; box-shadow:0 7px 20px #20272d12; }
}
@media(prefers-reduced-motion:reduce) { .archive-entry img { transition:none; } }
/* Featured games inside the home television. */
.tv-stage { padding-bottom:0; }
.tv-track { display:flex; width:100%; height:100%; transition:transform .65s cubic-bezier(.22,.61,.36,1); }
.tv-slide { flex:0 0 100%; min-width:0; }
.tv-stage .screen { touch-action:pan-y; }
.tv-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:25px; min-height:36px; }
.tv-controls,.tv-dots { display:flex; align-items:center; gap:2px; }
.tv-controls button { display:grid; place-items:center; width:32px; height:36px; padding:0; border:0; border-radius:4px; background:transparent; color:var(--text); cursor:pointer; font:24px var(--font); }
.tv-controls button:hover { background:#20272d0c; }
.tv-dots button { width:24px; }
.tv-dots button::after { content:""; width:5px; height:5px; border-radius:50%; background:#a6abad; transition:background .2s,transform .2s; }
.tv-dots button[aria-pressed=true]::after { background:var(--accent); transform:scale(1.4); }
.tv-controls .tv-pause { font-size:12px; }
.tv-title { font-size:12px; font-weight:600; text-align:right; }
.tv-title:hover { color:var(--accent); }
@media(max-width:640px) { .tv-toolbar { gap:8px; } .tv-controls button { height:40px; } .tv-title { font-size:11px; } }
@media(prefers-reduced-motion:reduce) { .tv-track,.tv-dots button::after { transition:none; } }
.tv-toolbar { flex-wrap:wrap; }
.tv-dots button { width:18px; }
.tv-title { margin-left:auto; }
