:root{--cream:#f8f1e8;--paper:#fffaf3;--rose:#b76d7b;--rose-soft:#d7a5ad;--sage:#aebead;--lav:#b9b1c9;--ink:#3d3434;--muted:#7e7170;--line:#ded1c7;--brown:#69504a;--shadow:0 24px 70px rgba(68,47,47,.14)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif;overflow-x:hidden}.paper-grain{position:fixed;inset:0;pointer-events:none;opacity:.24;z-index:100;background-image:radial-gradient(rgba(60,45,45,.22) .5px,transparent .7px);background-size:5px 5px;mix-blend-mode:multiply}.site-header{position:fixed;top:16px;left:50%;transform:translateX(-50%);width:min(1180px,calc(100% - 32px));z-index:90;display:flex;align-items:center;justify-content:space-between;padding:10px 12px 10px 16px;border:1px solid rgba(255,255,255,.65);background:rgba(255,250,243,.82);backdrop-filter:blur(14px);border-radius:999px;box-shadow:0 10px 30px rgba(70,50,50,.08)}.brand{font-weight:700;text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:5px}.brand span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--sage);font-size:11px}.brand i{font-style:normal;color:var(--rose)}.nav{display:flex;gap:3px}.nav a,.nav-github{font-size:12px;color:var(--muted);text-decoration:none;padding:9px 11px;border-radius:999px}.nav a.active,.nav a:hover{background:#efe2dc;color:var(--ink)}.nav-github{border:1px solid var(--line);color:var(--ink)}
.desk-intro{height:100svh;min-height:680px;position:relative;overflow:hidden;background:#ad6674;display:grid;place-items:center;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:36px 36px}.notebook-wrap{perspective:1400px;z-index:5}.notebook{width:min(360px,58vw);aspect-ratio:.72;border:0;border-radius:8px 14px 14px 8px;background:linear-gradient(100deg,#d9e9de,#c2d9cd);box-shadow:24px 30px 45px rgba(42,22,25,.3),inset -10px 0 0 rgba(80,100,90,.13);position:relative;cursor:pointer;transform:rotate(-1deg);transition:.7s cubic-bezier(.2,.8,.2,1);color:var(--ink)}.notebook:hover{transform:rotate(1deg) translateY(-8px) scale(1.02)}.notebook-spine{position:absolute;left:0;top:0;bottom:0;width:22px;background:rgba(85,112,100,.12);border-radius:8px 0 0 8px}.cover-label{position:absolute;left:17%;right:17%;top:31%;padding:20px 10px;background:#fffaf0;border-radius:4px;box-shadow:0 8px 18px rgba(80,50,50,.1);transform:rotate(-1deg)}.cover-label .tiny{display:grid;place-items:center;width:24px;height:24px;margin:0 auto 5px;border:1px solid #c9bdb2;border-radius:50%;font-size:8px}.cover-label strong{display:block;font:700 32px/1 "Caveat";color:#685459}.cover-label small{font-size:7px;letter-spacing:2px;color:#9b8c83}.cover-bottom{position:absolute;bottom:11%;left:0;right:0;font:600 18px "Caveat";color:#6c5b59}.desk-hint{position:absolute;bottom:28px;z-index:5;color:#f9e9e7;font:500 18px "Caveat";letter-spacing:.4px}.desk-hint span{margin-left:7px}.desk-object{position:absolute;z-index:2}.keyboard{top:8%;left:-10px;font-size:120px;transform:rotate(18deg);opacity:.9}.coffee{left:8%;top:34%;font-size:64px;filter:drop-shadow(8px 12px 5px rgba(60,30,30,.2));transform:rotate(-8deg)}.coffee small{display:block;font:14px "Caveat";color:#f6dfda;margin-top:-8px;margin-left:20px}.plant{right:5%;bottom:4%;font-size:100px;filter:drop-shadow(10px 15px 5px rgba(30,30,20,.2))}.lamp{right:4%;top:4%;font-size:150px;color:#45464e;transform:rotate(-20deg);opacity:.85}.note{font:600 24px/1.1 "Caveat";background:#f5e5a9;padding:18px 22px;box-shadow:8px 14px 18px rgba(50,30,30,.15)}.note-a{right:12%;top:25%;transform:rotate(5deg)}.note-b{left:3%;bottom:17%;background:#d9c8df;transform:rotate(-7deg)}.doodle{position:absolute;color:#f8dfdd;font-size:46px;z-index:3}.doodle-star{left:22%;top:14%}.doodle-spark{right:26%;bottom:20%}.doodle-heart{left:24%;bottom:10%}
.portfolio-shell{background:var(--cream);position:relative}.page-section{width:min(1120px,calc(100% - 40px));margin:auto;padding:120px 0}.hero{min-height:760px;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:70px}.eyebrow,.section-label{font-size:11px;letter-spacing:2.4px;font-weight:700;color:var(--rose)}h1,h2,h3,p{margin-top:0}h1{font:700 clamp(55px,7vw,94px)/.93 "Playfair Display",serif;letter-spacing:-3px;margin:18px 0 28px}h1 em,h2 em{font-family:"Caveat";font-style:normal;color:var(--rose);font-weight:600}h2{font:700 clamp(42px,5vw,68px)/.98 "Playfair Display",serif;letter-spacing:-2px;margin:12px 0 25px}h3{font-size:24px}.hero-text{max-width:560px;color:var(--muted);font-size:17px;line-height:1.8}.hero-actions{display:flex;gap:12px;margin:30px 0}.btn{display:inline-flex;align-items:center;gap:10px;text-decoration:none;border-radius:999px;padding:14px 20px;font-size:13px;font-weight:700;transition:.25s}.btn.primary{background:var(--ink);color:white}.btn.secondary{border:1px solid var(--line);color:var(--ink);background:#fff8f0}.btn:hover{transform:translateY(-3px)}.mini-stats{display:flex;gap:26px;color:var(--muted);font-size:11px}.mini-stats b{display:block;color:var(--ink);font-size:17px;margin-bottom:3px}.hero-visual{position:relative;min-height:500px;display:grid;place-items:center}.photo-card{width:min(350px,78%);padding:12px 12px 48px;background:#fffaf2;box-shadow:var(--shadow);transform:rotate(5deg);position:relative}.photo-card img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center;border-radius:2px;display:block;filter:saturate(.9)}.photo-caption{position:absolute;bottom:13px;left:20px;font:18px "Caveat";color:#75605c}.tape{position:absolute;z-index:3;width:88px;height:25px;background:rgba(218,191,163,.72);top:-12px;left:38%;transform:rotate(-5deg)}.floating-tag{position:absolute;padding:10px 15px;background:#fff8ee;border:1px solid var(--line);box-shadow:0 10px 25px rgba(60,40,40,.1);font:18px "Caveat"}.tag-code{right:2%;top:18%;transform:rotate(8deg)}.tag-heart{left:3%;bottom:16%;transform:rotate(-7deg)}.scribble{position:absolute;right:0;bottom:7%;font:32px/1 "Caveat";color:var(--rose);transform:rotate(-8deg)}
.about{border-top:1px dashed var(--line)}.about-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:100px;margin-top:40px}.about-grid p{color:var(--muted);line-height:1.85;font-size:16px}.about-note{background:#e4dfc8;padding:42px 36px;transform:rotate(2deg);box-shadow:10px 14px 0 rgba(112,91,75,.08);position:relative}.about-note .pin{position:absolute;top:12px;right:18px;color:var(--rose)}.hand{font:28px "Caveat"!important;color:var(--ink)!important}.about-note ul{margin:15px 0 0;padding-left:20px;line-height:2;color:#6c6159;font-size:14px}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:50px}.section-heading>p{max-width:330px;color:var(--muted);line-height:1.7;font-size:14px}.project-feature{display:grid;grid-template-columns:1.1fr .9fr;background:#fffaf3;border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden}.project-art{min-height:430px;position:relative;display:grid;place-items:center;background:#202b2a}.raksha-art:before{content:"";position:absolute;inset:12%;border:1px solid rgba(220,236,224,.2);border-radius:50%;box-shadow:0 0 0 45px rgba(172,202,181,.03),0 0 0 90px rgba(172,202,181,.025)}.shield{font-size:110px;z-index:2;filter:drop-shadow(0 15px 20px rgba(0,0,0,.3))}.scan-line{position:absolute;width:70%;height:1px;background:#a8c8b2;box-shadow:0 0 20px #a8c8b2;animation:scan 3s ease-in-out infinite}.art-label{position:absolute;bottom:22px;left:24px;color:#c4d9c8;font-size:9px;letter-spacing:2px}.project-info{padding:48px}.project-top,.card-top{display:flex;justify-content:space-between;font-size:11px;color:#9b8b83}.status{font-weight:700;letter-spacing:1px}.live{color:#5f8d6d}.progress{color:#9a6b50}.work-status{color:#756c90}.project-info h3{font:700 48px "Playfair Display";margin:28px 0 5px}.project-sub{color:var(--rose);font:20px "Caveat"}.project-info>p:not(.project-sub){color:var(--muted);line-height:1.75;font-size:14px}.chips{display:flex;flex-wrap:wrap;gap:7px;margin:24px 0}.chips span{font-size:10px;padding:7px 9px;background:#f1e9e1;border-radius:999px;color:#6e625e}.project-link{color:var(--ink);font-weight:700;font-size:13px;text-decoration:none;border-bottom:1px solid var(--rose);padding-bottom:3px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}.project-card{background:#fffaf3;border:1px solid var(--line);padding:28px;transition:.25s}.project-card:hover{transform:translateY(-5px);box-shadow:0 18px 35px rgba(70,45,45,.1)}.mini-art{height:190px;margin:22px 0;background:#dfe8e0;display:grid;place-items:center;position:relative;overflow:hidden}.mini-art span{font:700 72px "Playfair Display";color:#556d5e}.mini-art small{position:absolute;bottom:13px;right:15px;font:18px "Caveat"}.samil-art{background:#e8dfd4}.samil-art span{font-size:42px;color:#745d52}.samil-art small{color:#8a7064}.project-card h3{font:700 30px "Playfair Display";margin:5px 0 10px}.project-card>p{font-size:13px;line-height:1.7;color:var(--muted)}.muted-link{font-size:11px;color:#8e817b}
.academic{background:#eee6dd;width:100%;max-width:none;padding-left:max(20px,calc((100% - 1120px)/2));padding-right:max(20px,calc((100% - 1120px)/2))}.academic-head{display:flex;justify-content:space-between;align-items:end;gap:30px}.academic-head p{max-width:330px;color:var(--muted);font-size:14px;line-height:1.7}.academic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}.academic-grid article{padding:30px;background:#f8f1e8;border:1px solid #ded2c7;min-height:190px}.academic-grid span{font:24px "Caveat";color:var(--rose)}.academic-grid h3{font:700 23px "Playfair Display";margin:20px 0 8px}.academic-grid p{font-size:12px;line-height:1.6;color:var(--muted)}
.timeline{margin-top:45px;border-left:1px dashed #cdbeb5}.timeline-item{display:grid;grid-template-columns:190px 1fr;gap:50px;padding:0 0 55px 34px;position:relative}.timeline-item:before{content:"";position:absolute;left:-5px;top:2px;width:9px;height:9px;background:var(--rose);border-radius:50%;box-shadow:0 0 0 5px var(--cream)}.date{font-size:10px;letter-spacing:1.5px;color:var(--rose);font-weight:700}.timeline-item h3{font:700 31px "Playfair Display";margin-bottom:6px}.role{color:var(--brown);font-size:13px;font-weight:700}.timeline-item ul,.timeline-item>div>p:last-child{color:var(--muted);font-size:13px;line-height:1.8}.timeline-item ul{padding-left:18px}
.skills{border-top:1px dashed var(--line)}.skills-layout{display:grid;grid-template-columns:.65fr 1.35fr;gap:80px;margin-top:40px}.skill-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.skill-columns>div{padding:22px;background:#fff8ef;border:1px solid var(--line)}.skill-columns h3{font:700 17px "Playfair Display";margin-bottom:8px}.skill-columns p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}
.education-card{margin-top:40px;background:#d9e2d8;padding:44px;display:grid;grid-template-columns:100px 1fr 90px;align-items:center;gap:35px;position:relative;overflow:hidden}.year{font:700 24px/1.1 "Caveat";color:#5d7361}.education-card h2{margin:8px 0;font-size:42px}.education-card p:not(.eyebrow){color:#667064}.stamp{width:70px;height:70px;border:2px dashed #789078;border-radius:50%;display:grid;place-items:center;text-align:center;font:700 17px/1 "Caveat";color:#6d816c;transform:rotate(10deg)}.school-row{display:grid;grid-template-columns:100px 1fr auto;gap:35px;padding:22px 10px;border-bottom:1px solid var(--line);font-size:13px}.school-row span{color:var(--rose);font-weight:700}.school-row p{margin:0}.small-note{color:var(--muted);font:17px "Caveat"}
.github-strip{width:min(1120px,calc(100% - 40px));margin:20px auto 120px;padding:50px;background:#c9b8ce;display:flex;align-items:center;justify-content:space-between;gap:30px}.github-strip h2{font-size:43px;margin:12px 0}.github-strip p{color:#665c67;font-size:13px;margin:0}.contact{padding-top:20px}.contact-card{text-align:center;padding:100px 30px;background:#fffaf3;border:1px solid var(--line);box-shadow:var(--shadow);position:relative}.contact-card h2{font-size:65px}.contact-card>p{max-width:500px;margin:0 auto 28px;color:var(--muted);line-height:1.7}.email{display:inline-block;font:700 clamp(22px,4vw,42px) "Caveat";color:var(--rose);text-decoration:none;border-bottom:2px solid var(--rose-soft)}.socials{display:flex;justify-content:center;gap:28px;margin-top:40px}.socials a{font-size:12px;color:var(--ink);text-decoration:none}.socials a:hover{color:var(--rose)}footer{width:min(1120px,calc(100% - 40px));margin:0 auto;padding:35px 0 45px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#91847e;font-size:11px}footer a{color:var(--ink);text-decoration:none}
.reveal{opacity:0;transform:translateY(25px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}@keyframes scan{0%,100%{transform:translateY(-110px);opacity:.2}50%{transform:translateY(110px);opacity:1}}
@media(max-width:850px){.nav{display:none}.hero{grid-template-columns:1fr;padding-top:130px;gap:30px}.hero-visual{min-height:440px}.about-grid,.skills-layout{grid-template-columns:1fr;gap:40px}.project-feature{grid-template-columns:1fr}.project-art{min-height:330px}.project-grid,.academic-grid,.skill-columns{grid-template-columns:1fr}.section-heading,.academic-head,.github-strip{display:block}.github-strip .btn{margin-top:25px}.timeline-item{grid-template-columns:1fr;gap:8px}.education-card{grid-template-columns:70px 1fr}.stamp{display:none}.school-row{grid-template-columns:70px 1fr}.small-note{display:none}.desk-object.keyboard{font-size:70px}.lamp{font-size:100px}.note{font-size:18px}.note-a{right:3%}.note-b{left:2%}.desk-hint{font-size:15px}.notebook{width:min(320px,72vw)}}@media(max-width:560px){.site-header{top:8px}.nav-github{display:none}.page-section{padding:85px 0}.hero{min-height:auto}.hero h1{font-size:54px}.mini-stats{gap:15px;flex-wrap:wrap}.project-info{padding:30px}.project-info h3{font-size:40px}.contact-card{padding:65px 20px}.contact-card h2{font-size:48px}.github-strip{padding:35px}.desk-intro{min-height:600px}.keyboard{left:-30px!important}.coffee{left:3%;font-size:48px}.plant{font-size:70px}.lamp{right:-20px;font-size:80px}.note-a{top:18%;font-size:15px}.note-b{bottom:13%;font-size:15px}.doodle{font-size:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.notebook,.project-card,.btn{transition:none}.scan-line{animation:none}.reveal{opacity:1;transform:none}}
.github-projects{padding-top:80px}.github-project-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.github-project-card{display:grid;grid-template-columns:42px 1fr 24px;gap:18px;align-items:start;padding:26px;background:#fffaf3;border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:.25s}.github-project-card:hover{transform:translateY(-4px);box-shadow:0 18px 35px rgba(70,45,45,.1)}.repo-no{font:24px "Caveat";color:var(--rose)}.repo-lang{font-size:9px;letter-spacing:1.4px;font-weight:700;color:#8d7d76}.github-project-card h3{font:700 28px "Playfair Display";margin:8px 0}.github-project-card p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}.repo-arrow{font-size:18px;color:var(--rose)}.github-more{margin-top:25px}.hackathons{background:#eee6dd;width:100%;max-width:none;padding-left:max(20px,calc((100% - 1120px)/2));padding-right:max(20px,calc((100% - 1120px)/2))}.hackathon-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:40px}.hackathon-grid article{padding:28px;background:#f8f1e8;border:1px solid #ded2c7;min-height:260px}.hackathon-grid article>span{font:24px "Caveat";color:var(--rose)}.hackathon-grid h3{font:700 25px "Playfair Display";margin:18px 0 8px}.hackathon-grid p{font-size:12px;line-height:1.7;color:var(--muted)}.hackathon-grid .chips{margin:16px 0}.hackathon-grid a{font-size:11px;font-weight:700;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rose);padding-bottom:2px}.crisis-art{background:#eadfe7}.crisis-art span{color:#775e78}.logistics-art{background:#e3e8de}.logistics-art span{color:#61745d;font-size:80px}.logistics-art small{color:#66715f}
@media(max-width:850px){.github-project-grid,.hackathon-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.github-project-grid,.hackathon-grid{grid-template-columns:1fr}}

/* ---------- Mobile navigation (hamburger) ---------- */
.nav-toggle,.nav-github-mobile{display:none}
@media(max-width:850px){
  .nav-toggle{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:40px;height:40px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;cursor:pointer;flex-shrink:0}
  .nav-toggle span{display:block;width:16px;height:2px;border-radius:2px;background:var(--ink);transition:transform .25s ease,opacity .2s ease}
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .nav{position:absolute;top:calc(100% + 10px);left:0;right:0;flex-direction:column;gap:2px;padding:12px;border:1px solid rgba(255,255,255,.65);border-radius:28px;background:rgba(255,250,243,.96);backdrop-filter:blur(14px);box-shadow:0 18px 40px rgba(70,50,50,.16)}
  .nav.open{display:flex;animation:navDrop .22s ease}
  .nav a{font-size:15px;padding:13px 18px;border-radius:16px}
  .nav .nav-github-mobile{display:block;margin-top:6px;border:1px solid var(--line);color:var(--ink);text-align:center}
}
@keyframes navDrop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.project-card-wide{grid-column:1/-1}
.github-project-card:last-child:nth-child(odd){grid-column:1/-1}
.project-grid .project-card:last-child:nth-child(odd){grid-column:1/-1}
.project-card .project-link+.project-link{margin-left:18px}