/* DMDecoy — shared site styles */
:root{
  --ink:#211c16;
  --paper:#eee7d8;
  --paper-raised:#f5f0e4;
  --cedar:#7a4a2e;
  --marsh:#3c4a42;
  --oxide:#a63c26;
  --stone:#c7c0ac;
  --stone-line:rgba(33,28,22,.14);
  --maxw:1180px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.serif{font-family:'Fraunces',serif}

/* header / nav */
.site-header{
  border-bottom:1px solid var(--stone-line);
  background:var(--paper);
  position:sticky;
  top:0;
  z-index:40;
}
.header-inner{
  max-width:var(--maxw);
  margin:0 auto;
  padding:1.1rem 1.5rem 1.6rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
}
.brand{
  font-family:'Fraunces',serif;
  font-weight:600;
  font-size:1.5rem;
  letter-spacing:.01em;
  white-space:nowrap;
  line-height:1;
  position:relative;
  display:inline-block;
}
.brand small{
  position:absolute;
  left:0;
  top:100%;
  margin-top:.3rem;
  display:block;
  font-family:'Inter',sans-serif;
  font-weight:400;
  font-size:.62rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--marsh);
  white-space:nowrap;
}
nav.main-nav{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.3rem 1.3rem;
  font-size:.76rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  justify-content:flex-end;
}
nav.main-nav a{
  padding:.3rem 0;
  border-bottom:1.5px solid transparent;
  transition:border-color .2s ease, color .2s ease;
}
nav.main-nav a:hover, nav.main-nav a.active{
  border-color:var(--oxide);
  color:var(--oxide);
}
.nav-group{position:relative;display:inline-flex;align-items:center}
.nav-group .drop{
  display:none;
  position:absolute;
  top:100%;
  left:0;
  background:var(--paper-raised);
  border:1px solid var(--stone-line);
  min-width:190px;
  padding:.4rem 0;
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}
.nav-group:hover .drop{display:block}
.nav-group .drop a{
  display:block;
  padding:.5rem 1rem;
  border-bottom:none;
  text-transform:none;
  letter-spacing:.02em;
  font-size:.85rem;
}
.nav-group .drop a:hover{background:var(--paper);color:var(--oxide)}

/* page heading */
.page-head{
  max-width:var(--maxw);
  margin:0 auto;
  padding:3rem 1.5rem 1rem;
}
.eyebrow{
  font-size:.72rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--marsh);
  margin-bottom:.6rem;
}
.page-head h1{
  font-family:'Fraunces',serif;
  font-weight:600;
  font-size:clamp(2rem,5vw,3rem);
  line-height:1.05;
}
.page-head p.dek{
  margin-top:.8rem;
  max-width:560px;
  color:#4a4237;
  font-size:1rem;
}

/* gallery grid */
.gallery{
  max-width:var(--maxw);
  margin:0 auto;
  padding:1.5rem 1.5rem 5rem;
  columns:3 280px;
  column-gap:16px;
}
.gallery figure{
  break-inside:avoid;
  margin:0 0 16px;
  position:relative;
  background:var(--ink);
  overflow:hidden;
  cursor:zoom-in;
  border-radius:2px;
}
.gallery img{
  width:100%;
  height:auto;
  display:block;
  transition:transform .6s cubic-bezier(.2,.7,.2,1);
}
.gallery figure:hover img{transform:scale(1.045)}
.tag-label{
  position:absolute;
  left:.6rem;
  right:.6rem;
  bottom:.6rem;
  background:rgba(238,231,216,.94);
  border:1px solid rgba(33,28,22,.2);
  padding:.5rem .65rem;
  font-size:.68rem;
  line-height:1.35;
  color:var(--ink);
  opacity:0;
  transform:translateY(6px);
  transition:opacity .25s ease, transform .25s ease;
}
.tag-label .sp{
  display:block;
  font-family:'Fraunces',serif;
  font-weight:600;
  font-size:.82rem;
  letter-spacing:.01em;
  color:var(--marsh);
}
.gallery figure:hover .tag-label{opacity:1;transform:translateY(0)}

/* lightbox */
.lb{
  position:fixed;inset:0;
  background:rgba(20,17,13,.95);
  display:none;
  align-items:center;justify-content:center;
  padding:2rem;
  cursor:zoom-out;
  z-index:100;
}
.lb.open{display:flex}
.lb img{max-width:100%;max-height:88vh;box-shadow:0 20px 60px rgba(0,0,0,.5);cursor:default}
.lb-close{
  position:absolute;top:1.2rem;right:1.8rem;
  color:var(--paper);font-size:2rem;line-height:1;background:none;border:0;cursor:pointer;opacity:.75;
}
.lb-close:hover{opacity:1}

/* footer */
.site-footer{
  border-top:1px solid var(--stone-line);
  text-align:center;
  padding:2.4rem 1.5rem;
  font-size:.75rem;
  color:#6b6252;
}
.site-footer a{border-bottom:1px solid var(--stone-line)}

