:root{--ink:#153f47;--deep:#104b57;--teal:#207c80;--cream:#f8f5eb;--muted:#75817b;--line:#e2e5d9;--serif:Georgia,'Times New Roman',serif}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:14px/1.5 'Segoe UI',Arial,sans-serif}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #e49d3f;outline-offset:4px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.04em}h1{font-size:45px;line-height:1.13}h2{font-size:26px}h3{font-size:13px;font-weight:650}.muted{color:var(--muted)}.small{font-size:12px}.eyebrow{display:block;font-size:10px;letter-spacing:2px;font-weight:750;color:var(--teal);margin-bottom:9px}.coast-glow{position:fixed;z-index:-1;pointer-events:none;inset:0;background:radial-gradient(ellipse at 0 0,#e2e8d79c,transparent 50%),radial-gradient(ellipse at 100% 65%,#dfede273,transparent 45%)}.masthead{max-width:1640px;margin:auto;min-height:102px;padding:22px 42px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font-family:var(--serif);font-size:47px;font-weight:700;line-height:.8;letter-spacing:-3px}.brand-sun{font-size:28px;color:#e6ae4e;letter-spacing:0;vertical-align:top;margin-left:4px}.wordmark small{display:block;font-family:'Segoe UI',sans-serif;font-size:7px;line-height:1;letter-spacing:2px;margin-top:12px;font-weight:600}.header-right{display:flex;align-items:center;gap:22px}.edition{font-size:10px;letter-spacing:2px;color:var(--muted)}.icon-button{display:grid;place-items:center;border:1px solid #cfd8cb;background:transparent;border-radius:50%;width:35px;height:35px;font-size:19px}.icon-button:hover{background:#e7ede2}main{max-width:1640px;margin:auto;padding:0 42px}.primary,.secondary{border-radius:10px;padding:13px 20px;font-size:13px;font-weight:650;border:1px solid var(--deep);display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:46px}.primary{background:var(--deep);color:white}.primary:hover{background:#1c6570}.secondary{background:transparent;border-color:#cbd7ca}.secondary:hover{background:#edf0e5}.primary:disabled,.secondary:disabled{opacity:.45}.wide{width:100%}.text-button{background:transparent;border:0;padding:7px 0;font-size:11px;font-weight:650}.text-button:hover{text-decoration:underline}.symbol{width:24px;height:24px;object-fit:contain;vertical-align:middle}.welcome{padding:65px 0 60px;display:grid;grid-template-columns:1.25fr 1fr;gap:90px;align-items:center;max-width:1220px;margin:auto}.welcome h1{font-size:67px;line-height:1.07;margin-top:22px}.welcome h1 em{color:var(--teal);font-weight:400}.intro{font-size:16px;line-height:1.8;color:#65766f;max-width:430px;margin:25px 0}.welcome-facts{display:flex;gap:22px;font-size:11px;flex-wrap:wrap}.welcome-facts>span{display:flex;align-items:center;gap:8px}.welcome-facts .symbol{width:28px;height:28px}.coast-sample{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;transform:rotate(-3deg);margin-top:49px;max-width:550px}.sample-zone{height:155px;border:5px solid #fffaf0;border-radius:13px;background-size:cover;background-position:center;box-shadow:0 12px 22px #183f3c12;display:flex;align-items:center;justify-content:center;position:relative}.sample-zone:nth-child(2){transform:translateY(-10px) rotate(2deg)}.sample-zone:nth-child(3){transform:translateY(4px) rotate(-2deg)}.sample-zone:nth-child(4){transform:translateY(-8px) rotate(3deg)}.sample-zone .symbol{width:66px;height:66px;filter:drop-shadow(0 3px 3px #0002)}.sample-zone>span{position:absolute;bottom:9px;background:#fff9e8d9;border-radius:12px;padding:3px 7px;font-size:9px;font-weight:700}.lobby-card{background:#fffcf6;border:1px solid #e4e4d5;border-radius:24px;padding:34px;box-shadow:0 20px 80px #33533c09}.lobby-card h2{font-size:30px;margin:12px 0 25px;max-width:290px}.lobby-card label:not(.segmented label){display:block;font-size:11px;font-weight:650;margin:17px 0 8px}input:not([type=radio]){border:1px solid #d7ded1;border-radius:9px;background:#fffef9;padding:12px 14px;width:100%;outline:none;color:var(--ink)}input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #207c8018}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:24px}.segmented input{position:absolute;opacity:0;width:1px;height:1px}.segmented span{display:block;text-align:center;border:1px solid #d7ded1;border-radius:8px;padding:10px 4px;font-size:12px;cursor:pointer}.segmented input:checked+span{background:#e7efe5;border-color:#7b9f91;color:var(--deep)}.segmented input:focus-visible+span{outline:3px solid #e49d3f}.lobby-card .secondary.wide{margin-top:9px}.or{display:flex;align-items:center;gap:12px;color:#94a094;font-size:10px;margin-top:25px}.or:before,.or:after{content:'';height:1px;background:var(--line);flex:1}.join-line{display:flex;gap:8px}.join-line input{min-width:0;letter-spacing:3px;text-transform:uppercase}.join-line .secondary{padding:10px 14px}.lobby-card .small{margin-top:15px;text-align:center}.welcome-footer,.game-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:20px 0 26px;color:var(--muted);font-size:9px;letter-spacing:1.7px}.welcome-footer{max-width:1220px;margin:auto}.waiting{text-align:center;max-width:850px;margin:70px auto 100px}.waiting h1{font-size:55px;margin:15px 0 20px}.waiting p{margin:18px 0}.waiting .primary{margin-top:30px}.seat-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:15px;margin:35px 0}.seat{display:flex;flex-direction:column;align-items:center;border:1px dashed #c7d2c2;background:#ffffff40;border-radius:18px;padding:30px 16px;gap:9px}.seat.present{border:1px solid #b9d0bf;background:#edf3e8}.seat small{color:var(--muted);font-size:11px}.avatar{width:38px;height:38px;display:grid;place-items:center;background:#dce8d7;border-radius:50%;font-family:var(--serif);font-size:20px;flex-shrink:0}.seat .avatar{width:48px;height:48px;font-size:25px}.table-strip{display:flex;gap:20px;align-items:center;padding:16px 0;color:var(--muted);font-size:10px;border-bottom:1px solid var(--line)}.table-code{letter-spacing:1px}.table-code strong{color:var(--ink);margin-left:6px}.connection{margin-right:auto;display:flex;align-items:center;gap:6px}.connection:before{content:'';width:5px;height:5px;background:#7b9e78;border-radius:50%}.game-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:30px 0 25px}.game-heading h1{font-size:40px}.game-heading p{margin-top:11px;font-size:12px;color:#738079}.purse{display:flex;gap:10px;align-items:center;border:1px solid #dfe4d5;background:#fffdf4;border-radius:16px;padding:15px 22px;flex-shrink:0}.purse>.symbol{width:39px;height:39px}.purse strong{display:block;font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.1}.purse span{font-size:9px;color:var(--muted)}.purse-divider{width:1px;height:34px;background:var(--line);margin:0 12px}.players{display:flex;gap:12px;margin-bottom:27px}.player-chip{background:#ffffff50;border:1px solid #dfe4d5;border-radius:12px;display:flex;align-items:center;padding:11px 16px;gap:11px;text-align:left;flex:1;position:relative;min-width:0}.player-chip.viewed{background:#fffdf6;border-color:#8cae9c;box-shadow:0 3px 12px #17453607}.player-chip.active-turn:after{content:'';position:absolute;bottom:-1px;left:15px;right:15px;height:3px;background:var(--teal);border-radius:5px}.player-name{min-width:0}.player-name strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-name small{font-size:9px;color:var(--muted);font-weight:400}.chip-score{margin-left:auto;font-family:var(--serif);font-size:20px;white-space:nowrap;text-align:right}.chip-score small{display:block;font-size:9px;font-family:'Segoe UI',sans-serif;color:var(--muted)}.color-1{background:#f0dfbf}.color-2{background:#d3e9e8}.color-3{background:#f0d9cb}.play-layout{display:grid;grid-template-columns:minmax(360px,.82fr) minmax(480px,1.2fr);gap:27px;align-items:start}.river-panel,.board-panel,.hand-panel{border:1px solid #dfe3d4;border-radius:20px;background:#fffdf5b0;padding:23px}.river-panel{background:#edf1e5b0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:19px}.section-heading .eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:3px}.section-heading h2{font-size:25px}.section-heading h2 small{font-size:17px;color:var(--muted)}.subtle-count,.private-label{font-size:9px;color:var(--muted);white-space:nowrap}.zone-heading{display:flex;align-items:center;gap:6px;margin-bottom:8px}.zone-heading small{margin-left:auto;color:#8c9789;font-size:9px}.zone-dot{width:7px;height:7px;border-radius:50%;background:#b6cda1}.zone-dot.sable{background:#e1bd76}.zone-dot.bord{background:#8ac7ba}.zone-dot.mer{background:#579aa7}.river-zone+.river-zone{margin-top:15px}.river-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.card-wrap{position:relative;min-width:0;aspect-ratio:1039/744}.game-card{position:relative;display:block;overflow:hidden;width:100%;height:100%;border:1px solid #ffffffba;border-radius:7px;background-position:center;background-size:cover;box-shadow:0 2px 6px #16493c18;padding:0;transition:transform .15s,box-shadow .15s}.game-card:not(:disabled):hover{transform:translateY(-3px);box-shadow:0 6px 15px #183d372e}.game-card:disabled{filter:saturate(.78);opacity:.72}.dune.game-card,.sample-zone.dune{background-image:url('assets/card_backgrounds/dune_cartoon.webp')}.sable.game-card,.sample-zone.sable{background-image:url('assets/card_backgrounds/plage_cartoon.webp')}.bord.game-card,.sample-zone.bord{background-image:url('assets/card_backgrounds/bord_cartoon.webp')}.mer.game-card,.sample-zone.mer{background-image:url('assets/card_backgrounds/mer_cartoon.webp')}.card-icons{position:absolute;top:4%;left:3%;display:flex;gap:2%;width:67%;height:24%;align-items:start}.card-icons .symbol{width:26%;height:auto;aspect-ratio:1}.card-cost{position:absolute;right:3%;top:4%;width:19%;aspect-ratio:1;display:grid;place-items:center}.card-cost .symbol{position:absolute;width:100%;height:100%}.card-cost b{position:relative;font-size:clamp(10px,1.2vw,18px);color:#123d48;text-shadow:-1px -1px #fff3c4,1px 1px #fff3c4;line-height:1}.card-cost.reduced b{color:#ab3c28}.card-rule{position:absolute;left:2.4%;bottom:3.3%;width:95.2%;height:27%;background:#fff5d8e6;border:1px solid #d7b56b;border-radius:5px;display:flex;align-items:center;justify-content:center;gap:2%;font-size:clamp(8px,.9vw,13px);line-height:1}.card-rule .symbol{width:auto;height:73%;aspect-ratio:1}.card-rule small{font-size:clamp(6px,.58vw,9px);position:absolute;bottom:1px;right:3px;opacity:.7;line-height:1}.card-middle{position:absolute;top:31%;left:4%;right:4%;bottom:32%;display:grid;place-items:center}.income,.discount-note{background:#fff6d7d9;padding:2px 6px;border-radius:8px;display:flex;align-items:center;gap:2px;font-size:clamp(8px,.85vw,12px);font-weight:700}.income .symbol,.discount-note .symbol{width:20px;height:20px}.discount-note{flex-wrap:wrap;justify-content:center;line-height:1.15}.discount-note small{display:block;width:100%;font-size:clamp(6px,.55vw,8px);font-weight:500}.zoom-card{position:absolute;right:3px;bottom:34%;width:19px;height:19px;display:grid;place-items:center;padding:0;border-radius:50%;border:1px solid #fff8;background:#fffae2df;font-size:12px;opacity:.55}.card-wrap:hover .zoom-card,.zoom-card:focus-visible{opacity:1}.selected .game-card{outline:3px solid var(--teal);outline-offset:2px;transform:translateY(-4px);opacity:1}.card-score{position:absolute;left:3px;bottom:34%;border-radius:8px;padding:1px 4px;font-size:8px;color:#3c5c44;background:#fff9e7e6;pointer-events:none}.empty-river{aspect-ratio:1039/744;display:grid;place-items:center;border:1px dashed #cdd7c8;border-radius:7px;font-size:9px;color:#9da897;text-align:center}.gather-button{margin-top:22px;padding:12px 10px;background:#fffaf0;border:1px solid #d7decd;border-radius:11px;width:100%;display:flex;align-items:center;gap:9px;text-align:left;font-size:11px}.gather-button>.symbol{width:30px;height:30px}.gather-button small{display:block;font-size:8px;color:#8b9585;margin-top:3px}.gather-button strong{font-family:var(--serif);font-weight:400;margin-left:auto;font-size:24px}.gather-button:disabled{opacity:.5}.gather-button:not(:disabled):hover{background:#f5e9cf}.personal-area{min-width:0}.board-panel{padding:23px 20px}.board-count{font-family:var(--serif);font-size:28px}.board-count small{font-size:17px;color:#a3aa9a}.tableau-row{display:grid;grid-template-columns:48px repeat(4,minmax(0,1fr));gap:8px;align-items:center;margin-bottom:9px}.tableau-row:last-child{margin-bottom:0}.row-label{font-size:8px;color:#879582;padding-right:4px;line-height:1.3}.empty-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px dashed #cbd4c1;border-radius:7px;aspect-ratio:1039/744;background:#eaf0e447;min-width:0;color:#b6c1ac;padding:0}.empty-slot span{font-family:var(--serif);font-size:24px;font-weight:400;line-height:1}.empty-slot small{font-size:7px;letter-spacing:.4px}.empty-slot.sable{background:#f2e3c747;border-color:#dfd0ae}.empty-slot.bord{background:#d6e9e147;border-color:#bfd8ca}.empty-slot.mer{background:#d1e7e847;border-color:#bad3d3}.empty-slot.placeable{background:#d6ead4;border:2px solid #619883;color:var(--deep);box-shadow:0 0 0 3px #afc7ac35;cursor:pointer}.empty-slot.placeable:hover{background:#bad8b6;transform:translateY(-2px)}.hand-panel{margin-top:18px;padding:20px}.hand-panel .section-heading{margin-bottom:14px}.hand-cards{display:flex;gap:12px;overflow-x:auto;padding:5px 3px 10px;scrollbar-width:thin;scrollbar-color:#bacab4 transparent;min-height:98px}.hand-cards .card-wrap{width:145px;flex-shrink:0}.hand-cards .card-cost b{font-size:14px}.hand-cards .card-rule{font-size:10px}.hand-cards .card-rule small{font-size:7px}.empty-hand{font-size:11px;align-self:center;padding:15px 0}.journal{display:grid;grid-template-columns:220px 1fr;border-top:1px solid var(--line);margin:32px 0 24px;padding-top:25px;gap:30px}.journal h2{font-size:24px}.journal .eyebrow{font-size:8px}.journal ol{list-style:none;padding:0;margin:0}.journal li{display:flex;align-items:baseline;gap:10px;padding:5px 0;font-size:11px;color:#7b8679}.journal li:first-child{color:var(--ink)}.journal li small{font-size:8px;color:#a0aa98;margin-left:auto;white-space:nowrap}.log-dot{width:4px;height:4px;background:#abb79f;border-radius:50%;flex-shrink:0;align-self:center}.journal li:first-child .log-dot{background:var(--teal)}.game-footer{padding:16px 0 25px;font-size:8px}.finish-banner{margin-top:20px;background:#e5eacb;border:1px solid #c9d19c;border-radius:12px;padding:18px 22px;text-align:center;font-size:16px;font-family:var(--serif)}dialog{border:1px solid #d4dfcf;border-radius:21px;padding:27px;background:#fffdf5;color:var(--ink);max-width:550px;width:calc(100% - 30px);box-shadow:0 25px 100px #153a3940}dialog::backdrop{background:#123b3c77;backdrop-filter:blur(4px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:15px}dialog .eyebrow{margin:0;font-size:9px}dialog h2{font-size:32px;margin:10px 0 20px}dialog h3{margin:19px 0 6px;font-size:13px}dialog p{font-size:13px;line-height:1.8;margin:10px 0}.large-card{width:100%;max-width:420px;margin:auto}.large-card .card-cost b{font-size:32px}.large-card .card-rule{font-size:23px}.large-card .card-rule small{font-size:13px}.large-card .income,.large-card .discount-note{font-size:21px}.large-card .income .symbol,.large-card .discount-note .symbol{width:40px;height:40px}.large-card .discount-note small{font-size:15px}.large-card .zoom-card{display:none}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:min(520px,calc(100% - 30px));background:var(--deep);color:#fffdf1;border-radius:12px;padding:14px 23px;box-shadow:0 9px 30px #103c3c40;font-size:13px;z-index:100}#toast[hidden]{display:none}.loading{text-align:center;padding:140px 0;color:var(--teal);font-family:var(--serif);font-size:30px}.busy .play-layout{cursor:progress}.busy .play-layout button{pointer-events:none}
@media(min-width:1500px){.card-rule{font-size:14px}.card-rule small{font-size:9px}.river-panel{padding:26px}.tableau-row{gap:11px;margin-bottom:12px}.hand-cards .card-wrap{width:160px}}
@media(max-width:1100px){.masthead{padding:20px 25px}main{padding:0 25px}.welcome{gap:40px;padding-top:45px}.welcome h1{font-size:54px}.lobby-card{padding:26px}.play-layout{grid-template-columns:minmax(290px,.8fr) minmax(400px,1.2fr);gap:16px}.river-panel,.board-panel{padding:17px 13px}.section-heading h2{font-size:21px}.subtle-count{display:none}.tableau-row{grid-template-columns:35px repeat(4,minmax(0,1fr));gap:5px}.row-label{font-size:7px}.hand-panel{padding:17px 13px}.card-rule small{font-size:5px}.income .symbol,.discount-note .symbol{width:14px;height:14px}.player-chip{padding:10px;gap:7px}.player-chip .avatar{width:29px;height:29px;font-size:16px}.player-name strong{font-size:10px}.player-name small,.chip-score small{font-size:8px}.chip-score{font-size:17px}.players{gap:8px}.game-heading h1{font-size:34px}.game-heading p{font-size:11px}.purse{padding:12px;gap:5px}.purse>.symbol{width:30px;height:30px}.purse-divider{margin:0 7px}.purse strong{font-size:26px}.purse span{font-size:8px}}
@media(max-width:780px){.masthead{min-height:88px;padding:22px 20px}.wordmark{font-size:41px}.wordmark small{font-size:6px}.edition{font-size:8px;letter-spacing:1px}.header-right{gap:12px}main{padding:0 16px}.welcome{grid-template-columns:1fr;gap:35px;padding:35px 0}.welcome-copy{max-width:560px;margin:auto}.welcome h1{font-size:49px}.welcome .eyebrow{font-size:8px}.intro{font-size:14px;margin:20px 0}.coast-sample{margin-top:30px}.sample-zone{height:125px}.sample-zone .symbol{width:50px;height:50px}.lobby-card{width:100%;max-width:550px;margin:auto;padding:26px}.welcome-facts{gap:12px;font-size:10px}.welcome-footer{font-size:7px;letter-spacing:.5px;gap:12px}.table-strip{gap:12px;font-size:9px;flex-wrap:wrap}.table-strip .text-button{font-size:10px}.game-heading{align-items:start;padding:25px 0 20px;flex-wrap:wrap;gap:18px}.game-heading h1{font-size:34px}.game-heading p{font-size:11px}.purse{padding:9px 16px;margin-left:auto}.purse strong{font-size:23px}.purse>.symbol{width:29px;height:29px}.players{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:20px}.player-chip{padding:11px}.play-layout{grid-template-columns:1fr}.personal-area{grid-row:1}.river-panel{padding:22px 17px}.board-panel{padding:22px 13px}.section-heading h2{font-size:24px}.tableau-row{grid-template-columns:34px repeat(4,minmax(0,1fr));gap:6px;margin-bottom:8px}.row-label{font-size:7px}.game-card{border-radius:5px}.card-rule{font-size:clamp(7px,2vw,12px)}.card-cost b{font-size:clamp(10px,3vw,18px)}.card-rule small{font-size:clamp(5px,1.2vw,8px)}.card-middle .income,.card-middle .discount-note{font-size:clamp(7px,2vw,12px)}.discount-note small{font-size:clamp(5px,1.2vw,8px)}.river-cards{gap:12px}.river-cards .card-rule{font-size:clamp(10px,3vw,16px)}.river-cards .card-rule small{font-size:clamp(6px,1.5vw,10px)}.river-zone+.river-zone{margin-top:20px}.subtle-count{display:block}.hand-cards .card-wrap{width:145px}.private-label{font-size:8px}.hand-panel{padding:18px 14px}.journal{grid-template-columns:1fr;gap:12px;margin-top:25px}.journal li{font-size:10px}.journal li small{display:none}.card-score{font-size:7px;padding:0 3px}.zoom-card{width:16px;height:16px;font-size:10px}.empty-slot span{font-size:20px}.empty-slot small{font-size:6px}.waiting{margin-top:45px}.waiting h1{font-size:40px}.seat-list{grid-template-columns:repeat(2,1fr)}.large-card .card-cost b{font-size:29px}.large-card .card-rule{font-size:21px}.large-card .card-rule small{font-size:12px}.large-card .card-middle .income,.large-card .card-middle .discount-note{font-size:18px}.large-card .discount-note small{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.turn-progress{display:flex;align-items:center;gap:9px;margin-top:12px;font-size:10px;color:#8b9786}.turn-progress span.current{background:#e1ecdf;color:#225e56;border:1px solid #afc6ad;border-radius:20px;padding:4px 10px;font-weight:650}.turn-progress span.done{color:#397264;font-weight:650}

.first-player-marker{display:inline-block;background:#e8d9af;color:#71542e;border-radius:5px;padding:1px 4px;font-size:8px;font-weight:650;vertical-align:middle}
.zone-round{display:flex;align-items:center;gap:24px;padding:19px 24px;border:1px solid #c8d8c5;background:#edf3e8;border-radius:18px;margin-bottom:24px}
.zone-turn-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex-shrink:0;width:142px;aspect-ratio:1039/744;background-size:cover;background-position:center;border:4px solid #fffcf0;border-radius:10px;box-shadow:0 3px 12px #244e3c17}
.zone-turn-card.dune{background-image:url('assets/card_backgrounds/dune_cartoon.webp')}
.zone-turn-card.sable{background-image:url('assets/card_backgrounds/plage_cartoon.webp')}
.zone-turn-card.bord{background-image:url('assets/card_backgrounds/bord_cartoon.webp')}
.zone-turn-card.mer{background-image:url('assets/card_backgrounds/mer_cartoon.webp')}
.zone-turn-card>span{font-size:6px;letter-spacing:1px;font-weight:750;padding:2px 4px;border-radius:5px;background:#fff9e7dc}
.zone-turn-card>.symbol{width:37px;height:37px}.zone-turn-card>strong{font-size:10px;background:#fff9e7e8;border-radius:8px;padding:1px 7px}
.zone-round-copy{flex:1;min-width:0}.zone-round-copy .eyebrow{margin-bottom:4px;font-size:9px}.zone-round-copy h2{font-size:25px}.zone-round-copy p{font-size:11px;color:#66806c;margin-top:4px}.zone-round-copy>small{display:block;font-size:9px;color:#7a8f78;margin-top:6px}
.round-order{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:9px;font-size:10px;color:#69856c}.round-order span{padding:3px 7px;border-radius:7px}.round-order span.current{background:#d0e4cd;color:#164c47;font-weight:650}.round-order b{font-weight:400}
.zone-draw-count{text-align:center;padding-left:22px;border-left:1px solid #cfdcc6;min-width:148px}.zone-draw-count>strong{display:block;font-family:var(--serif);font-size:29px;font-weight:400;line-height:1.1}.zone-draw-count>span{font-size:9px;color:#70866c}.zone-reveals{display:grid;grid-template-columns:1fr 1fr;gap:3px 9px;margin-top:8px;text-align:left;font-size:7px;color:#849378}.zone-reveals b{font-weight:650;color:#4f7057;margin-left:3px}
@media(max-width:780px){.zone-round{gap:12px;padding:15px 12px;flex-wrap:wrap;margin-bottom:18px}.zone-turn-card{width:105px}.zone-turn-card>.symbol{width:28px;height:28px}.zone-turn-card>span{font-size:5px}.zone-turn-card>strong{font-size:8px}.zone-round-copy{min-width:160px}.zone-round-copy h2{font-size:21px}.zone-round-copy p{font-size:10px}.zone-round-copy .eyebrow{font-size:8px}.zone-draw-count{min-width:0;width:100%;padding:9px 0 0;border:0;border-top:1px solid #cfdcc6;display:flex;align-items:center;gap:9px;justify-content:space-between}.zone-draw-count>strong{font-size:23px}.zone-draw-count>span{text-align:left;font-size:8px;margin-right:auto}.zone-reveals{margin:0;font-size:7px}.round-order{gap:2px;font-size:9px}.zone-round-copy>small{font-size:8px}.first-player-marker{font-size:7px;padding:0 3px}}

/* Card art is always a zoom target; buying/placing have separate controls. */
.card-wrap{aspect-ratio:auto}
.card-visual{position:relative;aspect-ratio:1039/744;min-width:0;border-radius:7px}
.card-action{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:30px;margin-top:6px;padding:5px 7px;border:1px solid #a9c2ac;border-radius:7px;background:#fffdf3;color:#205951;font-size:11px;font-weight:650;line-height:1.2}
.card-action>span{display:flex;align-items:center;gap:3px}.card-action .symbol{width:17px;height:17px}
.card-action:not(:disabled):hover{background:#e0eddb;border-color:#6d9b79}.card-action:disabled{opacity:.42}
.play-card{font-size:10px;background:#edf2e7}.selected .play-card{background:#d4e6cd}
.selected .game-card{outline:none;transform:none}.selected .card-visual{outline:3px solid var(--teal);outline-offset:2px}
.expand-mark{position:absolute;bottom:36%;right:4px;display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#fff8ddd9;color:#255c62;font-size:14px;opacity:.7;pointer-events:none}
.game-card:hover .expand-mark{opacity:1}.game-card{cursor:zoom-in}
.card-rule{height:31%;padding:2px 4px;gap:3px;overflow:hidden}
.effect-rule,.score-rule{display:flex;align-items:center;justify-content:center;min-width:0;height:100%;width:100%;gap:3px;position:relative}
.effect-rule{flex-direction:column;gap:0}
.effect-line{display:flex;align-items:center;justify-content:center;gap:3px;height:70%;min-height:0;white-space:nowrap}
.card-rule .effect-line .symbol{height:100%;width:auto;aspect-ratio:1}
.card-rule .effect-caption{position:static;display:block;font-size:clamp(5px,.58vw,9px);line-height:1.05;text-align:center;max-width:100%;white-space:normal;color:#365a5b;opacity:.9;flex-shrink:0}
.score-rule .symbol{height:75%;width:auto;aspect-ratio:1}
.score-rule>small{position:absolute;right:0;bottom:0;font-size:clamp(5px,.54vw,8px)}
.combined-rule .effect-rule{flex:1.5;width:auto}.combined-rule .score-rule{flex:.75;width:auto}
.rule-divider{width:1px;height:76%;background:#a4915e60;flex-shrink:0;margin:0 2px}
.card-score{bottom:36%}
.river-cards{padding-top:7px;align-items:start}
.hand-cards{padding-top:12px}
.new-river-card .card-visual{box-shadow:0 0 0 3px #368c73,0 4px 15px #267f5933;animation:river-arrival .35s ease-out}
.purchased-in-hand .card-visual{box-shadow:0 0 0 2px #4c8791}
.arrival-label{position:absolute;top:-8px;left:50%;transform:translateX(-50%);z-index:2;padding:2px 8px;border-radius:8px;background:#287a61;color:#fffef4;font-size:8px;font-weight:750;letter-spacing:.3px;white-space:nowrap;pointer-events:none}
.bought-label{background:#346c7a}
.river-pending{min-width:0;text-align:center;color:#6d877b}
.pending-card-back{aspect-ratio:1039/744;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px dashed #9cb9aa;border-radius:7px;background:repeating-linear-gradient(45deg,#dbe8d8,#dbe8d8 5px,#e6eee0 5px,#e6eee0 10px)}
.pending-card-back>span{display:grid;place-items:center;width:28px;height:28px;border:1px solid #b4c8b3;background:#eef4e7;border-radius:50%;font-family:var(--serif);font-size:21px}
.pending-card-back>small{font-size:9px;background:#edf3e6d9;border-radius:5px;padding:1px 4px}
.pending-caption{display:block;font-size:9px;padding:9px 0 4px}
.turn-progress{flex-wrap:wrap}
.undo-purchase{display:inline-flex;align-items:center;border:1px solid #c7b68e;border-radius:7px;padding:5px 9px;background:#fff9e9;color:#6f5730;font-size:10px;font-weight:600;cursor:pointer;margin-left:5px}
.undo-purchase:hover{background:#f3e7c9;border-color:#a08c5d}
.dialog-card-action{margin-top:10px}
dialog{max-height:calc(100dvh - 28px);overflow:auto}
.large-card .game-card{cursor:default}.large-card .game-card:hover{transform:none;box-shadow:0 2px 6px #16493c18}
.large-card .card-rule{font-size:23px}.large-card .effect-caption{font-size:12px;line-height:1.1}
.large-card .score-rule>small{font-size:12px}
@keyframes river-arrival{from{transform:translateY(4px);opacity:.6}to{transform:translateY(0);opacity:1}}
@media(max-width:1100px){.card-action{font-size:10px;gap:3px;padding:5px 4px}.play-card{font-size:9px}.card-rule{padding:2px;gap:1px}.effect-line,.score-rule{gap:2px}.rule-divider{margin:0 1px}}
@media(max-width:780px){.card-action{font-size:10px;min-height:30px}.play-card{font-size:10px}.card-rule .effect-caption{font-size:clamp(5px,1.3vw,9px)}.score-rule>small{font-size:clamp(5px,1.25vw,8px)}.arrival-label{font-size:7px;padding:2px 6px}.pending-card-back>small{font-size:7px}.pending-card-back>span{width:23px;height:23px;font-size:17px}.pending-caption{font-size:8px}.large-card .card-rule{font-size:20px}.large-card .effect-caption{font-size:10px}.large-card .score-rule>small{font-size:10px}.undo-purchase{font-size:10px;margin-left:0}}

.catalog-link{font-size:12px;text-decoration:none}
@media(max-width:780px){.header-right .edition{display:none}.catalog-link{font-size:11px}}

.lobby-card select{display:block;width:100%;border:1px solid #c9d7be;border-radius:8px;background:#fffdf5;color:var(--ink);padding:11px;font:inherit;font-size:12px;margin-bottom:10px}.table-version{font-size:9px;color:#69806d;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
