:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#263734;font-size:13px;background:#e8ebe4;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}#viewport{position:fixed;inset:0}#viewport canvas{width:100%;height:100%;display:block}header{position:fixed;top:27px;left:28px;right:28px;display:flex;align-items:center;gap:13px;pointer-events:none}.mark{width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:#263f37;color:#f3eddf;font-size:26px;border-radius:9px;position:relative}.mark span{position:absolute;font-size:8px;bottom:4px;right:5px}h1{font-weight:600;font-size:23px;letter-spacing:-.6px;margin:0}header p{margin:3px 0 0;color:#66746e;font-size:12px}.status{margin-left:auto;background:#ffffffc9;border:1px solid #d0d8ce;border-radius:20px;padding:8px 13px;font-size:11px;color:#597369}aside{position:fixed;left:28px;top:102px;width:256px;max-height:calc(100vh - 173px);overflow:auto;background:#f9faf6ee;backdrop-filter:blur(16px);border:1px solid #d9dfd5;border-radius:13px;padding:18px;box-shadow:0 8px 40px #263f3710;scrollbar-width:thin}.eyebrow{font-size:10px;letter-spacing:1.55px;font-weight:600;color:#7a8780;margin-bottom:12px}.segmented{display:flex;gap:3px;background:#e7ebe4;padding:3px;border-radius:7px}.segmented button{flex:1;font-size:11px;white-space:nowrap;padding:8px 3px;border:0;background:transparent}.segmented button.active{background:#fff;color:#294e40;box-shadow:0 1px 4px #0001}.toggles{display:grid;gap:11px;margin-top:18px}label{display:flex;align-items:center;gap:9px;font-size:12px}input[type=checkbox]{accent-color:#42634f;width:15px;height:15px;margin:0}.rule{height:1px;background:#dfe5db;margin:18px 0}.views{display:grid;grid-template-columns:1fr 1fr;gap:6px}button,select,input[type=number]{font:inherit;border:1px solid #d5ddd1;border-radius:6px;color:inherit;background:#ffffffa0}button{cursor:pointer;padding:8px 9px;transition:background .15s}button:hover{background:#e1e9db}button:focus-visible,input:focus-visible{outline:2px solid #709b75;outline-offset:2px}.wide{width:100%;margin-top:9px;font-size:11px;padding:10px 5px}.selectlabel{display:block;margin-top:13px;color:#687b70;font-size:11px}select{display:block;width:100%;margin-top:5px;padding:8px;font-size:12px}details{border-top:1px solid #dfe5db;margin-top:18px;padding-top:14px}summary{font-weight:500;cursor:pointer;font-size:12px}details a{display:block;margin-top:10px;color:#46664f;font-size:11px}details p{line-height:1.55;color:#778276}details label{justify-content:space-between;margin-top:8px}input[type=number]{width:88px;padding:4px}#selection{font-size:10px;color:#697b6c;margin-bottom:9px;overflow-wrap:anywhere}.reset{border:0;background:none;margin-top:14px;width:100%;color:#6b7d6c;font-size:11px}.scene-note{position:fixed;right:30px;bottom:76px;display:flex;flex-direction:column;text-align:right;gap:4px;font-size:11px;color:#7c8981}.scene-note span:first-child{font-size:13px;color:#435a4c}footer{position:fixed;bottom:20px;left:30px;right:30px;display:flex;justify-content:space-between;align-items:center;color:#708074;font-size:11px}footer button{font-size:11px;background:#f9faf3dd}.room-label{position:fixed;transform:translate(-50%,-50%);font-size:11px;line-height:1.4;background:#ffffffea;color:#263f37;padding:5px 8px;border:1px solid #d9dfd5;border-radius:5px;text-align:center;pointer-events:none;box-shadow:0 2px 9px #0001;max-width:150px}.room-label b{font-size:12px}.room-label small{color:#7a8078}#labels-layer{pointer-events:none}#toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);background:#263f37;color:white;padding:12px 18px;border-radius:8px;opacity:0;pointer-events:none;transition:opacity .2s}.capture header,.capture aside,.capture footer,.capture .scene-note{display:none}.capture #viewport{inset:0}@media(max-width:760px){header{left:16px;top:15px}.status{display:none}aside{top:auto;bottom:60px;left:12px;width:205px;max-height:45vh;padding:12px}.scene-note{right:13px;bottom:66px;font-size:9px}.scene-note span:first-child{font-size:11px}footer{left:15px;right:15px;bottom:15px}footer>span{max-width:190px;font-size:9px}.room-label{font-size:9px}.room-label b{font-size:10px}}

