:root { --bg:#070807; --ink:#f2efe8; --muted:rgba(242,239,232,.62); --faint:rgba(242,239,232,.35); --line:rgba(242,239,232,.14); --accent:#d7aa70; --serif:"Newsreader",Georgia,serif; --sans:"Manrope",Arial,sans-serif; --mono:"DM Mono",Consolas,monospace; }
* { box-sizing:border-box; }
html { background:var(--bg); color:var(--ink); }
body { margin:0; min-width:320px; background:var(--bg); font:15px/1.55 var(--sans); -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
:focus-visible { outline:1px solid var(--accent); outline-offset:5px; }
.skip-link { position:fixed; z-index:10; top:1rem; left:1rem; padding:.6rem .8rem; background:var(--ink); color:var(--bg); font:.65rem/1 var(--mono); transform:translateY(-180%); }
.skip-link:focus { transform:translateY(0); }
.index-header { display:grid; grid-template-columns:1fr auto 1fr; align-items:start; gap:1rem; padding:1.6rem clamp(1.1rem,4vw,4rem); border-bottom:1px solid var(--line); color:var(--faint); font:.59rem/1 var(--mono); letter-spacing:.12em; text-transform:uppercase; }
.index-header > span:nth-child(2) { color:var(--accent); }
.index-header > span:last-child { justify-self:end; }
.wordmark { display:inline-grid; gap:.03rem; width:max-content; color:var(--ink); font:600 .61rem/.85 var(--mono); letter-spacing:.16em; }
.wordmark span:last-child { color:var(--accent); }
.index-hero { display:grid; grid-template-columns:1fr minmax(16rem,.55fr); gap:clamp(2rem,8vw,10rem); align-items:end; min-height:70vh; padding:clamp(6rem,12vw,12rem) clamp(1.1rem,8vw,9rem) 7rem; border-bottom:1px solid var(--line); }
.eyebrow { margin:0 0 1.4rem; color:var(--accent); font:.65rem/1.2 var(--mono); letter-spacing:.15em; text-transform:uppercase; }
h1,h2 { margin:0; font-family:var(--serif); font-weight:400; letter-spacing:-.045em; }
h1 { font-size:clamp(5rem,11vw,12rem); line-height:.79; }
h1 em,h2 em { color:var(--accent); font-style:italic; }
.hero-aside { max-width:27rem; padding-bottom:.25rem; }
.hero-aside p:first-child { margin:0; color:var(--muted); font-size:1.05rem; line-height:1.7; }
.hero-aside .quiet { margin:2rem 0 0; color:var(--faint); font:.57rem/1.5 var(--mono); letter-spacing:.08em; }
.suite-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--line); border-bottom:1px solid var(--line); }
.route-card { position:relative; min-height:42rem; overflow:hidden; padding:clamp(1.1rem,3vw,3rem); background:#0c0d0c; isolation:isolate; transition:background .35s ease; }
.route-card--wide { grid-column:1 / -1; min-height:49rem; }
.route-image { position:absolute; z-index:-1; inset:0; background:#090a09; }
.route-image::after { position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,6,5,.82),rgba(5,6,5,.2) 60%,rgba(5,6,5,.36)),linear-gradient(0deg,rgba(5,6,5,.8),transparent 45%,rgba(5,6,5,.18)); content:""; }
.route-image img { display:block; width:100%; height:100%; object-fit:cover; opacity:.82; transform:scale(1.02); transition:opacity .5s ease,transform 1s cubic-bezier(.2,.7,.2,1); }
.route-card:hover { background:#111210; }
.route-card:hover .route-image img { opacity:1; transform:scale(1.07); }
.route-card__meta { display:flex; justify-content:space-between; gap:1rem; color:var(--accent); font:.59rem/1.2 var(--mono); letter-spacing:.11em; text-transform:uppercase; }
.route-card__meta span:last-child { color:rgba(242,239,232,.55); text-align:right; }
.route-card h2 { position:absolute; left:clamp(1.1rem,3vw,3rem); bottom:7rem; max-width:8ch; font-size:clamp(3.4rem,6vw,7rem); line-height:.82; }
.route-card p { position:absolute; left:clamp(1.1rem,3vw,3rem); bottom:2.4rem; max-width:23rem; margin:0; color:var(--muted); font-size:.88rem; }
.route-card--obscura { --accent:#c89f65; }
.route-card--aurelia { --accent:#e3b15e; }
.route-card--nox { --accent:#a7c397; }
.route-card--still { --accent:#d8a560; }
.route-card--abyss { --accent:#6ac4dd; }
.route-card--noir { --accent:#e0ab7a; }
.route-card--gallery { --accent:#d5b178; }
.index-note { display:grid; grid-template-columns:minmax(12rem,.55fr) 1fr; gap:2rem; max-width:70rem; min-height:37vh; padding:8rem clamp(1.1rem,8vw,9rem); }
.index-note p:last-child { max-width:30rem; margin:0; color:var(--muted); font-size:1rem; line-height:1.75; }
.index-footer { display:flex; justify-content:space-between; gap:1rem; padding:1.35rem clamp(1.1rem,4vw,4rem); border-top:1px solid var(--line); color:var(--faint); font:.57rem/1.2 var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.index-footer span:nth-child(2) { color:var(--accent); }
@media (max-width:48rem) {
  .index-header { grid-template-columns:1fr auto; padding:1rem 1.1rem; }
  .index-header > span:nth-child(2) { display:none; }
  .index-hero { grid-template-columns:1fr; min-height:70vh; padding:6rem 1.1rem 4rem; }
  h1 { font-size:clamp(4.7rem,19vw,7rem); }
  .hero-aside p:first-child { font-size:.9rem; }
  .suite-grid { grid-template-columns:1fr; }
  .route-card,.route-card--wide { grid-column:auto; min-height:34rem; }
  .route-card h2 { bottom:6.4rem; font-size:clamp(3.1rem,14vw,5rem); }
  .route-card p { bottom:2rem; font-size:.8rem; }
  .index-note { grid-template-columns:1fr; gap:1rem; padding:6rem 1.1rem; }
  .index-footer { flex-direction:column; gap:.55rem; padding:1.1rem; font-size:.52rem; }
}

/* Lead portfolio pass */
html { scroll-behavior:smooth; }
.index-header { grid-template-columns:1fr auto auto; gap:clamp(1rem,4vw,4rem); }
.index-header > span { align-self:center; color:var(--accent); }
.header-cta { justify-self:end; color:var(--ink); transition:color .25s ease; }
.header-cta:hover { color:var(--accent); }
.header-cta span { color:var(--accent); }
.index-hero { position:relative; grid-template-columns:minmax(0,1fr) minmax(16rem,.48fr); min-height:78vh; overflow:hidden; }
.index-hero::before { position:absolute; z-index:0; inset:22% -10% -20%; background:radial-gradient(circle at 34% 36%,rgba(163,119,65,.16),transparent 30%),radial-gradient(circle at 84% 54%,rgba(215,170,112,.07),transparent 24%); content:""; pointer-events:none; }
.index-hero > * { position:relative; z-index:1; }
.index-hero__primary { min-width:0; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1.4rem 2rem; margin-top:3.2rem; }
.button { display:inline-flex; align-items:center; gap:1.1rem; width:max-content; padding:.95rem 1.2rem; border:1px solid var(--accent); background:var(--accent); color:#18120b; font:.63rem/1 var(--mono); letter-spacing:.1em; text-transform:uppercase; transition:background .25s ease,color .25s ease,transform .25s ease; }
.button:hover { background:transparent; color:var(--ink); transform:translateY(-2px); }
.button span { color:inherit; font-size:1rem; line-height:.5; }
.text-link { display:inline-flex; align-items:center; gap:.8rem; width:max-content; border-bottom:1px solid var(--accent); padding-bottom:.35rem; color:var(--ink); font:.64rem/1.1 var(--mono); letter-spacing:.1em; text-transform:uppercase; transition:color .25s ease,border-color .25s ease; }
.text-link:hover { color:var(--accent); border-color:var(--ink); }
.hero-aside p:first-child { font-size:1.08rem; }
.hero-signal { position:absolute !important; right:clamp(1.1rem,4vw,4rem); bottom:1.7rem; display:flex; align-items:center; gap:.75rem; color:var(--faint); font:.56rem/1 var(--mono); letter-spacing:.1em; }
.hero-signal i { display:block; width:5rem; height:1px; background:var(--accent); transform-origin:left; transform:scaleX(.65); }
.work-intro { display:grid; grid-template-columns:minmax(15rem,.75fr) 1fr; gap:2rem; align-items:end; padding:clamp(5rem,9vw,9rem) clamp(1.1rem,8vw,9rem) 4rem; }
.work-intro h2 { font-size:clamp(3.5rem,6vw,7rem); line-height:.84; }
.work-intro > p { max-width:27rem; margin:0 0 .35rem; color:var(--muted); font-size:1rem; line-height:1.75; }
.route-card--lead { grid-column:1 / -1; min-height:58rem; }
.route-card--lead h2 { max-width:10ch; font-size:clamp(5rem,10vw,12rem); }
.route-card__action { position:absolute; right:clamp(1.1rem,3vw,3rem); bottom:2.4rem; color:var(--ink); font:.59rem/1.2 var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.route-card__action span { color:var(--accent); font-size:.95rem; }
.capabilities { display:grid; grid-template-columns:minmax(15rem,.75fr) 1fr; gap:clamp(3rem,9vw,10rem); padding:clamp(7rem,12vw,12rem) clamp(1.1rem,8vw,9rem); border-bottom:1px solid var(--line); background:linear-gradient(120deg,rgba(215,170,112,.07),transparent 35%); }
.capabilities__intro h2 { font-size:clamp(4rem,7vw,8rem); line-height:.82; }
.capabilities__intro > p:not(.eyebrow) { max-width:28rem; margin:2.1rem 0 2.5rem; color:var(--muted); font-size:1rem; line-height:1.75; }
.capability-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; align-self:start; background:var(--line); }
.capability-list article { min-height:14rem; padding:1.5rem; background:rgba(10,11,10,.84); }
.capability-list article > span { color:var(--accent); font:.6rem/1 var(--mono); letter-spacing:.1em; }
.capability-list h3 { max-width:12ch; margin:2.6rem 0 .8rem; font-size:clamp(1.9rem,3vw,3rem); line-height:.9; }
.capability-list p { max-width:19rem; margin:0; color:var(--muted); font-size:.8rem; line-height:1.65; }

@media (max-width:48rem) {
  html { scroll-behavior:auto; }
  .index-header { grid-template-columns:1fr auto; padding:1rem 1.1rem; }
  .index-header > span { display:none; }
  .index-hero { grid-template-columns:1fr; min-height:78vh; padding:6rem 1.1rem 4rem; }
  .hero-actions { margin-top:2.5rem; }
  .hero-signal { right:1.1rem; bottom:1.1rem; }
  .work-intro { grid-template-columns:1fr; gap:1.2rem; padding:6rem 1.1rem 3rem; }
  .work-intro h2 { font-size:clamp(3.5rem,14vw,5.5rem); }
  .work-intro > p { font-size:.9rem; }
  .route-card--lead { grid-column:auto; min-height:42rem; }
  .route-card h2,.route-card--lead h2 { bottom:7rem; max-width:9ch; font-size:clamp(3.1rem,14vw,5.4rem); }
  .route-card p { right:1.1rem; bottom:2rem; max-width:calc(100% - 2.2rem); font-size:.8rem; }
  .route-card__action { right:1.1rem; bottom:5.4rem; font-size:.52rem; }
  .capabilities { grid-template-columns:1fr; gap:4rem; padding:6rem 1.1rem; }
  .capabilities__intro h2 { font-size:clamp(4rem,16vw,6rem); }
  .capability-list { grid-template-columns:1fr; }
  .capability-list article { min-height:11rem; }
  .capability-list h3 { margin-top:2rem; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}

/* Portfolio completion pass */
.suite-grid > .route-card--noir { grid-column: 1 / -1; min-height: 46rem; }
.route-card__capability { position:absolute; left:clamp(1.1rem,3vw,3rem); bottom:4.55rem; max-width:24rem; color:var(--muted); font:.57rem/1.35 var(--mono); letter-spacing:.06em; text-transform:uppercase; }
.collection-bridge { display:flex; justify-content:space-between; align-items:center; gap:2rem; padding:2.2rem clamp(1.1rem,8vw,9rem); border-bottom:1px solid var(--line); background:rgba(215,170,112,.035); }
.collection-bridge p { margin:0; color:var(--muted); font:.72rem/1.4 var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.collection-bridge .text-link { flex-shrink:0; }
.production-lane, .education-lane, .collection-index { display:grid; grid-template-columns:minmax(15rem,.75fr) 1fr; gap:clamp(3rem,9vw,10rem); padding:clamp(7rem,12vw,12rem) clamp(1.1rem,8vw,9rem); border-bottom:1px solid var(--line); }
.production-lane { background:linear-gradient(120deg,rgba(118,146,116,.1),transparent 42%); }
.education-lane { background:linear-gradient(120deg,rgba(216,178,116,.07),transparent 38%); }
.collection-index { background:var(--bg); }
.lane-heading h2 { max-width:8ch; font-size:clamp(4rem,7vw,8rem); line-height:.82; }
.lane-support { max-width:25rem; margin:2rem 0 0; color:var(--muted); font-size:1rem; line-height:1.75; }
.lane-copy { align-self:end; max-width:34rem; }
.lane-copy > p { max-width:30rem; margin:0 0 2rem; color:var(--muted); font-size:1.05rem; line-height:1.75; }
.capability-pills { display:flex; flex-wrap:wrap; gap:.45rem; margin:0 0 2.6rem; }
.capability-pills span { padding:.55rem .7rem; border:1px solid var(--line-strong); color:var(--faint); font:.55rem/1 var(--mono); letter-spacing:.09em; }
.education-grid { grid-column:1 / -1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--line); }
.educational-card { min-width:0; background:rgba(10,11,10,.92); border:1px solid var(--line); }
.educational-media { aspect-ratio:9 / 16; overflow:hidden; background:#050605; }
.educational-media video { display:block; width:100%; height:100%; object-fit:cover; background:#050605; }
.education-card__body { display:grid; min-width:0; gap:1rem; padding:1.35rem; }
.card-meta { display:flex; min-width:0; justify-content:space-between; gap:1rem; color:var(--accent); font:.55rem/1.3 var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.card-meta span { min-width:0; overflow-wrap:anywhere; }
.card-meta span:last-child { color:var(--faint); text-align:right; }
.education-card__body h3 { margin:0; font-size:clamp(1.65rem,2.4vw,2.5rem); line-height:.95; }
.education-card__body p { margin:0; color:var(--muted); font-size:.82rem; line-height:1.65; }
.education-card__body .route-card__capability { position:static; display:block; max-width:none; color:var(--faint); font-size:.55rem; }
.video-expand { max-width:100%; margin-top:.2rem; padding:0; border:0; background:none; cursor:pointer; white-space:normal; }
.provenance-note { grid-column:1 / -1; max-width:44rem; margin:0; color:var(--faint); font:.65rem/1.6 var(--mono); letter-spacing:.04em; }
.collection-list { display:grid; align-self:start; }
.collection-list a { display:grid; grid-template-columns:2rem minmax(9rem,.7fr) minmax(12rem,1fr) auto; gap:1rem; align-items:center; padding:1.05rem 0; border-top:1px solid var(--line); transition:color .25s ease,padding .25s ease; }
.collection-list a:last-child { border-bottom:1px solid var(--line); }
.collection-list a:hover { padding-left:.45rem; color:var(--accent); }
.collection-list span, .collection-list b { color:var(--accent); font:.58rem/1 var(--mono); letter-spacing:.08em; }
.collection-list strong { font-size:1rem; letter-spacing:.04em; }
.collection-list em { color:var(--muted); font-size:.78rem; font-style:normal; }
.collection-list b { color:var(--faint); font-weight:400; text-align:right; }
.proof-band { display:grid; grid-template-columns:minmax(15rem,.75fr) 1fr; gap:clamp(3rem,9vw,10rem); align-items:end; padding:clamp(6rem,10vw,10rem) clamp(1.1rem,8vw,9rem); border-bottom:1px solid var(--line); background:linear-gradient(120deg,rgba(215,170,112,.09),transparent 44%); }
.proof-band h2 { max-width:8ch; font-size:clamp(3.8rem,6vw,7rem); line-height:.84; }
.proof-band > p { max-width:32rem; margin:0 0 .35rem; color:var(--muted); font-size:1rem; line-height:1.75; }
.final-cta { display:grid; justify-items:start; gap:1.5rem; padding:clamp(7rem,13vw,13rem) clamp(1.1rem,8vw,9rem); background:radial-gradient(circle at 75% 50%,rgba(215,170,112,.16),transparent 34%); }
.final-cta h2 { max-width:11ch; font-size:clamp(4.2rem,8vw,9rem); line-height:.82; }
.final-cta > p:not(.eyebrow) { max-width:28rem; margin:0; color:var(--muted); font-size:1rem; line-height:1.7; }
.video-dialog { width:min(38rem,calc(100% - 2rem)); max-height:calc(100vh - 2rem); padding:1rem; border:1px solid var(--line-strong); background:#0b0d0b; color:var(--ink); }
.video-dialog::backdrop { background:rgba(0,0,0,.82); backdrop-filter:blur(8px); }
.video-dialog__top { display:flex; justify-content:space-between; align-items:start; gap:1rem; }
.video-dialog__top .eyebrow { margin:.2rem 0 0; }
.video-dialog__close { border:0; background:none; color:var(--muted); cursor:pointer; font:.62rem/1 var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.video-dialog__close span { color:var(--accent); font-size:1.2rem; }
.video-dialog h2 { margin:.6rem 0 1rem; font-size:clamp(2rem,5vw,3.5rem); }
.video-dialog video { display:block; width:auto; max-width:100%; height:min(72vh,42rem); margin:0 auto; background:#050605; }

@media (max-width:48rem) {
  .suite-grid > .route-card--noir { grid-column:auto; min-height:38rem; }
  .route-card__capability { right:1.1rem; bottom:3.55rem; max-width:calc(100% - 2.2rem); font-size:.5rem; }
  .route-card p { bottom:5.35rem; }
  .route-card__action { right:1.1rem; bottom:1.35rem; }
  .collection-bridge { align-items:start; flex-direction:column; gap:1.2rem; padding:2rem 1.1rem; }
  .production-lane, .education-lane, .collection-index, .proof-band { grid-template-columns:1fr; gap:3rem; padding:6rem 1.1rem; }
  .lane-heading h2, .proof-band h2 { font-size:clamp(4rem,16vw,6rem); }
  .lane-support { font-size:.9rem; }
  .education-grid { grid-template-columns:1fr; gap:1rem; background:none; }
  .educational-card { display:grid; min-width:0; grid-template-columns:minmax(8rem,42%) minmax(0,1fr); }
  .educational-media { aspect-ratio:9 / 16; }
  .education-card__body { align-content:center; padding:1rem; }
  .card-meta { display:grid; gap:.45rem; font-size:.5rem; }
  .card-meta span:last-child { text-align:left; }
  .education-card__body h3 { font-size:1.55rem; }
  .collection-list a { grid-template-columns:1.6rem 1fr auto; gap:.7rem; }
  .collection-list em { grid-column:2 / -1; font-size:.72rem; }
  .collection-list b { grid-column:2 / -1; text-align:left; font-size:.52rem; }
  .proof-band > p { font-size:.9rem; }
  .final-cta { padding:6rem 1.1rem; }
  .video-dialog { padding:.8rem; }
}
