/* Parshvi Gupta — Portfolio v2 */
:root{
  --bg:#07101f;
  --bg-soft:#0b1628;
  --surface:#0d1b30;
  --surface-2:#10213b;
  --text:#f4f7fb;
  --muted:#9eabc0;
  --line:rgba(255,255,255,.10);
  --accent:#78f5c5;
  --accent-2:#79a7ff;
  --accent-3:#c992ff;
  --shadow:0 30px 80px rgba(0,0,0,.28);
  --max:1240px;
}
[data-theme="light"]{
  --bg:#f5f7fb;--bg-soft:#eef2f8;--surface:#ffffff;--surface-2:#f3f6fb;
  --text:#0b1424;--muted:#5d6a7f;--line:rgba(9,20,40,.12);
  --shadow:0 24px 70px rgba(20,35,60,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:"DM Sans",system-ui,sans-serif;line-height:1.6;overflow-x:hidden}
body.command-open{overflow:hidden}
::selection{background:var(--accent);color:#07101f}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button{color:inherit}
.noise{position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E")}
.cursor-glow{position:fixed;width:420px;height:420px;border-radius:50%;pointer-events:none;z-index:-1;background:radial-gradient(circle,rgba(121,167,255,.14),transparent 65%);transform:translate(-50%,-50%);transition:opacity .2s}
.progress{position:fixed;z-index:80;left:0;right:0;top:0;height:2px;background:transparent}.progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent-3))}

.nav{position:fixed;left:50%;top:18px;transform:translateX(-50%);width:min(calc(100% - 32px),var(--max));z-index:60;display:flex;align-items:center;justify-content:space-between;padding:10px 12px 10px 16px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(18px);box-shadow:0 12px 45px rgba(0,0,0,.12)}
.brand{display:flex;align-items:center;gap:10px;font-family:Manrope,sans-serif;font-weight:800;letter-spacing:-.4px}
.brand-mark{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#07101f;font-size:13px}
.brand-name{font-size:12px;letter-spacing:.08em}
.desktop-nav{display:flex;gap:8px}.desktop-nav a{padding:9px 12px;border-radius:10px;color:var(--muted);font-size:13px}.desktop-nav a:hover{color:var(--text);background:var(--surface-2)}
.nav-actions{display:flex;gap:8px;align-items:center}.icon-button,.command-button{border:1px solid var(--line);background:transparent;height:36px;border-radius:10px;padding:0 11px;cursor:pointer}.icon-button{width:38px;padding:0}.moon{display:none}[data-theme="light"] .moon{display:inline}[data-theme="light"] .sun{display:none}.command-button{font-size:12px;color:var(--muted)}.nav-cta{padding:9px 14px;border-radius:10px;background:var(--text);color:var(--bg);font-size:13px;font-weight:700}

.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;max-width:var(--max);margin:auto;padding:150px 28px 70px;border-bottom:1px solid var(--line)}
.hero-content{position:relative;z-index:2;max-width:1050px}
.availability{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:100px;padding:8px 12px;color:var(--muted);font-size:11px;letter-spacing:.11em;text-transform:uppercase}.pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 12%,transparent)}
.hero h1{font:800 clamp(54px,8.2vw,118px)/.94 Manrope,sans-serif;letter-spacing:-.067em;margin:28px 0 24px;max-width:1100px}.gradient-text{background:linear-gradient(90deg,var(--accent) 0%,var(--accent-2) 48%,var(--accent-3) 90%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-copy{max-width:720px;color:var(--muted);font-size:clamp(17px,2vw,21px)}.hero-copy strong{color:var(--text);font-weight:600}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:48px;padding:0 18px;border-radius:13px;border:1px solid var(--line);font-weight:700;font-size:14px;cursor:pointer;transition:transform .2s,background .2s,border-color .2s}.button.primary{background:var(--text);color:var(--bg);border-color:var(--text)}.button.secondary{background:transparent;color:var(--text)}.button:hover{transform:translateY(-2px)}.button.secondary:hover{background:var(--surface-2)}
.hero-stats{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:1px;max-width:750px;margin-top:65px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}.hero-stats>div{background:color-mix(in srgb,var(--bg) 94%,transparent);padding:20px}.hero-stats strong{display:block;font:800 30px/1 Manrope,sans-serif;letter-spacing:-.04em}.hero-stats span{display:block;color:var(--muted);font-size:11px;line-height:1.3;margin-top:7px;text-transform:uppercase;letter-spacing:.08em}
.hero-footer{position:absolute;bottom:22px;left:28px;right:28px;display:flex;justify-content:space-between;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.1em}
.hero-orbit{position:absolute;right:-70px;top:18%;width:430px;height:430px;opacity:.55;pointer-events:none}.orbit{position:absolute;inset:0;border:1px solid var(--line);border-radius:50%;animation:spin 22s linear infinite}.orbit-a:after,.orbit-b:after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:var(--accent);top:50%;left:-5px;box-shadow:0 0 30px var(--accent)}.orbit-b{inset:55px;animation-direction:reverse;animation-duration:15s}.orbit-b:after{background:var(--accent-2);left:auto;right:-5px}.orbit-core{position:absolute;inset:145px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:radial-gradient(circle,color-mix(in srgb,var(--accent-2) 20%,var(--surface)),var(--surface));font:800 48px Manrope,sans-serif;letter-spacing:-.08em}@keyframes spin{to{transform:rotate(360deg)}}

