:root{
  --charcoal:#23211f; --gray:#f4efe3; --gray-2:#e7e0d1;
  --paint:#f2eee6; --ink:#1a1713; --muted:#463d31; --oxblood:#7a2318;
  --rail-w:33%; --pad:clamp(1.75rem,3.2vw,3.25rem);
  --serif:"Old Standard TT",Georgia,serif;
  --gothic:"Archivo Narrow",Arial,sans-serif;
  --tooth:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='t'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23t)'/%3E%3C/svg%3E");
  --mottle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='700' height='700'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.012' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='700' height='700' filter='url(%23m)'/%3E%3C/svg%3E");
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--gray); color:var(--ink);
  font-family:var(--gothic); font-size:18px; line-height:1.6;
}

/* rail */
.rail{
  position:fixed; inset:0 auto 0 0; width:var(--rail-w);
  background:var(--charcoal); color:var(--paint);
  display:flex; flex-direction:column; justify-content:space-between;
  padding:var(--pad); isolation:isolate;
}
.rail::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:2;
  background-image:
    radial-gradient(120% 80% at 50% 38%, rgba(0,0,0,0) 45%, rgba(0,0,0,.42) 100%),
    var(--tooth),var(--mottle);
  background-size:auto,180px 180px,700px 700px;
  opacity:.30; mix-blend-mode:overlay;
}
.rail > *{position:relative; z-index:3;}
.rail-top{text-align:center;}
.logo{width:100%; max-width:340px; height:auto; display:inline-block; margin:0 auto;}
.backlinks{margin-top:1.4rem; display:flex; flex-direction:column; gap:.55rem; align-items:center;}
.backlink{
  font-family:var(--gothic); font-weight:600;
  font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  color:#a29c94; text-decoration:none; border-bottom:1px solid #55504a;
}
.backlink:hover{color:var(--paint); border-bottom-color:var(--paint);}
.rail-bottom .eyebrow{color:#8f8a83;}
.rail address{
  font-style:normal; display:flex; flex-direction:column; gap:.35rem;
  font-family:var(--gothic); font-size:.95rem; letter-spacing:.05em;
}
.rail address a{color:var(--paint); text-decoration:none; border-bottom:1px solid #55504a;}
.rail address a:hover{border-bottom-color:var(--paint);}
.rail address span{color:#a29c94;}
.fineprint{
  margin:1.6rem 0 0; font-family:var(--gothic);
  font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:#6d6760;
}
.eyebrow{
  font-family:var(--gothic); font-weight:600;
  font-size:.72rem; letter-spacing:.24em; text-transform:uppercase;
  color:var(--muted); margin:0 0 1rem;
}

/* stage */
.stage{
  margin-left:var(--rail-w); min-height:100vh;
  padding:var(--pad); background:var(--gray); position:relative;
}
.stage::before{
  content:""; position:fixed; inset:0 0 0 var(--rail-w); pointer-events:none; z-index:0;
  background-image:var(--tooth),var(--mottle);
  background-size:180px 180px,700px 700px;
  opacity:.16; mix-blend-mode:multiply;
}
.panel{max-width:60rem; position:relative; z-index:1;}

h1{
  font-family:var(--serif); font-weight:700; text-transform:uppercase;
  letter-spacing:.07em; line-height:1.2;
  font-size:clamp(1.5rem,2.4vw,2.1rem); margin:0 0 .3rem;
}
.tagline{
  font-family:var(--gothic); font-weight:600;
  font-size:.78rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted); margin:0 0 1.6rem;
}

/* resource buttons */
.resources{
  list-style:none; margin:0 0 2rem; padding:0;
  display:flex; flex-wrap:wrap; gap:.7rem;
}
.resources a{
  display:inline-block; text-decoration:none;
  font-family:var(--gothic); font-weight:600;
  font-size:.74rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink); background:var(--gray-2);
  border:1px solid #b9b4ac; padding:.55rem 1rem;
  transition:background .15s ease, transform .15s ease, border-color .15s ease;
}
.resources a:hover,.resources a:focus-visible{
  background:#fff; transform:translateY(-2px); border-color:#8f8a83; outline:none;
}

hr.jump{border:0; border-top:2px solid var(--ink); margin:2.6rem 0 2rem; max-width:60rem;}

h2{
  font-family:var(--serif); font-weight:700; text-transform:uppercase;
  letter-spacing:.06em; font-size:clamp(1.1rem,1.5vw,1.35rem);
  margin:0 0 1.3rem;
}

/* entry blocks */
.entry{padding:1rem 0; border-top:1px solid #c2bdb5;}
.entry:first-of-type{border-top:0; padding-top:0;}
.entry h3{
  font-family:var(--gothic); font-weight:600;
  font-size:.9rem; letter-spacing:.08em; text-transform:uppercase;
  margin:0 0 .15rem; line-height:1.3;
}
.entry .meta{
  font-family:var(--gothic); font-size:.82rem; letter-spacing:.03em;
  color:var(--muted); margin:0 0 .5rem; line-height:1.45;
}
.entry p{margin:0 0 .5rem; max-width:52rem;}
.entry .venues{
  font-size:.9rem; color:var(--muted); margin:.3rem 0 0; max-width:52rem;
}
.credit{font-style:italic; color:var(--muted); font-size:.92rem;}

.affil{
  font-size:.98rem; margin:0 0 .6rem; max-width:52rem;
}
.affil strong{
  font-family:var(--gothic); font-weight:600; font-size:.86rem;
  letter-spacing:.05em; text-transform:uppercase;
}

/* client list strip */
.clients{
  list-style:none; margin:1.4rem 0 0; padding:1.2rem 0; max-width:60rem;
  border-top:3px solid var(--ink); border-bottom:1px solid var(--ink);
  display:grid; gap:.4rem 2rem;
  grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));
}
.clients li{
  font-family:var(--gothic); font-weight:600;
  font-size:.74rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--muted); line-height:1.35; margin:0;
}

