@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700;900&family=Noto+Sans+SC:wght@400;500;600;700&display=swap');
:root{--bg:#0e1916;--panel:#17251f;--panel2:#1c2d25;--line:#b6a47a2a;--gold:#d2b480;--goldlight:#ebd4a9;--text:#e7e5d9;--muted:#8f9d91;--green:#7da58a;--red:#ba6254;--serif:'Noto Serif SC','Songti SC','SimSun',serif;--sans:'Noto Sans SC','Microsoft YaHei',sans-serif;--radius:8px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.65 var(--sans);min-width:360px}body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:60;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.5' filter='url(%23n)'/%3E%3C/svg%3E")}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:0;background:none}button:disabled{cursor:not-allowed;opacity:.38}button,a,input,select,summary{outline-offset:5px}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--gold)}a{color:var(--gold)}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:var(--serif);font-weight:600}h1{font-size:44px;letter-spacing:.15em}h2{font-size:25px;letter-spacing:.08em}h3{font-size:20px;letter-spacing:.04em}small{font-size:11px}.muted{color:var(--muted)}.gold{color:var(--gold)}.positive{color:#9fc7a1}.negative{color:#d28a7b}.icon{width:20px;height:20px;display:inline-block;vertical-align:middle;flex-shrink:0}.eyebrow{font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);font-weight:600}.flex{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.serif{font-family:var(--serif)}.btn{padding:12px 22px;display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1px solid var(--line);border-radius:4px;transition:background .2s,transform .2s;color:var(--text);font-size:13px;line-height:1.5}.btn:hover:not(:disabled){background:#d2b48017;border-color:#d2b48080;transform:translateY(-1px)}.btn.primary{color:#1c251d;background:var(--gold);border-color:var(--gold);font-weight:700;box-shadow:0 3px 14px #0002}.btn.primary:hover:not(:disabled){background:var(--goldlight)}.btn.danger{border-color:#a6574c66;color:#dc9181}.btn.small{padding:8px 14px;font-size:12px}.btn.wide{width:100%}.icon-btn{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--muted)}.icon-btn:hover{color:var(--gold);background:#cbb98f12}.tag{font-size:10px;letter-spacing:.08em;border:1px solid var(--line);padding:3px 8px;border-radius:2px;color:var(--gold);white-space:nowrap}.tag.green{color:#a4c6a5;border-color:#a4c6a540;background:#6ca17b12}.tag.red{color:#d58a76;border-color:#d58a7650}.pill{border-radius:20px}.divider{height:1px;background:var(--line);margin:22px 0}.seal{font-family:var(--serif);font-size:25px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--gold);color:var(--gold);position:relative;line-height:1}.seal::after{content:'';position:absolute;inset:3px;border:1px solid #d2b48055}.brand{display:flex;gap:13px;align-items:center}.brand h2{font-size:21px;letter-spacing:.18em}.brand small{font-size:8px;letter-spacing:.28em;color:var(--muted)}
.sidebar{position:fixed;inset:0 auto 0 0;width:210px;background:#101d18;border-right:1px solid var(--line);z-index:20;padding:32px 22px;display:flex;flex-direction:column}.sidebar .brand{margin:0 0 54px}.nav-caption{font-size:9px;color:#758879;letter-spacing:.25em;margin:0 14px 12px}.nav{display:flex;flex-direction:column;gap:8px}.nav button{display:flex;align-items:center;gap:13px;padding:13px 15px;text-align:left;color:#91a191;font-size:13px;transition:.2s;position:relative;border-radius:3px}.nav button:hover{color:var(--text);background:#ffffff04}.nav button.active{background:#d2b4800f;color:var(--gold)}.nav button.active::before{content:'';position:absolute;left:0;top:12px;bottom:12px;width:2px;background:var(--gold)}.nav button.active .icon{stroke-width:1.8}.sidebar-footer{margin-top:auto}.weather{padding:17px 10px 25px;color:var(--muted);font-size:11px;display:flex;align-items:center;gap:12px}.weather-symbol{font-size:25px;color:#a9b4a3}.player-mini{border-top:1px solid var(--line);padding-top:20px;display:flex;align-items:center;gap:10px}.initial-avatar{background:linear-gradient(145deg,#405441,#202c22);border:1px solid #a79b6e55;width:40px;height:40px;display:flex;align-items:center;justify-content:center;font:20px var(--serif);color:var(--gold);border-radius:50%;flex-shrink:0}.player-mini b{font-family:var(--serif);font-weight:500}.player-mini small{display:block;color:var(--muted);font-size:10px}.player-mini .icon-btn{margin-left:auto}.shell{margin-left:210px}.topbar{height:76px;padding:0 42px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:#101b17cc}.breadcrumb{display:flex;gap:12px;font-size:12px;color:#788a7b;align-items:center}.breadcrumb .current{color:#cbcdbf}.top-actions{display:flex;align-items:center;gap:22px}.funds{display:flex;align-items:center;gap:9px;font-size:15px;color:var(--gold);font-variant-numeric:tabular-nums}.funds small{color:var(--muted);font-size:10px;margin-right:2px}.top-actions .line{width:1px;height:19px;background:var(--line)}.main{max-width:1550px;padding:32px 42px 48px;margin:auto}.page-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:25px}.page-title h1{font-size:28px;letter-spacing:.08em}.page-title p{color:var(--muted);margin-top:5px;font-size:12px}.page-title .serial{font-size:11px;color:#718275;letter-spacing:.16em}.hero-layout{display:grid;grid-template-columns:minmax(0,1fr) 262px;gap:20px}.hero{min-height:392px;border:1px solid #c4ae7540;border-radius:5px;position:relative;overflow:hidden;background:#162a25 url('./assets/city.png') center/cover}.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0d1b19ef 0%,#10221ed4 28%,#0a191844 70%),linear-gradient(0deg,#0b1718bb,transparent 55%)}.hero::after{content:'';position:absolute;inset:12px;border:1px solid #ceb57e22;pointer-events:none}.hero-copy{position:relative;z-index:1;padding:36px 38px;max-width:520px}.hero-meta{display:flex;align-items:center;gap:10px;margin-bottom:26px}.hero h2{font-size:41px;line-height:1.45;letter-spacing:.1em;font-weight:600;color:#f0ead7}.hero h2 span{display:block}.hero-desc{color:#b7bfb1;max-width:325px;font-size:12px;line-height:1.9;margin:17px 0 25px}.hero-footer{display:flex;gap:18px;align-items:center}.hero-footer small{color:#abb1a0;font-size:10px;line-height:1.8}.hero-location{position:absolute;bottom:29px;right:29px;font-family:var(--serif);writing-mode:vertical-rl;letter-spacing:.35em;color:#dbcaa4aa;font-size:12px}.chapter-count{position:absolute;right:28px;top:25px;font-family:Georgia,serif;color:#cfb68080;font-size:14px;letter-spacing:.15em}.hero-corner{position:absolute;bottom:19px;right:24px;font-size:100px;color:#d4be9022;line-height:1;font-family:var(--serif)}
.invitation{background:linear-gradient(150deg,#29362866,#17261f);border:1px solid var(--line);padding:24px 22px;position:relative;overflow:hidden;border-radius:5px;display:flex;flex-direction:column;align-items:center;text-align:center}.invitation::before{content:'';position:absolute;inset:10px;border:1px solid #b3a37312;pointer-events:none}.invitation .eyebrow{align-self:flex-start;font-size:9px}.portrait{background-image:url('./assets/portraits.png');background-size:300% 200%;background-position:var(--px) var(--py);border-radius:50%;border:1px solid #cbb18480;width:48px;height:48px;flex-shrink:0;box-shadow:0 3px 12px #0005}.portrait.large{width:87px;height:87px;margin:20px 0 12px;box-shadow:0 0 0 5px #cfb4770a,0 0 0 6px #cfb47720}.invitation h3{font-size:22px;margin-bottom:3px}.invitation .role{font-size:10px;color:var(--muted)}.invitation blockquote{font-family:var(--serif);font-size:13px;line-height:1.9;color:#c7c9b8;margin:18px 0 20px}.invitation .btn{margin-top:auto;width:100%;font-size:11px}.summary-strip{display:grid;grid-template-columns:repeat(4,1fr);margin-top:20px;border:1px solid var(--line);border-radius:5px;background:#15241c}.summary-stat{display:flex;align-items:center;gap:15px;padding:19px 23px;position:relative}.summary-stat+.summary-stat::before{content:'';position:absolute;left:0;height:32px;width:1px;background:var(--line)}.summary-stat>.icon{width:22px;height:22px;color:var(--gold);opacity:.8}.summary-stat .stat-num{font-family:Georgia,var(--serif);font-size:21px;color:#e2d5b9;line-height:1.4}.summary-stat small{font-size:10px;color:var(--muted)}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:34px 0 18px}.section-heading h2{font-size:19px}.section-heading small{color:var(--muted);font-size:10px}.chapter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.chapter-card{padding:0;text-align:left;border:1px solid var(--line);border-radius:5px;overflow:hidden;background:#16231d;position:relative;transition:.25s}.chapter-card:hover{transform:translateY(-4px);border-color:#bfa57480;box-shadow:0 12px 25px #0003}.chapter-card.locked{opacity:.56}.chapter-card.locked:hover{opacity:.85}.chapter-cover{height:109px;background:linear-gradient(0deg,#102018dd,#10201822),url('./assets/city.png') center/cover;display:flex;align-items:end;padding:15px;position:relative}.chapter-card:nth-child(3n+2) .chapter-cover{background-position:75% 30%}.chapter-card:nth-child(3n) .chapter-cover{background-position:10% 65%}.chapter-card:nth-child(n+5) .chapter-cover{filter:hue-rotate(-12deg)}.chapter-cover .chapter-no{font-family:Georgia,serif;font-size:31px;color:#d7c5a2;line-height:1}.chapter-cover .tag{position:absolute;top:13px;right:13px;background:#0f1e19aa;backdrop-filter:blur(4px)}.chapter-cover .icon{position:absolute;bottom:16px;right:15px;color:var(--gold);width:16px;height:16px}.chapter-info{padding:16px}.chapter-info h3{font-size:16px;margin:3px 0 5px}.chapter-info small{font-size:9px;color:var(--gold);letter-spacing:.1em}.chapter-info p{font-size:10px;color:var(--muted);line-height:1.8}.chapter-info .chapter-detail{border-top:1px solid var(--line);margin-top:13px;padding-top:11px;display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.current-chapter{border-color:#c4aa7390}.current-chapter .chapter-info h3{color:var(--goldlight)}.journey-progress{display:flex;align-items:center;gap:10px}.progress-track{width:100px;height:3px;background:#ffffff10;border-radius:2px}.progress-track span{display:block;height:100%;background:var(--gold)}.page-footer{display:flex;justify-content:space-between;color:#617468;font-size:9px;letter-spacing:.08em;margin-top:35px;padding-top:19px;border-top:1px solid #b6a47a16}.resume-banner{padding:14px 20px;margin-bottom:20px;border:1px solid #b59d6050;background:#c2ab7610;display:flex;align-items:center;gap:15px;border-radius:4px}.resume-banner p{flex:1;font-size:12px}.resume-banner .icon{color:var(--gold)}
.practice-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.practice-card{background:radial-gradient(ellipse at 50% 0%,#38544388,transparent 65%),#16251e;border:1px solid var(--line);border-radius:7px;overflow:hidden;padding:32px;min-height:390px}.practice-art{height:142px;display:flex;align-items:center;justify-content:center;gap:8px;margin:10px 0 25px}.practice-art .tile{transform:rotate(-10deg);width:67px;height:92px}.practice-art .tile:nth-child(2){transform:translateY(-8px);z-index:1}.practice-art .tile:nth-child(3){transform:rotate(10deg)}.practice-art .playing-card{width:77px;height:110px;margin:0 -6px;transform:rotate(-13deg)}.practice-art .playing-card:nth-child(2){transform:translateY(-8px);z-index:1}.practice-art .playing-card:nth-child(3){transform:rotate(13deg)}.practice-card h2{font-size:26px}.practice-card p{color:var(--muted);font-size:12px;margin:10px 0 20px;line-height:1.9}.practice-options{display:flex;gap:15px;align-items:center;margin:24px 0}.field-label{font-size:11px;color:var(--muted);display:block;margin-bottom:8px}select{border:1px solid var(--line);background:#14221b;color:var(--text);padding:9px 12px;border-radius:4px;max-width:100%}option{background:#14221b}.note-panel{border-left:2px solid var(--gold);background:#c6b28109;padding:20px 25px;margin-top:25px}.note-panel p{font-size:12px;color:var(--muted);line-height:1.9}.note-panel h3{font-size:16px;margin-bottom:8px}.rule-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:22px}.rule-tabs button{padding:12px 23px;color:var(--muted);font-size:13px}.rule-tabs button.active{color:var(--gold);border-bottom:2px solid var(--gold)}.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.rule-block{background:#14231c;padding:22px;border:1px solid var(--line);border-radius:5px}.rule-block h3{font-size:16px;color:var(--goldlight);margin-bottom:10px;display:flex;gap:11px;align-items:center}.rule-block h3 span{font-family:Georgia;color:#8c987b;font-size:13px}.rule-block p{font-size:12px;color:#a8b2a3;line-height:1.95;white-space:pre-line}.rule-examples{display:flex;gap:5px;flex-wrap:wrap;padding-top:16px}.roster-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.roster-card{background:#15251e;border:1px solid var(--line);border-radius:6px;padding:25px;position:relative;overflow:hidden}.roster-card .portrait{width:100%;height:auto;aspect-ratio:1;border-radius:3px;border:0;margin-bottom:20px}.roster-card h3{font-size:23px}.roster-card .role{color:var(--gold);font-size:11px;margin:6px 0 13px}.roster-card p{font-size:12px;line-height:1.9;color:var(--muted)}.roster-card blockquote{font-size:13px;font-family:var(--serif);margin:17px 0 0;padding-top:15px;border-top:1px solid var(--line);color:#c8c9b8}.achievement-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.achievement{border:1px solid var(--line);padding:20px;display:flex;align-items:center;gap:15px;border-radius:4px;background:#14241b;opacity:.46}.achievement.unlocked{opacity:1;border-color:#d2b48055;background:#d2b48009}.medallion{width:43px;height:43px;border-radius:50%;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;color:var(--gold);flex-shrink:0}.achievement h3{font-size:15px}.achievement p{font-size:10px;color:var(--muted);margin-top:5px}.history-table{width:100%;border-collapse:collapse;font-size:12px}.history-table th{color:var(--muted);text-align:left;font-weight:400;padding:14px 16px;background:#1b2b21}.history-table td{padding:15px 16px;border-bottom:1px solid var(--line)}.empty-state{text-align:center;border:1px dashed var(--line);padding:45px;color:var(--muted);border-radius:5px}.empty-state .icon{width:35px;height:35px;color:var(--gold);margin-bottom:12px}.empty-state p{font-size:12px;margin:8px 0 18px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.setting-section{padding:25px;background:var(--panel);border:1px solid var(--line);border-radius:6px}.setting-section h3{font-size:19px;margin-bottom:20px}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);gap:20px}.setting-row:last-child{border:0}.setting-row strong{font-size:13px;font-weight:500;display:block}.setting-row small{display:block;color:var(--muted);margin-top:4px;font-size:10px}.toggle{width:42px;height:23px;border:1px solid #95ad8444;background:#314035;border-radius:15px;padding:3px;transition:.2s}.toggle i{width:15px;height:15px;display:block;border-radius:50%;background:#8d9d8c;transition:.2s}.toggle.on{background:#c5ac71}.toggle.on i{transform:translateX(18px);background:#17281c}.setting-section .btn{margin:8px 8px 0 0}.save-status{font-size:11px;color:var(--green);margin-top:16px}.credits{font-size:11px;color:var(--muted);line-height:1.9}.credits a{color:#a9b795}
.modal-backdrop{position:fixed;inset:0;background:#030c0ae3;backdrop-filter:blur(9px);z-index:80;display:flex;align-items:center;justify-content:center;padding:25px;animation:fade-in .2s}.modal{width:600px;max-width:100%;max-height:90vh;overflow:auto;background:#182820;border:1px solid #d2b48060;border-radius:7px;padding:32px;box-shadow:0 30px 120px #000a;position:relative}.modal>.close-modal{position:absolute;right:17px;top:17px;z-index:3}.modal h2{font-size:25px;margin:10px 0 20px}.modal p{color:#aeb8a8;font-size:13px;line-height:1.9}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:25px}.modal .rule-block{padding:18px}.modal .rules-grid{grid-template-columns:1fr}.modal.wide-modal{width:900px}.modal-heading{padding-right:32px}.story-modal{width:1000px;padding:0;overflow:hidden;background:#10221d}.story-stage{height:325px;position:relative;background:linear-gradient(0deg,#14271f,transparent 75%),url('./assets/city.png') center/cover;display:flex;align-items:flex-end;padding:30px 40px}.story-stage::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#10221caa,transparent)}.story-stage-copy{position:relative;z-index:1}.story-stage h2{font-size:35px;margin:10px 0}.story-stage p{font-family:var(--serif);color:#c5c6ae;font-size:12px;max-width:550px}.story-dialogue{padding:23px 40px 32px;min-height:220px;display:flex;gap:22px}.story-dialogue .portrait{width:65px;height:65px;margin-top:5px;border-radius:5px}.story-dialogue .initial-avatar{width:65px;height:65px;border-radius:5px;font-size:30px;margin-top:5px}.dialogue-content{flex:1;min-width:0}.speaker-name{color:var(--gold);font-family:var(--serif);font-size:17px;letter-spacing:.1em;margin-bottom:11px}.dialogue-text{font-family:var(--serif);font-size:17px!important;color:#dce0cf!important;line-height:2!important;min-height:68px;animation:fade-in .3s}.dialogue-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:23px}.dialogue-counter{display:flex;gap:5px}.dialogue-counter i{width:13px;height:2px;background:#c7b47733}.dialogue-counter i.active{background:var(--gold)}.story-stage .story-stamp{position:absolute;right:50px;bottom:0;font-size:180px;font-family:var(--serif);color:#d4bf9430;line-height:1.1}.skip-story{position:absolute;right:60px;top:25px;z-index:3;font-size:11px;color:#c4c9b8;border-bottom:1px solid #c4c9b850}.scene-target{margin-top:14px;font-size:11px;color:var(--gold);display:flex;align-items:center;gap:8px}.result-mark{text-align:center;margin:10px auto 20px}.result-mark .seal{width:68px;height:68px;font-size:40px;margin:0 auto 16px}.result-mark h2{font-size:30px;margin:0 0 6px}.result-mark .eyebrow{margin-bottom:8px}.result-summary{text-align:center;font-size:12px;color:var(--muted)}.result-ledger{margin:24px 0;border:1px solid var(--line);border-radius:4px}.ledger-row{display:flex;justify-content:space-between;padding:12px 17px;border-bottom:1px solid var(--line);font-size:12px}.ledger-row:last-child{border:0}.ledger-row.total{background:#c4b47e0d;color:var(--gold);font-size:15px}.result-players{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:15px}.result-player{padding:13px 5px;text-align:center;background:#10221955;border:1px solid var(--line);border-radius:4px;font-size:11px}.result-player strong{display:block;font-size:18px;color:var(--gold);margin-top:5px}.result-player.winner{border-color:#cbb78470}.log-details{margin-top:15px;color:var(--muted);font-size:11px}.log-details summary{cursor:pointer;color:var(--gold);padding:10px 0}.log-details .final-log{max-height:170px;overflow:auto;font-size:11px;line-height:1.9;padding:12px;background:#0b1815}.toast-active{transform:translate(-50%,0)!important;opacity:1!important}#toast{position:fixed;bottom:27px;left:50%;transform:translate(-50%,20px);background:#e5d1a9;color:#1c2b21;border-radius:5px;box-shadow:0 6px 30px #0006;padding:12px 23px;max-width:min(560px,92vw);text-align:center;z-index:200;pointer-events:none;opacity:0;transition:.25s;font-size:12px}
.game-screen{min-height:100vh;background:radial-gradient(ellipse at 50% 45%,#2b453688,#071711ee),url('./assets/city.png') center/cover fixed;display:flex;flex-direction:column}.game-topbar{height:68px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #c6b28330;padding:0 27px;background:#0c1c18db;gap:20px}.game-title{display:flex;align-items:center;gap:20px}.game-title h2{font-size:17px;letter-spacing:.12em}.game-title small{font-size:9px;color:#9ba892;letter-spacing:.08em}.game-title .seal{width:31px;height:31px;font-size:20px}.game-tools{display:flex;align-items:center;gap:9px}.game-tools .btn{padding:7px 11px;font-size:10px}.game-body{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 222px;max-width:1550px;width:100%;margin:0 auto;padding:18px 25px 15px;gap:19px}.table-column{min-width:0;display:flex;flex-direction:column}.table-info{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#a7b19d;padding:0 3px 10px;gap:15px}.table-info .table-tags{display:flex;gap:7px}.table-info .tag{font-size:9px}.game-table{min-height:450px;flex:1;position:relative;border-radius:36px;border:10px solid #423e2c;box-shadow:inset 0 0 0 2px #b5a17050,inset 0 0 80px #001a0eee,0 0 0 1px #7c75573b,0 9px 0 #20281e,0 15px 40px #0006;background:radial-gradient(ellipse,#31594288,#103b2b99 60%,#0e2c20cc),repeating-linear-gradient(45deg,#53725408 0px,#53725408 1px,transparent 1px,transparent 4px)}.game-table::before{content:'';position:absolute;inset:13px;border:1px solid #bda87525;border-radius:18px;pointer-events:none}.table-center{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;z-index:1;width:180px}.table-center .seal{margin:auto;width:50px;height:50px;font-size:29px;opacity:.32}.table-center .brand-text{font-family:var(--serif);font-size:20px;color:#bbbf8d5c;letter-spacing:.3em;margin-top:8px}.center-stat{color:#bcd0b7aa;font-size:10px;margin-top:6px}.center-turn{color:#e6d2a1;font-size:12px;margin-top:8px;letter-spacing:.1em}.center-sub{font-size:9px;color:#9cb79d;margin-top:5px}.table-seat{position:absolute;display:flex;align-items:center;gap:10px;z-index:3;min-width:100px}.seat-top{top:20px;left:50%;transform:translateX(-50%)}.seat-left{top:37%;left:23px;flex-direction:column;align-items:flex-start;max-width:115px}.seat-right{top:37%;right:23px;flex-direction:column;align-items:flex-end;text-align:right;max-width:115px}.seat-self{bottom:15px;left:20px}.seat-avatar{position:relative}.seat-avatar .portrait{width:50px;height:50px;border-color:#95b69a50;box-shadow:0 0 0 4px #001b1c35}.table-seat.active .portrait,.table-seat.active .initial-avatar{box-shadow:0 0 0 3px #d2b48077,0 0 25px #e0c28835;border-color:var(--gold)}.seat-won .portrait{filter:sepia(.35);border-color:var(--gold)}.seat-status{position:absolute;bottom:-5px;right:-3px;background:#c4ad75;color:#1a281d;border:1px solid #edd9a7;font-size:9px;padding:0 5px;border-radius:2px;line-height:1.6}.seat-name{font-family:var(--serif);font-size:15px;white-space:nowrap}.seat-meta{font-size:9px;color:#a8b99b;margin-top:3px;white-space:nowrap}.seat-meta .tag{font-size:8px;padding:1px 4px}.seat-score{font-size:11px;color:var(--gold);margin-top:5px;font-variant-numeric:tabular-nums}.opponent-backs{display:flex;margin-top:5px;max-width:120px;overflow:hidden;padding-right:5px}.tile-back{display:inline-block;width:9px;height:20px;margin-right:1px;border-radius:2px;background:linear-gradient(100deg,#526653,#284c38);border:1px solid #71837077;border-bottom:3px solid #153725}.card-back{display:inline-block;width:18px;height:29px;margin-right:-11px;border:1px solid #caba8b;background:repeating-linear-gradient(45deg,#8a503c 0,#8a503c 2px,#643d30 2px,#643d30 4px);border-radius:2px;box-shadow:0 2px 3px #0005}.opponent-backs .card-back:last-child{margin-right:0}.seat-bubble{position:absolute;white-space:nowrap;max-width:160px;background:#e5d8b8;color:#2b3a27;border-radius:4px;padding:4px 9px;font-size:10px;left:60px;top:-8px;box-shadow:0 3px 9px #0003;animation:fade-in .3s}.seat-right .seat-bubble{right:60px;left:auto}.seat-top .seat-bubble{left:100%;top:15px}.river{position:absolute;display:grid;grid-template-columns:repeat(6,25px);gap:3px;max-height:127px;overflow:auto;z-index:2;padding:3px}.river-top{left:50%;top:101px;transform:translateX(-50%)}.river-bottom{left:50%;bottom:25px;transform:translateX(-50%)}.river-left{left:155px;top:44%;transform:translateY(-30%);grid-template-columns:repeat(3,25px);max-height:207px}.river-right{right:155px;top:44%;transform:translateY(-30%);grid-template-columns:repeat(3,25px);max-height:207px}.river .tile{width:25px;height:34px;border-radius:2px;box-shadow:0 2px 0 #82947c,0 3px 3px #0003;border-bottom-width:2px;padding:2px;opacity:.94}.river .tile .wan-num{font-size:12px;line-height:1.1}.river .tile .wan-char{font-size:11px;line-height:1}.latest-discard{outline:2px solid #e9c770;outline-offset:1px}.own-melds{position:absolute;bottom:13px;right:18px;display:flex;gap:9px;z-index:3}.meld-group{display:flex;gap:1px;position:relative}.meld-label{font-size:8px;color:#bbc5a9;position:absolute;bottom:-13px;width:100%;text-align:center}.meld-group .tile{width:22px;height:31px;padding:2px;box-shadow:0 2px 0 #77947c}.meld-group .wan-num,.meld-group .wan-char{font-size:10px}.other-melds{display:flex;gap:5px;margin-top:7px;flex-wrap:wrap}.other-melds .tile{width:15px;height:21px;padding:1px;border-width:1px}.other-melds .wan-num,.other-melds .wan-char{font-size:7px}.table-center.claim-center{z-index:5;top:48%}.claim-tile{margin:8px auto;display:flex;justify-content:center}.claim-tile .tile{width:42px;height:60px}.claim-caption{font-size:10px;color:#ddd5b2;background:#112f25bb;padding:4px;border-radius:3px}.hand-zone{margin-top:20px;position:relative;min-height:179px}.hand-toolbar{display:flex;justify-content:space-between;align-items:center;min-height:28px;margin-bottom:9px}.hand-state{font-size:12px;color:#d5d9c3;display:flex;gap:8px;align-items:center}.hand-state .turn-dot{width:6px;height:6px;border-radius:50%;background:#d8bb7a;box-shadow:0 0 8px #d8bb7a}.hand-toolbar .hand-hints{font-size:9px;color:#839b83}.hand{display:flex;justify-content:center;align-items:flex-end;gap:4px;padding:19px 10px 10px;min-height:106px;user-select:none;touch-action:manipulation}.tile{width:clamp(34px,3.6vw,52px);height:clamp(49px,5.2vw,74px);background:linear-gradient(110deg,#fffcdf,#e7e4c8);color:#22372c;border:1px solid #dce0bb;border-bottom:5px solid #8da188;border-radius:5px;box-shadow:0 2px 0 #224832,0 4px 5px #0007;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;position:relative;flex-shrink:0;vertical-align:middle;line-height:1.2;padding:5px;transition:transform .15s,box-shadow .15s;overflow:hidden}.tile svg{height:100%;width:100%;pointer-events:none}.wan-num{font-family:var(--serif);color:#203d32;font-size:clamp(18px,2vw,28px);line-height:1.1;font-weight:700}.wan-char{font-family:var(--serif);color:#a63129;font-size:clamp(17px,1.9vw,26px);font-weight:700;line-height:1.2}.hand .tile:hover:not(:disabled){transform:translateY(-8px);box-shadow:0 3px 0 #55704b,0 5px 15px #0007}.hand .tile.selected{transform:translateY(-16px);outline:2px solid #e2be70;outline-offset:1px;box-shadow:0 3px 0 #8f8653,0 9px 18px #0008}.hand .tile.drawn{margin-left:13px}.tile.mini{width:30px;height:43px;padding:3px;border-bottom-width:3px}.tile.mini .wan-num{font-size:16px}.tile.mini .wan-char{font-size:14px}.missing-dot{position:absolute;right:2px;top:2px;width:5px;height:5px;background:#b74838;border-radius:50%}.hand .missing-tile{background:linear-gradient(110deg,#fae7d5,#e5cdb9)}.action-bar{display:flex;justify-content:center;align-items:center;gap:10px;min-height:55px;flex-wrap:wrap;margin-top:3px}.action-bar .btn{padding:10px 23px;min-width:83px}.action-bar .btn.hu{background:#b85d45;color:#fff4d7;border-color:#d59363}.action-bar .btn.secondary{border-color:#c2b17b60;background:#253d2d}.action-bar .action-label{font-size:10px;color:var(--muted);margin-right:8px}.hint-explanation{min-height:25px;text-align:center;color:#abbba0;font-size:10px;padding:5px 20px}.missing-choice{display:flex;gap:12px;justify-content:center;margin:15px 0}.missing-choice .btn{min-width:110px;flex-direction:column;gap:2px;padding:15px}.missing-choice b{font-family:var(--serif);font-size:25px}.missing-choice small{font-size:10px;color:#a9b89d}.game-sidebar{display:flex;flex-direction:column;gap:15px}.game-panel{background:#0e211acc;border:1px solid #b5aa6d30;border-radius:5px;padding:19px}.game-panel .eyebrow{font-size:9px;letter-spacing:.15em}.game-panel h3{font-size:16px;margin:10px 0}.game-panel p{font-size:11px;color:#a3b299;line-height:1.9}.game-panel .portrait{width:45px;height:45px;margin:15px 0 10px}.game-objective{border-top:1px solid var(--line);padding-top:13px;margin-top:15px;font-size:10px;color:#c9be97}.game-log{flex:1;min-height:190px;max-height:380px;overflow:auto;padding-right:4px;margin-top:13px;scrollbar-width:thin;scrollbar-color:#a6a17233 transparent}.game-log p{font-size:10px;padding:7px 0;border-bottom:1px solid #aaa27213;color:#9cab94;line-height:1.6}.game-log p:last-child{color:#d9ceaa}.log-panel{flex:1;min-height:250px}.game-panel .keyboard-note{font-size:9px;color:#7f977f;line-height:1.9}.game-bottom{font-size:9px;color:#7b907b;text-align:center;padding:10px}.bottom-cards{display:flex;justify-content:center;gap:4px;position:absolute;left:50%;top:25px;transform:translateX(-50%);z-index:2}.bottom-cards .playing-card{width:31px;height:43px;border-radius:3px}.bottom-cards .card-corner{font-size:11px;left:3px;top:2px}.bottom-cards .card-corner small{font-size:10px}.bottom-cards .card-center{font-size:17px}.bottom-cards .invert{display:none}.bottom-cards .card-back{margin:0;width:28px;height:41px}.bottom-label{position:absolute;top:75px;left:50%;transform:translateX(-50%);font-size:9px;color:#a8bba2;white-space:nowrap}.landlord-table .seat-left,.landlord-table .seat-right{top:23%;max-width:120px}.landlord-table .table-center{top:44%;opacity:.7}.landlord-table .table-center .seal{width:50px;height:50px}.landlord-table .seat-self{bottom:21px}.trick-area{position:absolute;left:50%;top:63%;transform:translate(-50%,-50%);width:68%;text-align:center;z-index:2}.trick-cards{display:flex;justify-content:center;padding:12px 0}.trick-cards .playing-card{width:48px;height:69px;margin-right:-18px}.trick-cards .playing-card:last-child{margin:0}.trick-cards .card-corner{font-size:15px;left:4px;top:3px}.trick-cards .card-corner small{font-size:13px}.trick-cards .card-center{font-size:29px;margin-left:12px}.trick-cards .invert{display:none}.trick-caption{font-size:10px;color:#d8d5b7;margin-top:3px}.playing-card{width:65px;height:92px;position:relative;display:inline-flex;background:linear-gradient(120deg,#fffce7,#e3e5cf);border:1px solid #dce3c8;border-radius:5px;box-shadow:0 3px 0 #a3a78c,0 5px 7px #0005;color:#263a30;flex-shrink:0;transition:transform .16s;vertical-align:middle}.playing-card.red{color:#b23930}.card-corner{position:absolute;left:6px;top:4px;font:bold 20px/1 Georgia,serif;display:flex;align-items:center;flex-direction:column;min-width:16px}.card-corner small{display:block;font-size:18px;margin-top:3px;font-family:Georgia,var(--serif)}.card-corner.invert{right:5px;bottom:5px;top:auto;left:auto;transform:rotate(180deg)}.card-center{font:40px Georgia,serif;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:.9}.cards-hand{gap:0;padding-left:25px;padding-right:25px;min-height:125px}.cards-hand .playing-card{margin-right:clamp(-34px,-2.2vw,-19px);width:clamp(46px,5.1vw,72px);height:clamp(76px,7.5vw,106px)}.cards-hand .playing-card:last-child{margin:0}.cards-hand .playing-card:hover{transform:translateY(-10px)}.cards-hand .playing-card.selected{transform:translateY(-22px);border-color:#ffe2a1;box-shadow:0 3px 0 #b3a15f,0 0 0 2px #d6b96c}.cards-hand .card-corner{font-size:23px}.cards-hand .card-center{font-size:44px;left:61%}.cards-hand .invert{display:none}.bid-note{font-size:11px;color:#ccd2b8}.turn-wait{font-size:12px;color:#a2b298;display:flex;align-items:center;gap:12px}.turn-wait::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--gold);animation:pulse 1.3s infinite}.game-error{padding:12px;background:#6f302755;color:#edb49f;border-radius:4px;text-align:center;font-size:12px}.loading-screen{height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(ellipse at center,#284335,#0e1916)}.loading-screen .seal{width:70px;height:70px;font-size:45px;margin-bottom:20px}.loading-screen h1{font-size:33px}.loading-screen p{font-size:12px;color:var(--muted);margin-top:10px}.mobile-brand{display:none}.end-quote{font-family:var(--serif);font-size:18px;color:#d7c9a5;text-align:center;line-height:2;margin:25px 0}.help-key{font-family:monospace;font-size:9px;display:inline-block;border:1px solid #81987944;padding:1px 5px;border-radius:3px;color:#aabb9f}.collection-item{display:flex;gap:20px;padding:20px;border:1px solid var(--line);background:#14231c;margin-bottom:12px}.collection-item .collect-no{font:32px Georgia;color:var(--gold);line-height:1}.collection-item h3{font-size:17px}.collection-item p{color:var(--muted);font-size:12px;line-height:1.85;margin-top:8px}.journal-toggle{display:flex;gap:10px}.mobile-log-toggle{display:none}@keyframes fade-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{50%{opacity:.3}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(min-width:1550px){.game-table{min-height:510px}.river-left{left:180px}.river-right{right:180px}.hero{min-height:425px}.hero-copy{padding:41px 42px}.hero h2{font-size:46px}.chapter-cover{height:130px}}
@media(max-width:1200px){.sidebar{width:178px;padding:26px 15px}.sidebar .brand{gap:10px}.brand h2{font-size:18px}.brand small{font-size:7px}.shell{margin-left:178px}.main{padding:27px}.topbar{padding:0 27px}.hero-layout{grid-template-columns:minmax(0,1fr) 225px;gap:16px}.hero-copy{padding:30px}.hero h2{font-size:35px}.hero{min-height:375px}.invitation{padding:23px 17px}.summary-stat{padding:18px 17px;gap:12px}.chapter-grid{gap:12px}.game-body{grid-template-columns:minmax(0,1fr) 190px;padding:16px;gap:14px}.game-panel{padding:14px}.game-table{min-height:430px}.river-left{left:120px;grid-template-columns:repeat(3,22px)}.river-right{right:120px;grid-template-columns:repeat(3,22px)}.river .tile{width:22px;height:31px}.river{grid-template-columns:repeat(6,22px)}.river-left,.river-right{grid-template-columns:repeat(3,22px)}.seat-left{left:16px}.seat-right{right:16px}.seat-name{font-size:13px}.seat-avatar .portrait{width:44px;height:44px}.game-topbar{padding:0 20px}.hero-footer{gap:10px}.hero-footer .btn{padding:12px 17px}.hero-footer small{font-size:9px}.roster-grid{gap:15px}.roster-card{padding:19px}.cards-hand .playing-card{margin-right:-28px}}
@media(max-width:1000px){.sidebar{width:75px;padding:26px 12px}.sidebar .brand{justify-content:center}.sidebar .brand>div:last-child,.nav-caption,.nav button span,.weather,.player-mini>div:not(.initial-avatar),.player-mini>.icon-btn{display:none}.nav button{padding:15px;justify-content:center}.sidebar-footer .player-mini{justify-content:center}.shell{margin-left:75px}.hero-layout{grid-template-columns:minmax(0,1fr) 210px}.hero-copy{padding:28px}.hero h2{font-size:34px}.hero-footer small{display:none}.hero-desc{max-width:270px}.main{padding:26px}.chapter-grid{grid-template-columns:repeat(3,1fr)}.summary-stat{gap:9px;padding:15px 14px}.summary-stat .stat-num{font-size:19px}.summary-stat>.icon{width:19px}.game-body{display:block;max-width:980px}.game-sidebar{display:none}.game-table{min-height:420px}.game-topbar .game-title{gap:12px}.game-topbar .game-title h2{font-size:14px}.mobile-log-toggle{display:inline-flex}.tile{width:clamp(34px,5vw,52px);height:clamp(50px,7vw,74px)}.wan-num{font-size:clamp(20px,3vw,28px)}.wan-char{font-size:clamp(20px,2.8vw,26px)}.river-left{left:150px}.river-right{right:150px}.cards-hand .playing-card{width:65px;height:96px;margin-right:-27px}.game-bottom{padding:3px 0 12px}.hand-zone{margin-top:15px}.game-screen{min-height:100svh}.hand-toolbar{padding:0 10px}}
@media(max-width:760px){body{font-size:13px}.sidebar{position:fixed;inset:auto 0 0;width:100%;height:63px;padding:0 8px;background:#12221ef5;backdrop-filter:blur(16px);border-right:0;border-top:1px solid var(--line);display:block}.sidebar .brand,.sidebar-footer{display:none}.nav{height:100%;flex-direction:row;justify-content:space-around;gap:0}.nav button{flex-direction:column;gap:3px;padding:9px 7px;font-size:9px;flex:1;border-radius:0}.nav button span{display:block}.nav button .icon{width:19px;height:19px}.nav button.active::before{top:0;left:15px;right:15px;width:auto;height:2px}.nav button[data-nav=settings],.nav button[data-nav=roster]{display:none}.shell{margin:0;padding-bottom:63px}.topbar{height:63px;padding:0 20px}.breadcrumb{display:none}.mobile-brand{display:block;font-family:var(--serif);font-size:19px;letter-spacing:.14em;color:var(--goldlight)}.top-actions{gap:11px}.top-actions .line{display:none}.funds{font-size:13px;gap:6px}.funds small{display:none}.top-actions .icon-btn{width:29px}.topbar .icon{width:18px}.main{padding:23px 20px}.page-title{margin-bottom:18px;align-items:center}.page-title h1{font-size:24px}.page-title p{font-size:10px}.page-title .serial{display:none}.hero-layout{display:block}.hero{min-height:360px}.hero-copy{padding:30px 25px}.hero h2{font-size:35px;max-width:260px}.hero-meta{margin-bottom:19px}.hero-desc{max-width:260px;font-size:11px;line-height:1.9}.hero-location{right:22px;bottom:25px}.hero-footer small{display:block;font-size:9px;max-width:80px}.invitation{display:none}.chapter-count{font-size:12px;right:23px}.summary-strip{grid-template-columns:repeat(2,1fr);margin-top:16px}.summary-stat{padding:15px 18px}.summary-stat:nth-child(3),.summary-stat:nth-child(4){border-top:1px solid var(--line)}.summary-stat:nth-child(3)::before{display:none}.summary-stat .stat-num{font-size:20px}.summary-stat small{font-size:9px}.chapter-grid{grid-template-columns:1fr 1fr;gap:12px}.chapter-cover{height:100px}.chapter-info{padding:13px}.chapter-info h3{font-size:15px}.chapter-info p{font-size:10px}.chapter-info .chapter-detail{font-size:9px}.section-heading{margin-top:27px}.section-heading h2{font-size:18px}.journey-progress .progress-track{width:55px}.page-footer{font-size:8px;gap:18px}.page-footer span:last-child{display:none}.practice-grid{grid-template-columns:1fr}.practice-card{padding:24px;min-height:350px}.practice-art{height:130px}.practice-card h2{font-size:24px}.rules-grid{grid-template-columns:1fr}.roster-grid{grid-template-columns:1fr 1fr;gap:12px}.roster-card{padding:14px}.roster-card h3{font-size:21px}.roster-card p{font-size:11px}.roster-card blockquote{font-size:11px}.achievement-grid{grid-template-columns:1fr 1fr}.achievement{padding:14px;gap:10px}.achievement h3{font-size:13px}.achievement p{font-size:9px}.medallion{width:32px;height:32px}.medallion .icon{width:17px}.settings-grid{grid-template-columns:1fr}.history-table th,.history-table td{padding:12px 7px;font-size:10px}.history-table .hide-mobile{display:none}.modal-backdrop{padding:15px}.modal{padding:25px;max-height:92svh}.modal.story-modal{padding:0}.story-stage{height:245px;padding:25px}.story-stage h2{font-size:29px}.story-stage p{font-size:11px}.story-dialogue{padding:20px 23px 25px;gap:14px;min-height:260px}.story-dialogue .portrait,.story-dialogue .initial-avatar{width:43px;height:43px;font-size:25px}.dialogue-text{font-size:15px!important;min-height:100px}.speaker-name{font-size:16px}.dialogue-bottom{margin-top:20px;gap:10px}.dialogue-counter i{width:9px}.dialogue-bottom .btn{font-size:11px;padding:10px 15px}.story-stage .story-stamp{font-size:130px;right:20px}.skip-story{right:52px;top:23px;font-size:10px}.result-players{gap:7px}.result-player{font-size:10px}.result-player strong{font-size:15px}.game-topbar{height:59px;padding:0 12px;gap:7px}.game-topbar .seal{display:none}.game-title{gap:8px!important}.game-title h2{font-size:12px!important;letter-spacing:.05em;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-title small{font-size:8px}.game-tools{gap:1px}.game-tools .btn{font-size:9px;padding:6px 8px}.game-tools .icon-btn{width:30px;height:30px}.game-tools .icon{width:16px}.game-topbar .back-label{display:none}.game-body{padding:13px 9px 7px}.table-info{font-size:9px;padding:0 7px 9px;gap:6px}.table-info .tag{font-size:8px;padding:2px 4px}.table-info .table-tags{gap:4px}.game-table{border-width:6px;border-radius:26px;min-height:416px}.game-table::before{inset:8px;border-radius:17px}.seat-top{top:17px}.seat-left{top:30%;left:13px;max-width:84px}.seat-right{top:30%;right:13px;max-width:84px}.seat-avatar .portrait{width:36px;height:36px}.seat-name{font-size:12px}.seat-meta{font-size:8px}.seat-score{font-size:9px}.seat-meta .tag{font-size:7px}.table-seat{gap:5px;min-width:60px}.table-center{width:135px;top:49%}.table-center .seal{width:33px;height:33px;font-size:22px}.table-center .brand-text{font-size:15px}.center-stat{font-size:8px}.center-turn{font-size:10px}.river{grid-template-columns:repeat(6,20px);gap:2px;padding:2px;max-height:99px}.river .tile{width:20px;height:27px;padding:1px}.river .tile .wan-num{font-size:11px}.river .tile .wan-char{font-size:10px}.river-top{top:98px}.river-bottom{bottom:60px}.river-left{left:14px;top:58%;grid-template-columns:repeat(3,20px);max-height:141px}.river-right{right:14px;top:58%;grid-template-columns:repeat(3,20px);max-height:141px}.tile-back{width:5px;height:14px;margin-right:0;border-bottom-width:2px}.opponent-backs{max-width:80px}.table-center.claim-center{top:53%;width:115px}.claim-tile .tile{width:32px;height:45px}.claim-caption{font-size:8px}.center-sub{font-size:8px}.seat-self{bottom:13px;left:13px}.seat-self .initial-avatar{width:32px;height:32px;font-size:18px}.own-melds{bottom:13px;right:10px;gap:6px}.meld-group .tile{width:17px;height:24px;padding:1px}.meld-group .wan-num,.meld-group .wan-char{font-size:8px}.meld-label{font-size:7px;bottom:-11px}.other-melds{margin-top:4px;gap:4px}.other-melds .tile{width:10px;height:14px}.other-melds .wan-num,.other-melds .wan-char{font-size:6px}.hand-zone{margin-top:15px;min-height:150px}.hand-toolbar{padding:0 5px}.hand-state{font-size:10px;gap:6px}.hand-hints{display:none}.hand{gap:2px;padding:15px 1px 9px;min-height:84px}.hand .tile{width:clamp(21px,6vw,39px);height:clamp(34px,8.7vw,56px);padding:2px;border-radius:3px;border-bottom-width:3px}.hand .wan-num{font-size:clamp(14px,4vw,22px)}.hand .wan-char{font-size:clamp(14px,3.8vw,21px)}.hand .tile.drawn{margin-left:6px}.hand .tile.selected{transform:translateY(-12px)}.action-bar{gap:7px;min-height:47px}.action-bar .btn{padding:8px 14px;min-width:64px;font-size:12px}.action-bar .action-label{display:none}.hint-explanation{font-size:9px;padding:5px 8px;min-height:24px}.missing-choice{gap:8px}.missing-choice .btn{min-width:90px;padding:11px}.missing-choice b{font-size:21px}.game-bottom{font-size:8px}.seat-bubble{font-size:8px;left:37px;padding:3px 5px;max-width:100px}.seat-right .seat-bubble{right:37px}.landlord-table .seat-left,.landlord-table .seat-right{top:23%;max-width:85px}.landlord-table .trick-area{width:71%;top:65%}.trick-cards{padding:9px 0}.trick-cards .playing-card{width:35px;height:52px;margin-right:-17px}.trick-cards .card-corner{font-size:12px;left:3px;top:3px}.trick-cards .card-corner small{font-size:11px}.trick-cards .card-center{font-size:23px}.trick-caption{font-size:9px}.cards-hand{gap:0;min-height:104px;padding-left:3px;padding-right:3px;overflow:visible}.cards-hand .playing-card{width:41px;height:70px;margin-right:calc((min(100vw,760px) - 47px - 41px * var(--hand-count,20)) / max(1,var(--hand-count,20) - 1));border-radius:3px}.cards-hand .card-corner{font-size:15px;left:3px;top:4px;min-width:10px}.cards-hand .card-corner small{font-size:13px;margin-top:3px}.cards-hand .card-center{font-size:25px;top:65%}.cards-hand .playing-card.selected{transform:translateY(-15px)}.landlord-table .table-center{top:43%}.landlord-table .table-center .brand-text{font-size:16px}.landlord-table .table-center .seal{width:36px;height:36px;font-size:23px}.card-back{width:13px;height:24px;margin-right:-8px}.bid-note{font-size:10px}.resume-banner{padding:11px;gap:9px}.resume-banner p{font-size:10px}.resume-banner .btn{padding:8px 11px;font-size:10px}.collection-item{padding:16px;gap:14px}.collection-item p{font-size:11px}}
@media(max-height:770px) and (min-width:761px){.game-table{min-height:375px}.game-topbar{height:58px}.game-body{padding-top:12px}.hand{min-height:95px}.hand-zone{margin-top:14px}.hand-toolbar{margin-bottom:3px}.cards-hand{min-height:117px}.game-bottom{padding:4px}.game-log{max-height:290px}.river-top{top:91px}.river-bottom{bottom:20px}.river-left,.river-right{max-height:145px}}
@media(max-width:450px){.hero h2{font-size:31px}.hero-copy{padding:27px 21px}.hero{min-height:353px}.hero-desc{max-width:236px}.hero-footer{gap:13px}.hero-footer small{font-size:8px}.hero-footer .btn{font-size:12px}.chapter-info p{min-height:36px}.section-heading small{font-size:9px}.journey-progress .progress-track{width:35px}.main{padding:22px 16px}.achievement{gap:8px;padding:12px}.achievement h3{font-size:12px}.medallion{width:27px;height:27px}.dialogue-counter{display:none}.dialogue-bottom{justify-content:flex-end}.game-table{min-height:397px}.game-title h2{max-width:125px}.game-tools .btn{padding:6px}.game-tools .icon-btn{width:27px}.table-info .table-tags .tag:nth-child(3){display:none}.bottom-cards{top:20px}.table-center .brand-text{letter-spacing:.13em}.river-left{left:12px}.river-right{right:12px}.hand .tile{width:6vw;height:8.7vw}.hand .tile.drawn{margin-left:3px}.cards-hand .playing-card{width:37px;margin-right:calc((100vw - 47px - 37px * var(--hand-count,20)) / max(1,var(--hand-count,20) - 1))}.game-bottom{padding-top:0}}

/* Chapter environment art */
.scene-tea{--scene-pos:0% 0%}.scene-train{--scene-pos:100% 0%}.scene-club{--scene-pos:0% 100%}.scene-hall{--scene-pos:100% 100%}
.hero[class*="scene-"],.story-stage[class*="scene-"]{background-image:url('./assets/scenes.png');background-size:200% auto;background-position:var(--scene-pos);background-repeat:no-repeat}
.story-stage.scene-city{background-image:linear-gradient(0deg,#14271f,transparent 75%),url('./assets/city.png');background-size:cover;background-position:center}
.chapter-card .chapter-cover[class*="scene-"]{background-image:linear-gradient(0deg,#102018e8,#10201833),url('./assets/scenes.png');background-size:100% 100%,200% auto;background-position:center,var(--scene-pos);background-repeat:no-repeat}
.chapter-card .chapter-cover.scene-city{background-image:linear-gradient(0deg,#102018e8,#10201833),url('./assets/city.png');background-size:cover;background-position:center}
.game-table{background:radial-gradient(ellipse at center,#2a503c,#173d2c 65%,#102e22);box-shadow:inset 0 0 0 2px #b5a17050,inset 0 0 80px #001a0e77,0 0 0 1px #7c75573b,0 9px 0 #20281e,0 15px 40px #0006}
body.reduced-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.rule-examples .playing-card{width:38px;height:54px}.rule-examples .card-corner{font-size:13px;left:3px;top:3px}.rule-examples .card-corner small{font-size:12px}.rule-examples .card-center{font-size:26px;left:62%}.rule-examples .invert{display:none}
@media(max-width:760px){.story-stage[class*="scene-"]{background-size:200% 200%}}
