:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#ece8dd;--muted:#aeb7ad;--panel:#343d3b;--panel-deep:#28312f;--line:#596561;--moss:#a8c88e;--moss-dark:#253328;--clay:#d98566;font-family:Inter,ui-rounded,system-ui,sans-serif}html,body,#root{min-width:20rem;min-height:100%}body{min-height:100dvh;color:var(--ink);background:radial-gradient(circle at 20% 10%,#6682632e,#0000 30rem),#293331;margin:0}button,.button,input{font:inherit}button,.button{box-sizing:border-box;border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#414c49;border-radius:.55rem;padding:.55rem .9rem;text-decoration:none}button:hover,.button:hover{background:#4a5854;border-color:#84948c}button.primary,.button.primary{background:var(--moss);color:var(--moss-dark);border-color:#b8d99d;font-weight:750}button:disabled{cursor:not-allowed;opacity:.48}input{box-sizing:border-box;border:1px solid var(--line);color:var(--ink);background:#28322f;border-radius:.55rem;outline:none;padding:.65rem .8rem}input:focus{border-color:var(--moss);box-shadow:0 0 0 3px #a8c88e26}h1{letter-spacing:-.04em;margin:.2rem 0 .75rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.15rem,6vw,3.8rem);font-weight:500}.eyebrow{color:#c2d8ad;letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:800}.splash{text-align:center;max-width:34rem;margin:18vh auto;padding:2rem}.login-card{background:#333e3bd1;border:1px solid #e5eada1a;border-radius:1rem;box-shadow:0 2rem 5rem #0d141259}.login-card .button{margin-top:1rem;display:inline-block}.lobby{max-width:52rem;margin:15vh auto;padding:0 1rem}.lobby-with-character{grid-template-columns:13rem 1fr;align-items:center;gap:2.5rem;display:grid}.lobby-character{background:#28312fad;border:1px solid #ece8dd1a;border-radius:1rem;flex-direction:column;align-items:center;padding:1.3rem;display:flex}.lobby-character .character-portrait{width:9rem}.lobby-character span{max-width:100%;color:var(--muted);text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.lobby form:not(.logout-form){gap:.5rem;display:flex}.lobby input{min-width:15rem}.logout-form{margin-top:1.5rem}.logout-form button{color:var(--muted);background:0 0;border:0;font-size:.8rem}.creator-page{box-sizing:border-box;min-height:100dvh;padding:clamp(1rem,4vw,4rem)}.character-editor{background:linear-gradient(145deg,#37433ffa,#28322ffa);border:1px solid #ece8dd1c;border-radius:1.25rem;grid-template-columns:minmax(15rem,20rem) minmax(26rem,42rem);gap:clamp(1.5rem,5vw,4rem);width:min(100%,68rem);margin:0 auto;padding:clamp(1.2rem,3vw,2.5rem);display:grid;box-shadow:0 2rem 6rem #0f171552}.character-editor-intro{text-align:center}.character-editor-intro h1{font-size:clamp(2rem,4.5vw,3rem)}.character-editor-intro>p:not(.eyebrow){color:var(--muted);line-height:1.5}.character-portrait{aspect-ratio:1/2;filter:drop-shadow(0 .8rem .8rem #090f0d33);width:min(100%,9rem);image-rendering:pixelated;margin:.75rem auto;display:block}.field-label{color:var(--muted);text-align:left;text-transform:uppercase;gap:.35rem;font-size:.75rem;font-weight:700;display:grid}.field-label input{text-transform:none;width:100%;font-size:1rem}.character-options{align-content:center;gap:.8rem;display:grid}.option-group{border:0;min-width:0;margin:0;padding:0}.option-group legend{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.35rem;font-size:.7rem;font-weight:800}.option-group>div{flex-wrap:wrap;gap:.35rem;display:flex}.option-group button{padding:.4rem .65rem;font-size:.8rem}.option-group button.selected{border-color:var(--moss);background:#5b7059;box-shadow:inset 0 0 0 1px #daebca24}.editor-actions{justify-content:flex-end;gap:.6rem;margin-top:.5rem;display:flex}.form-error{color:#ed9a8f}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#141c1ac7;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0;overflow:auto}.modal-backdrop .character-editor{margin:auto}.game{box-sizing:border-box;background:#1b2522;width:100%;height:100dvh;overflow:hidden}.game-stage{width:100%;height:100%;position:relative}.canvas-mount{background:#25303a;width:100%;height:100%;overflow:hidden}.canvas-mount canvas{image-rendering:pixelated;display:block}.game-ui{z-index:10;pointer-events:none;position:absolute;inset:0}.hud-panel,.hotbar-wrap,.game-ui button,.game-ui input{pointer-events:auto}.hud-panel{color:#3d3025;background:linear-gradient(#efe0b7,#d9c48f);border:2px solid #4b392a;box-shadow:inset 0 0 0 2px #fffada73,0 4px #2c221b59,0 .75rem 2rem #141c1638}.hud-top-left,.hud-top-right{border-radius:.7rem;align-items:center;display:flex;position:absolute;top:1rem}.hud-top-left{grid-template-columns:auto auto;gap:.1rem .8rem;min-width:10rem;padding:.55rem .75rem;display:grid;left:1rem}.hud-day{letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:850}.hud-time{grid-area:1/2/3;font-family:Georgia,serif;font-size:1.7rem}.hud-world{color:#715b45;font-size:.72rem}.hud-top-right{gap:.75rem;padding:.45rem .55rem .45rem .75rem;right:1rem}.player-summary{text-align:right;line-height:1.15;display:grid}.player-summary span{color:#715b45;font-size:.7rem}.status{color:#0000;border-radius:50%;width:.55rem;height:.55rem;overflow:hidden;box-shadow:0 0 0 2px #3d30252e}.status-connected{background:#67914f}.status-connecting{background:#d2a74d}.status-disconnected{background:#b9554f}.hud-actions{gap:.3rem;display:flex}.hud-actions button,.hotbar-actions button{color:#49392b;background:#fff9da80;border-color:#8c775c;padding:.38rem .55rem;font-size:.7rem}.hotbar-wrap{align-items:flex-end;gap:.55rem;display:flex;position:absolute;bottom:1rem;left:50%;transform:translate(-50%)}.hotbar{background:linear-gradient(#5c442ff0,#3b2d22f5);border:2px solid #493728;border-radius:.8rem;grid-template-columns:repeat(10,3.35rem);gap:.28rem;padding:.48rem;display:grid;box-shadow:inset 0 0 0 2px #e0be8138,0 .8rem 2rem #0f161261}.item-slot{background:linear-gradient(135deg,#fff2bf4d,#0000 45%),#b99a65;border:2px solid #806748;border-radius:.45rem;place-items:center;width:3.35rem;height:3.35rem;padding:0;display:grid;position:relative;box-shadow:inset 0 0 0 2px #452f1f33}.item-slot:hover{background:#c8aa72;border-color:#f0d897}.item-slot.empty{background:#3c2f2499}.item-slot.selected{background:#d2b777;border-color:#fff1a8;transform:translateY(-.22rem);box-shadow:inset 0 0 0 2px #765c36,0 0 0 3px #ffe78ebf,0 0 1.2rem #ffda7061}.item-slot img{width:2.65rem;height:2.65rem;image-rendering:pixelated}.slot-key{color:#4e3b28;font-size:.62rem;font-weight:900;position:absolute;top:.12rem;left:.25rem}.slot-quantity{color:#fff8d7;text-align:right;text-shadow:1px 1px #39291f,-1px 1px #39291f;min-width:1rem;font-size:.72rem;font-weight:900;position:absolute;bottom:.08rem;right:.18rem}.selected-item-label,.hotbar-actions{background:#312821eb;border:2px solid #493728;border-radius:.65rem;min-width:8rem;padding:.45rem .6rem;display:grid;box-shadow:0 .5rem 1.4rem #0f16124d}.selected-item-label{color:#f6e7bc;text-align:right;line-height:1.15}.selected-item-label span{color:#c8b894;font-size:.68rem}.hotbar-actions{gap:.3rem}.hotbar-actions button{color:#eee0ba}.hotbar-actions button:disabled{opacity:.38}.invite-url{width:min(28rem,100% - 2rem);padding:.4rem .55rem;font-size:.72rem;position:absolute;top:4.7rem;right:1rem}.game-hint{border-radius:.55rem;padding:.42rem .6rem;font-size:.7rem;position:absolute;bottom:1rem;left:1rem}.game-toast,.connection-starting{color:#ffd8c7;background:#4b2a23eb;border:2px solid #6b3931;border-radius:.55rem;margin:0;padding:.55rem .8rem;position:absolute;top:5.5rem;left:50%;transform:translate(-50%);box-shadow:0 .6rem 2rem #140f0c4d}.connection-starting{color:#e3efd1;background:#27372aeb;border-color:#4f6047}.inventory-backdrop{z-index:30}.inventory-panel{box-sizing:border-box;color:#3f3024;background:linear-gradient(135deg,#fff7cd59,#0000 38%),#d9c38e;border:3px solid #4c3828;border-radius:1rem;width:min(60rem,96vw);padding:clamp(1rem,2.5vw,1.8rem);box-shadow:inset 0 0 0 3px #fff7d37a,0 2rem 5rem #0d120f7a}.inventory-heading{justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1rem;display:flex}.inventory-heading h2{margin:.1rem 0 0;font-family:Georgia,serif;font-size:2rem}.inventory-heading .eyebrow,.item-details .eyebrow{color:#6c5b42}.inventory-heading button{color:#49392b;background:#fff9da8c;border-color:#8c775c}.inventory-layout{grid-template-columns:minmax(28rem,1fr) 14rem;gap:1.2rem;display:grid}.inventory-grid{background:#4a36273d;border:2px solid #72573d;border-radius:.7rem;grid-template-columns:repeat(10,minmax(2.5rem,1fr));align-content:start;gap:.38rem;padding:.75rem;display:grid}.inventory-grid .item-slot{aspect-ratio:1;width:100%;height:auto}.inventory-grid .item-slot:nth-child(-n+10){border-color:#a37f46}.item-details{background:#fff7d36b;border:2px solid #8f744e;border-radius:.7rem;min-height:15rem;padding:1rem}.item-details h3{margin:.2rem 0 .55rem;font-family:Georgia,serif;font-size:1.4rem}.item-details p:not(.eyebrow){color:#66513c;font-size:.86rem;line-height:1.45}.item-detail-icon{width:5rem;height:5rem;image-rendering:pixelated}.item-detail-icon.empty-slot{border:2px dashed #6049315c;border-radius:.5rem}.item-quantity{font-weight:800}.inventory-note{color:#715a40;margin:.9rem 0 0;font-size:.75rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (height<=30rem){.game-hint,.selected-item-label{display:none}}@media (width<=48rem){.character-editor,.lobby-with-character{grid-template-columns:1fr}.character-editor{gap:1rem}.character-portrait{width:7rem}.lobby{margin:5vh auto}.hud-top-right .player-summary,.hud-actions button:not(:last-child),.game-hint,.selected-item-label,.hotbar-actions{display:none}.hud-top-left,.hud-top-right{top:.5rem}.hud-top-left{left:.5rem}.hud-top-right{right:.5rem}.hotbar-wrap{width:calc(100% - 1rem);bottom:.5rem;overflow-x:auto}.hotbar{grid-template-columns:repeat(10,2.8rem);margin:auto}.hotbar .item-slot{width:2.8rem;height:2.8rem}.hotbar .item-slot img{width:2.2rem;height:2.2rem}.inventory-layout{grid-template-columns:1fr}.inventory-grid{grid-template-columns:repeat(5,1fr);min-width:0}}
