/* V25 — Obsidian Gradient / Liquid Life. One global design layer. */
:root{--v25-black:#080b11;--v25-navy:#102535;--v25-blue:#536878;--v25-silver:#e5e4e2;--v25-gold:#b18b6c;--v25-white:#f3f4f3}
html{background:var(--v25-black)!important}body{background:var(--v25-black)!important;color:var(--v25-white)!important}
body::before{background:radial-gradient(ellipse at 85% 18%,rgba(78,115,153,.26),transparent 35%),radial-gradient(ellipse at 6% 69%,rgba(148,96,67,.13),transparent 39%),linear-gradient(135deg,#080b11,#152332 48%,#090b12)!important;opacity:1}
body>header{background:rgba(8,11,17,.72)!important;border-color:rgba(210,228,242,.18)!important;box-shadow:0 4px 30px rgba(0,0,0,.12)}
body>main{background:transparent!important}body>footer{background:#080b11!important;color:#dfe8ec!important;border-top:1px solid rgba(210,228,242,.15)}
#liquid-particles{z-index:3!important;opacity:.9!important;mix-blend-mode:screen!important}
/* Shared full-site gradient — covers the old light/dark alternating page sections */
body:not(.print-v17):not(.story-page) main>.section,body:not(.print-v17):not(.story-page) main>.hero,body:not(.print-v17):not(.story-page) main>section{position:relative;background:linear-gradient(135deg,rgba(8,11,17,.97),rgba(21,38,55,.95) 53%,rgba(9,13,22,.97))!important;color:var(--v25-white)!important;border-color:rgba(185,207,221,.14)!important;isolation:isolate}
body:not(.print-v17):not(.story-page) main>section:nth-child(even){background:linear-gradient(145deg,#0a111c,#25394b 48%,#121620 80%,#18141b)!important}
body:not(.print-v17):not(.story-page) main>section::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 78% 16%,rgba(100,162,210,.21),transparent 38%),radial-gradient(ellipse at 13% 84%,rgba(182,120,79,.12),transparent 40%)}
body:not(.print-v17):not(.story-page) main :is(h1,h2,h3,h4,p,.intro,.subnav,.label,.kicker,.meta,.section-head){color:inherit}body:not(.print-v17):not(.story-page) main :is(.label,.kicker,.meta){color:#a7bac8!important}
body:not(.print-v17):not(.story-page) main :is(.tile,.project,.resume-card,.portfolio-callout,.contact-form,.resume-preview){background:linear-gradient(145deg,rgba(77,110,135,.2),rgba(11,17,27,.32))!important;border:1px solid rgba(221,236,247,.23)!important;color:#f1f4f5!important;box-shadow:0 18px 60px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.11);backdrop-filter:blur(14px)}
body:not(.print-v17):not(.story-page) main a{color:inherit}body:not(.print-v17):not(.story-page) main :is(input,textarea,select){background:rgba(235,244,249,.08)!important;color:#fff!important;border-color:rgba(231,243,251,.32)!important}
body:not(.print-v17):not(.story-page) main :is(.feature-cover,.safe-cover){border:1px solid rgba(222,236,246,.2);box-shadow:0 25px 80px rgba(0,0,0,.25)}
/* Continuous optical liquid material, distinct from buttons and photographs */
.v25-ambient{position:absolute;pointer-events:none;z-index:0;width:clamp(180px,32vw,490px);aspect-ratio:1;border-radius:47% 53% 60% 40%/40% 59% 41% 60%;background:radial-gradient(ellipse at 24% 20%,rgba(255,255,255,.72),transparent 12%),radial-gradient(ellipse at 68% 71%,rgba(29,101,171,.78),transparent 43%),radial-gradient(ellipse at 80% 25%,rgba(183,109,62,.62),transparent 32%),linear-gradient(132deg,rgba(139,180,210,.26),rgba(7,13,25,.05) 48%,rgba(224,237,245,.4));box-shadow:inset 11px 14px 27px rgba(255,255,255,.28),inset -25px -22px 40px rgba(10,27,50,.7),0 0 85px rgba(54,107,162,.15);filter:saturate(1.22);opacity:.62;animation:v25flow 16s ease-in-out infinite alternate;transform:translateZ(0)}
.v25-ambient.secondary{width:clamp(95px,18vw,270px);opacity:.34;animation-delay:-8s}
@keyframes v25flow{0%{transform:translate3d(-12px,16px,0) rotate(-16deg) scale(.95);border-radius:47% 53% 60% 40%/40% 59% 41% 60%}100%{transform:translate3d(22px,-25px,0) rotate(19deg) scale(1.06);border-radius:62% 38% 43% 57%/59% 39% 61% 41%}}
/* Preserve the existing Print landing composition, only add ambient optical tint */
.print-v17{color:#0a0a0a!important;background:#e5e4e2!important}.print-v17 main{background:#e5e4e2!important}.print-v17 .print-stage{background:radial-gradient(ellipse at 70% 28%,rgba(101,139,167,.42),transparent 48%),radial-gradient(ellipse at 18% 88%,rgba(180,129,100,.18),transparent 44%),linear-gradient(135deg,#e5e4e2,#c7d2d9 52%,#e5e4e2)!important}
.print-v17 .editorial-project{background:linear-gradient(120deg,#e5e4e2,#d7e0e5 53%,#e5e4e2)!important;color:#10161d!important}.print-v17 .editorial-project:nth-of-type(even){background:linear-gradient(130deg,#d6e0e7,#e5e4e2 50%,#c5d0d7)!important}
/* Story pages: immersive magazine with balanced cover, breathing room and no duplicate opening photo */
.story-page main{background:#0a101a!important}.story-page .story-hero{min-height:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,.82fr)!important;gap:clamp(30px,5vw,100px)!important;padding:clamp(55px,7vw,110px) clamp(24px,7vw,120px)!important;background:radial-gradient(ellipse at 65% 22%,rgba(92,138,175,.3),transparent 50%),linear-gradient(135deg,#080b11,#1b3041 53%,#0c111c)!important;color:#f2f3f2!important}
.story-page .story-hero-copy{color:#f2f3f2!important;min-width:0!important}.story-page .story-hero-copy h1{font-size:clamp(52px,7vw,116px)!important;overflow-wrap:normal!important;word-break:normal!important;line-height:.91!important}.story-page .story-meta,.story-page .story-hero-copy .label{color:#a7bbc9!important}
.story-page .story-hero-image img{height:min(76vh,780px)!important;object-fit:contain!important;background:rgba(0,0,0,.18)!important;border-radius:6px!important}
.story-page .story-gallery{background:linear-gradient(165deg,#0a101a,#1c2b3b 46%,#0b1019)!important;padding:clamp(70px,8vw,120px) clamp(22px,6vw,110px)!important;gap:clamp(25px,3.2vw,58px)!important;grid-auto-flow:row dense!important}
.story-page .story-gallery figure:nth-child(n){margin-top:0!important;align-self:center}.story-page .story-gallery figure:nth-child(6n+1){grid-column:1/span 7!important}.story-page .story-gallery figure:nth-child(6n+2){grid-column:9/span 4!important}.story-page .story-gallery figure:nth-child(6n+3){grid-column:2/span 5!important}.story-page .story-gallery figure:nth-child(6n+4){grid-column:8/span 5!important}.story-page .story-gallery figure:nth-child(6n+5){grid-column:1/span 5!important}.story-page .story-gallery figure:nth-child(6n+6){grid-column:7/span 6!important}
.story-page .story-gallery figure:first-child{display:none!important}.story-page .story-gallery img{background:transparent!important;border-radius:5px!important;box-shadow:0 20px 65px rgba(0,0,0,.24)!important;max-height:850px!important;object-fit:contain!important}.story-page .story-gallery figure::before{color:#a7bbc9!important}.story-page .story-end{background:#0b1019!important;color:#f2f3f2!important}
@media(max-width:800px){#liquid-particles{opacity:.65!important}.v25-ambient{width:180px;opacity:.42}.v25-ambient.secondary{width:110px;opacity:.28}.story-page .story-hero{display:flex!important;flex-direction:column!important;gap:0!important;padding:18px 5vw 42px!important}.story-page .story-hero-image{padding:0!important}.story-page .story-hero-image img{height:auto!important;max-height:62svh!important;object-fit:contain!important;width:100%!important}.story-page .story-hero-copy{padding:28px 0 0!important}.story-page .story-hero-copy h1{font-size:clamp(46px,12.7vw,75px)!important;line-height:.93!important}.story-page .story-gallery{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:38px 12px!important;padding:48px 5vw 65px!important}.story-page .story-gallery figure:nth-child(n){display:block!important;width:100%!important;max-width:none!important;grid-column:1/-1!important;align-self:initial!important;margin:0!important}.story-page .story-gallery figure:first-child{display:none!important}.story-page .story-gallery figure:nth-child(4n+2){grid-column:1/span 5!important}.story-page .story-gallery figure:nth-child(4n+3){grid-column:2/span 5!important}.story-page .story-gallery img{height:auto!important;max-height:none!important;object-fit:contain!important}.story-page .story-end{padding:10px 5vw 65px!important}body:not(.print-v17):not(.story-page) main>section{overflow:hidden}}
@media(prefers-reduced-motion:reduce){.v25-ambient{animation:none!important}}