.section{max-width:var(--max);margin:auto;padding:120px 28px;border-bottom:1px solid var(--line)}
.section-label,.mini-label{font-size:11px;letter-spacing:.16em;color:var(--accent);font-weight:700;text-transform:uppercase}.section h2,.contact h2{font:800 clamp(42px,6vw,76px)/1 Manrope,sans-serif;letter-spacing:-.055em;margin:14px 0 48px}.section h2 span,.contact h2 span{color:var(--muted)}
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:100px}.body-copy{max-width:680px;color:var(--muted);font-size:17px}.body-copy .lead{font-size:24px;line-height:1.42;color:var(--text);margin-top:2px}.body-copy em{font-style:normal;color:var(--accent)}
.principles{display:grid;gap:0;margin-top:45px;border-top:1px solid var(--line)}.principles>div{display:grid;grid-template-columns:42px 190px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);align-items:start}.principles span{color:var(--accent);font-size:11px}.principles strong{font-size:14px}.principles p{margin:0;font-size:14px}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:42px}.section-head h2{margin-bottom:0}.section-head>p{max-width:330px;color:var(--muted);font-size:14px;margin:0 0 8px}

.expertise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.expertise-card{position:relative;padding:28px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 92%,transparent),var(--surface));min-height:290px;overflow:hidden;transition:transform .25s,border-color .25s}.expertise-card:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;left:var(--x,50%);top:var(--y,50%);transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(120,245,197,.12),transparent 65%);opacity:0;transition:opacity .25s}.expertise-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.expertise-card:hover:before{opacity:1}.expertise-card>span{position:absolute;right:22px;top:22px;color:var(--muted);font-size:11px}.card-icon{font-size:28px;color:var(--accent);margin-bottom:42px}.expertise-card h3{font:700 23px Manrope,sans-serif;letter-spacing:-.03em;margin:0 0 9px}.expertise-card p{color:var(--muted);font-size:14px;min-height:70px}.tags{display:flex;flex-wrap:wrap;gap:6px}.tags b{font-weight:500;font-size:10px;letter-spacing:.04em;padding:5px 8px;border:1px solid var(--line);border-radius:100px;color:var(--muted)}

.career-shell{position:relative}.career-rail{position:absolute;left:139px;top:10px;bottom:10px;width:1px;background:var(--line)}.career-rail span{display:block;width:1px;height:35%;background:linear-gradient(var(--accent),var(--accent-2));position:sticky;top:100px}
.role{position:relative;display:grid;grid-template-columns:115px 1fr;gap:46px;padding:22px 0;border-bottom:1px solid var(--line);cursor:pointer}.role:before{content:"";position:absolute;left:135px;top:34px;width:9px;height:9px;border-radius:50%;background:var(--bg);border:2px solid var(--muted);z-index:2}.role.active:before{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 10%,transparent)}.date{color:var(--muted);font-size:10px;letter-spacing:.08em;padding-top:7px}.role-main{padding:0 10px 0 0}.role-top{display:flex;justify-content:space-between;gap:20px}.role-top button{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:transparent;cursor:pointer;font-size:18px}.role h3{font:700 25px Manrope,sans-serif;letter-spacing:-.03em;margin:0}.role h4{margin:3px 0 12px;color:var(--accent);font-weight:600;font-size:14px}.role-summary{margin:0;color:var(--muted);font-size:14px}.role-detail{display:grid;grid-template-rows:0fr;opacity:0;transition:.35s ease}.role-detail>*{overflow:hidden}.role-detail p{margin:14px 0 12px;color:var(--muted);font-size:14px;max-width:850px}.role.active .role-detail{grid-template-rows:1fr;opacity:1}.role.active .role-top button{transform:rotate(45deg);background:var(--surface-2)}

