*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f5f4ef;color:#171717;font-family:"DM Sans",sans-serif;line-height:1.45}.container{width:min(1180px,calc(100% - 48px));margin:auto}.nav-wrap{position:sticky;top:0;z-index:20;background:rgba(245,244,239,.9);backdrop-filter:blur(14px);border-bottom:1px solid #deddd7}.nav{height:76px;display:flex;align-items:center;justify-content:space-between}.logo{font:800 24px Manrope,sans-serif;color:#171717;text-decoration:none;letter-spacing:-1px}.logo span{font-size:16px}.nav-links{display:flex;gap:34px}.nav-links a,.text-link,.contact-links a{color:#171717;text-decoration:none;font-size:14px}.nav-links a:hover,.contact-links a:hover,.text-link:hover{opacity:.55}.nav-cta{background:#171717;color:#fff;padding:11px 16px;border-radius:30px;text-decoration:none;font-size:13px}.nav-cta span{margin-left:8px}.menu-btn{display:none;border:0;background:none;padding:8px}.menu-btn span{display:block;width:24px;height:2px;background:#171717;margin:5px}.hero{padding:115px 0 60px;min-height:690px;display:flex;flex-direction:column;justify-content:center}.eyebrow,.kicker{font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:#686863}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#171717;margin-right:8px}.hero-title{font:700 clamp(58px,9vw,126px)/.9 Manrope,sans-serif;letter-spacing:-.075em;margin:28px 0 55px;max-width:1050px}.hero-title em,.about-section em,.process-title em,.contact-section em{font-style:normal;color:#77766f}.hero-bottom{display:flex;justify-content:space-between;gap:60px;align-items:flex-end}.hero-bottom p{max-width:470px;font-size:18px;margin:0;color:#494944}.hero-actions{display:flex;align-items:center;gap:26px;white-space:nowrap}.button{display:inline-flex;gap:22px;align-items:center;padding:15px 19px;text-decoration:none;border-radius:30px;font-size:13px}.button-dark{background:#171717;color:#fff}.hero-meta{display:flex;justify-content:space-between;margin-top:75px;padding-top:17px;border-top:1px solid #d7d6d0;font-size:11px;color:#777}.section{padding:120px 0}.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:45px}.section-head h2{font:600 clamp(38px,5vw,66px)/1 Manrope,sans-serif;letter-spacing:-.055em;margin:13px 0 0}.section-count{font-size:11px;color:#777}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:72px 24px}.project-large{grid-column:1/-1}.project-visual{display:block;position:relative;overflow:hidden;height:520px;background:#e6e4dc;text-decoration:none}.project:not(.project-large) .project-visual{height:430px}.visual-number{position:absolute;right:20px;top:20px;font-size:11px;color:rgba(0,0,0,.5)}.visual-label{position:absolute;left:20px;bottom:20px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:rgba(0,0,0,.55)}.visual-campair{background:linear-gradient(135deg,#dedbd0,#b9b7ae)}.campair-shape{position:absolute;width:340px;height:340px;border-radius:50%;background:#292927;left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:0 30px 60px rgba(0,0,0,.2)}.campair-shape:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;background:#d7d3c8;left:55px;top:55px}.visual-hr{background:#d9d8d3;display:flex;align-items:center;justify-content:center}.browser{width:74%;background:#f8f8f6;border-radius:10px;box-shadow:0 30px 60px rgba(0,0,0,.13);overflow:hidden}.browser-bar{height:26px;border-bottom:1px solid #ddd;display:flex;gap:5px;align-items:center;padding:0 10px}.browser-bar i{width:5px;height:5px;background:#aaa;border-radius:50%}.dashboard{display:flex;height:270px}.dashboard aside{width:20%;background:#222}.dash-content{padding:18px;flex:1}.dash-content>b{display:block;height:9px;background:#ddd;width:40%;margin-bottom:18px}.dash-content>b:nth-child(2){width:70%}.dash-cards{display:flex;gap:8px}.dash-cards i{height:70px;flex:1;background:#e5e5e2;border-radius:6px}.visual-blute{background:#dce4df}.blute-balloon{position:absolute;width:175px;height:230px;border-radius:50% 50% 46% 46%;background:#6c7870;left:50%;top:34%;transform:translate(-50%,-50%)}.blute-base{position:absolute;width:190px;height:50px;border-radius:50%;background:#242725;left:50%;top:67%;transform:translate(-50%,-50%)}.visual-ferry{background:#dadfe3;display:flex;align-items:center;justify-content:center}.ferry-ui{width:75%;height:65%;background:#f7f7f5;border:1px solid #c9cdd0;border-radius:8px;padding:20px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.ferry-ui span{background:#d9dde0;border-radius:6px}.project-info{display:flex;justify-content:space-between;gap:20px;padding-top:18px}.project-info h3{font:600 23px Manrope,sans-serif;letter-spacing:-.04em;margin:0 0 5px}.project-info p,.project-info>span{font-size:12px;color:#777;margin:0}.about-section{background:#20201f;color:#f4f3ee;padding:130px 0}.about-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:100px}.about-section .kicker{color:#a3a29b}.about-section h2{font:600 clamp(48px,6vw,82px)/.95 Manrope,sans-serif;letter-spacing:-.06em;margin:28px 0 0}.about-copy{padding-top:45px}.about-copy .lead{font-size:24px;line-height:1.3;color:#eee}.about-copy p:not(.lead){font-size:15px;color:#aaa;max-width:480px;margin:32px 0}.about-section .text-link{color:#fff}.experience-list{border-top:1px solid #d7d6d0}.experience-row{display:grid;grid-template-columns:1fr 3fr 1fr;gap:20px;padding:28px 0;border-bottom:1px solid #d7d6d0;font-size:12px;color:#777}.experience-row h3{font:600 20px Manrope,sans-serif;color:#171717;margin:0 0 4px}.experience-row p{margin:0}.experience-row>span:last-child{text-align:right}.cap-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #d7d6d0}.cap{padding:25px 20px 20px 0;border-bottom:1px solid #d7d6d0}.cap span,.process-item b{font-size:10px;color:#888}.cap h3{font:600 22px Manrope,sans-serif;letter-spacing:-.04em;margin:55px 0 10px}.cap p{font-size:13px;color:#777;max-width:230px}.process-section{background:#e4e2da;padding:120px 0}.process-title h2{font:600 clamp(52px,8vw,105px)/.9 Manrope,sans-serif;letter-spacing:-.07em;margin:25px 0 75px}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.process-item{border-top:1px solid #aaa79e;padding-top:16px}.process-item h3{font:600 20px Manrope,sans-serif;margin:55px 0 8px}.process-item p{font-size:13px;color:#696861;max-width:210px}.contact-section{background:#171717;color:#f4f3ee;padding:145px 0}.contact-section .kicker{color:#8d8c86}.contact-section h2{font:600 clamp(62px,10vw,140px)/.86 Manrope,sans-serif;letter-spacing:-.08em;margin:30px 0 55px}.email-link{display:inline-block;color:#f4f3ee;text-decoration:none;font-size:20px;border-bottom:1px solid #686761;padding-bottom:8px}.contact-links{display:flex;gap:28px;margin-top:80px}.contact-links a{color:#aaa}.footer{height:90px;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#777}.footer a{color:#171717;text-decoration:none}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}.project-visual{transition:transform .5s ease}.project-visual:hover{transform:scale(.985)}@media(max-width:800px){.container{width:min(100% - 32px,1180px)}.nav{height:66px}.nav-links,.nav-cta{display:none}.menu-btn{display:block}.nav-links.open{display:flex;position:absolute;left:0;right:0;top:66px;background:#f5f4ef;padding:24px 16px;flex-direction:column;gap:20px;border-bottom:1px solid #ddd}.hero{padding:80px 0 45px;min-height:auto}.hero-title{font-size:clamp(52px,15vw,82px);margin:25px 0 42px}.hero-bottom{display:block}.hero-bottom p{font-size:16px}.hero-actions{margin-top:30px}.hero-meta{display:block;margin-top:55px}.hero-meta span{display:block;margin:7px 0}.section{padding:80px 0}.section-head{display:block}.section-count{display:none}.project-grid{grid-template-columns:1fr;gap:48px}.project-large{grid-column:auto}.project-visual,.project:not(.project-large) .project-visual{height:390px}.about-grid{grid-template-columns:1fr;gap:20px}.about-copy{padding-top:10px}.cap-grid,.process-grid{grid-template-columns:1fr 1fr}.experience-row{grid-template-columns:1fr 2fr}.experience-row>span:last-child{display:none}.contact-section{padding:95px 0}.contact-section h2{font-size:clamp(56px,15vw,100px)}.footer{height:auto;padding:25px 0;display:grid;gap:8px}.footer span:nth-child(2){order:3}}@media(max-width:520px){.cap-grid,.process-grid{grid-template-columns:1fr}.project-visual,.project:not(.project-large) .project-visual{height:330px}.campair-shape{width:230px;height:230px}.campair-shape:after{width:155px;height:155px;left:38px;top:38px}.browser{width:88%}.dashboard{height:210px}.hero-actions{gap:18px}.email-link{font-size:16px}}

