:root{
  --bg:#0d0e11;--bg2:#121317;--panel:#17181d;--panel2:#1c1d23;
  --ink:#f4f0e9;--muted:#a9a59c;--line:rgba(255,255,255,.09);
  --accent:#f2a43a;--accent2:#e8743b;--ok:#8be2a4;--bad:#ff8e8e;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --r:16px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.65 var(--sans);-webkit-font-smoothing:antialiased;
  background-image:radial-gradient(900px 520px at 85% -5%,rgba(242,164,58,.10),transparent 60%),radial-gradient(700px 480px at -10% 40%,rgba(232,116,59,.06),transparent 60%);background-repeat:no-repeat}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-999px;top:8px;background:var(--accent);color:#1a1206;padding:10px 14px;border-radius:8px;font-weight:700;z-index:50}
.skip:focus{left:12px}

/* header */
.top{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 28px;background:rgba(13,14,17,.82);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);letter-spacing:.06em;text-decoration:none;font-size:19px}
.brand b{font-weight:700}
.brand .mark{width:50px;height:auto;filter:drop-shadow(0 2px 8px rgba(242,164,58,.35))}
.brand span{font-family:var(--sans);font-weight:500;font-size:14px;letter-spacing:.04em;color:var(--muted)}
.top nav{display:flex;align-items:center;gap:6px}
.top nav a{text-decoration:none;color:var(--muted);font-size:15px;padding:8px 12px;border-radius:999px;transition:color .2s,background .2s}
.top nav a:hover{color:var(--ink);background:rgba(255,255,255,.06)}
.top nav a.cta{color:#1a1206;background:linear-gradient(135deg,var(--accent),var(--accent2));font-weight:700;margin-left:6px}
.top nav a.cta:hover{filter:brightness(1.08);background:linear-gradient(135deg,var(--accent),var(--accent2))}

/* hero */
.hero{position:relative;display:grid;grid-template-columns:1.05fr .95fr;align-items:end;gap:12px;max-width:1180px;margin:0 auto;padding:72px 28px 0;min-height:min(88vh,780px);overflow:hidden}
.hero-copy{align-self:center;padding-bottom:64px;position:relative;z-index:2}
.eyebrow{display:inline-block;color:var(--accent);font-size:12.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;margin:0 0 18px;padding:6px 12px;border:1px solid rgba(242,164,58,.35);border-radius:999px;background:rgba(242,164,58,.07)}
h1{font-family:var(--serif);font-size:clamp(38px,5.6vw,68px);line-height:1.04;margin:0 0 22px;letter-spacing:-.02em;font-weight:700}
h1 em{font-style:italic;color:var(--accent)}
.lede{color:var(--muted);font-size:19px;max-width:560px;margin:0 0 30px}
.hero-logo{width:clamp(180px,20vw,265px);height:auto;margin:0 0 26px -6px;filter:drop-shadow(0 14px 30px rgba(0,0,0,.6)) drop-shadow(0 0 28px rgba(242,164,58,.18))}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-block;padding:13px 24px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#1a1206;border-radius:999px;text-decoration:none;font-weight:700;letter-spacing:.01em;border:0;transition:transform .2s,filter .2s,box-shadow .2s;box-shadow:0 8px 24px rgba(232,116,59,.25)}
.btn:hover{transform:translateY(-2px);filter:brightness(1.07)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid rgba(255,255,255,.22);box-shadow:none}
.btn.ghost:hover{background:rgba(255,255,255,.06)}
.hero-photo{position:relative;align-self:end;justify-self:end;width:100%;max-width:520px}
.hero-photo img{width:100%;aspect-ratio:933/1180;object-fit:cover;object-position:50% 12%;
  -webkit-mask-image:linear-gradient(to top,transparent 0,#000 18%),linear-gradient(to right,transparent 0,#000 22%);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(to top,transparent 0,#000 18%),linear-gradient(to right,transparent 0,#000 22%);mask-composite:intersect;filter:contrast(1.04)}
.hero-photo::after{content:"";position:absolute;inset:auto 0 0 0;height:30%;background:linear-gradient(to top,var(--bg),transparent);pointer-events:none}

/* services strip */
.strip{border-block:1px solid var(--line);background:var(--bg2);overflow:hidden}
.strip ul{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 34px;list-style:none;margin:0 auto;padding:18px 24px;max-width:1180px}
.strip li{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:34px}
.strip li:not(:last-child)::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.7}

/* sections */
.wrap{max-width:1120px;margin:0 auto;padding:88px 28px}
.sec-head{margin:0 0 40px;max-width:640px}
.kicker{color:var(--accent);font-size:12.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;margin:0 0 10px}
h2{font-family:var(--serif);font-size:clamp(30px,4vw,44px);line-height:1.1;margin:0;letter-spacing:-.015em}
h3{font-family:var(--serif);margin:0 0 8px;font-size:22px}
.sub{color:var(--muted);margin:12px 0 0}

.cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.cards li{position:relative;background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:var(--r);padding:28px;transition:transform .25s,border-color .25s,box-shadow .25s}
.cards li:hover{transform:translateY(-4px);border-color:rgba(242,164,58,.4);box-shadow:0 18px 40px rgba(0,0,0,.4)}
.cards .ic{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;margin-bottom:18px;color:var(--accent);background:rgba(242,164,58,.1);border:1px solid rgba(242,164,58,.25)}
.cards svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cards p{margin:0;color:var(--muted);font-size:16px}

/* artists */
.artist{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;margin-bottom:28px;padding:32px;border:1px solid var(--line);border-radius:20px;background:var(--panel)}
.artist.flip img{order:2}
.artist img{border-radius:14px;border:1px solid var(--line)}
.artist img.logo{max-width:340px;margin:0 auto;border:0;background:#000;border-radius:50%}
.artist.solo{grid-template-columns:minmax(240px,360px) 1fr;background:radial-gradient(900px 420px at 0% 0%,rgba(242,164,58,.14),transparent 60%),var(--panel);box-shadow:0 30px 70px rgba(0,0,0,.5);padding:40px}
.artist.solo h3{font-size:clamp(34px,4.4vw,50px);letter-spacing:-.02em;line-height:1.05;margin-bottom:12px}
.artist.solo .portrait{width:100%;aspect-ratio:1;object-fit:cover;border:1px solid rgba(255,255,255,.14);box-shadow:0 0 0 7px rgba(242,164,58,.07),0 22px 50px rgba(0,0,0,.6)}
.tag{color:var(--accent);font-size:12.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin:0 0 12px}
.artist p{color:#d6d2c9}
blockquote{margin:26px 0;padding:6px 0 6px 20px;border-left:3px solid var(--accent);font-family:var(--serif);font-size:21px;font-style:italic;line-height:1.5}
blockquote cite{display:block;margin-top:8px;font-family:var(--sans);font-size:12.5px;font-style:normal;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.projects{list-style:none;margin:20px 0 6px;padding:0;display:grid;gap:12px}
.projects li{border-left:3px solid rgba(242,164,58,.5);padding:2px 0 2px 14px}
.projects a{font-weight:700;text-decoration-color:rgba(242,164,58,.6);text-underline-offset:3px}
.projects a:hover{color:var(--accent)}
.projects span{display:block;color:var(--muted);font-size:15px}

/* gallery */
.gh{margin:40px 0 16px;color:var(--muted);font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.gh:first-of-type{margin-top:0}
.grid{columns:3 240px;column-gap:14px}
.grid img{width:100%;margin:0 0 14px;border-radius:12px;border:1px solid var(--line);break-inside:avoid;cursor:zoom-in;transition:transform .3s,filter .3s,border-color .3s}
.grid img:hover{transform:scale(1.015);filter:brightness(1.08);border-color:rgba(242,164,58,.5)}
dialog#lb{border:0;background:transparent;padding:0;max-width:96vw;max-height:96vh;color:var(--ink)}
dialog#lb::backdrop{background:rgba(5,5,7,.92);backdrop-filter:blur(6px)}
dialog#lb figure{margin:0;display:grid;justify-items:center;gap:12px}
dialog#lb img{max-width:92vw;max-height:84vh;width:auto;height:auto;border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.7)}
dialog#lb figcaption{font-size:14px;color:var(--muted)}
.lb-btn{position:fixed;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(20,20,24,.7);color:#fff;font-size:24px;cursor:pointer;display:grid;place-items:center}
.lb-btn:hover{background:rgba(242,164,58,.9);color:#1a1206}
.lb-prev{left:18px}.lb-next{right:18px}
.lb-close{top:22px;right:22px;transform:none}

/* contact */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:start}
.who{line-height:1.9;color:var(--muted);margin:22px 0 0}
.who strong{color:var(--ink);font-size:18px;font-family:var(--serif)}
.who a{color:var(--accent);text-decoration:none;font-weight:600}
.who a:hover{text-decoration:underline}
.cform{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:20px;padding:32px;display:grid;gap:18px;box-shadow:0 24px 60px rgba(0,0,0,.4)}
.cform h3{margin:0;font-size:24px}
.cform .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cform label{display:grid;gap:7px;font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--muted)}
.cform input,.cform select,.cform textarea{font:inherit;font-weight:400;letter-spacing:0;color:var(--ink);background:#0e0f13;border:1px solid rgba(255,255,255,.13);border-radius:10px;padding:12px 14px;width:100%;transition:border-color .2s,box-shadow .2s}
.cform textarea{resize:vertical;min-height:140px}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(242,164,58,.18)}
.cform .btn{cursor:pointer;font:inherit;font-weight:700;justify-self:start}
.cform .btn:disabled{opacity:.6;cursor:wait;transform:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.note{display:none;margin:0;padding:12px 14px;border-radius:10px;font-size:15px}
.note:target{display:block}
.ok{color:var(--ok)}.bad{color:var(--bad)}
.note.ok{background:rgba(60,180,100,.12);border:1px solid rgba(60,180,100,.35)}
.note.bad{background:rgba(255,90,90,.1);border:1px solid rgba(255,90,90,.35)}
.status{margin:0;min-height:1.4em;font-size:15px}

/* in memory of */
.memorial{margin-top:48px;padding:34px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.03),transparent),var(--panel);text-align:center}
.memorial .kicker{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:6px}
.memorial .kicker::before,.memorial .kicker::after{content:"";height:1px;width:min(90px,18%);background:linear-gradient(90deg,transparent,rgba(242,164,58,.6))}
.memorial .kicker::after{transform:scaleX(-1)}
.memorial h3{font-size:clamp(26px,3.4vw,38px);margin:0 0 24px}
.mem-grid{display:grid;columns:auto;grid-template-columns:1.034fr 1.287fr 1.209fr;gap:14px;align-items:start}
.mem-grid img{margin:0;width:100%;height:auto;border-radius:12px}
.mem-link{margin:26px 0 0}
.mem-link .btn{margin:0}

/* contact page + home CTA band */
.page-top{padding-top:72px}
.page-h{font-family:var(--serif);font-size:clamp(34px,5vw,56px);line-height:1.05;margin:0 0 16px;letter-spacing:-.02em}
.people{display:grid;gap:18px;margin-top:30px}
.person{padding:20px 22px;border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(180deg,var(--panel2),var(--panel))}
.person .tag{margin:0 0 6px}
.person .who{margin:0}
.cta-band{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:28px;padding:44px;border:1px solid var(--line);border-radius:22px;background:radial-gradient(900px 300px at 0% 0%,rgba(242,164,58,.16),transparent 60%),var(--panel)}
.cta-band .sub{max-width:520px}
.cta-actions{display:flex;flex-wrap:wrap;gap:12px}

/* footer */
footer{border-top:1px solid var(--line);background:var(--bg2)}
.foot{max-width:1120px;margin:0 auto;padding:44px 28px;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:32px;font-size:15px;color:var(--muted)}
.foot-logo{width:160px;height:auto;margin:0 0 14px;filter:drop-shadow(0 8px 18px rgba(0,0,0,.5))}
.foot b{display:block;color:var(--ink);font-family:var(--serif);font-size:18px;margin-bottom:10px}
.foot a{display:block;text-decoration:none;padding:3px 0}
.foot a:hover{color:var(--accent)}
.copy{max-width:1120px;margin:0 auto;padding:18px 28px 32px;border-top:1px solid var(--line);color:#7f7b73;font-size:13px}

/* motion */
.js .rv{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}.js .rv{opacity:1;transform:none}}

/* responsive */
@media(max-width:900px){
  .hero{grid-template-columns:1fr;min-height:0;padding-top:48px}
  .hero-copy{padding-bottom:12px}
  .hero-photo{justify-self:center;max-width:420px}
  .contact-grid,.foot{grid-template-columns:1fr}
}
@media(max-width:720px){
  body{font-size:16px}
  .top{padding:12px 16px}
  .brand span{display:none}
  .cta-band{padding:26px}
  .memorial{padding:22px}
  .mem-grid{grid-template-columns:1fr}
  .brand .mark{width:46px}
  .hero-logo{width:150px;margin-bottom:20px}
  .top nav a{padding:7px 9px;font-size:14px}
  .top nav a.cta{display:none}
  .wrap{padding:60px 20px}
  .artist,.artist.solo{grid-template-columns:1fr;padding:22px;gap:24px}
  .artist.flip img{order:0}
  .artist.solo .portrait{max-width:360px}
  .cform{padding:22px}.cform .row{grid-template-columns:1fr}
  .strip li{gap:20px;font-size:11.5px}
  .lb-btn{width:42px;height:42px}
}