a:focus-visible{outline:2px solid #b4522f; outline-offset:3px;}

/* stack on narrow screens */
@media (max-width:820px){
  .rail{position:static; width:100%; gap:2.5rem;}
  .stage{margin-left:0;}
  .stage::before{inset:0;}
  .logo{max-width:280px;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .resources a{transition:none;}
}

/* stage credits table (acting) */
.credits{
  display:grid; grid-template-columns:minmax(11rem,1.3fr) minmax(8rem,1fr) minmax(12rem,1.4fr);
  gap:.02rem 1.4rem; margin:0 0 1rem; max-width:60rem;
}
.credits > span{padding:.16rem 0; line-height:1.34; font-size:.92rem; color:var(--ink); font-weight:400;}
.credits .role{text-transform:none; letter-spacing:0; font-weight:400; color:var(--ink); margin:0;}
.credits .show{font-style:italic;}
.credits .co b{font-weight:400; color:var(--ink); font-style:normal;}
.footnote{font-size:.8rem; color:var(--muted); font-style:italic; margin:.6rem 0 0; max-width:56rem; line-height:1.5;}
.block{max-width:56rem;}
.block .lead{font-weight:400;}
.block .shows{font-weight:700; margin:.3rem 0;}
.block .tour{font-style:italic; color:var(--muted);}
.section-note{margin:.4rem 0; max-width:56rem; line-height:1.5;}
@media (max-width:620px){
  .credits{grid-template-columns:1fr; gap:.02rem;}
  .credits .role,.credits .co{padding-left:.6rem;}
  .credits .role{color:var(--ink);}
  .credits > span:nth-child(3n+1){margin-top:.5rem;}
}

/* index page texture (scoped so resume/rail pages are unaffected) */
body:has(.wrap)::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0;
  background-image:var(--tooth),var(--mottle);
  background-size:180px 180px,700px 700px;
  opacity:.16; mix-blend-mode:multiply;
}

.wrap{position:relative; z-index:1; max-width:64rem; margin:0 auto; padding:var(--pad);}

/* ---- masthead ---- */
.masthead{text-align:center; padding:1.5rem 0 2.5rem;}
.portrait{
  width:190px; height:190px; object-fit:cover; border-radius:50%;
  border:1px solid #b9b4ac; background:var(--gray-2);
  filter:grayscale(1) sepia(.15) contrast(.95) brightness(1.05);
  margin:0 auto 1.6rem; display:block;
  transition:filter .3s ease;
}
.portrait:hover{filter:none;}
.masthead-nav{margin:0 0 1.1rem;}
.masthead-nav a{
  font-family:var(--gothic); font-weight:600;
  font-size:.74rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted); text-decoration:none;
  border-bottom:1px solid #b9b4ac; padding-bottom:.15rem;
  transition:color .15s ease, border-color .15s ease;
}
.masthead-nav a:hover,.masthead-nav a:focus-visible{
  color:#b4522f; border-bottom-color:#b4522f; outline:none;
}
.name{
  font-family:var(--serif); font-weight:700; text-transform:uppercase;
  letter-spacing:.09em; line-height:1.2;
  font-size:clamp(1.6rem,3.4vw,2.6rem); margin:0 0 .5rem;
}
.role{
  font-family:var(--gothic); font-weight:600;
  font-size:.8rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--muted); margin:0 0 1.6rem;
}
.bio{font-size:1.08rem; max-width:44rem; margin:0 auto; color:var(--ink);}