.contact-details{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:8px}.contact-detail{color:#f4f3ee;text-decoration:none;font-size:20px;border-bottom:1px solid #686761;padding-bottom:8px}.contact-detail:hover{opacity:.65}.contact-links{margin-top:55px}
@media(max-width:520px){.contact-detail{font-size:16px}}

/* Selected work: eight linked projects */
.project-grid-8{grid-template-columns:repeat(2,1fr)}
.project-grid-8 .project-visual{height:420px;aspect-ratio:16/10}
.project-thumb{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.thumb-pebble{background:linear-gradient(140deg,#d9d1c4,#b9b2a8)}
.thumb-hr{background:#deddf1}
.thumb-ferry{background:#d6dde2}
.thumb-atom{background:#161616;color:#fff}
.thumb-northbrook{background:#e1dfd7}
.thumb-sholo{background:#d3c7b2}
.thumb-build{background:#d8d7d2}
.thumb-alert{background:#d9dfe3}
.thumb-mark,.build-word,.atom-word{font-family:Manrope,sans-serif;font-weight:800;letter-spacing:-.06em}
.thumb-mark{font-size:clamp(42px,6vw,78px);opacity:.82}
.atom-word{font-size:56px;line-height:.72;text-align:center;letter-spacing:-.08em}.atom-word em{font-style:normal;font-weight:500}
.build-word{font-size:56px;line-height:.78;text-align:center}.build-word span{font-size:74px}
.thumb-screen,.thumb-ui,.north-card,.alert-panel{width:min(72%,390px);height:62%;border-radius:10px;background:#f7f7f5;box-shadow:0 24px 50px rgba(0,0,0,.12);border:1px solid rgba(0,0,0,.08)}
.thumb-screen{display:flex;overflow:hidden}.mini-sidebar{width:22%;background:#222}.mini-main{flex:1;padding:18px}.mini-main>i{display:block;height:8px;width:58%;background:#ddd;margin-bottom:12px;border-radius:4px}.mini-main>i:nth-child(2){width:80%}.mini-main>div{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:30px}.mini-main b{height:72px;border-radius:7px;background:#e3e4e6}
.thumb-ui{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:10px;padding:16px}.thumb-ui span{display:block;border-radius:7px;background:#d7dce0}.thumb-ui span:nth-child(1){grid-column:1/3}.thumb-ui span:nth-child(4){grid-column:2/4}
.north-card{padding:25px;display:flex;flex-direction:column;justify-content:flex-start}.north-card small{font-size:10px;color:#777}.north-card strong{font:700 26px Manrope;margin-top:10px;letter-spacing:-.05em}.north-bars{display:flex;align-items:flex-end;gap:9px;height:90px;margin-top:auto}.north-bars i{display:block;flex:1;background:#777;height:35%}.north-bars i:nth-child(2){height:75%}.north-bars i:nth-child(3){height:52%}
.board{width:215px;height:215px;transform:rotate(45deg);display:grid;grid-template-columns:repeat(3,1fr);gap:15px;position:relative}.board:before,.board:after{content:"";position:absolute;inset:0;border:2px solid rgba(0,0,0,.48)}.board:after{transform:rotate(45deg);inset:20%}.board i{width:18px;height:18px;border-radius:50%;background:#222;align-self:center;justify-self:center;transform:rotate(-45deg)}.board i:nth-child(2),.board i:nth-child(5){background:#eee;border:2px solid #222}
.alert-panel{padding:20px;display:flex;flex-direction:column}.alert-panel span{font-size:10px;letter-spacing:.12em;color:#7b5c21}.alert-panel b{font:600 20px Manrope;margin:12px 0 22px;letter-spacing:-.04em}.alert-panel i{height:8px;background:#d3d7da;border-radius:4px;margin:6px 0;width:76%}.alert-panel i:nth-last-child(1){width:54%}
.project-grid-8 .project-info h3{font-size:20px}
@media(max-width:800px){.project-grid-8{grid-template-columns:1fr}.project-grid-8 .project-visual{height:auto;aspect-ratio:16/10}.build-word{font-size:46px}.build-word span{font-size:58px}}

/* Selected work — uploaded project visuals */
.project-thumb{isolation:isolate;background:#eee}
.project-thumb .project-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:0;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.project-thumb .image-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.04) 55%,rgba(0,0,0,.36));pointer-events:none}
.project-thumb .visual-number,.project-thumb .visual-label{z-index:2}
.project:hover .project-image{transform:scale(1.035)}

/* Keep every project frame equal while showing the complete image. */
.project-visual.project-thumb{
  aspect-ratio:16/10;
  height:auto !important;
  background:#eceae4;
  overflow:hidden;
}
.project-visual.project-thumb .project-image{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
}

/* Resume-based experience and skills */
.experience-row{align-items:start}.experience-row small{display:block;margin-top:10px;font-size:12px;line-height:1.55;color:#777;max-width:650px}.experience-featured h3{font-size:22px}.skills-grid{grid-template-columns:repeat(4,1fr)}.skills-grid .cap h3{margin-top:45px}.skills-grid .cap p{max-width:260px;line-height:1.55}
@media(max-width:800px){.skills-grid{grid-template-columns:1fr 1fr}.experience-row{grid-template-columns:1fr 3fr}.experience-row>span:last-child{display:none}}
@media(max-width:520px){.skills-grid{grid-template-columns:1fr}.experience-row{grid-template-columns:1fr;gap:8px}.experience-row>span:first-child{font-size:11px}}

/* Project image framing */
.project-visual.project-thumb{
  aspect-ratio:16/10;
  height:auto !important;
  background:#eceae4;
  overflow:hidden;
}
.project-visual.project-thumb .project-image{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
}

/* 3 × 3 Selected Work grid */
@media (min-width: 801px){
  .project-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:56px 24px;
  }
  .project-grid .project-large{
    grid-column:auto;
  }
  .project-grid .project-visual,
  .project-grid .project.project-large .project-visual{
    height:auto !important;
    aspect-ratio:16/10;
  }
}
@media (max-width: 800px){
  .project-grid{
    grid-template-columns:1fr;
  }
}

/* Final responsive 3x3 project grid */
.project-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:56px 24px;
  align-items:start;
}
.project-grid .project,
.project-grid .project-large{
  grid-column:auto !important;
  width:100%;
  min-width:0;
}
.project-grid .project-visual,
.project-grid .project.project-large .project-visual,
.project-grid .project-visual.project-thumb{
  width:100%;
  aspect-ratio:16/10;
  height:auto !important;
  min-height:0;
}
.project-grid .project-image{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
}
@media (max-width: 900px){
  .project-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:44px 18px;
  }
}
@media (max-width: 600px){
  .project-grid{
    grid-template-columns:1fr;
    gap:42px;
  }
  .project-grid .project-visual,
  .project-grid .project.project-large .project-visual,
  .project-grid .project-visual.project-thumb{
    aspect-ratio:16/10;
  }
  .project-info{
    display:flex;
    justify-content:space-between;
    gap:12px;
  }
  .project-info h3{
    font-size:20px;
  }
}

/* Full Baranwal Design wordmark */
.logo{
  font:800 24px/1 Manrope,sans-serif;
  letter-spacing:-0.055em;
  white-space:nowrap;
}

/* Light / dark theme */
:root{
  --bg:#f5f4ef;
  --text:#171717;
  --muted:#77766f;
  --line:#d7d6d0;
  --dark-section:#20201f;
  --dark-text:#f4f3ee;
}
body{
  background:var(--bg);
  color:var(--text);
  transition:background .3s ease,color .3s ease;
}
.nav-wrap{
  background:rgba(245,244,239,.9);
  border-color:var(--line);
  transition:background .3s ease,border-color .3s ease;
}
.nav-tools{
  display:flex;
  align-items:center;
  gap:12px;
}
.theme-toggle{
  border:1px solid #c8c7c0;
  background:transparent;
  color:#171717;
  height:38px;
  padding:0 13px;
  border-radius:22px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  font:500 12px "DM Sans",sans-serif;
  cursor:pointer;
  transition:background .25s ease,color .25s ease,border-color .25s ease;
}
.theme-toggle:hover{background:#171717;color:#fff;border-color:#171717}
.theme-icon{font-size:16px;line-height:1}
.theme-label{min-width:28px;text-align:left}

body.dark-theme{
  --bg:#11110f;
  --text:#f3f2ed;
  --muted:#a5a39b;
  --line:#393832;
  --dark-section:#080808;
  --dark-text:#f4f3ee;
}
body.dark-theme .nav-wrap{
  background:rgba(17,17,15,.9);
  border-color:var(--line);
}
body.dark-theme .nav-links a,
body.dark-theme .logo,
body.dark-theme .text-link,
body.dark-theme .footer a{
  color:#f3f2ed;
}
body.dark-theme .theme-toggle{
  border-color:#57564f;
  color:#f3f2ed;
}
body.dark-theme .theme-toggle:hover{
  background:#f3f2ed;
  color:#11110f;
  border-color:#f3f2ed;
}
body.dark-theme .button-dark{
  background:#f3f2ed;
  color:#11110f;
}
body.dark-theme .hero-bottom p,
body.dark-theme .project-info p,
body.dark-theme .project-info>span,
body.dark-theme .cap p,
body.dark-theme .experience-row,
body.dark-theme .about-copy p:not(.lead),
body.dark-theme .process-item p{
  color:#aaa9a2;
}
body.dark-theme .experience-list,
body.dark-theme .cap-grid,
body.dark-theme .experience-row,
body.dark-theme .cap{
  border-color:#393832;
}
body.dark-theme .process-section{
  background:#1c1c19;
}
body.dark-theme .project-visual.project-thumb{
  background:#1d1d1a;
}
body.dark-theme .footer{
  color:#99978f;
}

@media(max-width:800px){
  .nav-tools{gap:8px}
  .nav-tools .nav-cta{display:none}
  .theme-toggle{height:36px;padding:0 11px}
  .logo{font-size:21px}
}
@media(max-width:420px){
  .theme-label{display:none}
  .theme-toggle{width:36px;justify-content:center;padding:0}
}

/* WCAG 2.2 accessibility refinements */

/* 1.4.3 Contrast — AA-safe muted text on the light background */
.hero-meta,
.section-count,
.experience-row,
.footer,
.project-info p,
.project-info>span,
.cap p{
  color:#5f5f5a;
}
.cap span,
.process-item b{
  color:#666660;
}
.process-item p{
  color:#5f5f5a;
}

/* Experience designation must remain visible in both themes. */
.experience-row h3{
  color:#171717;
}
body.dark-theme .experience-row h3{
  color:#f3f2ed;
}

/* Dark-theme muted text remains AA compliant. */
body.dark-theme .hero-meta,
body.dark-theme .section-count,
body.dark-theme .experience-row,
body.dark-theme .footer,
body.dark-theme .project-info p,
body.dark-theme .project-info>span,
body.dark-theme .cap p,
body.dark-theme .process-item p{
  color:#aaa9a2;
}
body.dark-theme .cap span,
body.dark-theme .process-item b{
  color:#aaa9a2;
}

/* Project labels sit on unpredictable images; give them a high-contrast surface. */
.visual-label{
  color:#171717;
  background:rgba(245,244,239,.94);
  padding:7px 9px;
  border-radius:5px;
  backdrop-filter:blur(5px);
}
body.dark-theme .visual-label{
  color:#f3f2ed;
  background:rgba(17,17,15,.94);
}

/* Keyboard navigation — visible 2px focus indicator. */
:focus-visible{
  outline:3px solid #7b5c21;
  outline-offset:4px;
  border-radius:3px;
}
.nav a:focus-visible,
.footer a:focus-visible,
.contact-links a:focus-visible,
.text-link:focus-visible,
.project-visual:focus-visible{
  outline:3px solid #7b5c21;
  outline-offset:5px;
}
.theme-toggle:focus-visible,
.menu-btn:focus-visible{
  outline:3px solid #7b5c21;
  outline-offset:3px;
}

/* Skip navigation for keyboard/screen-reader users. */
.skip-link{
  position:fixed;
  left:16px;
  top:12px;
  z-index:100;
  transform:translateY(-180%);
  background:#171717;
  color:#fff;
  padding:12px 16px;
  border-radius:6px;
  text-decoration:none;
  font-size:14px;
  font-weight:600;
  transition:transform .2s ease;
}
.skip-link:focus{
  transform:translateY(0);
}
body.dark-theme .skip-link{
  background:#f3f2ed;
  color:#11110f;
}

/* Do not force motion on users who request reduced motion. */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,
  *::before,
  *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  .reveal{
    opacity:1 !important;
    transform:none !important;
  }
}

/* Avoid the hover-only menu being inaccessible on small screens. */
@media(max-width:800px){
  .nav-links.open{
    z-index:25;
  }
}

/* Subtle interaction layer — intentionally restrained */

/* Scroll progress */
.scroll-progress{
  position:fixed;
  top:0;
  left:0;
  z-index:100;
  width:0;
  height:2px;
  background:#171717;
  pointer-events:none;
  transition:width .08s linear;
}
body.dark-theme .scroll-progress{
  background:#f3f2ed;
}

/* Project cards */
.project{
  transition:transform .35s cubic-bezier(.2,.7,.2,1);
}
.project:hover{
  transform:translateY(-5px);
}
.project-visual{
  transition:transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s ease;
}
.project:hover .project-visual{
  box-shadow:0 18px 45px rgba(0,0,0,.08);
}
.project-image{
  transition:transform .6s cubic-bezier(.2,.7,.2,1);
}
.project:hover .project-image{
  transform:scale(1.025);
}
.project-hover-label{
  position:absolute;
  left:18px;
  top:18px;
  z-index:2;
  padding:8px 10px;
  border-radius:20px;
  background:rgba(245,244,239,.94);
  color:#171717;
  font-size:11px;
  opacity:0;
  transform:translateY(5px);
  transition:opacity .3s ease,transform .3s ease;
  pointer-events:none;
}
.project:hover .project-hover-label{
  opacity:1;
  transform:translateY(0);
}
body.dark-theme .project-hover-label{
  background:rgba(17,17,15,.94);
  color:#f3f2ed;
}

/* Navigation link micro-interaction */
.nav-links a{
  position:relative;
}
.nav-links a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-5px;
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .25s ease;
}
.nav-links a:hover::after{
  transform:scaleX(1);
  transform-origin:left;
}

/* Buttons and contact links */
.button,
.nav-cta,
.theme-toggle{
  transition:transform .25s ease,background .25s ease,color .25s ease,border-color .25s ease;
}
.button:hover,
.nav-cta:hover{
  transform:translateY(-2px);
}
.contact-detail,
.email-link,
.contact-links a,
.footer a{
  transition:opacity .25s ease,transform .25s ease;
}
.contact-detail:hover,
.email-link:hover,
.contact-links a:hover,
.footer a:hover{
  transform:translateX(3px);
}

/* Gentle image parallax on pointer-capable devices */
@media (pointer:fine) and (prefers-reduced-motion:no-preference){
  .project-visual{
    will-change:transform;
  }
}

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion:reduce){
  .project,
  .project-visual,
  .project-image,
  .project-hover-label,
  .nav-links a::after,
  .button,
  .nav-cta,
  .theme-toggle,
  .contact-detail,
  .email-link,
  .contact-links a,
  .footer a{
    transition:none !important;
  }
  .project:hover,
  .project:hover .project-visual,
  .project:hover .project-image,
  .button:hover,
  .nav-cta:hover,
  .contact-detail:hover,
  .email-link:hover,
  .contact-links a:hover,
  .footer a:hover{
    transform:none !important;
  }
}
