*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#faf8f4;--ink:#18170f;--sub:#46443a;--mid:#6b6960;
  --accent:#c2390f;--sand:#ede9e0;--rule:#dedad1;
  --display:'Outfit',system-ui,sans-serif;
  --serif:'Fraunces',Georgia,serif;
  --mono:'DM Mono',monospace;
}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--display);font-size:16px;line-height:1.6;overflow-x:hidden}

nav{position:fixed;top:0;left:0;right:0;z-index:100;height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 3rem;background:rgba(250,248,244,0.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule)}
.nav-logo{font-family:var(--display);font-size:1rem;font-weight:700;text-decoration:none;color:var(--ink)}
.nav-back{font-family:var(--mono);font-size:0.8rem;letter-spacing:0.07em;text-transform:uppercase;color:var(--mid);text-decoration:none;display:flex;align-items:center;gap:0.5rem;transition:color 0.15s}
.nav-back:hover{color:var(--ink)}
.nav-back::before{content:'←'}

.proj-hero{padding:6rem 3rem 3rem;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:end;margin-top:58px;max-width:1200px;margin-left:auto;margin-right:auto}
.proj-eyebrow{font-family:var(--mono);font-size:0.8rem;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;color:var(--mid);margin-bottom:1.25rem;display:flex;align-items:center;gap:0.75rem}
.proj-eyebrow::before{content:'';width:20px;height:1.5px;background:var(--mid)}
.proj-title{font-family:var(--serif);font-size:clamp(2.5rem,5vw,4.5rem);font-weight:600;line-height:1.0;letter-spacing:-0.02em;color:var(--ink)}
.proj-meta{display:flex;flex-direction:column;gap:1.25rem}
.proj-tag{font-family:var(--mono);font-size:0.78rem;font-weight:500;letter-spacing:0.07em;text-transform:uppercase;color:var(--accent)}
.proj-intro{font-size:1.05rem;line-height:1.85;color:var(--sub)}
.proj-link{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--mono);font-size:0.78rem;letter-spacing:0.05em;text-transform:uppercase;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:2px;transition:color 0.15s,border-color 0.15s}
.proj-link:hover{color:var(--accent);border-color:var(--accent)}
.proj-link::after{content:'↗'}

.section-block{padding:3rem;border-bottom:1px solid var(--rule);max-width:1200px;margin-left:auto;margin-right:auto}
.section-block:last-of-type{border-bottom:none}
.block-label{font-family:var(--mono);font-size:0.78rem;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;color:var(--mid);margin-bottom:1.5rem;display:flex;align-items:center;gap:0.75rem}
.block-label::before{content:'';width:16px;height:1.5px;background:var(--mid)}
.block-desc{font-size:1.05rem;line-height:1.85;color:var(--sub);max-width:68ch;margin-bottom:2rem}

.img-grid-1{display:grid;grid-template-columns:1fr;gap:1.25rem}
.img-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.img-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.img-grid-2-1{display:grid;grid-template-columns:2fr 1fr;gap:1.25rem}
.img-cell{background:var(--bg);overflow:hidden}
.img-cell img{width:100%;display:block}
.img-caption{font-family:var(--mono);font-size:0.72rem;letter-spacing:0.05em;color:var(--mid);padding:0.65rem 0 0.25rem;text-transform:uppercase}

.desktop-mobile{display:grid;grid-template-columns:2fr 1fr;gap:2rem;align-items:start}
.desktop-mobile .img-cell{border:1px solid var(--rule)}

.vimeo-wrap{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;background:var(--sand);border:1px solid var(--rule)}
.vimeo-wrap iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}
.vimeo-title{font-family:var(--serif);font-size:1.4rem;font-weight:600;letter-spacing:-0.01em;color:var(--ink);margin-bottom:1rem}
.vimeo-desc{font-size:1rem;line-height:1.8;color:var(--sub);max-width:60ch;margin-bottom:1.5rem}
.video-block{margin-bottom:3rem}
.video-block:last-child{margin-bottom:0}

/* Task / Action / Result */
.tar-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid var(--rule);
}
.tar-cell {
  padding: 2rem 2.25rem;
  border-right: 1px solid var(--rule);
}
.tar-cell:last-child { border-right: none; }
.tar-label {
  font-family: var(--mono);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.6rem;
}
.tar-label::before {
  content: '';
  width: 12px;
  height: 1.5px;
  background: var(--accent);
  flex-shrink: 0;
}
.tar-heading {
  font-family: var(--serif);
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin-bottom: 0.85rem;
  line-height: 1.15;
}
.tar-body {
  font-size: 0.97rem;
  line-height: 1.8;
  color: var(--sub);
}

/* Desktop / mobile screen pairs */
.screen-pair {
  display: grid;
  grid-template-columns: 3fr 1fr;
  gap: 1.5rem;
  align-items: start;
  margin-bottom: 2.5rem;
}
.screen-pair:last-child { margin-bottom: 0; }
.screen-label {
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--mid);
  margin-bottom: 0.5rem;
}
.screen-img { cursor: zoom-in; }
.screen-img img {
  width: 100%;
  display: block;
  border: 1px solid var(--rule);
}

footer{background:var(--ink);display:flex;align-items:center;justify-content:space-between;padding:1.75rem 3rem}
.footer-name{font-family:var(--serif);font-size:1.1rem;font-weight:600;color:#fff}
.footer-meta{font-family:var(--mono);font-size:0.78rem;letter-spacing:0.04em;color:rgba(255,255,255,0.4)}

@media(max-width:860px){
  .proj-hero{grid-template-columns:1fr;gap:2rem;padding:5rem 1.5rem 2rem}
  .section-block{padding:2rem 1.5rem}
  .img-grid-2,.img-grid-3,.img-grid-2-1{grid-template-columns:1fr}
  .desktop-mobile{grid-template-columns:1fr}
  .tar-grid{grid-template-columns:1fr}
  .tar-cell{border-right:none;border-bottom:1px solid var(--rule)}
  .tar-cell:last-child{border-bottom:none}
  .screen-pair{grid-template-columns:1fr}
}
@media(max-width:640px){
  nav{padding:0 1.5rem}
  footer{flex-direction:column;gap:0.5rem;text-align:center;padding:1.25rem}
}
