.editor{display:flex;flex-direction:column;height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e);color:#fff;font-family:Inter,system-ui,sans-serif}.editor-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;background:#0000004d;border-bottom:1px solid rgba(255,255,255,.1)}.editor-header h1{margin:0;font-size:1.25rem;font-weight:600}.header-actions{display:flex;gap:.5rem;align-items:center}.btn{padding:.5rem .75rem;border:none;border-radius:8px;cursor:pointer;font-size:.875rem;transition:all .2s;display:flex;align-items:center;gap:.25rem}.btn-secondary{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.15)}.btn-secondary:hover{background:#fff3;transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,#00d9ff,#09f);color:#fff;font-weight:600;box-shadow:0 4px 15px #00d9ff4d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00d9ff66}.view-btn{padding:.5rem 1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-decoration:none;border-radius:8px;font-weight:500;font-size:.875rem}.view-btn:hover{transform:translateY(-1px);box-shadow:0 4px 15px #667eea66}.editor-layout{display:flex;flex:1;overflow:hidden}.sidebar{width:320px;background:#0003;border-right:1px solid rgba(255,255,255,.08);overflow-y:auto;display:flex;flex-direction:column}.canvas-container{flex:1;position:relative}.tabs{display:flex;border-bottom:1px solid rgba(255,255,255,.1)}.tab{flex:1;padding:.875rem;background:transparent;border:none;color:#888;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s}.tab:hover{color:#fff;background:#ffffff0d}.tab.active{color:#00d9ff;background:#00d9ff1a;border-bottom:2px solid #00d9ff}.mode-buttons{display:flex;gap:.5rem}.mode-btn{flex:1;padding:.625rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#aaa;cursor:pointer;font-size:.75rem;transition:all .2s}.mode-btn:hover{background:#ffffff1a;color:#fff}.mode-btn.active{background:#00d9ff33;border-color:#00d9ff;color:#00d9ff}.panel{padding:1rem;border-bottom:1px solid rgba(255,255,255,.08)}.panel h2{margin:0 0 .75rem;font-size:.875rem;color:#fff;font-weight:600}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.panel-header h2{margin:0}.btn-add{padding:.375rem .75rem;background:#00d9ff33;border:1px solid rgba(0,217,255,.3);border-radius:6px;color:#00d9ff;cursor:pointer;font-size:.75rem;font-weight:600}.btn-add:hover{background:#00d9ff4d}.model-list{list-style:none;margin:0;padding:0}.model-item{padding:.625rem .75rem;margin-bottom:.25rem;background:#ffffff08;border-radius:8px;cursor:pointer;transition:all .15s}.model-item:hover{background:#ffffff14}.model-item.selected{background:#00d9ff26;border:1px solid rgba(0,217,255,.3)}.model-item label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem}.model-item input[type=checkbox]{accent-color:#00d9ff}.light-item{background:#ffffff08;border-radius:8px;padding:.75rem;margin-bottom:.5rem;transition:all .15s}.light-item:hover{background:#ffffff14}.light-item.selected{background:#00d9ff26;border:1px solid rgba(0,217,255,.3)}.light-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.light-name{background:transparent;border:none;color:#fff;font-size:.875rem;font-weight:500;width:120px}.light-name:focus{outline:none;border-bottom:1px solid #00d9ff}.btn-delete{background:transparent;border:none;cursor:pointer;padding:.25rem;opacity:.5;font-size:.875rem}.btn-delete:hover{opacity:1}.light-controls{padding-top:.5rem;border-top:1px solid rgba(255,255,255,.05)}.control-group{margin-bottom:1rem}.control-group h3{margin:0 0 .5rem;font-size:.75rem;color:#888;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.toggle-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem;color:#fff}.toggle-label input[type=checkbox]{width:14px;height:14px;accent-color:#00d9ff}.control-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.375rem}.control-row label{width:60px;font-size:.75rem;color:#888;flex-shrink:0}.control-row input[type=range]{flex:1;height:4px;accent-color:#00d9ff;background:#ffffff1a;border-radius:2px}.control-row input[type=color]{width:32px;height:24px;border:none;border-radius:4px;cursor:pointer;background:transparent}.number-input{width:55px;padding:.25rem .375rem;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:#fff;font-size:.75rem;text-align:center}.number-input:focus{outline:none;border-color:#00d9ff}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:#0003}.sidebar::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.sidebar::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.speech-bubble-container{position:absolute;top:28%;left:58%;z-index:100;pointer-events:auto}.speech-bubble{position:relative;background:linear-gradient(135deg,#b4dcf040,#c8ebff26,#aad2eb33);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:2px solid rgba(255,255,255,.6);border-radius:20px 20px 20px 4px;padding:16px 22px;min-width:180px;max-width:420px;box-shadow:0 4px 24px #64b4dc4d,0 0 60px #96dcff26,inset 0 1px 1px #fff6,inset 0 -1px 1px #96c8e61a;animation:bubbleIn .5s cubic-bezier(.34,1.56,.64,1) forwards}.speech-bubble-content p{margin:0;font-family:Bahnschrift,Trebuchet MS,Segoe UI,sans-serif;font-size:15px;font-weight:500;color:#fff;line-height:1.45;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.15),0 0 20px rgba(255,255,255,.1);letter-spacing:.3px}.cursor{opacity:0;margin-left:2px;font-weight:300;color:#fffc}.cursor.blink{animation:blink .6s infinite}.speech-back-btn{position:absolute;top:8px;left:10px;width:28px;height:28px;border:1.5px solid rgba(255,255,255,.4);border-radius:50%;background:#ffffff1a;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fffc;font-size:1rem;font-weight:400;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:5;padding:0}.speech-back-btn:hover{background:#fff3;border-color:#fff9;color:#fff;transform:scale(1.1)}.speech-back-btn:active{transform:scale(.95)}@keyframes bubbleIn{0%{opacity:0;transform:scale(.4) translateY(30px)}60%{transform:scale(1.05) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.speech-bubble:hover{background:linear-gradient(135deg,#bee6fa4d,#d2f0ff33,#b4dcf540);border-color:#ffffffbf;cursor:pointer;transform:scale(1.02);transition:all .2s ease}.speech-bubble.closing{animation:bubbleOut .3s ease-in forwards}@keyframes bubbleOut{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.6) translateY(20px)}}.speech-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.15);justify-content:center}.speech-option-btn{padding:8px 16px;background:#ffffff1a;border:1.5px solid rgba(255,255,255,.35);border-radius:20px;color:#fff;font-family:Bahnschrift,Trebuchet MS,Segoe UI,sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #0000001a;white-space:nowrap;opacity:0;transform:translateY(6px);animation:optionIn .35s ease forwards}.speech-option-btn:hover{background:#ffffff38;border-color:#ffffffa6;transform:translateY(-1px);box-shadow:0 4px 12px #64b4dc40}.speech-option-btn:active{transform:translateY(0) scale(.98);transition-duration:.1s}@keyframes optionIn{to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.speech-bubble-container{top:12%;bottom:auto;left:50%;transform:translate(-50%);width:90vw;max-width:360px;display:flex;flex-direction:column;align-items:center;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);z-index:150}.speech-bubble{min-width:0;max-width:100%;width:100%;padding:14px 16px;border-radius:16px;box-sizing:border-box;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.speech-bubble-content p{font-size:14px;line-height:1.35}.speech-options{gap:6px;margin-top:10px;padding-top:10px}.speech-option-btn{padding:7px 12px;font-size:12px;border-radius:16px}}@media(max-width:400px){.speech-bubble-container{width:94vw;top:10%;bottom:auto}.speech-bubble-content p{font-size:15px}}.speech-bubble-content{min-height:2.1em}.loading-screen{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000;z-index:9999;color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:Inter,sans-serif;transition:transform 1.5s cubic-bezier(.77,0,.175,1);overflow:hidden}.loading-screen.melting{transform:translateY(100%)}.loading-screen.loading-lite .fluid-blob{animation-duration:30s!important}.loading-screen.loading-lite .gallery-item{transition:none!important}.loading-screen.loading-lite .enter-aura,.loading-screen.loading-lite .enter-sheen{animation:none!important}.css-fluid-bg{position:absolute;inset:0;z-index:0;overflow:hidden;background:radial-gradient(ellipse at 20% 50%,#0a0a1a,#000);transition:opacity 1.5s ease-out}.css-fluid-bg--hidden{opacity:0;pointer-events:none}.enter-btn{position:relative;border:none;background:#060a128c;padding:16px 42px;cursor:pointer;text-transform:uppercase;letter-spacing:6px;font-weight:500;font-size:.78rem;font-family:Share Tech Mono,JetBrains Mono,Courier New,monospace;color:#a8fffb;border-radius:10px;box-shadow:0 0 0 1px #00fff42e,0 0 16px #00fff414,inset 0 0 24px #00fff414;transition:transform .35s ease,box-shadow .35s ease,color .35s ease;isolation:isolate;overflow:hidden}.enter-btn--neon .enter-label{position:relative;z-index:2;text-shadow:0 0 6px rgba(0,255,244,.7),0 0 16px rgba(0,255,244,.45),0 0 36px rgba(0,140,255,.35)}.enter-aura{position:absolute;inset:-50% -20%;background:radial-gradient(circle at 30% 30%,rgba(0,255,244,.22),transparent 60%),radial-gradient(circle at 70% 70%,rgba(0,140,255,.18),transparent 55%);filter:blur(18px);opacity:.6;z-index:0;animation:auraPulse 4s ease-in-out infinite}.enter-sheen{position:absolute;inset:0;background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.12) 45%,transparent 60%);transform:translate(-130%);animation:sheenSweep 3.5s ease-in-out infinite;z-index:1;mix-blend-mode:screen}.enter-line{position:absolute;background:linear-gradient(90deg,transparent,rgba(0,255,244,.95),transparent);opacity:.9;z-index:1;filter:drop-shadow(0 0 10px rgba(0,255,244,.75))}.enter-line--top,.enter-line--bottom{height:2px;left:10px;right:10px;transform:scaleX(0);transform-origin:left;animation:lineDrawX .65s ease forwards,lineGlow 2.2s .7s ease-in-out infinite}.enter-line--top{top:10px}.enter-line--bottom{bottom:10px;animation-delay:.35s,.95s}.enter-line--left,.enter-line--right{width:2px;top:10px;bottom:10px;background:linear-gradient(180deg,transparent,rgba(0,255,244,.95),transparent);transform:scaleY(0);transform-origin:top;animation:lineDrawY .65s ease forwards,lineGlow 2.2s .8s ease-in-out infinite}.enter-line--left{left:10px;animation-delay:.15s,.9s}.enter-line--right{right:10px;animation-delay:.5s,1.05s}.enter-btn:hover{transform:translateY(-2px) scale(1.02);color:#e6fffe;box-shadow:0 0 0 1px #00fff473,0 0 26px #00fff440,inset 0 0 35px #00fff433}.enter-btn:active{transform:translateY(1px) scale(.98)}.cv-btn{position:relative;border:1px solid rgba(0,255,244,.3);background:#060a1266;padding:10px 24px;cursor:pointer;text-transform:uppercase;text-decoration:none;letter-spacing:4px;font-weight:400;font-size:.65rem;font-family:Share Tech Mono,JetBrains Mono,Courier New,monospace;color:#8ce8e4;border-radius:8px;transition:all .3s ease;display:inline-block;text-align:center}.cv-btn:hover{background:#00fff41a;color:#fff;border-color:#00fff499;box-shadow:0 0 12px #00fff433;transform:translateY(-2px)}.cv-btn:active{transform:translateY(1px)}@keyframes lineDrawX{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes lineDrawY{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes lineGlow{0%,to{opacity:.65}50%{opacity:1}}@keyframes auraPulse{0%,to{opacity:.45;transform:scale(.92)}50%{opacity:.8;transform:scale(1.04)}}@keyframes sheenSweep{0%{transform:translate(-130%);opacity:0}40%{opacity:.5}70%{opacity:.9}to{transform:translate(130%);opacity:0}}); filter: blur(14px); animation: blobMorph2 6s ease-in-out infinite,blobRotate 10s linear infinite reverse; } .enter-blob--inner{inset:24px;background:conic-gradient(from 240deg,#00dcf066,#a000ff59,#0064dc4d 180deg,#00dcf066 360deg);filter:blur(8px);animation:blobMorph3 5s ease-in-out infinite,blobRotate 8s linear infinite}.enter-core{position:relative;width:80px;height:80px;border-radius:50%;background:#080818b3;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;z-index:3;transition:transform .5s cubic-bezier(.34,1.56,.64,1),border-color .5s ease,box-shadow .5s ease;animation:coreMorph 7s ease-in-out infinite,corePulse 4s ease-in-out infinite}.enter-core:before{content:"";position:absolute;inset:-1px;border-radius:inherit;background:conic-gradient(from 0deg,transparent 0deg,rgba(0,200,220,.3) 30deg,transparent 60deg,transparent 180deg,rgba(160,60,255,.2) 210deg,transparent 240deg);animation:blobRotate 6s linear infinite;-webkit-mask:radial-gradient(transparent 58%,black 60%);mask:radial-gradient(transparent 58%,black 60%)}.enter-core-icon{width:26px;height:26px;color:#ffffffe6;z-index:4;transition:all .4s cubic-bezier(.34,1.56,.64,1);filter:drop-shadow(0 0 10px rgba(0,200,220,.5))}.enter-ambient{position:absolute;inset:-30px;border-radius:50%;background:radial-gradient(circle,rgba(100,0,255,.1) 0%,rgba(0,180,220,.06) 40%,transparent 70%);z-index:-1;animation:ambientPulse 5s ease-in-out infinite;pointer-events:none}.enter-label{font-size:.68rem;letter-spacing:6px;font-weight:400;text-transform:uppercase;color:#ffffff73;margin-top:18px;transition:all .4s ease;font-family:Courier New,monospace}.enter-btn:hover .enter-core{transform:scale(1.1);border-color:#00c8dc40;box-shadow:0 0 30px #00c8dc26,0 0 60px #7800ff14,inset 0 0 25px #00c8dc0f}.enter-btn:hover .enter-core-icon{transform:scale(1.2) translate(2px);filter:drop-shadow(0 0 16px rgba(0,220,240,.8))}.enter-btn:hover .enter-blob--outer{animation-duration:5s,8s;filter:blur(16px);opacity:1.2}.enter-btn:hover .enter-blob--mid{animation-duration:4s,6s;filter:blur(10px)}.enter-btn:hover .enter-blob--inner{animation-duration:3s,5s;filter:blur(5px)}.enter-btn:hover .enter-label{color:#fffc;letter-spacing:8px;text-shadow:0 0 20px rgba(0,200,220,.4)}.enter-btn:active .enter-core{transform:scale(.92)}.enter-btn:active .enter-blob--outer,.enter-btn:active .enter-blob--mid,.enter-btn:active .enter-blob--inner{filter:blur(25px);opacity:.6}@keyframes blobMorph1{0%{border-radius:40% 60% 55% 45%/55% 40% 60% 45%}20%{border-radius:55% 45% 40% 60%/45% 55% 50% 50%}40%{border-radius:48% 52% 62% 38%/58% 42% 48% 52%}60%{border-radius:60% 40% 45% 55%/42% 58% 55% 45%}80%{border-radius:45% 55% 58% 42%/52% 48% 42% 58%}to{border-radius:40% 60% 55% 45%/55% 40% 60% 45%}}@keyframes blobMorph2{0%{border-radius:50% 50% 45% 55%/60% 40% 55% 45%}25%{border-radius:42% 58% 55% 45%/48% 52% 45% 55%}50%{border-radius:58% 42% 48% 52%/45% 55% 60% 40%}75%{border-radius:45% 55% 60% 40%/55% 45% 42% 58%}to{border-radius:50% 50% 45% 55%/60% 40% 55% 45%}}@keyframes blobMorph3{0%{border-radius:55% 45% 50% 50%/48% 52% 55% 45%}33%{border-radius:45% 55% 42% 58%/55% 45% 48% 52%}66%{border-radius:52% 48% 58% 42%/42% 58% 50% 50%}to{border-radius:55% 45% 50% 50%/48% 52% 55% 45%}}@keyframes blobRotate{to{transform:rotate(360deg)}}@keyframes coreMorph{0%{border-radius:50%}10%{border-radius:46% 54% 52% 48%/52% 48% 54% 46%}20%{border-radius:42% 58% 54% 46%/55% 45% 48% 52%}30%{border-radius:48% 52% 58% 42%/46% 54% 52% 48%}40%{border-radius:54% 46% 44% 56%/50% 50% 56% 44%}50%{border-radius:50% 50% 46% 54%/56% 44% 50% 50%}60%{border-radius:44% 56% 52% 48%/48% 52% 44% 56%}70%{border-radius:52% 48% 56% 44%/44% 56% 50% 50%}80%{border-radius:56% 44% 48% 52%/52% 48% 46% 54%}90%{border-radius:48% 52% 50% 50%/54% 46% 52% 48%}to{border-radius:50%}}@keyframes corePulse{0%,to{box-shadow:0 0 #00c8dc00}50%{box-shadow:0 0 20px 2px #00c8dc14}}@keyframes ambientPulse{0%,to{opacity:.5;transform:scale(.92)}50%{opacity:1;transform:scale(1.06)}}.content-wrapper{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:space-between;width:100%;height:100%;padding:2rem 1.5rem;box-sizing:border-box}.top-indicator{display:flex;justify-content:center;align-items:center;min-height:80px;width:100%}.loading-text{font-size:.85rem;letter-spacing:6px;font-weight:300;color:#fff9;font-family:Share Tech Mono,JetBrains Mono,Courier New,monospace;text-transform:uppercase}.gallery-section{flex-grow:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:30px;width:100%}.gallery-container{display:flex;flex-direction:row;gap:15px;height:250px;width:100%;max-width:1000px;align-items:center;justify-content:center}.gallery-item{position:relative;height:100%;border-radius:8px;overflow:hidden;cursor:pointer;flex-shrink:1;border:1px solid rgba(255,255,255,.2);transition:border-color .3s ease}.gallery-item:hover{border-color:#fffc}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);opacity:.6;transition:opacity .3s ease}.gallery-item:hover .overlay{opacity:.2}.dynamic-text-container{height:100px;display:flex;justify-content:center;align-items:center}.dynamic-text{font-size:2.5rem;font-weight:800;text-transform:uppercase;letter-spacing:5px;color:#fff;text-shadow:0 0 20px rgba(255,255,255,.5),0 0 40px rgba(0,255,255,.5)}.dynamic-text.placeholder{font-size:1.2rem;letter-spacing:8px;font-weight:300;text-shadow:none}.footer-text{text-align:center;font-size:.8rem;opacity:.5;letter-spacing:1px;font-weight:300;font-family:monospace;margin-top:20px}.gallery-item-label{position:absolute;bottom:8px;left:0;right:0;text-align:center;font-size:.75rem;font-weight:700;letter-spacing:2px;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.8);z-index:2;text-transform:uppercase}@media(max-width:768px){.content-wrapper{padding:1rem .75rem;justify-content:center;gap:1.2rem}.top-indicator{min-height:auto;margin-bottom:0}.loading-text{font-size:.75rem;letter-spacing:3px}.enter-fluid{width:130px;height:130px}.enter-core{width:65px;height:65px}.enter-core-icon{width:20px;height:20px}.enter-label{font-size:.6rem;letter-spacing:4px;margin-top:12px}.cv-btn{padding:8px 16px;font-size:.55rem;letter-spacing:3px}.gallery-container.gallery-mobile{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:1fr 1fr;gap:8px;height:auto;max-height:55vh;width:100%;max-width:100%}.gallery-mobile .gallery-item{height:0;padding-bottom:120%;flex:none;border-radius:10px;position:relative}.gallery-mobile .gallery-item.active{border-color:#ffffffe6;box-shadow:0 0 15px #ffffff40}.gallery-section{gap:15px;flex-grow:0}.dynamic-text-container{height:auto;min-height:50px}.dynamic-text{font-size:1.4rem;letter-spacing:3px}.dynamic-text.full{font-size:1rem!important;letter-spacing:1px!important}.dynamic-text.placeholder{font-size:.9rem;letter-spacing:4px}.footer-text{font-size:.65rem;margin-top:10px}.top-indicator img{width:80px!important}}@media(max-width:400px){.gallery-mobile .gallery-item{padding-bottom:130%}.dynamic-text{font-size:1.1rem;letter-spacing:2px}}.project-popup-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:300;backdrop-filter:blur(4px)}.project-popup{position:relative;background:linear-gradient(135deg,#141432eb,#1e1e46e0);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:2px solid var(--glow-color, rgba(255, 255, 255, .3));border-radius:24px;padding:32px;max-width:480px;width:90vw;box-shadow:0 8px 40px #0006,0 0 30px color-mix(in srgb,var(--glow-color) 30%,transparent),inset 0 1px 1px #ffffff1a;transform:translateY(30px) scale(.95);opacity:0;transition:all .4s cubic-bezier(.34,1.56,.64,1)}.project-popup.visible{transform:translateY(0) scale(1);opacity:1}.project-popup-header{margin-bottom:16px}.project-popup-heading{display:flex;align-items:center;gap:12px;min-width:0}.project-popup-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0}.project-popup-header h2{margin:0;font-size:1.3rem;font-weight:600;color:#fff;line-height:1.3;overflow-wrap:anywhere}.project-popup-close{margin-left:10px;z-index:2}.project-popup-desc{color:#ffffffbf;font-size:.95rem;line-height:1.6;margin:0 0 20px}.project-popup-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.project-tag{padding:5px 12px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:20px;color:#fffc;font-size:.8rem;font-weight:500}.project-popup-links{display:flex;gap:12px}.project-link{padding:8px 18px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:12px;color:#fff;text-decoration:none;font-size:.85rem;font-weight:500;transition:all .2s ease}.project-link:hover{background:#ffffff2e;transform:translateY(-2px);box-shadow:0 4px 16px #0003}@media(max-width:768px){.project-popup{padding:22px 16px 18px;max-width:95vw;border-radius:20px}.project-popup-header{margin-bottom:12px}.project-popup-header h2{font-size:1.1rem}.project-popup-desc{font-size:.88rem}}.project-popup.closing{transform:translateY(30px) scale(.9);opacity:0;transition:all .3s ease-in}.project-tag{transition:all .2s ease}.project-tag:hover{background:#ffffff26;border-color:var(--glow-color, rgba(255, 255, 255, .4));color:#fff;box-shadow:0 0 10px color-mix(in srgb,var(--glow-color) 30%,transparent);transform:translateY(-1px)}.project-popup-dot{animation:dotPulse 2s ease-in-out infinite}@keyframes dotPulse{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}.popup-titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px}.popup-close-btn{width:32px;height:32px;border:1.5px solid rgba(255,255,255,.32);border-radius:50%;background:#ffffff14;color:#ffffffd1;font-size:1.1rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.popup-close-btn:hover{background:#ffffff2e;border-color:#ffffff9e;color:#fff;transform:scale(1.06)}@media(max-width:768px){.popup-close-btn{width:30px;height:30px;font-size:1rem}}.terminal-popup-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:300;backdrop-filter:blur(4px);overflow-x:clip}.terminal-popup{position:relative;background:#1a1a2e;border:1px solid rgba(0,255,100,.3);border-radius:12px;max-width:640px;width:92vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 40px #00000080,0 0 40px #00ff641a;transform:translateY(20px) scale(.96);opacity:0;transition:all .35s cubic-bezier(.34,1.56,.64,1);overflow:hidden}.terminal-popup.visible{transform:translateY(0) scale(1);opacity:1}.terminal-titlebar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.08)}.terminal-dots{display:flex;align-items:center;gap:6px}.terminal-popup-close{margin-right:4px}.dot{width:12px;height:12px;border-radius:50%;cursor:pointer}.dot.red{background:#ff5f57}.dot.yellow{background:#ffbd2e}.dot.green{background:#28c840}.terminal-title{font-family:SF Mono,Cascadia Code,Fira Code,monospace;font-size:.75rem;color:#ffffff80}.terminal-content{padding:16px 20px;overflow-y:auto;flex:1;max-height:60vh}.terminal-line{font-family:SF Mono,Cascadia Code,Fira Code,Courier New,monospace;font-size:.82rem;color:#00ff64;line-height:1.55;white-space:pre}.terminal-cursor{color:#00ff64;animation:termBlink .8s infinite}@keyframes termBlink{0%,50%{opacity:1}51%,to{opacity:0}}.terminal-content::-webkit-scrollbar{width:6px}.terminal-content::-webkit-scrollbar-track{background:transparent}.terminal-content::-webkit-scrollbar-thumb{background:#00ff6433;border-radius:3px}@media(max-width:768px){.terminal-popup{max-width:96vw;max-height:75vh}.terminal-line{font-size:.68rem}.terminal-input-line,.terminal-input,.terminal-prompt{font-size:16px}.terminal-content{padding:12px 14px}.matrix-rain{display:none}}.matrix-rain{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.35;pointer-events:none;z-index:0}.terminal-scanline{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.08) 2px,rgba(0,0,0,.08) 4px);pointer-events:none;z-index:1}.terminal-titlebar,.terminal-content{position:relative;z-index:2}.terminal-line-header{color:#0cf;text-shadow:0 0 8px rgba(0,204,255,.5);font-weight:600}.terminal-line-boot{color:#39ff14;text-shadow:0 0 4px rgba(57,255,20,.4)}.terminal-line-chip{color:#fc0;text-shadow:0 0 6px rgba(255,204,0,.25)}.terminal-line-spec{color:#8fc}.terminal-input-line{display:flex;align-items:center;font-family:SF Mono,Cascadia Code,Fira Code,Courier New,monospace;font-size:.82rem;line-height:1.55}.terminal-prompt{color:#00ff64;white-space:pre}.terminal-input{background:transparent;border:none;outline:none;color:#00ff64;font-family:inherit;font-size:inherit;flex:1;caret-color:#00ff64;padding:0;line-height:inherit}.terminal-input::selection{background:#00ff644d}.terminal-line-angry{color:#f44!important;text-shadow:0 0 10px rgba(255,68,68,.6);font-weight:700}.terminal-line-pizza{color:#fa0!important;text-shadow:0 0 8px rgba(255,170,0,.4)}.terminal-popup.closing{transform:translateY(20px) scale(.92);opacity:0;transition:all .3s ease-in}.profile-popup-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:300;backdrop-filter:blur(6px)}.profile-popup{position:relative;background:linear-gradient(135deg,#b4dcf02e,#c8ebff1a,#aad2eb24);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:2px solid rgba(255,255,255,.4);border-radius:28px;padding:36px 32px;max-width:420px;width:90vw;text-align:center;box-shadow:0 8px 40px #0000004d,0 0 50px #00ffff14,inset 0 1px 1px #fff3;transform:translateY(30px) scale(.95);opacity:0;transition:all .4s cubic-bezier(.34,1.56,.64,1)}.profile-popup.visible{transform:translateY(0) scale(1);opacity:1}.profile-popup-header{margin-bottom:6px}.profile-popup-header-title{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:#ffffff9e}.profile-popup-close{position:static;margin-left:10px;z-index:2}.profile-photo-area{margin-bottom:18px}.profile-photo-placeholder{width:90px;height:90px;border-radius:50%;background:linear-gradient(135deg,#00ffff26,#c44dff26);border:2px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;margin:0 auto;font-size:2rem;box-shadow:0 0 20px #00ffff26}.profile-name{margin:0 0 6px;font-size:1.4rem;font-weight:700;color:#fff}.profile-title{margin:0 0 2px;font-size:.95rem;color:#00ffffe6;font-weight:600}.profile-subtitle{margin:0 0 14px;font-size:.82rem;color:#ffffff8c;font-weight:400}.profile-bio{font-size:.88rem;color:#ffffffb3;line-height:1.55;margin:0 0 20px;text-align:left}.profile-details{display:flex;flex-direction:column;gap:8px;margin-bottom:18px;text-align:left}.profile-detail-row{display:flex;align-items:center;gap:10px;font-size:.85rem;color:#ffffffbf}.detail-icon{font-size:1rem;flex-shrink:0}.detail-link{display:flex;align-items:center;gap:10px;color:#ffffffbf;text-decoration:none;transition:color .2s ease}.detail-link:hover{color:#0ff}.profile-languages{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.lang-badge{padding:5px 12px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:20px;font-size:.78rem;color:#ffffffbf}@media(max-width:768px){.profile-popup{padding:24px 18px 20px;max-width:94vw}.profile-name{font-size:1.2rem}.profile-bio{font-size:.82rem}.profile-detail-row{font-size:.8rem}}.profile-popup.closing{transform:translateY(30px) scale(.9);opacity:0;transition:all .3s ease-in}.profile-photo-placeholder{animation:photoPulse 3s ease-in-out infinite}@keyframes photoPulse{0%,to{box-shadow:0 0 20px #00ffff26}50%{box-shadow:0 0 35px #00ffff59,0 0 60px #c44dff26}}.detail-link:hover{color:#0ff;text-shadow:0 0 10px rgba(0,255,255,.4)}.lang-badge{transition:all .2s ease;cursor:default}.lang-badge:hover{background:#ffffff26;border-color:#0ff6;transform:translateY(-2px);box-shadow:0 4px 12px #0003}.profile-name{background:linear-gradient(90deg,#fff,#0ff,#fff);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:nameShimmer 4s ease-in-out infinite}@keyframes nameShimmer{0%,to{background-position:0% 50%;-webkit-text-fill-color:#fff}50%{background-position:100% 50%;-webkit-text-fill-color:transparent}}.chat-avatar-trigger{position:fixed;right:.4rem;bottom:.15rem;z-index:322;width:290px;height:290px;border:none;background:transparent;padding:0;cursor:pointer;display:flex;align-items:flex-end;justify-content:flex-end;filter:drop-shadow(0 14px 26px rgba(0,16,42,.52));transition:transform .2s ease,filter .25s ease}.chat-avatar-trigger.is-open{pointer-events:none;opacity:1;visibility:visible;transform:translateY(0) scale(.96)}.chat-avatar-trigger:hover{transform:translateY(-3px) scale(1.01);filter:drop-shadow(0 18px 34px rgba(0,19,52,.6))}.chat-avatar{width:100%;height:auto;display:block;user-select:none;pointer-events:none;image-rendering:auto;backface-visibility:hidden;transform:translateZ(0);transition:transform .16s ease}.chat-avatar.is-speaking{animation:avatarTalk .22s ease-in-out infinite alternate}@keyframes avatarTalk{0%{transform:translateY(0)}to{transform:translateY(-2px)}}.chat-panel{position:fixed;right:1.5rem;bottom:5rem;width:min(420px,calc(100vw - 1.6rem));height:min(560px,calc(100vh - 8rem));z-index:360;display:flex;flex-direction:column;border-radius:16px;border:1px solid rgba(116,225,255,.5);background:radial-gradient(circle at 8% 0%,rgba(72,185,255,.22),transparent 42%),radial-gradient(circle at 100% 100%,rgba(16,103,189,.2),transparent 48%),linear-gradient(160deg,#020f23f0,#05122af0);backdrop-filter:blur(7px);box-shadow:0 24px 58px #03132a99,inset 0 0 18px #39abf733;animation:chatPanelIn .26s ease-out}.chat-panel.is-open{right:8.35rem}@keyframes chatPanelIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.chat-header{display:flex;justify-content:space-between;align-items:flex-start;padding:.9rem .95rem .75rem;border-bottom:1px solid rgba(140,222,255,.25)}.chat-kicker{margin:0;font-size:.62rem;letter-spacing:.16em;color:#99e4ffd1}.chat-header h3{margin:.28rem 0 0;font-size:1rem;letter-spacing:.02em;color:#e8f7ff}.chat-close{border:1px solid rgba(174,232,255,.45);background:#071f3ab3;color:#d5f2ff;border-radius:999px;width:30px;height:30px;cursor:pointer}.chat-messages{flex:1;overflow-y:auto;padding:.9rem .95rem;display:flex;flex-direction:column;gap:.62rem}.chat-message{border-radius:12px;padding:.58rem .65rem;border:1px solid transparent;font-size:.84rem;line-height:1.42}.chat-message p{margin:.3rem 0 0;white-space:pre-wrap}.chat-message.assistant{background:#10385c80;border-color:#7ed8ff40;color:#dbf5ff}.chat-message.user{margin-left:1.2rem;background:#117daf52;border-color:#82e0ff61;color:#e8fbff}.chat-message.loading{opacity:.92}.chat-role{font-size:.62rem;letter-spacing:.12em;color:#a7e7ffd9}.chat-input-row{border-top:1px solid rgba(142,226,255,.25);padding:.72rem;display:grid;grid-template-columns:1fr auto;gap:.58rem}.chat-input-row textarea{resize:none;border-radius:10px;border:1px solid rgba(127,216,255,.45);background:#08223dcc;color:#dff7ff;padding:.55rem .6rem;font-family:Consolas,Courier New,monospace;font-size:.82rem;outline:none}.chat-input-row textarea::placeholder{color:#b6e5f99e}.chat-input-row button{min-width:78px;border-radius:10px;border:1px solid rgba(145,226,255,.5);background:linear-gradient(150deg,#1281b2b8,#085388cc);color:#e6f8ff;font-size:.79rem;font-weight:700;letter-spacing:.04em;cursor:pointer}.chat-input-row button:disabled{cursor:not-allowed;opacity:.45}.chat-messages::-webkit-scrollbar{width:7px}.chat-messages::-webkit-scrollbar-thumb{background:#6fccf366;border-radius:8px}@media(max-width:768px){.chat-avatar-trigger{right:-.6rem;bottom:-.2rem;width:210px;height:210px}.chat-panel{right:.85rem;bottom:4.85rem;width:calc(100vw - 1.7rem);height:min(520px,calc(100vh - 7.6rem))}.chat-panel.is-open{right:1.15rem;bottom:6.35rem}.chat-input-row textarea{font-size:16px}}.viewer{width:100vw;height:100vh;display:flex;flex-direction:column;background:#0a0a1a;color:#fff;font-family:Bahnschrift,Trebuchet MS,system-ui,sans-serif}.story-panel{position:absolute;top:1.2rem;left:1.2rem;z-index:140;width:min(380px,calc(100vw - 2.4rem));border:1px solid rgba(255,255,255,.2);border-radius:18px;padding:.95rem 1rem;background:radial-gradient(circle at 0% 0%,rgba(255,196,120,.22),transparent 50%),radial-gradient(circle at 100% 100%,rgba(84,200,255,.18),transparent 45%),linear-gradient(140deg,#101424d9,#070a14d9);backdrop-filter:blur(8px);box-shadow:0 14px 38px #00000059;animation:storyPanelIn .5s ease}.story-panel-close{position:absolute;top:.45rem;right:.45rem;width:28px;height:28px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:#ffffff14;color:#ffffffe6;font-size:1rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .2s ease,background .2s ease,border-color .2s ease}.story-panel-close:hover{transform:scale(1.06);background:#ffffff2e;border-color:#ffffff8f}.story-panel-kicker{margin:0;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#ffe0a0e6}.story-panel h2{margin:.25rem 0 0;font-size:1.1rem;letter-spacing:.02em;color:#fff}.story-panel-subtitle{margin:.45rem 0 0;font-size:.82rem;line-height:1.38;color:#e0efffd9}.story-panel-actions{margin-top:.72rem;display:flex;flex-wrap:wrap;gap:.42rem}.story-chip{border:1px solid rgba(255,255,255,.3);border-radius:999px;background:#ffffff1a;color:#f4f8ff;font-size:.72rem;padding:.35rem .72rem;cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease}.story-chip:hover{transform:translateY(-1px);border-color:#fff0c8b3;background:#ffffff2e}@keyframes storyPanelIn{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.viewer-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:linear-gradient(135deg,#1a1a3ef2,#2d2d5af2);backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.08);position:absolute;top:0;left:0;right:0;z-index:100}.viewer-header h1{margin:0;font-size:1.75rem;font-weight:700;background:linear-gradient(135deg,#ff6b9d,#c44dff,#00d9ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 0 30px rgba(196,77,255,.3)}.edit-btn{padding:.6rem 1.25rem;background:linear-gradient(135deg,#ffffff1a,#ffffff0d);color:#fff;text-decoration:none;border-radius:25px;font-weight:500;font-size:.9rem;transition:all .3s ease;border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(10px)}.edit-btn:hover{background:linear-gradient(135deg,#ffffff26,#ffffff1a);transform:translateY(-2px);box-shadow:0 5px 20px #0000004d}.viewer-canvas{flex:1;width:100%}.viewer-footer{position:absolute;bottom:0;left:0;right:0;text-align:center;padding:1rem;background:linear-gradient(to top,rgba(0,0,0,.6) 0%,transparent 100%);pointer-events:none;contain:layout style}.viewer-footer p{margin:0;font-size:.85rem;color:#ffffff80;letter-spacing:1px}.viewer-hint{position:absolute;bottom:3.5rem;left:50%;transform:translate(-50%);pointer-events:none;z-index:50;animation:hintFadeInOut 6s ease-in-out forwards;contain:layout style}.viewer-hint p{margin:0;font-size:.82rem;color:#ffffff73;letter-spacing:.5px;text-align:center;white-space:nowrap}@keyframes hintFadeInOut{0%{opacity:0}15%{opacity:1}80%{opacity:1}to{opacity:0}}.viewer.loading{display:flex;align-items:center;justify-content:center}.loader{text-align:center}.spinner{width:50px;height:50px;border:3px solid rgba(255,255,255,.1);border-top-color:#00d9ff;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(360deg)}}.loader p{color:#fff9;font-size:.9rem}.close-btn{position:absolute;top:1.2rem;right:1.5rem;z-index:200;width:40px;height:40px;border:1.5px solid rgba(255,255,255,.4);border-radius:50%;background:#ffffff1a;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fffc;font-size:1.4rem;font-weight:300;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s ease;box-shadow:0 2px 12px #00000026;animation:closeBtn-fadeIn .4s ease forwards}.close-btn:hover{background:#fff3;border-color:#fff9;color:#fff;transform:scale(1.1);box-shadow:0 4px 20px #64b4dc4d}.close-btn:active{transform:scale(.95);transition-duration:.1s}@keyframes closeBtn-fadeIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@media(max-width:768px){.story-panel{top:.6rem;bottom:auto;left:50%;transform:translate(-50%);width:min(430px,calc(100vw - 1.2rem));padding:.8rem .85rem}.story-panel h2{font-size:1rem}.story-panel-subtitle{font-size:.76rem}}*{margin:0;padding:0;box-sizing:border-box}html.cursor-pointer,html.cursor-pointer *{cursor:pointer!important}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
