:root{font-family:Arial,Helvetica,sans-serif;font-synthesis:none;color-scheme:dark;--catan-red: #a50d24;--sunset: #ec591b;--grain: #ffd447;--parchment: #fff3d3;--burgundy: #260e16;--sea: var(--burgundy);--surface: #37151e;--raised: #4b2029;--hover: #63303a;--ink: var(--parchment);--muted: #dbc1b3;--border: #79454b;--success: #bdd7aa;--error: #762a36;color:var(--ink);background:var(--burgundy)}*{box-sizing:border-box}body{margin:0;border-top:4px solid var(--catan-red)}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button{border:1px solid var(--border);background:var(--raised);color:var(--ink);border-radius:8px;padding:13px 18px;min-height:46px;cursor:pointer;font-weight:700}button:hover{background:var(--hover)}button:disabled{opacity:.45;cursor:wait}button[aria-pressed=true],button.primary{background:var(--grain);color:var(--burgundy);border-color:var(--grain)}:focus-visible{outline:3px solid var(--grain);outline-offset:4px}a{color:var(--grain);text-underline-offset:4px}header{display:flex;align-items:center;gap:24px;padding:16px 0;border-bottom:1px solid var(--border)}.brand{display:inline-flex;align-items:center;flex:0 0 auto;border-radius:8px}.brand-symbol{display:block;width:64px;height:64px;object-fit:contain}.brand-symbol.hero-symbol{width:min(32vw,420px);height:auto}.connection{color:var(--success);font-size:14px;margin-left:auto}.offline{color:var(--grain)}.room-code{font:700 20px monospace;letter-spacing:2px}main{max-width:1800px;margin:auto;padding:0 48px}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,serif;font-weight:400;font-size:44px;margin-bottom:12px}h2{font-family:Georgia,serif;font-size:28px;font-weight:400;margin-bottom:20px}h2 small{float:right;font:14px Arial;color:var(--muted)}h3{font-size:16px;margin:20px 0 12px}p{line-height:1.5}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--grain);font-weight:700;margin-bottom:12px}.muted{color:var(--muted);font-size:14px}.welcome{padding:64px 0;max-width:1200px}.welcome h1{font-size:clamp(48px,5vw,80px);line-height:1.08}.welcome-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:48px}.welcome a{display:block;margin:24px 0}.turn-banner{display:flex;justify-content:space-between;align-items:center;padding:32px 0 16px}.turn-banner p{margin-bottom:4px;color:var(--muted)}.dice{display:flex;gap:12px}.dice span{background:var(--ink);color:var(--sea);font-size:38px;border-radius:8px;display:grid;place-items:center;width:64px;height:64px}.table-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,1fr);gap:32px}.island-panel{min-width:0}.board{display:block;width:100%;max-height:690px;text-anchor:middle}.terrain-label{font:11px Arial;fill:#fff4dc;letter-spacing:.5px}.port-label{font:11px Arial;fill:var(--parchment);paint-order:stroke;stroke:var(--sea);stroke-width:3px}.pick{cursor:pointer}.pick:hover{filter:brightness(1.3)}.pick:focus{outline:none;filter:drop-shadow(0 0 5px #fff)}aside>section{background:var(--surface);padding:24px;border-radius:12px;margin-bottom:20px}.player{display:flex;gap:14px;align-items:center;padding:18px 0;border-top:1px solid var(--border)}.player strong{font-size:20px}.player p{font-size:13px;color:var(--muted);margin:5px 0 0}.player b{font-size:26px;margin-left:auto}.player b small{display:block;font-size:10px;font-weight:400;color:var(--muted)}.seat{width:40px;height:40px;border-radius:50%;color:var(--sea);display:grid;place-items:center;font-weight:700;flex-shrink:0}.player.active .seat{outline:2px solid var(--grain);outline-offset:4px}.history li{padding:8px 0;color:var(--muted);font-size:16px}.history ol{padding-left:20px;margin:0}.lobby{display:flex;gap:36px;align-items:center;justify-content:center;min-height:420px;background:var(--surface);border-radius:12px;padding:32px}.lobby img{width:220px;border-radius:8px}.lobby h2{font:700 54px monospace;letter-spacing:5px}.join-url{overflow-wrap:anywhere;font-size:14px;margin-top:20px;color:var(--muted)}.join{max-width:440px;margin:48px auto}form{display:grid;gap:20px}label{display:block;font-size:14px;color:var(--muted)}input,select{display:block;width:100%;background:var(--sea);color:var(--ink);border:1px solid var(--border);border-radius:6px;padding:12px;margin:8px 0 16px;min-height:46px}footer{padding:32px 0;font-size:12px;letter-spacing:2px;color:var(--muted)}.error{background:var(--error);padding:16px;border-radius:8px;margin-top:16px}.button-row{display:flex;gap:8px;flex-wrap:wrap}.quiet{padding:8px;background:transparent;min-height:44px;font-size:13px}.hint{background:var(--raised);padding:12px;margin-top:12px}.resources{display:flex;gap:8px}.resource{flex:1;text-align:center;border-top:4px solid var(--grain);background:var(--sea);padding:12px 2px;border-radius:4px}.resource strong{display:block;font-size:28px}.resource span{font-size:11px}.resource.madera{border-color:#68a57b}.resource.arcilla{border-color:#d38666}.resource.lana{border-color:#b6cb83}.resource.mineral{border-color:#9aafc2}.actions,.trade,details{padding:20px;background:var(--surface);border-radius:12px;margin:20px 0}.trade>button{margin-right:8px}.resource-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.resource-picker input{padding:10px 4px;text-align:center}fieldset{border:1px solid var(--border);border-radius:8px;margin:16px 0;padding:12px}legend{color:var(--grain)}.offer{margin-top:20px;padding:16px;background:var(--raised);border-radius:8px}.offer button{margin:4px}.mobile{max-width:600px;padding:0 16px}.mobile header{gap:12px;padding:16px 0;flex-wrap:wrap}.mobile .brand-symbol{width:48px;height:48px}.mobile .connection{font-size:11px}.mobile .room-code{font-size:14px}.mobile h1{font-size:30px}.mobile .turn-banner{padding-top:24px}.mobile .table-layout{display:flex;flex-direction:column;gap:12px}.mobile aside{display:contents}.mobile .island-panel{order:2}.mobile .hand{order:1}.mobile .players{order:3}.mobile .history{order:4}.mobile .lobby{min-height:180px;display:block;padding:24px}.mobile aside>section{padding:20px;margin:0}.mobile h2{font-size:24px}.mobile .dice{gap:6px}.mobile .dice span{width:36px;height:42px;font-size:24px}.mobile .turn-banner>div:first-child{max-width:75%}.mobile .player strong{font-size:16px}.mobile .player p{font-size:11px}.mobile .seat{width:28px;height:28px}.mobile .board-scroll{overflow:auto}.mobile .zoom .board{width:650px;max-width:none;max-height:none}.mobile .actions{margin-top:8px}.mobile .trade{margin-top:12px}.mobile .resource-picker{gap:4px}.mobile .resource-picker label{font-size:10px}.mobile fieldset{padding:8px}.mobile .resources{gap:4px}.mobile .resource span{font-size:10px}@media(max-width:800px){.welcome{padding:32px 0}.welcome-intro{grid-template-columns:1fr;gap:24px}.welcome-intro>.hero-symbol{display:none}.brand-symbol{width:56px;height:56px}.tv{padding:0 20px}.tv .table-layout{grid-template-columns:1fr}.tv .lobby{flex-direction:column}.welcome h1{font-size:48px}.tv h1{font-size:32px}.tv header{flex-wrap:wrap}}@media(min-width:1600px){.tv .player strong{font-size:26px}.tv .player p{font-size:18px}.tv .history li{font-size:21px}.tv .lobby{min-height:530px}.tv .lobby img{width:260px}.tv .lobby p{font-size:22px}.tv .port-label{font-size:12px}}@media(min-width:1200px){.tv aside>section{padding:16px}.tv aside h2{font-size:26px;margin-bottom:12px}.tv .player{padding:6px 0}.tv .player strong{font-size:22px}.tv .player p{font-size:16px;line-height:1.25;margin-top:3px}.tv .history li{font-size:18px;line-height:1.3;padding:5px 0}}.game-controls{border:0;padding:0;margin:0;min-width:0}.pending-action{background:var(--raised);border:1px solid var(--grain);padding:16px;margin:16px 0;border-radius:10px}.final-result{margin:1rem 0;padding:1.4rem;background:var(--surface);color:var(--ink);border-radius:1rem}.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.result-grid article{padding:1rem;border:1px solid var(--border);border-radius:.6rem}.result-grid strong{font-size:1.6rem}button.primary:hover:not(:disabled),button[aria-pressed=true]:hover:not(:disabled){background:#ffe58c}button:disabled{cursor:not-allowed}::selection{background:var(--grain);color:var(--burgundy)}.room-code{color:var(--grain)}.join{padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:12px}@media(max-width:400px){.join{padding:16px;margin:24px auto}}