hr.rule{border:0; border-top:2px solid var(--ink); margin:2.5rem 0; max-width:64rem;}

/* ---- routing cards ---- */
.paths{
  display:grid; gap:1.6rem;
  grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));
  margin:0 0 1rem;
}
.card{
  display:flex; flex-direction:column;
  text-decoration:none; color:inherit;
  background:var(--gray-2); border:1px solid #b9b4ac;
  padding:0 0 1.5rem;
  overflow:hidden;
  transition:transform .15s ease, background .15s ease, border-color .15s ease;
}
.card:hover,.card:focus-visible{
  background:#fff; transform:translateY(-4px); border-color:#8f8a83; outline:none;
}
.thumb{
  display:block; width:100%; aspect-ratio:16/9; object-fit:cover;
  background:#b0aba3; margin:0 0 1.3rem;
  filter:grayscale(1) sepia(.18) contrast(.9) brightness(1.06);
  opacity:.9; transition:filter .3s ease, opacity .3s ease;
}
.card:hover .thumb,.card:focus-visible .thumb{filter:none; opacity:1;}
.card .body{padding:0 1.5rem; display:flex; flex-direction:column; flex:1 1 auto;}

/* résumé links panel variant */
.card--links{
  padding:1.7rem 1.5rem; justify-content:center; text-align:center;
}
.card--links .rhead{
  font-family:var(--serif); font-weight:700; text-transform:uppercase;
  letter-spacing:.09em; font-size:1.3rem; margin:0 0 .8rem;
}
.card--links .rbar{
  border:0; border-top:2px solid var(--ink); margin:0 auto 1.2rem; width:100%;
}
.card--links ul{list-style:none; margin:0; padding:0;}
.card--links li{margin:0;}
.card--links li + li{border-top:1px solid #b9b4ac;}
.card--links a{
  display:block; padding:.6rem 0; text-decoration:none; color:var(--ink);
  font-family:var(--gothic); font-weight:600;
  font-size:.82rem; letter-spacing:.14em; text-transform:uppercase;
  transition:color .15s ease, letter-spacing .15s ease;
}
.card--links a:hover,.card--links a:focus-visible{
  color:#b4522f; letter-spacing:.18em; outline:none;
}
.card--links .rsub{
  font-family:var(--gothic); font-weight:600;
  font-size:.64rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted); margin:1.1rem 0 .2rem;
}
.card .eyebrow{
  font-family:var(--gothic); font-weight:600;
  font-size:.7rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted); margin:0 0 .6rem;
}
.card h2{
  font-family:var(--serif); font-weight:700; text-transform:uppercase;
  letter-spacing:.05em; line-height:1.22;
  font-size:1.15rem; margin:0 0 .7rem;
}
.card p{font-size:.96rem; line-height:1.5; margin:0 0 1.2rem; color:var(--ink);}
.card .go{
  margin-top:auto;
  font-family:var(--gothic); font-weight:600;
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted);
}
.card:hover .go,.card:focus-visible .go{color:var(--ink);}
.card .go::after{content:" \2192"; }

/* ---- contact footer ---- */
.foot{
  text-align:center; margin-top:2.5rem;
  font-family:var(--gothic); font-size:.95rem; letter-spacing:.04em;
}
.foot a{color:var(--ink); text-decoration:none; border-bottom:1px solid #8f8a83;}
.foot a:hover{border-bottom-color:var(--ink);}
.foot .loc{display:block; color:var(--muted); margin:.5rem 0 1.4rem;}
.foot .fineprint{
  font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted); margin-top:1.6rem;
}