.impact-section{overflow:hidden}.impact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.impact-card{border:1px solid var(--line);border-radius:20px;padding:28px;background:var(--surface);min-height:300px}.impact-card.impact-featured{grid-column:span 3;min-height:260px;display:grid;grid-template-columns:1fr 2fr;align-items:center;background:radial-gradient(circle at 0 50%,color-mix(in srgb,var(--accent-2) 24%,var(--surface)),var(--surface) 42%)}.impact-number{font:800 clamp(48px,7vw,92px)/1 Manrope,sans-serif;letter-spacing:-.07em;color:var(--accent)}.impact-kicker{font-size:10px;color:var(--accent);letter-spacing:.13em;font-weight:700}.impact-card h3{font:700 25px/1.1 Manrope,sans-serif;letter-spacing:-.035em;margin:12px 0}.impact-card p{color:var(--muted);font-size:14px}.impact-featured h3{font-size:clamp(28px,4vw,48px);max-width:750px}

.lab-tabs{display:flex;gap:8px;margin-bottom:14px}.lab-tab{border:1px solid var(--line);background:transparent;color:var(--muted);padding:9px 14px;border-radius:100px;cursor:pointer;font-size:12px}.lab-tab.active{background:var(--text);color:var(--bg);border-color:var(--text)}
.lab-panel{display:none;grid-template-columns:.8fr 1fr .6fr;gap:30px;align-items:center;border:1px solid var(--line);border-radius:22px;padding:32px;background:var(--surface)}.lab-panel.active{display:grid}.lab-panel h3{font:700 28px Manrope,sans-serif;letter-spacing:-.04em;margin:7px 0}.lab-panel>div>p:not(.mini-label){color:var(--muted);font-size:13px}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tool-grid label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.tool-grid input{width:100%;margin-top:5px;border:1px solid var(--line);background:var(--bg);color:var(--text);padding:10px 12px;border-radius:10px;outline:none}.tool-grid input:focus{border-color:var(--accent)}.tool-grid .button{grid-column:1/-1;margin-top:4px}.tool-result{min-height:170px;border:1px solid var(--line);border-radius:18px;padding:24px;display:flex;flex-direction:column;justify-content:center;background:var(--bg-soft)}.tool-result span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.tool-result strong{font:800 32px Manrope,sans-serif;letter-spacing:-.05em;margin:6px 0;color:var(--accent)}.tool-result p{font-size:12px;color:var(--muted);margin:0}

.game-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.game-card{border:1px solid var(--line);border-radius:22px;padding:28px;background:var(--surface);min-height:410px}.game-head{display:flex;justify-content:space-between;gap:20px}.game-card h3{font:700 28px Manrope,sans-serif;letter-spacing:-.04em;margin:5px 0}.game-card>p{color:var(--muted);font-size:14px}.game-score{text-align:right}.game-score span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.1em}.game-score strong{font:800 30px Manrope,sans-serif;color:var(--accent)}.number-arena{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:26px 0 12px}.number-chip{height:74px;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--text);font:700 20px Manrope,sans-serif;cursor:pointer;transition:.2s}.number-chip:hover{border-color:var(--accent);transform:translateY(-2px)}.number-chip.done{opacity:.18;pointer-events:none}.number-chip.wrong{animation:shake .25s}.game-message{height:26px;color:var(--accent);font-size:13px}.signal-chart{height:150px;display:flex;align-items:flex-end;gap:10px;margin:22px 0 12px;padding:10px;border-bottom:1px solid var(--line)}.signal-bar{flex:1;min-width:20px;border:0;border-radius:8px 8px 3px 3px;background:linear-gradient(var(--accent-2),color-mix(in srgb,var(--accent-2) 40%,var(--surface)));cursor:pointer;transition:.2s}.signal-bar:hover{filter:brightness(1.25)}.signal-bar.correct{background:linear-gradient(var(--accent),color-mix(in srgb,var(--accent) 40%,var(--surface)))}.signal-bar.wrong{opacity:.3}@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

