/* =========================
   PORTFOLIO CLONE - CSS
   ========================= */
:root{
  --bg:#050807;
  --bg2:#08100d;
  --panel:rgba(8,18,14,.72);
  --line:rgba(55,255,158,.18);
  --green:#39ff9a;
  --green2:#16d978;
  --cyan:#53e7ff;
  --text:#e8f4ee;
  --muted:#91a39a;
  --danger:#ff4f71;
  --max:1180px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--text);
  font-family:Inter,Arial,sans-serif;
  line-height:1.6;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
button{font:inherit}

.noise{
  position:fixed;inset:0;pointer-events:none;z-index:50;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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
}
.cursor-glow{
  position:fixed;width:380px;height:380px;border-radius:50%;
  pointer-events:none;z-index:0;transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(57,255,154,.08),transparent 65%);
}

.navbar{
  position:fixed;top:0;left:0;right:0;height:72px;z-index:40;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 5vw;border-bottom:1px solid transparent;
  transition:.3s;background:rgba(5,8,7,.28);backdrop-filter:blur(10px);
}
.navbar.scrolled{border-color:var(--line);background:rgba(5,8,7,.88)}
.logo{font:600 14px "Fira Code",monospace;color:var(--green)}
.logo span{color:#b7c8bf}
.navbar nav{display:flex;gap:28px}
.navbar nav a{font:500 13px "Fira Code",monospace;color:var(--muted);transition:.2s}
.navbar nav a:hover,.navbar nav a.active{color:var(--green)}
.menu-toggle{display:none;background:none;border:0;color:white}
.menu-toggle span{display:block;width:25px;height:2px;background:var(--green);margin:5px}

.section{position:relative;max-width:var(--max);margin:auto;padding:120px 28px}
.hero{
  min-height:100vh;display:grid;grid-template-columns:1.25fr .75fr;
  align-items:center;gap:70px;padding-top:150px;
}
.hero-grid{
  position:absolute;inset:0;z-index:-1;opacity:.55;
  background-image:linear-gradient(rgba(57,255,154,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(57,255,154,.055) 1px,transparent 1px);
  background-size:70px 70px;
  mask-image:linear-gradient(to bottom,black,transparent 90%);
}
.hero-content{z-index:1;max-width:850px}
.eyebrow{font:600 12px "Fira Code",monospace;letter-spacing:2px;color:var(--green);margin-bottom:16px}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green);margin-right:8px}
.hero h1{font-size:clamp(54px,9vw,112px);line-height:.95;letter-spacing:-5px;font-weight:800}
.hero h1 span{color:var(--green);text-shadow:0 0 35px rgba(57,255,154,.15)}
.hero h2{margin-top:22px;font:600 clamp(17px,2vw,25px) "Fira Code",monospace;color:#d4e3dc}
.slash{color:var(--green)}
.hero-text{max-width:650px;color:var(--muted);font-size:16px;margin:25px 0 32px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.btn{padding:13px 19px;border:1px solid var(--line);font:600 12px "Fira Code",monospace;transition:.25s}
.btn-primary{background:var(--green);color:#031008;border-color:var(--green)}
.btn-primary:hover{box-shadow:0 0 28px rgba(57,255,154,.25);transform:translateY(-2px)}
.btn-ghost:hover{border-color:var(--green);color:var(--green)}
.terminal-line{margin-top:38px;font:13px "Fira Code",monospace;color:var(--muted)}
.prompt{color:var(--green);margin-right:8px}
.caret{color:var(--green);animation:blink 1s infinite}
@keyframes blink{50%{opacity:0}}

.hero-card{
  justify-self:end;width:100%;max-width:380px;padding:18px;
  border:1px solid var(--line);background:linear-gradient(145deg,rgba(15,35,26,.82),rgba(5,10,8,.7));
  position:relative;overflow:hidden;box-shadow:0 20px 70px rgba(0,0,0,.25)
}
.hero-card:before{content:"";position:absolute;inset:9px;border:1px dashed rgba(57,255,154,.09);pointer-events:none}
.profile-photo{
  position:relative;display:block;width:100%;aspect-ratio:1;height:auto;margin:0 0 12px;
  border:1px solid var(--line);border-radius:4px;
  object-fit:cover;object-position:center 35%;
  box-shadow:0 0 25px rgba(0,0,0,.25)
}
.profile-status{
  display:flex;align-items:center;justify-content:center;gap:16px;
  width:max-content;max-width:100%;margin:0 auto 24px;padding:9px 26px;
  border:1px solid rgba(57,255,154,.2);border-radius:16px;
  background:rgba(5,8,7,.72);color:#91a39a;
  font:600 12px "Fira Code",monospace;letter-spacing:3px;white-space:nowrap
}
.profile-status .status-indicator{
  width:9px;height:9px;flex:0 0 9px;border-radius:50%;
  background:var(--green);box-shadow:0 0 12px rgba(57,255,154,.45)
}
.profile-status .status-label{flex:0 0 auto}
.scroll-indicator{position:absolute;bottom:28px;left:28px;font:10px "Fira Code",monospace;color:#60746a}
.scroll-indicator span{color:var(--green);margin-left:8px}

.section-label{font:600 11px "Fira Code",monospace;color:#5e7569;letter-spacing:2px;margin-bottom:45px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.section h2{font-size:clamp(34px,5vw,62px);line-height:1.05;letter-spacing:-2px}
.section h2 span{color:var(--green)}
.about-copy{color:var(--muted);font-size:16px}
.about-copy p+p{margin-top:18px}
.mini-terminal{margin-top:28px;border:1px solid var(--line);background:#020504;padding:18px;font:12px "Fira Code",monospace}
.green{color:var(--green)}
.muted{color:#60746a;margin-top:8px}

.section-heading{margin-bottom:45px}
.skill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.skill-card{
  min-height:270px;border:1px solid var(--line);padding:25px;background:var(--panel);
  transition:.3s;position:relative;overflow:hidden
}
.skill-card:after{content:"";position:absolute;width:90px;height:90px;right:-45px;bottom:-45px;border-radius:50%;background:rgba(57,255,154,.06)}
.skill-card:hover{transform:translateY(-7px);border-color:rgba(57,255,154,.5);box-shadow:0 20px 50px rgba(0,0,0,.2)}
.icon{font:700 25px "Fira Code",monospace;color:var(--green);margin-bottom:28px}
.skill-card h3{font-size:20px;margin-bottom:12px}
.skill-card p{font-size:13px;color:var(--muted);min-height:75px}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px}
.tags span{font:10px "Fira Code",monospace;color:#9fb2a8;border:1px solid rgba(57,255,154,.13);padding:5px 7px;background:rgba(57,255,154,.025)}

.academic-dashboard{
  overflow:hidden;border:1px solid rgba(57,255,154,.28);border-radius:16px;
  background:#050807;color:var(--text);box-shadow:0 18px 55px rgba(0,0,0,.3)
}
.academic-header{
  display:flex;justify-content:space-between;align-items:flex-start;gap:24px;
  padding:26px 30px;border-bottom:1px solid var(--line)
}
.academic-eyebrow{font-size:13px;font-weight:700;color:var(--green)}
.academic-header h2{margin:1px 0 5px;color:var(--text);font-size:22px;line-height:1.25;letter-spacing:-.7px}
.academic-header>div:first-child>p:last-child{color:var(--muted);font-size:15px}
.academic-record-status{display:flex;align-items:center;gap:12px;white-space:nowrap}
.result-status,.course-status{
  display:inline-flex;align-items:center;gap:8px;border-radius:6px;
  background:rgba(57,255,154,.1);color:var(--green);padding:4px 12px;font-size:14px;font-weight:600
}
.result-status{border-radius:20px}
.result-status span{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 9px rgba(57,255,154,.5)}
.record-source{color:var(--green);font-size:13px;font-weight:600}
.academic-overview{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:14px;padding:24px}
.score-card,.metric-card,.history-card{
  border:1px solid var(--line);border-radius:14px;background:rgba(8,18,14,.72);padding:22px
}
.score-card{background:linear-gradient(135deg,rgba(10,29,20,.96),rgba(5,8,7,.96));border-color:rgba(57,255,154,.35)}
.score-card-top,.history-card-top{display:flex;justify-content:space-between;gap:12px}
.score-card-top>div>p:nth-child(2){margin-top:2px;color:var(--muted);font-size:14px}
.score-card-top>span{color:var(--text);font-size:13px;font-weight:600}
.card-kicker{color:#91a39a;font-size:12px;font-weight:600}
.score-summary{display:flex;justify-content:space-between;align-items:flex-end;margin-top:5px}
.summary-label{color:#b4c7bc;font-size:14px;font-weight:600}
.average-score{color:var(--green);font-size:clamp(44px,5vw,76px);font-weight:700;line-height:1.1;letter-spacing:-4px;text-shadow:0 0 25px rgba(57,255,154,.12)}
.average-score span{margin-left:5px;color:var(--muted);font-size:15px;font-weight:600;letter-spacing:0}
.grade-summary strong{
  display:grid;place-items:center;width:66px;height:60px;margin-top:7px;
  border:1px solid rgba(57,255,154,.35);border-radius:15px;background:#08100d;color:var(--text);font-size:31px
}
.official-result{margin-top:8px;color:#b4c7bc;font-size:13px;font-weight:600}
.pass-note{margin-top:8px;color:var(--green);font-size:12px;font-weight:600}
.pass-note span{margin-left:8px;font-weight:500}
.metric-card{display:flex;flex-direction:column;justify-content:space-between;min-height:218px}
.metric-card-top{display:flex;justify-content:space-between;align-items:center}
.metric-card-top h3{color:#91a39a;font-size:13px;font-weight:600}
.metric-card-top>span{
  display:grid;place-items:center;width:40px;height:40px;border-radius:12px;
  background:rgba(57,255,154,.09);color:var(--green);font-size:20px
}
.metric-value{color:var(--text);font-size:18px;font-weight:700}
.metric-value small{color:var(--muted);font-size:14px;font-weight:500}
.metric-caption{margin-top:3px;color:var(--muted);font-size:13px}
.metric-card:nth-child(3) .metric-caption{color:var(--green)}
.metric-track{height:7px;margin-top:20px;overflow:hidden;border-radius:10px;background:rgba(57,255,154,.15)}
.metric-track span{display:block;height:100%;border-radius:inherit;background:var(--green);box-shadow:0 0 12px rgba(57,255,154,.3)}
.admission-score{
  display:flex;align-items:center;gap:16px;margin:0 24px 24px;padding:18px 20px;
  border:1px solid rgba(57,255,154,.28);border-radius:14px;background:rgba(8,18,14,.72)
}
.admission-icon{
  display:grid;place-items:center;flex:0 0 44px;height:44px;border:1px solid rgba(57,255,154,.3);
  border-radius:12px;background:rgba(57,255,154,.08);color:var(--green);font-size:20px
}
.admission-score .card-kicker span{margin-left:5px}
.admission-score>div>p:last-child{margin-top:3px;color:var(--muted);font-size:14px}
.admission-score>strong{margin-left:auto;color:var(--text);font-size:21px}
.academic-history,.course-scores{padding:24px;border-top:1px solid var(--line)}
.academic-section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}
.academic-section-heading h3{color:var(--text);font-size:18px}
.academic-section-heading p{margin-top:4px;color:var(--muted);font-size:14px}
.academic-section-heading>span{color:#91a39a;font-size:13px;font-weight:600}
.history-card{max-width:570px}
.history-card-top h4{margin-top:3px;color:var(--text);font-size:18px}
.history-grade{align-self:flex-start;border:1px solid rgba(57,255,154,.2);border-radius:6px;background:rgba(57,255,154,.08);color:var(--green);padding:4px 12px;font-size:13px}
.history-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px;padding-top:15px;border-top:1px solid var(--line)}
.history-stats span,.history-stats strong{display:block}
.history-stats span{color:#91a39a;font-size:13px}
.history-stats strong{margin-top:4px;color:var(--text);font-size:16px}
.course-scores{padding-bottom:26px}
.scores-table-wrap{overflow-x:auto}
.scores-table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}
.scores-table thead{background:rgba(57,255,154,.07);color:#b4c7bc;text-transform:uppercase}
.scores-table th,.scores-table td{padding:13px 14px;border-bottom:1px solid var(--line);font-size:14px}
.scores-table thead th{font-size:12px;font-weight:700}
.scores-table tbody th{color:#d2e0d8;font-weight:500}
.scores-table tbody tr{transition:background .2s}
.scores-table tbody tr:hover{background:rgba(57,255,154,.035)}
.scores-table tfoot th,.scores-table tfoot td{padding-top:16px;padding-bottom:16px;border-bottom:0;color:var(--text)}
.scores-table tfoot th{font-weight:500}
.scores-table tfoot strong{display:block;font-size:15px}
.average-gpa{display:block;margin-top:2px;color:#91a39a;font-size:12px;font-weight:600}
.scores-table .course-status{padding:3px 12px;font-weight:500}
.scores-table tfoot .course-status{font-weight:700}

.contact-box{display:grid;grid-template-columns:1fr 1fr;gap:70px;border:1px solid var(--line);padding:55px;background:linear-gradient(135deg,rgba(15,35,26,.65),rgba(5,8,7,.6))}
.contact-text{color:var(--muted);margin-top:20px;max-width:500px}
.contact-links{border-left:1px solid var(--line);padding-left:45px}
.contact-links a{display:block;padding:17px 0;border-bottom:1px solid rgba(57,255,154,.1)}
.contact-links span{display:block;color:#64796e;font:10px "Fira Code",monospace;text-transform:uppercase;margin-bottom:5px}
.contact-links b{font:14px "Fira Code",monospace;color:#d9e8e0;font-weight:500}
.contact-links a:hover b{color:var(--green)}

footer{max-width:var(--max);margin:auto;padding:30px 28px 45px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#5d7067;font:10px "Fira Code",monospace}
.top-btn{position:fixed;right:25px;bottom:25px;width:42px;height:42px;border:1px solid var(--line);background:#07100c;color:var(--green);cursor:pointer;opacity:0;transform:translateY(15px);transition:.3s;z-index:20}
.top-btn.show{opacity:1;transform:none}
.reveal{opacity:0;transform:translateY(25px);transition:opacity .7s,transform .7s}
.reveal.visible{opacity:1;transform:none}

@media(max-width:900px){
  .hero{grid-template-columns:1fr;gap:32px}
  .hero-card{grid-row:1;justify-self:center;width:min(100%,300px)}
  .hero-content{grid-row:2}
  .skill-grid{grid-template-columns:repeat(2,1fr)}
  .two-col,.contact-box{grid-template-columns:1fr;gap:35px}
  .contact-links{border-left:0;border-top:1px solid var(--line);padding:25px 0 0}
}
@media(max-width:650px){
  .navbar{padding:0 20px}
  .navbar nav{position:absolute;top:72px;left:0;right:0;display:none;flex-direction:column;gap:0;background:rgba(5,8,7,.97);border-bottom:1px solid var(--line)}
  .navbar nav.open{display:flex}
  .navbar nav a{padding:16px 22px;border-bottom:1px solid rgba(57,255,154,.08)}
  .menu-toggle{display:block}
  .section{padding:90px 20px}
  .hero{padding-top:130px}
  .hero h1{letter-spacing:-3px}
  .profile-status{gap:8px;padding:8px 10px;font-size:9px;letter-spacing:1px}
  .skill-grid{grid-template-columns:1fr}
  .academic-header{flex-direction:column}
  .academic-record-status{flex-wrap:wrap}
  .academic-overview{grid-template-columns:1fr}
  .score-card{grid-column:auto;padding:18px}
  .metric-card{min-height:180px}
  .average-score{font-size:54px}
  .admission-score{gap:11px}
  .admission-score>strong{font-size:18px}
  .history-stats{gap:8px}
  .history-stats strong{font-size:14px}
  .academic-header{padding:22px 20px}
  .academic-overview{grid-template-columns:1fr 1fr;padding:16px}
  .score-card{grid-column:1/-1}
  .admission-score{margin:0 16px 16px;padding:14px}
  .academic-history,.course-scores{padding:20px 16px}
  .scores-table th,.scores-table td{padding:11px 12px}
  footer{padding:25px 20px;flex-direction:column;gap:8px}
}
