/* TrySomeGames is dark by design: light and dark share the same brand tokens. */
:root,:root[data-theme="dark"]{--f-pixel:'Press Start 2P',ui-monospace,monospace;--f-body:'VT323',ui-monospace,monospace;--f-sub:'Space Mono',ui-monospace,monospace;--f-desc:'Rubik',system-ui,-apple-system,'Segoe UI',sans-serif;--hw:.5px 0 0 currentColor,-.5px 0 0 currentColor;--hh:88px;--tsgbg:#262626;--tsgbg2:#1F1F1F;--tsgcard:#2E2E2E;--tsgcard2:#363636;--tsginp:#333333;--tsgborder:#3A3A3A;--tsgwhite:#FFFFFF;--tsgmuted:#EBEBEB;--tsgdim:#D4D4D4;--tsg-body-color:#F4F4F4;--tsgred:#F5222D;--tsgorange:#FA541C;--tsgyellow:#FAAD14;--tsggreen:#37B24D;--tsgpink:#EB2F96;--tsgpurple:#9851E0;--tsgblue:#1890FF;--tsgcyan:#13C2C2;--tsglime:#A0D911;color-scheme:dark}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--tsgbg:#262626;--tsgbg2:#1F1F1F;--tsgcard:#2E2E2E;--tsgcard2:#363636;--tsginp:#333333;--tsgborder:#3A3A3A;--tsgwhite:#FFFFFF;--tsgmuted:#EBEBEB;--tsgdim:#D4D4D4;--tsg-body-color:#F4F4F4;--tsgred:#F5222D;--tsgorange:#FA541C;--tsgyellow:#FAAD14;--tsggreen:#37B24D;--tsgpink:#EB2F96;--tsgpurple:#9851E0;--tsgblue:#1890FF;--tsgcyan:#13C2C2;--tsglime:#A0D911;color-scheme:dark}}
:root[data-theme="light"]{--tsgbg:#262626;--tsgbg2:#1F1F1F;--tsgcard:#2E2E2E;--tsgcard2:#363636;--tsginp:#333333;--tsgborder:#3A3A3A;--tsgwhite:#FFFFFF;--tsgmuted:#EBEBEB;--tsgdim:#D4D4D4;--tsg-body-color:#F4F4F4;--tsgred:#F5222D;--tsgorange:#FA541C;--tsgyellow:#FAAD14;--tsggreen:#37B24D;--tsgpink:#EB2F96;--tsgpurple:#9851E0;--tsgblue:#1890FF;--tsgcyan:#13C2C2;--tsglime:#A0D911;color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
html{font-size:calc(16px * var(--zoom,1));-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hh) + env(safe-area-inset-top,0px));background:var(--tsgbg)}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body{margin:0;background:var(--tsgbg);color:var(--tsg-body-color);font-family:var(--f-body);font-size:1.375rem;line-height:1.35;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto}
a{color:var(--tsgyellow);text-underline-offset:3px}
a:hover{color:var(--tsgorange)}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--tsgyellow);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-999px;top:0;z-index:3000;background:var(--tsgorange);color:#fff;padding:.8rem 1rem;font-family:var(--f-pixel);font-size:.55rem}
.skip:focus{left:1rem;top:1rem}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:900;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(0,0,0,.045) 3px 4px)}
.rain-page{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.34}
.app{position:relative;z-index:1;display:flex;flex-direction:column;min-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}
main{flex:1;display:block}
main:focus,h1[tabindex="-1"]:focus{outline:none}
.sym{display:inline-block;font-family:system-ui,'Segoe UI Symbol','Apple Symbols','Noto Sans Symbols 2',sans-serif;font-size:1.55em;line-height:0;vertical-align:-.1em;font-weight:700}

/* ---------- Typography (Press Start 2P · VT323 · Space Mono · Rubik) ---------- */
h1,h2,h3,h4{font-family:var(--f-pixel);text-transform:uppercase;font-weight:400;color:var(--tsgwhite);text-shadow:var(--hw);line-height:1.6;letter-spacing:.03em;margin:0;overflow-wrap:anywhere}
.mk{display:grid;grid-template-columns:auto 1fr;column-gap:.75em;align-items:start}
.mk::before{content:"";width:.7em;height:.7em;margin-top:.44em;background:var(--mk,var(--tsgorange));box-shadow:.14em .14em 0 #000}
.h1{font-size:clamp(1.15rem,2.7vw,1.95rem);margin:0 0 1.5rem}
.h2{font-size:clamp(.74rem,1.25vw,.88rem);letter-spacing:.08em;margin:0 0 1.25rem}
.h3{font-size:.66rem;letter-spacing:.05em;margin:0 0 .7rem}
.p{margin:0 0 1rem;max-width:70ch}
.lead{font-size:1.65rem;line-height:1.22;margin:0 0 1.5rem;max-width:52ch}
.desc{font-family:var(--f-desc);font-size:.97rem;line-height:1.6;color:var(--tsgdim);margin:0 0 1rem}
.mono{font-family:var(--f-sub);font-size:.8rem;letter-spacing:.01em}
.lbl{font-family:var(--f-pixel);font-size:.5rem;text-transform:uppercase;letter-spacing:.1em}
.muted{color:var(--tsgdim)}
.note{font-family:var(--f-desc);font-size:.85rem;line-height:1.55;color:var(--tsgdim);max-width:70ch}
.ilink{color:var(--tsgyellow)}
ul.list,ol.list{margin:0 0 1rem;padding-left:1.4rem;max-width:70ch}
ul.list li,ol.list li{margin:.25rem 0;padding-left:.2rem}
ul.list li::marker{content:"■  ";color:var(--mk,var(--tsgorange));font-size:.7em}
ol.list li::marker{font-family:var(--f-sub);font-size:.8em;color:var(--mk,var(--tsgorange))}

/* ---------- Layout ---------- */
.wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 1.5rem}
.narrow{max-width:940px}
.page{padding:3rem 0 1rem}
.sec{margin-top:3rem;padding-top:2.6rem;border-top:2px solid var(--tsgborder)}
.card{background:var(--tsgcard);border:2px solid var(--tsgborder);padding:1.6rem}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem}

