@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&family=Noto+Serif+SC:wght@400;500;600&display=swap');
:root{color-scheme:dark;--bg:#09131e;--panel:#101f2b;--gold:#cdb384;--text:#f0e7d6;--muted:#95a4af;--line:#cdb38430;font-family:Inter,'Segoe UI','Microsoft YaHei',sans-serif;color:var(--text);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% -10%,#20324966,transparent 55%),var(--bg);min-height:100svh}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:5px}[hidden]{display:none!important}.lobby-shell{max-width:1240px;margin:auto;padding:0 48px}.lobby-header{height:104px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:15px;color:var(--gold);font:500 25px Cinzel,Georgia,serif;letter-spacing:.12em}.brand svg{width:37px;height:42px;stroke:var(--gold);stroke-width:1}.brand b{font-weight:400;color:var(--text)}.brand small{display:block;letter-spacing:.23em;font:8px 'Segoe UI',sans-serif;margin-top:7px;color:#a7a797}.lobby-header nav{display:flex;gap:28px;align-items:center}.local-badge{display:flex;gap:7px;align-items:center;font-size:11px;color:var(--muted)}.local-badge i,.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#a4bba8}.help-button{display:flex;align-items:center;gap:8px;border:0;background:none;color:#b8c2c7;min-height:44px;padding:8px 0}.help-button span{border:1px solid #a1aeb8;border-radius:50%;width:18px;height:18px;font:13px Georgia;text-align:center}.help-button em{font-style:normal;font-size:12px}.welcome{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:55px 0 46px}.eyebrow{font-size:9px;letter-spacing:.2em;color:var(--gold);display:flex;align-items:center;gap:12px;margin:0 0 15px}.eyebrow i{height:1px;width:24px;background:var(--gold)}h1,h2,h3,p{margin:0}h1{font-family:'Noto Serif SC',Georgia,serif;font-weight:400;font-size:43px;letter-spacing:.06em;line-height:1.5}h1 span{color:var(--gold)}.welcome-note{color:var(--muted);font-size:13px;line-height:1.8;margin-top:9px}.join-shortcut{display:flex;align-items:center;gap:16px;background:#cdb3840b;border:1px solid #cdb38450;color:var(--text);border-radius:4px;padding:19px 23px;text-align:left;min-height:80px}.join-shortcut:hover{background:#cdb38418;border-color:var(--gold)}.join-shortcut svg{width:24px;height:24px;stroke:var(--gold);stroke-width:1.2}.join-shortcut>span{font-size:14px}.join-shortcut small{display:block;font-size:10px;color:var(--muted);margin-top:7px}.join-shortcut b{color:var(--gold);font-size:22px;font-weight:400;margin-left:20px}.section-caption{display:flex;justify-content:space-between;gap:16px;align-items:center;color:var(--muted);margin-bottom:20px}.section-caption h2{font-size:13px;font-weight:400;letter-spacing:.1em;color:#c6c9c4}.section-caption>span{font-size:10px;letter-spacing:.05em}.section-caption .status-dot{margin-right:6px}.game-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.game-card{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:linear-gradient(130deg,#132330,#0e1b27);transition:transform .2s,border-color .2s}.game-card:hover{border-color:#cdb38477;transform:translateY(-3px)}.game-cover{display:block;position:relative;height:228px;isolation:isolate;overflow:hidden}.game-cover:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0b1725d9,transparent 70%),linear-gradient(180deg,#04101a66,transparent 35%);z-index:-1}.game-cover img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:76% 43%;z-index:-2;transition:transform .5s}.case-card .game-cover img{object-position:center 42%;filter:brightness(.72)}.game-cover:hover img{transform:scale(1.035)}.cover-kicker{position:absolute;left:25px;top:22px;font-size:8px;letter-spacing:.17em;color:#e1d3ba}.cover-name{position:absolute;bottom:24px;left:25px;font:400 36px Cinzel,Georgia,serif;letter-spacing:.11em}.cover-name small{display:block;font:7px 'Segoe UI',sans-serif;letter-spacing:.28em;color:#d6c8b0;margin-top:8px}.genre{position:absolute;right:22px;bottom:27px;padding:6px 10px;border:1px solid #dacaaa44;border-radius:2px;font-size:9px;background:#08131c66}.game-body{padding:25px 25px 18px}.game-title{display:flex;align-items:center;justify-content:space-between}.game-title h3{font:500 21px Cinzel,Georgia,serif;letter-spacing:.09em}.game-title h3 small{font:10px 'Segoe UI','Microsoft YaHei',sans-serif;letter-spacing:.05em;color:var(--muted);display:inline-block;margin-left:7px}.game-title p{color:#c3b28e;font-size:12px;margin-top:9px;letter-spacing:.07em}.game-emblem{font-size:31px;color:#cdb38499}.game-description{font-size:12px;line-height:1.85;color:var(--muted);margin:17px 0}.game-meta{display:flex;gap:0;flex-wrap:wrap;font-size:10px;color:#b8c1c6;margin:18px 0 20px}.game-meta span+span:before{content:'·';padding:0 11px;color:#726d5e}.game-actions{display:grid;grid-template-columns:1fr 1fr;gap:11px}.button{display:flex;align-items:center;justify-content:center;gap:16px;min-height:47px;border-radius:3px;font-size:12px;line-height:1.5;padding:11px 17px;cursor:pointer}.button>span{font-size:18px;font-weight:400}.primary{background:var(--gold);color:#101a24;border:1px solid var(--gold)}.primary:hover{background:#e4cda7}.secondary{background:#0c1924;border:1px solid #cdb3845c;color:#dfd5c2}.secondary:hover{border-color:var(--gold);background:#1b2b38}.game-more{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 0 0;min-height:40px;color:var(--muted);font-size:10px}.game-more:hover{color:var(--gold)}.game-more span{font-size:16px}.coming-soon{display:flex;align-items:center;gap:19px;margin-top:24px;border:1px solid #cdb38423;border-radius:5px;padding:20px 25px;background:#10202b55}.moon{font-size:32px;color:#a4b6c8;width:39px;text-align:center}.coming-soon h3{font-family:'Noto Serif SC',serif;font-size:16px;font-weight:400;letter-spacing:.08em;color:#b5c1cc}.coming-soon h3 small{font:8px Georgia;letter-spacing:.18em;margin-left:10px;color:var(--muted)}.coming-soon p{font-size:11px;color:#8394a2;margin-top:7px}.coming-label{margin-left:auto;border:1px solid #b9c7d02b;color:#94a5b3;border-radius:3px;font-size:10px;padding:7px 14px;white-space:nowrap}.how-it-works{display:flex;align-items:center;justify-content:space-evenly;gap:12px;margin:37px 0 30px;color:var(--muted);font-size:11px}.how-it-works p{display:flex;align-items:center;gap:11px}.how-it-works p span{font:13px Georgia;color:var(--gold)}.how-it-works>i{font-style:normal;color:#cdb38455}footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:25px 0 30px;border-top:1px solid var(--line);font-size:10px;color:#8494a0}footer>span:last-child{font:10px Georgia;letter-spacing:.13em}footer i{color:var(--gold);font-size:15px;margin-left:13px;font-style:normal}.resume-section{margin:0 0 28px}.resume-section .section-caption{margin-bottom:12px}.resume-list{display:flex;gap:12px;flex-wrap:wrap}.resume-item{display:flex;align-items:center;gap:14px;flex:1 1 280px;border:1px solid #cdb38440;background:#19293280;border-radius:4px;padding:13px 17px;min-height:64px}.resume-item:hover{border-color:var(--gold)}.resume-icon{color:var(--gold);font-size:22px}.resume-item strong{display:block;font-size:12px;font-weight:500}.resume-item small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.resume-item .resume-arrow{margin-left:auto;color:var(--gold);font-size:13px;white-space:nowrap}dialog{border:1px solid #cdb38470;border-radius:7px;max-width:440px;width:calc(100% - 32px);padding:35px 30px;color:var(--text);background:#101f2b;box-shadow:0 25px 90px #0008;max-height:calc(100svh - 32px);overflow:auto}dialog::backdrop{background:#020810c9;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:13px;top:9px;background:transparent;border:0;color:#b8c0c5;font-size:27px;width:40px;height:40px}.dialog-close:hover{color:var(--gold)}dialog h2{font:400 25px 'Noto Serif SC',serif;margin-bottom:15px}dialog .dialog-note{font-size:12px;line-height:1.8;color:var(--muted)}dialog form{margin-top:24px}dialog label{display:block;font-size:11px;color:#c4c6c0;margin:18px 0 9px}dialog input,dialog select{min-height:46px;border:1px solid #cdb38455;border-radius:3px;width:100%;background:#0a1722;color:var(--text);padding:12px;font-size:15px}#join-code{font:24px Georgia;letter-spacing:.25em;text-align:center}dialog .field-hint{font-size:11px;color:var(--muted);line-height:1.7;margin:12px 0 22px}dialog .button{width:100%}dialog ol{padding-left:24px;font-size:12px;color:var(--gold)}dialog li{padding-left:5px;margin:18px 0}dialog li strong{color:var(--text);font-weight:500}dialog li p{color:var(--muted);font-size:12px;line-height:1.85;margin-top:7px}.local-note{border-top:1px solid var(--line);padding-top:16px;color:var(--muted);font-size:11px;line-height:1.8;margin:20px 0}
@media(min-width:801px){.lobby-header{height:88px}.welcome{padding:32px 0 29px}.welcome h1{font-size:38px}.game-cover{height:205px}.game-body{padding-top:20px}.game-description{display:none}.game-meta{margin:16px 0}.game-more{min-height:33px;padding-top:10px}}
@media(min-width:1500px){.lobby-shell{max-width:1320px}.welcome{padding-top:42px}.game-cover{height:245px}}
@media(max-width:800px){.lobby-shell{padding:0 26px}.lobby-header{height:84px}.brand{font-size:22px}.welcome{padding:36px 0 32px;gap:20px}h1{font-size:34px}.join-shortcut{padding:15px}.join-shortcut b{margin-left:0}.join-shortcut svg{display:none}.join-shortcut small{font-size:9px}.join-shortcut>span{font-size:12px}.game-grid{gap:16px}.game-cover{height:185px}.cover-name{font-size:27px;left:20px}.cover-kicker{left:20px;font-size:7px}.genre{display:none}.game-body{padding:20px 18px 12px}.game-title h3{font-size:18px}.game-title h3 small{display:block;margin:4px 0 0}.game-emblem{display:none}.game-meta{font-size:9px}.game-meta span+span:before{padding:0 6px}.game-actions{gap:8px}.button{gap:8px;padding:10px;font-size:11px}.how-it-works{font-size:10px}.how-it-works p{gap:7px}}
@media(max-width:580px){.lobby-shell{padding:0 20px}.lobby-header{height:77px}.brand{gap:10px;font-size:20px}.brand svg{width:28px;height:33px}.brand small{font-size:6px;letter-spacing:.2em;margin-top:5px}.lobby-header nav{gap:15px}.local-badge{font-size:9px}.help-button em{display:none}.help-button{width:30px;justify-content:center}.welcome{display:block;padding:29px 0 25px;position:relative}h1{font-size:31px;letter-spacing:.05em}.eyebrow{font-size:7px;gap:8px;letter-spacing:.16em;margin-bottom:9px}.eyebrow i{width:18px}.welcome-note{font-size:11px;margin-top:8px}.join-shortcut{margin-top:20px;width:100%;min-height:49px;padding:10px 14px;gap:10px}.join-shortcut svg{display:block;width:18px;height:18px}.join-shortcut small{display:none}.join-shortcut b{margin-left:auto;font-size:20px}.join-shortcut>span{font-size:12px}.section-caption{margin-bottom:13px;gap:10px}.section-caption h2{font-size:11px}.section-caption>span{font-size:8px}.game-grid{grid-template-columns:minmax(0,1fr);gap:15px}.game-card{display:grid;grid-template-columns:100px minmax(0,1fr)}.game-cover{height:100%;min-height:206px}.game-cover img{object-position:76% center}.case-card .game-cover img{object-position:51% center}.game-cover:after{background:linear-gradient(0deg,#0b1725c9,transparent 75%)}.cover-kicker{top:14px;left:10px;font-size:6px;letter-spacing:.05em;max-width:78px;line-height:1.8}.cover-name{font-size:11px;bottom:15px;left:10px;letter-spacing:.1em}.cover-name small{display:none}.game-body{padding:17px 15px 10px}.game-title h3{font-size:18px}.game-title h3 small{font-size:9px;display:inline-block;margin-left:4px;letter-spacing:0}.game-title p{font-size:10px;margin-top:6px;letter-spacing:0}.game-description{font-size:10px;line-height:1.7;margin:10px 0}.game-description br{display:none}.game-meta{font-size:8px;margin:11px 0 12px}.game-meta span+span:before{padding:0 5px}.game-actions{gap:7px}.button{min-height:42px;padding:8px;font-size:10px;gap:8px}.button>span{font-size:15px}.game-more{font-size:9px;min-height:31px;padding-top:8px;gap:7px}.coming-soon{margin-top:15px;padding:15px;gap:11px}.moon{font-size:27px;width:25px}.coming-soon h3{font-size:13px}.coming-soon h3 small{font-size:7px;margin-left:7px}.coming-soon p{font-size:9px;line-height:1.6;margin-top:5px}.coming-label{font-size:8px;padding:6px 9px}.how-it-works{margin:23px 0 19px;justify-content:flex-start;flex-wrap:wrap;gap:8px 13px;font-size:9px}.how-it-works p span{font-size:11px}.how-it-works>i{display:none}.how-it-works p{gap:6px}footer{padding:18px 0 22px;font-size:9px}footer>span:last-child{font-size:8px}footer i{margin-left:4px}.resume-section{margin-bottom:22px}.resume-list{gap:9px}.resume-item{min-height:60px;padding:11px 13px}.resume-item strong{font-size:11px}.resume-item small{font-size:9px}.resume-item .resume-arrow{font-size:11px}dialog{padding:32px 23px}.resume-section .section-caption>span{font-size:8px}}
@media(max-width:360px){.lobby-shell{padding:0 16px}.game-card{grid-template-columns:78px minmax(0,1fr)}.game-body{padding:15px 12px 9px}.game-title h3{font-size:16px}.game-title h3 small{font-size:8px}.cover-name{font-size:9px;left:7px}.cover-kicker{left:7px;max-width:67px}.game-description{font-size:9px}.game-meta{font-size:7px}.game-meta span+span:before{padding:0 4px}.game-actions{gap:6px}.button{font-size:9px;gap:5px}.brand{font-size:18px}.local-badge{font-size:8px}footer{font-size:8px}.coming-soon p{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

/* Choose the game first; modes live inside each game. */
.game-actions{grid-template-columns:minmax(0,1fr)}.game-mode-note{font-size:10px;color:var(--muted);text-align:center;line-height:1.8;padding-top:13px}.welcome-aside{font-size:11px;color:#aab5bc;line-height:1.9;text-align:right;letter-spacing:.07em}.welcome-aside i{font-style:normal;color:var(--gold);padding:0 8px}.welcome-aside small{font-size:10px;color:#8294a4;letter-spacing:.05em}@media(max-width:580px){.welcome-aside{display:none}.game-mode-note{font-size:8px;padding-top:9px}.game-cover{min-height:197px}}

