:root{--bg:#191512;--bg-raised:#221C18;--ink:#EDE6D6;--ink-dim:#B9AE99;--line:rgba(237,230,214,0.14);--gold:#C89B3C;--gold-soft:#A57F2C;--rust:#B22222;--rust-bright:#E04B3B;--emerald:#1F4D3A;--garnet:#6B1F2A;color-scheme:dark}
body{background:var(--bg) !important;color:var(--ink) !important;font-family:'Work Sans',system-ui,sans-serif !important;line-height:1.6}
h1,h2,h3,h4,h5,h6{font-family:'Fraunces',serif !important;font-weight:600;color:var(--ink)}
a{color:var(--gold)}
a:hover{color:var(--rust-bright)}
.wp-site-blocks{background:var(--bg)}
.wp-block-site-title a{font-family:'Fraunces',serif !important;color:var(--ink) !important;text-decoration:none;font-weight:600}
.wp-block-site-tagline{font-family:'Space Mono',monospace !important;text-transform:uppercase;letter-spacing:.18em;font-size:12px;color:var(--gold) !important}
.wp-block-navigation a{font-family:'Work Sans',sans-serif !important;color:var(--ink) !important;font-size:15px}
.wp-block-navigation a:hover{color:var(--gold) !important}
.entry-content{max-width:none}
.ts-wrap{max-width:1120px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.ts-section{padding:clamp(48px,8vh,96px) 0;border-top:1px solid var(--line)}
.ts-section:first-child{border-top:none}
.ts-eyebrow{font-family:'Space Mono',monospace;font-size:12px;text-transform:uppercase;letter-spacing:.18em;color:var(--gold);margin:0 0 16px}
.ts-eyebrow--emerald{color:#5FA184}
.ts-eyebrow--rust{color:var(--rust-bright)}
.ts-h1{font-size:clamp(42px,7vw,86px);line-height:.98;margin:0 0 24px;font-weight:600}
.ts-h2{font-size:clamp(28px,4vw,42px);line-height:1.1;margin:0 0 20px}
.ts-accent{font-style:italic;color:var(--rust-bright)}
.ts-lede{font-size:clamp(17px,1.6vw,20px);max-width:56ch;color:var(--ink)}
.ts-dim{color:var(--ink-dim)}
p{font-size:17px;max-width:68ch}
.ts-btn{display:inline-block;font-family:'Work Sans',sans-serif;font-weight:500;font-size:16px;padding:13px 26px;border-radius:4px;text-decoration:none;background:var(--rust);color:var(--ink) !important;border:1px solid var(--rust)}
.ts-btn:hover{background:#CC0000;color:#fff !important}
.ts-btn--ghost{background:transparent;color:var(--ink) !important;border:1px solid var(--line)}
.ts-btn--ghost:hover{border-color:var(--gold);color:var(--gold) !important;background:transparent}
.ts-cta-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:28px}
.ts-card{background:var(--bg-raised);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:6px;padding:24px}
.ts-card--rust{border-top-color:var(--rust)}
.ts-card--garnet{border-top-color:var(--garnet)}
.ts-card--emerald{border-top-color:var(--emerald)}
.ts-card h3{font-size:22px;margin:0 0 10px}
.ts-badge-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.ts-badge{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);border:1px solid var(--line);border-left:3px solid var(--gold);padding:8px 14px;border-radius:3px;background:var(--bg-raised)}
.ts-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);align-items:center}
.ts-grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
@media(max-width:760px){.ts-grid-2{grid-template-columns:1fr}}
.ts-figure{margin:0;border-radius:8px;overflow:hidden;background:var(--bg-raised);border:1px solid var(--line)}
.ts-figure img{display:block;width:100%;height:auto}
.ts-figure--tall img{aspect-ratio:3/4;object-fit:cover}
.ts-figcap{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.06em;color:var(--ink-dim);padding:10px 14px;text-transform:uppercase}
.ts-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px;margin-top:32px}
.ts-photo-grid .ts-figure a{display:block}
.ts-post-list{margin-top:24px;display:flex;flex-direction:column}
.ts-post{padding:28px 0;border-top:1px solid var(--line)}
.ts-post .ts-date{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--rust-bright);margin:0 0 8px}
.ts-post h3{font-size:clamp(22px,2.4vw,28px);margin:0 0 10px}
.ts-post h3 a{color:var(--ink);text-decoration:none}
.ts-post h3 a:hover{color:var(--gold)}
.ts-post p{color:var(--ink-dim);margin:0}
.ts-project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;margin-top:32px}
.ts-project-grid .ts-card{padding:0;overflow:hidden}
.ts-project-grid .ts-card img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.ts-project-grid .ts-card-body{padding:22px}
.ts-project-grid .ts-card-body h3 a{color:var(--ink);text-decoration:none}
.ts-project-grid .ts-card-body h3 a:hover{color:var(--gold)}
.ts-more{font-family:'Work Sans',sans-serif;font-weight:500;color:var(--gold);text-decoration:none}
.ts-empty{color:var(--ink-dim);font-style:italic}
.single-post .entry-content>p,.single-post .entry-content>h2,.single-post .entry-content>h3{max-width:68ch;margin-left:auto;margin-right:auto}
/* Credentials marquee */
.ts-creds{padding:clamp(32px,5vh,56px) 0;border-top:1px solid var(--line);overflow:hidden}
.ts-creds-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:24px}
.ts-marquee{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.ts-marquee-track{display:flex;gap:20px;width:max-content;animation:ts-scroll 55s linear infinite}
.ts-marquee:hover .ts-marquee-track{animation-play-state:paused}
@keyframes ts-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ts-cred{display:block;flex:0 0 auto;width:clamp(220px,26vw,300px);background:var(--bg-raised);border:1px solid var(--line);border-radius:6px;overflow:hidden;text-decoration:none;transition:border-color .2s,transform .2s}
.ts-cred:hover{border-color:var(--gold);transform:translateY(-3px)}
.ts-cred img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:top;background:#fff}
.ts-cred-cap{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);padding:10px 14px;border-top:1px solid var(--line)}
.ts-cred:hover .ts-cred-cap{color:var(--gold)}
@media (prefers-reduced-motion:reduce){.ts-marquee-track{animation:none;overflow-x:auto}.ts-marquee{mask-image:none;-webkit-mask-image:none;overflow-x:auto}}
/* Scroll progress indicator */
#ts-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:9999;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--gold),var(--rust));box-shadow:0 0 8px rgba(200,155,60,.45);opacity:0;transition:opacity .4s ease;pointer-events:none}
#ts-progress.is-visible{opacity:1}
@media (prefers-reduced-motion:reduce){#ts-progress{transition:none}}

/* Reveal-on-scroll */
.ts-reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .8s cubic-bezier(.22,1,.36,1)}
.ts-reveal.is-in{opacity:1;transform:none}
/* Quote box */
.ts-quote{position:relative;background:var(--bg-raised);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:6px;padding:36px 32px 28px;margin:0}
.ts-quote p{font-family:'Fraunces',serif;font-style:italic;font-size:clamp(19px,2vw,24px);line-height:1.5;color:var(--ink);margin:0;max-width:none}
.ts-quote::before{content:'\201C';position:absolute;top:-6px;left:18px;font-family:'Fraunces',serif;font-size:72px;line-height:1;color:var(--gold);opacity:.85}
.ts-video video{display:block;width:100%;height:auto;border-radius:8px 8px 0 0}