a:focus-visible{outline:2px solid #b4522f; outline-offset:3px;}

/* ================= v5 styling: warm paper, oxblood accent, legibility ================= */

/* keep display headings serif */
h1,h2{font-family:var(--serif);}

/* section heads carry oxblood */
.sect{color:var(--oxblood); border-bottom-color:var(--oxblood);}
h2{color:var(--oxblood);}
.entry h3{color:var(--ink);}

/* index résumé panel heading + accents to oxblood (replace rust #b4522f) */
.card--links a:hover,.card--links a:focus-visible{color:var(--oxblood);}
.masthead-nav a:hover,.masthead-nav a:focus-visible{color:var(--oxblood); border-bottom-color:var(--oxblood);}
a:focus-visible{outline-color:var(--oxblood);}

/* images: light desaturated wash → full color on hover */
.thumb,.portrait,.plate,.gallery img{
  filter:grayscale(.62) saturate(.9) contrast(.96) brightness(1.04);
  opacity:.94;
}
.card:hover .thumb,.card:focus-visible .thumb,
.portrait:hover,.plate:hover,
.gallery a:hover img,.gallery a:focus-visible img{filter:none; opacity:1;}
@media (hover:none){
  .thumb,.portrait,.plate,.gallery img{filter:none; opacity:1;}
}

/* social links under bio */
.social{
  font-family:var(--gothic); font-weight:600;
  font-size:.78rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); margin:1.2rem auto 0; max-width:44rem;
}
.social a{color:var(--muted); text-decoration:none; border-bottom:1px solid #b9b4ac;}
.social a:hover{color:var(--oxblood); border-bottom-color:var(--oxblood);}

/* ---- current projects: two feature panels ---- */
.features{margin:0 0 1rem;}
.feat-head{
  font-family:var(--gothic); font-weight:600;
  font-size:.94rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--oxblood); border-bottom:2px solid var(--oxblood);
  padding-bottom:.5rem; margin:0 0 1.5rem;
}
.feat-grid{
  display:grid; gap:2rem;
  grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));
}
.feature{min-width:0;}
.feat-img{
  display:block; width:100%; aspect-ratio:16/9; object-fit:cover;
  background:#b0aba3; border:1px solid #b9b4ac; margin:0 0 1rem;
  filter:grayscale(.62) saturate(.9) contrast(.96) brightness(1.04);
  opacity:.94; transition:filter .3s ease, opacity .3s ease;
}
.feature:hover .feat-img{filter:none; opacity:1;}
.feature h3{
  font-family:var(--serif); font-weight:700; text-transform:uppercase;
  letter-spacing:.04em; font-size:1.15rem; margin:.3rem 0 .5rem; color:var(--ink);
}
.feature p{font-size:.98rem; line-height:1.5; margin:0 0 .7rem; color:var(--ink);}
.feat-link{
  font-family:var(--gothic); font-weight:600;
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted); text-decoration:none; border-bottom:1px solid #b9b4ac;
}
.feat-link:hover{color:var(--oxblood); border-bottom-color:var(--oxblood);}

/* ---- video grid (FodenVideo) ---- */
.vidgrid{
  display:grid; gap:2.2rem;
  grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));
  max-width:60rem; margin:0 0 1rem;
}
.vid{min-width:0;}
.vid video{
  display:block; width:100%; height:auto;
  background:#b0aba3; border:1px solid #b9b4ac;
}
.vtitle{
  font-family:var(--gothic); font-weight:600;
  font-size:.86rem; letter-spacing:.09em; text-transform:uppercase;
  color:var(--ink); margin:.7rem 0 .25rem; line-height:1.3;
}
.vcap{
  font-size:.92rem; line-height:1.5; color:var(--muted);
  margin:0; max-width:34rem;
}

/* ---- social glyphs in rail (dark ground) ---- */
.rail .social{
  display:flex; gap:1.35rem; margin:1.4rem 0 0; max-width:none;
}
.rail .social a{
  color:#a29c94; border-bottom:0; display:inline-flex; line-height:0;
  transition:color .15s ease;
}
.rail .social a:hover{color:var(--paint); border-bottom:0;}
.rail .social svg{width:28px; height:28px;}
