*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --font-display:'Electrolize',sans-serif;
  --font-body:'Oxanium',sans-serif;
  --font-mono:'Share Tech Mono',monospace;
  --void-black:#000;
  --panel-dark:#0a0b0d;
  --panel-mid:#14161a;
  --panel-light:#1e2126;
  --panel-border:#2a2d33;
  --inst-green:#3d8c40;
  --inst-amber:#c9a227;
  --inst-red:#8b2f2f;
  --inst-blue:#4a7c9b;
  --inst-cyan:#5ba3b8;
  --screen-glow:rgba(90,163,184,0.15);
  --tatooine-sand:#d4a853;
  --tatooine-dune:#b8862b;
  --tatooine-rock:#8b6914;
  --tatooine-sky:#e8c170;
  --tatooine-shadow:#5a3a0a;
  --tatooine-accent:#f0d080;
--naboo-green:#4a8c5a;
  --naboo-water:#2a7a9a;
  --naboo-meadow:#6aaa6a;
  --naboo-sky:#5aaaca;
  --naboo-palace:#c8a060;
  --naboo-accent:#70c890;
  --mustafar-lava:#e84020;
  --mustafar-magma:#ff6030;
  --mustafar-ember:#ff9040;
  --mustafar-rock:#2a1a10;
  --mustafar-crust:#4a2a18;
  --mustafar-accent:#ff5020;
  --ds-hull:#6a6a70;
  --ds-panel:#4a4a50;
  --ds-trench:#2a2a30;
  --ds-light:#8a8a90;
  --ds-laser:#40cc40;
  --ds-accent:#80ff80;
}

html,body{width:100%;height:100%;overflow:hidden;background:var(--void-black);font-family:var(--font-body);color:#e0e0e0}
#app{width:100%;height:100%;position:relative}
#starfield{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0}

/* Cockpit Scene */
#cockpit-scene{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;transition:opacity 0.8s ease}
#cockpit-scene.hidden{opacity:0;pointer-events:none}
.cockpit-viewport{flex:1;position:relative;display:flex;align-items:center;justify-content:center}

/* Window Frame */
.window-frame{position:absolute;inset:0;pointer-events:none;z-index:5}
.frame-top{position:absolute;top:0;left:0;right:0;height:40px;background:linear-gradient(180deg,var(--panel-dark) 0%,var(--panel-mid) 100%);border-bottom:1px solid var(--panel-border)}
.frame-side{position:absolute;top:40px;bottom:0;width:30px;background:var(--panel-dark)}
.frame-side.left{left:0;border-right:1px solid var(--panel-border)}
.frame-side.right{right:0;border-left:1px solid var(--panel-border)}
.glass-reflection{position:absolute;inset:40px 30px 0 30px;background:linear-gradient(135deg,rgba(255,255,255,0.02) 0%,transparent 40%,transparent 60%,rgba(255,255,255,0.01) 100%);pointer-events:none;z-index:6}

/* Welcome Content */
.welcome-content{text-align:center;z-index:4;padding-bottom:100px}
.welcome-label{font-family:var(--font-mono);font-size:20px;letter-spacing:0.5em;color:rgb(0, 217, 255);opacity:1;margin-bottom:20px}
.welcome-label-dos{font-family:var(--font-mono);font-size:20px;letter-spacing:0.5em;color:rgb(255, 8, 0);opacity:1;margin-bottom:20px}
.welcome-name{font-family:var(--font-display);font-size:clamp(4rem,10vw,8rem);font-weight:400;letter-spacing:0.15em;color:#fff;text-shadow:0 0 60px rgba(255,255,255,0.1)}
.welcome-title{font-family:var(--font-mono);font-size:20px;letter-spacing:0.4em;color:rgb(255, 242, 0);opacity:1;margin-top:16px}

/* Dashboard */
.cockpit-dashboard{height:320px;background:var(--panel-dark);border-top:2px solid var(--panel-border);display:grid;grid-template-columns:1fr 200px 1fr;gap:0;position:relative;z-index:10}
.dash-section{padding:20px;display:flex;gap:16px}
.dash-section.left{justify-content:flex-end}
.dash-section.center{background:var(--panel-mid);border-left:1px solid var(--panel-border);border-right:1px solid var(--panel-border);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}
.dash-section.right{justify-content:flex-start}

/* Instrument Panels */
.instrument-panel{background:var(--panel-mid);border:1px solid var(--panel-border);border-radius:4px;overflow:hidden}
.panel-header{background:var(--panel-light);padding:6px 12px;border-bottom:1px solid var(--panel-border);font-family:var(--font-mono);font-size:9px;letter-spacing:0.15em;color:rgba(255,255,255,0.5);text-transform:uppercase}
.panel-content{padding:12px}

/* Monitor */
.monitor-panel{width:280px;height:100%}
.monitor-screen{background:#000;border:3px solid #1a1a1a;border-radius:2px;aspect-ratio:16/9;position:relative;overflow:hidden;box-shadow:inset 0 0 30px rgba(0,0,0,0.8),0 0 20px var(--screen-glow)}
.monitor-screen video,.monitor-screen img{width:100%;height:100%;object-fit:cover}
.monitor-screen::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,0.1) 0px,rgba(0,0,0,0.1) 1px,transparent 1px,transparent 2px);pointer-events:none}
.monitor-label{font-family:var(--font-mono);font-size:9px;color:rgba(255,255,255,0.4);text-align:center;margin-top:8px;letter-spacing:0.1em}

