:root{--ink:#293e32;--green:#315c46;--muted:#7c8273;--cream:#f7f6ee;--line:#e5e7dc;--orange:#b86c45;--yellow:#e7ba62;font-family:'Segoe UI',system-ui,sans-serif;color:var(--ink);background:var(--cream);font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;color:inherit;background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px 14px;font-weight:600;transition:background .15s,transform .15s}button:hover{background:#edf1e6}button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #dba95e;outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:normal}h1{font-size:34px;letter-spacing:-1px;margin-bottom:8px}h2{font-size:24px}input,select{width:100%;border:1px solid #dce1d6;background:#fff;border-radius:9px;padding:12px;color:var(--ink);min-width:0}label{font-size:12px;font-weight:600;display:grid;gap:7px}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#234b37}.full{width:100%;display:flex;justify-content:space-between;padding:15px}.quiet{background:transparent;border-color:transparent;font-size:12px}.muted,.fine{color:var(--muted);line-height:1.6}.fine{font-size:11px;margin:25px 0 0}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:700;color:#7a876a;display:block;margin-bottom:12px}.brand{font-family:Georgia,serif;font-weight:bold;font-size:32px;color:var(--ink);text-decoration:none;letter-spacing:-1.5px;line-height:.9;display:block}.brand span{display:block;font-family:'Segoe UI',sans-serif;font-size:9px;letter-spacing:6px;text-align:center;margin-top:9px;font-weight:500}.auth{min-height:100vh;display:grid;grid-template-columns:1.35fr 1fr}.auth-art{background:#e9eddd;position:relative;padding:40px 7%;overflow:hidden;min-height:720px}.auth-art .brand{width:max-content}.welcome-copy{position:relative;z-index:1;margin-top:70px}.welcome-copy h1{font-size:60px;line-height:1.05;margin:18px 0}.welcome-copy p{line-height:1.7;color:#687660}.hotel-art{position:absolute;width:75%;height:43%;object-fit:contain;bottom:40px;right:4%}.auth-footer{position:absolute;bottom:24px;font-size:8px;letter-spacing:1.5px}.auth-footer span{padding:0 12px}.auth-side{display:grid;place-items:center;padding:35px}.auth-card{width:min(350px,100%)}.auth-card h2{font-size:31px;margin-bottom:8px}.auth-card form{display:grid;gap:18px;margin-top:25px}.segmented{display:flex;background:#e9eddf;padding:4px;border-radius:10px;margin-top:30px}.segmented button{flex:1;background:transparent;border:0}.segmented .selected{background:white;box-shadow:0 2px 4px #32482b0c}#authError{font-size:12px;color:#b74936;margin:0}header{height:84px;border-bottom:1px solid var(--line);background:#fcfcf7;display:flex;gap:22px;align-items:center;padding:0 30px}header .brand{width:145px;font-size:29px}.header-label{font-size:8px;letter-spacing:2px;color:#929987}.wallet{margin-left:auto;background:#f3ecd9;padding:10px 15px;border:1px solid #eadfc5;border-radius:24px;display:flex;align-items:center;gap:8px}.coin{color:#bd8a2d;font-size:21px}.wallet small{color:#9a885d;font-size:10px}.profile{display:flex;align-items:center;gap:9px;font-size:12px}.avatar{background:#dbe7cc;color:#6f855b;border:3px solid white;box-shadow:0 0 0 1px #dce2d2;border-radius:50%;width:34px;height:34px;display:inline-grid;place-items:center;font-size:21px}.layout{display:grid;grid-template-columns:205px minmax(0,1fr) 285px;min-height:calc(100vh - 84px)}nav{padding:25px 16px;background:#f0f2e8;border-right:1px solid var(--line)}.nav-label{font-size:8px;letter-spacing:1.6px;color:#9a9f8b;margin:12px 12px 14px}nav button{width:100%;display:flex;gap:12px;align-items:center;background:transparent;border:0;font-size:12px;text-align:left;margin-bottom:5px;padding:9px 10px;min-height:45px}nav button img{width:27px;height:27px;object-fit:contain}nav button.active{background:#dce6d2;color:#345940}nav button.active:after{content:'·';font-size:24px;margin-left:auto;color:#638852}.nav-note{border-top:1px solid #dce2d0;margin:35px 12px 0;padding-top:23px}.nav-note>span{display:block;font-size:35px;color:#b5bd93;margin-bottom:10px}.nav-note b{font-family:Georgia,serif;font-weight:normal;font-size:18px}.nav-note p{font-size:11px;line-height:1.7;color:#929a81;margin-top:10px}main{padding:27px 28px;min-width:0}.scene-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.scene-heading .eyebrow{margin-bottom:8px}.scene-heading p{font-size:12px;color:var(--muted);margin-bottom:0}.scene-heading h1{font-size:31px}#world{border-radius:16px;border:1px solid #dce3cd;background:#e9efdd;overflow:hidden;box-shadow:0 4px 12px #3c542608}.world-top{display:flex;justify-content:space-between;padding:17px 20px;font-size:9px;letter-spacing:1.2px;color:#5a7451}.world-top #saveStatus{letter-spacing:0;color:#7b9070;font-size:10px}.board-wrap{padding:22px 45px 32px;background:radial-gradient(ellipse at center,#f9f8e8aa,transparent 70%)}#gameBoard{position:relative;width:100%;aspect-ratio:10/8;border:7px solid #baa181;box-shadow:0 8px 0 #a0896d,0 15px 24px #50664426;border-radius:5px;max-width:640px;margin:auto}#tiles,#sprites{position:absolute;inset:0}#tiles{display:grid;grid-template-columns:repeat(10,1fr);grid-template-rows:repeat(8,1fr)}.tile{min-width:0;border-radius:0;padding:0;border:1px solid #ffffff30;background:#ecdcc0}.tile.quarto:nth-child(odd){background:#e5d2ae}.tile.quintal{background:#a7c18a;border-color:#bfd2a04d}.tile.quintal:nth-child(3n){background:#a1ba82}.tile:hover,.tile.quintal:hover{background:#d6dca7;box-shadow:inset 0 0 0 2px white}.tile:focus-visible{z-index:2;outline-offset:-3px}#sprites{pointer-events:none}.sprite{position:absolute;width:10%;height:12.5%;padding:0;background:transparent;border:0;border-radius:0;pointer-events:auto;filter:drop-shadow(0 3px 1px #3b492622)}.sprite:hover{background:#fff5}.sprite img{width:100%;height:100%;object-fit:contain;transform:scale(1.08)}.sprite.ready:after{content:'✓';position:absolute;right:0;top:0;border-radius:50%;font:700 10px system-ui;background:#fcf5d1;padding:2px 4px;color:#50743a}.growth{position:absolute;bottom:1px;left:20%;width:60%;height:4px;background:#7c825c;border-radius:5px;overflow:hidden}.growth i{display:block;height:100%;background:#f8e4a2}.world-caption{text-align:center;font-size:11px;color:#748367;padding:0 12px 18px;min-height:31px}.object-actions{background:#f0eadc;border:1px solid #e0d6bf;margin-top:12px;padding:10px;display:flex;gap:8px;align-items:center;border-radius:9px;font-size:12px}.object-actions b{margin-right:auto}.object-actions button{font-size:11px}.inventory{background:#fcfcf7;border:1px solid var(--line);border-radius:14px;margin-top:20px;padding:17px}.inventory-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.inventory h2{font-size:20px;margin:0}.inventory h2 span{font:10px 'Segoe UI',sans-serif;color:#929b84;margin-left:6px}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tabs button{border:0;background:transparent;font-size:11px;padding:7px 10px}.tabs .selected{background:#e8eddf;color:#4f6d41}.shelf{display:flex;gap:9px;overflow-x:auto;padding:14px 1px 3px;min-height:110px}.shelf button{flex:0 0 81px;padding:7px 5px;background:#f4f5ec;position:relative;font-size:10px;font-weight:500}.shelf img{display:block;width:47px;height:47px;object-fit:contain;margin:0 auto 6px}.shelf b{position:absolute;right:5px;top:4px;font-size:9px;color:#7c8c6e}.shelf .selected{border:2px solid #738d55;background:#edf2e1}.shelf .unplaceable{opacity:.65}aside{background:#fcfcf7;border-left:1px solid var(--line);padding:25px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:calc(100vh - 84px);min-height:650px}.chat-heading .eyebrow{font-size:8px;letter-spacing:1.5px}.chat-heading h2{font-size:20px;margin-bottom:9px}.live-dot{display:inline-block;width:6px;height:6px;background:#92ab72;border-radius:50%;vertical-align:middle;margin-left:7px}.chat-heading p{font-size:10px;color:#89937b}.chat{flex:1;overflow-y:auto;min-height:150px;padding:10px 0;display:flex;flex-direction:column;gap:14px}.chat-empty{font-size:12px;color:#9ba38e;line-height:1.8;text-align:center;margin:auto 0}.msg{font-size:11px;overflow-wrap:anywhere}.msg time{float:right;color:#a2a893;font-size:9px}.msg b{font-size:10px;color:#72855e}.msg p{margin:6px 0 0;background:#eff2e7;border-radius:0 10px 10px;padding:10px;line-height:1.5}#chatForm{display:flex;gap:5px;margin-top:10px}#chatForm input{font-size:10px;background:#f5f6ef;padding:12px 10px}#chatForm button{background:var(--green);color:white;padding:8px 12px}.chat-hint{font-size:9px;color:#a1a58f;text-align:center;margin:10px 0 23px}.tip{background:#edeedb;border:1px solid #e3e4cc;border-radius:12px;padding:18px;position:relative;overflow:hidden}.tip>img{width:63px;float:right;margin:-8px -8px 0 0;transform:rotate(15deg)}.tip .eyebrow{font-size:7px;letter-spacing:1px;margin:5px 0 14px}.tip h3{font-size:21px;margin-bottom:9px}.tip p{font-size:11px;line-height:1.6;color:#828969}.tip button{font-size:10px;padding:8px 10px;background:#f9f9ef}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:15px}.offer{background:#fcfcf7;border:1px solid var(--line);border-radius:13px;padding:17px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.offer>img{height:85px;width:100%;object-fit:contain;background:#edf0e2;border-radius:8px;padding:6px;margin-bottom:6px}.offer b{text-transform:capitalize;font-size:13px}.offer small{color:var(--muted);font-size:10px;line-height:1.6}.offer button{width:100%;font-size:11px;margin-top:auto}.offer .price{font-size:14px;color:#9d7e38;margin:4px 0}.section-title{font-size:22px;margin:26px 0 14px}.market-form{background:#edf0e2;padding:20px;border-radius:12px;margin-bottom:22px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.market-form h2,.market-form p{grid-column:1/-1;margin-bottom:0}.market-form label{font-size:10px}.market-form button{align-self:end}.market-form input,.market-form select{font-size:12px;padding:10px}.empty{border:1px dashed #cdd6be;border-radius:13px;padding:28px;text-align:center;color:#879376;font-size:12px;line-height:1.7;grid-column:1/-1}.plaza{background:#dfe9d1;border-radius:14px;padding:18px;overflow:hidden}.plaza-board{position:relative;aspect-ratio:10/7;background:#e9ebd9 url('/static/assets/praca.svg') center/contain no-repeat;border-radius:12px;overflow:hidden;cursor:crosshair}.person{position:absolute;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.person .avatar{width:30px;height:30px;font-size:20px;background:#f1cc96}.person small{display:block;font-size:9px;background:#fffc;border-radius:4px;padding:2px 4px;white-space:nowrap}.plaza p{font-size:11px;color:#7c8e67;margin:14px 0 0}.online{font-size:11px;color:#738463;margin:10px 0}.game-panel{background:#edf0e0;border-radius:15px;padding:24px}.game-options{display:flex;gap:8px;margin-bottom:20px}.game-options .selected{background:var(--green);color:white}.game-status{display:flex;justify-content:space-between;margin:20px 0;font-size:13px}.mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}.mini-cell{aspect-ratio:1.2;border:1px solid #d2dcc1;background:#dce4cc;display:grid;place-items:center;padding:8px;font-size:30px;color:#a4b68c}.mini-cell img{width:80%;height:65px;object-fit:contain}.mini-cell.matched{background:#b9d0a3;border-color:#8aab69}.result{padding:14px;background:#f7eed4;color:#826c35;border-radius:8px;margin:15px 0}.swaps{display:grid;gap:10px}.swap{padding:16px;background:white;border:1px solid var(--line);border-radius:10px;font-size:12px}.swap p{line-height:1.7}.swap button{font-size:11px;margin-right:8px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:90vw;background:#2c4e3e;color:#fff;padding:14px 22px;border-radius:12px;box-shadow:0 6px 25px #283e3429;z-index:99;font-size:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(min-width:1550px){main{padding:35px 50px}.board-wrap{padding:25px 65px 35px}}@media(max-width:1150px){.layout{grid-template-columns:80px minmax(0,1fr) 240px}nav{padding:25px 8px}nav button{justify-content:center}nav button span,nav button.active:after,.nav-label,.nav-note{display:none}main{padding:24px 18px}.board-wrap{padding:18px 25px 27px}.header-label{display:none}.chat-heading h2{font-size:18px}aside{padding:24px 14px}}@media(max-width:880px){.layout{grid-template-columns:76px minmax(0,1fr)}aside{grid-column:2;height:480px;min-height:0;position:static;border-top:1px solid var(--line)}.tip{display:none}.chat-hint{margin-bottom:0}nav{grid-row:1/3}.auth-art{min-height:660px}.welcome-copy h1{font-size:44px}.auth{grid-template-columns:1fr 1fr}.auth-footer{display:none}}@media(max-width:600px){.auth{display:block}.auth-art{min-height:200px;padding:25px}.auth-art .brand{font-size:23px}.welcome-copy{margin-top:25px}.welcome-copy h1{font-size:33px;margin:0}.welcome-copy .eyebrow,.welcome-copy p{display:none}.hotel-art{height:155px;width:48%;right:0;bottom:5px}.auth-side{padding:30px 25px}.auth-card h2{font-size:27px}header{height:70px;padding:0 15px;gap:10px}header .brand{font-size:24px;width:auto}.wallet{padding:5px 10px;font-size:12px}.wallet small,.profile b{display:none}.profile{margin-left:3px}header .quiet{padding:6px}.layout{display:flex;flex-direction:column}nav{display:flex;padding:7px;gap:3px;position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line)}nav button{margin:0;padding:6px;min-height:40px}nav button img{width:25px;height:25px}main{padding:23px 14px}.scene-heading h1{font-size:29px}.scene-heading p{font-size:11px;line-height:1.5}.scene-heading{align-items:flex-start}.scene-heading button{font-size:10px;padding:7px}.board-wrap{padding:15px 15px 25px}#gameBoard{border-width:5px}.world-top{padding:14px 13px;font-size:8px}.world-top #saveStatus{font-size:8px}.world-caption{font-size:10px}.inventory{padding:13px}.inventory-heading .quiet{font-size:10px;padding:5px}.tabs{gap:0}.tabs button{font-size:10px;padding:7px 8px}.object-actions{flex-wrap:wrap}.object-actions b{width:100%}aside{height:410px;padding:20px}.market-form{grid-template-columns:1fr 1fr;padding:15px}.market-form button{grid-column:1/-1}.cards{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.offer{padding:12px}.mini-cell img{height:40px}.game-panel{padding:16px}}

/* Isometric 2:1 stage: floor hit targets and upright sprites share the same projection. */
#world{background:#d7e2dc;border-color:#c9d6cb}.board-wrap{padding:0 8px;background:radial-gradient(ellipse at 50% 65%,#f3f0db 0%,#d7e2dc 70%)}
#gameBoard{aspect-ratio:900/640;border:0;box-shadow:none;border-radius:0;max-width:950px;isolation:isolate}
#boardScenery{position:absolute;inset:0;pointer-events:none}#boardScenery svg{width:100%;height:100%;display:block}
#tiles{display:block}#sprites{z-index:2}.tile,.tile.quarto,.tile.quarto:nth-child(odd),.tile.quintal,.tile.quintal:nth-child(3n){position:absolute;width:8.88889%;height:6.25%;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);border:0;background:transparent;box-shadow:none}
.tile:hover,.tile.quintal:hover,.tile.quarto:hover,.tile:focus-visible{background:#fff4b387!important;box-shadow:none;outline:0}.tile:focus-visible{background:#fff4b3c9!important}
.sprite{width:8.88889%;height:15.625%;filter:none;clip-path:polygon(0 0,100% 0,100% 80%,50% 100%,0 80%)}.sprite img{transform:none;width:100%;height:100%;object-fit:fill;image-rendering:auto}.sprite:hover{background:transparent;filter:brightness(1.13) drop-shadow(0 0 2px #fff6b4)}.sprite.ready:after{top:24%;right:5%;font-size:9px}.growth{bottom:12%;height:3px;left:26%;width:48%}.world-caption{margin-top:-10px;padding-bottom:20px}.world-top{position:relative;z-index:3}
@media(max-width:600px){.welcome-copy h1{font-size:27px;max-width:58%}.hotel-art{width:40%;height:130px}.board-wrap{padding:0}#world .world-caption{margin-top:0;font-size:10px}.world-top{padding-bottom:0}.sprite.ready:after{font-size:7px;padding:1px 3px}.growth{height:2px}}
