:root{--bg:#f3edde;--paper:#fffaf0;--ink:#342d25;--muted:#746a5c;--line:#ded2bc;--red:#a82d25;--red-dark:#7e231f;--gold:#c8943f;--blue:#236d8d;--wood:#3f7c3e;--brick:#ba623b;--wool:#9abc54;--grain:#e4b746;--ore:#969da0;color-scheme:light;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg);background-image:radial-gradient(#b3925820 .65px,transparent .65px);background-size:7px 7px;color:var(--ink);font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,select{font:inherit}button,input,select,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:44px;border:1px solid transparent;border-radius:9px;padding:11px 17px;background:var(--red);color:#fff9e9;font-size:14px;font-weight:700;cursor:pointer;transition:background .15s,box-shadow .15s}button:hover:not(:disabled){background:var(--red-dark)}button:disabled{opacity:.48;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible,[role=button]:focus-visible{outline:3px solid #185f9b;outline-offset:3px}button.secondary{background:#ede3cf;color:var(--ink);border-color:#dbccb3}button.secondary:hover{background:#e0d2b9}button.quiet{color:var(--ink);background:transparent;border-color:var(--line)}button.quiet:hover{background:#e7decd}.text-button{background:transparent;color:var(--red);padding:5px 9px;font-size:13px;text-decoration:underline;text-underline-offset:3px}.text-button:hover{background:#a82d2510!important}.icon-button{background:transparent;color:var(--muted);font-size:24px;min-width:44px;padding:5px}.danger{background:#a52d28}.is-busy #app button:not(.board-button),.is-busy dialog button{pointer-events:none}.is-busy #connection i{animation:pulse 1s infinite}a{color:var(--red)}header{min-height:82px;padding:10px max(24px,calc((100vw - 1480px)/2));display:flex;align-items:center;gap:20px;background:#86291f;color:#ffecd1;border-bottom:4px solid #c38f3c;box-shadow:0 3px 15px #39261115}.brand{color:inherit;text-decoration:none;display:flex;gap:12px;align-items:center;font-size:20px;letter-spacing:2px}.brand-mark{font:55px/1 Georgia,serif;color:#edc16b}.brand small{font-size:8px;letter-spacing:1.8px;display:block;color:#e4c8a9}.brand b{font-weight:800}header .quiet{color:#ffecd1;border-color:#b76c56;font-size:13px}header .quiet:hover{background:#6c211c}#connection{margin-left:auto;font-size:12px;display:flex;align-items:center;gap:8px;color:#f2d6b6}#connection i{width:8px;height:8px;border-radius:50%;background:#a4c774;box-shadow:0 0 0 3px #bfd59b22}#connection.offline i{background:#edbe6d}main{max-width:1480px;padding:24px 28px;margin:auto}h1,h2,h3,h4,p{margin-top:0}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:500}h1{font-size:38px;line-height:1.15}h2{font-size:25px;line-height:1.25}h3{font-size:15px}h4{margin:20px 0 8px;font-size:14px}p{color:var(--muted)}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:1.8px;font-weight:800;color:var(--red);margin-bottom:8px}label{display:block;font-size:13px;font-weight:650;margin-bottom:6px}input,select{width:100%;min-width:0;min-height:46px;padding:10px 12px;background:#fffdf7;border:1px solid #cdbfa6;color:var(--ink);border-radius:8px;font-size:16px}input:focus,select:focus{border-color:#b07638}.row{display:flex;gap:12px;align-items:center}.row>*{flex:1;min-width:0}.form-error{font-size:13px;line-height:1.5;color:#a42c25;margin:10px 0 0}.form-error:empty{display:none}.help-note{background:#eee5d3;padding:13px 15px;border-radius:8px;font-size:13px}.microcopy{font-size:12px;color:var(--muted);margin:12px 0}.footnote{text-align:center;font-size:11px;color:var(--muted);margin:25px 0 5px}.hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:45px;align-items:center;padding:35px 0 50px;min-height:700px}.hero-copy h1{font-size:76px;letter-spacing:-2px;line-height:1.04;margin:18px 0 22px}.hero-copy h1 em{color:var(--red);font-weight:500}.hero-copy>p{font-size:17px;line-height:1.8;max-width:460px}.hero-board{border:10px solid #e2ce9f;background:#236786;border-radius:38px;overflow:hidden;box-shadow:0 25px 55px #684b2924;transform:rotate(1deg)}.hero-caption{color:#f7e7bf;font:italic 17px Georgia,serif;text-align:center;padding:4px 10px 24px}.lobby-form{background:var(--paper);padding:24px;border-radius:14px;border:1px solid var(--line);box-shadow:0 10px 30px #6b492c0a}.main-options{margin-top:14px}.or{font-size:12px;color:var(--muted);text-align:center;margin:20px 0 12px}#room-code{text-transform:uppercase;letter-spacing:2px}.lobby-form>.text-button{margin:10px 0 -8px}.features{display:flex;gap:20px;font-size:12px;color:var(--muted);margin-top:20px;flex-wrap:wrap}.features span:before{content:'✓';color:#4a783c;margin-right:5px}.saved-seats{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px}.saved-seats>span{font-size:12px;width:100%;color:var(--muted)}.saved-seats button{font-size:12px}.topline{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.topline h1{font-size:30px;margin:0}.room-chip{display:flex;align-items:center;gap:17px;background:var(--paper);border:1px solid var(--line);padding:10px 12px 10px 17px;border-radius:10px}.room-chip span{font-size:9px;letter-spacing:1px;color:var(--muted);display:block}.room-chip b{font-size:19px;letter-spacing:3px}.room-chip button{font-size:12px}.turn-banner{background:#f9f4e8;border:1px solid var(--line);border-left:5px solid #ad9e87;border-radius:12px;padding:18px 22px;display:flex;align-items:center;gap:24px;margin-bottom:16px;min-height:118px}.turn-banner.your-turn{border-left-color:var(--red);background:#fff9e9}.turn-banner>div:first-child{flex:1}.turn-banner .eyebrow{font-size:9px;margin-bottom:4px}.turn-banner h2{font-size:25px;margin:0 0 5px}.turn-banner p{font-size:13px;margin:0;max-width:730px}.turn-controls{display:flex;gap:22px;align-items:center}.turn-buttons{display:flex;gap:8px}.turn-buttons:empty{display:none}.dice{display:flex;gap:7px;align-items:center;flex-shrink:0}.die{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:2px;padding:7px;width:43px;height:43px;border-radius:8px;transform:rotate(-5deg);box-shadow:inset 0 1px 1px #fff7,0 3px 0 #5d331a55;border:1px solid #0002}.die-red{background:#b62a24}.die-gold{background:#e6be56;transform:rotate(6deg)}.pip{width:100%;height:100%;border-radius:50%;background:transparent}.die-red .pip.lit{background:#ffefd1}.die-gold .pip.lit{background:#522d21}.dice>b{font-size:21px;color:var(--muted);margin-left:5px}.score-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.score-seat{display:flex;align-items:center;gap:9px;min-width:0;background:#fffaf090;border:1px solid var(--line);padding:11px 14px;border-radius:9px}.score-seat.current{border-color:#b49562;box-shadow:inset 0 -3px var(--player)}.player-swatch{display:inline-block;width:17px;height:17px;flex-shrink:0;background:var(--player);border:1px solid #705f47;border-radius:4px;box-shadow:inset 0 1px 2px #ffffff66}.score-seat>span:nth-child(2){min-width:0}.score-seat b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.score-seat small{display:block;font-size:10px;font-weight:400;color:var(--muted)}.score-seat>strong{margin-left:auto;font-size:24px;line-height:1.15;text-align:center}.score-seat>strong small{font-size:8px;letter-spacing:1px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:22px}.main-column{min-width:0}.sidebar{display:flex;flex-direction:column;gap:16px;min-width:0}.panel{padding:18px;background:var(--paper);border:1px solid var(--line);border-radius:12px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.panel-heading h3{margin:0}.panel-heading>span{font-size:12px;color:var(--muted)}.player-row{display:flex;gap:10px;align-items:center;border-bottom:1px solid #e9dfce;padding:12px 0}.player-row:last-of-type{border-bottom:0}.player-token{width:39px;height:42px;display:grid;place-items:center;flex-shrink:0;background:#efe5d3;border-radius:8px}.player-token .piece-icon{width:34px;height:34px}.player-detail{min-width:0;flex:1}.player-detail>b{font-size:13px;overflow-wrap:anywhere;display:block}.player-detail small{font-size:10px;display:block;color:var(--muted);margin-top:2px}.player-row .text-button{font-size:11px;padding:5px}.color-picker{border-top:1px solid var(--line);padding-top:17px;margin-top:10px}.color-picker h3{font-size:12px}.color-options{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.color-option{background:#fffdf7;color:var(--ink);border:1px solid var(--line);padding:8px;font-size:12px;justify-content:flex-start}.color-option:hover{background:#f1e5cb!important}.color-option.chosen{border-color:#7e6140;box-shadow:0 0 0 1px #7e6140}.color-option i{width:16px;height:16px;border-radius:3px;background:var(--player);border:1px solid #66523b}.color-option b{margin-left:auto}.lobby-actions{display:flex;gap:8px;margin-top:20px}.lobby-actions>*{flex:1;padding:10px 8px;font-size:13px}.lobby-note{background:var(--paper);padding:22px;border:1px solid var(--line);border-radius:12px;margin-top:18px}.lobby-note h2{font-size:23px;margin-bottom:8px}.lobby-note p{font-size:14px;margin:0;line-height:1.7}.board-wrap{border-radius:15px;background:#246d8d;overflow:hidden;border:1px solid #164c66;box-shadow:0 10px 28px #35454316;scroll-margin-top:15px}.board-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#1d526c;color:#f5e7c9;padding:8px 10px 8px 18px;position:relative;z-index:2}.board-title{font-size:10px;text-transform:uppercase;letter-spacing:1.8px;font-weight:600}.zoom-controls{display:flex;gap:5px}.board-button{background:#346d87;border:1px solid #6891a4;color:#fff5dd;padding:8px 12px;min-width:44px;min-height:44px;font-size:16px;border-radius:7px}.board-button:hover{background:#477f99!important}.board-button:last-child{font-size:11px}.zoom-fit{font-size:12px;min-width:57px}.board-viewport{overflow:auto;max-height:none;aspect-ratio:750/700;position:relative;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch;scrollbar-color:#9abac4 #1f6786;scrollbar-width:thin}.board-canvas{min-width:0;width:100%;line-height:0;margin:0 auto}.board-svg{display:block;width:100%;height:auto;overflow:hidden}.board-svg text{font-family:Georgia,serif;pointer-events:none;user-select:none}.board-svg .tile{stroke:#eed8a1;stroke-width:5;stroke-linejoin:round}.tile-border{fill:none;stroke:#c7aa72;stroke-width:1;pointer-events:none;stroke-linejoin:round}.tile-border.producing{stroke:#fff3b5;stroke-width:4}.terrain-name{font-family:system-ui,sans-serif!important;font-size:7px;letter-spacing:1px;fill:#2c3120;font-weight:700;paint-order:stroke;stroke:#f3e5bc88;stroke-width:2}.tile-number{fill:#f7e2b4;stroke:#846844;stroke-width:1.2;filter:drop-shadow(0 1px 1px #0004)}.number{fill:#2d281f;font-size:20px;font-weight:800}.number.hot{font-size:22px;fill:#b5231c}.dots{font-family:system-ui,sans-serif!important;fill:#3d2c20;font-size:8px;letter-spacing:.5px}.dots.hot{fill:#b5231c}.hex-hit,.port{cursor:pointer}.hex-hit:hover .tile-border{stroke:#fff2ba;stroke-width:4}.port text{fill:#503b27;font-size:12px;font-weight:700}.port .port-label{fill:#fff2d2;font-family:system-ui,sans-serif!important;font-size:10px;paint-order:stroke;stroke:#285e78;stroke-width:3}.road-hit{stroke:transparent;stroke-width:44;stroke-linecap:butt;cursor:pointer}.road-hit:hover,.road-hit:focus-visible{stroke:#ffebb94d;outline:none}.vertex-hit{cursor:pointer}.target-ring{fill:#fff7d4;stroke:#6b4422;stroke-width:2;pointer-events:none}.vertex-hit:hover .target-ring,.vertex-hit:focus-visible .target-ring{fill:#ffd75c;stroke:#fff7cf;stroke-width:3}.vertex-hit:focus-visible{outline:none}.preview-piece{opacity:.8}.robber-piece{pointer-events:none}.placement-bar{background:#fbefd3;padding:11px 15px;display:flex;align-items:center;gap:12px;border-top:1px solid #d6bc88;min-height:56px}.placement-bar p{font-size:12px;margin:0;flex:1;color:#6b573a}.placement-bar p span{white-space:nowrap}.placement-bar .row{flex:0 0 auto}.placement-bar button{font-size:12px;padding:9px 12px}.placement-bar.has-selection{background:#ffefbf}.board-wrap.expanded{position:fixed;inset:12px;z-index:25;display:flex;flex-direction:column;border:2px solid #1d526c;border-radius:12px}.expanded .board-viewport{flex:1;aspect-ratio:auto;max-height:none}.expanded .board-canvas{max-width:none}.expanded .board-svg{margin:auto;max-width:none}.board-expanded{overflow:hidden}.board-expanded:before{content:'';position:fixed;inset:0;background:#172a36e8;z-index:24}.section-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:21px 0 12px}.section-heading h2{font-size:24px;margin:0}.section-heading>span{font-size:11px;color:var(--muted)}.resource-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}.resource-card{border:1px solid #bfa57f;border-bottom:4px solid var(--resource);background:#fffbef;color:var(--ink);display:flex;flex-direction:column;gap:0;overflow:hidden;position:relative;padding:0 0 8px;border-radius:8px;box-shadow:0 3px 0 #d6c8ac}.resource-card:hover{background:#fff4d6!important}.card-illustration{height:78px;width:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,#ffffff33,#ffffffaa),var(--resource);border-bottom:1px solid #bfa57f66}.resource-icon{display:inline-block;width:40px;height:40px;vertical-align:middle;flex-shrink:0}.card-illustration .resource-icon{width:68px;height:68px;filter:drop-shadow(0 2px 1px #0002)}.resource-label{font-size:12px;margin-top:7px;font-weight:700}.resource-card>b{font:700 26px Georgia,serif;line-height:1.2}.build-heading{margin-top:23px}.build-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.build-action{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:9px;display:flex;justify-content:flex-start;text-align:left;gap:9px;padding:12px;min-height:107px}.build-action:hover{background:#f7eacc!important;border-color:#c59f68}.build-action.selected{border:2px solid var(--red);padding:11px;background:#fbe7c5}.build-action[aria-disabled=true]{background:#f5efe2}.build-action[aria-disabled=true] .piece-icon{opacity:.65}.piece-icon{width:42px;height:42px;flex-shrink:0}.build-action-copy{display:flex;flex-direction:column;gap:6px;min-width:0}.build-action-copy>b{font-size:13px}.build-action-copy>small{font-size:11px;font-weight:400;line-height:1.35;color:var(--muted)}.cost-chips{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.cost-chip{display:inline-flex;align-items:center;gap:2px;font-size:10px;color:#62513b;font-weight:400;white-space:nowrap}.cost-chip .resource-icon{width:21px;height:23px}.cost-chip>b{font-size:10px}.cost-chip>span{font-size:9px}.trade-button{width:100%;justify-content:space-between;margin-top:11px;background:#e5dcc6!important;min-height:50px}.trade-button span{font-size:11px;font-weight:400;color:var(--muted)}.development-section{margin-bottom:6px}.development-cards{display:flex;gap:12px;overflow-x:auto;padding:3px 1px 9px;scroll-snap-type:x proximity}.dev-card{display:flex;flex-direction:column;gap:5px;flex:0 0 139px;min-height:188px;background:#f1e7cb;border:3px solid #719754;border-radius:9px;padding:9px;color:var(--ink);box-shadow:0 3px 0 #bbae94;scroll-snap-align:start;text-align:center}.dev-card:hover{background:#ffefc9!important}.dev-card.dev-knight{border-color:#775584}.dev-card.dev-victory{border-color:#d8993e}.dev-icon{width:72px;height:78px;margin:0 auto}.dev-card>b{font-size:12px}.dev-card>small{font-size:10px;font-weight:400;color:var(--muted)}.empty-message{padding:16px 18px;background:#e9dfc950;border:1px dashed #cbbc9f;border-radius:8px;font-size:13px;line-height:1.65;margin:0}.award-cards{display:flex;flex-direction:column;gap:10px}.award-card{display:flex;align-items:center;gap:10px;background:#f8e6b3;border:1px solid #c7a665;border-radius:10px;padding:13px 14px}.award-card>span{font:27px Georgia,serif;color:#8d552b}.award-card b{display:block;font-size:12px}.award-card small{display:block;font-size:10px;color:#7c633e}.award-card strong{margin-left:auto;font-size:11px;white-space:nowrap}.offer{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.offer>b{font-size:13px}.offer p{font-size:12px;line-height:1.8;margin:7px 0}.offer .row button{font-size:12px;padding:10px}.offers-panel{border-color:#c49554}.supply-panel summary,.log-panel summary{cursor:pointer;min-height:30px;font-weight:700;font-size:13px;list-style-position:outside;margin-left:12px}.log-panel summary span{font-weight:400;color:var(--muted);font-size:11px;margin-left:8px}.bank-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;margin-top:16px}.bank-grid>span{display:flex;flex-direction:column;align-items:center}.bank-grid .resource-icon{width:34px}.bank-grid b{font-size:16px}.bank-grid small{font-size:9px;color:var(--muted)}.supply-panel p{font-size:11px;margin:12px 0 0}.activity{max-height:230px;overflow-y:auto;margin-top:15px}.activity p{font-size:12px;line-height:1.5;margin:0;padding:7px 0;border-bottom:1px solid #e9ddc8}.activity p:first-child{color:var(--ink);font-weight:500}.mobile-dock{display:none}dialog{width:min(660px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:30px;border:1px solid #bda680;border-radius:16px;background:var(--paper);color:var(--ink);box-shadow:0 20px 80px #24170766;overscroll-behavior:contain}dialog::backdrop{background:#24241bcc;backdrop-filter:blur(3px)}dialog h2{font-size:30px;margin:10px 35px 15px 0}dialog p,dialog li{font-size:14px;line-height:1.7}dialog li{margin:0 0 10px}dialog ol{padding-left:23px;color:var(--muted)}dialog .close{position:absolute;top:7px;right:7px;background:transparent;color:var(--muted);font-size:29px;padding:0;min-width:44px}dialog .close:hover{background:#e5d8c1}.modal-main{margin-top:18px}.resource-detail{display:flex;align-items:center;gap:20px;margin:15px 0}.resource-detail .resource-icon{width:83px;height:83px;background:#efe2c6;border-radius:12px;padding:9px}.resource-detail p{margin:0}.resource-inputs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:17px 0}.resource-stepper{background:#f4ebd9;border:1px solid #e1d2b7;border-radius:8px;display:flex;flex-direction:column;align-items:center;padding:10px 5px;gap:5px;min-width:0}.resource-stepper label{font-size:12px;margin:0}.resource-stepper small{font-size:9px;color:var(--muted)}.stepper-controls{display:grid;grid-template-columns:1fr 1fr 1fr;width:100%;gap:0;align-items:center}.stepper-button{background:transparent;border:0;color:var(--red);padding:0;font-size:21px;min-width:0;min-height:44px}.stepper-button:hover{background:#dcd0b7!important}.stepper-controls input{padding:5px 0;text-align:center;min-height:40px;border:0;border-radius:0;background:#fffaf0;appearance:textfield;-moz-appearance:textfield}.stepper-controls input::-webkit-inner-spin-button{appearance:none}.selection-count{font-weight:700;color:var(--red);padding:10px 0;border-top:1px solid var(--line)}#resource-confirm{width:100%}.bank-trade{border-bottom:1px solid var(--line);padding-bottom:23px;margin-bottom:23px}.bank-trade>.row{margin-top:12px}.trade-arrow{flex:0 0 auto;align-self:flex-end;padding:10px 0;color:var(--muted)}.bank-trade .help-note{font-size:12px;margin:13px 0}.dev-modal-icon{width:110px;height:110px;border-radius:12px;background:#eee2c9;border:3px solid #739253;display:grid;place-items:center;margin-top:15px}.dev-modal-icon.dev-knight{border-color:#775584}.dev-modal-icon.dev-victory{border-color:#d8993e}.cost-guide>div{display:flex;gap:14px;padding:16px 0;border-top:1px solid var(--line)}.cost-guide h3{margin-bottom:9px}.cost-guide p{font-size:12px;margin:10px 0 0}.cost-guide .piece-icon{width:50px;height:50px}.cost-guide .cost-chip>span{font-size:12px}.cost-guide .cost-chip>b{font-size:12px}.cost-guide .cost-chips{gap:12px}.victim-list{display:flex;flex-direction:column;gap:10px}.victim-list button{justify-content:flex-start}.victim-list small{margin-left:auto;color:var(--muted)}#toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,15px);max-width:min(90%,640px);padding:13px 20px;background:#352c21;color:#fff2d6;border:1px solid #776047;border-radius:10px;box-shadow:0 8px 30px #0003;font-size:14px;opacity:0;pointer-events:none;transition:.18s;z-index:100;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}.winner{background:#f8e9bd!important;border-color:#c18b39!important}@keyframes pulse{50%{opacity:.4}}
@media(min-width:1450px){.board-viewport{max-height:none}.game-layout{grid-template-columns:minmax(0,1fr) 330px}}
@media(max-width:1100px){main{padding:22px}.game-layout{grid-template-columns:minmax(0,1fr) 275px;gap:16px}.sidebar{gap:12px}.panel{padding:15px}.hero{gap:25px}.hero-copy h1{font-size:65px}.build-action .piece-icon{width:32px;height:34px}.build-action{padding:10px;gap:6px}.cost-chip>span{display:none}.cost-chips{gap:5px}.turn-controls{gap:12px}.cost-guide .cost-chip>span{display:inline}.score-seat{padding:10px}.turn-banner h2{font-size:23px}}
@media(max-width:900px){.hero{grid-template-columns:1fr 1fr;gap:20px;padding-top:15px;min-height:0}.hero-copy h1{font-size:53px}.hero-copy>p{font-size:15px}.main-options{flex-direction:column;align-items:stretch;gap:8px}.lobby-form{padding:18px}.hero-board{border-width:7px}.hero-caption{font-size:14px}.game-layout{grid-template-columns:minmax(0,1fr) 245px;gap:13px}.turn-banner{padding:16px;gap:14px}.turn-banner h2{font-size:22px}.turn-banner p{font-size:12px}.turn-controls{flex-direction:column;gap:8px}.turn-buttons button{font-size:12px}.section-heading h2{font-size:21px}.section-heading>span{font-size:10px}.build-actions{gap:8px}.build-action{align-items:flex-start}.build-action .piece-icon{width:26px;height:30px}.build-action-copy>b{font-size:12px}.build-action-copy>small{font-size:10px}.board-title{display:none}.board-toolbar{justify-content:space-between;padding:7px 10px}.zoom-controls{justify-content:space-between;width:100%}.board-button{font-size:15px;flex:0 0 44px}.board-button.zoom-fit{flex:1;font-size:12px}.board-button:last-child{flex:1;font-size:11px}.resource-cards{gap:7px}.card-illustration{height:67px}.card-illustration .resource-icon{width:58px;height:58px}.resource-label{font-size:11px}.color-options{gap:5px}.lobby-actions{flex-direction:column}.trade-button{font-size:13px}.trade-button span{font-size:10px;max-width:45%;text-align:right}.score-seat{gap:7px}.score-seat b{font-size:11px}.score-seat .player-swatch{width:13px;height:13px}.score-seat>strong{font-size:21px}.score-seat small{font-size:9px}}
@media(max-width:760px){header{min-height:71px;padding:8px 15px;gap:12px}.brand{font-size:16px;letter-spacing:1.5px;gap:8px}.brand-mark{font-size:44px}.brand small{font-size:6px;letter-spacing:1.2px}header .quiet{font-size:12px;padding:8px 11px}header .quiet span{display:none}#connection{font-size:10px;gap:5px}#connection i{width:6px;height:6px}main{padding:17px 14px calc(106px + env(safe-area-inset-bottom))}.hero{display:flex;flex-direction:column;gap:30px;padding:12px 0 0}.hero-copy{width:100%;max-width:520px}.hero-copy h1{font-size:64px;margin:13px 0 19px}.hero-copy>.eyebrow{font-size:9px}.hero-copy>p{max-width:none}.hero-board{width:min(100%,510px);transform:none;border-radius:25px}.hero .main-options{flex-direction:row}.lobby-form{padding:20px}.features{justify-content:center;gap:15px;font-size:11px}.topline{gap:12px;align-items:center;margin-bottom:14px}.topline h1{font-size:24px}.topline .eyebrow{font-size:8px;letter-spacing:1px}.room-chip{padding:7px 9px;gap:8px}.room-chip b{font-size:15px;letter-spacing:2px}.room-chip span{font-size:8px}.room-chip button{font-size:0;min-width:44px;padding:7px}.room-chip button:after{content:'Invite';font-size:12px}.turn-banner{padding:14px;min-height:0;margin-bottom:12px;gap:10px}.turn-banner h2{font-size:22px}.turn-banner p{font-size:12px;line-height:1.6}.turn-banner .turn-buttons{display:none}.turn-controls:has(.dice){align-self:flex-start;padding-top:15px}.die{width:31px;height:31px;padding:5px;border-radius:6px;gap:1px}.dice{gap:4px}.dice>b{font-size:16px;margin-left:2px}.score-strip{gap:6px;margin-bottom:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.score-seat{padding:8px 10px;border-radius:8px;min-height:50px;gap:7px}.score-seat b{font-size:12px}.score-seat small{font-size:9px}.score-seat>strong{font-size:22px}.score-seat>strong small{font-size:8px}.score-seat .player-swatch{width:15px;height:15px}.game-layout{display:flex;flex-direction:column;gap:20px}.sidebar{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:12px}.sidebar>.panel:first-of-type,.sidebar>.offers-panel{grid-column:1/-1}.sidebar>.quiet,.sidebar>.text-button{grid-column:auto;font-size:12px}.player-row{padding:10px 0}.player-detail small{font-size:11px}.player-detail>b{font-size:14px}.panel{padding:16px}.color-options{grid-template-columns:repeat(4,1fr)}.color-option{font-size:11px;gap:5px}.color-option b{display:none}.color-option.chosen span:after{content:' ✓'}.lobby-actions{flex-direction:row}.lobby-actions button{flex:1;font-size:14px}.board-wrap{border-radius:12px}.board-toolbar{padding:6px 8px}.board-viewport{max-height:none}.board-button{min-height:44px}.placement-bar{min-height:55px;padding:10px 12px;flex-wrap:wrap;gap:8px}.placement-bar p{font-size:11px;line-height:1.5}.placement-bar.has-selection .row{width:100%;flex:1 0 100%}.placement-bar button{min-height:44px}.section-heading{margin-top:19px}.section-heading h2{font-size:23px}.section-heading>span{font-size:10px}.resource-cards{gap:7px}.card-illustration{height:66px}.card-illustration .resource-icon{width:59px;height:59px}.resource-card{padding-bottom:7px}.resource-label{font-size:11px}.resource-card>b{font-size:23px}.build-actions{gap:8px}.build-action{padding:10px;min-height:106px}.build-action.selected{padding:9px}.build-action .piece-icon{width:29px;height:34px}.build-action-copy>b{font-size:12px}.build-action-copy>small{font-size:10px}.cost-chips{gap:4px}.cost-chip .resource-icon{width:19px;height:22px}.cost-chip b{font-size:10px}.trade-button{padding:11px 14px;font-size:14px}.trade-button span{font-size:11px}.award-card{padding:12px 10px;gap:6px}.award-card>b{font-size:11px}.award-card>span{font-size:22px}.award-card strong{font-size:10px}.award-card small{font-size:9px}.mobile-dock{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;min-height:77px;padding:10px max(14px,env(safe-area-inset-left)) calc(10px + env(safe-area-inset-bottom));background:#fff9edfa;border-top:2px solid #b98b4a;box-shadow:0 -5px 20px #4a352919;align-items:center;gap:12px}.mobile-dock>div:first-child{flex:1;min-width:0}.mobile-dock b{font-size:13px;display:block}.mobile-dock small{font-size:10px;line-height:1.4;display:block;color:var(--muted);overflow:hidden;max-height:28px}.dock-buttons{display:flex;gap:6px;flex-shrink:0}.dock-buttons button{font-size:12px;padding:11px 13px}.dock-buttons button.secondary:last-child{padding:11px 10px}.board-expanded .mobile-dock{display:none}.board-wrap.expanded{inset:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px);border-radius:0;border:0}.expanded .board-toolbar{padding-top:10px;padding-bottom:10px}.expanded .placement-bar{padding-bottom:max(12px,env(safe-area-inset-bottom))}.expanded .board-viewport{aspect-ratio:auto}.board-expanded .placement-bar button{font-size:14px}.resource-inputs{grid-template-columns:1fr;gap:7px}.resource-stepper{display:grid;grid-template-columns:36px minmax(60px,1fr) 147px;gap:8px;padding:8px 10px;align-items:center}.resource-stepper>.resource-icon{grid-row:1/3;width:32px;height:36px}.resource-stepper>label{grid-column:2;font-size:14px;text-align:left}.resource-stepper>small{grid-column:2;grid-row:2;font-size:10px}.stepper-controls{grid-column:3;grid-row:1/3;grid-template-columns:47px 53px 47px}.stepper-button{min-width:44px}.stepper-controls input{font-size:18px;min-height:44px}.resource-stepper>label,.resource-stepper>small{line-height:1.1}.resource-detail .resource-icon{width:70px;height:70px}.cost-guide .cost-chip>span{display:inline}.cost-guide .piece-icon{width:36px;height:42px}.cost-guide .cost-chips{gap:8px}dialog{padding:25px 20px;width:calc(100% - 20px);max-height:calc(100dvh - 30px);border-radius:14px}dialog h2{font-size:28px}dialog .row{gap:9px}dialog .row button{font-size:12px}.dev-card{flex-basis:135px}.resource-inputs{margin:15px 0}.bank-trade .help-note{font-size:12px}#toast{bottom:calc(94px + env(safe-area-inset-bottom));max-width:calc(100% - 28px);font-size:13px;padding:12px 17px}.board-expanded #toast{bottom:110px}.footnote{font-size:10px}.lobby-note p{font-size:13px}}
@media(max-width:380px){header{padding:8px 11px;gap:8px}.brand{font-size:14px}.brand-mark{font-size:36px}.brand small{font-size:5px}#connection span{max-width:60px;line-height:1.3}header .quiet{padding:7px;font-size:11px}main{padding-left:10px;padding-right:10px}.topline h1{font-size:21px}.room-chip{padding:6px}.hero-copy h1{font-size:56px}.hero .main-options{flex-direction:column}.lobby-form{padding:17px}.section-heading h2{font-size:21px}.section-heading>span{font-size:9px}.resource-cards{gap:5px}.card-illustration{height:58px}.card-illustration .resource-icon{width:50px;height:50px}.build-action .piece-icon{display:none}.build-action-copy{width:100%}.cost-chip .resource-icon{width:20px}.mobile-dock{gap:8px}.mobile-dock button{padding:11px 10px;font-size:11px}.resource-stepper{grid-template-columns:30px minmax(40px,1fr) 138px;padding:7px;gap:5px}.stepper-controls{grid-template-columns:44px 50px 44px}.sidebar{grid-template-columns:1fr}.sidebar>*{grid-column:1!important}.color-option{font-size:10px}.color-option i{width:13px;height:13px}.color-option{gap:4px;padding:6px}.turn-banner:has(.dice){align-items:flex-start}.turn-controls{max-width:70px}.dice{flex-wrap:wrap;justify-content:center}.dice b{font-size:12px;width:100%;text-align:center}.score-strip{gap:5px}.hero .eyebrow{font-size:8px}}
@media(max-height:500px) and (orientation:landscape){.board-wrap.expanded{inset:0;border-radius:0}.expanded .board-toolbar{min-height:52px;padding:4px 12px}.expanded .placement-bar{min-height:54px;flex-wrap:nowrap;padding:5px 12px}.expanded .placement-bar .row{flex:0 0 auto;width:auto}.expanded .placement-bar button{padding:7px 13px}.expanded .board-title{display:block}.expanded .zoom-controls{width:auto}.expanded .board-viewport{aspect-ratio:auto}.mobile-dock{min-height:60px;padding-top:6px;padding-bottom:6px}.hero{min-height:0}dialog{max-height:calc(100dvh - 16px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Account identity, board options and progression */
[hidden]{display:none!important}.auth-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:15px}#auth-form label,#profile-form>label,.account-details label{margin-top:14px}.account-prompt,.home-profile{display:flex;align-items:center;gap:10px;background:#fff7e6;border:1px solid #d9bd88;border-radius:12px;padding:14px;margin:20px 0}.account-prompt>span{flex:1;font-size:12px;color:var(--muted)}.account-prompt button{font-size:12px;padding:8px 11px}.home-profile>span{flex:1;font-size:13px}.home-profile small{display:block;color:var(--muted);font-size:11px}.avatar-photo,.score-avatar{width:44px;height:44px;flex-shrink:0;border-radius:50%;object-fit:cover;border:2px solid #ae936e;background:#e7d6b4;box-shadow:0 2px 5px #0002}.avatar-initial{display:inline-grid;place-items:center;font-size:20px;font-weight:700;color:#684425;background:linear-gradient(145deg,#f0dca7,#dcc090)}.frame-bronze{border:3px solid #b87c4c;box-shadow:0 0 0 2px #734d3322}.frame-silver{border:3px solid #a8b9c9;box-shadow:0 0 0 2px #d8e4e988}.frame-gold{border:3px solid #d2a449;box-shadow:0 0 0 2px #fbde9188,0 0 10px #e9c25a55}.score-avatar{width:29px;height:29px;font-size:13px}.profile-photo-editor{display:flex;gap:20px;align-items:center;margin:20px 0}.profile-photo-editor .avatar-photo{width:90px;height:90px;font-size:36px}.profile-photo-editor>div:last-child{flex:1;min-width:0}.profile-photo-editor small{font-size:11px;color:var(--muted);display:block;margin-top:5px}input[type=file]{font-size:12px;padding:7px;max-width:100%}.checkbox-line{display:flex;gap:8px;align-items:center;font-size:12px;margin-top:8px}.checkbox-line input{width:20px;min-height:20px}.account-details{border-top:1px solid var(--line);margin-top:20px;padding:15px 0}.account-details summary{cursor:pointer;font-weight:700;font-size:13px}.board-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:20px 0}.board-presets button{font-size:12px;padding:9px 5px}.board-toggles{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:22px}.toggle-row{display:flex;gap:11px;align-items:flex-start;background:#f3e9d6;border:1px solid var(--line);padding:12px;border-radius:9px;margin:0;cursor:pointer}.toggle-row>input{width:22px;min-height:22px;height:22px;flex-shrink:0;margin:2px 0;accent-color:var(--red)}.toggle-row b{display:block;font-size:13px}.toggle-row small{display:block;font-size:11px;color:var(--muted);line-height:1.55;margin-top:4px;font-weight:400}.board-selects{display:grid;grid-template-columns:1fr 1fr;gap:15px}.board-selects label{font-size:12px}.board-selects select{font-size:13px}.board-settings-button{width:100%;margin-top:10px}#pref-motion{margin:8px 0 18px}#modal-content>.toggle-row{margin-bottom:18px}.level-hero{display:flex;gap:18px;align-items:center;padding:12px 0}.level-hero .avatar-photo{width:75px;height:75px;font-size:30px}.level-hero h2{font-size:28px;margin:0 0 5px}.level-hero span{font-size:12px;color:var(--muted)}.xp-track{height:13px;border-radius:10px;background:#ded0b4;overflow:hidden;margin:14px 0 21px}.xp-track i{height:100%;display:block;border-radius:10px;background:linear-gradient(90deg,#b48231,#f2cb71);transition:width .6s ease}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:25px}.profile-stats span{text-align:center;font-size:11px;color:var(--muted);padding:12px;background:#efe4cd;border-radius:8px}.profile-stats b{display:block;font:700 28px Georgia,serif;color:var(--ink)}.challenge-grid{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.challenge{display:flex;align-items:center;gap:12px;padding:13px;background:#f3ead8;border:1px solid #dfd0b4;border-radius:9px}.challenge>span{font-size:24px;color:#a1885b}.challenge.earned{background:#eff0d9;border-color:#a5ad72}.challenge.earned>span{color:#b6872d}.challenge b{font-size:13px;display:block}.challenge small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.challenge strong{margin-left:auto;font-size:11px;white-space:nowrap}.reward-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0 20px}.reward{padding:15px;background:#eee4d0;border-radius:9px;border:1px solid #ded0b2}.reward b{font-size:12px;display:block}.reward small{font-size:10px;color:var(--muted)}.reward.unlocked{border-color:#c59e52;background:#f8e9bb}
/* Two-sided trade baskets: all five resources on both sides. */
.trade-tabs{display:flex;gap:10px;margin:18px 0 23px}.trade-tabs>button{flex:1}.trade-tabs button[aria-pressed=true]{background:var(--red);color:#fff4d5}.trade-partners{display:flex;gap:8px;margin:12px 0 20px;flex-wrap:wrap}.trade-partner{background:#f4e9d2;color:var(--ink);border:1px solid #d7c6a7;flex:1;text-align:left;font-size:12px;justify-content:flex-start;padding:10px;min-width:115px}.trade-partner .avatar-photo{width:30px;height:30px;font-size:15px}.trade-partner small{display:block;font-size:10px;font-weight:400;color:var(--muted)}.trade-partner.chosen{border:2px solid var(--red);padding:9px;background:#f8e6c0}.trade-partner:hover{background:#e8d5b0!important}.exchange-side{padding:14px;background:#f4e6cc;border:1px solid #ddc7a1;border-radius:10px;margin:12px 0}.exchange-side.receive-side{background:#e8eddf;border-color:#c4cfb2}.exchange-side h3,#bank-trade h3{margin-bottom:5px;font-size:15px}.exchange-side h3 small,#bank-trade h3 small{font-size:11px;color:var(--muted);font-weight:400;display:block;margin-top:4px}.trade-summary{font-size:13px;background:#efe4ce;border-radius:9px;padding:14px;font-weight:600;color:#6b4825;line-height:1.7}.harbor-rates{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:14px 0 22px}.harbor-rates>span{display:flex;flex-direction:column;align-items:center;background:#e2ece9;border:1px solid #b9cec6;border-radius:8px;padding:10px 4px}.harbor-rates b{font-size:16px}.harbor-rates small{font-size:10px;color:var(--muted)}#offer-submit,#bank-basket-submit{width:100%}
/* Keep turn ownership and actions with the board instead of the page heading. */
.board-turn-strip{display:flex;align-items:center;gap:11px;padding:10px 16px;background:#fcf3dc;border-bottom:3px solid var(--active-color);color:#49351f;min-height:68px}.board-turn-strip>div:first-of-type{flex:1;min-width:0}.board-turn-strip b{font-size:14px;display:block}.board-turn-strip small{font-size:11px;display:block;color:#7b6548}.board-turn-strip .avatar-photo{width:38px;height:38px;font-size:18px}.board-turn-strip .dice-result{margin-left:auto}.board-action-buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0}.board-action-buttons:empty{display:none}.board-viewport{height:clamp(340px,calc(100dvh - 285px),710px);aspect-ratio:auto}.board-canvas{perspective:1600px}.board-wrap[data-depth=on] .board-svg{transform:rotateX(9deg);transform-origin:50% 50%;filter:drop-shadow(0 7px 3px #13374644)}.board-wrap[data-depth=off] .tile-extrusion{display:none}.board-wrap[data-depth=on] .tile{filter:drop-shadow(0 2px 1px #3c352a22)}.wooden-piece{filter:drop-shadow(2px 4px 1px #2a2b284f)}.board-wrap[data-depth=off] .wooden-piece{filter:none}.expanded .board-viewport{height:auto;min-height:0}.expanded .board-turn-strip{flex-shrink:0}.expanded .board-toolbar,.expanded .placement-bar{flex-shrink:0}main{padding-bottom:115px}.mobile-dock{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;min-height:76px;padding:11px max(28px,calc((100vw - 1424px)/2)) calc(11px + env(safe-area-inset-bottom));background:#fff9edf7;border-top:2px solid #c09c5a;box-shadow:0 -3px 20px #5b41251a;align-items:center;gap:20px;backdrop-filter:blur(8px)}.mobile-dock>div:first-child{flex:1;min-width:0}.mobile-dock b{font-size:14px;display:block}.mobile-dock small{font-size:11px;display:block;color:var(--muted);margin-top:2px}.dock-buttons{display:flex;gap:9px}.board-expanded .mobile-dock{display:none}.topline{margin-bottom:13px}.topline h1{font-size:25px}.score-strip{margin-bottom:12px}.score-seat .player-swatch{width:9px;height:20px;border-radius:3px}.score-seat{gap:7px}.score-seat>span:nth-child(3){min-width:0}
/* Six-sided cubes: opposite faces add to seven; the server chooses the result. */
.physical-dice{--die-size:37px;--half-die:18.5px;display:flex;gap:19px;justify-content:center;align-items:center;width:118px;height:65px;perspective:650px;flex-shrink:0}.die-toss{position:relative;width:var(--die-size);height:var(--die-size);transform-style:preserve-3d}.dice-cube{width:var(--die-size);height:var(--die-size);position:relative;transform-style:preserve-3d;transform:rotateX(var(--rx)) rotateY(var(--ry));--face:#b72720;--pip:#fff2d5}.dice-color-1{--face:#e5b845;--pip:#563821}.dice-emerald.dice-color-0{--face:#186c59}.dice-emerald.dice-color-1{--face:#dcf1d3;--pip:#2d6655}.dice-midnight.dice-color-0{--face:#28334b;--pip:#d9b76b}.dice-midnight.dice-color-1{--face:#475d77;--pip:#f4e4b8}.cube-face{position:absolute;inset:0;background:var(--face);border:1px solid #0003;border-radius:6px;backface-visibility:hidden;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:2px;padding:6px;box-shadow:inset 2px 2px 4px #ffffff5c,inset -2px -3px 4px #0004}.face-1{transform:translateZ(var(--half-die))}.face-2{transform:rotateY(180deg) translateZ(var(--half-die))}.face-3{transform:rotateX(90deg) translateZ(var(--half-die))}.face-4{transform:rotateX(-90deg) translateZ(var(--half-die))}.face-5{transform:rotateY(90deg) translateZ(var(--half-die))}.face-6{transform:rotateY(-90deg) translateZ(var(--half-die))}.cube-pip{border-radius:50%;background:transparent}.cube-pip.visible{background:var(--pip);box-shadow:inset 1px 1px 1px #0005,0 1px 0 #fff2}.cube-shadow{position:absolute;left:-10%;right:-10%;height:12px;bottom:-19px;border-radius:50%;background:#5c391e33;filter:blur(3px)}.dice-result{display:flex;align-items:center;gap:7px;flex-shrink:0}.dice-result>b{font-size:22px;color:#775120}.dice-result>small{max-width:85px;font-size:10px}.dice-result .physical-dice{transform:scale(.8);margin:-7px -10px}.dice-roll-notice{position:fixed;z-index:60;top:50%;left:50%;transform:translate(-50%,-50%);width:310px;padding:22px 25px 18px;background:linear-gradient(150deg,#fdf0d3,#e4c792);border:2px solid #c2a26b;border-radius:22px;box-shadow:0 20px 85px #251a1366;pointer-events:none;text-align:center;animation:roll-tray-in .16s ease-out}.roll-owner{display:flex;align-items:center;justify-content:center;gap:12px;font-size:12px;color:#7a5832;margin-bottom:23px}.roll-owner b{display:block;font-size:17px;color:#48331f}.roll-owner .avatar-photo{width:38px;height:38px;font-size:17px}.dice-roll-notice .physical-dice{--die-size:56px;--half-die:28px;width:100%;height:100px;gap:48px}.dice-roll-notice .cube-face{padding:9px;gap:3px;border-radius:9px}.roll-total{display:block;font:700 40px Georgia,serif;margin-top:9px;color:#6e4527}.full-motion .roll-total{animation:reveal-total 1.35s both}.tumbling .dice-cube{animation:cube-tumble 1.25s cubic-bezier(.17,.59,.32,1) both}.tumbling .die-toss{animation:die-bounce 1.25s ease-out both}.tumbling .die-toss-1{animation-delay:.09s}.tumbling .die-toss-1 .dice-cube{animation-delay:.09s}.tumbling .cube-shadow{animation:shadow-bounce 1.25s ease-out both}.tumbling .die-toss-1 .cube-shadow{animation-delay:.09s}.dice-roll-notice.reduced-motion{animation:roll-tray-in .1s;opacity:.97}@keyframes cube-tumble{0%{transform:rotateX(calc(var(--rx) - 670deg)) rotateY(calc(var(--ry) + 490deg)) rotateZ(-31deg)}38%{transform:rotateX(calc(var(--rx) - 360deg)) rotateY(calc(var(--ry) + 250deg)) rotateZ(24deg)}70%{transform:rotateX(calc(var(--rx) - 110deg)) rotateY(calc(var(--ry) + 90deg)) rotateZ(-13deg)}88%{transform:rotateX(calc(var(--rx) + 14deg)) rotateY(calc(var(--ry) - 9deg)) rotateZ(4deg)}100%{transform:rotateX(var(--rx)) rotateY(var(--ry)) rotateZ(0)}}@keyframes die-bounce{0%{transform:translate(-24px,-30px) scale(.84)}28%{transform:translate(10px,-43px) scale(1.06)}49%{transform:translate(2px,6px) scale(1,.94)}65%{transform:translate(-4px,-17px)}79%{transform:translate(1px,3px)}89%{transform:translate(0,-5px)}100%{transform:translate(0,0)}}@keyframes shadow-bounce{0%,28%{opacity:.15;transform:scale(.65)}49%,79%{opacity:.8;transform:scale(1.1)}65%{opacity:.25;transform:scale(.8)}100%{opacity:.7;transform:scale(1)}}@keyframes reveal-total{0%,78%{opacity:0;transform:translateY(4px)}100%{opacity:1;transform:translateY(0)}}@keyframes roll-tray-in{from{opacity:0;transform:translate(-50%,-46%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}body[data-motion=off] *,body[data-motion=reduced] .board-svg{animation:none!important;transition:none!important}body[data-motion=off] .board-svg,body[data-motion=reduced] .board-svg{transform:none!important}
@media(max-width:1100px){.score-avatar{display:none}.score-seat>span:nth-child(3){min-width:0}.board-turn-strip .dice-result>small{display:none}.topline h1{font-size:23px}.board-turn-strip b{font-size:13px}#account-button{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media(max-width:760px){header{gap:8px}.brand small{display:none}.brand{font-size:14px}.brand-mark{font-size:35px}#connection{margin-left:auto}#account-button{font-size:10px;max-width:112px;padding:8px}header #help{font-size:11px;padding:8px}.account-prompt{flex-wrap:wrap}.account-prompt>span{flex:1 0 100%}.account-prompt button{flex:1}.board-presets{grid-template-columns:1fr 1fr}.board-toggles{grid-template-columns:1fr}.board-selects{grid-template-columns:1fr}.board-selects select{font-size:16px}.board-turn-strip{padding:8px 10px;min-height:68px;gap:8px}.board-turn-strip .avatar-photo{width:31px;height:31px;font-size:16px}.board-turn-strip b{font-size:12px;line-height:1.4}.board-turn-strip small{font-size:9px}.board-turn-strip .dice-result .physical-dice{transform:scale(.64);margin:-11px -18px}.board-turn-strip .dice-result>b{font-size:18px}.board-viewport{height:clamp(290px,calc(100dvh - 280px),570px)}.board-action-buttons{gap:6px}.board-action-buttons button{font-size:12px}.placement-bar{position:relative}.placement-bar p{flex:1 0 100%;font-size:11px}.placement-bar .board-action-buttons{flex:1}.placement-bar .board-action-buttons button{flex:1}.placement-bar.has-selection .board-action-buttons{width:100%}.mobile-dock{padding:9px 13px calc(9px + env(safe-area-inset-bottom));gap:10px;min-height:72px}.mobile-dock b{font-size:12px}.mobile-dock small{font-size:10px}.dock-buttons button{font-size:12px;padding:10px 12px}.profile-photo-editor{gap:13px;align-items:flex-start}.profile-photo-editor .avatar-photo{width:65px;height:65px;font-size:27px}.reward-grid{grid-template-columns:1fr}.profile-stats b{font-size:25px}.level-hero .avatar-photo{width:58px;height:58px;font-size:24px}.level-hero h2{font-size:25px}.level-hero{gap:13px}.challenge{gap:9px;padding:12px 10px}.challenge strong{font-size:10px}.challenge b{font-size:12px}.challenge small{font-size:10px}.trade-partner{flex:1 0 28%;min-width:92px;font-size:11px;padding:8px;gap:5px}.trade-partner .avatar-photo{width:25px;height:25px;font-size:14px}.trade-partner.chosen{padding:7px}.exchange-side{padding:10px}.exchange-side .resource-stepper{background:#fffaf088}.trade-summary{font-size:12px}.score-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.score-seat{min-height:43px;padding:6px 9px}.score-avatar{display:block;width:24px;height:24px;font-size:12px}.score-seat small{font-size:8px}.score-seat b{font-size:11px}.score-seat>strong{font-size:18px}.score-seat .player-swatch{width:6px;height:15px}.topline h1{font-size:21px}.room-chip button{font-size:0}.dice-roll-notice{width:285px}.expanded .board-turn-strip{min-height:60px}.board-wrap.expanded .board-viewport{height:auto}.expanded .placement-bar{min-height:60px}.expanded .board-turn-strip .dice-result{display:none}}
@media(max-width:390px){.brand{font-size:12px;letter-spacing:1px}.brand-mark{font-size:31px}.brand{gap:5px}#connection span{display:none}#account-button{max-width:104px}header{padding:8px 10px}.score-avatar{display:none}.board-turn-strip .avatar-photo{display:none}.board-turn-strip .dice-result .physical-dice{margin-left:-22px;margin-right:-21px}.exchange-side .resource-stepper{grid-template-columns:25px minmax(33px,1fr) 132px;gap:4px;padding:5px}.exchange-side .stepper-controls{grid-template-columns:44px 44px 44px}.exchange-side .resource-stepper .resource-icon{width:25px}.trade-partner{min-width:85px}.trade-partner .avatar-photo{display:none}.board-action-buttons button{font-size:11px;padding:8px}.score-seat .player-swatch{width:7px}.board-turn-strip>div:first-of-type{min-width:0}}
@media(max-height:500px) and (orientation:landscape){.expanded .board-turn-strip{min-height:42px;padding:3px 14px}.expanded .board-turn-strip .avatar-photo{width:28px;height:28px;font-size:14px}.expanded .board-turn-strip .dice-result{display:none}.expanded .board-toolbar{min-height:48px;padding:2px 12px}.expanded .placement-bar{min-height:52px}.expanded .placement-bar p{flex:1}.expanded .board-action-buttons{flex:0 0 auto}.dice-roll-notice{padding:12px;width:280px}.dice-roll-notice .roll-owner{margin:0 0 10px}.dice-roll-notice .physical-dice{height:75px}.roll-total{font-size:28px}}
@media(prefers-reduced-motion:reduce){.tumbling *{animation:none!important}.roll-total{animation:none!important}.board-svg{transform:none!important}}

.reward-xp{font-size:3rem;font-weight:850;color:#246548;margin:16px 0}.earned-badge{padding:14px;border:1px solid #d3ad53;border-radius:12px;background:#fff6da;margin:10px 0;display:grid;gap:4px}.earned-badge span{font-size:.9rem;color:#645845}

.release-badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:0;padding:2px 6px;background:#e4ecdc;color:#385333;border:1px solid #b9ccab;border-radius:5px;vertical-align:middle}.setup-hint{padding:12px 14px;background:#eaf0e0;border-left:3px solid #5b7846;border-radius:5px;font-size:13px;line-height:1.6;margin:12px 0}.board-toolbar{flex-wrap:wrap;gap:8px}.zoom-controls{flex-wrap:wrap}.settings-shortcut{background:#e9efdd!important;color:#385333!important;border:1px solid #becfaf!important;font-weight:750}.board-title{flex:1}@media(max-width:600px){.board-toolbar .board-title{display:none}.board-toolbar .zoom-controls{width:100%;justify-content:space-between;gap:4px}.settings-shortcut{font-size:11px!important;padding:7px!important}.release-badge{font-size:8px;padding:1px 3px}}

.start-options{margin-bottom:16px}.start-options h2,.opening-panel h2{margin:6px 0 12px;font-size:22px}.start-options select{width:100%;margin-bottom:12px}.start-options .toggle-row{margin-bottom:15px}.opening-panel{margin-bottom:16px}.opening-results{display:flex;gap:10px;flex-wrap:wrap}.opening-seat{flex:1;min-width:115px;padding:12px;border:1px solid var(--line);background:#f8f1df;border-radius:12px;display:grid;gap:5px;text-align:center;justify-items:center}.opening-seat strong{font-size:28px;color:#956125}.opening-seat small{font-size:11px}.opening-winner{border:2px solid #c4983e;background:#fff3c9}.blind-notice{padding:12px 15px;background:#e5eded;color:#345962;border-radius:10px;border:1px solid #b6c8c9}.league-badge{display:inline-block;font-size:12px;font-weight:800;padding:5px 9px;border-radius:8px;white-space:nowrap;border:1px solid}.league-bronze{background:#f0dfce;color:#83512c;border-color:#c29b74}.league-silver{background:#e6ebef;color:#56636d;border-color:#aab7c1}.league-gold{background:#fff0bf;color:#876011;border-color:#d2ac4e}.league-platinum{background:linear-gradient(130deg,#d6eeee,#f2edff);color:#3b6570;border-color:#97bfc8}.league-milestones{display:flex;gap:8px;flex-wrap:wrap}.league-milestones>div{flex:1;min-width:100px}.league-milestones small{display:block;font-size:11px;margin:6px}.leaderboard-scroll{overflow-x:auto;margin:18px 0}.leaderboard-table{width:100%;border-collapse:collapse;font-size:13px;min-width:490px}.leaderboard-table td,.leaderboard-table th{padding:12px 8px;text-align:left;border-bottom:1px solid var(--line)}.leaderboard-table small{display:block;font-size:10px;color:var(--muted)}.leaderboard-table .avatar-photo{width:25px;height:25px;font-size:13px;vertical-align:middle;margin-right:7px;display:inline-flex}.leaderboard-table th{font-size:11px;color:var(--muted)}
