*{box-sizing:border-box}html,body,#app,#world{width:100%;height:100%;margin:0;overflow:hidden}body{font-family:Trebuchet MS,system-ui,sans-serif;color:#473b2d;background:#69b7c4}#world canvas{display:block;touch-action:none}button{font:inherit;cursor:pointer;border:1px solid #987d5e;color:#4d3c2c;border-radius:12px;background:linear-gradient(#f8ecd1,#dfcba9);box-shadow:0 3px 0 #b69a75,0 5px 14px #283c3b25;padding:10px;transition:filter .15s,transform .15s}button:hover{filter:brightness(1.07)}button:active{transform:translateY(2px)}button:disabled{filter:grayscale(.8);opacity:.55;cursor:default}.gold{background:linear-gradient(#ffd47b,#e9a736);border-color:#c48c39;box-shadow:0 3px 0 #bb7d24;color:#57371a;font-weight:900}.green{background:linear-gradient(#90b876,#5e915b);border-color:#48734b;box-shadow:0 3px 0 #3e6940;color:#fff;font-weight:900}#players{position:absolute;left:12px;top:10px;display:flex;gap:8px;pointer-events:none;max-width:76vw} .player{min-width:112px;background:linear-gradient(140deg,#f8ebcbdc,#d3c3a4df);border:2px solid var(--player);border-radius:12px;box-shadow:0 5px 12px #29403c55;padding:7px 11px;line-height:1.25;font-size:12px;backdrop-filter:blur(5px)}.player.current{box-shadow:0 0 0 3px #fff8,0 5px 15px #293e3c80}.player b{font-size:15px}.player .score{display:block;font-weight:800;color:#74512d;margin-top:3px}#tools{position:absolute;top:24%;left:10px;display:grid;gap:8px}#tools button{font-size:23px;width:51px;height:51px;background:linear-gradient(#f5e4c5,#c6b18f)}#turnbox{position:absolute;right:12px;top:19%;display:flex;align-items:center;flex-direction:column;gap:9px;width:165px;background:linear-gradient(#f8eacf,#dfc9a6);padding:13px;border:4px solid #c5aa82;border-radius:19px;box-shadow:0 7px 0 #9b815e,0 10px 28px #234c5866}#turnbox .dice{font-size:34px;color:#5c4430;letter-spacing:3px;text-shadow:1px 2px #fff}#turnbox strong{font-size:18px;text-align:center}#turnbox button{width:100%}#turnbox small{font-size:11px;text-align:center;min-height:15px}#hud{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);width:min(1450px,calc(100% - 18px));display:flex;gap:10px;align-items:stretch;background:linear-gradient(#f9edda,#ddc5a0);border:5px solid #c6a880;border-radius:22px;box-shadow:inset 0 2px #fff9,0 6px 0 #92795a,0 12px 26px #173c3f66;padding:10px;max-height:160px}#stock{display:flex;gap:5px;background:#9d7858;border:5px solid #c1a080;border-radius:15px;padding:5px;flex:0 0 29%}.resource{flex:1;min-width:0;background:linear-gradient(#8b6748,#6f5039);border:1px solid #a78762;border-radius:9px;color:#fff3d8;text-align:center;padding:7px 2px}.resource .icon{display:block;font-size:27px}.resource b{display:block;font-size:18px}#builds{display:flex;flex:1;gap:5px;min-width:0}#builds button{flex:1;min-width:0;padding:5px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}#builds .model{font-size:26px}#builds b{font-size:13px}#builds small{font-size:10px;white-space:nowrap}#builds button.chosen{outline:3px solid #62a1d2;background:linear-gradient(#f6e3ad,#e6bf6f)}#hudactions{display:flex;gap:6px}#hudactions button{min-width:82px;font-size:14px;font-weight:800}#hudactions #finish{background:linear-gradient(#a6aaa6,#7f8988);color:white;border-color:#7b8382}#toast{position:absolute;left:50%;top:18%;transform:translateX(-50%);background:#fff0d6;border:3px solid #b89665;border-radius:14px;padding:12px 20px;box-shadow:0 5px 18px #0005;opacity:0;pointer-events:none;transition:opacity .2s;max-width:75vw;text-align:center;font-weight:800}#toast.visible{opacity:1}.overlay{position:absolute;inset:0;background:#1c393b91;display:flex;align-items:center;justify-content:center;z-index:10;backdrop-filter:blur(3px)}.hidden{display:none!important}.dialog{position:relative;background:linear-gradient(#fcf0da,#dfc9a8);border:6px solid #bfa07a;border-radius:23px;padding:25px;width:min(440px,calc(100% - 24px));box-shadow:0 13px 0 #826b51,0 24px 60px #112d3677;max-height:85vh;overflow:auto}.dialog .brand{font-size:28px;font-weight:1000;color:#537d65;text-shadow:1px 2px #fff}.dialog h1{font-size:27px;margin:6px 0}.dialog p{line-height:1.5}.dialog label{display:block;margin:12px 0 5px;font-weight:800}.dialog select{width:100%;padding:12px;border:2px solid #b99c73;border-radius:9px;background:#fff6e5;color:#493827}.dialog>button.gold{width:100%;margin-top:17px}.dialog .small{font-size:12px;opacity:.8}.close{float:right;font-size:22px;padding:4px 13px}#panelbody button{margin:5px}#panelbody .line{padding:9px;border-bottom:1px solid #bda681}#rotate{display:none;position:absolute;inset:0;z-index:20;background:#d7c29d;color:#594a32;align-items:center;justify-content:center;text-align:center;font-size:28px;font-weight:900}@media(max-width:1000px){#hud{max-height:116px;padding:5px;gap:5px;border-width:3px}#stock{flex-basis:28%;border-width:3px}.resource{padding:2px}.resource .icon{font-size:19px}.resource b{font-size:14px}#builds .model{font-size:20px}#builds b{font-size:10px}#builds small{font-size:8px}#hudactions button{min-width:62px;font-size:10px;padding:5px}#tools button{width:38px;height:38px;font-size:18px}#turnbox{width:125px;padding:6px;top:17%;border-width:3px}#turnbox .dice{font-size:24px}#turnbox strong{font-size:13px}#turnbox button{padding:7px;font-size:11px}.player{min-width:85px;padding:4px;font-size:9px}.player b{font-size:11px}}@media(max-width:650px){#players{gap:3px;top:3px;left:3px}.player{min-width:67px;padding:3px;font-size:8px}.player b{font-size:10px}#tools{top:21%;left:3px;gap:4px}#tools button{width:32px;height:32px;padding:2px;font-size:16px}#turnbox{right:3px;top:19%;width:104px;gap:4px}#turnbox .dice{font-size:20px}#turnbox strong{font-size:11px}#hud{width:calc(100% - 4px);bottom:2px;border-radius:11px;max-height:83px}#stock{gap:2px;padding:2px}#builds{gap:2px}#builds button{padding:2px 0;border-radius:5px}#builds .model{font-size:14px}#builds b{font-size:8px}#builds small{font-size:6px}#hudactions{gap:2px}#hudactions button{min-width:42px;font-size:8px;padding:2px}.resource .icon{font-size:13px}.resource b{font-size:10px}}@media(orientation:portrait) and (max-width:700px){#rotate{display:flex}}