:root{--primary-deep:#0a2540;--primary-ocean:#0f4c75;--primary-teal:#008b8b;--accent-gold:#d4af37;--accent-aqua:#1b9aaa;--accent-coral:#ff6b6b;--neutral-light:#f8f9fa;--neutral-cream:#faf8f5;--neutral-dark:#1a1a1a;--neutral-gray:#e5e7eb;--neutral-gray-dark:#9ca3af;--neutral-white:#fff;--text-primary:#0a2540;--text-secondary:#4a5568;--text-light:#6b7280;--text-white:#fff;--text-disabled:#9ca3af;--status-success:#10b981;--status-warning:#f59e0b;--status-error:#ef4444;--status-info:#3b82f6;--gradient-primary:linear-gradient(135deg,#0a2540,#0f4c75);--gradient-accent:linear-gradient(135deg,#008b8b,#1b9aaa);--gradient-gold:linear-gradient(135deg,#d4af37,#b8960c);--gradient-dark:linear-gradient(180deg,#1a1a1a,#0a2540);--shadow-sm:0 1px 2px 0 #0a25400d;--shadow-md:0 4px 6px -1px #0a25401a,0 2px 4px -1px #0a25400f;--shadow-lg:0 10px 15px -3px #0a25401a,0 4px 6px -2px #0a25400d;--shadow-xl:0 20px 25px -5px #0a25401a,0 10px 10px -5px #0a25400a;--shadow-card:0 4px 20px #0a254014;--shadow-button:0 4px 14px #0a254033;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--spacing-3xl:64px;--font-family:"Roboto",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-size-4xl:2.5rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--transition-fast:150ms ease;--transition-normal:250ms ease;--transition-slow:350ms ease;--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070;--header-height:64px;--sidebar-width:280px;--sidebar-collapsed-width:80px;--footer-height:60px;--content-max-width:1440px}[data-theme=dark]{--primary-deep:#1b4f72;--neutral-light:#1a1a1a;--neutral-dark:#f8f9fa;--neutral-white:#2d2d2d;--text-primary:#f8f9fa;--text-secondary:#d1d5db;--text-light:#9ca3af}*,:after,:before{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--neutral-light);color:var(--text-primary);font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);margin:0;padding:0;text-rendering:optimizeLegibility}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}a{color:var(--primary-ocean);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-deep)}code{background-color:var(--neutral-gray);border-radius:var(--radius-sm);font-family:Roboto Mono,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;font-size:.9em;padding:.2em .4em}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-light{color:var(--text-light)}.text-white{color:var(--text-white)}.bg-primary{background-color:var(--primary-deep)}.bg-secondary{background-color:var(--primary-ocean)}.bg-light{background-color:var(--neutral-light)}.bg-white{background-color:var(--neutral-white)}.gradient-primary{background:var(--gradient-primary)}.gradient-accent{background:var(--gradient-accent)}.gradient-gold{background:var(--gradient-gold)}:focus-visible{outline:2px solid var(--primary-teal);outline-offset:2px}::selection{background-color:var(--primary-ocean);color:var(--neutral-white)}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:var(--neutral-light)}::-webkit-scrollbar-thumb{background:var(--neutral-gray-dark);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary-ocean)}@media print{.hidden-in-print{display:none!important}body{background-color:#fff;color:#000}}.fade-in{animation:fadeIn var(--transition-normal) ease-in-out}.slide-up{animation:slideUp var(--transition-normal) ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.spinner{animation:spin 1s linear infinite;border:3px solid var(--neutral-gray);border-radius:50%;border-top-color:var(--primary-teal);height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}#sceneExplorer{height:93vh!important}.fallback-spinner{display:flex;height:100%;position:relative;width:100%}.loading{border-radius:50%;height:55px;left:calc(50% - 35px);top:50%;width:55px}.effect-1,.effect-2,.loading{border:3px solid #0000;box-sizing:border-box;position:absolute}.effect-1,.effect-2{border-left-color:#2962ff;border-radius:50%;height:100%;width:100%}.effect-1{animation:rotate 1s ease infinite}.effect-2{animation:rotateOpacity 1s ease .1s infinite}.effect-3{animation:rotateOpacity 1s ease .2s infinite;border:3px solid #0000;border-left-color:#2962ff;border-radius:50%;box-sizing:border-box;height:100%;width:100%}.loading .effects{transition:all .3s ease}.fallback-logo{left:calc(50% - 45px);position:absolute;top:40%}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes rotateOpacity{0%{opacity:.1;transform:rotate(0deg)}to{opacity:1;transform:rotate(1turn)}}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}.ql-container.ql-snow{height:150px!important}.EmojiPickerReact .epr-body{overflow-x:hidden!important;overflow-y:hidden!important}&::-webkit-scrollbar{width:4,}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(/static/media/roboto-cyrillic-ext-300-normal.4777461b144e55145268.woff2) format("woff2"),url(/static/media/roboto-cyrillic-ext-300-normal.3503ec5cc6330e21f695.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(/static/media/roboto-cyrillic-300-normal.1431d1cef06ad04f5458.woff2) format("woff2"),url(/static/media/roboto-cyrillic-300-normal.5b5f2f31962967dfc22c.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(/static/media/roboto-greek-ext-300-normal.35b9d6be04b95f0f0530.woff2) format("woff2"),url(/static/media/roboto-greek-ext-300-normal.392a45a84c081c4b412d.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(/static/media/roboto-greek-300-normal.db2632771401f61463fe.woff2) format("woff2"),url(/static/media/roboto-greek-300-normal.8ecd7085cfe9bc2c22ac.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(/static/media/roboto-vietnamese-300-normal.32fc45a3d1e8ea11fabc.woff2) format("woff2"),url(/static/media/roboto-vietnamese-300-normal.8472d69545c7409091b4.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-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(/static/media/roboto-latin-ext-300-normal.dc7dcec8e3f654e0ed63.woff2) format("woff2"),url(/static/media/roboto-latin-ext-300-normal.182712ab85f1472cdb2f.woff) format("woff");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,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-display:swap;font-family:Roboto;font-style:normal;font-weight:300;src:url(/static/media/roboto-latin-300-normal.c48fb6765a9fcb00b330.woff2) format("woff2"),url(/static/media/roboto-latin-300-normal.0515ab82dae6923cab85.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(/static/media/roboto-cyrillic-ext-400-normal.804378952da8a10faae2.woff2) format("woff2"),url(/static/media/roboto-cyrillic-ext-400-normal.af4d91666ea345601bea.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(/static/media/roboto-cyrillic-400-normal.71a33b6b50457b2c903a.woff2) format("woff2"),url(/static/media/roboto-cyrillic-400-normal.c1d66054fe23e181d92c.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(/static/media/roboto-greek-ext-400-normal.169619821ea93019d1bb.woff2) format("woff2"),url(/static/media/roboto-greek-ext-400-normal.f708607d2a7290fb8bfa.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(/static/media/roboto-greek-400-normal.c35e4c3958e209d17b31.woff2) format("woff2"),url(/static/media/roboto-greek-400-normal.dfdff8fa12eac629d29f.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(/static/media/roboto-vietnamese-400-normal.3230f9b040f3c630e0c3.woff2) format("woff2"),url(/static/media/roboto-vietnamese-400-normal.e0e8ba725ebd107367a8.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-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(/static/media/roboto-latin-ext-400-normal.861b791f9de857a6e7bc.woff2) format("woff2"),url(/static/media/roboto-latin-ext-400-normal.e757c42df6aaa3e11b62.woff) format("woff");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,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-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(/static/media/roboto-latin-400-normal.b009a76ad6afe4ebd301.woff2) format("woff2"),url(/static/media/roboto-latin-400-normal.3f2b9a42f643e62a49b7.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(/static/media/roboto-cyrillic-ext-500-normal.62ced72e5832f02c2796.woff2) format("woff2"),url(/static/media/roboto-cyrillic-ext-500-normal.268f264f58eba5c07c88.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(/static/media/roboto-cyrillic-500-normal.cad7d3d9cb265e334e58.woff2) format("woff2"),url(/static/media/roboto-cyrillic-500-normal.965aebef74db72eaf236.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(/static/media/roboto-greek-ext-500-normal.6fb9cffb1d3e72bf9293.woff2) format("woff2"),url(/static/media/roboto-greek-ext-500-normal.eaa367bbd0b333a7f80b.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(/static/media/roboto-greek-500-normal.9ac81fefbe6c319ea40b.woff2) format("woff2"),url(/static/media/roboto-greek-500-normal.1a05a4887ccb810cb4dd.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(/static/media/roboto-vietnamese-500-normal.d8642a3d1d4ef6179644.woff2) format("woff2"),url(/static/media/roboto-vietnamese-500-normal.657896dad292ee9a0a0a.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-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(/static/media/roboto-latin-ext-500-normal.9165081d10e1ba601384.woff2) format("woff2"),url(/static/media/roboto-latin-ext-500-normal.252057e589a0379208ed.woff) format("woff");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,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-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(/static/media/roboto-latin-500-normal.f25d774ecfe0996f8eb5.woff2) format("woff2"),url(/static/media/roboto-latin-500-normal.1f075502d0094a398e21.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(/static/media/roboto-cyrillic-ext-700-normal.be4d02458ce53887dc37.woff2) format("woff2"),url(/static/media/roboto-cyrillic-ext-700-normal.198a421f279162d59143.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(/static/media/roboto-cyrillic-700-normal.d010f1f324e111a22e53.woff2) format("woff2"),url(/static/media/roboto-cyrillic-700-normal.f8a034d72aa6828199d4.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(/static/media/roboto-greek-ext-700-normal.bd9854c751441ccc1a70.woff2) format("woff2"),url(/static/media/roboto-greek-ext-700-normal.249853776d22a271b2b5.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(/static/media/roboto-greek-700-normal.50e795c1345353b0e996.woff2) format("woff2"),url(/static/media/roboto-greek-700-normal.a84892c56152037b3552.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(/static/media/roboto-vietnamese-700-normal.3425a701027d0699e369.woff2) format("woff2"),url(/static/media/roboto-vietnamese-700-normal.4df79f684fcbca8386bd.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-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(/static/media/roboto-latin-ext-700-normal.ed67ad54b1a8f5d21150.woff2) format("woff2"),url(/static/media/roboto-latin-ext-700-normal.c1cc6d6fc851b3a2f79d.woff) format("woff");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,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-display:swap;font-family:Roboto;font-style:normal;font-weight:700;src:url(/static/media/roboto-latin-700-normal.227c93190fe7f82de3f8.woff2) format("woff2"),url(/static/media/roboto-latin-700-normal.666d7a2f9db53cf52e2d.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}