
:root{color-scheme:light;--ink:#1d332f;--green:#193e36;--deep:#122c28;--gold:#b68c45;--paper:#eee8d9;--muted:#7c8071;--line:#d8d2c0;--serif:Georgia,'Noto Serif SC','Source Han Serif SC',SimSun,serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Microsoft YaHei UI','PingFang SC',sans-serif;font-size:14px}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;background:transparent;border:1px solid #c9c9b5;color:inherit;border-radius:3px;padding:10px 16px;transition:background .18s,border-color .18s,transform .18s}button:hover{border-color:var(--gold);background:#b68c4510}button:disabled{opacity:.38;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #d7ac52;outline-offset:3px}a{color:inherit;text-decoration:none}input,select{border:1px solid var(--line);background:#fff9ec;padding:11px 12px;color:var(--ink);border-radius:3px;min-width:0}input:focus,select:focus{outline:1px solid var(--gold)}label{display:block;font-size:12px;margin:17px 0 7px;color:#757a69}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:500}h2{font-size:24px}h3{font-size:18px}.primary{background:var(--green);border-color:var(--green);color:#f8f0d9}.primary:hover{background:#285348;border-color:#285348}.gold-button{background:#c6a064;border-color:#c6a064;color:#182f29}.gold-button:hover{background:#ddba7d}.quiet{border-color:transparent;padding-left:0;padding-right:0}.muted{color:var(--muted);line-height:1.9}.small{font-size:12px}.eyebrow{font-size:10px;letter-spacing:.23em;text-transform:uppercase;color:var(--gold);font-weight:600;line-height:1.8}.button-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.divider{height:1px;background:var(--line);margin:23px 0}.inline{display:flex;gap:8px}.inline input{flex:1;width:0}.loading-screen{height:100vh;display:grid;place-content:center;text-align:center;color:var(--gold);letter-spacing:.12em}.compass-mark{font-size:60px;line-height:1.5}.home{min-height:100vh;background:var(--deep);color:#f4ecd8;position:relative;overflow:hidden}.home:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0b2525ee 0%,#0b252585 55%,#081e1c20),linear-gradient(0deg,#0c2422 0%,transparent 60%),var(--home-image);background-size:cover;background-position:center;opacity:.85;pointer-events:none}.home:after{content:'';position:absolute;inset:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%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='.05' filter='url(%23n)'/%3E%3C/svg%3E")}.home-nav{position:relative;z-index:1;max-width:1400px;margin:auto;padding:29px 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddcf9d25}.brand{display:flex;align-items:center;gap:12px}.brand-symbol{font-size:36px;color:#d7b777}.brand strong{font-family:var(--serif);font-size:17px;font-weight:500;letter-spacing:.18em}.brand small{display:block;font-size:8px;letter-spacing:.27em;margin-top:6px;color:#c6bfa1}.home-nav a{font-size:12px;color:#d3cfb5}.hero{position:relative;z-index:1;max-width:1400px;margin:auto;padding:80px 5vw 60px;display:grid;grid-template-columns:1fr 350px;gap:7vw;min-height:710px;align-items:center}.hero-copy{align-self:start;padding-top:25px}.hero .eyebrow{color:#ceb77f;letter-spacing:.24em}.hero h1{font-size:clamp(42px,5.3vw,76px);line-height:1.32;letter-spacing:.05em;margin:30px 0 22px;text-shadow:0 3px 28px #071a1b50}.hero h1 em{font-style:normal;color:#d9bb80}.hero-subtitle{font-family:var(--serif);font-size:19px;letter-spacing:.06em;line-height:2;color:#e5ddc3}.hero-rule{width:65px;height:2px;background:#c8aa67;margin:28px 0}.hero-lead{font-size:13px;line-height:2.3;color:#c9d0b9}.meta-row{display:flex;gap:28px;color:#b6c1aa;font-size:11px;margin-top:35px}.meta-row span{display:flex;align-items:center;gap:8px}.meta-row b{font-size:16px;color:#d3bc83;font-weight:400}.setup-card{background:#eee8d9;color:var(--ink);padding:30px;position:relative;box-shadow:0 16px 70px #0006;border-top:3px solid var(--gold)}.setup-card:before{content:'Ⅰ';position:absolute;right:25px;top:24px;color:#b6ab91;font-family:var(--serif);font-size:28px}.setup-card h2{margin:8px 0 10px}.setup-card input,.setup-card select{width:100%}.setup-card .primary{width:100%;margin-top:16px;padding:14px}.setup-card .inline input{width:0}.setup-card .muted{font-size:11px}.setup-card .divider{margin:21px 0}.setup-card .small-row{display:flex;justify-content:space-between;gap:10px;font-size:11px;margin-top:16px}.setup-card .small-row button{font-size:11px}.home-foot{position:relative;z-index:1;max-width:1260px;margin:auto;border-top:1px solid #bdc7b126;padding:23px 0 30px;display:flex;justify-content:space-between;font-size:10px;line-height:2;letter-spacing:.06em;color:#a8b89f}.home-foot a{color:#d1bd90}.expedition-number{font-family:var(--serif);font-size:86px;line-height:1;color:#d1b6741c;position:absolute;right:4%;bottom:25px}.table{min-height:100vh;background:#eae4d6}.table-nav{height:68px;background:var(--deep);color:#ece4cf;display:flex;align-items:center;justify-content:space-between;padding:0 28px;gap:16px;position:sticky;top:0;z-index:15;border-bottom:3px solid #a9854a}.table-brand{display:flex;gap:13px;align-items:center}.table-brand strong{font-family:var(--serif);letter-spacing:.12em;font-size:17px;font-weight:500}.table-brand small{display:block;font-size:9px;color:#adbc9f;margin-top:5px;letter-spacing:.08em}.table-nav .button-row{gap:7px}.table-nav button,.table-nav a{font-size:11px;padding:7px 11px;border-color:#82978540;color:#c3cdb7}.round-clock{display:flex;align-items:center;gap:8px}.round-clock span{border:1px solid #72867650;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;font-family:var(--serif);font-size:12px;color:#859a85}.round-clock span.current{background:#c1a369;color:#122c28;border-color:#c1a369}.round-clock span.done{color:#dbccb0}.table-tabs{padding:0 28px;display:flex;justify-content:space-between;border-bottom:1px solid #ccc6b7;background:#f2eddf;position:sticky;top:68px;z-index:14}.tabs{display:flex;gap:26px}.tabs button{border:0;border-radius:0;padding:15px 0 13px;font-size:12px;color:#87907d;border-bottom:2px solid transparent}.tabs button.active{border-bottom-color:var(--green);color:var(--green)}.status-line{font-size:10px;align-self:center;color:#8a8a79}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:22px;max-width:1680px;margin:auto;padding:23px 28px 35px}.main-table{min-width:0}.panel{background:#f6f1e5;border:1px solid #d8d0bb;padding:21px;margin-bottom:18px}.panel h3{font-size:16px;margin-bottom:12px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}.panel-head h2,.panel-head h3{margin:0}.panel-head small{font-size:10px;color:#8d8d79}.section-number{color:var(--gold);margin-right:9px;font-family:var(--serif)}.board-scene{position:relative;background:#1e3d32;min-height:430px;border:1px solid #a68d5b;overflow:hidden;padding:20px;margin-bottom:22px}.board-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.6;filter:saturate(.8)}.board-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0c251ae0,transparent 75%);pointer-events:none}.board-content{position:relative;z-index:1}.board-scene .eyebrow{color:#e3c785}.board-scene .panel-head h2{color:#f5e5bd;font-size:23px;text-shadow:0 2px 5px #0008}.board-tools button{background:#102e26b0;color:#e6d5aa;border-color:#ceb97860;font-size:10px;padding:7px 10px}.site-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.site{background:#f4eddaeb;border:1px solid #d5c7a3;box-shadow:0 4px 16px #0002;padding:14px;min-height:137px;position:relative;display:flex;flex-direction:column;gap:8px}.site.locked{background:#102e27b8;color:#e9dab6;border:1px dashed #c9b37a75}.site h3{font-size:15px;margin:0;line-height:1.4}.site .site-eyebrow{font-size:9px;letter-spacing:.08em;color:#9d803f}.site.locked .site-eyebrow{color:#ceba7f}.site p{font-size:11px;line-height:1.7;margin:0;color:#4e6554}.site.locked p{color:#b9c7ac}.site-footer{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}.site button{font-size:10px;padding:5px 8px;background:#173d32;color:#e9dfbd;border-color:#7d8c64}.site button:hover{background:#2d5848}.guard-icon{position:absolute;right:10px;top:9px;color:#a56335;font-size:18px}.occupied{font-size:10px;color:#9d593c}.card-row{display:flex;gap:12px;overflow-x:auto;padding:3px 1px 13px;scrollbar-color:#a0aa91 #e9e3d5}.game-card{position:relative;flex:0 0 139px;border:1px solid #c7baa0;background:#fbf5e3;min-height:189px;border-radius:5px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 3px 7px #182e2510}.card-art{height:88px;background:linear-gradient(145deg,#8f9a6b,#314e3d);position:relative;overflow:hidden}.card-art img{width:100%;height:100%;object-fit:cover}.card-crop{width:100%;height:100%;background-repeat:no-repeat;background-size:var(--sheet-size,100%);background-position:var(--sheet-position,center)}.card-kind{position:absolute;top:7px;left:7px;font-size:8px;padding:3px 5px;background:#0b2c25d9;color:#e0ca94;letter-spacing:.08em}.card-info{padding:10px;display:flex;flex-direction:column;flex:1}.game-card h4{font-family:var(--serif);font-size:13px;margin:0 0 7px;font-weight:600}.game-card p{font-size:10px;line-height:1.65;margin:0 0 10px;color:#71806c}.game-card button{font-size:10px;width:100%;padding:6px 5px;margin-top:auto;border-color:#c5c7b2}.game-card .card-value{font-size:9px;color:#a48042;margin-bottom:7px}.card-buttons{display:flex;gap:4px;margin-top:auto}.game-card.used{opacity:.55}.game-card.fear .card-art{background:linear-gradient(145deg,#4b6061,#1d2e34)}.card-icon{font-family:var(--serif);font-size:42px;color:#dfd2a270;position:absolute;inset:0;display:grid;place-items:center}.hand-section{background:#f4eedf;padding:19px 20px 6px;border:1px solid #d8d0ba}.empty{padding:28px;text-align:center;color:#8c9481;font-size:12px;line-height:2}.player-strip{display:flex;gap:10px;margin-bottom:20px;overflow-x:auto}.player-chip{background:#f5efdf;border:1px solid #d7ceba;padding:12px 16px;min-width:145px;flex:1;border-left:3px solid var(--player-color,#305b49)}.player-chip.current{background:#e0e6d5;border-color:#abb699}.player-chip strong{font-size:12px;font-weight:500}.player-chip small{display:block;color:#8a907d;font-size:10px;margin-top:8px}.player-chip .player-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--player-color,#305b49);margin-right:7px}.sidebar .panel{padding:19px}.turn-label{font-family:var(--serif);font-size:20px;margin:8px 0 10px}.turn-note{font-size:11px;line-height:1.9;color:#7f8c75}.resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.resource{background:#eae6d7;border:1px solid #ded6bf;padding:11px 5px;text-align:center}.resource b{font-size:22px;font-family:var(--serif);font-weight:500;display:block;margin:5px 0}.resource span{font-size:9px;color:#7b846e}.resource .res-icon{font-size:17px;color:#ac8449}.worker-line{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin:17px 0;color:#6b7e63}.worker-symbol{font-size:21px;letter-spacing:5px;color:#345b45}.action-button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:11px 12px;text-align:left;margin-top:7px;font-size:11px;background:#eeeadc}.action-button span{font-size:10px;color:#9d8c64}.pass-button{width:100%;margin-top:14px;font-size:11px}.log{max-height:224px;overflow:auto;font-size:10px;line-height:1.9;color:#89907d}.log p{padding:9px 0;border-bottom:1px solid #ded8c5;margin:0}.log p:first-child{color:#546f56}.research-board{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.research-track{background:#e4dfce;border:1px solid #d2c4a4;padding:20px}.research-track h3{color:#345740}.research-step{display:flex;align-items:center;gap:14px;background:#f6f0e0;margin-top:8px;padding:13px;font-size:12px;border-left:3px solid #bca36a}.research-step.reached{background:#d3ddc4;border-left-color:#3a6149}.research-step .step-no{font-family:var(--serif);font-size:23px;color:#a58d58}.research-step small{font-size:10px;color:#869077}.assistant-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.assistant{padding:20px;border:1px solid #d2c5aa;background:#f5eedc}.assistant h3{font-size:16px}.assistant p{font-size:12px;line-height:1.8;color:#7c876f}.assistant button{font-size:11px}.library-tools{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.library-tools input{flex:1;min-width:150px}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:18px}.library-grid .game-card{flex-basis:auto}.rules-copy{font-size:13px;line-height:2.1;max-width:820px}.rules-copy h3{margin-top:28px}.rules-copy ol,.rules-copy ul{padding-left:23px}.rules-copy a{text-decoration:underline;color:#8d743e}.lobby{max-width:650px;margin:7vh auto;padding:38px;background:#f6f0df;border:1px solid #d5c8a9}.room-code{font-family:var(--serif);font-size:45px;letter-spacing:.2em;color:#9c7f44;margin:25px 0}.player-seat{padding:16px 0;border-bottom:1px solid #dfd7c0;display:flex;justify-content:space-between}.player-seat small{color:#8f947f}.score-table{width:100%;border-collapse:collapse;font-size:13px}.score-table td,.score-table th{padding:17px 10px;text-align:left;border-bottom:1px solid #d7ceba;font-weight:400}.score-table th{color:#89917a;font-size:11px}.score-table .total{font-size:25px;font-family:var(--serif);color:#8e7238}.end-banner{padding:25px;background:#1c3c30;color:#e0d2ab;margin-bottom:22px}.end-banner h2{margin-bottom:8px}.end-banner p{margin-bottom:0;color:#b9c6a9;font-size:12px}dialog{color:var(--ink);border:1px solid #af9a69;padding:35px;max-width:min(94vw,920px);max-height:90vh;background:#f3eddd;box-shadow:0 25px 100px #0007}dialog::backdrop{background:#081d1bd9;backdrop-filter:blur(3px)}.modal-close{position:sticky;top:-20px;float:right;z-index:2;width:34px;height:34px;font-size:22px;padding:0;background:#f6efdf}.modal-image{max-height:75vh;max-width:100%;display:block;margin:auto}.modal-card-art{max-height:70vh;aspect-ratio:2/3;margin:0 auto;background-size:var(--sheet-size);background-position:var(--sheet-position);background-repeat:no-repeat}.choice-list{display:grid;gap:9px;margin-top:22px}.choice-list button{text-align:left;padding:16px;background:#e9e3d1;line-height:1.6}.choice-list button small{display:block;color:#8c907a;font-size:10px;margin-top:5px}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,15px);z-index:100;color:#f1e7ce;background:#163b30;border:1px solid #b99757;padding:14px 22px;font-size:12px;line-height:1.8;max-width:min(90vw,600px);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;box-shadow:0 8px 30px #0003}#toast.show{opacity:1;transform:translate(-50%,0)}.busy button{cursor:wait}.connection-error{color:#b16b37}.home-error{color:#d5a16d;font-size:12px;line-height:2;padding:20px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1500px){.hero{padding-top:100px;padding-bottom:85px;min-height:790px}.hero h1{font-size:80px}.site-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1100px){.hero{grid-template-columns:1fr 320px;gap:35px;padding-top:50px}.workspace{grid-template-columns:minmax(0,1fr) 250px;padding:20px;gap:16px}.site-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.table-brand strong{font-size:14px}.round-clock{display:none}.sidebar .panel{padding:16px}.game-card{flex-basis:130px}.meta-row{gap:18px}.home-foot{margin:0 5vw}.hero-lead br{display:none}}
@media(max-width:760px){.hero{display:block;padding:30px 6vw}.hero-copy{padding-top:10px}.hero h1{font-size:46px;margin:21px 0}.hero-subtitle{font-size:16px}.hero-lead{max-width:400px}.meta-row{margin-top:20px;margin-bottom:32px;gap:20px}.setup-card{max-width:480px;padding:25px}.home-nav{padding:18px 6vw}.brand strong{font-size:14px}.brand-symbol{font-size:28px}.home-foot{display:block;padding:20px 0;font-size:9px}.home-foot>span{display:block}.table-nav{height:61px;padding:0 12px;gap:8px}.table-nav .table-brand{gap:7px}.table-nav .brand-symbol{font-size:24px}.table-brand strong{font-size:13px;letter-spacing:.03em}.table-brand small{font-size:8px}.table-nav button,.table-nav a{padding:6px;font-size:10px}.table-nav .optional{display:none}.table-tabs{top:61px;padding:0 14px}.tabs{gap:20px;overflow-x:auto}.tabs button{font-size:11px;white-space:nowrap}.status-line{display:none}.workspace{display:flex;flex-direction:column;padding:15px 12px}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:12px;order:-1}.sidebar .panel{margin:0;padding:13px}.sidebar .log-panel{display:none}.sidebar .turn-label{font-size:17px}.sidebar .turn-note{font-size:10px;line-height:1.6}.sidebar .action-button{padding:7px 8px;font-size:10px}.resource{padding:5px 3px}.resource b{font-size:19px;margin:1px 0}.resource span{font-size:8px}.worker-line{margin:10px 0;font-size:10px}.worker-symbol{font-size:16px}.pass-button{font-size:10px;padding:8px;margin-top:8px}.sidebar .resource-grid{gap:4px}.board-scene{padding:13px}.site-grid{gap:8px}.site{padding:10px;min-height:135px}.site h3{font-size:13px}.site p{font-size:10px}.site button{font-size:9px}.board-scene .panel-head h2{font-size:20px}.board-tools{display:none}.player-strip{gap:7px;margin-bottom:14px}.player-chip{padding:10px;min-width:125px}.game-card{flex-basis:125px;min-height:175px}.card-art{height:74px}.hand-section,.panel{padding:15px}.research-board{grid-template-columns:1fr}.assistant-list{grid-template-columns:1fr 1fr}.lobby{margin:25px 12px;padding:25px}.room-code{font-size:35px}.score-table td,.score-table th{padding:12px 5px;font-size:11px}.score-table .total{font-size:21px}dialog{padding:24px 18px}.modal-close{top:-13px}.hero-copy .eyebrow{font-size:9px}}
.card-art.has-art{height:190px;background:#ded5bc}.card-image-button{display:block;border:0;border-radius:0;width:100%;height:100%;padding:0;background:transparent}.card-image-button:hover{background:transparent}.card-art.has-art img{object-fit:cover}.game-card:has(.has-art) p{display:none}.card-kind{pointer-events:none}.sidebar .end-turn{width:100%;margin-top:10px}.guard-copy{font-size:9px!important;color:#8f6340!important}@media(max-width:760px){.card-art.has-art{height:172px}}
.keep-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:20px 0}.keep-list label{display:flex;gap:10px;align-items:center;margin:0;padding:10px;border:1px solid #d7cfb6;line-height:1.7}.keep-list label small{color:#9a895f}.keep-list input{accent-color:#285441}.end-turn{padding:14px 8px}
