*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#141414;
  --bg2:#1a1a1a;
  --surface:#222;
  --surface2:#282828;
  --surface3:#2e2e2e;
  --border:rgba(255,255,255,0.08);
  --border2:rgba(255,255,255,0.14);
  --text:#fff;
  --text2:rgba(255,255,255,0.55);
  --text3:rgba(255,255,255,0.3);
  --win-bg:#1e1e1e;
  --radius:12px;
  --shadow:0 32px 80px rgba(0,0,0,0.7);
}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',sans-serif;
  background:var(--bg);color:var(--text);
  min-height:100vh;overflow-x:hidden;
}
/* vignette */
body::after{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(255,255,255,0.025) 0%,transparent 100%);
}

/* ── NAV ── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:300;
  display:grid;grid-template-columns:1fr auto 1fr;
  align-items:center;padding:20px 36px;
}
.nav-name{display:flex;flex-direction:column;}
.nav-name-title{font-size:14px;font-weight:600;color:#fff;letter-spacing:-0.2px;}
.nav-name-role{font-size:11px;color:var(--text3);margin-top:2px;}
.nav-pills{
  background:rgba(45,45,45,0.9);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:1px solid var(--border2);border-radius:50px;padding:4px;
  display:flex;gap:2px;position:relative;
}
.nav-pills::before{
  content:'';position:absolute;top:-1px;left:50%;transform:translateX(-50%);
  width:24px;height:2px;background:rgba(255,255,255,0.4);border-radius:2px;
}
.nav-tab{
  padding:8px 24px;border-radius:50px;border:none;background:transparent;
  font-family:'Inter',sans-serif;font-size:13px;font-weight:500;
  color:var(--text2);cursor:pointer;transition:all 0.2s;text-decoration:none;display:block;
}
.nav-tab.active{background:rgba(255,255,255,0.11);color:#fff;}
.nav-tab:hover:not(.active){color:rgba(255,255,255,0.8);}
.nav-links{display:flex;align-items:center;justify-content:flex-end;gap:24px;}
.nav-link{
  font-size:13px;font-weight:400;color:var(--text2);text-decoration:none;
  display:flex;align-items:center;gap:5px;transition:color 0.2s;
}
.nav-link:hover{color:#fff;}
.nav-link svg{width:11px;height:11px;stroke:currentColor;stroke-width:2.5;}

/* ── PAGES ── */
.page{display:none;padding-top:80px;}
.page.active{display:block;}

