
:root{color-scheme:dark;--bg:#111715;--panel:#1b231f;--line:#354036;--text:#eae8dc;--muted:#a2afa0;--gold:#d3b16b;--green:#92b28b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.6 system-ui,sans-serif}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:44px;border:1px solid var(--line);border-radius:6px;padding:9px 15px;color:var(--text);background:#263129;transition:background .15s}button:hover{background:#354638}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}a{color:inherit;text-decoration:none}.primary{background:var(--gold);color:#221f16;border-color:var(--gold);font-weight:700}.primary:hover{background:#e6c986}.secondary{background:#29352d}.quiet{background:transparent;border-color:transparent}.danger{background:#6e3634}.hidden{display:none!important}.topbar{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:22px;padding:0 32px;background:#171f1b}.brand{display:flex;align-items:center;gap:12px;font:700 27px/1.15 Georgia,serif}.brand small{display:block;font:10px/2 system-ui;letter-spacing:1.2px;color:var(--muted)}.crest{font-size:22px;color:var(--gold);border:1px solid #756343;border-radius:50% 50% 40% 40%;padding:10px}.gold{color:var(--gold)}.connection{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.connection i,.live-dot{display:inline-block;width:6px;height:6px;background:var(--green);border-radius:50%;margin-right:5px}.layout{display:grid;grid-template-columns:205px minmax(380px,1fr) 245px;max-width:1700px;margin:auto;min-height:calc(100vh - 88px)}.sidebar{padding:32px 14px;border-right:1px solid var(--line);display:flex;flex-direction:column}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--gold);font-weight:700;margin:0 0 10px}.sidebar>.eyebrow{padding:0 14px;color:#81917f}nav{display:flex;flex-direction:column;gap:6px}nav button{text-align:left;border:0;background:transparent;color:#aebaa9;display:flex;gap:10px;align-items:center;padding:13px 14px}nav button.active{background:#303b2b;color:#e0d3a9;box-shadow:inset 2px 0 var(--gold)}nav b{margin-left:auto;background:#46503a;padding:0 7px;border-radius:4px;font-size:10px}.sidebar-note{margin-top:auto;padding:44px 12px 0;font-size:11px;color:var(--muted)}.sidebar-note p{font-size:10px;color:#758373}.adventure{padding:30px 28px 50px;min-width:0}.heading,.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.2;margin:0}h1{font-size:29px}h2{font-size:23px}h3{font-size:17px;margin:17px 0 12px}h2 small,h3 small{font:12px system-ui;color:var(--muted);margin-left:10px}.pill{border:1px solid #48553f;border-radius:99px;padding:5px 11px;font-size:10px;white-space:nowrap;color:#b8c8a9}.scene{position:relative;width:100%;aspect-ratio:16/10;min-height:240px;background:#202b23;border:1px solid #516047;border-radius:8px;overflow:hidden}iframe{border:0;width:100%;height:100%;display:block;pointer-events:none}.scene-caption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding:22px 17px 12px;background:linear-gradient(transparent,#0c160fd9);font-size:10px;letter-spacing:1px;pointer-events:none}#scene-loading{position:absolute;inset:0;background:#1a251e;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:13px;text-align:center;padding:24px}#scene-loading small{color:var(--muted);max-width:280px}.spinner{width:25px;height:25px;border:2px solid #536048;border-top-color:var(--gold);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.player-strip{display:flex;align-items:center;gap:22px;padding:20px 0 12px}.identity{display:flex;gap:10px;align-items:center;min-width:125px}.identity small{display:block;font-size:10px;color:var(--muted)}.avatar{border:1px solid #566347;padding:2px 12px;font-size:26px;color:#c7ba8a;border-radius:5px}.vitals{flex:1}.vitals>div{display:flex;align-items:center;gap:7px;font-size:10px}.vitals span{width:18px;color:var(--muted)}.vitals small{min-width:65px;text-align:right;font-size:10px}meter{width:100%;height:8px;border:0;background:#2c342c;border-radius:4px}meter::-webkit-meter-bar{background:#2c342c;border:0}meter::-webkit-meter-optimum-value{background:#a95850}#sp::-webkit-meter-optimum-value{background:#698f9b}.currency{min-width:60px;text-align:right}.currency span{display:block;font-size:9px;letter-spacing:1px;color:var(--muted)}.currency strong{color:var(--gold);font-size:17px}.experience{position:relative;height:19px;margin-bottom:26px;border-bottom:3px solid #283326;font-size:9px;color:#91a286;text-align:right}.experience>div{position:absolute;bottom:-3px;height:3px;background:#9cae7a}.panel{padding:23px;border:1px solid var(--line);background:var(--panel);border-radius:8px}.farm-controls{display:flex;flex-wrap:wrap;align-items:end;gap:15px}.farm-controls label:first-child{flex:1;min-width:170px}label{display:block;font-size:11px;letter-spacing:.3px;color:#c2cbbb}input,select{display:block;width:100%;border:1px solid #46513f;border-radius:5px;background:#141d17;color:var(--text);padding:11px 12px;margin-top:7px;min-height:44px}.check{display:flex;align-items:center;gap:8px;min-height:44px;font-size:11px}.check input{width:17px;min-height:17px;margin:0;accent-color:var(--gold)}.hint{font-size:11px;color:var(--muted);margin:16px 0 0;line-height:1.8}.details{padding:36px 20px;border-left:1px solid var(--line);background:#17201b}.details h2{font-size:21px}.details p{font-size:12px;color:var(--muted)}.empty-symbol{color:#67755d;font-size:50px;margin-top:35px}.inventory-layout{display:grid;grid-template-columns:1fr 1fr;gap:25px}.inventory-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(9,48px);gap:3px}.slot{position:relative;padding:3px;background:#151d18;min-height:0;border:1px solid #3f4a38;border-radius:3px;display:flex;justify-content:center;align-items:center}.slot.occupied{border-color:#6e7851;background:linear-gradient(135deg,#313c29,#1b251c)}.slot img{max-width:100%;max-height:100%;object-fit:contain;image-rendering:auto}.slot b{position:absolute;bottom:1px;right:4px;font-size:10px;color:#e1ddbc;text-shadow:0 1px 2px #000}.equipment{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.equipment button{height:68px;padding:4px;font-size:9px;color:var(--muted);display:flex;align-items:center;flex-direction:column;justify-content:center}.equipment img{height:39px;max-width:100%;object-fit:contain}.segmented{display:flex;gap:3px}.segmented button{min-width:43px}.segmented .active{color:var(--gold);border-color:var(--gold)}.bag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-top:20px}.bag-grid button{display:flex;gap:10px;align-items:center;text-align:left;font-size:11px;padding:10px}.bag-grid img{width:32px;height:45px;object-fit:contain}.bag-pagination{display:flex;align-items:center;justify-content:space-between;margin-top:15px;font-size:11px}.empty-message{padding:30px 0;color:var(--muted);grid-column:1/-1}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.stat{padding:12px;background:#141d17;border:1px solid var(--line);border-radius:5px}.stat strong{display:block;font:25px Georgia;color:var(--gold)}.stat button{padding:0;min-width:36px;width:100%;margin-top:9px}.skills{display:grid;gap:9px}.skill{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:10px}.skill>div{flex:1}.skill small{display:block;color:var(--muted)}.inline-form{display:flex;gap:12px;align-items:end;margin-top:22px}.inline-form label{flex:1}.item-image{display:block;margin:25px auto 20px;min-height:64px;max-height:110px;max-width:110px;object-fit:contain}.item-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;border-bottom:1px solid var(--line);padding:7px 0}.item-actions{display:grid;gap:9px;margin-top:20px}.item-actions label{margin-top:6px}.auth{position:fixed;inset:88px 0 0;z-index:10;background:radial-gradient(ellipse at 70% 40%,#344032 0,#19251dee 45%,#111915 85%);display:flex;align-items:center;justify-content:center;padding:30px;overflow:auto}.auth-card{width:min(100%,420px)}.auth h1{font-size:54px;line-height:1.07;letter-spacing:-1px;margin:20px 0}.auth em{color:var(--gold);font-weight:400}.auth-description{color:var(--muted);font-size:13px;margin-bottom:30px}.auth form{display:grid;gap:16px}.auth form button{margin-top:5px}.auth-footer{display:block;border-top:1px solid var(--line);padding-top:20px;margin-top:24px;font-size:10px;color:#82947d}.auth #auth-message{font-size:11px;color:#cdb781;min-height:18px}.character-choice{display:grid;gap:10px}.character-choice button{display:flex;justify-content:space-between;align-items:center;text-align:left;padding:15px}.character-choice small{color:var(--muted)}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);max-width:min(90vw,550px);z-index:30;background:#e8dfc6;color:#252c23;padding:13px 22px;border:1px solid #b9ad89;border-radius:7px;box-shadow:0 8px 40px #0008;font-size:13px}dialog{background:var(--panel);color:var(--text);border:1px solid #616e52;border-radius:12px;width:min(92vw,390px);max-height:85dvh;padding:20px}dialog::backdrop{background:#0009}.dialog-close{display:block;margin-left:auto}@media(min-width:1600px){.scene{aspect-ratio:16/9}}@media(max-width:1200px){.layout{grid-template-columns:175px minmax(320px,1fr)}.details{display:none}.adventure{padding:24px 22px}.sidebar{padding-left:7px;padding-right:7px}.sidebar nav button{font-size:12px}}@media(max-width:700px){.topbar{height:70px;padding:0 17px;gap:10px}.brand{font-size:23px}.brand small{font-size:8px}.crest{font-size:18px;padding:8px}.connection{font-size:10px}.topbar #logout{padding:5px;font-size:10px}.layout{display:block;padding-bottom:76px}.sidebar{position:fixed;bottom:0;left:0;right:0;z-index:9;background:#19221d;border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));}.sidebar>.eyebrow,.sidebar-note{display:none}nav{flex-direction:row;justify-content:space-around;gap:0}nav button{font-size:17px!important;padding:6px!important;min-height:48px;flex:1;flex-direction:column;gap:0;position:relative;text-align:center;border-radius:5px}nav button span{font-size:8px;line-height:1.4}nav button.active{box-shadow:inset 0 2px var(--gold)}nav button b{position:absolute;top:0;right:7px;font-size:8px}.adventure{padding:20px 13px}.heading{align-items:start;margin-bottom:15px}h1{font-size:24px}.heading .pill{font-size:8px;padding:5px 8px;max-width:130px;white-space:normal;text-align:center}.eyebrow{font-size:8px;letter-spacing:1.6px}.scene{aspect-ratio:4/3;min-height:225px}.player-strip{gap:10px;padding:15px 0}.identity{min-width:98px;font-size:11px;gap:6px}.avatar{display:none}.vitals small{min-width:48px;font-size:8px}.vitals span{font-size:8px;width:14px}.currency{min-width:45px}.currency strong{font-size:14px}.panel{padding:17px 14px}.section-heading{flex-wrap:wrap}h2{font-size:21px}.farm-controls{display:grid;grid-template-columns:1fr;width:100%}.farm-controls label:first-child{min-width:0}.inventory-layout{gap:13px;grid-template-columns:1fr 1.2fr}.inventory-grid{grid-template-rows:repeat(9,36px);gap:2px}.equipment{gap:4px}.equipment button{height:59px;font-size:7px}.equipment img{height:33px}.stats{gap:5px}.stat{padding:8px;font-size:10px}.skill{flex-wrap:wrap}.skill button{font-size:11px;padding:6px}.inline-form{align-items:stretch;flex-direction:column}.auth{inset:70px 0 0;padding:25px;align-items:flex-start}.auth-card{margin:auto}.auth h1{font-size:45px}.auth-description{margin-bottom:22px}#toast{bottom:90px;min-width:280px}.experience{margin-bottom:20px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.scene{touch-action:none;user-select:none}.camera-controls{position:absolute;right:12px;top:12px;display:flex;gap:5px;align-items:center;z-index:3}.camera-controls span{font-size:10px;color:#e5e4ce;text-shadow:0 1px 4px #000;margin-right:6px}.camera-controls button{min-width:40px;min-height:40px;padding:5px;background:#152019dd;font-size:20px}@media(max-width:700px){.camera-controls span{display:none}}