/* Status Panel */
.status-panel{width:200px;height:100%}
.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.status-item{background:rgba(0,0,0,0.3);padding:10px;border-radius:2px}
.status-label{font-family:var(--font-mono);font-size:8px;color:rgba(255,255,255,0.4);letter-spacing:0.1em;margin-bottom:4px}
.status-value{font-family:var(--font-mono);font-size:14px;color:var(--inst-green)}
.status-value.nominal{color:var(--inst-green)}
.status-value.caution{color:var(--inst-amber)}
.status-value.warning{color:var(--inst-red)}

/* Throttle */
.throttle-assembly{display:flex;flex-direction:column;align-items:center;gap:12px}
.throttle-label{font-family:var(--font-mono);font-size:10px;letter-spacing:0.2em;color:rgba(255,255,255,0.5)}
.throttle-housing{width:70px;height:200px;background:linear-gradient(180deg,#0d0e10 0%,#18191c 50%,#0d0e10 100%);border:2px solid var(--panel-border);border-radius:8px;position:relative;box-shadow:inset 0 0 20px rgba(0,0,0,0.5)}
.throttle-track{position:absolute;left:50%;top:24px;bottom:24px;width:6px;transform:translateX(-50%);background:#0a0a0a;border-radius:3px}
.throttle-fill{position:absolute;bottom:0;left:0;width:100%;height:0%;background:linear-gradient(to top,var(--inst-cyan),var(--inst-green));border-radius:3px;transition:height 0.05s linear}
.throttle-markers{position:absolute;right:10px;top:24px;bottom:24px;display:flex;flex-direction:column;justify-content:space-between}
.throttle-marker{width:10px;height:1px;background:rgba(255,255,255,0.2)}
.throttle-marker.major{width:14px;background:rgba(255,255,255,0.4)}
.throttle-handle{position:absolute;left:50%;bottom:24px;transform:translate(-50%,50%);width:54px;height:32px;background:linear-gradient(180deg,#3a3d44 0%,#25272b 50%,#1a1b1e 100%);border:1px solid rgba(255,255,255,0.1);border-radius:4px;cursor:grab;z-index:5;box-shadow:0 4px 12px rgba(0,0,0,0.4);transition:box-shadow 0.2s ease}
.throttle-handle:hover{box-shadow:0 4px 20px rgba(90,163,184,0.2)}
.throttle-handle:active{cursor:grabbing}
.throttle-handle::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:24px;height:3px;background:rgba(255,255,255,0.15);border-radius:2px}
.engage-text{position:absolute;bottom:-35px;left:50%;transform:translateX(-50%);font-family:var(--font-mono);font-size:9px;letter-spacing:0.1em;color:var(--inst-amber);opacity:0;white-space:nowrap;transition:opacity 0.3s ease}
.engage-text.visible{opacity:1}

/* Navigation Panel */
.nav-panel{width:180px;height:100%}
.nav-display{background:#000;border:2px solid #1a1a1a;border-radius:2px;height:120px;position:relative;overflow:hidden}
.nav-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(74,124,155,0.1) 1px,transparent 1px),linear-gradient(90deg,rgba(74,124,155,0.1) 1px,transparent 1px);background-size:20px 20px}
.nav-center{position:absolute;top:50%;left:50%;width:8px;height:8px;background:var(--inst-cyan);transform:translate(-50%,-50%);border-radius:50%;box-shadow:0 0 10px var(--inst-cyan)}
.nav-target{position:absolute;width:6px;height:6px;background:var(--inst-amber);border-radius:50%;box-shadow:0 0 8px var(--inst-amber)}
.nav-coords{display:flex;justify-content:space-between;margin-top:8px;font-family:var(--font-mono);font-size:10px;color:rgba(255,255,255,0.5)}

/* Altitude */
.altitude-panel{width:120px}
.altitude-display{width:100px;height:100px;background:#000;border:2px solid #1a1a1a;border-radius:50%;position:relative;overflow:hidden;margin:0 auto}
.altitude-horizon{position:absolute;top:50%;left:-10%;width:120%;height:100%;background:linear-gradient(180deg,#2a4a6a 0%,#2a4a6a 49%,#8b5a2b 51%,#8b5a2b 100%);transform-origin:center top}
.altitude-marks{position:absolute;inset:0;border:2px solid rgba(255,255,255,0.2);border-radius:50%}
.altitude-marks::before{content:'';position:absolute;top:50%;left:10%;right:10%;height:2px;background:rgba(255,255,255,0.3);transform:translateY(-50%)}
.altitude-marks::after{content:'';position:absolute;left:50%;top:10%;bottom:10%;width:2px;background:rgba(255,255,255,0.3);transform:translateX(-50%)}

/* Hyperspace */
#hyperspace-overlay{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:0;transition:opacity 0.3s ease}
#hyperspace-overlay.active{opacity:1}
#hyperspace-canvas{width:100%;height:100%}

/* Space Hub */
#space-hub{position:fixed;inset:0;z-index:10;opacity:0;pointer-events:none;transition:opacity 1.5s ease;cursor:grab}
#space-hub.active{opacity:1;pointer-events:auto}
#space-hub.dragging{cursor:grabbing}

/* Nav Hint */
.nav-hint{position:fixed;bottom:50px;left:50%;transform:translateX(-50%);text-align:center;z-index:20;opacity:0;transition:opacity 0.8s ease}
.nav-hint.visible{opacity:1}
.nav-hint-main{font-family:var(--font-mono);font-size:11px;letter-spacing:0.3em;color:rgba(255,255,255,0.4)}
.nav-hint-sub{font-family:var(--font-mono);font-size:9px;letter-spacing:0.2em;color:var(--inst-cyan);margin-top:8px;opacity:0.6}

/* Content Panels Base */
.content-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(0.95);width:90%;max-width:900px;max-height:80vh;border-radius:8px;z-index:200;opacity:0;pointer-events:none;transition:all 0.4s cubic-bezier(0.4,0,0.2,1);overflow:hidden;display:flex;flex-direction:column}
.content-panel.active{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.panel-top-bar{padding:12px 20px;display:flex;justify-content:space-between;align-items:center}
.panel-top-label{font-family:var(--font-mono);font-size:10px;letter-spacing:0.2em}
.panel-close{width:28px;height:28px;background:transparent;border-radius:4px;color:rgba(255,255,255,0.5);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:all 0.2s ease}
.panel-body{padding:32px;overflow-y:auto;flex:1}
.panel-title{font-family:var(--font-display);font-size:2rem;letter-spacing:0.1em;margin-bottom:24px}

/* Tatooine Panel (Projects) */
#panel-projects{background:rgba(26,16,6,0.97);border:1px solid rgba(212,168,83,0.25)}
#panel-projects .panel-top-bar{background:rgba(42,26,10,0.9);border-bottom:1px solid rgba(212,168,83,0.2)}
#panel-projects .panel-top-label{color:var(--tatooine-sand)}
#panel-projects .panel-close{border:1px solid rgba(212,168,83,0.25)}
#panel-projects .panel-close:hover{background:rgba(212,168,83,0.15);border-color:var(--tatooine-sand);color:#fff}
#panel-projects .panel-title{color:var(--tatooine-sky)}
.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.project-card{background:rgba(42,26,10,0.6);border:1px solid rgba(212,168,83,0.15);border-radius:6px;padding:24px;transition:all 0.3s ease}
.project-card:hover{border-color:var(--tatooine-sand);transform:translateY(-4px);box-shadow:0 8px 30px rgba(212,168,83,0.1)}
.project-num{font-family:var(--font-display);font-size:2.5rem;opacity:0.1;line-height:1;color:var(--tatooine-sand)}
.project-name{font-family:var(--font-display);font-size:1.2rem;letter-spacing:0.05em;margin:12px 0;color:var(--tatooine-sky)}
.project-desc{font-size:0.95rem;line-height:1.6;opacity:0.7;margin-bottom:16px;color:#c8a870}
.project-tags{display:flex;gap:8px;flex-wrap:wrap}
.tag-tatooine{font-family:var(--font-mono);font-size:9px;padding:4px 10px;background:rgba(212,168,83,0.12);border:1px solid rgba(212,168,83,0.3);border-radius:3px;color:var(--tatooine-sand)}

/* Naboo Panel (About) */
#panel-about{background:rgba(6,18,14,0.97);border:1px solid rgba(100,200,140,0.2)}
#panel-about .panel-top-bar{background:rgba(10,30,22,0.9);border-bottom:1px solid rgba(100,200,140,0.15)}
#panel-about .panel-top-label{color:var(--naboo-accent)}
#panel-about .panel-close{border:1px solid rgba(100,200,140,0.2)}
#panel-about .panel-close:hover{background:rgba(100,200,140,0.1);border-color:var(--naboo-accent);color:#fff}
#panel-about .panel-title{color:var(--naboo-meadow)}
.about-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:40px}
.about-text p{font-size:1.1rem;line-height:1.8;opacity:0.85;margin-bottom:16px;color:#a0d8b0}
.about-text em{color:var(--naboo-accent);font-style:normal}
.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.stat-box{background:rgba(10,30,22,0.6);border:1px solid rgba(100,200,140,0.15);border-radius:4px;padding:20px;text-align:center}
.stat-num{font-family:var(--font-display);font-size:2rem;color:var(--naboo-accent)}
.stat-label{font-family:var(--font-mono);font-size:12px;letter-spacing:0.1em;color:rgba(100,200,140,0.6);margin-top:8px}
.stat-img{background-size:cover;background-position:center;position:relative;min-height:120px;overflow:hidden;border-radius:4px;padding:0}
.stat-img-label{position:absolute;bottom:0;left:0;right:0;padding:8px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.1em;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,0.7));text-align:center}

/* Mustafar Panel (Contact) */
#panel-contact{background:rgba(20,8,4,0.97);border:1px solid rgba(255,80,20,0.2)}
#panel-contact .panel-top-bar{background:rgba(40,16,8,0.9);border-bottom:1px solid rgba(255,80,20,0.2)}
#panel-contact .panel-top-label{color:var(--mustafar-ember)}
#panel-contact .panel-close{border:1px solid rgba(255,80,20,0.2)}
#panel-contact .panel-close:hover{background:rgba(255,80,20,0.15);border-color:var(--mustafar-ember);color:#fff}
#panel-contact .panel-title{color:var(--mustafar-ember)}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.contact-link{display:flex;align-items:center;gap:16px;padding:20px;background:rgba(40,16,8,0.5);border:1px solid rgba(255,80,20,0.15);border-radius:6px;text-decoration:none;color:inherit;transition:all 0.3s ease}
.contact-link:hover{border-color:var(--mustafar-magma);transform:translateX(6px);box-shadow:0 4px 25px rgba(255,80,20,0.1)}
.contact-icon{width:40px;height:40px;background:rgba(255,80,20,0.12);border-radius:6px;display:flex;align-items:center;justify-content:center}
.contact-icon svg{width:20px;height:20px;fill:var(--mustafar-ember)}
.contact-type{font-family:var(--font-mono);font-size:9px;letter-spacing:0.15em;color:rgba(255,144,64,0.5)}
.contact-value{font-size:1rem;margin-top:4px;color:#d09060}

/* Death Star Panel (Resume) */
#panel-resume{background:rgba(10,10,12,0.97);border:1px solid rgba(100,255,100,0.15)}
#panel-resume .panel-top-bar{background:rgba(18,18,22,0.9);border-bottom:1px solid rgba(100,255,100,0.12)}
#panel-resume .panel-top-label{color:var(--ds-laser)}
#panel-resume .panel-close{border:1px solid rgba(100,255,100,0.2)}
#panel-resume .panel-close:hover{background:rgba(100,255,100,0.08);border-color:var(--ds-laser);color:#fff}
#panel-resume .panel-title{color:var(--ds-light)}
.resume-center{text-align:center;padding:40px 0}
.resume-preview{background:rgba(18,18,22,0.6);border:1px solid rgba(100,255,100,0.12);border-radius:8px;padding:48px;margin:24px auto;max-width:400px}
.resume-icon{font-size:3rem;margin-bottom:16px}
.resume-filename{font-family:var(--font-mono);font-size:12px;color:rgba(100,255,100,0.4);margin-bottom:24px}
.resume-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;background:var(--ds-laser);color:#000;font-family:var(--font-display);font-size:13px;letter-spacing:0.1em;text-decoration:none;border-radius:4px;transition:all 0.3s ease}
.resume-btn:hover{background:var(--ds-accent);transform:translateY(-2px);box-shadow:0 8px 25px rgba(100,255,100,0.2)}
.resume-btn svg{width:16px;height:16px;fill:currentColor}

/* Planet Canvas & Labels */
#planet-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1}
#planet-labels{position:absolute;inset:0;z-index:2;pointer-events:none}
.planet-label{position:absolute;text-align:center;pointer-events:auto;cursor:pointer;opacity:0;transition:opacity 0.4s ease;transform:translateX(-50%)}
.planet-label:hover,.planet-label.visible{opacity:1}
.planet-label .label-name{font-family:var(--font-display);font-size:14px;letter-spacing:0.2em;color:#fff;text-shadow:0 2px 20px rgba(0,0,0,0.8)}
.planet-label .label-type{font-family:var(--font-mono);font-size:9px;letter-spacing:0.15em;margin-top:4px;opacity:0.7}
.planet-label[data-planet="tatooine"] .label-type{color:var(--tatooine-sand)}
.planet-label[data-planet="naboo"] .label-type{color:var(--naboo-accent)}
.planet-label[data-planet="mustafar"] .label-type{color:var(--mustafar-ember)}
.planet-label[data-planet="deathstar"] .label-type{color:var(--ds-laser)}

/* Responsive */
@media(max-width:900px){
  .cockpit-dashboard{grid-template-columns:1fr;height:auto}
  .dash-section.left,.dash-section.right{display:none}
  .about-grid{grid-template-columns:1fr}
  .content-panel{width:95%;max-height:85vh}
}
@media(max-width:600px){
  .welcome-name{font-size:3rem}
  .welcome-label,.welcome-title{font-size:14px;letter-spacing:0.2em}
  .panel-body{padding:20px}
  .panel-title{font-size:1.5rem}
  .projects-grid,.contact-grid{grid-template-columns:1fr}
  .about-stats{grid-template-columns:1fr}
  .stat-img{min-height:150px}
  .planet-label .label-name{font-size:12px}
  .planet-label .label-type{font-size:8px}
  .nav-hint-main{font-size:10px}
}
