@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-vietnamese-500-normal-BmEvtly_.woff2) format("woff2"),url(/assets/space-grotesk-vietnamese-500-normal-BTqKIpxg.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2) format("woff2"),url(/assets/space-grotesk-latin-ext-500-normal-3dgZTiw9.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2) format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-vietnamese-700-normal-DMty7AZE.woff2) format("woff2"),url(/assets/space-grotesk-vietnamese-700-normal-Duxec5Rn.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-ext-700-normal-BQnZhY3m.woff2) format("woff2"),url(/assets/space-grotesk-latin-ext-700-normal-HVCqSBdx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2) format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{box-sizing:border-box}:root{--panel-bg: rgba(13, 18, 37, .92);--panel-border: rgba(143, 163, 200, .25);--text: #e8ecf5;--text-muted: #8b94ad;--accent: #ffb55c;--danger: #e0607e;font-family:Space Grotesk,system-ui,-apple-system,sans-serif}html,body,#root{margin:0;height:100%;overflow:hidden}body{background:#05070f;color:var(--text)}.app{position:relative;height:100%}.stage{display:block;width:100%;height:100%;background:linear-gradient(#05070f,#0b1226 55%,#1a2340 88%,#2c3050);user-select:none;-webkit-user-select:none;touch-action:none}.twinkle{animation:twinkle 3.5s ease-in-out infinite;animation-play-state:paused}.app.idle .twinkle{animation-play-state:running}@keyframes twinkle{0%,to{opacity:.15}50%{opacity:.9}}.starfield{transform-box:view-box;transform-origin:800px 2342.2px;animation:sky-rotate 3600s linear infinite;animation-play-state:paused}.app.idle .starfield{animation-play-state:running}@keyframes sky-rotate{to{transform:rotate(360deg)}}.shooting-star{opacity:0;animation:shoot 20s linear infinite;animation-play-state:paused;visibility:hidden;pointer-events:none}.app.idle .shooting-star{animation-play-state:running;visibility:visible}@keyframes shoot{0%{transform:translate(0);opacity:0}0.7%{opacity:.95}3%{transform:translate(-430px,265px);opacity:0}to{transform:translate(-430px,265px);opacity:0}}.dimmable{transition:opacity .18s ease}.dimmable.dimmed{opacity:.25}.avatar{transition:transform .7s ease,opacity .45s ease}.moon-outer{transition:transform .9s ease,opacity .5s ease}.segment path,.segment{transition:d .7s ease,opacity .5s ease}.segment path.label-arc{transition:none}.anim-enter,.anim-enter *{transition:none!important}.anim-leave{pointer-events:none}.app.version-switching .layer-wedges .segment,.app.version-switching .layer-wedges .segment path{transition-delay:.5s}.app.version-switching .layer-moons .moon-outer{transition-delay:.9s}.app.version-switching .layer-moons .moon-outer.is-sub{transition-delay:1.3s}.segment text{transition:opacity .4s ease}.segment text.label-out{opacity:0}@keyframes label-in{0%{opacity:0}to{opacity:1}}.segment text.label-in{animation:label-in .5s ease both}.edge-pair{transition:opacity .5s ease}.edge-pair.anim-leave{transition:opacity .6s ease .3s}.app.version-switching .edge-pair:not(.anim-leave){transition:opacity .6s ease 1.6s}.app.version-switching .edge{transition:d .9s ease .7s,stroke-opacity .15s ease,stroke-width .15s ease}.app.version-switching .edge-flow{transition:d .9s ease .7s,stroke-opacity 1.2s ease,stroke-width 1.2s ease}.app.no-anim *,.app.no-anim{transition:none!important}.edge{fill:none;stroke-opacity:.4;stroke-width:1.2;pointer-events:none;transition:stroke-opacity .15s ease,stroke-width .15s ease}.edge.dimmed{stroke-opacity:.08}.edge.lit{stroke-opacity:.95;stroke-width:2.2}.edge-flow{fill:none;stroke-opacity:0;stroke-width:1.2;stroke-dasharray:4 30;stroke-linecap:round;pointer-events:none;animation:edge-flow 1.3s linear infinite;transition:stroke-opacity 1.2s ease,stroke-width 1.2s ease}.app.idle .edge-flow:not(.dimmed):not(.lit){stroke-opacity:.55;stroke-width:1.7}.moon-flow{fill:none;stroke-opacity:0;stroke-width:1.4;stroke-dasharray:4 30;stroke-linecap:round;pointer-events:none;animation:edge-flow 1.3s linear infinite;transition:stroke-opacity 1.2s ease,stroke-width 1.2s ease}.app.idle .moon-flow{stroke-opacity:.85;stroke-width:2}@keyframes edge-flow{to{stroke-dashoffset:-34}}.edge-flow.dimmed,.edge-flow.lit{transition:stroke-opacity .15s ease,stroke-width .15s ease}.edge-flow.dimmed{stroke-opacity:0}.edge-flow.lit{stroke-opacity:1;stroke-width:2.4}.moon{cursor:grab}.moon:active{cursor:grabbing}.moon.readonly,.moon.readonly:active{cursor:pointer}.orbit{fill:none;stroke:#8fa3c824;stroke-width:1.2;stroke-dasharray:3 9;pointer-events:none}.move-row{display:flex;gap:8px}.moon-name{font-family:Space Grotesk,sans-serif;font-weight:700;font-size:23px;fill:#f7f9ff;text-anchor:middle;pointer-events:none;letter-spacing:.02em;paint-order:stroke;stroke:#0a0e1f59;stroke-width:2px}.satellite-name{font-size:16px}.avatar{cursor:pointer}.avatar-initials{font-weight:700;fill:#0d1225;text-anchor:middle;pointer-events:none}.extra-count{font-weight:700;fill:#e8ecf5;text-anchor:middle;pointer-events:none}.head-badge{fill:#ffcf6b;text-anchor:middle;pointer-events:none}.segment{cursor:pointer}.segment-label{font-weight:600;font-size:16px;letter-spacing:.18em;fill:#f2f5fc;paint-order:stroke;stroke:#080c1a8c;stroke-width:2.5px;pointer-events:none}.mgmt-label{font-size:14px;letter-spacing:.22em}.unassigned-label{font-size:11px;font-weight:600;letter-spacing:.2em;fill:var(--text-muted);paint-order:stroke;stroke:#000;stroke-width:2.5px;pointer-events:none}.toolbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:20px;padding:14px 20px;pointer-events:none;transition:opacity .3s ease}.app.idle:not(.deck-editing) .toolbar{opacity:0;transition:opacity 1.2s ease}.app.idle:not(.deck-editing) .toolbar>*{pointer-events:none}.toolbar>*{pointer-events:auto}.app-title{margin:0;font-size:20px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:8px}.app-rocket{flex-shrink:0}.toolbar-group{display:flex;gap:8px}.toolbar-io{margin-left:auto}button{font:inherit;font-size:13px;color:var(--text);background:#1a2340d9;border:1px solid var(--panel-border);border-radius:8px;padding:7px 13px;cursor:pointer;transition:border-color .15s ease,background .15s ease}button:hover{border-color:var(--accent)}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.danger{color:var(--danger);border-color:#e0607e66}button.danger:hover{border-color:var(--danger)}button.link-btn{background:none;border:none;padding:2px 0;color:var(--accent);text-decoration:underline;text-underline-offset:3px}button.icon-btn{border:none;background:none;font-size:15px;padding:4px 8px;color:var(--text-muted)}button.icon-btn:hover{color:var(--text)}input,select{font:inherit;font-size:13px;color:var(--text);background:#05070f99;border:1px solid var(--panel-border);border-radius:6px;padding:7px 9px;width:100%}input[type=color]{padding:2px;height:34px;cursor:pointer}input[type=checkbox]{width:auto}.side-panel{position:absolute;top:64px;right:16px;bottom:16px;width:320px;display:flex;flex-direction:column;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--panel-border)}.panel-kind{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted)}.panel-body{padding:16px;display:flex;flex-direction:column;gap:14px;overflow-y:auto}.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-muted)}.field-inline{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text)}.field input,.field select{color:var(--text)}.avatar-row{display:flex;align-items:center;gap:14px}.avatar-preview{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--panel-border);flex-shrink:0}.avatar-fallback{display:flex;align-items:center;justify-content:center;font-weight:700;font-size:22px;color:#0d1225}.avatar-actions{display:flex;flex-direction:column;gap:6px}.link-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.assign-picker{display:flex;flex-direction:column;gap:8px}.assign-picker ul{list-style:none;margin:0;padding:0;max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.assign-picker label{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:6px;cursor:pointer;color:var(--text);font-size:13px}.assign-picker label:hover{background:#8fa3c81f}.mini-avatar{width:22px;height:22px;border-radius:50%;object-fit:cover;flex-shrink:0}.mini-initials{display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#0d1225}.picker-empty{color:var(--text-muted);font-size:12px;padding:6px}.version-bar{display:flex;gap:8px;align-items:center}.version-bar select{width:auto;max-width:300px;background:#1a2340d9}.present-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px}.app.presenting .toolbar{opacity:0;pointer-events:none}.app.presenting .edge-pair:not(.anim-leave){transition:opacity .6s ease 1s}.app.presenting .edge-pair.anim-leave{transition:opacity .4s ease}.deck-rail{position:absolute;top:66px;left:0;bottom:0;width:236px;display:flex;flex-direction:column;background:#0a0e1fe0;border-right:1px solid var(--panel-border)}.deck-rail-list{flex:1;min-height:0;overflow-y:auto;padding:12px 12px 6px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;scrollbar-color:rgba(140,160,210,.35) transparent}.deck-rail-list::-webkit-scrollbar{width:8px}.deck-rail-list::-webkit-scrollbar-track{background:transparent}.deck-rail-list::-webkit-scrollbar-thumb{background:#8ca0d259;border-radius:4px}.deck-rail-list::-webkit-scrollbar-thumb:hover{background:#8ca0d28c}.deck-thumb{position:relative;flex-shrink:0;border:2px solid rgba(140,160,210,.2);border-radius:10px;cursor:pointer;background:#0b1226;overflow:hidden}.deck-thumb.active{border-color:var(--accent)}.deck-thumb.drop-before{box-shadow:0 -6px 0 -2px var(--accent)}.deck-thumb.dragging{opacity:.25}.deck-drop-end{height:4px;border-radius:2px;background:var(--accent)}.deck-thumb-index{position:absolute;top:8px;left:10px;z-index:2;font-size:11px;color:var(--text-muted);text-shadow:0 1px 3px #000}.deck-thumb-name{position:absolute;top:8px;left:26px;right:8px;z-index:2;font-size:11px;font-weight:700;color:#f7f9ff;text-shadow:0 1px 3px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.deck-thumb-canvas{position:relative;aspect-ratio:16 / 9;flex-shrink:0;pointer-events:none}.deck-thumb-text.deck-thumb-over{position:absolute;top:0;right:0;bottom:0;left:0;max-height:62%;overflow:hidden}.mini-org{display:block;width:100%;height:100%}.deck-thumb-text{height:100%;padding:24px 12px 4px;overflow:hidden;font-size:9px;line-height:1.4;color:var(--text-muted)}.deck-thumb-text p,.deck-thumb-text ul,.deck-thumb-text ol{margin:0 0 3px;padding-left:1.2em}.deck-thumb-text p{padding-left:0}.deck-thumb-text *{font-size:inherit!important;line-height:inherit!important}.deck-thumb-missing{height:100%;display:grid;place-items:center;color:#f0a35c;font-size:11px}.deck-thumb-actions{position:absolute;top:4px;right:4px;z-index:2;display:none;gap:4px}.deck-thumb:hover .deck-thumb-actions{display:flex}.deck-thumb-actions button{padding:2px 7px;font-size:11px}.deck-empty{color:var(--text-muted);font-size:13px;padding:12px 4px}.deck-rail-add{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--panel-border)}.deck-rail-add button{flex:1}.deck-hide-unassigned{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);background:#1a2340d9;border:1px solid var(--panel-border);border-radius:8px;padding:6px 10px;white-space:nowrap;cursor:pointer}.deck-hide-unassigned input{margin:0}.slide-controls{position:fixed;bottom:3vh;left:calc(236px + (100vw - 236px)/2);transform:translate(-50%);display:flex;align-items:center;justify-content:center;gap:10px;pointer-events:auto}.app.deck-editing .crust-wordmark{display:none}.slide-controls select{background:#1a2340d9}.deck-edit-toggle,.back-to-slides{white-space:nowrap}.deck-edit-toggle.on{border-color:var(--accent);color:var(--accent)}.deck-readonly-chip{font-size:12px;color:#f0a35c;background:#f0a35c1f;border:1px solid rgba(240,163,92,.4);border-radius:6px;padding:4px 10px}.app .text-slide-layer.text-slide-editing,.app .text-slide-layer.text-slide-editing.top-anchored{left:236px;pointer-events:none}.text-slide-editing .text-slide{position:relative;pointer-events:auto}.wysiwyg-toolbar{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:24px;transition:opacity .2s ease}.wysiwyg-toolbar.hidden{opacity:0;pointer-events:none}.wysiwyg-toolbar button{min-width:34px;padding:6px 9px}.wysiwyg-sep{width:1px;height:20px;background:var(--panel-border);margin:0 6px}.wysiwyg-menu{position:relative}.wysiwyg-color-btn{box-shadow:inset 0 -3px 0 var(--accent)}.wysiwyg-popover{position:absolute;top:calc(100% + 6px);left:0;z-index:10;display:flex;gap:6px;padding:8px;background:#0a0e1ff7;border:1px solid var(--panel-border);border-radius:8px}.wysiwyg-popover-list{flex-direction:column}.wysiwyg-swatch{width:22px;height:22px;min-width:0!important;padding:0!important;border-radius:50%;border:1px solid rgba(255,255,255,.3)}.editable-title,.editable-body{outline:none;cursor:text;border-radius:6px}.editable-title:hover,.editable-body:hover{box-shadow:0 0 0 1px #8ca0d240}.editable-title:focus,.editable-body:focus{box-shadow:0 0 0 1px var(--accent)}.editable-title:empty:before,.editable-body:empty:before{content:attr(data-placeholder);color:var(--text-muted);opacity:.5}.editable-body{min-height:2em}.editable-title:empty,.editable-body:empty{min-width:320px}.text-slide-layer{position:absolute;top:0;right:0;bottom:25%;left:0;display:grid;place-items:center;pointer-events:none}.text-slide-layer.top-anchored{top:0;right:0;bottom:0;left:0;place-items:start center;padding-top:76px}.text-slide-in.no-delay{animation:text-slide-in .6s ease .15s both}.text-slide{grid-area:1 / 1;text-align:left;max-width:72vw}.text-slide h1{margin:0;min-height:1em;font-size:clamp(30px,4.2vw,84px);font-weight:700;letter-spacing:.05em;color:#f7f9ff;text-shadow:0 2px 24px rgba(94,168,255,.35)}.text-slide-body{margin-top:1em;font-size:clamp(15px,1.95vw,40px);line-height:1.55;color:#e6edfd;text-shadow:0 1px 14px rgba(6,10,24,.8)}.text-slide-body p{margin:0 0 .6em}.text-slide-body ul,.text-slide-body ol{margin:0 0 .6em;padding-left:1.3em}.text-slide-body li{margin:.18em 0}.text-slide-body h2{font-size:1.35em;margin:.8em 0 .4em}.text-slide-body h3{font-size:1.12em;margin:.7em 0 .35em}.text-slide-body strong,.text-slide-body b{font-weight:900;color:#fff}.text-slide-body font[size="2"]{font-size:.7em}.text-slide-body font[size="4"]{font-size:1em}.text-slide-body font[size="6"]{font-size:1.45em}.text-slide-body code{font-size:.85em;background:#8ca0d229;border-radius:5px;padding:2px 7px}.text-slide-body a{color:var(--accent)}@keyframes text-slide-in{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}.text-slide-in{animation:text-slide-in .9s ease .9s both}.text-slide-in.quick{animation:text-slide-in .6s ease .1s both}@keyframes text-slide-out{to{opacity:0}}.text-slide-out{animation:text-slide-out .45s ease both}.hover-card{position:fixed;z-index:40;pointer-events:none;background:#0d1225f2;border:1px solid rgba(140,160,210,.35);border-radius:8px;padding:7px 11px;max-width:220px}.hover-card b{display:block;font-size:13px}.hover-card span{display:block;color:var(--text-muted);font-size:12px;margin-top:2px}.version-label{color:var(--text-muted);font-size:13px;font-weight:600;padding:4px 10px;border:1px solid rgba(140,160,210,.25);border-radius:6px;background:#1a2340d9;white-space:nowrap}.field-hint{color:var(--text-muted);font-size:11px}.ro-name{font-size:18px;font-weight:700}.ro-sub{color:var(--text-muted);font-size:13px}.ro-value{color:var(--text);font-size:13px}.auth-screen{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:linear-gradient(#05070f,#0b1226 60%,#1a2340);color:var(--text)}.auth-title{margin:0;font-size:30px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}.auth-sub{margin:0;color:var(--text-muted)}.auth-google{font-size:15px;padding:10px 22px}.auth-error{color:var(--danger);font-size:13px;max-width:420px;text-align:center}@media(prefers-reduced-motion:reduce){.twinkle,.starfield,.shooting-star{animation:none}.edge-flow,.moon-flow{display:none}.avatar,.moon-outer,.segment,.segment path,.connections-layer{transition:none}.dimmable,.edge,button{transition:none}}
