.tt-app{--tt-bg:#0b151f;--tt-panel:#11232f;--tt-raised:#19303d;--tt-line:#2a4553;--tt-text:#dfecee;--tt-muted:#9bb4bc;--tt-accent:#83dccb;--tt-warm:#ebc58e;background:var(--tt-bg);color:var(--tt-text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:14px/1.6 -apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Noto Sans CJK SC,sans-serif;position:fixed;inset:0;overflow:auto}.tt-app *{box-sizing:border-box}.tt-app button,.tt-app input,.tt-app textarea,.tt-app select{font:inherit;color:inherit;letter-spacing:0}.tt-app button{border:1px solid var(--tt-line);background:var(--tt-raised);cursor:pointer;border-radius:7px;min-height:34px;padding:7px 11px;font-size:12px}.tt-app button:hover:not(:disabled){border-color:var(--tt-accent);background:#224452}.tt-app button:disabled{opacity:.4;cursor:not-allowed}.tt-app button[aria-pressed=true]{color:var(--tt-accent);border-color:var(--tt-accent);background:#23433f}.tt-app .tt-primary{color:#102c2b;background:var(--tt-accent);border-color:var(--tt-accent);font-weight:650}.tt-app .tt-primary:hover:not(:disabled){color:#102c2b;background:#b0eadc}.tt-app .tt-danger{color:#ffb3af}.tt-app label{text-transform:none;color:var(--tt-muted);letter-spacing:0;margin:10px 0;font-size:12px;display:block}.tt-app input,.tt-app textarea,.tt-app select{border:1px solid var(--tt-line);width:100%;min-width:0;color:var(--tt-text);background:#0d1c26;border-radius:6px;padding:8px 10px;font-size:13px}.tt-app input:focus,.tt-app textarea:focus,.tt-app select:focus{border-color:var(--tt-accent);box-shadow:0 0 0 2px #83dccb20}.tt-app input[type=checkbox]{width:16px;height:16px;accent-color:var(--tt-accent);padding:0}.tt-app input[type=color]{height:36px;padding:3px}.tt-app textarea{resize:vertical;line-height:1.7}.tt-app :is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--tt-warm);outline-offset:3px}.tt-app a{color:var(--tt-accent)}.tt-app fieldset{border:0;min-width:0;margin:0;padding:0}.tt-app h1,.tt-app h2,.tt-app h3{color:var(--tt-text);letter-spacing:.02em}.tt-app h2{margin:8px 0;font-size:20px}.tt-app h3{margin:14px 0 6px;font-size:13px}.tt-app p{overflow-wrap:anywhere}.tt-help{color:var(--tt-muted);font-size:11px;line-height:1.85}.tt-note,.tt-warning{border-left:2px solid var(--tt-accent);overflow-wrap:anywhere;background:#1f333d;padding:10px 12px;font-size:12px;line-height:1.8}.tt-warning{border-color:var(--tt-warm);color:#f0d6ae}.tt-check{align-items:center;gap:8px;display:flex!important}.tt-form-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.tt-form-pair label{min-width:0}.tt-grow{flex:1}.tt-divider{background:var(--tt-line);height:1px;margin:22px 0}.tt-upload{border:1px dashed var(--tt-line);border-radius:8px;padding:10px}.tt-upload input{background:0 0;border:0;padding:5px 0;font-size:11px}.tt-text-link{margin:12px 0;font-size:12px;text-decoration:none;display:block}.tt-eyebrow{letter-spacing:.2em;color:var(--tt-accent);font-size:11px}.tt-lobby{background:radial-gradient(at 26% 40%,#173642 0,#0000 55%),#0b151f}.tt-lobby-head{border-bottom:1px solid var(--tt-line);align-items:center;gap:25px;max-width:1200px;margin:0 auto;padding:25px 30px;display:flex}.tt-lobby-head a{letter-spacing:.08em;font-size:20px;text-decoration:none}.tt-lobby-head span{color:var(--tt-muted);letter-spacing:.15em;font-size:10px}.tt-lobby-layout{grid-template-columns:minmax(0,1.25fr) minmax(300px,1fr);align-items:center;gap:80px;max-width:1200px;margin:0 auto;padding:50px 30px;display:grid}.tt-lobby-story h1{margin:18px 0;font-size:clamp(32px,3.1vw,48px);font-weight:550;line-height:1.55}.tt-lobby-story h1 em{color:var(--tt-accent);font-style:normal}.tt-lobby-story>p{color:var(--tt-muted);font-size:15px;line-height:2}.tt-lobby-card{border:1px solid var(--tt-line);background:#122430ed;border-radius:18px;padding:28px 30px;box-shadow:0 20px 60px #0003}.tt-lobby-card>small{color:var(--tt-accent);letter-spacing:.16em;font-size:10px}.tt-lobby-card form>.tt-primary{width:100%;min-height:44px;margin-top:14px}.tt-lobby-notes{color:var(--tt-muted);letter-spacing:.1em;gap:22px;margin-top:30px;font-size:10px;display:flex}.tt-mini-board{background-image:linear-gradient(#81cfbe10 1px,#0000 1px),linear-gradient(90deg,#81cfbe10 1px,#0000 1px);background-size:32px 32px;border:1px solid #3b6168;border-radius:16px;width:90%;height:200px;margin-top:30px;position:relative;transform:perspective(700px)rotateX(20deg)rotate(-4deg)}.tt-mini-board i{color:#0e2b30;background:#72bda9;border:3px solid #264753;border-radius:50%;place-items:center;width:44px;height:44px;font-size:18px;font-style:normal;display:grid;position:absolute;top:40%;left:24%;box-shadow:0 8px 15px #0005}.tt-mini-board i+i{background:var(--tt-warm);top:20%;left:60%}.tt-mini-board i+i+i{background:#799dbb;top:70%;left:65%}.tt-mini-zone{border:1px solid var(--tt-accent);background:#83dccb10;border-radius:50%;width:120px;height:120px;position:absolute;top:calc(40% - 38px);left:calc(24% - 38px)}.tt-join{flex-direction:column;justify-content:center;align-items:center;gap:22px;padding:28px;display:flex}.tt-join .tt-lobby-card{width:min(460px,100%)}.tt-join>.tt-lobby-card a{margin-left:12px}.tt-desk{flex-direction:column;display:flex;overflow:hidden}.tt-topbar{border-bottom:1px solid var(--tt-line);background:var(--tt-panel);z-index:4;align-items:center;gap:12px;height:48px;min-height:48px;padding:0 12px;display:flex}.tt-logo{font:32px/1 Georgia,serif;text-decoration:none}.tt-topbar>strong{white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-size:13px;overflow:hidden}.tt-topbar>select{width:180px;min-width:100px;max-width:200px;height:32px;padding:5px 8px;font-size:12px}.tt-connection{color:var(--tt-warm);white-space:nowrap;font-size:10px}.tt-connection.online{color:var(--tt-accent)}.tt-connection:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px;margin-right:5px;display:inline-block}.tt-top-actions{flex-shrink:0;gap:5px;margin-left:auto;display:flex}.tt-top-actions button{background:0 0;min-height:32px;padding:5px 10px;font-size:11px}.tt-top-actions span{color:var(--tt-accent);margin-left:3px}.tt-map-shell{flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.tt-tools{border-right:1px solid var(--tt-line);scrollbar-width:thin;z-index:3;background:#0f202b;flex-direction:column;flex:0 0 54px;gap:4px;width:54px;padding:8px 5px;display:flex;overflow-y:auto}.tt-tools button{background:0 0;border-color:#0000;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:0;min-height:43px;padding:3px 0;display:flex}.tt-tools button b{font-size:19px;font-weight:400;line-height:1.2}.tt-tools button span{color:var(--tt-muted);font-size:9px;line-height:1.5}.tt-tool-divider{border-bottom:1px solid var(--tt-line);margin:4px 0}.tt-board{touch-action:none;background:radial-gradient(at 45% 48%,#162936,#0c1924 78%);outline:none;flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}.tt-board .konvajs-content{touch-action:none}.tt-canvas-hint{color:var(--tt-muted);pointer-events:none;background:#0a1720bb;border-radius:5px;max-width:calc(100% - 36px);padding:4px 8px;font-size:10px;position:absolute;top:12px;left:18px}.tt-board-footer{pointer-events:none;flex-wrap:wrap;align-items:center;gap:5px;display:flex;position:absolute;bottom:12px;left:14px;right:14px}.tt-board-footer button{pointer-events:auto;background:#122734df;min-height:32px;padding:5px 10px;font-size:11px}.tt-board-footer>span:not(.tt-grow){border:1px solid var(--tt-line);color:var(--tt-warm);background:#0c1c26dd;border-radius:6px;padding:6px 10px;font-size:11px}.tt-board-footer small{color:var(--tt-muted);font-size:9px}.tt-room-identity{color:var(--tt-muted);border:1px solid var(--tt-line);pointer-events:none;background:#0d1d27d9;border-radius:12px;align-items:center;gap:8px;padding:4px 9px;font-size:10px;display:flex;position:absolute;top:13px;right:16px}.tt-room-identity span{color:var(--tt-accent);font-size:9px}.tt-selection-actions{border:1px solid var(--tt-line);z-index:2;background:#152b38ef;border-radius:8px;align-items:center;gap:5px;max-width:calc(100% - 92px);padding:5px 7px;display:flex;position:absolute;top:49px;left:72px}.tt-selection-actions>span{text-overflow:ellipsis;white-space:nowrap;max-width:160px;margin-inline:4px 8px;font-size:11px;overflow:hidden}.tt-selection-actions button{min-height:30px;padding:4px 8px;font-size:11px}.tt-board-empty{text-align:center;pointer-events:none;width:min(380px,100% - 100px);position:absolute;top:40%;left:calc(50% + 27px);transform:translate(-50%,-50%)}.tt-board-empty small{letter-spacing:.15em;color:var(--tt-accent);font-size:10px}.tt-board-empty h2{margin:12px 0;font-size:23px;font-weight:500}.tt-board-empty p{color:var(--tt-muted);font-size:12px;line-height:2}.tt-board-empty button{pointer-events:auto;margin:6px 4px;display:inline-block}.tt-sidepanel{border-left:1px solid var(--tt-line);background:var(--tt-panel);overscroll-behavior:contain;z-index:5;scrollbar-width:thin;flex:0 0 332px;width:332px;min-width:0;overflow-y:auto}.tt-panel-tabs{z-index:3;border-bottom:1px solid var(--tt-line);background:#11232ffa;gap:3px;padding:8px;display:flex;position:sticky;top:0}.tt-panel-tabs button{background:0 0;flex:1;min-width:0;padding:5px 8px;font-size:11px}.tt-panel-tabs button:last-child{flex:0;min-width:30px;padding:0;font-size:18px}.tt-panel-title{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.tt-panel-title small{letter-spacing:.12em;color:var(--tt-accent);font-size:9px}.tt-panel-title h2{overflow-wrap:anywhere;margin:4px 0;font-size:19px}.tt-panel-title>button{background:0 0;border:0;flex-shrink:0;padding:0 5px;font-size:21px}.tt-properties{padding:15px 17px}.tt-properties label{font-size:11px}.tt-properties fieldset>button,.tt-properties form>button{margin:4px 5px 5px 0}.tt-properties .tt-save{width:100%;margin-top:18px;display:block;position:sticky;bottom:12px}.tt-properties fieldset>form{margin-block:12px}.tt-section-heading{justify-content:space-between;align-items:center;margin-top:16px;display:flex}.tt-section-heading h3{margin:0}.tt-section-heading button{min-height:28px;padding:3px 8px;font-size:10px}.tt-counter-row{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) 27px;gap:4px;margin:6px 0;display:grid}.tt-counter-row input{padding:5px;font-size:11px}.tt-counter-row button{padding:0;font-size:15px}.tt-permissions{border-top:1px solid var(--tt-line);margin-top:18px;padding-top:12px}.tt-permissions summary{cursor:pointer;color:var(--tt-warm);font-size:12px}.tt-object-list{flex-direction:column;gap:5px;padding:0 16px 20px;display:flex}.tt-object-list button{text-align:left;overflow-wrap:anywhere;justify-content:space-between;gap:5px;font-size:12px;display:flex}.tt-object-list small{color:var(--tt-warm);white-space:nowrap;font-size:10px}.tt-turn-row{gap:4px;margin:8px 0;display:flex}.tt-turn-row button:first-child{text-align:left;overflow-wrap:anywhere;flex:1}.tt-turn-row.active button:first-child{border-color:var(--tt-accent);color:var(--tt-accent)}.tt-turn-row button{padding:5px 8px;font-size:11px}.tt-member-row{border-bottom:1px solid var(--tt-line);align-items:center;gap:9px;padding:12px 0;display:flex}.tt-member-row>div{flex:1;min-width:0}.tt-member-row b{overflow-wrap:anywhere;font-size:12px}.tt-member-row small{color:var(--tt-muted);font-size:10px;display:block}.online-dot,.offline-dot{background:var(--tt-accent);border-radius:50%;width:6px;height:6px}.offline-dot{background:var(--tt-muted);opacity:.5}.tt-member-row button{padding:5px;font-size:10px}.tt-toast{border:1px solid var(--tt-accent);z-index:15;background:#20463fee;border-radius:8px;align-items:center;gap:15px;max-width:min(650px,100% - 90px);padding:10px 12px;font-size:12px;display:flex;position:absolute;bottom:68px;left:72px;box-shadow:0 10px 30px #0004}.tt-toast.is-error{border-color:var(--tt-warm);background:#3e3528f5}.tt-toast>span{overflow-wrap:anywhere}.tt-toast button{background:0 0;border:0;min-height:25px;padding:0 4px;font-size:20px}.tt-dialog{color:var(--tt-text);background:var(--tt-panel);border:1px solid var(--tt-line);border-radius:14px;width:min(480px,100vw - 32px);max-height:85dvh;padding:24px;overflow:auto}.tt-dialog::backdrop{background:#010b12c4}.tt-dialog p{color:var(--tt-muted);font-size:12px}.tt-dialog form>button{margin-right:8px}@media (width<=1050px){.tt-topbar>strong{max-width:140px}.tt-topbar>select{width:140px}.tt-connection{font-size:9px}.tt-sidepanel{width:min(342px,70vw);position:absolute;top:0;bottom:0;right:0;box-shadow:-15px 0 30px #0004}.tt-lobby-layout{gap:35px}.tt-room-identity{top:auto;bottom:57px}.tt-topbar{gap:8px}}@media (width<=620px){.tt-topbar{scrollbar-width:none;gap:6px;height:48px;min-height:48px;padding-inline:8px;overflow-x:auto}.tt-topbar>strong{display:none}.tt-topbar>select{width:106px;min-width:106px;font-size:11px}.tt-connection{font-size:9px}.tt-top-actions{gap:3px}.tt-top-actions button{min-height:34px;padding:5px 6px;font-size:10px}.tt-logo{font-size:25px}.tt-tools{flex-basis:46px;gap:3px;width:46px;padding:6px 3px}.tt-tools button{min-height:42px}.tt-canvas-hint{max-width:calc(100% - 16px);padding:4px;font-size:9px;top:9px;left:8px}.tt-board-footer{gap:4px;bottom:8px;left:8px;right:8px}.tt-board-footer>span:not(.tt-grow){padding:6px;font-size:10px}.tt-board-footer .tt-grow{flex-basis:100%;height:0}.tt-board-footer button{min-height:34px;padding:5px 8px;font-size:10px}.tt-sidepanel{border:1px solid var(--tt-line);border-bottom:0;border-right:0;border-radius:12px 0 0;width:auto;max-height:64%;inset:auto 0 0 46px;box-shadow:0 -10px 35px #0006}.tt-panel-tabs{padding:6px}.tt-panel-tabs button{min-height:38px;padding:5px;font-size:10px}.tt-properties{padding:12px}.tt-selection-actions{gap:3px;max-width:calc(100% - 64px);padding:4px;top:44px;left:54px}.tt-selection-actions>span{max-width:70px;margin:0 2px;font-size:10px}.tt-selection-actions button{min-height:36px;padding:5px 7px;font-size:10px}.tt-board-empty{width:calc(100% - 76px);left:calc(50% + 23px)}.tt-board-empty h2{font-size:20px}.tt-board-empty p{font-size:11px}.tt-room-identity{font-size:9px;bottom:99px;right:9px}.tt-toast{gap:6px;max-width:calc(100% - 65px);font-size:11px;bottom:140px;left:55px}.tt-lobby-head{gap:15px;padding:18px}.tt-lobby-head span{font-size:8px}.tt-lobby-layout{padding:24px 18px;display:block}.tt-lobby-story h1{font-size:30px}.tt-lobby-story>p{font-size:13px}.tt-mini-board{display:none}.tt-lobby-notes{gap:15px;margin:22px 0 30px;font-size:9px}.tt-lobby-card{padding:23px 20px}.tt-join,.tt-dialog{padding:18px}.tt-properties .tt-form-pair{gap:6px}}@media (prefers-reduced-motion:reduce){.tt-app *{transition:none!important;animation:none!important}}