.education{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px}.edu-grid{display:grid;gap:12px}.edu-grid article{position:relative;border:1px solid var(--line);border-radius:18px;padding:22px 100px 22px 22px;background:var(--surface)}.edu-grid span{font-size:10px;color:var(--accent);letter-spacing:.08em}.edu-grid h3{font:700 18px Manrope,sans-serif;margin:7px 0}.edu-grid p{color:var(--muted);font-size:13px;margin:0}.edu-grid strong{position:absolute;right:22px;top:50%;transform:translateY(-50%);font:800 24px Manrope,sans-serif;color:var(--muted)}

.contact{position:relative;max-width:var(--max);margin:auto;padding:140px 28px 150px;overflow:hidden}.contact h2{font-size:clamp(58px,10vw,130px);margin-bottom:30px}.contact-copy{max-width:650px;color:var(--muted);font-size:18px}.contact-bg{position:absolute;right:-30px;bottom:-65px;font:800 clamp(100px,18vw,250px)/1 Manrope,sans-serif;color:transparent;-webkit-text-stroke:1px var(--line);white-space:nowrap;pointer-events:none}
footer{max-width:var(--max);margin:auto;padding:25px 28px 40px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}

.command-modal{position:fixed;inset:0;z-index:200;display:none;place-items:start center;padding-top:12vh}.command-modal.open{display:grid}.command-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.62);backdrop-filter:blur(10px)}.command-box{position:relative;width:min(620px,calc(100% - 28px));border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.command-input{display:flex;align-items:center;gap:10px;padding:14px;border-bottom:1px solid var(--line)}.command-input input{flex:1;border:0;outline:0;background:transparent;color:var(--text);font-size:16px}.command-input kbd{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:3px 6px}.command-list{padding:8px}.command-list button{width:100%;display:flex;gap:14px;align-items:center;border:0;background:transparent;color:var(--text);padding:12px;border-radius:10px;text-align:left;cursor:pointer}.command-list button:hover{background:var(--surface-2)}.command-list span{color:var(--muted);font-size:10px}.command-list button[hidden]{display:none}

@media (max-width:980px){
  .desktop-nav{display:none}.hero-orbit{right:-190px;opacity:.35}.split,.education{grid-template-columns:1fr;gap:30px}.expertise-grid{grid-template-columns:1fr 1fr}.lab-panel{grid-template-columns:1fr 1fr}.lab-panel>.tool-result{grid-column:1/-1}.impact-grid{grid-template-columns:1fr 1fr}.impact-card.impact-featured{grid-column:span 2}.game-grid{grid-template-columns:1fr}
}
@media (max-width:700px){
  .nav{top:10px}.brand-name,.command-button{display:none}.nav-cta{padding:9px 11px}.hero{padding:130px 20px 60px}.hero h1{letter-spacing:-.055em}.hero-stats{grid-template-columns:1fr 1fr;margin-top:40px}.hero-orbit{width:340px;height:340px;top:23%;right:-220px}.orbit-b{inset:45px}.orbit-core{inset:112px}.hero-footer{left:20px;right:20px}.section{padding:88px 20px}.section-head{display:block}.section-head>p{margin-top:15px}.section h2{margin-bottom:32px}.principles>div{grid-template-columns:34px 1fr}.principles p{grid-column:2}.expertise-grid{grid-template-columns:1fr}.expertise-card{min-height:auto}.career-rail{display:none}.role{grid-template-columns:1fr;gap:5px;padding:22px 0}.role:before{display:none}.date{padding-top:0}.impact-grid{grid-template-columns:1fr}.impact-card.impact-featured{grid-column:auto;display:block}.impact-card{min-height:auto}.lab-panel{grid-template-columns:1fr;padding:22px}.tool-grid{grid-template-columns:1fr}.tool-result{grid-column:auto!important}.number-arena{grid-template-columns:repeat(5,1fr);gap:5px}.number-chip{height:60px;font-size:17px}.education{gap:15px}.edu-grid article{padding-right:22px}.edu-grid strong{position:static;display:block;transform:none;margin-top:12px}.contact{padding:100px 20px 120px}footer{padding:22px 20px;flex-direction:column;gap:8px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}.cursor-glow{display:none}}
