@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap";:root{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;font-weight:400;font-synthesis:none;color:var(--ink);background:var(--paper);--paper: #ffffff;--surface: #f7f8fa;--surface-hover: #f0f2f5;--canvas: #f3f4f6;--ink: #20262e;--muted: #626d7a;--subtle: #737e8b;--line: #e5e8ec;--line-strong: #cbd1d9;--green: #326b4a;--green-hover: #27573b;--accent-soft: #edf5f0;--accent-line: #b9d2c2;--focus: #3d805a;--focus-halo: #326b4a20;--danger: #b33f3f;--warning: #99601c;--shadow-sm: 0 1px 3px #18223008, 0 4px 12px #18223005;--shadow-panel: 0 8px 32px #1822300d, 0 1px 4px #18223008;--radius: 10px}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit;-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:none;border:0}button:disabled{cursor:default;opacity:.5}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--focus)}input:focus,textarea:focus,select:focus{outline:2px solid var(--focus);outline-offset:0}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}svg{flex-shrink:0;stroke-width:1.7}input,textarea,select{color:var(--ink)}::selection{background:var(--accent-line)}kbd{font-family:inherit}.app-shell{height:100dvh;min-height:480px;display:flex;flex-direction:column;overflow:hidden}.app-header{height:64px;flex-shrink:0;display:flex;align-items:center;padding:0 24px;border-bottom:1px solid var(--line);gap:40px;background:var(--paper)}.brand{display:flex;align-items:center;gap:10px;flex-shrink:0;font-family:Manrope,sans-serif;font-size:23px;font-weight:800;letter-spacing:-1.1px}.brand-light{font-weight:500}.brand-mark{width:34px;height:34px;border-radius:12px;background:var(--green);display:flex;gap:5px;align-items:center;justify-content:center;position:relative;transform:rotate(-7deg);box-shadow:inset 0 1px 1px #ffffff30}.brand-mark:after{content:"";position:absolute;left:9px;right:9px;height:12px;bottom:5px;border-radius:50%;background:#fff;opacity:.09}.brand-mark i{height:5px;width:4px;border-radius:50%;background:#fff;z-index:1;transform:rotate(7deg)}.header-nav{display:flex;align-items:center;align-self:stretch;gap:28px;font-size:12px;color:var(--muted)}.header-nav>span,.header-nav>button{display:flex;align-items:center;gap:8px;position:relative;padding:0 2px;font-weight:500}.header-nav .nav-active{color:var(--ink)}.nav-active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--green)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:20px}.save-status{font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center;white-space:nowrap}.save-status i{width:6px;height:6px;background:var(--green);border-radius:50%}.save-status.warning{color:var(--warning)}.save-status.warning i{background:var(--warning)}.profile-avatar{width:32px;height:32px;display:grid;place-items:center;background:var(--surface);border-radius:50%;font-size:12px;font-weight:600;color:var(--muted);border:1px solid var(--line)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:10px 16px;border-radius:9px;font-weight:550;font-size:13px;white-space:nowrap}.primary{color:#fff;background:var(--green);box-shadow:0 1px 2px #18223010,inset 0 1px #ffffff10;border:1px solid var(--green)}.primary:hover:not(:disabled){background:var(--green-hover);border-color:var(--green-hover)}.outline,.subtle{border:1px solid var(--line-strong);background:var(--paper);box-shadow:var(--shadow-sm)}.outline:hover,.subtle:hover{background:var(--surface)}.danger{background:var(--danger);color:#fff}.danger-text{color:var(--danger)!important}.icon-button{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;color:var(--muted);flex-shrink:0}.icon-button:hover{background:var(--surface-hover);color:var(--ink)}.eyebrow{font-size:10px;letter-spacing:1.1px;font-weight:600;color:var(--muted)}.workspace-bar{padding:16px 24px;min-height:84px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-shrink:0;background:var(--paper)}.workspace-title{min-width:0}.workspace-title>.eyebrow{display:block;margin-bottom:6px}.plan-switcher{position:relative;z-index:50}.plan-switcher>button{display:flex;gap:10px;align-items:center;padding:0;max-width:100%}.plan-switcher h1{font-family:Manrope,sans-serif;font-size:20px;letter-spacing:-.6px;font-weight:750;line-height:1.35;max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-switcher>button>svg{color:var(--muted)}.workspace-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.plan-menu{position:absolute;top:38px;left:0;min-width:280px;max-width:min(360px,calc(100vw - 32px));max-height:65vh;overflow:auto;padding:8px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-panel);display:flex;flex-direction:column;gap:2px}.menu-heading{font-size:10px;color:var(--muted);letter-spacing:1px;padding:8px 12px}.plan-menu>button{display:flex;align-items:center;gap:12px;min-height:40px;padding:10px 12px;text-align:left;border-radius:8px;font-size:13px}.plan-menu>button:hover{background:var(--surface-hover)}.plan-menu>button>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-menu>hr{width:100%;border:0;border-top:1px solid var(--line)}.workspace{display:flex;flex:1;min-height:0;border-top:1px solid var(--line);position:relative}.roster{width:288px;flex-shrink:0;background:var(--paper);display:flex;flex-direction:column;border-right:1px solid var(--line);z-index:25}.roster-heading{display:flex;justify-content:space-between;align-items:center;padding:16px 16px 12px 20px}.roster-heading>div{display:flex;align-items:center;gap:8px}.roster-heading>div>svg{color:var(--muted)}.roster-heading h2{font-size:14px;font-weight:600;letter-spacing:-.2px}.count-badge{font-size:11px;font-weight:550;color:var(--muted);background:var(--surface-hover);padding:2px 7px;border-radius:6px}.search-box{display:flex;flex-direction:row;align-items:center;gap:8px;margin:0 16px;min-height:40px;padding:8px 12px;background:var(--surface);border:1px solid var(--line);border-radius:9px;color:var(--muted)}.search-box input{width:100%;min-width:0;min-height:0;padding:0;border:0;background:transparent;font-size:12px;outline:none!important;box-shadow:none!important;line-height:1.6;border-radius:0}.search-box kbd{display:none}.roster-tabs{display:flex;gap:0;margin:12px 16px 4px;border-bottom:1px solid var(--line)}.roster-tabs button{flex:1;padding:10px 6px 12px;font-size:12px;color:var(--muted);position:relative}.roster-tabs button.active{font-weight:600;color:var(--green)}.roster-list{flex:1;min-height:0;overflow:auto;padding:8px 8px 16px;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.new-bot-template{position:relative;isolation:isolate;margin:4px 16px 16px;padding:12px;flex-shrink:0;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:0 6px 18px #1822300b,0 1px 3px #1822300b;transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,transform var(--motion-fast) var(--ease-settle)}.new-bot-template:hover,.new-bot-template[data-active=true]{border-color:var(--accent-line);box-shadow:0 10px 26px #18223014,0 2px 5px #18223008;transform:translateY(-1px)}.new-bot-template[data-disabled=true]{opacity:.55;transform:none}.quick-bot-eyebrow{position:absolute;top:16px;left:16px;z-index:2;font-size:10px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);pointer-events:none}.new-bot-template .compact-preview{height:116px;border:0;border-radius:10px;background:radial-gradient(ellipse at 50% 65%,color-mix(in srgb,var(--bot-accent) 12%,white),#f7f8fa 70%);pointer-events:none}.new-bot-template .compact-preview:before{width:70px;height:9px;top:calc(50% + 33px);filter:blur(6px)}.quick-bot-copy{padding:8px 2px 2px;text-align:center}.quick-bot-name{display:grid;min-height:38px;align-items:center}.quick-bot-role{grid-area:1/1;display:block;font-size:14px;line-height:1.35;font-weight:600;letter-spacing:-.15px}.quick-bot-copy small{display:block;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.5}.quick-bot-add{position:absolute;top:16px;right:16px;z-index:2;display:grid;place-items:center;width:24px;height:24px;color:var(--green);background:var(--paper);border:1px solid var(--line);border-radius:8px;pointer-events:none}.quick-bot-action{position:absolute;inset:0;width:100%;height:100%;border-radius:inherit;background:transparent;cursor:grab;z-index:3}.quick-bot-action:active{cursor:grabbing}.quick-bot-action:disabled{cursor:default}.quick-bot-drag-image{position:fixed;left:-1000px;top:-1000px;pointer-events:none}@media(prefers-reduced-motion:reduce){.new-bot-template{transform:none!important}}.person-row{display:flex;align-items:center;gap:12px;padding:12px;width:100%;text-align:left;border-radius:10px;border:1px solid transparent;min-height:68px}.person-row:hover{background:var(--surface)}.person-row.selected{background:var(--accent-soft);border-color:var(--accent-line)}.person-copy{display:block;min-width:0;flex:1}.person-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:550;margin-bottom:4px}.person-copy small{font-size:11px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}.person-location{color:var(--subtle);flex-shrink:0;display:flex}.person-location.unplaced{background:var(--surface-hover);border-radius:50%;padding:3px;color:var(--muted)}.dot-avatar{width:32px;height:34px;position:relative;flex-shrink:0;background:var(--dot-color);border-radius:49% 49% 45% 45%;box-shadow:inset -4px -5px 6px #00000018,inset 3px 3px 5px #ffffff60,0 3px 5px #1822300a;display:flex;align-items:center;justify-content:center;gap:6px;transform:rotate(-4deg)}.dot-avatar:before,.dot-avatar:after{content:"";width:8px;height:4px;position:absolute;bottom:-2px;background:var(--dot-color);border-radius:50%}.dot-avatar:before{left:4px;transform:rotate(-12deg)}.dot-avatar:after{right:4px;transform:rotate(12deg)}.dot-avatar i{display:block;width:3px;height:5px;background:var(--ink);border-radius:50%;margin-bottom:1px;box-shadow:inset 0 1px #ffffff40}.dot-avatar.dark i{background:#f8fafc}.roster-footer{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding:16px 20px;color:var(--muted);font-size:11px}.roster-collapsed>.roster{display:none}.roster-reopen{position:absolute;top:16px;left:16px;z-index:20;background:var(--paper);border:1px solid var(--line);border-radius:12px;width:44px;height:44px;box-shadow:var(--shadow-sm)}.roster-reopen-face{display:block;padding-bottom:2px;pointer-events:none}.roster-reopen .dot-avatar{width:29px;height:31px}.roster-reopen-plus{position:absolute;right:1px;bottom:1px;display:grid;place-items:center;width:16px;height:16px;border:2px solid var(--paper);border-radius:50%;background:var(--green);color:#fff;pointer-events:none}.roster-reopen:hover,.roster-reopen:focus-visible{border-color:var(--accent-line);box-shadow:0 4px 12px #18223014}.roster-reopen[data-animated=true] .dot-avatar{animation:roster-bot-sway 6s ease-in-out infinite}.roster-reopen[data-animated=true] .dot-avatar i{animation:roster-bot-look 7s ease-in-out infinite}@keyframes roster-bot-sway{0%,to{transform:rotate(-4deg) translateY(0)}35%{transform:rotate(3deg) translateY(-1px)}65%{transform:rotate(-2deg) translateY(0)}}@keyframes roster-bot-look{0%,12%,44%,70%,to{transform:translate(0) scaleY(1)}17%,30%{transform:translate(2px,-.5px) scaleY(1)}32%,35%{transform:translate(2px,-.5px) scaleY(1)}33.5%{transform:translate(2px,-.5px) scaleY(.12)}52%,63%{transform:translate(-2px,.5px) scaleY(1)}82%,85%{transform:translate(0) scaleY(1)}83.5%{transform:translate(0) scaleY(.12)}}.empty-roster{text-align:center;padding:40px 16px;color:var(--muted)}.empty-roster>svg{margin-bottom:16px}.empty-roster h3{font-size:14px;color:var(--ink);margin-bottom:8px}.empty-roster p{font-size:13px;line-height:1.7;margin-bottom:20px}.canvas-panel{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;background:var(--canvas);isolation:isolate;overflow:hidden}.world{flex:1;position:relative;min-height:0;touch-action:none;overscroll-behavior:contain;user-select:none;-webkit-user-select:none}.world>div:first-child{height:100%}.world canvas{outline:none;-webkit-touch-callout:none}.world-bottom{position:absolute;bottom:48px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:none}.world-legend{display:flex;gap:16px;font-size:11px;color:var(--muted);align-items:center}.world-legend>span{display:flex;align-items:center;gap:6px;white-space:nowrap}.world-legend i{width:6px;height:6px;border-radius:50%;display:inline-block}.legend-human{background:#b77c54}.legend-proposed{background:#718749}.legend-existing{background:#497f78}.camera-controls{display:flex;gap:2px;background:#ffffffed;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:12px;padding:4px;box-shadow:var(--shadow-panel);pointer-events:auto}.camera-controls>button{width:36px;height:36px;border-radius:8px;display:grid;place-items:center;color:var(--muted)}.camera-controls>button:hover{background:var(--surface-hover);color:var(--ink)}.camera-controls>span{height:20px;border-right:1px solid var(--line);align-self:center;margin:0 4px}.scene-hint{position:absolute;bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;font-size:10px;white-space:nowrap;color:var(--muted);pointer-events:none}.canvas-note{display:flex;align-items:center;gap:12px;background:#ffffffed;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-panel);padding:16px;position:absolute;bottom:112px;left:24px;max-width:400px;pointer-events:none}.note-icon{height:36px;width:36px;flex-shrink:0;display:grid;place-items:center;color:var(--green);background:var(--accent-soft);border-radius:10px}.canvas-note strong{font-size:13px;font-weight:550;color:var(--ink)}.canvas-note p{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.5}.character-label{padding:8px 12px;background:var(--paper);box-shadow:var(--shadow-panel);border:1px solid var(--line);border-radius:8px;white-space:nowrap;max-width:250px;overflow:hidden;text-overflow:ellipsis;font-size:12px;font-weight:500;color:var(--ink)}.room-label{display:flex;align-items:center;gap:8px;white-space:nowrap;color:var(--muted);font-size:10px;letter-spacing:1.2px;font-weight:600;background:#fffffff0;border:1px solid var(--line);border-radius:8px;padding:8px 12px;box-shadow:var(--shadow-sm)}.room-label>span{font-size:11px;text-transform:none;font-weight:400;letter-spacing:0;color:var(--muted);margin-left:4px}.pod-label{font-size:8px;letter-spacing:1px;color:#586272;white-space:nowrap;font-weight:600}.placement-banner{position:absolute;top:16px;left:50%;transform:translate(-50%);background:var(--paper);border:1px solid var(--accent-line);box-shadow:var(--shadow-panel);border-radius:10px;display:flex;align-items:center;gap:20px;padding:12px 16px;font-size:13px;max-width:90%;z-index:30}.placement-banner>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.placement-banner>button{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:12px;min-height:32px}.placement-banner kbd{padding:2px 4px;border:1px solid var(--line-strong);border-radius:4px;font-size:10px}.is-placing canvas{cursor:crosshair!important}.world-loading,.webgl-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);gap:16px;padding:40px;text-align:center}.webgl-fallback h2{font-size:20px;color:var(--ink)}.webgl-fallback p{font-size:13px;max-width:350px;line-height:1.7}.details{width:320px;flex-shrink:0;background:var(--paper);border-left:1px solid var(--line);padding:16px 20px 24px;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;z-index:25}.details-heading{display:flex;justify-content:space-between;align-items:center}.detail-avatar-area{padding:12px 0 20px;text-align:center}.detail-avatar-bg{position:relative;display:flex;align-items:center;justify-content:center;margin:0 auto}.dot-avatar.large{width:72px;height:78px;gap:14px;border-radius:48% 48% 44% 44%;box-shadow:inset -8px -7px 15px #00000020,inset 4px 4px 10px #ffffff60;z-index:2;transform:rotate(-7deg)}.dot-avatar.large>i{width:6px;height:9px}.dot-avatar.large:before,.dot-avatar.large:after{width:16px;height:8px;bottom:-3px}.dot-avatar.large:before{left:8px}.dot-avatar.large:after{right:8px}.type-badge{display:inline-block;font-size:11px;font-weight:500;border-radius:6px;padding:4px 8px;border:1px solid var(--line);background:var(--surface);color:var(--muted);margin-top:12px}.type-badge.human{color:#815934;background:#fcf4eb;border-color:#f0dfca}.type-badge.proposed{color:var(--green);background:var(--accent-soft);border-color:var(--accent-line)}.details-form{display:flex;flex-direction:column;gap:20px}label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:550;color:var(--ink);min-width:0}label input,label textarea,label select{width:100%;border:1px solid var(--line-strong);background:var(--paper);border-radius:8px;padding:10px 12px;min-height:44px;font-size:14px;line-height:1.5;font-weight:400;box-shadow:0 1px 2px #18223004}label input::placeholder,label textarea::placeholder{color:var(--subtle)}label textarea{resize:vertical;min-height:88px}label select{appearance:auto;padding-right:8px}.details-form label:first-child input{font-weight:500}.save-details{width:100%;min-height:44px}.save-details:disabled{color:var(--muted);background:var(--surface);border:1px solid var(--line);box-shadow:none;opacity:1}.location-card{border:1px solid var(--line);border-radius:10px;margin-top:24px;padding:16px}.field-label{font-size:10px;letter-spacing:1px;color:var(--muted);font-weight:550}.location-card>div{display:flex;gap:12px;align-items:center;margin:12px 0}.location-icon{padding:10px;border-radius:8px;background:var(--surface);color:var(--muted)}.location-card strong{display:block;font-size:13px;font-weight:550}.location-card small{display:block;font-size:11px;color:var(--muted);margin-top:4px;line-height:1.5}.location-card>button{display:flex;align-items:center;gap:8px;width:100%;border-top:1px solid var(--line);padding:12px 0 0;font-size:12px;color:var(--green)}.location-card>button>svg:last-child{margin-left:auto}.detail-note{display:flex;align-items:flex-start;gap:8px;margin:20px 0;color:var(--muted)}.detail-note p{font-size:12px;line-height:1.6}.detail-actions{padding:4px 0;display:flex;flex-direction:column;gap:4px;align-items:flex-start}.detail-actions>button{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);padding:10px 0;min-height:40px}.storage-warning{background:#fff8e8;border-top:1px solid #ead5ab;color:var(--warning);padding:12px 24px;display:flex;align-items:center;gap:16px;font-size:12px;flex-shrink:0}.storage-warning>span{flex:1}.storage-warning>button{white-space:nowrap;text-decoration:underline;font-size:12px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--ink);color:#fff;box-shadow:var(--shadow-panel);padding:14px 16px;border-radius:12px;z-index:110;display:flex;align-items:center;gap:10px;font-size:13px;max-width:min(600px,90vw)}.toast>svg{color:#a8d5b8}.toast>button{display:flex;color:#fff;margin-left:8px;padding:4px}.modal-backdrop{position:fixed;inset:0;background:#18223045;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;z-index:100;padding:24px}.modal{width:520px;max-width:100%;max-height:min(900px,calc(100dvh - 48px));min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--paper);border:1px solid #ffffff80;border-radius:20px;box-shadow:0 32px 100px #10182830,0 4px 16px #10182810}.modal-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;gap:12px;padding:24px 28px 16px}.modal-header h2{font-family:Manrope,sans-serif;font-size:21px;font-weight:650;letter-spacing:-.65px}.modal-content{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;padding:0 28px 24px}.modal-description{font-size:14px;color:var(--muted);line-height:1.7;margin-bottom:24px}.modal form>label{margin:20px 0}.modal-actions{position:sticky;bottom:-24px;display:flex;justify-content:flex-end;gap:8px;margin:24px -28px -24px;padding:16px 28px 24px;background:var(--paper);border-top:1px solid var(--line);z-index:3}.modal-actions .button{min-height:44px}.modal fieldset{border:0;margin:24px 0 0;padding:0;min-width:0}.modal legend{font-size:12px;font-weight:550;color:var(--ink);margin-bottom:12px}.radio-card{display:flex;flex-direction:row;align-items:center;gap:12px;border:1px solid var(--line);padding:16px;margin:8px 0;border-radius:10px}.radio-card:has(input:checked){border-color:var(--accent-line);background:var(--accent-soft)}.radio-card input{width:16px;min-height:16px;accent-color:var(--green);flex-shrink:0}.radio-card strong,.radio-card small{display:block}.radio-card strong{font-size:13px;font-weight:550;color:var(--ink)}.radio-card small{font-size:12px;color:var(--muted);font-weight:400;margin-top:4px;line-height:1.5}.form-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.help-content p{font-size:14px;line-height:1.65;color:var(--muted)}.help-content .modal-description{margin-bottom:12px}.help-points{list-style:none;padding:0;margin:0}.help-points li{display:grid;grid-template-columns:136px minmax(0,1fr);align-items:center;gap:20px;padding:12px 0}.help-points li+li{border-top:1px solid #f0f1f2}.help-points img{display:block;width:136px;height:136px;object-fit:contain;background:#fff}.help-points p{margin:0}.help-content strong{display:block;color:var(--ink);font-size:16px;font-weight:600;letter-spacing:-.2px;margin-bottom:6px}.help-content .help-footnote{font-size:12px;padding-top:16px;border-top:1px solid var(--line);margin:16px 0}.help-actions{margin-top:16px}@media(max-width:600px){.help-points li{grid-template-columns:100px minmax(0,1fr);gap:12px;padding:16px 0}.help-points img{width:100px;height:100px}.help-content strong{font-size:15px}.help-points p{font-size:13px}}.touch-hint{display:none}@media(min-width:1600px){.roster{width:312px}.person-copy strong{font-size:13px}.person-copy small{font-size:12px}.details{width:344px;padding-left:24px;padding-right:24px}}@media(max-width:1150px){.app-header{gap:28px}.save-status{display:none}.roster{width:264px}.person-row{gap:10px;padding:10px}.details{width:304px;padding-left:16px;padding-right:16px}.world-legend{gap:10px;font-size:10px}.has-details .world-legend{display:none}.has-details .world-bottom{justify-content:flex-end}}@media(max-width:900px){.header-nav{display:none}.details{position:absolute;right:0;top:0;bottom:0;box-shadow:-8px 0 32px #1822300d;width:320px}.roster{position:absolute;left:0;top:0;bottom:0;box-shadow:8px 0 32px #1822300d;width:288px}.workspace-title h1{max-width:350px;font-size:19px}.pause-button{padding:10px}.pause-button>span{display:none}.has-details .world-bottom{right:336px}.has-details .scene-hint{display:none}}@media(max-width:600px){.app-header{height:60px;padding:0 16px}.brand{font-size:22px}.brand-mark{width:32px;height:32px}.header-actions{gap:8px}.header-actions .button{padding:10px;font-size:0;gap:0;min-width:44px;min-height:44px}.profile-avatar{display:none}.workspace-bar{padding:16px;gap:12px;min-height:88px}.workspace-title h1{font-size:17px;max-width:215px}.workspace-title .eyebrow{font-size:9px}.workspace-actions{gap:6px}.workspace-actions>.primary{font-size:0;gap:0;padding:12px;min-width:44px;min-height:44px}.pause-button{min-height:44px;min-width:44px;padding:12px}.icon-button{min-width:44px;min-height:44px}.plan-menu>button{min-height:44px}.roster{width:min(304px,88vw)}.roster-tabs button{min-height:44px}.details{width:min(320px,90vw);padding:12px 20px 24px}.detail-actions>button,.location-card>button{min-height:44px}label input,label textarea,label select,.search-box input{font-size:16px}.canvas-note{bottom:116px;left:16px;right:16px;max-width:none;padding:16px}.world-legend{display:none}.world-bottom{bottom:44px;left:16px;right:16px;justify-content:flex-end}.camera-controls>button{width:44px;height:44px}.camera-controls{gap:0}.scene-hint{font-size:10px;bottom:16px}.room-label{padding:8px;font-size:9px;letter-spacing:.8px}.room-label>span{display:none}.pod-label{font-size:7px}.has-details .world-bottom{right:auto;left:8px;bottom:16px;flex-direction:column;align-items:flex-start}.has-details .camera-controls{flex-direction:column;padding:2px}.has-details .camera-controls>span{width:20px;height:0;border-top:1px solid var(--line)}.placement-banner{top:16px;font-size:12px;padding:8px 12px;gap:8px}.placement-banner>button{min-height:44px}.placement-banner kbd{display:none}.modal-backdrop{padding:12px}.modal{width:100%;max-height:calc(100dvh - 24px);border-radius:16px}.modal-header{padding:16px 20px 12px;gap:8px}.modal-header h2{font-size:19px}.modal-content{padding:0 20px 20px}.modal-actions{bottom:-20px;margin:24px -20px -20px;padding:16px 20px max(20px,env(safe-area-inset-bottom))}.modal-actions .primary{flex:1}.modal-actions .button{font-size:13px}.storage-warning{padding:8px 16px;flex-wrap:wrap;gap:8px}.storage-warning>span{flex-basis:100%}.toast{bottom:16px;font-size:12px}.toast>button{min-width:32px;min-height:32px;justify-content:center;align-items:center}}@media(max-width:360px){.workspace-title h1{max-width:165px}.workspace-actions{gap:4px}.modal-header h2{font-size:17px}}@media(hover:none)and (pointer:coarse){.mouse-hint{display:none}.touch-hint{display:inline}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.character-preview{height:204px;width:100%;position:relative;display:grid;place-items:center;overflow:hidden;border-radius:14px;background:radial-gradient(ellipse at 50% 35%,#fff,#f4f5f7);border:1px solid var(--line);isolation:isolate;touch-action:pan-y}.character-preview:before{content:"";position:absolute;width:94px;height:14px;left:50%;top:calc(50% + 59px);transform:translate(-50%);border-radius:50%;background:#23304525;filter:blur(7px);pointer-events:none}.character-preview>div{position:absolute!important;inset:0;z-index:1}.character-preview canvas{pointer-events:none}.preview-caption{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-size:11px;color:var(--muted);pointer-events:none;z-index:2}.color-picker,.modal .color-picker{border:0;padding:0;margin:0;min-width:0}.color-picker legend,.modal .color-picker legend{font-size:12px;font-weight:550;color:var(--ink);margin-bottom:12px;width:100%}.selected-color-name{float:right;color:var(--muted);font-weight:400}.color-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px 4px}.color-option{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:60px;padding:6px 0;cursor:pointer;border:1px solid transparent;border-radius:9px}.color-option>span{height:30px;width:30px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1px #18223020,0 2px 4px #1822300a}.color-option small{font-size:10px;font-weight:400;line-height:1.2;color:var(--muted);max-width:100%;white-space:nowrap}.color-option input{position:absolute;opacity:0;width:1px;height:1px;min-height:0;padding:0;margin:0}.color-option.chosen{background:var(--surface)}.color-option:hover{background:var(--surface-hover)}.color-option:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.primary-option{display:flex;flex-direction:row;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:9px;padding:14px;margin:0;cursor:pointer;background:var(--paper)}.primary-option:has(input:checked){border-color:var(--accent-line);background:var(--accent-soft)}.primary-option>input{width:16px;height:16px;min-height:16px;flex:0 0 16px;accent-color:var(--green);margin:2px 0 0;padding:0}.primary-option strong{display:block;font-size:12px;color:var(--ink);font-weight:550;line-height:1.5}.primary-option small{display:block;font-size:12px;font-weight:400;color:var(--muted);line-height:1.6;margin-top:4px}.detail-avatar-bg{width:100%;height:168px}.detail-avatar-bg .character-preview{height:168px}.details .preview-caption{display:none}.details .color-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.details .color-option{min-height:56px}.ceo-badge{display:inline-flex;align-items:center;vertical-align:middle;background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--green);border-radius:5px;padding:3px 5px;margin-left:6px;font-size:9px;letter-spacing:.2px;font-weight:600;line-height:1;white-space:nowrap}.detail-avatar-area>.ceo-badge{margin-top:12px;font-size:11px;padding:6px 8px}.workspace-notice{display:flex;align-items:center;gap:12px;padding:12px 24px;background:var(--accent-soft);border-bottom:1px solid var(--accent-line);color:var(--green);font-size:12px;line-height:1.6;flex-shrink:0}.workspace-notice>span{flex:1}.workspace-notice>button{display:flex;padding:8px;color:var(--green)}.executive-label{background:var(--paper);border-color:var(--accent-line);color:var(--green);font-size:11px;padding:6px 10px}.executive-label>span{font-size:10px;letter-spacing:.5px;color:var(--muted)}.advanced-edit{min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}.advanced-edit>summary{display:flex;align-items:center;gap:10px;min-height:48px;padding:14px 16px;cursor:pointer;list-style:none;font-size:12px;font-weight:550;color:var(--muted)}.advanced-edit>summary::-webkit-details-marker{display:none}.advanced-edit>summary>span{flex:1}.advanced-edit>summary>svg:last-child{transition:transform .18s ease}.advanced-edit[open]>summary{border-bottom:1px solid var(--line);color:var(--ink)}.advanced-edit[open]>summary>svg:last-child{transform:rotate(180deg)}.advanced-edit>summary:hover{background:var(--surface-hover);color:var(--ink)}.advanced-edit>summary:focus-visible{outline:2px solid var(--focus);outline-offset:-3px;border-radius:9px}.advanced-fields{display:flex;flex-direction:column;gap:20px;padding:16px}.advanced-fields>label{margin:0;gap:8px}.advanced-fields>.primary-option{gap:12px}.advanced-fields .primary-option>span{min-width:0}.new-character-form>.advanced-edit{margin-top:24px}@media(max-width:600px){.modal .color-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 8px}.modal .color-option{min-height:48px}.modal .color-option small{display:none}.character-preview{height:188px}.preview-caption{font-size:11px;bottom:8px}.workspace-notice{padding:12px 16px}.workspace-notice>button{min-width:44px;min-height:44px;align-items:center;justify-content:center}}.grok-step{display:flex;gap:12px;margin:24px 0 16px}.grok-step>span{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--green);font-weight:650}.grok-step h3,.grok-review h3{font-size:16px;margin:2px 0 8px}.grok-step p,.grok-review p{font-size:14px;line-height:1.6;color:var(--muted);margin-bottom:12px}.grok-source{display:grid;gap:8px;font-size:13px;font-weight:550}.grok-source textarea{font-family:ui-monospace,monospace;font-size:16px}.grok-file-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.grok-review{border:1px solid var(--line);border-radius:12px;padding:16px;margin-top:20px}.grok-review ul{list-style:none;padding:0}.grok-review li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;font-size:13px}.form-error{color:#a23939!important;font-size:14px;line-height:1.5;margin:12px 0}:root{--ease-settle: cubic-bezier(.16, 1, .3, 1);--ease-press: cubic-bezier(.2, .8, .2, 1);--motion-fast: .14s;--motion-ui: .22s;--motion-exit: .16s;--motion-dialog: .26s}button{transition:background-color var(--motion-fast) ease,color var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow .18s ease,transform .18s var(--ease-settle),opacity var(--motion-fast) ease}button:hover:not(:disabled){filter:none}.button:active:not(:disabled),.icon-button:active:not(:disabled),.camera-controls>button:active{transform:scale(.955);transition-duration:70ms}.button>svg,.icon-button>svg,.camera-controls>button>svg,.plan-switcher>button>svg{transition:transform var(--motion-ui) var(--ease-settle)}.plan-switcher>button[aria-expanded=true]>svg{transform:rotate(180deg)}.person-row .dot-avatar{transition:transform var(--motion-ui) var(--ease-settle),background-color var(--motion-ui) ease}.person-row.selected .dot-avatar{transform:rotate(0) scale(1.06)}.person-row:active{transform:scale(.99);transition-duration:70ms}.roster-tabs button:after{content:"";position:absolute;bottom:-1px;left:8px;right:8px;height:2px;border-radius:2px;background:var(--green);opacity:0;transform:scaleX(.45);transition:opacity var(--motion-fast) ease,transform var(--motion-ui) var(--ease-settle)}.roster-tabs button.active:after{opacity:1;transform:scaleX(1)}.search-box,label input,label textarea,label select,.radio-card,.primary-option{transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.search-box:focus-within{background:var(--paper);border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-halo)}label input:focus-visible,label textarea:focus-visible,label select:focus-visible{outline:2px solid transparent;border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-halo)}.color-option{transition:background-color .16s ease,border-color .16s ease}.color-option>span{transition:transform .2s var(--ease-settle),box-shadow .18s ease}.color-option.chosen>span{box-shadow:inset 0 0 0 1px #18223020,0 0 0 3px var(--paper),0 0 0 4px var(--ink)}.color-option:active>span{transform:scale(.9);transition-duration:70ms}.primary-option input,.radio-card input{cursor:pointer}.save-status i{transition:background-color .18s ease}@media(hover:hover)and (pointer:fine){.button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 10px #18223010}.button.primary:hover:not(:disabled){box-shadow:0 5px 14px #18223020}.button:active:not(:disabled){transform:translateY(0) scale(.975)}.icon-button:hover:not(:disabled),.camera-controls>button:hover{transform:translateY(-1px)}.icon-button:active:not(:disabled),.camera-controls>button:active{transform:scale(.92)}.button.primary:hover>.lucide-plus{transform:rotate(90deg)}.button:hover>.lucide-arrow-up-right{transform:translate(1px,-1px)}.person-row:hover .dot-avatar{transform:rotate(0) translateY(-1px) scale(1.06)}.plan-menu>button:hover{transform:translate(2px)}.roster-tabs button:hover{color:var(--ink);background:var(--surface)}.color-option:hover>span{transform:translateY(-1px) scale(1.08)}.color-option:active>span{transform:scale(.93)}.radio-card:hover,.primary-option:hover{border-color:var(--line-strong)}}[data-presence]{opacity:1;transition:opacity .16s ease,transform var(--motion-ui) var(--ease-settle)}[data-presence][data-state=closed]{pointer-events:none;opacity:0;transition-duration:.16s}.modal-backdrop[data-presence]{transition:opacity .16s ease}.modal-backdrop[data-presence] .modal{transform:translateY(0) scale(1);transform-origin:50% 45%;transition:transform .26s var(--ease-settle)}.modal-backdrop[data-state=closed] .modal{transform:translateY(8px) scale(.985);transition-duration:.16s}.plan-menu[data-presence]{transform:translateY(0) scale(1);transform-origin:20px 0}.plan-menu[data-state=closed]{transform:translateY(-5px) scale(.985)}.location-menu[data-presence]{transform:translateY(0) scale(1);transform-origin:center top}.location-menu[data-state=closed]{transform:translateY(-5px) scale(.985)}.quick-bot-role[data-presence]{transform:translateY(0)}.quick-bot-role[data-state=closed]{transform:translateY(-4px)}.space-context-menu[data-presence]{transform-origin:right bottom;transform:translateY(0) scale(1)}.space-context-menu[data-state=closed]{transform:translateY(5px) scale(.985)}.spaces-panel[data-presence]{transform:translateY(0)}.spaces-panel[data-state=closed]{transform:translateY(-8px)}.disclosure-trigger{display:flex;align-items:center;gap:10px;padding:14px 16px;min-height:48px;width:100%;text-align:left;font-size:13px;font-weight:550;color:var(--muted)}.disclosure-trigger span{flex:1}.disclosure-trigger:hover{background:var(--surface-hover)}.disclosure-trigger svg:last-child{transition:transform var(--motion-ui) var(--ease-settle)}.disclosure-trigger[aria-expanded=true] svg:last-child{transform:rotate(180deg)}.disclosure-grid{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows var(--motion-ui) var(--ease-settle),opacity var(--motion-exit) ease}.disclosure-grid>div{overflow:hidden;min-height:0}.advanced-edit[data-open=true] .disclosure-grid{grid-template-rows:1fr;opacity:1}.advanced-edit[data-open=true] .disclosure-trigger{color:var(--ink)}.details[data-presence]{transform:translate(0)}.details[data-state=closed]{position:absolute;inset:0 0 0 auto;transform:translate(14px)}.roster[data-presence]{transform:translate(0)}.roster-collapsed>.roster[data-state=closed]{display:flex;position:absolute;inset:0 auto 0 0;transform:translate(-14px)}.toast[data-presence]{transform:translate(-50%)}.toast[data-state=closed]{transform:translate(-50%,8px)}.canvas-note{animation:note-arrive .22s var(--ease-settle) backwards}@keyframes note-arrive{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.character-label{animation:label-arrive .16s var(--ease-settle) backwards}.placement-banner{animation:placement-arrive .18s var(--ease-settle) backwards}.color-option.chosen>span>svg{animation:check-arrive .16s var(--ease-settle) backwards}@keyframes label-arrive{0%{opacity:0;transform:translateY(3px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes placement-arrive{0%{opacity:0;transform:translate(-50%,4px)}to{opacity:1;transform:translate(-50%)}}@keyframes check-arrive{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@starting-style{.grok-source[data-presence]{opacity:0;transform:translateY(-4px)}.modal-backdrop[data-presence]{opacity:0}.modal-backdrop[data-presence] .modal{transform:translateY(12px) scale(.98)}.plan-menu[data-presence],.location-menu[data-presence]{opacity:0;transform:translateY(-6px) scale(.985)}.quick-bot-role[data-presence]{opacity:0;transform:translateY(4px)}.space-context-menu[data-presence]{opacity:0;transform:translateY(6px) scale(.985)}.spaces-panel[data-presence]{opacity:0;transform:translateY(-8px)}.details[data-presence]{opacity:0;transform:translate(14px)}.roster[data-presence]{opacity:0;transform:translate(-14px)}.toast[data-presence]{opacity:0;transform:translate(-50%,8px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.button,.icon-button,.camera-controls>button,.plan-menu>button,.person-row,.person-row .dot-avatar,.color-option>span{transform:none!important}.plan-switcher>button>svg,.button>svg{transition:none!important}}.world.is-holding canvas{cursor:grabbing!important}.pickup-announcement{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.location-filter{position:relative;flex-shrink:0;margin:12px 16px 8px;z-index:2}.location-trigger{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--paper);font-size:13px;text-align:left;box-shadow:0 1px 2px #18223004}.location-trigger>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-trigger>svg{color:var(--muted)}.location-trigger:hover{background:var(--surface-hover)}.location-trigger[aria-expanded=true]{border-color:var(--green)}.location-trigger>svg:last-child{transition:transform var(--motion-ui) var(--ease-settle)}.location-trigger[aria-expanded=true]>svg:last-child{transform:rotate(180deg)}.location-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:min(360px,40dvh);overflow-y:auto;overscroll-behavior:contain;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--paper);box-shadow:var(--shadow-panel)}.location-menu>button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:10px;border-radius:7px;font-size:13px;text-align:left}.location-menu>button>span{flex:1;min-width:0;overflow-wrap:anywhere}.location-menu>button>svg{color:var(--muted)}.location-menu>button:hover,.location-menu>button:focus-visible{background:var(--surface-hover);outline-offset:-2px}.location-menu>button[aria-selected=true]{color:var(--green);background:var(--accent-soft);font-weight:550}.location-menu>button[aria-selected=true]>svg{color:var(--green)}.spaces-toggle{position:absolute;top:16px;left:16px;z-index:20;min-height:40px;box-shadow:var(--shadow-sm)}.spaces-toggle.with-roster-toggle{left:68px}.spaces-toggle[aria-expanded=true]{border-color:var(--accent-line);color:var(--green)}.spaces-tools{position:absolute;top:16px;left:16px;display:flex;align-items:center;gap:8px;z-index:20}.spaces-tools.with-roster-toggle{left:68px}.spaces-tools>.spaces-toggle{position:static;min-height:44px}.canvas-pause{position:absolute;top:16px;right:16px;z-index:20;width:44px;height:44px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--muted);box-shadow:var(--shadow-sm)}.canvas-pause:hover:not(:disabled){color:var(--ink)}.canvas-pause:disabled{opacity:.5}.area-draw-tool{position:relative;width:44px;height:44px;border:1px solid var(--line);border-radius:10px;background:var(--paper);box-shadow:var(--shadow-sm)}.area-draw-tool .draw-tool-plus{position:absolute;right:4px;bottom:4px;border-radius:3px;background:var(--paper);stroke-width:2.5}.area-draw-tool[aria-pressed=true]{background:var(--accent-soft);color:var(--green);border-color:var(--green);box-shadow:0 0 0 2px var(--accent-line)}.space-resize-handle{display:grid;place-items:center;width:48px;height:48px;padding:0;opacity:0;pointer-events:none;touch-action:none;background:transparent;border:0;transition:opacity .14s}.space-resize-handle>span{display:flex;align-items:center;justify-content:center;gap:4px;width:36px;height:18px;border:1px solid #d7d9d4;border-radius:8px;background:linear-gradient(#fffefb,#e7e9e3);box-shadow:inset 0 2px 1px #fff,inset 0 -2px 2px #cbd0c7,0 3px 2px #68746225,0 7px 9px #414b3a25;transform:rotate(var(--edge-angle, 0rad)) scaleY(.7);transition:background .14s,box-shadow .14s,border-color .14s}.space-resize-handle i{width:2px;height:7px;border-radius:2px;background:#a5afa0;box-shadow:1px 0 #ffffffd9}.space-resize-handle.visible,.space-resize-handle:focus-visible{opacity:1;pointer-events:auto}.space-resize-handle:hover>span,.space-resize-handle[data-active=true]>span{background:linear-gradient(#f7faf3,#dbe4d6);border-color:#8fa184;box-shadow:inset 0 2px 1px #fff,inset 0 -2px 2px #b7c5ae,0 4px 3px #52694830,0 8px 12px #414b3a30}.space-resize-handle:focus-visible{outline:2px solid var(--green);outline-offset:1px;border-radius:12px}@media(prefers-reduced-motion:reduce){.space-resize-handle,.space-resize-handle>span{transition:none}}.space-resize-handle:disabled{pointer-events:none;opacity:0}@media(hover:none){.space-resize-handle:not(:disabled){opacity:.8;pointer-events:auto}}.spaces-panel{position:absolute;left:16px;top:68px;bottom:auto;max-height:calc(100% - 84px);width:320px;max-width:calc(100% - 32px);z-index:35;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-panel);overflow:hidden}.spaces-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 16px 12px}.spaces-heading h2{font-size:17px;font-weight:650}.spaces-heading p,.spaces-footer>small{color:var(--muted);font-size:12px;line-height:1.5;margin-top:4px}.spaces-list{overflow:auto;overscroll-behavior:contain;padding:0 8px;min-height:0}.space-row{border:1px solid var(--line);border-radius:10px;margin-bottom:8px;overflow:hidden}.space-focus{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px;min-height:64px;transition:background .14s}.space-focus:hover{background:var(--surface)}.space-focus>svg{color:var(--muted)}.space-focus>span{flex:1;min-width:0}.space-focus strong{display:block;font-size:14px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.space-focus small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.spaces-footer{border-top:1px solid var(--line);padding:12px 16px 16px}.spaces-footer .button{width:100%;min-height:44px}.spaces-footer .button span{margin-left:auto;opacity:.75;font-size:12px}.spaces-footer>small{display:block;margin-top:8px}.is-drawing canvas{cursor:crosshair!important}.area-drawing-banner{position:absolute;top:16px;left:50%;transform:translate(-50%);width:max-content;max-width:calc(100% - 32px);display:flex;gap:16px;align-items:flex-start;padding:16px;background:var(--paper);border:1px solid var(--accent-line);border-radius:12px;box-shadow:var(--shadow-panel);z-index:25}.area-drawing-banner>div{display:flex;flex-direction:column;gap:6px}.area-drawing-banner strong{font-size:14px;font-weight:600}.area-drawing-banner span{font-size:13px;color:var(--muted);line-height:1.4}.area-drawing-banner small{font-size:11px;color:var(--muted)}.area-drawing-banner.invalid{border-color:#dca99f}.area-drawing-banner.invalid span{color:var(--danger)}.room-label{max-width:300px;overflow:hidden;text-overflow:ellipsis}.custom-space-label{padding:4px 4px 4px 12px;gap:8px;min-height:44px;pointer-events:auto;overflow:visible;translate:-20px 24px}.custom-space-label>.space-options{position:relative;display:flex;margin:0;flex-shrink:0}.space-options-button{display:grid;place-items:center;width:36px;height:36px;border-radius:7px;color:var(--muted);touch-action:manipulation}.space-options-button:hover,.space-options-button[aria-expanded=true]{background:var(--surface-hover);color:var(--ink)}.space-context-menu{position:absolute;bottom:calc(100% + 8px);right:0;width:176px;padding:4px;background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-panel)}.space-context-menu>button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:10px 12px;border-radius:6px;font-size:13px;font-weight:450;letter-spacing:0;text-align:left}.space-context-menu>button:hover,.space-context-menu>button:focus-visible{background:var(--surface-hover)}@media(hover:none),(pointer:coarse){.space-options-button{width:44px;height:44px}}.custom-space-label>strong{font-size:12px;font-weight:550;letter-spacing:0;min-width:0;overflow:hidden;text-overflow:ellipsis}.space-move-handle{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;border-radius:7px;color:var(--green);background:var(--accent-soft);cursor:grab;touch-action:none;opacity:0;transform:translateY(2px);pointer-events:none;transition:opacity .14s,transform .14s,background .14s}.custom-space-label:hover .space-move-handle,.custom-space-label:focus-within .space-move-handle,.custom-space-label.show-handle .space-move-handle{opacity:1;transform:none;pointer-events:auto}.space-move-handle:hover{background:var(--accent-line)}.custom-space-label.moving{border-color:var(--green);box-shadow:var(--shadow-panel)}.custom-space-label.moving .space-move-handle,.is-moving-space canvas{cursor:grabbing!important}.area-move-banner{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:25;max-width:calc(100% - 32px);display:flex;align-items:center;gap:12px;border:1px solid var(--accent-line);border-radius:10px;background:var(--paper);padding:12px 16px;box-shadow:var(--shadow-panel);pointer-events:none}.area-move-banner>div{display:flex;flex-direction:column;gap:4px}.area-move-banner strong{font-size:13px;font-weight:600}.area-move-banner span{font-size:12px;color:var(--muted)}.area-move-banner.invalid{border-color:#dca99f}.area-move-banner.invalid span{color:var(--danger)}@media(hover:none),(pointer:coarse){.space-move-handle{opacity:1;transform:none;pointer-events:auto;width:44px;height:44px}}@media(max-width:900px){.workspace-title{min-width:0}.workspace-title h1{max-width:min(350px,30vw)}}@media(max-width:600px){.workspace-bar{flex-wrap:wrap;padding:12px 16px;gap:12px}.workspace-title{width:100%}.workspace-title h1{max-width:calc(100vw - 70px)}.workspace-actions{width:100%;gap:8px}.workspace-actions>.primary{flex:1;font-size:13px;gap:8px;padding:10px 12px}.workspace-actions>.outline:not(.pause-button){flex:1;min-height:44px}.spaces-toggle{min-height:44px}.spaces-panel{top:72px;max-height:calc(100% - 88px)}.placement-banner{top:72px}.area-drawing-banner{padding:12px;gap:8px}.area-drawing-banner .button{padding:10px;min-height:44px}}.details.floating-editor{position:fixed;inset:auto;z-index:50;width:360px;max-width:calc(100vw - 24px);display:flex;flex-direction:column;padding:0;overflow:visible;border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 18px 60px #18223024,0 2px 8px #1822300a}.floating-editor .details-heading{flex-shrink:0;padding:8px 12px 8px 20px;border-bottom:1px solid var(--line)}.floating-editor .details-heading .icon-button{width:44px;height:44px}.editor-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 20px 20px;scrollbar-width:thin}.editor-scroll .detail-avatar-area{padding:8px 0 16px}.editor-scroll .character-preview{max-height:150px}.editor-footer{flex-shrink:0;display:flex;gap:8px;justify-content:flex-end;padding:12px 16px;background:var(--paper);border-top:1px solid var(--line);border-radius:0 0 20px 20px}.editor-footer .button{min-height:44px}.editor-footer .primary{flex:1}.floating-editor[data-presence]{transform:translate(0) scale(1);transform-origin:center}.floating-editor[data-presence][data-state=closed]{position:fixed;inset:auto;transform:translate(-6px) scale(.985)}.floating-editor[data-side=left][data-state=closed]{transform:translate(6px) scale(.985)}.has-details .world-bottom{right:16px}.has-details .world-legend{display:flex}.color-grid{gap:8px}.color-option{min-height:44px;padding:6px}.floating-editor .detail-avatar-bg,.floating-editor .character-preview{height:120px}.floating-editor .color-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.floating-editor .color-option{min-height:44px;padding:4px}.floating-editor .details-form{gap:16px}.floating-editor textarea{min-height:88px;height:88px}@starting-style{.floating-editor[data-presence]{opacity:0;transform:translate(-8px) scale(.985)}.floating-editor[data-side=left]{transform:translate(8px) scale(.985)}}@media(max-width:600px){.editor-scroll input,.editor-scroll textarea,.editor-scroll select{font-size:16px}.has-details .world-bottom{right:auto}}@media(prefers-reduced-motion:reduce){.floating-editor[data-presence]{transform:none!important}}.onboarding-progress{display:flex;align-items:center;gap:6px;margin:0 0 24px}.onboarding-progress>span{height:4px;flex:1;border-radius:4px;background:var(--line)}.onboarding-progress>span.complete{background:var(--green);transition:background .22s ease}.onboarding-progress small{margin-left:8px;white-space:nowrap;color:var(--muted)}.onboarding-step{animation:onboarding-enter .22s var(--ease-settle) both}.onboarding-step h3{font-family:Manrope,sans-serif;font-size:25px;line-height:1.25;letter-spacing:-.7px;margin-bottom:12px}.onboarding-step p{font-size:15px;line-height:1.65;margin:12px 0 24px;color:var(--muted)}.onboarding-step label:not(.color-option){display:grid;gap:8px;margin:20px 0;font-size:14px}.onboarding-step input,.onboarding-step textarea,.onboarding-step select{font-size:16px}.onboarding-teammate{display:grid;gap:20px;margin-bottom:24px}.onboarding-teammate .character-preview{height:180px;margin:0}.onboarding-role-tags{display:flex;flex-wrap:wrap;gap:8px}.onboarding-role-tags>button{min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:var(--paper);font-size:13px;line-height:1.35;text-align:center}.onboarding-role-tags>button:hover{background:var(--surface-hover);border-color:var(--line-strong)}.onboarding-role-tags>button[aria-pressed=true]{color:var(--green);border-color:var(--green);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--green)}.onboarding-role-tags>button:active{transform:scale(.97)}.onboarding-character-fields{min-width:0;display:grid;gap:16px}.onboarding-step .onboarding-character-fields label{margin:0}.onboarding-character-fields textarea{min-height:88px;resize:vertical}.onboarding-placement{display:grid;gap:12px}.onboarding-bot-chip{display:flex;align-items:center;gap:10px;justify-self:start;max-width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);box-shadow:var(--shadow-sm);cursor:grab;text-align:left;font-size:14px}.onboarding-bot-chip:active{cursor:grabbing}.onboarding-bot-chip>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.onboarding-chip-avatar{width:28px;height:30px;flex-shrink:0;border-radius:45%;box-shadow:inset 0 0 0 1px #18223014}.onboarding-bot-chip>svg{color:var(--muted)}.onboarding-space-preview{position:relative;height:clamp(240px,38dvh,340px);border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--canvas)}.onboarding-space-preview>.world{height:100%}.onboarding-space-name{position:absolute;bottom:12px;left:50%;transform:translate(-50%);font-size:12px;font-weight:550;color:var(--muted);pointer-events:none}.onboarding-placement-status{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.5;color:var(--green);min-height:40px}.onboarding-placement-status>svg{margin-top:2px}.onboarding-placement>.button{justify-self:start;min-height:44px}@media(max-width:600px){.onboarding-teammate{gap:16px}.onboarding-teammate .character-preview{height:144px}.onboarding-teammate .preview-caption{display:none}}.onboarding-tip{display:flex;align-items:center;gap:12px;background:var(--surface);border-radius:12px;padding:16px;font-size:14px;line-height:1.5;margin:24px 0}.workplace-symbol{display:grid;justify-items:center;gap:12px;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:16px;color:var(--green)}.workplace-symbol span{color:var(--ink);font-weight:600}.workplace-symbol small{color:var(--muted)}.role-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.role-options button{border:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:14px;min-height:64px;text-align:left;font-size:14px;border-radius:12px}.role-options button>span:first-of-type{flex:1}.role-options button.chosen{border-color:var(--green);background:var(--accent-soft)}.role-options button:hover{border-color:var(--green)}.onboarding-shortcuts{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px;margin-top:24px}.onboarding-shortcuts button{font-size:13px}.welcome-content{padding:24px;overflow:auto}.welcome-content h3{font-size:22px;letter-spacing:-.5px;margin-bottom:12px}.welcome-content p{font-size:15px;line-height:1.6;margin-bottom:12px}.welcome-content small{color:var(--muted);font-size:12px;line-height:1.5;display:block}.welcome-actions{display:grid;gap:8px;padding:0 24px 24px}.welcome-actions button{min-height:44px}.workspace-create{white-space:nowrap}.phone-label{display:none}@media(max-width:600px){.desktop-label{display:none}.phone-label{display:inline}.app-header{gap:8px}.header-actions .button{min-height:44px;font-size:12px}.header-actions{margin-left:auto}}@keyframes onboarding-enter{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@media(max-width:600px){.role-options{grid-template-columns:1fr}.role-options button{min-height:48px}.workspace-bar{flex-wrap:wrap;gap:12px}.workspace-title{flex:1}.workspace-actions{flex-wrap:wrap}.header-actions{gap:4px}.header-actions .button{font-size:11px;padding:8px}.onboarding-step h3{font-size:23px}}@media(prefers-reduced-motion:reduce){.onboarding-step{animation:none}}.modal:has(.onboarding){width:min(640px,calc(100vw - 48px));min-width:0}.onboarding-art{margin:0 0 24px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff}.onboarding-art img{display:block;width:100%;height:auto}.onboarding-art figcaption{padding:10px 16px;background:var(--surface);border-top:1px solid var(--line);font-size:12px;color:var(--muted);line-height:1.5}@media(max-width:600px){.modal:has(.onboarding){width:calc(100vw - 24px)}.onboarding-art{margin-bottom:20px}.onboarding-art figcaption{padding:8px 12px}}.onboarding-video{position:relative;width:calc(100% + 56px);aspect-ratio:1;margin:0 -28px 24px;background:#fff}.onboarding-video video{display:block;width:100%;height:100%;object-fit:cover}.onboarding-video-play{position:absolute;inset:0 0 48px;display:grid;place-items:center;pointer-events:none}.onboarding-video-play .button{pointer-events:auto;min-height:44px;box-shadow:var(--shadow-md)}.onboarding-intro h3{text-wrap:balance}.onboarding-intro p{margin-bottom:0}@media(max-width:600px){.onboarding-video{width:calc(100% + 40px);margin:0 -20px 20px}}.workspace-tour{position:fixed;inset:0;z-index:100;pointer-events:none}.workspace-tour-pointer{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.workspace-tour-pointer path{stroke:var(--green);stroke-width:2;fill:none;stroke-linecap:round}.workspace-tour-highlight{position:absolute;border:2px solid var(--green);border-radius:14px;box-shadow:0 0 0 4px #34755918}.workspace-tour-card{position:absolute;width:min(310px,calc(100vw - 24px));padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:0 12px 40px #18223024,0 2px 8px #1822300a;pointer-events:auto}.workspace-tour-card{transition:transform var(--motion-ui) var(--ease-settle)}.workspace-tour[data-state=closed] .workspace-tour-card{transform:translateY(6px)}@starting-style{.workspace-tour[data-presence]{opacity:0}.workspace-tour-card{transform:translateY(6px)}}.workspace-tour-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.workspace-tour-heading .icon-button{min-width:44px;min-height:44px;margin:-8px -8px -8px 0}.workspace-tour-card h3{font-size:18px;letter-spacing:-.3px;line-height:1.3;margin-bottom:8px}.workspace-tour-card p{color:var(--muted);font-size:14px;line-height:1.6}.workspace-tour-actions{display:flex;justify-content:space-between;gap:12px;margin-top:16px}.workspace-tour-actions .button{min-height:44px}.workspace-tour-copy{animation:tour-copy-enter .22s var(--ease-settle) both}@keyframes tour-copy-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.workspace-tour-copy{animation:none}}
