:root{--bg: #14161d;--panel: #1e222c;--panel-line: #39404f;--panel-line-strong: #5b6478;--text: #cfd6e4;--text-dim: #79828f;--accent: #6fd08c;--accent-dim: #3f7a55;--danger: #d9756b;--shadow: #0b0d12;--font-ui: "Galmuri11", ui-monospace, "Malgun Gothic", monospace;--font-display: var(--font-ui);--px: 3;--asset-frame: none;--asset-frame-slice: 6;--asset-button: none;--asset-button-hover: none;--asset-button-slice: 9;--button-px: 1;--asset-input: none;--asset-input-hover: none;--asset-input-slice: 14;--input-px: 1;--asset-modal: none;--asset-modal-slice: 16;--modal-px: 2;--modal-w: 760px;--modal-ratio: 1.55;--asset-logo: none;--logo-w: min(960px, 92vw);--logo-ratio: 2.66;--logo-max-h: 42vh;--logo-box-w: min(var(--logo-w), calc(var(--logo-max-h) * var(--logo-ratio)));--asset-landing-bg: none;--holo: #4dffa0;--holo-dim: #2f7d55;--holo-glow: rgba(77, 255, 160, .35);--holo-red: #ff6b6b;--holo-red-dim: #8a3b3b;--holo-red-glow: rgba(255, 107, 107, .32);--asset-lobby-bg: none;--asset-lobby-planet: none;--gap-sm: 8px;--gap: 14px;--gap-lg: 24px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:15px;line-height:1.4;touch-action:manipulation;image-rendering:pixelated}#app{position:fixed;inset:0;width:100%;height:100dvh;overflow:hidden;user-select:none;-webkit-user-select:none}#ui-root,#game-root{position:absolute;inset:0;overflow:hidden}[hidden]{display:none!important}input,textarea{user-select:text;-webkit-user-select:text}#game-root canvas{display:block}.scroll-hidden{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none}.scroll-hidden::-webkit-scrollbar{width:0;height:0}.scroll-y{overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--panel-line) transparent;overscroll-behavior:contain}.scroll-y::-webkit-scrollbar{width:8px}.scroll-y::-webkit-scrollbar-thumb{background:var(--panel-line)}.frame{--slice: var(--asset-frame-slice);position:relative;background:var(--panel);border-style:solid;border-width:calc(var(--slice) * 1px * var(--px));border-color:var(--panel-line);border-image-source:var(--asset-frame);border-image-slice:var(--slice) fill;border-image-width:calc(var(--slice) * 1px * var(--px));border-image-repeat:round}.frame:not([data-asset]){border-color:var(--panel);outline:1px solid var(--panel-line);outline-offset:-1px;box-shadow:inset 0 0 0 1px var(--panel-line),calc(var(--px) * 1px) calc(var(--px) * 1px) 0 var(--shadow)}.btn{--slice: var(--asset-button-slice);display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;background:#262b37;color:var(--text);font:inherit;font-size:15px;white-space:nowrap;cursor:pointer;border-style:solid;border-width:calc(var(--slice) * 1px * var(--button-px));border-color:var(--panel-line);border-image-source:var(--asset-button);border-image-slice:var(--slice) fill;border-image-width:calc(var(--slice) * 1px * var(--button-px));border-image-repeat:round}.btn[data-asset]{min-height:54px;padding:0 20px;background:none;color:#f2f5fa}.btn[data-asset]:hover:not(:disabled){color:#fff}.btn:not([data-asset]){border-width:calc(4px * var(--px));border-color:#262b37;outline:1px solid var(--panel-line);outline-offset:-1px;box-shadow:inset 0 0 0 1px var(--panel-line)}.btn:hover:not(:disabled){border-image-source:var(--asset-button-hover, var(--asset-button));color:var(--accent)}.btn:not([data-asset]):hover:not(:disabled){outline-color:var(--accent-dim);box-shadow:inset 0 0 0 1px var(--accent-dim)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--text-dim);border-width:calc(1px * var(--px));border-image-source:none}.btn-ghost:not([data-asset]){border-width:calc(1px * var(--px));border-color:var(--panel-line);outline:none;box-shadow:none}.btn-small{min-height:32px;padding:4px 10px;font-size:13px;border-width:calc(2px * var(--px));border-image-source:none}.btn-link,.btn-link:not([data-asset]),.btn-link:not([data-asset]):hover:not(:disabled){min-height:0;padding:4px;background:none;border:none;outline:none;box-shadow:none;color:var(--text-dim);font-size:13px;text-decoration:underline;cursor:pointer}.btn-link:hover{color:var(--text)}.field{--slice: var(--asset-input-slice);display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:0 14px;background:#12141a;border-style:solid;border-width:calc(var(--slice) * 1px * var(--input-px));border-color:var(--panel-line);border-image-source:var(--asset-input);border-image-slice:var(--slice) fill;border-image-width:calc(var(--slice) * 1px * var(--input-px));border-image-repeat:round}.field[data-asset]{background:none;padding:0 4px}.field[data-asset]:hover,.field[data-asset]:focus-within{border-image-source:var(--asset-input-hover)}.field[data-asset] input{color:#e8eef7}.field[data-asset] input::placeholder{color:#a8b3c2}.field[data-asset] .field-label{color:#c3ccd9}.field:not([data-asset]){border-width:calc(3px * var(--px));border-color:#12141a;outline:1px solid var(--panel-line);outline-offset:-1px;box-shadow:inset 0 0 0 1px var(--panel-line)}.field:not([data-asset]):focus-within{outline-color:var(--accent-dim);box-shadow:inset 0 0 0 1px var(--accent-dim)}.field-label{flex:none;color:var(--text-dim);font-size:14px}.field input{flex:1;min-width:0;padding:8px 0;background:none;border:none;outline:none;color:var(--text);font:inherit}.field input::placeholder{color:#4d5666}.field-code input{text-transform:uppercase;letter-spacing:6px;text-align:center}.asset{display:block;background-image:var(--src, none);background-size:100% 100%;background-repeat:no-repeat;image-rendering:pixelated}.asset.placeholder{display:flex;align-items:center;justify-content:center;border:calc(1px * var(--px)) dashed var(--panel-line-strong);color:var(--text-dim);font-size:12px;letter-spacing:1px}.asset.placeholder:after{content:attr(data-placeholder)}.asset-logo{width:var(--logo-box-w);aspect-ratio:var(--logo-ratio);flex:none;--src: var(--asset-logo);background-size:contain;background-position:center}.asset-logo.placeholder{border-color:var(--panel-line);color:var(--accent);font-family:var(--font-display);font-size:clamp(40px,11vw,104px);font-weight:700;letter-spacing:2px;line-height:1}.msg{margin:0;padding:10px 12px;font-size:13px;border:calc(1px * var(--px)) solid transparent;text-align:center}.msg-error{color:var(--danger);border-color:var(--danger)}.msg-info{color:var(--text-dim);border-color:var(--panel-line)}.lobby{position:relative;display:flex;flex-direction:column;width:100%;height:100%;padding:clamp(20px,5vh,64px) clamp(20px,5vw,72px);overflow:hidden;background-image:var(--asset-landing-bg);background-size:cover;background-position:center;background-repeat:no-repeat}.has-landing-bg .lobby:before{content:"";position:absolute;inset:0;background:#0a0c1180;pointer-events:none}.lobby>*{position:relative;z-index:1}.screen{display:flex;flex-direction:column;flex:1;min-height:0;gap:var(--gap)}.landing{justify-content:space-between;align-items:center;gap:clamp(16px,4vh,40px);max-height:820px;margin:auto 0}.landing-top,.landing-bottom{display:flex;flex-direction:column;align-items:center;width:100%}.landing-top{gap:clamp(4px,1.2vh,14px);padding-top:clamp(8px,4vh,48px)}.landing-top .field{max-width:min(520px,70vw,var(--logo-box-w))}.landing-bottom{gap:clamp(12px,2.5vh,24px);padding-bottom:clamp(16px,8vh,72px)}.landing-actions{display:flex;justify-content:center;gap:clamp(16px,2.2vw,32px);width:100%;max-width:calc(var(--logo-box-w) * .94)}.landing-actions .btn{flex:1 1 0;min-width:0;min-height:clamp(48px,8vh,64px);font-size:clamp(15px,1.6vw,19px)}.screen-form{width:100%;max-width:560px;margin:0 auto;justify-content:center}.screen-head{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-sm)}.screen-head h2{margin:0;font-size:clamp(19px,2.3vw,26px);color:var(--text);letter-spacing:1px}.row{display:flex;gap:var(--gap-sm);align-items:stretch}.row>.field{flex:1;min-width:0}.row>.field-code{flex:none;width:130px}.divider{color:var(--text-dim);font-size:12px;text-align:center}.hint{margin:0;color:var(--text-dim);font-size:12px}.field-block{display:flex;flex-direction:column;gap:6px}.field-block>span{color:var(--text-dim);font-size:13px}.room-list{min-height:120px;max-height:min(320px,40vh);background:#12141a;border:calc(2px * var(--px)) solid var(--panel-line)}.rooms{margin:0;padding:0;list-style:none}.room{padding:8px 10px;border-bottom:1px solid var(--panel-line)}.room:last-child{border-bottom:none}.room-full{opacity:.5}.room-main{display:flex;align-items:center;gap:var(--gap-sm);font-size:13px}.room-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-lock{color:var(--text-dim)}.room-count{color:var(--text-dim)}.room-password{margin-top:8px}.loading,.empty{margin:0;padding:24px 12px;color:var(--text-dim);font-size:13px;text-align:center}.landing-message{flex:none;display:flex;align-items:center;justify-content:center;width:100%;max-width:560px;min-height:3em;margin:0 auto;text-align:center}.landing-message .msg{margin:0}@media(max-height:480px){.landing-top{padding-top:0}.room-list{max-height:34vh}}@media(max-width:560px){.landing-actions{gap:var(--gap-sm)}.landing-actions .btn{padding-left:4px;padding-right:4px}}.job-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap-sm)}.job-card{display:flex;flex-direction:column;align-items:stretch;gap:3px;padding:8px 6px;color:inherit;font:inherit;background:#0a0c1180;border:calc(2px * var(--px)) solid var(--panel-line);cursor:pointer}.job-card:hover{border-color:var(--panel-line-strong)}.job-card.is-selected{color:var(--accent);border-color:var(--accent)}.job-card-icon{display:flex;align-items:center;justify-content:center;min-height:64px}.job-card-name{font-weight:700;font-size:16px;text-align:center}.job-card-summary{color:var(--text-dim);font-weight:700;font-size:12px;text-align:center}.job-card-stats{color:var(--text-dim);font-weight:700;font-size:12px;text-align:center;white-space:nowrap}.job-card-trait{min-height:2.6em;color:var(--accent);font-weight:700;font-size:12px;line-height:1.35;text-align:center}.job-card-kit{margin-top:4px;padding-top:6px;border-top:1px solid var(--panel-line);color:var(--text-dim);font-weight:700;font-size:11px;line-height:1.4;text-align:center;word-break:keep-all}.checkbox-row{position:relative;display:flex;align-items:center;gap:10px;padding:8px 12px;border:calc(2px * var(--px)) solid var(--panel-line);background:#0a0c1173;cursor:pointer}.checkbox-row:hover{border-color:var(--panel-line-strong)}.checkbox-input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.checkbox-box{position:relative;flex:none;width:22px;height:22px;background:#0a0c1199;border:calc(2px * var(--px)) solid var(--panel-line)}.checkbox-input:checked+.checkbox-box{background:var(--accent);border-color:var(--accent)}.checkbox-input:checked+.checkbox-box:after{content:"";position:absolute;left:6px;top:1px;width:6px;height:12px;border:solid #0e1116;border-width:0 3px 3px 0;transform:rotate(45deg)}.checkbox-input:focus-visible+.checkbox-box{outline:2px solid var(--accent-dim);outline-offset:2px}.checkbox-row:has(.checkbox-input:checked){border-color:var(--accent);background:#182c2280}.checkbox-row:has(.checkbox-input:checked) .checkbox-label{color:var(--accent)}.checkbox-text{display:flex;flex-direction:column;gap:2px;font-size:13px}.checkbox-label{font-weight:700;font-size:15px}.checkbox-hint{color:var(--text-dim);font-size:11px}.modal-backdrop{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:clamp(12px,3vh,40px) clamp(12px,3vw,40px);background:#080a0f99}.modal{--slice: var(--asset-modal-slice);display:flex;flex-direction:column;gap:var(--gap);width:min(var(--modal-w),92vw,calc(88vh * var(--modal-ratio)));aspect-ratio:var(--modal-ratio);padding:clamp(14px,2.5vh,24px);background:var(--panel);border-style:solid;border-width:calc(var(--slice) * 1px * var(--modal-px));border-color:var(--panel-line);border-image-source:var(--asset-modal);border-image-slice:var(--slice) fill;border-image-width:calc(var(--slice) * 1px * var(--modal-px));border-image-repeat:round}.modal-form{--modal-w: 420px;--modal-ratio: .92}.modal-solo{--modal-w: 720px;--modal-ratio: 1.35}.modal-form .screen-head{justify-content:center}.modal-form .modal-actions{flex-direction:column;gap:var(--gap-sm)}.modal-form .modal-actions .btn{width:100%;min-width:0}.modal-form .modal-actions-row{flex-direction:row;margin-top:auto}.modal-form .code-boxes{justify-content:space-between}.modal-form .code-form-label{text-align:left}.modal:not([data-asset]){border-color:var(--panel);outline:1px solid var(--panel-line);outline-offset:-1px;box-shadow:inset 0 0 0 1px var(--panel-line)}.modal[data-asset]{padding:clamp(4px,1vh,10px);color:#1b1f27}.modal[data-asset] .room-row{border-color:#1b1f2759}.modal[data-asset] .room-row-head,.modal[data-asset] .room-count,.modal[data-asset] .room-locked,.modal[data-asset] .modal-empty,.modal[data-asset] .modal-loading,.modal[data-asset] .field-block>span,.modal[data-asset] .code-form-label,.modal[data-asset] .checkbox-hint,.modal[data-asset] .hint{color:#3f4753}.modal[data-asset] .job-card,.modal[data-asset] .checkbox-row{background:#cdd2d9;border-color:#7c8595}.modal[data-asset] .screen-head h2{color:#0d1015}.modal[data-asset] .job-card:hover,.modal[data-asset] .checkbox-row:hover{border-color:#4d5566}.modal[data-asset] .checkbox-box{background:#eef1f5;border-color:#7c8595}.modal[data-asset] .job-card-name{color:#12161d}.modal[data-asset] .job-card-summary,.modal[data-asset] .job-card-stats{color:#3b4250}.modal[data-asset] .job-card-trait{color:#145c38}.modal[data-asset] .job-card-kit{border-top-color:#12161d38;color:#4a5260}.modal[data-asset] .job-card.is-selected{border-color:#1d5c39;box-shadow:inset 0 0 0 1px #1d5c39}.modal[data-asset] .checkbox-input:checked+.checkbox-box{background:#1d5c39;border-color:#1d5c39}.modal[data-asset] .checkbox-input:checked+.checkbox-box:after{border-color:#eef4f0}.modal[data-asset] .checkbox-row:has(.checkbox-input:checked){background:#c2dcc9;border-color:#1d5c39}.modal[data-asset] .checkbox-label{color:#12161d}.modal[data-asset] .checkbox-row:has(.checkbox-input:checked) .checkbox-label{color:#14522f}.modal[data-asset] .room-code{color:#1d5c39}.modal[data-asset] .icon-search:before{border-color:var(--text-dim)}.modal-head{display:flex;align-items:stretch;gap:var(--gap-sm)}.modal-head .field{flex:1;min-width:0}.btn-square{flex:none;width:52px;min-width:0;padding:0}.modal-actions{display:flex;justify-content:center;gap:clamp(12px,3vw,32px)}.modal-actions .btn{min-width:clamp(110px,20vw,160px)}.confirm-modal{width:min(460px,90vw);aspect-ratio:auto;align-items:center;text-align:center;gap:var(--gap-lg)}.confirm-modal .confirm-message{margin:0;font-size:16px}.room-table{display:flex;flex-direction:column;flex:1;gap:var(--gap-sm);min-height:0}.room-row{display:grid;grid-template-columns:minmax(72px,1fr) minmax(0,2.4fr) minmax(56px,1fr) auto;align-items:center;gap:var(--gap-sm);min-height:46px;padding:4px 10px;border:2px solid var(--panel-line);font-size:14px}.room-row-head{border:none;padding:0 10px;min-height:0;color:var(--text-dim);font-size:13px}.room-row-head .room-name{text-align:center}.room-rows{display:flex;flex-direction:column;flex:1;gap:var(--gap-sm);min-height:0}.room-rows>*{flex:none}.room-code{color:var(--accent);letter-spacing:1px}.room-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.room-count{color:var(--text-dim);text-align:right}.room-row-empty{justify-items:center;color:var(--text-dim);font-size:13px}.room-locked{color:var(--text-dim);font-size:12px}.room-password-row{display:flex;gap:var(--gap-sm);padding:0 10px}.modal-empty,.modal-loading{margin:0;padding:28px 12px;color:var(--text-dim);font-size:13px;text-align:center}.code-form{display:flex;flex-direction:column;flex:1;justify-content:center;gap:var(--gap);padding:8px 0}.icon-search{flex:none;position:relative;width:16px;height:16px}.icon-search:before{content:"";position:absolute;top:0;left:0;width:11px;height:11px;border:2px solid var(--text-dim);border-radius:50%}.icon-search:after{content:"";position:absolute;right:1px;bottom:0;width:7px;height:2px;background:var(--text-dim);transform:rotate(45deg);transform-origin:right center}.code-form-label{color:var(--text-dim);font-size:14px;text-align:center}.code-boxes{display:flex;justify-content:center;gap:clamp(8px,2vw,16px)}.code-box{--slice: var(--asset-input-slice);width:clamp(48px,9vw,68px);aspect-ratio:1;padding:0;background:#12141a;color:var(--text);font:inherit;font-size:clamp(20px,3vw,30px);text-align:center;text-transform:uppercase;outline:none;border-style:solid;border-width:calc(var(--slice) * 1px * var(--input-px));border-color:var(--panel-line);border-image-source:var(--asset-input);border-image-slice:var(--slice) fill;border-image-width:calc(var(--slice) * 1px * var(--input-px));border-image-repeat:round}.code-box[data-asset]{background:none;color:#e8eef7}.code-box[data-asset]:focus{border-image-source:var(--asset-input-hover)}.code-box:not([data-asset]){border-width:calc(3px * var(--px));border-color:#12141a;box-shadow:inset 0 0 0 1px var(--panel-line)}.code-box:not([data-asset]):focus{box-shadow:inset 0 0 0 1px var(--accent-dim)}.waiting{position:relative;display:flex;flex-direction:column;gap:clamp(10px,2vh,20px);width:100%;height:100%;padding:clamp(10px,1.6vh,22px) clamp(12px,1.8vw,30px);overflow:hidden}.has-lobby-bg .waiting{background-image:var(--asset-lobby-bg);background-size:cover;background-position:center;background-repeat:no-repeat}.has-lobby-bg .waiting:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#06080cd1,#06080c9e);pointer-events:none}.has-lobby-bg .waiting>*{position:relative}.waiting-head{display:flex;align-items:center;gap:var(--gap-sm);flex:none}.waiting-title,.waiting-room-name{font-weight:700;font-size:clamp(17px,2vw,26px);line-height:1.2}.waiting-title{flex:none;color:var(--text-dim)}.waiting-room-name{margin:0 auto}.waiting-room-code{flex:none;color:var(--accent);letter-spacing:2px}.waiting-leave{flex:none;padding:6px 14px;border:2px solid var(--holo-red-dim);background:#18080873;color:var(--holo-red);font:inherit;font-size:clamp(12px,1.2vw,15px);text-shadow:0 0 6px var(--holo-red-glow);cursor:pointer}.waiting-leave:hover{border-color:var(--holo-red);background:#300c0c99;box-shadow:0 0 10px var(--holo-red-glow)}.waiting-body{display:grid;grid-template-columns:1fr clamp(260px,26vw,420px);gap:clamp(8px,1.5vw,18px);flex:1;min-height:0}.waiting-left{display:flex;flex-direction:column;gap:clamp(8px,1.5vh,16px);min-width:0;min-height:0}.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(6px,1vw,12px);flex:1;min-height:0}.slot{display:flex;flex-direction:column;gap:clamp(6px,1.3vh,14px);min-width:0;min-height:0;padding:clamp(5px,.8vh,9px);border:calc(2px * var(--px)) solid var(--panel-line);background:#12141a99}.slot-me{border-color:var(--accent-dim)}.slot-empty{opacity:.45}.slot-photo{position:relative;display:flex;align-items:center;justify-content:center;flex:1;min-height:0;max-height:56%;border:2px solid var(--panel-line);background:#0a0c1180;overflow:hidden}.portrait{--crop-scale: 4;background-repeat:no-repeat;image-rendering:pixelated}@media(max-height:800px){.portrait{--crop-scale: 3}}@media(max-height:620px){.portrait{--crop-scale: 2}}.slot-photo-mark{color:var(--text-dim);font-size:clamp(24px,4vw,44px)}.slot-badge{position:absolute;top:3px;padding:1px 5px;font-size:10px;background:#0a0c11d9}.slot-host{left:3px;color:var(--text-dim)}.slot-ready-mark{right:3px;color:var(--accent)}.slot-name{flex:none;font-weight:700;font-size:clamp(15px,1.5vw,21px);line-height:1.3;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot-job{flex:none;padding-bottom:5px;border-bottom:1px solid var(--panel-line);color:var(--accent);font-size:clamp(12px,1.15vw,15px);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot-empty .slot-job{border-bottom:none;color:var(--text-dim)}.slot-detail{display:flex;flex-direction:column;gap:4px;flex:none;min-height:3em;font-size:clamp(11px,1.05vw,14px);line-height:1.35;text-align:center}.slot-stats{color:var(--text-dim)}.slot-trait{font-weight:700;color:var(--accent)}.slot-kit{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;flex:none}.kit-cell{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1 / 1;border:1px solid var(--panel-line);background:#0a0c118c;overflow:hidden}.kit-filled{border-color:var(--accent-dim)}.kit-num{color:var(--text-dim);font-size:9px;opacity:.6}.item-icon{background-repeat:no-repeat;image-rendering:pixelated}.kit-count{position:absolute;right:2px;bottom:1px;color:var(--text);font-size:9px;text-shadow:1px 1px 0 rgba(0,0,0,.9)}.kit-mark{color:var(--text-dim);font-size:11px}.room-panel{display:flex;flex-direction:column;gap:8px;min-height:0;padding:clamp(6px,1vh,12px);border:calc(2px * var(--px)) solid var(--panel-line);background:#12141a99}.panel-head{display:flex;align-items:baseline;gap:8px;flex:none;padding-bottom:6px;border-bottom:1px solid var(--holo-dim)}.panel-head-label{color:var(--text-dim);font-size:11px}.panel-head-name{font-weight:700;font-size:clamp(15px,1.7vw,21px);letter-spacing:2px;color:var(--holo);text-shadow:0 0 8px var(--holo-glow)}.room-panel-art{flex:none;width:100%;aspect-ratio:669 / 340;background-image:var(--asset-lobby-planet);background-repeat:no-repeat;background-position:center;background-size:contain;image-rendering:pixelated}html:not(.has-lobby-planet) .room-panel-art{border:2px solid var(--panel-line);background-color:#0a0c1180}.companion-check{display:flex;align-items:center;gap:8px;flex:none;padding:4px 2px;border:none;background:none;color:var(--holo-dim);font:inherit;font-size:clamp(11px,1.1vw,13px);text-align:left;cursor:pointer}.companion-box{display:flex;align-items:center;justify-content:center;flex:none;width:14px;height:14px;border:1px solid var(--holo-dim);color:var(--holo);font-size:12px;line-height:1}.companion-check.is-on{color:var(--holo);text-shadow:0 0 6px var(--holo-glow)}.companion-check.is-on .companion-box{border-color:var(--holo);box-shadow:0 0 6px var(--holo-glow),inset 0 0 4px var(--holo-glow)}.companion-check:hover:not(:disabled) .companion-box{border-color:var(--holo)}.companion-check:disabled{cursor:default}.system-log{display:flex;flex-direction:column;justify-content:flex-end;gap:2px;flex:1;min-height:0;padding:8px;border:1px solid var(--holo-dim);background:#06140c73;color:var(--holo);font-size:clamp(10px,1vw,12px);line-height:1.6;overflow-y:auto}.system-line{text-shadow:0 0 6px var(--holo-glow);word-break:break-all}.system-line:not(:last-child){opacity:.55}.waiting-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(10px,2vw,24px);flex:none;height:clamp(118px,22vh,176px)}.chat{display:flex;flex-direction:column;gap:6px;min-width:0}.chat-log{display:flex;flex-direction:column;gap:2px;flex:1;min-height:0;padding:8px 10px;border:1px solid var(--holo-dim);background:#06140c59;font-size:clamp(11px,1.05vw,13px);line-height:1.55;overflow-y:auto}.chat-line{color:var(--holo);text-shadow:0 0 5px var(--holo-glow);word-break:break-all}.chat-nickname{margin-right:6px;font-weight:700}.chat-text{opacity:.85}.chat-input{flex:none;padding:8px 10px;border:1px solid var(--holo-dim);background:#06140c80;color:var(--holo);font:inherit;font-size:clamp(11px,1.05vw,13px);text-shadow:0 0 5px var(--holo-glow)}.chat-input::placeholder{color:var(--holo-dim);text-shadow:none}.chat-input:focus{outline:none;border-color:var(--holo);box-shadow:0 0 8px var(--holo-glow),inset 0 0 6px #4dffa01f}.action-button{flex:none;height:clamp(38px,5.5vh,54px);border:2px solid var(--holo-dim);background:#06140c73;color:var(--holo);font:inherit;font-weight:700;font-size:clamp(15px,1.8vw,20px);letter-spacing:1px;text-shadow:0 0 7px var(--holo-glow);cursor:pointer}.action-button:hover:not(:disabled){border-color:var(--holo);background:#0a281899;box-shadow:0 0 10px var(--holo-glow)}.action-button:disabled{border-color:var(--panel-line);color:var(--text-dim);text-shadow:none;cursor:default}.action-button.is-ready{border-color:var(--holo);background:#0a28188c;box-shadow:inset 0 0 10px var(--holo-glow)}.job-picker{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:8px;min-width:0;min-height:0}.job-picker-head{display:flex;align-items:baseline;gap:10px;min-width:0}.job-picker-label{flex:none;font-weight:700;font-size:clamp(15px,1.7vw,21px)}.job-picker-hover{min-height:1em;color:var(--accent);font-size:clamp(12px,1.2vw,16px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-picker-row{display:flex;gap:clamp(6px,.9vw,14px)}.job-cell{display:flex;align-items:center;justify-content:center;width:clamp(58px,6.6vw,104px);height:clamp(58px,6.6vw,104px);padding:0;border:2px solid var(--panel-line);background:#0a0c1180;color:inherit;font:inherit;cursor:pointer}.job-cell:hover{border-color:var(--accent-dim)}.job-cell.is-selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-dim)}.job-icon{--crop-scale: 1;background-repeat:no-repeat;image-rendering:pixelated}.job-cell-mark{color:var(--text-dim);font-size:clamp(18px,2.5vw,26px)}.waiting-error{flex:none;text-align:center}