/* ══ HERO ══ */
.hero-wrap{
  display:flex;align-items:center;justify-content:center;
  min-height:calc(100vh - 80px);
  padding:24px 40px 40px;
}
.mac-window{
  width:100%;max-width:860px;
  background:var(--win-bg);border-radius:14px;
  border:1px solid rgba(255,255,255,0.1);
  box-shadow:var(--shadow);overflow:hidden;
}
.mac-bar{
  background:linear-gradient(180deg,#3d3d3d 0%,#2f2f2f 100%);
  padding:14px 18px;display:flex;align-items:center;gap:8px;
  border-bottom:1px solid rgba(0,0,0,0.4);position:relative;
}
.mac-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;}
.mac-dot.r{background:#ff5f57;}.mac-dot.y{background:#febc2e;}.mac-dot.g{background:#28c840;}
.mac-plus{
  position:absolute;right:18px;top:50%;transform:translateY(-50%);
  color:rgba(255,255,255,0.25);font-size:18px;font-weight:300;line-height:1;
}
.mac-body{
  padding:64px 72px 68px;min-height:460px;
  display:flex;flex-direction:column;justify-content:space-between;
}
.hero-headline{
  font-family:'Playfair Display',serif;
  font-size:clamp(46px,6.5vw,82px);font-weight:700;
  line-height:1.1;letter-spacing:-2.5px;color:#fff;
}
.hero-headline em{font-style:italic;font-weight:900;color:rgba(255,255,255,0.55);}
.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;margin-top:52px;}
.hero-desc-main{font-size:15px;font-weight:500;color:#fff;margin-bottom:5px;}
.hero-desc-sub{font-size:13px;color:var(--text2);}
.hero-arrow{
  color:rgba(255,255,255,0.35);cursor:pointer;
  transition:color 0.2s;flex-shrink:0;padding-bottom:2px;
}
.hero-arrow:hover{color:#fff;}
.hero-arrow svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.5;}

/* ── SECTION ── */
.section{padding:0 40px 80px;max-width:960px;margin:0 auto;}
.section-head{padding-top:70px;margin-bottom:36px;}
.section-label{
  font-size:11px;font-weight:600;text-transform:uppercase;
  letter-spacing:2px;color:var(--text3);
}
.divider{height:1px;background:var(--border);}

/* ══ WEB PROJECT CARDS — image + name + link ══ */
.web-projects{display:flex;flex-direction:column;gap:0;}

.web-item{
  border-top:1px solid var(--border);
  padding:32px 0;
}
.web-item:last-child{border-bottom:1px solid var(--border);}

/* screenshot full width */
.web-screenshot{
  width:100%;border-radius:10px;overflow:hidden;
  border:1px solid var(--border2);cursor:zoom-in;
  display:block;margin-bottom:20px;
  transition:opacity 0.2s;
  background:var(--surface2);
}
.web-screenshot:hover{opacity:0.88;}
.web-screenshot img{
  width:100%;display:block;
  aspect-ratio:16/9;object-fit:cover;object-position:top;
}

.web-item-footer{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;
}
.web-item-info{}
.web-item-name{
  font-family:'Playfair Display',serif;
  font-size:clamp(20px,2.5vw,28px);font-weight:700;
  color:#fff;letter-spacing:-0.5px;margin-bottom:4px;
}
.web-item-meta{font-size:12px;color:var(--text3);letter-spacing:0.3px;}
.web-item-link{
  display:inline-flex;align-items:center;gap:7px;flex-shrink:0;
  background:rgba(255,255,255,0.07);border:1px solid var(--border2);
  color:var(--text2);border-radius:50px;padding:9px 20px;
  font-size:12px;font-weight:500;text-decoration:none;
  transition:all 0.2s;white-space:nowrap;
}
.web-item-link:hover{background:rgba(255,255,255,0.13);color:#fff;}
.web-item-link.live{color:#fff;border-color:rgba(255,255,255,0.25);}
.web-item-link svg{width:11px;height:11px;stroke:currentColor;stroke-width:2.5;}

/* ── DESIGN ── */
.design-tabs{display:flex;gap:6px;margin-bottom:28px;}
.dtab{
  padding:7px 18px;border-radius:50px;border:1px solid var(--border);
  background:transparent;font-family:'Inter',sans-serif;
  font-size:12px;font-weight:500;color:var(--text3);cursor:pointer;transition:all 0.2s;
}
.dtab.active{background:rgba(255,255,255,0.1);color:#fff;border-color:var(--border2);}
.dtab:hover:not(.active){color:rgba(255,255,255,0.7);border-color:var(--border2);}
.dgallery{display:none;}
.dgallery.active{display:grid;}
.dg-thumbs{grid-template-columns:repeat(3,1fr);gap:12px;}
.dg-thumbs .gi{aspect-ratio:16/9;}
.dg-social{grid-template-columns:repeat(5,1fr);gap:10px;}
.dg-social .gi{aspect-ratio:4/5;}
.dg-headers{grid-template-columns:1fr;gap:12px;}
.dg-headers .gi{aspect-ratio:5/2;}
.gi{
  border-radius:8px;overflow:hidden;
  border:1px solid var(--border);background:var(--surface2);
  cursor:zoom-in;transition:opacity 0.2s,border-color 0.2s;
}
.gi:hover{opacity:0.78;border-color:var(--border2);}
.gi img{width:100%;height:100%;object-fit:cover;display:block;}

/* ── VIDEOS ── */
.video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.video-card{
  border-radius:10px;overflow:hidden;
  border:1px solid var(--border);background:var(--surface);
  transition:border-color 0.2s;
}
.video-card:hover{border-color:var(--border2);}
.video-card video{width:100%;display:block;aspect-ratio:9/16;object-fit:cover;background:#000;max-height:420px;}
.video-card-body{padding:13px 16px;border-top:1px solid var(--border);}
.video-card-title{font-size:13px;font-weight:500;color:#fff;}
.video-card-desc{font-size:11px;color:var(--text3);margin-top:3px;}

/* ── LIGHTBOX ── */
.lightbox{
  display:none;position:fixed;inset:0;z-index:1000;
  background:rgba(0,0,0,0.93);backdrop-filter:blur(12px);
  align-items:center;justify-content:center;padding:24px;
}
.lightbox.open{display:flex;}
.lightbox img{max-width:92vw;max-height:90vh;border-radius:10px;object-fit:contain;}
.lb-close{
  position:absolute;top:20px;right:24px;
  width:36px;height:36px;border-radius:50%;
  border:1px solid rgba(255,255,255,0.15);background:rgba(255,255,255,0.08);
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 0.2s;
}
.lb-close:hover{background:rgba(255,255,255,0.18);}
.lb-close svg{width:14px;height:14px;stroke:#fff;stroke-width:2.5;}

/* ── INFO ── */
.info-wrap{
  padding:60px 40px 80px;max-width:860px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start;
}
.info-photo-ph{
  aspect-ratio:4/5;border-radius:10px;
  background:var(--surface);border:1px solid var(--border);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
}
.info-photo-ph svg{width:52px;height:52px;stroke:rgba(255,255,255,0.12);stroke-width:1;}
.info-photo-ph span{font-size:12px;color:var(--text3);}
.info-h{
  font-family:'Playfair Display',serif;
  font-size:clamp(32px,4vw,48px);font-weight:700;
  line-height:1.15;letter-spacing:-1.5px;color:#fff;margin-bottom:22px;
}
.info-h em{font-style:italic;color:rgba(255,255,255,0.45);}
.info-p{font-size:14px;line-height:1.85;color:var(--text2);margin-bottom:12px;}
.info-skills{margin-top:28px;display:flex;flex-direction:column;gap:7px;}
.sk{
  display:flex;align-items:center;gap:10px;
  padding:11px 14px;border-radius:8px;
  border:1px solid var(--border);background:var(--surface);
  font-size:13px;color:rgba(255,255,255,0.65);transition:border-color 0.2s;
}
.sk:hover{border-color:var(--border2);}
.sk svg{width:14px;height:14px;stroke:rgba(255,255,255,0.35);stroke-width:2;flex-shrink:0;}
.info-cta{margin-top:32px;padding:26px;border-radius:10px;border:1px solid var(--border);background:var(--surface);}
.info-cta h3{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:#fff;margin-bottom:6px;letter-spacing:-0.5px;}
.info-cta p{font-size:13px;color:var(--text3);margin-bottom:18px;}
.info-cta-links{display:flex;gap:8px;flex-wrap:wrap;}
.cta-btn{
  display:inline-flex;align-items:center;gap:7px;
  padding:10px 20px;border-radius:50px;border:1px solid var(--border2);
  background:rgba(255,255,255,0.07);color:#fff;text-decoration:none;
  font-size:13px;font-weight:500;transition:background 0.2s;
}
.cta-btn:hover{background:rgba(255,255,255,0.14);}
.cta-btn svg{width:13px;height:13px;stroke:currentColor;stroke-width:2;}

/* ── REVEAL ── */
.reveal{opacity:0;transform:translateY(18px);transition:opacity 0.55s ease,transform 0.55s ease;}
.reveal.visible{opacity:1;transform:none;}

/* ── MOB NAV ── */
.mob-nav{
  display:none;position:fixed;bottom:20px;left:50%;transform:translateX(-50%);
  background:rgba(40,40,40,0.95);backdrop-filter:blur(20px);
  border:1px solid var(--border2);border-radius:50px;padding:5px;gap:2px;
  z-index:400;box-shadow:0 8px 40px rgba(0,0,0,0.7);
}
@media(max-width:900px){
  nav{padding:16px 20px;}
  .nav-pills{display:none;}
  .mob-nav{display:flex;}
  .hero-wrap{padding:16px 16px 24px;}
  .mac-body{padding:36px 28px 44px;min-height:300px;}
  .section{padding:0 20px 60px;}
  .dg-social{grid-template-columns:repeat(3,1fr);}
  .dg-thumbs{grid-template-columns:1fr 1fr;}
  .video-grid{grid-template-columns:1fr;}
  .info-wrap{grid-template-columns:1fr;gap:32px;}
  .web-item-footer{flex-direction:column;align-items:flex-start;gap:14px;}
}
@media(max-width:580px){
  .hero-headline{font-size:36px;}
  .dg-thumbs{grid-template-columns:1fr;}
  .dg-social{grid-template-columns:1fr 1fr;}
  .video-grid{grid-template-columns:1fr;}
  .nav-links .nav-link:nth-child(2){display:none;}
}

/* ── STORY LAYOUT ── */
.story{
  max-width:860px;margin:0 auto;
  padding:64px 40px 100px;
}

/* opening header */
.story-opener{
  display:grid;grid-template-columns:1fr 1fr;
  gap:48px;align-items:center;margin-bottom:96px;
}
.story-opener-img{
  border-radius:14px;overflow:hidden;
  border:1px solid rgba(255,255,255,0.08);
  aspect-ratio:3/4;
}
.story-opener-img img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;}
.story-opener-text{}
.story-tag{
  font-size:11px;font-weight:600;text-transform:uppercase;
  letter-spacing:2.5px;color:rgba(255,255,255,0.3);
  margin-bottom:20px;display:block;
}
.story-h1{
  font-family:'Playfair Display',serif;
  font-size:clamp(40px,5vw,60px);font-weight:900;
  line-height:1.08;letter-spacing:-2px;color:#fff;
  margin-bottom:24px;
}
.story-h1 em{font-style:italic;color:rgba(255,255,255,0.45);}
.story-lead{
  font-size:15px;line-height:1.85;color:rgba(255,255,255,0.55);
  margin-bottom:32px;
}
.story-sig{
  margin-top:8px;
  filter:invert(1) brightness(50);
  width:200px;opacity:1;
}

/* section divider */
.story-divider{
  height:1px;background:rgba(255,255,255,0.07);
  margin:64px 0;
}

/* ── STORY BLOCK: text left, image right ── */
.story-block{
  display:grid;gap:48px;align-items:center;
  margin-bottom:80px;
}
.story-block.img-right{grid-template-columns:1fr 1fr;}
.story-block.img-left{grid-template-columns:1fr 1fr;}
.story-block.img-left .story-block-img{order:-1;}
.story-block.full-width{grid-template-columns:1fr;}

.story-block-img{
  border-radius:12px;overflow:hidden;
  border:1px solid rgba(255,255,255,0.08);
  cursor:zoom-in;transition:opacity 0.2s;
}
.story-block-img:hover{opacity:0.85;}
.story-block-img img{width:100%;display:block;object-fit:cover;}
.story-block-img.portrait img{aspect-ratio:3/4;object-position:top;}
.story-block-img.landscape img{aspect-ratio:4/3;}
.story-block-img.square img{aspect-ratio:1/1;object-position:top;}

.story-block-text{}
.story-year{
  font-size:11px;font-weight:700;text-transform:uppercase;
  letter-spacing:2px;color:rgba(255,255,255,0.25);
  margin-bottom:14px;display:flex;align-items:center;gap:10px;
}
.story-year::after{content:'';flex:1;height:1px;background:rgba(255,255,255,0.08);}
.story-h2{
  font-family:'Playfair Display',serif;
  font-size:clamp(26px,3vw,36px);font-weight:800;
  line-height:1.15;letter-spacing:-1px;color:#fff;
  margin-bottom:16px;
}
.story-h2 em{font-style:italic;color:rgba(255,255,255,0.45);}
.story-p{
  font-size:14px;line-height:1.9;color:rgba(255,255,255,0.55);
  margin-bottom:12px;
}
.story-p:last-child{margin-bottom:0;}

/* two-image row */
.story-duo{
  display:grid;grid-template-columns:1fr 1fr;gap:16px;
  margin-bottom:80px;
}
.story-duo .story-block-img{margin:0;}

/* ── CTA block ── */
.story-cta{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:14px;padding:40px;
  display:flex;align-items:center;justify-content:space-between;
  gap:32px;flex-wrap:wrap;
  margin-top:80px;
}
.story-cta-left h3{
  font-family:'Playfair Display',serif;
  font-size:28px;font-weight:800;color:#fff;
  letter-spacing:-0.5px;margin-bottom:8px;
}
.story-cta-left p{font-size:14px;color:rgba(255,255,255,0.4);}
.story-cta-btns{display:flex;gap:10px;flex-wrap:wrap;}
.cta-btn{
  display:inline-flex;align-items:center;gap:7px;
  padding:11px 22px;border-radius:50px;
  border:1px solid rgba(255,255,255,0.14);
  background:rgba(255,255,255,0.07);color:#fff;
  text-decoration:none;font-size:13px;font-weight:500;
  transition:background 0.2s;
}
.cta-btn:hover{background:rgba(255,255,255,0.14);}
.cta-btn svg{width:13px;height:13px;stroke:currentColor;stroke-width:2;}
.cta-btn.primary{background:rgba(255,255,255,0.15);border-color:rgba(255,255,255,0.25);}
.cta-btn.primary:hover{background:rgba(255,255,255,0.22);}

@media(max-width:760px){
  .story{padding:40px 20px 80px;}
  .story-opener{grid-template-columns:1fr;gap:32px;}
  .story-block.img-right,
  .story-block.img-left{grid-template-columns:1fr;}
  .story-block.img-left .story-block-img{order:0;}
  .story-duo{grid-template-columns:1fr;}
  .story-cta{flex-direction:column;gap:24px;}
}