:root{--ui-space-1:4px;--ui-space-2:8px;--ui-space-3:12px;--ui-space-4:16px;--ui-space-5:24px;--ui-space-6:32px;--ui-title:clamp(20px, 2vw, 28px);--ui-subtitle:20px;--ui-body:16px;--ui-caption:14px;--ui-success:#216044;--ui-danger:#a52d25;--bg:#160d08;--panel:#382216;--line:#624333;--text:#fff;--muted:#cbbbad;--accent:#e7692c;--green:#e5dccd;--radius:16px;--space:8px}.ui-dialog{box-sizing:border-box;overscroll-behavior:contain;max-height:calc(100dvh - 32px);position:fixed;overflow:auto}.ui-dialog>.ui-dialog-header{z-index:5;box-sizing:border-box;background-color:var(--panel);min-height:44px;font-size:var(--ui-title);flex:none;justify-content:space-between;align-items:center;gap:16px;display:flex;position:sticky;top:0}.ui-dialog-header>h2{font:inherit;color:inherit;background:0 0;flex:1;margin:0;padding:0}.ui-dialog-header>.ui-dialog-close{flex:0 0 40px;width:40px;height:40px;min-height:40px;margin:0;padding:0;font:700 26px/1 sans-serif}.ui-dialog-footer{padding-top:var(--ui-space-4);justify-content:flex-end;display:flex}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #e59d32}button[aria-busy=true]{cursor:progress}.ui-feedback{font-size:var(--ui-caption);border:1px solid;border-radius:4px;padding:8px 12px}.ui-feedback[data-kind=success]{color:var(--ui-success);background:#dcebd9}.ui-feedback[data-kind=error]{color:var(--ui-danger);background:#fbe3dc}*{box-sizing:border-box}body{color:var(--text);background:var(--bg);margin:0;font-family:Arial,Helvetica,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--green);outline-offset:5px}.button{background:var(--accent);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:12px;padding:12px 22px;font-weight:700;transition:background .15s;display:inline-flex}.button:hover{background:#f0c692}.button.secondary{border-color:var(--line);color:var(--text);background:0 0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:24px}dialog{background:var(--panel);width:calc(100% - 40px);max-width:520px;color:var(--text);border:1px solid var(--line);border-radius:var(--radius);padding:32px}dialog::backdrop{background:#07151ccc}dialog h2{margin-top:0}kbd{text-align:center;min-width:28px;color:var(--text);border:1px solid #587078;border-bottom-width:3px;border-radius:5px;padding:2px 7px;font-size:12px;display:inline-block}.tanuki-logo{width:32px;height:32px;image-rendering:pixelated;background:url(/art/custom-office/tanuki-logo.png) 50%/contain no-repeat;display:block}.brand-mark:has(.tanuki-logo){background:0 0}.button.button-secondary,.button.button-quiet{background:var(--panel);color:var(--text);border-color:var(--line)}.button.button-danger{background:var(--ui-danger);color:#fff}.button.button-danger:hover{background:#84231e}.button.button-secondary:hover,.button.button-quiet:hover{filter:brightness(1.2)}
.auth-page{max-width:560px;margin:48px auto;padding:0 24px}.auth-card{margin-top:32px}.auth-card h1{font-size:28px;line-height:1.25}.auth-card p{color:var(--muted)}.auth-form{gap:12px;display:grid}.auth-form label{font-size:14px}.auth-form input{border:1px solid var(--line);background:var(--bg);width:100%;color:var(--text);border-radius:8px;padding:12px}.auth-form p{margin:4px 0;font-size:13px}.button:disabled{opacity:.6;cursor:wait}.demo-link{text-align:left;padding-left:0}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;min-height:92px;display:flex}.brand{letter-spacing:-.8px;align-items:center;gap:12px;font-size:23px;font-weight:750;display:inline-flex}.brand-light{color:var(--muted);font-weight:400}.brand-mark{background:var(--accent);width:38px;height:38px;color:var(--bg);border-radius:11px;place-items:center;font-size:27px;display:grid}.version{color:var(--muted);letter-spacing:2px;font:10px monospace}.version span{border:1px solid var(--line);letter-spacing:0;border-radius:20px;margin-left:12px;padding:6px 10px}.landing{max-width:1600px;margin:auto;padding:0 6%}.hero{grid-template-columns:1.1fr 1fr;align-items:center;gap:6%;padding:76px 0 64px;display:grid}.eyebrow{color:var(--green);letter-spacing:2px;margin:0 0 20px;font-size:10px;font-weight:700}.dot{background:var(--green);border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.hero h1{letter-spacing:-2.6px;margin:0;font-size:clamp(36px,3.7vw,59px);font-weight:550;line-height:1.13}.hero h1 em{color:var(--accent);font-family:Georgia,serif;font-weight:400}.hero-description{max-width:445px;color:var(--muted);margin:26px 0 30px;font-size:16px}.enter{min-width:218px}.enter span{margin-left:22px;font-size:24px;line-height:1}.demo-note{color:var(--muted);margin-top:17px;font-size:11px}.office-preview{background:#182c33;border:1px solid #34494f;border-radius:20px;padding:22px;transform:rotate(-2deg);box-shadow:0 25px 60px #0003}.preview-label{letter-spacing:1.5px;color:var(--muted);margin-bottom:18px;font-size:9px}.preview-room{background:repeating-linear-gradient(0deg,#0000 0 31px,#48606044 32px),repeating-linear-gradient(90deg,#304a49 0 31px,#48606044 32px);border:12px solid #15272e;border-radius:7px;height:305px;position:relative}.preview-desk{background:#b08d65;border-radius:4px;width:25%;height:48px;position:absolute;box-shadow:3px 6px #172d3255}.preview-desk i{background:#76a8a3;border:4px solid #21323a;width:50%;height:19px;position:absolute;top:9px;left:25%}.d1{top:30px;left:10%}.d2{top:30px;right:10%}.d3{top:104px;left:10%}.d4{top:104px;right:10%}.preview-rug{background:#3a666366;border:1px solid #6a989477;border-radius:15px;justify-content:center;align-items:flex-end;width:44%;height:90px;display:flex;position:absolute;bottom:15px;left:28%}.preview-rug span{letter-spacing:4px;color:#9fc0b2;padding-bottom:6px;font:9px monospace}.preview-player{background:#edb981;border:2px solid #ffddae;border-radius:3px;width:24px;height:26px;position:absolute;bottom:55px;left:calc(50% - 12px);box-shadow:0 5px #1b333a88}.preview-player span{white-space:nowrap;color:#fff;background:#172c34;border-radius:4px;padding:3px 7px;font-size:9px;position:absolute;bottom:33px;left:50%;transform:translate(-50%)}.preview-plant{background:#73a68a;border-radius:10px 3px;width:24px;height:29px;position:absolute;bottom:28px}.p1{left:9%}.p2{right:9%}.preview-caption{color:var(--muted);justify-content:space-between;gap:12px;margin-top:18px;font-size:9px;display:flex}.features{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:40px;padding:32px 0 42px;display:grid}.feature-number{color:var(--accent);font:11px monospace}.features h2{margin:10px 0 7px;font-size:17px;font-weight:500}.features p{color:var(--muted);max-width:320px;margin:0;font-size:13px}.landing-footer,.office-bottom{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:16px;padding:21px 0;font-size:10px;display:flex}.footer-divider{color:#526870;padding:0 10px}.office-shell{flex-direction:column;height:100dvh;min-height:650px;padding:0 32px;display:flex}.office-shell .topbar{min-height:78px}.header-actions{align-items:center;gap:12px;font-size:13px;display:flex}.local-badge{border:1px solid var(--line);color:var(--muted);border-radius:20px;margin-right:15px;padding:4px 12px;font-size:11px}.avatar{width:34px;height:34px;color:var(--accent);background:#3e4641;border-radius:10px;flex-shrink:0;place-items:center;font-size:13px;font-weight:700;display:grid}.office-layout{flex:1;grid-template-columns:220px minmax(0,1fr) 260px;gap:24px;min-height:0;padding:22px 0;display:grid}.online-panel{min-width:0;padding-top:6px}.online-panel .panel{padding:18px 16px}.online-panel .eyebrow{color:var(--muted);margin-bottom:10px;font-size:9px}.online-panel h2{margin:0 0 18px;font-size:17px;font-weight:500}.online-list{gap:14px;display:grid}.online-person{align-items:center;gap:9px;display:flex}.online-avatar{color:#a9e6c5;background:#2d5a52}.online-person strong{font-size:11px;font-weight:500;display:block}.online-person small{color:var(--muted);margin-left:4px;font-size:10px}.online-person p,.online-empty{color:var(--muted);margin:4px 0 0;font-size:10px}.online-dot{background:var(--green);border-radius:50%;width:6px;height:6px;margin-right:4px;display:inline-block}.world-panel{flex-direction:column;min-width:0;min-height:0;display:flex}.world-heading{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.world-heading .eyebrow{margin:0 0 4px;font-size:9px}.world-heading h1{margin:0;font-size:23px;font-weight:500}.room-label{letter-spacing:1px;color:var(--muted);font:10px monospace}.game-wrap{background:#293e40;border:1px solid #426064;border-radius:12px;flex:1;min-height:320px;position:relative;overflow:hidden}.game-host{outline:none;position:absolute;inset:0}.game-host:focus,.game-host:focus-visible,.game-host canvas:focus{outline:none}.game-host canvas{display:block}.game-message{background:var(--panel);color:var(--muted);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.office-shell [hidden]{display:none!important}.office-loading{z-index:12001;box-sizing:border-box;text-shadow:0 2px 3px #101917;color:#eddda9;background:#263c35 url(/art/interface/tanuki-loading.png) 50%/cover no-repeat;justify-content:flex-end;gap:14px;padding:28px 16px}.office-loading strong{color:#f7e6ae;font-size:clamp(24px,4vw,48px)}.office-loading.world-preview{background:linear-gradient(#0000 30%,#16242b99);justify-content:flex-end;padding-bottom:90px}.office-loading p{margin:0}.office-loading-track{background:#172b26;border:2px solid #b5915b;width:min(280px,65%);height:14px;padding:3px;overflow:hidden}.office-loading-track>span{background:#65ad80;height:100%;transition:width .24s ease-in-out;display:block;position:relative}.office-loading-track>span:after{content:"";background:linear-gradient(90deg,#0000,#d9ecb5aa,#0000);animation:1.6s ease-in-out infinite loading-light;position:absolute;inset:0}@keyframes loading-light{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.office-loading-track>span{transition:none}.office-loading-track>span:after{animation:none}}.world-footer{color:var(--muted);justify-content:space-between;gap:12px;padding-top:12px;font-size:10px;display:flex}.office-sidebar{padding-top:6px;overflow:auto}.office-sidebar .panel{margin-bottom:16px;padding:21px}.office-sidebar .eyebrow{color:var(--muted);margin-bottom:10px;font-size:9px}.office-sidebar h2{margin:0 0 19px;font-size:17px;font-weight:500}.count{float:right;color:var(--muted);background:#2a3e47;border-radius:5px;padding:0 8px;font-size:12px}.member{align-items:center;gap:12px;display:flex}.member strong{font-size:12px;font-weight:500}.member small{color:var(--muted);margin-left:5px;font-size:10px}.member p{color:var(--green);margin:0;font-size:10px}.sidebar-note{border-top:1px solid var(--line);padding-top:15px}.office-sidebar p{color:var(--muted);font-size:12px}.small-icon{color:var(--accent);font-size:23px}.key-row{align-items:center;gap:4px;margin:18px 0;display:flex}.key-row span{color:var(--muted);margin-left:4px;font-size:10px}.help-button{width:100%;padding:9px 8px;font-size:11px}.back-link{text-align:center;color:var(--muted);padding:10px;font-size:12px;display:block}.office-bottom{padding:13px 0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.error-page{padding:60px}@media (min-width:1600px){.office-shell{max-width:1800px;margin:auto}}@media (max-width:900px){.hero{gap:32px}.hero h1{font-size:38px}.office-layout{grid-template-columns:180px minmax(0,1fr) 220px;gap:16px}.office-shell{padding:0 20px}.office-sidebar .panel{padding:16px}.visitor-label{display:none}}@media (max-width:680px){.hero{grid-template-columns:1fr;padding:40px 0}.hero h1{font-size:39px}.office-preview{transform:none}.features{grid-template-columns:1fr;gap:24px}.landing-footer{flex-direction:column}.version{letter-spacing:0}.office-shell{height:auto;min-height:100dvh;padding:0 16px}.office-layout{flex-direction:column;display:flex}.game-wrap{min-height:420px}.office-sidebar{order:3}.online-panel{order:1}.world-panel{order:2}.office-sidebar{grid-template-columns:1fr;display:grid}.office-bottom{flex-wrap:wrap}.local-badge{margin:0}.brand{font-size:19px}.header-actions .avatar{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.connection-status{color:#d9eadb;pointer-events:none;background:#152a31e8;border-radius:6px;padding:6px 10px;font-size:12px;position:absolute;bottom:8px;left:8px}.office-sidebar{max-height:calc(100dvh - 180px);overflow-y:auto}.office-shop .button{white-space:normal;width:100%;font-size:12px}.office-shop p{font-size:12px}.shop-item{border-top:1px solid #354a4d;margin-top:12px;padding-top:12px}button:disabled{cursor:default;opacity:.55}@media (max-width:680px){.office-sidebar{max-height:none}}html.tanuki-desktop body{padding-top:32px}html.tanuki-desktop .office-shell.office-immersive{height:calc(100dvh - 32px)}.tanuki-window-bar{color:#b5bac1;z-index:2147483647;box-sizing:border-box;-webkit-app-region:drag;background:#2b2d31;height:32px;padding:7px 140px 7px 12px;font:12px system-ui;position:fixed;inset:0 0 auto}