#panel-toggle,.touch-hint{display:none}#viewport canvas{touch-action:none}.capture #panel-toggle{display:none}
@media(max-width:760px){#panel-toggle{display:block;margin-left:auto;pointer-events:auto;min-height:44px;background:#f9faf6ef}header{right:16px}.mark{width:38px;height:38px}h1{font-size:20px}header p{font-size:10px}aside{display:none;left:12px;right:12px;width:auto;bottom:74px;max-height:62dvh;padding:16px}.panel-open aside{display:block}.panel-open .scene-note{display:none}button,select,summary,.toggles label{min-height:44px}summary{padding-top:12px}.segmented button,.wide{font-size:12px}input[type=checkbox]{width:20px;height:20px}.touch-hint{display:inline}.desktop-hint{display:none}.scene-note{bottom:80px}footer>span{max-width:55%;font-size:10px}footer button{min-height:44px;max-width:42%}}

/* Application identity and persistent character shortcut. */
header{top:22px;gap:14px;align-items:center}.mark{font-size:20px;font-weight:650;letter-spacing:-1px;width:46px;flex:none}.app-brand h1{font-size:25px;line-height:1.12;letter-spacing:-.6px;font-weight:650}.app-brand h1 span{display:block;font-size:16px;line-height:1.45;letter-spacing:.1px;font-weight:500}.app-brand .owner{font-size:11px;line-height:1.4;color:#586b60;margin:4px 0 0}.header-actions{display:flex;gap:8px;pointer-events:auto}.header-actions button,#panel-toggle{display:block;min-height:44px;background:#f9faf6ee;padding:10px 16px;font-size:12px;margin:0}#denis-button{border-color:#8fa898;color:#294c3b;font-weight:600}aside{top:124px;max-height:calc(100vh - 196px)}body.controls-hidden aside{display:none}.capture .header-actions{display:none}
@media(max-width:760px){header{left:14px;right:14px;top:14px;display:grid;grid-template-columns:35px minmax(0,1fr);gap:8px 10px;align-items:start}.mark{width:35px;height:38px;font-size:16px;border-radius:7px;margin-top:1px}.app-brand h1{font-size:21px;line-height:1.12;letter-spacing:-.5px}.app-brand h1 span{font-size:14px;line-height:1.5}.app-brand .owner{font-size:10px;line-height:1.4;max-width:310px;margin-top:3px}.header-actions{grid-column:1/-1;justify-content:flex-end;gap:7px}.header-actions button,#panel-toggle{padding:9px 14px;min-height:44px;font-size:12px}.status{display:none}aside{top:auto;max-height:calc(100dvh - 242px);bottom:75px}.scene-note{bottom:80px}}

/* SUKHANOV · 3D — compact identity; fixed controls keep the scene available. */
header{top:22px;gap:13px;align-items:center}.brand-symbol{width:38px;height:38px;flex:0 0 38px}.brand-symbol svg{display:block;width:100%;height:100%}.app-brand h1{font-size:23px;line-height:1.2;font-weight:650;letter-spacing:1.4px;white-space:nowrap}.app-brand h1 .brand-dot{display:inline;font:inherit;color:#6b8773;letter-spacing:1px}.app-brand .owner{font-size:11px;line-height:1.5;margin-top:4px;letter-spacing:.05px;color:#53695d}aside{top:101px;max-height:calc(100vh - 180px)}footer{display:grid;grid-template-columns:1fr auto;gap:7px 18px;align-items:end}.copyright{grid-column:1;grid-row:1;font-size:10px;color:#53685b;letter-spacing:.08px}footer>span:not(.copyright){grid-column:1;grid-row:2}footer>button{grid-column:2;grid-row:1/3}.scene-note{bottom:86px}
@media(max-width:760px){header{top:12px;left:13px;right:13px;grid-template-columns:32px minmax(0,1fr);gap:7px 10px;align-items:center}.brand-symbol{width:32px;height:34px}.app-brand h1{font-size:20px;letter-spacing:1.1px;line-height:1.2}.app-brand .owner{font-size:10px;line-height:1.4;margin-top:3px;max-width:none}.header-actions{gap:7px}.header-actions button,#panel-toggle{padding:8px 13px}aside{top:auto;max-height:calc(100dvh - 230px);bottom:93px}footer{left:13px;right:13px;bottom:11px;grid-template-columns:minmax(0,1fr) auto;gap:7px 10px}.copyright{grid-column:1/3;grid-row:2;font-size:9px;line-height:1.4;max-width:none!important}footer>span:not(.copyright){grid-column:1;grid-row:1;max-width:none;font-size:9px}footer>button{grid-column:2;grid-row:1;max-width:none}.scene-note{bottom:99px}.panel-open aside{max-height:calc(100dvh - 230px)}}
@media(max-width:350px){.app-brand h1{font-size:18px;letter-spacing:.7px}.app-brand .owner{font-size:9px}.header-actions button,#panel-toggle{padding:8px 11px}}

/* One panel state across screen sizes; hiding never delays scene input. */
header{z-index:20}#control-panel{z-index:30;display:block;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-7px);transition:opacity .16s ease,transform .16s ease,visibility 0s .16s}
body.controls-hidden #control-panel{display:block}body.panel-open #control-panel{display:block;opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition:opacity .16s ease,transform .16s ease,visibility 0s}
.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-7px -7px 7px 0}.panel-heading .eyebrow{margin:0}#panel-close{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;min-height:36px;padding:8px;border-color:transparent;background:transparent;color:#52695a}#panel-close:hover{background:#e1e9db}#panel-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
#panel-toggle.active{background:#365947;color:#fff;border-color:#365947;box-shadow:0 0 0 2px #36594716}.capture #control-panel{display:none!important}
@media(max-width:760px){#control-panel{transform:translateY(7px)}#panel-close{width:44px;height:44px;min-height:44px;flex-basis:44px}.panel-heading{margin-top:-9px}}
@media(prefers-reduced-motion:reduce){#control-panel,body.panel-open #control-panel{transition:none}}

[hidden]{display:none!important}#character-actions{position:fixed;z-index:21;top:99px;right:28px;display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;max-width:calc(100vw - 330px)}#character-actions button{background:#f9faf6ee;min-height:40px;font-size:11px}#walk-start,#walk-end{border-color:#789181;color:#284936;font-weight:600}#walk-reset{font-size:10px!important}#walk-hint{position:fixed;bottom:87px;left:50%;transform:translateX(-50%);max-width:80%;background:#f9faf6e8;color:#405b49;border:1px solid #d5ddd1;border-radius:7px;padding:9px 13px;font-size:11px;z-index:15;text-align:center;pointer-events:none}#walk-joystick{display:none;position:fixed;left:22px;bottom:92px;width:114px;height:114px;border-radius:50%;background:#f5f8edb0;border:1px solid #879e8db3;box-shadow:inset 0 0 0 16px #dce5d73d;z-index:22;touch-action:none;user-select:none;place-items:center}#joystick-stick{display:block;width:45px;height:45px;border-radius:50%;background:#52725bdd;border:1px solid #fff6;pointer-events:none}.walking .scene-note{display:none}
@media(max-width:760px){#character-actions{top:126px;left:13px;right:13px;max-width:none;gap:5px}#character-actions button{min-height:42px;padding:7px 10px}#walk-reset{flex-basis:auto}#walk-hint{bottom:65px;width:calc(100% - 26px);max-width:none;padding:7px 8px;font-size:10px}.walking #walk-joystick{display:grid}.walking footer>span:not(.copyright){visibility:hidden}.walking footer>button{visibility:hidden}#walk-end{margin-right:auto}}
@media(pointer:coarse){.walking #walk-joystick{display:grid}}
