@charset "UTF-8";
:root{color-scheme:light;--bg:#f6f4ef;--panel:#fff;--line:#e8e4dc;--text:#302f2b;--muted:#858278;--accent:#ce603a;--dark:#fff;--soft:#f6ecdd;--green:#4f7866}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.6 "Microsoft YaHei UI","PingFang SC",sans-serif}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}[hidden]{display:none!important}:focus-visible{outline:3px solid #d79362;outline-offset:4px}button,a{touch-action:manipulation}h1,h2,h3,p{margin-top:0}button{line-height:1.5}
.topbar{background:#fffdf9;border-bottom:1px solid var(--line)}.topbar-inner{max-width:1320px;margin:auto;min-height:78px;padding:12px 36px;display:flex;align-items:center;gap:30px}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:23px;letter-spacing:1px;white-space:nowrap}.brand-icon{width:33px;height:36px;border-radius:10px 10px 13px 13px;display:grid;place-items:center;background:#aa793a;color:#fff;font:italic bold 22px Georgia,serif}.brand small{font-size:14px;font-weight:500;letter-spacing:0;margin-left:6px;color:#71604a}nav{display:flex;align-items:center;gap:7px;white-space:nowrap}nav a{padding:9px 15px;color:#746e61;font-size:13px}nav .current{background:var(--soft);color:#8b622e;border-radius:8px}.search-box{margin-left:auto;display:flex;align-items:center;gap:8px;background:#f6f4ef;border:1px solid var(--line);border-radius:8px;padding:0 12px;max-width:235px}.search-box span{font-size:23px;color:#9d9385}.search-box input{background:none;border:0;width:100%;padding:8px 0;font-size:12px}.search-box input:focus-visible{outline:none}#account{display:flex;align-items:center;gap:12px;white-space:nowrap}.account-id{font-size:11px;color:var(--muted)}#account .button,#account .secondary{padding:8px 14px;font-size:12px}.admin-menu{position:relative;font-size:12px}.admin-menu summary{cursor:pointer;white-space:nowrap;color:var(--muted)}.admin-dropdown{position:absolute;right:0;top:32px;z-index:5;background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px #38230b12;padding:16px;width:165px;display:grid;gap:15px}.admin-dropdown .text-button{text-align:left}
main{max-width:1320px;padding:26px 36px 0;margin:auto}.hero{position:relative;isolation:isolate;min-height:310px;border-radius:16px;overflow:hidden;color:#fff;background:#0e100c url('/static/images/adventure.png') no-repeat 88% 48%;background-size:auto 160%;margin-bottom:32px}.hero:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#15231ffa 0%,#142522ed 28%,#18272144 60%,#17262100 85%)}.hero-copy{padding:32px 38px;max-width:530px}.hero-badge{display:inline-block;background:#f2d39c;color:#564020;font-size:11px;font-weight:600;padding:4px 11px;border-radius:5px;margin-bottom:22px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted);margin:0 0 8px}.hero .eyebrow{color:#c4c6b0;font-size:9px}.hero h1{font-size:38px;font-weight:650;letter-spacing:1px;margin:0 0 10px;line-height:1.35}.hero-copy>p:not(.eyebrow){font-size:13px;color:#d6ded4;line-height:1.8;margin-bottom:21px;max-width:370px}.hero-index{position:absolute;bottom:25px;right:28px;color:#fff7;font:10px monospace;letter-spacing:2px}.hero .hero-button{background:#fff6e6;border-color:#fff6e6;color:#443521;gap:30px;font-size:12px;padding:9px 16px}.hero.ink{background-image:url('/static/images/mountains.png');background-size:cover}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:26px;align-items:start}.main-column{min-width:0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px}.section-kicker{font-size:9px;letter-spacing:1.7px;color:#a79b89;margin-bottom:3px}h2{font-size:20px;margin:0;font-weight:650}.muted{color:var(--muted);font-size:12px}.maps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.map-card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;min-width:0}.map-cover{position:relative;display:block;aspect-ratio:1.48;overflow:hidden;background:#21362d}.map-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0006,transparent 60%)}.map-cover.adventure{background:#10211e url('/static/images/adventure.png') center 43%/cover}.map-cover.ink{background:#343f45 url('/static/images/mountains.png') center 75%/cover}.map-cover.island{background:radial-gradient(ellipse at 70% 25%,#f3dd9c 0 8%,transparent 9%),linear-gradient(165deg,#729b8d,#234f46 60%,#18342f)}.map-cover.island:before{content:"";position:absolute;inset:40% -10% -40%;background:#afbd88;clip-path:polygon(0 60%,16% 30%,30% 51%,49% 0,66% 31%,79% 11%,100% 45%,100% 100%,0 100%)}.map-cover.mystic{background:radial-gradient(circle at 65% 40%,#bfae97,#575e70 50%,#2c3942)}.cover-title{position:absolute;z-index:1;left:20px;bottom:15px;color:#fff;font-family:"STKaiti","KaiTi",serif;font-size:31px;letter-spacing:4px;text-shadow:0 2px 12px #0005}.adventure .cover-title{display:none}.cover-tag{position:absolute;left:12px;top:12px;z-index:1;color:#fff;background:#17272099;backdrop-filter:blur(6px);padding:2px 8px;border:1px solid #fff3;border-radius:4px;font-size:10px}.map-info{padding:15px 16px}.map-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.map-heading h3{font-size:15px;margin:0;font-weight:650}.enter-link{color:var(--accent);font-size:12px;white-space:nowrap}.map-info p{font-size:11px;line-height:1.8;color:var(--muted);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:40px}.map-meta{border-top:1px solid #f0ede7;margin-top:13px;padding-top:10px;display:flex;justify-content:space-between;gap:8px;font-size:10px;color:#898272}.map-admin-actions{border-top:1px solid var(--line);padding:9px 16px;font-size:11px;color:var(--muted)}.map-admin-actions summary{cursor:pointer}.map-admin-actions>div{display:flex;gap:12px;flex-wrap:wrap;padding-top:10px}.map-admin-actions .text-button{font-size:11px}.catalog-empty{grid-column:1/-1;padding:35px;border:1px dashed var(--line);text-align:center;border-radius:12px;color:var(--muted)}
.button{border:1px solid var(--accent);background:var(--accent);color:#fff;padding:10px 17px;display:inline-flex;align-items:center;justify-content:center;font-weight:550;border-radius:7px;white-space:nowrap}.button:hover:not(:disabled){background:#b84e2b;border-color:#b84e2b}.secondary{background:#fff;color:#686151;border:1px solid var(--line);padding:9px 14px;border-radius:7px}.secondary:hover:not(:disabled){background:#faf5ed;border-color:#d2c7b4}.text-button{border:0;background:none;color:var(--accent);padding:0}.full{width:100%}.button.danger{background:#b74636;border-color:#b74636;color:white}.danger,.inline-error{color:#b74636}.inline-error{font-size:12px;overflow-wrap:anywhere}
.sidebar{position:sticky;top:20px;display:grid;gap:20px}.room-panel{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.panel-top{display:flex;align-items:center;gap:9px;padding:17px 20px;border-bottom:1px solid var(--line);background:#fffdf9}.panel-top h2{font-size:15px}.party-icon{font-size:23px;color:#a8814b;line-height:1}.live-dot{margin-left:auto;width:6px;height:6px;background:#839d73;border-radius:50%}.panel-empty{padding:28px 22px;text-align:center}.empty-symbol{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:#f5f1e8;border:1px dashed #dcd0bd;color:#b3a387;font-size:30px;margin:0 auto 18px}.panel-empty h3{font-size:15px;font-weight:550;margin:0 0 9px}.panel-empty p{font-size:12px;line-height:1.9;color:var(--muted);margin-bottom:21px}.panel-empty .button{font-size:12px}.quick-guide{padding:6px 16px;color:#736b5c}.quick-guide h3{font-size:14px;font-weight:500;margin-bottom:20px}.quick-guide .eyebrow{font-size:9px;color:#aaa091}.quick-guide ol{list-style:none;padding:0;margin:0 0 22px;display:grid;gap:19px}.quick-guide li{display:flex;gap:13px;font-size:12px}.quick-guide li>span{font:11px/26px monospace;color:#a18c6f;border:1px solid #dfd7cb;border-radius:50%;width:27px;height:27px;text-align:center;flex-shrink:0}.quick-guide small{display:block;color:#969085;font-size:11px;margin-top:3px}.quick-guide details{border-top:1px solid var(--line);padding-top:15px;font-size:11px;color:var(--muted)}.quick-guide summary{cursor:pointer}.quick-guide details p{margin-top:14px}.quick-guide details a{color:var(--accent)}
.lobby-section{margin-top:32px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px}.lobby-section .section-head{margin-bottom:19px}.lobby-section h2{font-size:17px}.section-label{display:flex;align-items:center;gap:10px}.count{font-size:11px;padding:0 7px;border-radius:5px;background:#f5f1ea;color:#95826a}.lobby-section .button{font-size:12px;padding:8px 13px}.filters{display:flex;gap:22px;border-bottom:1px solid var(--line);align-items:start}.filter{background:none;border:0;color:var(--muted);font-size:12px;padding:0 0 11px}.filter.active{border-bottom:2px solid var(--accent);color:var(--accent)}#sync-status{margin-left:auto;font-size:10px;padding-top:3px}.room-row{padding:19px 0;border-bottom:1px solid #f0ede7;display:flex;gap:13px;align-items:center}.room-row:last-child{border-bottom:0;padding-bottom:0}.room-emblem{height:40px;width:40px;flex-shrink:0;border-radius:9px;background:#f3ecdf;display:grid;place-items:center;font-size:18px;color:#9b7a47}.room-info{flex:1;min-width:0}.room-info h3{margin:0;font-size:13px;font-weight:550;overflow-wrap:anywhere}.room-info p{margin:4px 0 0;color:var(--muted);font-size:11px}.room-right{display:flex;align-items:center;gap:14px}.room-right .secondary{font-size:11px;padding:7px 10px}.pill{font-size:10px;color:var(--green);white-space:nowrap}.pill.dim{color:var(--muted)}.empty-list{padding:34px 15px 20px;text-align:center}.empty-list h3{font-size:14px;font-weight:500;margin:0 0 8px}.empty-list p{color:var(--muted);font-size:12px;margin:0}.party-body{padding:20px}.party-name{font-size:17px;margin:0 0 5px;overflow-wrap:anywhere}.party-subtitle{color:var(--muted);font-size:10px}.member{padding:14px 0;display:flex;justify-content:space-between;gap:8px;align-items:center;border-bottom:1px solid var(--line);font-size:11px}.member-label{color:var(--muted);font-size:10px}.ready{color:var(--green)}.party-actions{display:flex;flex-direction:column;gap:9px;margin-top:18px}.party-actions button{font-size:12px}.room-state{padding:10px 12px;margin-top:18px;border-left:2px solid #a0b29a;background:#f1f5ef;font-size:12px;color:#53674d}.connection{margin-top:18px;padding:13px;background:#f8f6f1;border:1px solid var(--line);border-radius:8px}.connection input{font-family:monospace;font-size:11px;padding:9px 0;border:0;background:none;color:#a05232;width:100%;margin:6px 0}.connection button{width:100%;font-size:12px}.connection>.text-button{display:block;font-size:11px;margin-bottom:9px}.steps{font-size:11px;color:var(--muted);padding-left:17px}.notice{border:1px solid #ccdbc4;background:#eff5eb;color:#506847;padding:12px 18px;border-radius:8px;margin-bottom:20px;overflow-wrap:anywhere;font-size:12px}.notice.error{border-color:#edcbbb;background:#fff0e8;color:#a45335}
.back-link{display:inline-block;color:#9c7950;font-size:12px;margin-bottom:16px}.game-overview{display:flex;gap:26px;background:#fff;padding:22px;border:1px solid var(--line);border-radius:12px;align-items:center}.game-overview .map-cover{width:240px;flex-shrink:0;border-radius:9px}.game-overview h1{font-size:27px;font-weight:600;margin:0 0 10px}.game-overview p{font-size:12px;color:var(--muted);margin-bottom:15px}.game-tags{display:flex;gap:8px;flex-wrap:wrap}.game-tags span{font-size:11px;color:#9a7545;background:var(--soft);padding:3px 8px;border-radius:4px}.game-overview small{display:block;font-size:11px;color:var(--muted);margin-top:14px}.game-detail~.lobby-section{margin-top:25px}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:25px 0;margin-top:45px;color:#a1998b;font-size:11px}.footer-brand{font-size:17px;font-weight:700;color:#8e806b}.footer-brand span{font-size:11px;font-weight:400;margin-left:15px;color:#a1998b}
dialog{width:460px;max-width:calc(100vw - 32px);max-height:85vh;overflow:auto;background:white;color:var(--text);border:1px solid var(--line);border-radius:14px;padding:28px;box-shadow:0 25px 100px #30281830}dialog::backdrop{background:#29231870;backdrop-filter:blur(3px)}label{display:block;font-size:12px;color:#7d7364;margin:17px 0 7px}input,select{width:100%;background:#fffdf8;color:var(--text);border:1px solid #ddd6c9;padding:11px;border-radius:7px}.icon-button{border:0;background:none;color:var(--muted);font-size:25px;padding:0 8px}dialog p{margin:18px 0 22px}
@media(min-width:1450px){.hero{min-height:335px}.hero-copy{padding:40px 44px}.hero h1{font-size:42px}}
@media(max-width:1100px){.topbar-inner{gap:18px;padding-left:24px;padding-right:24px}.brand small{display:none}.layout{grid-template-columns:minmax(0,1fr) 260px;gap:20px}.maps{grid-template-columns:repeat(2,minmax(0,1fr))}main{padding-left:24px;padding-right:24px}.game-overview{gap:18px}.game-overview .map-cover{width:180px}.game-overview h1{font-size:23px}.room-right{flex-direction:column;gap:5px;align-items:flex-end}}
@media(max-width:760px){.topbar-inner{flex-wrap:wrap;gap:12px;padding:14px 18px}.brand{font-size:20px}nav{margin-left:auto}nav a{padding:7px 10px;font-size:12px}.search-box{order:3;max-width:none;flex:1;margin:0}.account-id{display:none}#account{margin-left:auto}.admin-menu{order:4}main{padding:18px 16px 0}.hero{min-height:275px;background-position:75% 45%;background-size:auto 130%;margin-bottom:24px}.hero-copy{padding:25px 23px;max-width:85%}.hero h1{font-size:29px}.hero:before{background:linear-gradient(90deg,#15231ffa,#142522a6 65%,#14252211)}.hero-copy>p:not(.eyebrow){max-width:280px;font-size:12px}.hero-badge{margin-bottom:20px}.hero-index{display:none}.layout{display:flex;flex-direction:column;gap:25px}.main-column,.sidebar{width:100%}.sidebar{position:static}.maps{gap:12px}.map-info{padding:13px}.map-heading h3{font-size:14px}.map-heading{align-items:start}.enter-link{font-size:11px}.map-meta{font-size:9px}.cover-title{font-size:28px}.section-head h2{font-size:19px}.section-kicker{font-size:8px}.lobby-section{padding:18px 15px}.room-emblem{display:none}.game-overview{padding:16px;gap:15px;align-items:start}.game-overview .map-cover{width:120px;aspect-ratio:1}.game-overview h1{font-size:20px}.game-overview p{font-size:11px}.game-overview small{font-size:10px}.game-tags span{font-size:10px}.game-overview .cover-title{font-size:25px;left:14px}.quick-guide{padding:0 10px}.quick-guide ol{display:flex;gap:18px;flex-wrap:wrap}.quick-guide small{max-width:110px}footer{flex-direction:column;gap:10px;margin-top:28px}.footer-brand span{margin-left:10px}.party-actions{display:grid;grid-template-columns:1fr 1fr}.panel-empty{padding:22px}.panel-empty .button{max-width:340px}.empty-symbol{width:45px;height:45px;font-size:24px;margin-bottom:14px}}
@media(prefers-reduced-motion:no-preference){a,button,.map-card{transition:background .18s,border-color .18s,box-shadow .18s,transform .18s}.map-card:hover{transform:translateY(-3px);box-shadow:0 8px 22px #4a39240d;border-color:#d8c9b5}}

.hero.island{background:radial-gradient(ellipse at 75% 30%,#cfce8c 0 7%,transparent 8%),linear-gradient(135deg,#284e43,#74967b)}.hero.mystic{background:radial-gradient(ellipse at 75% 55%,#b7a891,#555d71 50%,#2b3944)}
@media(max-width:760px){.lobby-section .section-head h2{font-size:17px}.quick-guide li{flex:1 1 140px}.quick-guide small{max-width:none}}

.connection .steam-join{width:100%;margin-bottom:6px}.connection .steam-join+p{margin:6px 0 14px}