/* tutorial pages */
.tutorial-wrap{
  max-width:var(--maxw);
  margin:0 auto;
  padding:1rem 1.5rem 5rem;
  display:grid;
  grid-template-columns:200px 1fr;
  gap:3rem;
}
.step-nav{position:sticky;top:6rem;align-self:start;font-size:.82rem}
.step-nav .label{
  font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--marsh);margin-bottom:.7rem;
}
.step-nav a{
  display:block;padding:.35rem 0;color:#6b6252;border-left:2px solid var(--stone-line);padding-left:.7rem;
  transition:color .2s ease,border-color .2s ease;
}
.step-nav a:hover, .step-nav a.active{color:var(--oxide);border-color:var(--oxide)}
.step{padding-bottom:3.2rem;border-bottom:1px solid var(--stone-line);margin-bottom:3.2rem;scroll-margin-top:5.5rem}
.step:last-child{border-bottom:none}
.step .stepno{
  font-family:'Fraunces',serif;font-size:.85rem;color:var(--oxide);letter-spacing:.04em;margin-bottom:.3rem;
}
.step h2{font-family:'Fraunces',serif;font-weight:600;font-size:1.5rem;margin-bottom:.9rem}
.step p{max-width:640px;margin-bottom:1rem;color:#3a332a}
.step .imgs{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.8rem;margin:1rem 0}
.step .imgs img{border-radius:2px}
.step .imgs.single{grid-template-columns:minmax(260px,560px)}

@media (max-width:800px){
  .tutorial-wrap{grid-template-columns:1fr}
  .step-nav{
    position:static;display:flex;overflow-x:auto;gap:1rem;padding-bottom:.5rem;
    border-bottom:1px solid var(--stone-line);margin-bottom:1rem;
  }
  .step-nav .label{display:none}
  .step-nav a{border-left:none;border-bottom:2px solid var(--stone-line);white-space:nowrap;padding:.3rem .1rem}
  .gallery{columns:2 200px}
}
@media (max-width:520px){
  .gallery{columns:1}
  .header-inner{flex-direction:column;align-items:flex-start;gap:.8rem}
  nav.main-nav{justify-content:flex-start}
}

/* contact */
.contact-card{
  max-width:560px;margin:0 auto 5rem;padding:0 1.5rem;
}
.contact-card .email{
  display:inline-block;margin-top:1rem;font-family:'Fraunces',serif;font-size:1.3rem;color:var(--oxide);
  border-bottom:1px solid var(--oxide);
}

/* splash */
.splash{
  min-height:100vh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:2rem;position:relative;color:#f4efe4;
  background:linear-gradient(180deg,rgba(20,17,13,.55),rgba(20,17,13,.82)),
    var(--hero-img) center/cover no-repeat;
}
.splash .mark{width:min(220px,50vw);opacity:.95;margin-bottom:1.4rem;filter:brightness(0) invert(1)}
.splash h1{font-family:'Fraunces',serif;font-weight:600;font-size:clamp(1.7rem,4.5vw,2.6rem);margin-bottom:.5rem}
.splash .sub{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(244,239,228,.75);margin-bottom:2.4rem}
.splash .enter{
  border:1px solid rgba(244,239,228,.55);padding:.8rem 2.3rem;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;
  transition:background .25s ease,color .25s ease;
}
.splash .enter:hover{background:#f4efe4;color:var(--ink)}

/* home intro (non-splash landing sections used on interior pages) */
.intro-grid{
  max-width:var(--maxw);margin:0 auto;padding:0 1.5rem 3rem;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem;
}
.intro-card{
  background:var(--paper-raised);border:1px solid var(--stone-line);padding:1.4rem;
}
/* journal posts */
.post-meta{
  font-size:.78rem;color:#6b6252;margin-bottom:2rem;
}
.post-body{
  max-width:640px;margin:0 auto;padding:0 1.5rem 4rem;
}
.post-body img{
  max-width:480px;width:100%;margin:0 auto 1.6rem;display:block;
  border:1px solid var(--stone-line);
}
.post-body.multi{max-width:760px}
.post-body .photo-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;
  margin-bottom:1.6rem;
}
.post-body .photo-grid img{max-width:none;width:100%;margin-bottom:0}
.post-body a{color:var(--oxide);border-bottom:1px solid var(--stone-line)}
.post-body p{margin-bottom:1rem;color:#3a332a}
.post-nav{
  border-top:1px solid var(--stone-line);margin-top:2rem;padding-top:1.2rem;font-size:.85rem;
}
.post-nav a{color:var(--oxide)}

.journal-list{
  max-width:720px;margin:0 auto;padding:0 1.5rem 5rem;
}
.journal-entry{
  display:grid;grid-template-columns:140px 1fr;gap:1.2rem;
  padding:1.4rem 0;border-bottom:1px solid var(--stone-line);
}
.journal-entry img{width:140px;height:105px;object-fit:cover;border:1px solid var(--stone-line)}
.journal-entry .sp{font-family:'Fraunces',serif;font-size:1.15rem;margin-bottom:.2rem}
.journal-entry .meta{font-size:.72rem;color:#6b6252;margin-bottom:.4rem}
.journal-entry p{font-size:.86rem;color:#5b5346}