/* ---------- Buttons: hard pixel shadow, uppercase Press Start 2P ---------- */
.btn{--b:var(--tsgcard);--f:var(--tsgwhite);--bd:transparent;display:inline-flex;align-items:center;justify-content:center;gap:.75em;font-family:var(--f-pixel);font-size:.6rem;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--f);background:var(--b);border:2px solid var(--bd);padding:1.05em 1.45em;box-shadow:4px 4px 0 #000;cursor:pointer;transition:transform .08s,box-shadow .08s,background-color .15s,border-color .15s;white-space:nowrap}
.btn:hover{color:var(--f);transform:translate(-2px,-2px);box-shadow:6px 6px 0 #000}
.btn:active{transform:translate(2px,2px);box-shadow:2px 2px 0 #000}
.btn-primary{--b:var(--tsgorange);--f:#fff}
.btn-primary::before,.btn-green::before{content:"";flex:0 0 auto;border-left:.62em solid currentColor;border-top:.38em solid transparent;border-bottom:.38em solid transparent}
.btn .ico{width:1.35em;height:auto;flex:0 0 auto}
.btn-primary:hover{--b:#ff6a37}
.btn-green{--b:var(--tsggreen);--f:#fff}
.btn-green:hover{--b:#4ac463}
.btn-blue{--b:var(--tsgblue);--f:#fff}
.btn-blue:hover{--b:#3da2ff}
.btn-secondary{--b:var(--tsgcard);--f:var(--tsgwhite);--bd:var(--tsgborder)}
.btn-secondary:hover{--bd:var(--ac,var(--tsgorange))}
.btn-secondary:focus-visible{--bd:var(--ac,var(--tsgorange));outline:3px solid var(--ac,var(--tsgorange));outline-offset:3px;box-shadow:6px 6px 0 #000}
.btn-warn{--b:var(--tsgyellow);--f:var(--tsgbg)}
.btn-sm{font-size:.5rem;padding:.95em 1.1em}
.btn[aria-pressed="true"]{--b:var(--tsgorange);--f:#fff;--bd:var(--tsgorange)}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:4px 4px 0 #000}
.btn-row{display:flex;flex-wrap:wrap;gap:.9rem 1rem;align-items:center}
.btn-row.center{justify-content:center}
.linkbtn{background:none;border:0;padding:0;cursor:pointer;color:var(--tsgmuted);font-family:var(--f-pixel);font-size:.48rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:underline;text-underline-offset:4px}
.linkbtn:hover{color:#fff}

/* ---------- Header ---------- */
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:200;background:var(--tsgbg2);border-bottom:2px solid var(--tsgborder)}
.hdr-in{max-width:1500px;margin:0 auto;height:var(--hh);display:flex;align-items:center;gap:1.25rem;padding:0 1.5rem}
.logo{display:block;flex:0 1 auto;line-height:0;min-width:0}
.logo img{width:18rem;height:auto;max-width:100%;image-rendering:pixelated;image-rendering:crisp-edges}
.nav{display:flex;align-items:center;gap:.1rem;margin:0 auto;list-style:none;padding:0}
.nav a{display:block;font-family:var(--f-pixel);font-size:.58rem;letter-spacing:.06em;text-transform:uppercase;color:var(--tsgmuted);text-decoration:none;padding:1em .72em;white-space:nowrap}
.nav a:hover{color:#fff;box-shadow:inset 0 -3px 0 var(--c)}
.nav a[aria-current="page"]{background:var(--c);color:var(--cf,#fff);box-shadow:3px 3px 0 #000}
.tools{display:flex;align-items:center;gap:.55rem;flex:0 0 auto;margin-left:auto}
.nav + .tools{margin-left:0}
.ibtn{display:inline-grid;place-items:center;width:2.4rem;height:2.4rem;background:var(--tsgcard);border:2px solid var(--tsgborder);color:#fff;cursor:pointer;box-shadow:3px 3px 0 #000}
.ibtn:hover{border-color:var(--tsgorange)}
.ibtn[data-search-toggle]{background:var(--tsgred);color:#fff;border-color:var(--tsgred);animation:ibtn-pulse-red 2.4s ease-in-out infinite}
.ibtn[data-search-toggle]:hover{animation-play-state:paused}
@keyframes ibtn-pulse-red{0%,100%{box-shadow:3px 3px 0 #000,0 0 0 0 rgba(245,34,45,.45)}50%{box-shadow:3px 3px 0 #000,0 0 0 7px rgba(245,34,45,0)}}
.ibtn svg{width:1.05rem;height:1.05rem;shape-rendering:crispEdges}
.lang{display:flex;gap:.4rem}
.lang button{font-family:var(--f-pixel);font-size:.48rem;letter-spacing:.06em;padding:.85em .7em;border:0;cursor:pointer;background:transparent;color:var(--lc);box-shadow:inset 0 0 0 2px var(--lc)}
.lang button[aria-pressed="true"]{background:var(--lc);color:var(--lf);box-shadow:3px 3px 0 #000}
.menu-btn{display:none}
.mnav{display:none;border-top:2px solid var(--tsgborder);background:var(--tsgbg2);padding:.75rem 1.25rem 1.25rem}
.mnav.open{display:block}
.mnav a{display:flex;align-items:center;gap:.8rem;font-family:var(--f-pixel);font-size:.58rem;letter-spacing:.06em;text-transform:uppercase;color:#fff;text-decoration:none;padding:.95rem .9rem;border:2px solid var(--tsgborder);margin:.4rem 0;background:var(--tsgcard)}
.mnav a::before{content:"";width:.6rem;height:.6rem;background:var(--c)}
.mnav a[aria-current="page"]{background:var(--c);border-color:var(--c);color:var(--cf,#fff)}
.mnav a[aria-current="page"]::before{background:var(--cf,#fff)}
@media (max-width:1340px){.hdr-in{gap:.8rem;padding-inline:1.1rem}.nav{flex-wrap:wrap;justify-content:center}.nav a{font-size:.55rem;padding:.75em .48em}.hdr-in .logo img{width:15.5rem}}
@media (max-width:1040px){:root,:root[data-theme="dark"]{--hh:80px}.nav{display:none}.menu-btn{display:inline-grid}.hdr-in .logo img{width:15rem}}
@media (max-width:560px){:root,:root[data-theme="dark"]{--hh:72px}.hdr-in{padding-inline:.9rem}.hdr-in .logo img{width:min(12.5rem,46vw)}.tools{gap:.4rem}}
.sbox{position:absolute;right:1.25rem;top:calc(100% + 2px);width:min(420px,calc(100vw - 2.5rem));background:var(--tsgcard);border:2px solid var(--tsgborder);box-shadow:6px 6px 0 #000;padding:1rem;display:none}
.sbox.open{display:block}
.sbox form{display:flex;gap:.6rem}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;min-height:calc(100svh - var(--hh));display:grid;place-items:center;padding:4rem 1.25rem 7rem;border-bottom:2px solid var(--tsgborder);background:radial-gradient(120% 90% at 50% 20%,#303030 0%,var(--tsgbg) 55%,var(--tsgbg2) 100%)}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-box{position:relative;z-index:2;text-align:center;width:min(100%,1080px);background:rgba(28,28,28,.78);border:2px solid var(--tsgborder);box-shadow:6px 6px 0 #000;padding:clamp(1.6rem,4vw,2.8rem) clamp(1.1rem,4vw,3rem)}
.hero-h1{font-size:clamp(1.2rem,4.5vw,3.25rem);line-height:1.4;margin:0 0 1.5rem;text-shadow:var(--hw),.12em .12em 0 #000}
.hero-h1 span{display:block}
.sq{display:inline-block;width:.62em;height:.62em;margin-right:.55em;vertical-align:.08em;background:var(--tsgorange);box-shadow:.1em .1em 0 #000}
.hero-sub{font-size:clamp(1.35rem,2.5vw,1.95rem);text-transform:uppercase;line-height:1.2;margin:0 auto 2rem;max-width:38ch}

/* ---------- Home sections ---------- */
.pillars{position:relative;background:var(--tsgcard);border-bottom:2px solid var(--tsgborder);padding:2.6rem 0}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;background:var(--tsgborder);border:2px solid var(--tsgborder)}
.tile{background:var(--tsgbg2);padding:1.6rem 1.5rem}
.tile .bar{width:44px;height:6px;background:var(--c);margin-bottom:1.15rem;box-shadow:2px 2px 0 #000}
.tile h2,.tile h3{font-size:.62rem;margin-bottom:.75rem}
.tile p{margin:0}
.flist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;background:var(--tsgborder);border:2px solid var(--tsgborder);counter-reset:s}
.flist li{background:var(--tsgcard);padding:1rem 1.15rem;display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:start;font-family:var(--f-desc);font-size:.95rem;line-height:1.55;color:var(--tsgmuted)}
.flist li:last-child:nth-child(odd){grid-column:1/-1}
.flist li::before{content:"";width:.62rem;height:.62rem;margin-top:.42rem;background:var(--c);box-shadow:2px 2px 0 #000}
.flist.steps li::before{content:counter(s);counter-increment:s;width:1.9rem;height:1.9rem;margin-top:0;display:grid;place-items:center;font-family:var(--f-pixel);font-size:.55rem;color:var(--cf,#fff)}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;background:var(--tsgborder);border:2px solid var(--tsgborder)}
.stat{background:var(--tsgbg2);padding:1.5rem 1.2rem;text-align:center}
.stat b{display:block;font-family:var(--f-pixel);font-weight:400;font-size:clamp(1.1rem,2.6vw,1.9rem);color:var(--c);text-shadow:3px 3px 0 #000;margin-bottom:.8rem}
.stat span{font-family:var(--f-sub);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--tsgdim)}
.band{background:var(--tsgbg2);border-top:2px solid var(--tsgborder);border-bottom:2px solid var(--tsgborder);padding:3rem 0;margin-top:3.5rem}
.head-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem 2rem;margin-bottom:1.5rem}
.head-row .h2{margin:0}

/* ---------- Game cards ---------- */
.ggrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.gcard{--ac:var(--tsgorange);position:relative;display:flex;flex-direction:column;background:var(--tsgcard);border:2px solid var(--tsgborder);transition:transform .12s,box-shadow .12s,border-color .12s}
.gcard:hover,.gcard:focus-within{transform:translate(-3px,-3px);border-color:var(--ac);box-shadow:6px 6px 0 var(--ac)}
.gcard-stripe{height:6px;background:var(--ac)}
.gcard-in{padding:1.4rem 1.35rem 1.35rem;display:flex;flex-direction:column;flex:1}
.gcard-top{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:1rem;min-height:1.6rem}
.gcard-cat{font-family:var(--f-sub);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--tsgdim)}
.gcard h2,.gcard h3{--mk:var(--ac);font-size:.78rem;margin-bottom:.9rem}
.gcard h2 a,.gcard h3 a{color:inherit;text-decoration:none}
.gcard .desc{flex:0 0 auto}
.gfeat{list-style:none;margin:.2rem 0 1rem;padding:.8rem 0 0;border-top:2px solid var(--tsgborder)}
.gfeat li{display:grid;grid-template-columns:auto 1fr;gap:.6rem;font-family:var(--f-desc);font-size:.86rem;line-height:1.5;color:var(--tsgmuted);padding:.18rem 0}
.gfeat li::before{content:"";width:.45rem;height:.45rem;margin-top:.45rem;background:var(--ac)}
.gmeta{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin:0 0 1.2rem;padding:0}
.gmeta div{margin:0}
.gmeta dt{font-family:var(--f-sub);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--tsgdim)}
.gmeta dd{margin:0;font-family:var(--f-pixel);font-size:.55rem;color:#fff;order:-1}
.gmeta div{display:flex;flex-direction:column-reverse;gap:.35rem}
.gact{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:auto}
.badge{display:inline-flex;align-items:center;gap:.5em;font-family:var(--f-pixel);font-size:.44rem;letter-spacing:.1em;padding:.6em .8em;text-transform:uppercase;white-space:nowrap}
.badge.live{background:var(--tsggreen);color:#fff}
.badge.live i{width:6px;height:6px;background:#fff;animation:blink 1.4s steps(2) infinite}
.badge.maint{background:var(--tsgyellow);color:var(--tsgbg)}
.badge.ext{background:var(--tsgblue);color:#fff}
@keyframes blink{50%{opacity:.2}}
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;margin-bottom:1.1rem}
.filters .count{margin-left:auto;font-family:var(--f-sub);font-size:.8rem;color:var(--tsgdim)}
.searchrow{display:grid;grid-template-columns:1fr auto;gap:.8rem;margin-bottom:2rem}
.empty{padding:2.5rem 1.5rem;text-align:center;border:2px dashed var(--tsgborder)}

/* ---------- Detail / content ---------- */
.crumbs{font-family:var(--f-sub);font-size:.78rem;color:var(--tsgdim);margin:0 0 1.2rem;display:flex;flex-wrap:wrap;gap:.45rem}
.crumbs a{color:var(--tsgdim)}
.crumbs a:hover{color:#fff}
.back{display:inline-block;font-family:var(--f-pixel);font-size:.48rem;letter-spacing:.1em;color:var(--tsgdim);text-decoration:none;margin-bottom:1.3rem;text-transform:uppercase}
.back:hover{color:#fff}
.tag{font-family:var(--f-pixel);font-size:.52rem;letter-spacing:.16em;color:var(--ac,var(--tsgorange));margin-bottom:.9rem;text-transform:uppercase}
.accent-bar{width:80px;height:8px;background:var(--ac,var(--tsgorange));box-shadow:3px 3px 0 #000;margin-bottom:1.4rem}
.verdict{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:stretch;margin:0 0 1.6rem}
.score{border:2px solid var(--ac,var(--tsgorange));background:var(--tsgbg2);padding:1rem 1.3rem;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:7.5rem;box-shadow:4px 4px 0 #000}
.score b{font-family:var(--f-pixel);font-weight:400;font-size:1.5rem;color:var(--ac,var(--tsgorange))}
.score span{font-family:var(--f-sub);font-size:.7rem;color:var(--tsgdim);margin-top:.5rem;text-transform:uppercase;letter-spacing:.08em}
.verdict p{margin:0;font-size:1.55rem;line-height:1.22;align-self:center}
.pc{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin:1.4rem 0}
.pc ul{list-style:none;margin:0;padding:0}
.pc li{display:grid;grid-template-columns:auto 1fr;gap:.6rem;font-family:var(--f-desc);font-size:.93rem;line-height:1.5;color:var(--tsgmuted);padding:.3rem 0}
.pc .plus{color:var(--tsggreen);font-family:var(--f-pixel);font-size:.6rem;padding-top:.25rem}
.pc .minus{color:var(--tsgred);font-family:var(--f-pixel);font-size:.6rem;padding-top:.25rem}
.faq{border-top:2px solid var(--tsgborder)}
.faq details{border-bottom:2px solid var(--tsgborder)}
.faq summary{list-style:none;cursor:pointer;position:relative;padding:1.05rem 2.4rem 1.05rem 0;font-family:var(--f-sub);font-weight:700;font-size:.95rem;line-height:1.5;color:#fff}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:.35rem;top:1.35rem;width:0;height:0;border-left:9px solid var(--ac,var(--tsgorange));border-top:6px solid transparent;border-bottom:6px solid transparent;transition:transform .15s}
.faq details[open] summary::after{transform:rotate(90deg)}
.faq summary:hover{color:var(--ac,var(--tsgorange))}
.faq .a{margin:0 0 1.2rem;max-width:72ch}
.qa{margin:0 0 1.4rem}
.qa h3{font-family:var(--f-sub);text-transform:none;font-weight:700;font-size:.98rem;text-shadow:none;letter-spacing:0;line-height:1.45;margin-bottom:.45rem}
.disclaimer{border:2px solid var(--tsgborder);background:var(--tsgcard);padding:1.2rem 1.3rem;margin:1.6rem 0}
.disclaimer strong{display:block;font-family:var(--f-pixel);font-weight:400;font-size:.5rem;letter-spacing:.1em;color:#fff;margin-bottom:.6rem}
.disclaimer p{margin:0;font-family:var(--f-desc);font-size:.9rem;line-height:1.55;color:var(--tsgdim)}
.final{margin:3.5rem 0 1rem;border:2px solid var(--ac,var(--tsgorange));background:var(--tsgbg2);padding:2.2rem 1.5rem;text-align:center;box-shadow:6px 6px 0 var(--ac,var(--tsgorange))}
.final .h2{justify-content:center;display:flex;margin-bottom:1.4rem}
.timeline{border-top:2px solid var(--tsgborder)}
.tl{display:grid;grid-template-columns:5.5rem 1fr;gap:1.2rem;padding:.9rem 0;border-bottom:2px solid var(--tsgborder)}
.tl b{font-family:var(--f-pixel);font-weight:400;font-size:.6rem;color:var(--c,var(--tsgorange));padding-top:.3rem}
.tl p{margin:0}
.tl strong{font-family:var(--f-sub);font-size:.95rem;color:#fff;display:block;margin-bottom:.2rem}
.bcard{--ac:var(--tsgorange);display:flex;flex-direction:column;background:var(--tsgcard);border:2px solid var(--tsgborder);padding:1.8rem;text-decoration:none;color:inherit;transition:transform .12s,box-shadow .12s,border-color .12s}
a.bcard:hover,a.bcard:focus-visible{transform:translate(-3px,-3px);border-color:var(--ac);box-shadow:6px 6px 0 var(--ac);color:inherit}
.bcard .bar{width:60px;height:6px;background:var(--ac);margin-bottom:1.3rem;box-shadow:2px 2px 0 #000}
.bcard h2,.bcard h3{--mk:var(--ac);font-size:.72rem;margin-bottom:.9rem}
.bcard ul{list-style:none;margin:auto 0 0;padding:1rem 0 0;border-top:2px solid var(--tsgborder)}
.bcard li{font-family:var(--f-sub);font-size:.85rem;color:#fff;padding:.25rem 0;display:grid;grid-template-columns:auto 1fr;gap:.55rem}
.bcard li::before{content:"▶";color:var(--ac);font-size:.7em;padding-top:.2em}
.bcard li.dim{color:var(--tsgdim)}
.bcard li.dim::before{content:"…";color:var(--tsgdim)}
.cmp{width:100%}

/* ---------- Tables ---------- */
.tbl{overflow-x:auto;margin:0 0 1.3rem;border:2px solid var(--tsgborder);background:var(--tsgbg2)}
.tbl table{border-collapse:collapse;width:100%;min-width:520px;font-family:var(--f-desc);font-size:.9rem;line-height:1.5}
.tbl th{font-family:var(--f-pixel);font-weight:400;font-size:.46rem;letter-spacing:.08em;text-transform:uppercase;text-align:left;background:var(--tsgcard);color:#fff;padding:.85rem .8rem;border-bottom:2px solid var(--tsgborder);vertical-align:top}
.tbl tbody th{font-family:var(--f-sub);font-size:.8rem;letter-spacing:0;text-transform:none;background:var(--tsgcard);border-bottom:1px solid var(--tsgborder)}
.tbl td{padding:.75rem .8rem;border-top:1px solid var(--tsgborder);vertical-align:top;color:var(--tsgmuted)}

/* ---------- Forms ---------- */
.form{background:var(--tsgcard);border:2px solid var(--tsgborder);padding:1.7rem}
.field{margin-bottom:1.2rem}
.field label,.flabel{display:block;font-family:var(--f-pixel);font-size:.48rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;margin-bottom:.65rem}
.input{width:100%;background:var(--tsginp);border:2px solid var(--tsginp);color:#fff;font-family:var(--f-desc);font-size:1rem;line-height:1.4;padding:.8rem .9rem;border-radius:0;-webkit-appearance:none;appearance:none}
.input::placeholder{color:#a8a8a8}
.input:focus{outline:none;border-color:var(--tsgorange)}
.input.bad{border-color:var(--tsgred)}
textarea.input{min-height:170px;resize:vertical}
select.input{background-image:linear-gradient(45deg,transparent 50%,#fff 50%),linear-gradient(135deg,#fff 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 12px) 55%;background-size:6px 6px;background-repeat:no-repeat;padding-right:2.4rem}
select.input option{background:var(--tsgcard);color:#fff}
.err{display:block;font-family:var(--f-desc);font-size:.85rem;color:#ff8a90;margin-top:.45rem}
.ok{border:2px solid var(--tsggreen);background:rgba(55,178,77,.09);padding:1.6rem;margin-bottom:1rem}
.ok .h3{color:var(--tsggreen)}
.ok .desc{margin:0 0 .6rem}
.seg{display:flex;flex-wrap:wrap;gap:.6rem}
.tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.8rem;margin:.8rem 0 1.3rem}
.tier{background:var(--tsgbg2);border:2px solid var(--tsgborder);padding:1rem .8rem;cursor:pointer;text-align:center;box-shadow:4px 4px 0 #000;color:#fff}
.tier b{display:block;font-family:var(--f-pixel);font-weight:400;font-size:.9rem}
.tier span{display:block;font-family:var(--f-sub);font-size:.68rem;color:var(--tsgdim);margin-top:.5rem}
.tier[aria-pressed="true"]{border-color:var(--tsgorange);background:rgba(250,84,28,.14)}
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;margin:1.4rem 0}
.plan{--ac:var(--tsgorange);background:var(--tsgcard);border:2px solid var(--tsgborder);padding:1.6rem;display:flex;flex-direction:column;transition:transform .12s,box-shadow .12s,border-color .12s}
.plan:hover{transform:translate(-3px,-3px);border-color:var(--ac);box-shadow:6px 6px 0 var(--ac)}
.plan h2{--mk:var(--ac);font-size:.8rem;margin-bottom:1rem}
.price{font-family:var(--f-pixel);font-size:1.25rem;color:#fff;text-shadow:3px 3px 0 #000}
.price small{font-family:var(--f-sub);font-size:.72rem;text-shadow:none;color:var(--tsgdim);margin-left:.35rem}
.vat{font-family:var(--f-sub);font-size:.72rem;color:var(--tsgdim);margin:.5rem 0 1.1rem}
.plan ul{list-style:none;margin:0 0 1.4rem;padding:1rem 0 0;border-top:2px solid var(--tsgborder)}
.plan li{display:grid;grid-template-columns:auto 1fr;gap:.6rem;font-family:var(--f-desc);font-size:.93rem;color:var(--tsgmuted);padding:.25rem 0}
.plan li::before{content:"";width:.45rem;height:.45rem;margin-top:.5rem;background:var(--ac)}
.plan .btn{margin-top:auto}
.info{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:1.6rem;align-items:start}
.icard{background:var(--tsgcard);border:2px solid var(--tsgborder);padding:1.3rem;margin-bottom:1rem;transition:border-color .15s}
.icard:hover{border-color:var(--tsgorange)}
.icard .h3{font-size:.56rem}
.kv{list-style:none;margin:0;padding:0}
.kv li{padding:.55rem 0;border-bottom:2px solid var(--tsgborder)}
.kv strong{font-family:var(--f-sub);font-size:.9rem;color:#fff;margin-right:.4rem}

/* ---------- 404 ---------- */
.big404{font-family:var(--f-pixel);font-size:clamp(3.5rem,14vw,8rem);line-height:1;color:#fff;text-shadow:.06em .06em 0 var(--tsgred),.12em .12em 0 var(--tsgorange),.18em .18em 0 var(--tsgyellow);margin:0 0 2.2rem}
.mini{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.6rem;margin:1rem 0 1.5rem}
.mini a{display:grid;grid-template-columns:6px 1fr auto;gap:.8rem;align-items:center;background:var(--tsgcard);border:2px solid var(--tsgborder);padding:.7rem .8rem .7rem 0;text-decoration:none;color:#fff}
.mini a::before{content:"";align-self:stretch;background:var(--s)}
.mini a:hover{border-color:var(--s)}
.mini b{font-family:var(--f-pixel);font-weight:400;font-size:.52rem}
.mini span{font-family:var(--f-sub);font-size:.66rem;color:var(--tsgdim)}

/* ---------- Search ---------- */
.results{list-style:none;margin:0;padding:0;border-top:2px solid var(--tsgborder)}
.results li{border-bottom:2px solid var(--tsgborder)}
.results a{display:grid;grid-template-columns:auto 1fr;gap:.2rem 1rem;padding:1rem 0;text-decoration:none;color:inherit}
.results a:hover .rt{color:var(--tsgorange)}
.results .rk{grid-row:span 2;font-family:var(--f-pixel);font-size:.42rem;letter-spacing:.1em;padding:.6em .7em;height:fit-content;background:var(--c);color:var(--cf,#fff);margin-top:.15rem}
.results .rt{font-family:var(--f-sub);font-weight:700;font-size:1rem;color:#fff}
.results .rd{font-family:var(--f-desc);font-size:.88rem;color:var(--tsgdim);line-height:1.5}

/* ---------- Brand guide ---------- */
.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.9rem}
.sw{background:var(--tsgcard);border:2px solid var(--tsgborder)}
.sw i{display:block;height:4.2rem;background:var(--c);border-bottom:2px solid var(--tsgborder)}
.sw div{padding:.75rem .8rem}
.sw b{display:block;font-family:var(--f-sub);font-size:.85rem;color:#fff}
.sw code{font-family:var(--f-sub);font-size:.72rem;color:var(--tsgdim)}
.fontrow{display:grid;grid-template-columns:minmax(0,14rem) 1fr;gap:1.4rem;padding:1.2rem 0;border-bottom:2px solid var(--tsgborder)}
.fontrow .spec{font-family:var(--f-sub);font-size:.78rem;color:var(--tsgdim)}
.fontrow .spec b{display:block;color:#fff;font-size:.95rem;margin-bottom:.3rem}
.tsgmark{font-family:var(--f-pixel);letter-spacing:.02em;text-shadow:3px 3px 0 #000}
.tsgmark .t{color:var(--tsgred)} .tsgmark .s{color:var(--tsgorange)} .tsgmark .g{color:var(--tsgyellow)}
.logo-demo{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:1rem}
.logo-demo > div{background:var(--tsgbg2);border:2px solid var(--tsgborder);padding:2rem 1.5rem;display:grid;place-items:center;min-height:9rem}
.logo-demo img{image-rendering:pixelated;width:100%;max-width:560px}

/* ---------- Play ---------- */
.play{padding:1.4rem 0 1rem}
.playbar{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.1rem;margin-bottom:1rem}
.playbar h1{font-size:.8rem;margin:0}
.playbar .spacer{flex:1}
.playbar .note{margin:0;font-size:.8rem}
.stage{position:relative;height:min(78dvh,880px);min-height:520px;background:#000;border:2px solid var(--tsgborder);box-shadow:6px 6px 0 #000}
.stage iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;background:#000}
.stage.theater{position:fixed;inset:0;z-index:1500;height:auto;min-height:0;border:0;box-shadow:none;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.stage.theater iframe{top:env(safe-area-inset-top,0px);bottom:env(safe-area-inset-bottom,0px);height:auto}
.stage .exit{position:absolute;top:calc(.8rem + env(safe-area-inset-top,0px));right:.8rem;z-index:5;display:none}
.stage.theater .exit{display:inline-flex}
.sboot{position:absolute;inset:0;z-index:4;display:grid;place-items:center;background:var(--tsgbg);transition:opacity .45s;padding:1.5rem}
.sboot.gone{opacity:0;pointer-events:none}
.pinfo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;margin-top:2rem}
.notice{border:2px solid var(--tsgyellow);background:rgba(250,173,20,.08);padding:1rem 1.2rem;margin:0 0 1.8rem;font-family:var(--f-desc);font-size:.95rem;line-height:1.55;color:var(--tsgmuted);max-width:72ch}
code.mono{color:#fff;font-size:.82rem}

/* ---------- Boot intro ---------- */
.boot{position:fixed;inset:0;z-index:2500;display:grid;place-items:center;background:var(--tsgbg);transition:opacity .45s;cursor:pointer;padding:1.5rem}
.boot.gone,.sboot.gone{opacity:0;pointer-events:none}
.boot-in{width:min(560px,100%);text-align:center}
.boot-logo{width:100%;image-rendering:pixelated;filter:drop-shadow(4px 4px 0 #000);display:block;margin:0 auto}
.boot-sub{font-family:var(--f-pixel);font-size:.58rem;letter-spacing:.2em;margin:1.7rem 0 1.2rem;color:#fff;text-transform:uppercase;line-height:1.8}
.boot-bar{display:grid;grid-template-columns:repeat(24,1fr);gap:3px;border:2px solid #fff;padding:4px}
.boot-bar i{height:18px;background:#333}
.boot-bar i.on{background:var(--c)}
.boot-pct{font-family:var(--f-sub);font-size:.95rem;margin-top:1rem;color:var(--tsgdim)}
.boot-100{font-family:var(--f-pixel);font-size:clamp(2rem,8vw,3.6rem);text-shadow:4px 4px 0 #000}
.boot-100 .r{color:var(--tsgred)} .boot-100 .o{color:var(--tsgorange)} .boot-100 .y{color:var(--tsgyellow)} .boot-100 .g{color:var(--tsggreen)}
.boot-press{font-family:var(--f-pixel);font-size:.55rem;letter-spacing:.14em;margin-top:1.6rem;color:#fff;line-height:1.9}
.boot-skip{font-family:var(--f-pixel);font-size:.42rem;letter-spacing:.2em;color:var(--tsgdim);margin-top:1.7rem;animation:blink 1.2s steps(2) infinite}

/* ---------- Footer ---------- */
.ftr{position:relative;z-index:1;background:var(--tsgbg2);border-top:2px solid var(--tsgborder);margin-top:4.5rem}
.ftr-in{max-width:1400px;margin:0 auto;padding:2.8rem 1.5rem calc(1.6rem + env(safe-area-inset-bottom,0px))}
.fgrid{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:2rem 2.2rem}
.fbrand .tsgmark{font-size:1.3rem;display:block;margin-bottom:1rem;text-shadow:none}
.fbrand p{margin:0 0 .8rem}
.fcol h2{font-size:.5rem;letter-spacing:.1em;margin-bottom:1rem}
.fcol ul{list-style:none;margin:0;padding:0}
.fcol li{margin:.15rem 0}
.fcol a{font-family:var(--f-sub);font-size:.82rem;color:var(--tsgmuted);text-decoration:none;display:inline-block;padding:.15rem 0}
.fcol a:hover{color:#fff;text-decoration:underline}
.fset{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.6rem;margin-top:2.4rem;padding-top:1.6rem;border-top:2px solid var(--tsgborder)}
.fset .grp{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.fset .lbl{color:var(--tsgdim)}
.tgl{display:inline-flex;align-items:center;gap:.55em;font-family:var(--f-pixel);font-size:.46rem;letter-spacing:.08em;text-transform:uppercase;background:var(--tsgcard);border:2px solid var(--tsgborder);color:#fff;padding:.75em .85em;cursor:pointer;box-shadow:3px 3px 0 #000}
.tgl i{width:.6rem;height:.6rem;background:var(--tsgdim)}
.tgl[aria-pressed="true"] i{background:var(--tsggreen)}
.tgl:hover{border-color:var(--tsgorange)}
.zbtn{min-width:2.2rem}
.zbtn[data-zoom="0"]{font-size:.95rem;line-height:1;padding:.35em .6em}
.zval{font-family:var(--f-sub);font-size:.8rem;color:var(--tsgmuted);min-width:3rem;text-align:center}
input[type=range]{accent-color:var(--tsgorange);width:6.5rem}
.swrow{display:flex;gap:.35rem}
.swb{width:1.35rem;height:1.35rem;border:2px solid var(--tsgbg2);box-shadow:0 0 0 2px var(--tsgborder);background:var(--c);cursor:pointer;padding:0;opacity:.3}
.swb[aria-pressed="true"]{opacity:1}
.swb:disabled{cursor:not-allowed;opacity:1;box-shadow:0 0 0 2px #fff}
.fbottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem 2rem;margin-top:1.6rem;font-family:var(--f-desc);font-size:.8rem;color:var(--tsgdim)}

/* ---------- Toast ---------- */
.toast{position:fixed;left:50%;top:calc(var(--hh) + 1rem + env(safe-area-inset-top,0px));transform:translateX(-50%);z-index:3000;background:var(--tsgcard);border:2px solid var(--tsgborder);border-left:8px solid var(--tsgyellow);box-shadow:4px 4px 0 #000;padding:1rem 1.2rem;font-family:var(--f-desc);font-size:.95rem;line-height:1.45;color:#fff;width:max-content;max-width:min(92vw,520px)}

.no-anim *,.no-anim *::before,.no-anim *::after{animation:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

@media (max-width:980px){
  .ggrid,.grid3,.plans{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .info{grid-template-columns:1fr}
  .pinfo{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:680px){
  body{font-size:1.3rem}
  .wrap{padding:0 1.1rem}
  .page{padding-top:2rem}
  .ggrid,.grid2,.grid3,.plans,.tiles,.flist,.pc,.pinfo,.logo-demo{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .searchrow{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr}
  .verdict{grid-template-columns:1fr}
  .tl{grid-template-columns:1fr;gap:.3rem}
  .fontrow{grid-template-columns:1fr}
  .logo img{height:1.05rem}
  .lang button{padding:.8em .55em}
  .stage{height:72dvh;min-height:440px}
  .hero{padding-bottom:6rem}
}

/* ---------- Log in & My account ---------- */
.btn-danger{--b:transparent;--f:var(--tsgred);--bd:var(--tsgred)}
.btn-danger:hover{--b:rgba(245,34,45,.12)}
.opt{font-family:var(--f-sub);font-size:.72rem;letter-spacing:0;text-transform:none;color:var(--tsgdim);margin-left:.35rem}
.help{display:block;font-family:var(--f-desc);font-size:.84rem;line-height:1.5;color:var(--tsgdim);margin-top:.45rem}
.input:disabled{opacity:.55;cursor:not-allowed}
.acc-login{max-width:34rem;margin:0 auto}
.tabs2{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--tsgborder);margin-bottom:1.5rem}
.tabs2 button{font-family:var(--f-pixel);font-size:.5rem;letter-spacing:.08em;text-transform:uppercase;padding:1rem .6rem;border:0;background:var(--tsgbg2);color:var(--tsgdim);cursor:pointer}
.tabs2 button[aria-selected="true"]{background:var(--tsgorange);color:#fff}
.or{display:flex;align-items:center;gap:1rem;font-family:var(--f-pixel);font-size:.44rem;letter-spacing:.12em;color:var(--tsgdim);margin:1.5rem 0 1.1rem}
.or::before,.or::after{content:"";flex:1;height:2px;background:var(--tsgborder)}
.chk{display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:start;font-family:var(--f-desc);font-size:.9rem;line-height:1.5;color:var(--tsgmuted);margin-top:.4rem}
.chk input{width:1.15rem;height:1.15rem;margin-top:.15rem;accent-color:var(--tsgorange)}
.acc{max-width:800px;margin:0 auto}
.acc-card{background:var(--tsgcard);border:2px solid var(--tsgborder);box-shadow:6px 6px 0 #000;overflow:hidden}
.acc-banner{position:relative;height:clamp(140px,22vw,200px)}
.acc-banner::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.14) 0 2px,transparent 2px 4px);pointer-events:none}
.acc-edit{position:absolute;top:.8rem;right:.8rem;z-index:2;width:2.6rem;height:2.6rem;display:grid;place-items:center;background:rgba(31,31,31,.88);border:2px solid #fff;color:#fff;cursor:pointer;box-shadow:3px 3px 0 #000;padding:0}
.acc-edit:hover{background:var(--tsgorange)}
.acc-edit svg{width:1rem;height:1rem}
.acc-id{position:relative;z-index:2;display:flex;align-items:flex-end;gap:1.3rem;padding:0 1.5rem 1.3rem;margin-top:-4rem}
.acc-av{position:relative;flex:0 0 auto;width:8rem;height:8rem;display:grid;place-items:center;background:#fff;color:var(--tsgbg);font-family:var(--f-pixel);font-size:2.5rem;border:4px solid var(--tsgbg2);box-shadow:0 0 0 2px #fff,6px 6px 0 #000;overflow:hidden}
.acc-av img{width:100%;height:100%;object-fit:cover;display:block}
.acc-av .acc-edit{top:auto;bottom:.35rem;right:.35rem;width:2.1rem;height:2.1rem;background:#555;border-color:#555;box-shadow:none}
.acc-av.sm{width:5.5rem;height:5.5rem;font-size:1.7rem}
.acc-who{min-width:0;padding-bottom:.4rem}
.acc-name{font-family:var(--f-body);font-size:clamp(1.6rem,3.2vw,2.3rem);line-height:1.05;color:#fff;overflow-wrap:anywhere}
.acc-role{font-family:var(--f-pixel);font-size:.5rem;letter-spacing:.12em;text-transform:uppercase;color:var(--tsgorange);margin-top:.6rem}
.acc-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--tsgborder)}
.acc-stats div{padding:1.05rem .6rem;text-align:center}
.acc-stats div+div{border-left:2px solid var(--tsgborder)}
.acc-stats span{display:block;font-family:var(--f-pixel);font-size:.42rem;letter-spacing:.12em;text-transform:uppercase;color:var(--tsgdim)}
.acc-stats b{display:block;font-family:var(--f-pixel);font-weight:400;font-size:1.05rem;color:#fff;margin-top:.75rem}
.acc-stats .pts b{color:var(--tsgyellow)}
.acc-meta{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;border-top:2px solid var(--tsgborder);padding:.85rem 1.5rem;font-family:var(--f-sub);font-size:.76rem;color:var(--tsgdim)}
.acc-meta b{font-weight:400;color:#fff}
.acc-body{display:grid;grid-template-columns:13.5rem minmax(0,1fr);gap:1.6rem;align-items:start;margin-top:1.8rem}
.acc-menu{position:sticky;top:calc(var(--hh) + 1rem + env(safe-area-inset-top,0px));display:flex;flex-direction:column;gap:.25rem;background:var(--tsgcard);border:2px solid var(--tsgborder);padding:.55rem}
.acc-menu button{display:flex;align-items:center;gap:.75rem;text-align:left;font-family:var(--f-pixel);font-size:.48rem;letter-spacing:.08em;text-transform:uppercase;color:var(--tsgmuted);background:transparent;border:2px solid transparent;padding:.95rem .85rem;cursor:pointer;white-space:nowrap}
.acc-menu button::before{content:"";flex:0 0 auto;width:.45rem;height:.45rem;background:var(--tabc,var(--tsgborder))}
.acc-menu button:nth-child(9n+1){--tabc:var(--tsgred)}
.acc-menu button:nth-child(9n+2){--tabc:var(--tsgorange)}
.acc-menu button:nth-child(9n+3){--tabc:var(--tsgyellow)}
.acc-menu button:nth-child(9n+4){--tabc:var(--tsggreen)}
.acc-menu button:nth-child(9n+5){--tabc:var(--tsgpink)}
.acc-menu button:nth-child(9n+6){--tabc:var(--tsgpurple)}
.acc-menu button:nth-child(9n+7){--tabc:var(--tsgblue)}
.acc-menu button:nth-child(9n+8){--tabc:var(--tsgcyan)}
.acc-menu button:nth-child(9n+9){--tabc:var(--tsglime)}
.acc-menu button:hover{color:#fff}
.acc-menu button[aria-selected="true"]{border-color:var(--tabc,var(--tsgorange));background:var(--tsgbg2);color:#fff}
.acc-panel{min-width:0}
.acc-h{margin-top:2.3rem}
.lvl-bar{height:14px;background:var(--tsgbg2);border:2px solid #000;box-shadow:3px 3px 0 #000;margin-bottom:.8rem}
.lvl-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--tsgred),var(--tsgorange) 50%,var(--tsgyellow))}
.acc-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}
.acc-mini div{border:2px solid var(--tsgborder);background:var(--tsgbg2);padding:1rem .6rem;text-align:center}
.acc-mini b{display:block;font-family:var(--f-pixel);font-weight:400;font-size:1rem;color:#fff}
.acc-mini span{display:block;font-family:var(--f-pixel);font-size:.4rem;letter-spacing:.1em;color:var(--tsgdim);margin-top:.7rem;text-transform:uppercase}
.ach-row{display:grid;grid-template-columns:2.4rem minmax(0,1fr) auto;gap:.9rem;align-items:center;background:var(--tsgcard);border:2px solid var(--tsgborder);padding:.75rem .95rem;margin-bottom:.55rem}
.ach-row img,.ach-grp summary img,.achtoast img{width:2.25rem;height:2.25rem;object-fit:contain}
.nologo{display:block;width:2.25rem;height:2.25rem;background:var(--tsgorange)}
.ach-row b{display:block;font-family:var(--f-sub);font-weight:700;font-size:.9rem;color:#fff;line-height:1.35}
.ach-row small{display:block;font-family:var(--f-sub);font-size:.72rem;color:var(--tsgdim);margin-top:.2rem;line-height:1.45}
.ach-pts{font-family:var(--f-pixel);font-size:.55rem;color:var(--tsgyellow)}
.ach-row.locked{background:var(--tsgbg2)}
.ach-row.locked img{filter:grayscale(1);opacity:.45}
.ach-row.locked .ach-pts{color:var(--tsgdim)}
.ach-grp{border:2px solid var(--tsgborder);background:var(--tsgbg2);margin-bottom:.8rem}
.ach-grp summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:2.4rem minmax(0,1fr) 8rem;gap:.9rem;align-items:center;padding:.85rem 1rem}
.ach-grp summary::-webkit-details-marker{display:none}
.ach-grp summary b{display:block;font-family:var(--f-pixel);font-weight:400;font-size:.58rem;color:#fff}
.ach-grp summary small{display:block;font-family:var(--f-sub);font-size:.72rem;color:var(--tsgdim);margin-top:.45rem}
.grp-bar{height:10px;background:var(--tsgcard);border:2px solid #000}
.grp-bar i{display:block;height:100%;background:var(--tsggreen)}
.ach-grp[open] summary{border-bottom:2px solid var(--tsgborder)}
.ach-grp .ach-row{margin:.55rem .8rem}
.av-row{display:flex;align-items:center;gap:1.4rem}
.bn-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}
.bn-opt{height:3.2rem;border:2px solid var(--tsgborder);cursor:pointer;box-shadow:3px 3px 0 #000;padding:0}
.bn-opt[aria-pressed="true"]{border-color:#fff;outline:2px solid var(--tsgorange);outline-offset:2px}
.achtoast{position:fixed;top:calc(var(--hh) + 1rem + env(safe-area-inset-top,0px));right:1rem;z-index:3100;display:grid;grid-template-columns:2.4rem minmax(0,1fr) auto;gap:.9rem;align-items:center;width:min(92vw,24rem);background:var(--tsgcard);border:2px solid var(--tsgyellow);box-shadow:5px 5px 0 #000;padding:.85rem 1rem;transition:opacity .4s,transform .4s}
.achtoast.gone{opacity:0;transform:translateY(-.6rem)}
.achtoast span{display:block;font-family:var(--f-pixel);font-size:.4rem;letter-spacing:.12em;color:var(--tsgyellow)}
.achtoast b{display:block;font-family:var(--f-sub);font-size:.92rem;color:#fff;margin-top:.4rem}
.achtoast em{font-style:normal;font-family:var(--f-pixel);font-size:.6rem;color:var(--tsgyellow)}
@media (max-width:820px){.acc-body{grid-template-columns:1fr}.acc-menu{position:static;flex-direction:row;overflow-x:auto}.acc-menu button{flex:0 0 auto}}
@media (max-width:560px){.acc-id{flex-direction:column;align-items:flex-start;margin-top:-3.2rem}.acc-av{width:6.5rem;height:6.5rem;font-size:2rem}.bn-row{grid-template-columns:repeat(2,minmax(0,1fr))}.ach-grp summary{grid-template-columns:2.4rem minmax(0,1fr)}.grp-bar{display:none}}

/* game image slot (blank placeholder until a picture is added) */
.gshot{position:relative;aspect-ratio:16/9;margin:0 0 1rem;background-color:var(--tsgbg2);background-image:linear-gradient(45deg,rgba(255,255,255,.035) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.035) 75%),linear-gradient(45deg,rgba(255,255,255,.035) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.035) 75%);background-size:16px 16px;background-position:0 0,8px 8px;border:2px solid var(--tsgborder);overflow:hidden}
.gshot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.gshot .gshot-zoom{position:absolute;inset:0;width:100%;display:block;padding:0;border:0;background:none;cursor:zoom-in}
.lightbox{position:fixed;inset:0;z-index:9000;display:none;align-items:center;justify-content:center;padding:2.5rem;background:rgba(10,10,10,.92)}
.lightbox.open{display:flex}
.lightbox img{max-width:min(1600px,96vw);max-height:92vh;width:auto;height:auto;display:block;border:2px solid var(--tsgborder);background-color:var(--tsgbg2)}
.lightbox .lightbox-x{position:absolute;top:1rem;right:1rem;width:2.6rem;height:2.6rem;display:grid;place-items:center;border:2px solid var(--tsgborder);background:var(--tsgbg2);color:var(--tsgfg, #fff);font-size:1.1rem;cursor:pointer}
.lightbox .lightbox-x:hover{background:var(--tsgred)}
.feats{align-items:stretch}
.feat{display:flex;flex-direction:column;margin:0;padding:1.6rem}
.feat .fname{font-size:.9rem;margin:.4rem 0 1rem}
.feat .btn-row{margin-top:auto;padding-top:.4rem}
.bcard .more{margin-top:auto;padding-top:1rem;font-family:var(--f-pixel);font-size:.46rem;letter-spacing:.1em;color:var(--ac)}

/* empty game window on the play page (the simulation ships no games) */
.stage.empty{width:100%;height:min(60dvh,620px);min-height:320px;display:grid;place-items:center;background-color:var(--tsgbg2);background-image:linear-gradient(45deg,rgba(255,255,255,.035) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.035) 75%),linear-gradient(45deg,rgba(255,255,255,.035) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.035) 75%);background-size:16px 16px;background-position:0 0,8px 8px}
.stage-msg{text-align:center;padding:1.5rem;max-width:38rem}
.stage-msg .lbl{color:var(--ac);margin:0 0 1rem}
.stage-msg .p{margin:0 auto 1.5rem}

/* welcome block on the start page */
.wel-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:2.6rem;align-items:start}
.welcome .lead{font-size:1.8rem;line-height:1.2;color:#fff;max-width:none}
.welcome .p{max-width:none}
.welcome .sig{font-family:var(--f-sub);font-size:.85rem;color:var(--tsgdim);margin:1.5rem 0 0}
.wel-facts h3{font-size:.6rem;margin-bottom:1.1rem}
.wel-facts .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:980px){.wel-grid{grid-template-columns:1fr}}

/* ===== Loading screen (from loading-screen package) ===== */
/* ============ Boot Intro ============ */
.tsg-boot{--tsgbg:#262626;--tsgbg2:#1f1f1f;--tsgcard:#2e2e2e;--tsgcard2:#363636;--tsgred:#F5222D;--tsgorange:#FA541C;--tsgyellow:#FAAD14;--tsggreen:#37B24D;--tsgwhite:#fff;--tsgmuted:#ebebeb;--tsgdim:#d4d4d4;--tsgborder:#3a3a3a;--tsgfont:'Press Start 2P',monospace;position:fixed;inset:0;z-index:99999;background:#262626;color:#fff;font-family:var(--tsgfont);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer}
.tsg-boot::before{content:"";position:absolute;inset:0;background:#262626;pointer-events:none;animation:tsg-boot-flicker 2.4s steps(20) infinite}
.tsg-boot-fade{animation:tsg-boot-out .65s cubic-bezier(.7,0,.3,1) forwards}
@keyframes tsg-boot-out{0%{clip-path:inset(0 0 0 0);opacity:1}60%{opacity:1}100%{clip-path:inset(0 0 100% 0);opacity:0;visibility:hidden}}
@keyframes tsg-boot-flicker{0%,100%{opacity:0}48%{opacity:.015}50%{opacity:.04}52%{opacity:0}}
.tsg-boot-scanlines{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(to bottom,rgba(0,0,0,.18) 0,rgba(0,0,0,.18) 1px,transparent 1px,transparent 3px);opacity:.6}
.tsg-boot-inner{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem;padding:1rem;text-align:center;width:min(440px,92vw);margin:0 auto;box-sizing:border-box}
.tsg-boot-wordmark{display:flex;align-items:center;justify-content:center;width:100%}
.tsg-boot-logo{width:clamp(160px,40vw,320px);height:auto;image-rendering:pixelated;filter:drop-shadow(3px 3px 0 rgba(0,0,0,.5));display:block;margin:0 auto}
.tsg-boot-sub{font-size:10px;letter-spacing:.3em;color:#fff;margin-top:.4rem;display:inline-flex;align-items:baseline;justify-content:center;position:relative}
.tsg-boot-dots{position:absolute;left:100%;top:0;display:inline-flex}
.tsg-boot-dot{opacity:0;animation:tsg-boot-dots 1.2s steps(4) infinite}
.tsg-boot-dot:nth-child(2){animation-delay:.3s}
.tsg-boot-dot:nth-child(3){animation-delay:.6s}
@keyframes tsg-boot-dots{0%,25%{opacity:0}26%,100%{opacity:1}}
.tsg-boot-bar{display:flex;gap:3px;padding:6px;border:2px solid var(--tsgwhite);background:var(--tsgcard);width:100%;box-sizing:border-box;box-shadow:0 0 0 4px var(--tsgbg2),4px 4px 0 0 rgba(0,0,0,.6);margin:0 auto}
.tsg-boot-seg{flex:1;height:18px;background:var(--tsgborder);transition:background .08s linear}
.tsg-boot-seg.on{background:linear-gradient(180deg,var(--tsggreen) 0%,#1f8a3e 100%)}
.tsg-boot-pct{font-size:14px;color:var(--tsggreen);letter-spacing:.12em;text-shadow:2px 2px 0 rgba(0,0,0,.5)}
/* Round pixel-styled spinner used on the /redirect screen */
.tsg-spinner{display:flex;align-items:center;justify-content:center;margin:.4rem auto}
.tsg-spinner-ring{width:64px;height:64px;border-radius:50%;border:8px solid var(--tsgborder);border-top-color:var(--tsggreen);border-right-color:var(--tsggreen);animation:tsg-spin 1s steps(8) infinite;box-shadow:0 0 0 4px var(--tsgbg2)}
@keyframes tsg-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){.tsg-spinner-ring{animation-duration:3s}}
.tsg-boot-ready{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;animation:tsg-boot-pop .25s ease-out both;margin:0 auto}
@keyframes tsg-boot-pop{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
.tsg-boot-100{font-size:clamp(48px,12vw,120px);text-shadow:4px 4px 0 rgba(0,0,0,.5);letter-spacing:.04em;animation:tsg-boot-shake .12s steps(2) 4}
.tsg-boot-100 .c-r{color:var(--tsgred)}
.tsg-boot-100 .c-o{color:var(--tsgorange)}
.tsg-boot-100 .c-y{color:var(--tsgyellow)}
.tsg-boot-100 .c-g{color:var(--tsggreen)}
@keyframes tsg-boot-shake{25%{transform:translate(-2px,1px)}50%{transform:translate(2px,-1px)}75%{transform:translate(-1px,-1px)}}
.tsg-boot-press{font-size:12px;color:var(--tsgwhite);letter-spacing:.2em;animation:tsg-boot-blink 1s steps(2) infinite}
.tsg-boot-skip{position:absolute;bottom:1rem;right:1rem;font-size:7px;color:var(--tsgdim);letter-spacing:.18em;opacity:.7}
@media (prefers-reduced-motion: reduce){.tsg-boot{display:none}}

@keyframes tsg-boot-blink{50%{opacity:0}}
.tsg-boot-skip{bottom:calc(1rem + env(safe-area-inset-bottom,0px));right:calc(1rem + env(safe-area-inset-right,0px))}
.no-anim .tsg-boot{display:none}

/* PLAY buttons take the colour of the card / page they sit in (dark text on yellow, lime and cyan) */
.btn-play{--b:var(--ac,var(--tsgorange));--f:var(--cf,#fff);text-shadow:1px 1px 0 rgba(0,0,0,.28)}
.btn-play:hover{--b:var(--ac,var(--tsgorange));filter:brightness(1.1)}

/* hero background: tsg-hero-bg.gif, re-encoded as an animated WebP (still frame when animations are off) */
.hero-bg{position:absolute;inset:0;z-index:0;background-color:#1F1F1F;background-image:url(/static/hero-still.webp);background-position:center;background-size:cover;background-repeat:no-repeat}
.hero-bg::after{content:"";position:absolute;inset:0;background:rgba(31,31,31,.45)}
.hero canvas{z-index:1}
.hero-live .hero-bg{background-image:url(/static/hero-bg.webp)}
.no-anim .hero-bg{background-image:url(/static/hero-still.webp)}
@media (prefers-reduced-motion:reduce){.hero-bg{background-image:url(/static/hero-still.webp)}}

/* reviews & ratings menu on the game page */
.rtabs{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 1.5rem;border-bottom:2px solid var(--tsgborder)}
.rtabs button{font-family:var(--f-pixel);font-size:.5rem;letter-spacing:.08em;text-transform:uppercase;background:transparent;color:var(--tsgmuted);border:2px solid transparent;border-bottom:0;padding:1rem 1rem .9rem;margin-bottom:-2px;cursor:pointer}
.rtabs button:hover{color:#fff}
.rtabs button[aria-selected="true"]{background:var(--tsgcard);color:#fff;border-color:var(--tsgborder);box-shadow:inset 0 4px 0 var(--ac,var(--tsgorange))}
.psum{display:grid;grid-template-columns:auto 1fr;gap:1.3rem;align-items:center;margin-bottom:1.4rem}
.rcard{background:var(--tsgcard);border:2px solid var(--tsgborder);padding:1.2rem 1.3rem;margin-bottom:1.2rem}
.rcard header{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-bottom:.8rem}
.rcard header b{font-family:var(--f-sub);font-size:.95rem;color:#fff}
.badge.you{background:var(--ac,var(--tsgorange));color:var(--cf,#fff)}
.rscore{display:flex;align-items:center;gap:.9rem;margin-bottom:.8rem}
.rscore b{font-family:var(--f-pixel);font-weight:400;font-size:.7rem;color:var(--ac,var(--tsgorange))}
.rbar{display:inline-grid;grid-template-columns:repeat(10,.85rem);gap:3px}
.rbar i{height:.85rem;background:var(--tsgborder)}
.rbar i.on{background:var(--ac,var(--tsgorange))}
input[type=range]#rf-r{width:100%;max-width:28rem;accent-color:var(--ac,var(--tsgorange))}
@media (max-width:680px){.rtabs button{flex:1 1 auto;padding:.9rem .6rem}.rbar{grid-template-columns:repeat(10,.65rem)}}

/* game-variant loading screen inside the game window */
.tsg-boot.in-stage{position:absolute;z-index:4;cursor:default}

.linkbtn{background:none;border:0;padding:0;margin:0 0 .6rem;color:var(--tsgmuted);font:inherit;font-size:.85rem;text-decoration:underline;cursor:pointer}
.linkbtn:hover{color:#fff}
/* latest updates (homepage) — synced with the games' version history */
.updlist{display:grid;gap:2px;background:var(--tsgborder);border:2px solid var(--tsgborder)}
.upd{background:var(--tsgcard)}
.upd summary{display:flex;align-items:center;gap:.9rem;padding:1rem 1.15rem;cursor:pointer;list-style:none;user-select:none}
.upd summary::-webkit-details-marker{display:none}
.upd summary:focus-visible{outline:2px solid var(--ac);outline-offset:-2px}
.upd-plus{flex:0 0 auto;width:1.35rem;height:1.35rem;display:grid;place-items:center;background:var(--ac);color:var(--cf,#fff);font-family:var(--f-pixel);font-size:.6rem;box-shadow:2px 2px 0 #000}
.upd-plus::before{content:"+"}
.upd[open] .upd-plus::before{content:"–"}
.upd-name{font-size:.8rem;letter-spacing:.04em}
.upd-date{margin-left:auto;font-family:var(--f-desc);font-size:.8rem;color:var(--tsgmuted)}
.upd-entries{margin:0;padding:.4rem 1.15rem 1.1rem 3.4rem;list-style:none;display:grid;gap:.45rem;font-family:var(--f-desc);font-size:.92rem;line-height:1.55;color:var(--tsgmuted)}
.upd-entries li{display:grid;grid-template-columns:auto auto 1fr;gap:.7rem;align-items:baseline}
.upd-entries li::before{content:"";width:.5rem;height:.5rem;margin-top:.4rem;background:var(--ac)}
.upd-entries strong{color:var(--tsgtext);font-weight:600}
.tsg-consent{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:9500;max-width:640px;margin:0 auto;background:var(--tsgbg,#000);border:2px solid var(--tsgorange);box-shadow:6px 6px 0 #000;padding:1rem 1.2rem;font-size:.95rem;line-height:1.6}.tsg-consent a{color:var(--tsgorange);text-decoration:underline}.tsg-consent-btns{display:flex;gap:.6rem;justify-content:flex-end;flex-wrap:wrap;margin-top:.6rem}
.tsg-consent-h{font-family:"Press Start 2P",monospace;font-size:.8rem;margin:0 0 .5rem}.tsg-consent-prefs{border:1px solid rgba(255,255,255,.25);margin:.6rem 0 0;padding:.5rem .8rem;display:grid;gap:.35rem}.tsg-consent-prefs legend{padding:0 .3rem;font-weight:700}.tsg-consent-prefs label{display:flex;gap:.5rem;align-items:center}.tsg-consent-btns .btn{min-width:7.5rem}.tsg-consent :focus-visible{outline:3px solid var(--tsgorange);outline-offset:2px}
@media (max-width:480px){.tsg-consent{left:.5rem;right:.5rem;bottom:.5rem;max-height:80vh;overflow:auto}.tsg-consent-btns .btn{flex:1 1 45%;min-width:0}}
.tsg-consent [hidden]{display:none!important}
/* Annonser av på funktionssidor eller utan samtycke (styrs av consent.js) */
html.tsg-ads-off .google-auto-placed,html.tsg-ads-off ins.adsbygoogle,html.tsg-ads-off .adsbygoogle-noablate{display:none!important}
.backrow{margin:0 0 14px}.btn-back{display:inline-flex}
.hero-splash{font-family:var(--mono,monospace);font-size:clamp(1.05rem,1.9vw,1.5rem);color:#FAAD14;text-shadow:.08em .08em 0 #000;margin:0 0 1.6rem;transform:rotate(-2deg);animation:splashbob 1.6s ease-in-out infinite}
@keyframes splashbob{0%,100%{transform:rotate(-2deg) scale(1)}50%{transform:rotate(-2deg) scale(1.06)}}
/* extra languages */
.lang-more{font-family:var(--f-pixel);font-size:.48rem;letter-spacing:.04em;padding:.7em .5em;background:var(--tsgbg);color:#fff;border:0;box-shadow:inset 0 0 0 2px var(--tsgcyan,#3dd6f5);cursor:pointer;max-width:9rem}
.lang-more option{font-family:system-ui,sans-serif;font-size:14px}
.enq{position:fixed;left:50%;bottom:1.2rem;transform:translateX(-50%);z-index:9000;background:var(--tsgbg);color:#fff;box-shadow:inset 0 0 0 3px var(--tsgorange),6px 6px 0 #000;padding:1rem 1.2rem;max-width:min(30rem,92vw)}
.enq p{margin:0 0 .8rem}
.cgate{position:fixed;inset:0;z-index:9500;background:rgba(0,0,0,.75);display:flex;align-items:center;justify-content:center;padding:1rem}
.cgate-in{background:var(--tsgbg);box-shadow:inset 0 0 0 3px var(--tsggreen,#3fb950),8px 8px 0 #000;padding:1.6rem;max-width:30rem;width:100%}
[data-rtl] #main :is(p,h1,h2,h3,li,label,.desc,.lead){direction:rtl;text-align:right}
@media (max-width:700px){.lang-more{max-width:5.5rem}}
