:root { --ink:#20202a; --muted:#626372; --paper:#f7f5ef; --white:#fff; --purple:#36256e; --coral:#f26c52; --lime:#d7e84b; --line:#d7d5dc; --max:1260px; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans",Arial,sans-serif; line-height:1.6; }
.wrap { width:min(calc(100% - 48px),var(--max)); margin:0 auto; }
.site-header { background:var(--purple); color:#fff; border-bottom:4px solid var(--ink); }
.nav { min-height:88px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.home-link { display:inline-flex; align-items:center; min-height:42px; padding:0 17px; background:var(--lime); color:var(--ink); font-family:"Plus Jakarta Sans",Arial,sans-serif; font-size:.85rem; font-weight:800; text-decoration:none; text-transform:uppercase; letter-spacing:.08em; }
nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
nav a { padding:9px 11px; color:#fff; font-size:.7rem; font-weight:600; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; }
nav a:hover, nav a[aria-current="page"] { background:var(--coral); }
.hero { padding:90px 0 70px; }
.eyebrow { color:var(--coral); font-size:.73rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
h1, h2 { font-family:"Plus Jakarta Sans",Arial,sans-serif; letter-spacing:-.075em; line-height:.95; }
h1 { max-width:850px; margin:18px 0 24px; color:var(--purple); font-size:clamp(3.5rem,8vw,8rem); }
.hero p { max-width:700px; margin:0; color:var(--muted); font-size:1.15rem; }
main { padding-bottom:105px; }
.content-rule { border-top:2px solid var(--ink); }
.portfolio-content { max-width:1040px; margin:0 auto; padding-top:58px; }
figure { margin:0; }
.work-frame { padding:16px; background:var(--white); border:1px solid var(--line); }
.work-frame img { display:block; width:100%; height:auto; max-height:760px; object-fit:contain; }
.work-caption { margin-top:14px; color:var(--muted); font-size:.9rem; line-height:1.45; }
.work-caption strong { color:var(--ink); font-weight:600; }
.work-caption span { display:block; }
.media-stack { margin:24px 0; }
.media-item { margin:0 0 24px; }
.media-item:last-child { margin-bottom:0; }
.media-item .work-frame { margin:0; }
.media-item iframe { display:block; width:100%; aspect-ratio:16 / 9; border:0; background:#111; }
.media-item.vertical iframe { aspect-ratio:9 / 16; max-width:560px; margin:0 auto; }
.media-caption { margin-top:12px; color:var(--muted); font-size:.88rem; line-height:1.45; }
.media-caption strong { color:var(--ink); font-weight:600; }
.project-links { margin-top:1.5em; }
.project-links a { color:var(--purple); font-weight:600; }
blockquote { margin:1.5em 0; padding-left:20px; border-left:3px solid var(--coral); color:var(--muted); }
.portfolio-text { max-width:none; margin:0 0 24px; color:var(--muted); font-size:1.02rem; }
.portfolio-text p { margin:0 0 1.25em; }
.portfolio-text p:last-child { margin-bottom:0; }
.portfolio-text ul { margin:0 0 1.25em; padding-left:1.25em; }
.portfolio-text blockquote p { margin:0 0 1.25em; }
.portfolio-text blockquote p:last-child { margin-bottom:0; }
.portfolio-return { display:flex; justify-content:flex-end; margin-top:10px; }
.portfolio-return a { display:inline-block; padding:11px 15px; background:var(--lime); color:var(--ink); font-size:.7rem; font-weight:700; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; }
.portfolio-return a:hover { background:var(--coral); }
footer { display:flex; justify-content:space-between; gap:20px; padding:28px 0 40px; border-top:1px solid var(--line); color:var(--muted); font-size:.82rem; }
@media (max-width:780px) {
  .wrap { width:min(calc(100% - 30px),var(--max)); }
  .nav { align-items:flex-start; flex-direction:column; padding:20px 0; }
  nav { justify-content:flex-start; gap:4px; }
  nav a { padding:8px 7px; }
  .hero { padding:70px 0 58px; }
  .portfolio-content { padding-top:40px; }
  .work-frame { padding:9px; }
  .portfolio-text { margin:0 0 24px; }
  .media-stack { margin:24px 0; }
  footer { flex-direction:column; }
}