/* Nav: spacing, staggered fade-in, hover lift */
.wp-block-navigation .wp-block-navigation__container{gap:clamp(22px,3vw,44px) !important}
.wp-block-navigation .wp-block-navigation-item{opacity:0;transform:translateY(-6px);animation:ts-navin .55s ease forwards}
.wp-block-navigation .wp-block-navigation-item:nth-child(1){animation-delay:.1s}
.wp-block-navigation .wp-block-navigation-item:nth-child(2){animation-delay:.22s}
.wp-block-navigation .wp-block-navigation-item:nth-child(3){animation-delay:.34s}
.wp-block-navigation .wp-block-navigation-item:nth-child(4){animation-delay:.46s}
.wp-block-navigation .wp-block-navigation-item:nth-child(5){animation-delay:.58s}
.wp-block-navigation .wp-block-navigation-item:nth-child(6){animation-delay:.7s}
@keyframes ts-navin{to{opacity:1;transform:none}}
.wp-block-navigation a{display:inline-block;transition:transform .18s ease,color .18s ease}
.wp-block-navigation a:hover{transform:scale(1.09)}
@media (prefers-reduced-motion:reduce){.wp-block-navigation .wp-block-navigation-item{animation:none;opacity:1;transform:none}.wp-block-navigation a:hover{transform:none}}

/* Projects: compact horizontal cards so spec work below is visible above the fold */
.ts-project-grid{display:flex;flex-direction:column;gap:16px;max-width:860px;margin-top:24px}
.ts-project-grid .ts-card{display:flex;align-items:stretch;border-top:1px solid var(--line);border-left:3px solid var(--gold)}
.ts-project-grid .ts-card img{width:200px;flex:0 0 200px;aspect-ratio:4/3;height:auto;object-fit:cover}
.ts-project-grid .ts-card-body{padding:16px 22px;align-self:center}
.ts-project-grid .ts-card-body h3{font-size:19px;margin:0 0 6px}
.ts-project-grid .ts-card-body p{font-size:15px;margin:0}
@media(max-width:600px){.ts-project-grid .ts-card{flex-direction:column}.ts-project-grid .ts-card img{width:100%;flex:auto;aspect-ratio:16/9}}
/* Projects page: tighter vertical rhythm */
body.page-id-132 .ts-section{padding:clamp(28px,4.5vh,52px) 0}
/* === Ink & Gold system pass · 2026-07 · modern-CSS layer === */
::selection{background:var(--gold);color:#191512}
html{scroll-behavior:smooth}
.ts-section,.ts-creds,[id^="ts-"]{scroll-margin-top:84px}
:where(a,button,input,textarea,select,.ts-btn):focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
input,textarea,select{accent-color:var(--gold);caret-color:var(--gold)}
.ts-more{background:linear-gradient(currentColor,currentColor) no-repeat left 100%/0 1px;transition:background-size .3s ease,color .2s ease;padding-bottom:2px}
.ts-more:hover{background-size:100% 1px}
.ts-card{transition:transform .25s ease,border-color .25s ease}
.ts-card:hover{transform:translateY(-2px)}
.ts-btn{transition:background .2s ease,border-color .2s ease,transform .15s ease}
.ts-btn:active{transform:scale(.98)}
.ts-figure img{transition:transform .5s ease}
.ts-figure:hover img{transform:scale(1.025)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ts-card,.ts-more,.ts-btn,.ts-figure img{transition:none}.ts-figure:hover img{transform:none}.ts-card:hover{transform:none}}
