/* V24 — Liquid Identity / Obsidian Chrome
   Clean override layer: Onyx #0A0A0A / Blue Slate #536878 / Alabaster #E5E4E2 */
:root{--onyx:#0a0a0a;--slate:#536878;--alabaster:#e5e4e2;--ice:#eef3f5;--chrome:#c7d0d5;--line:rgba(83,104,120,.28);--glass:rgba(229,228,226,.14)}
html{background:var(--onyx);overflow-x:clip}body{background:var(--alabaster);color:var(--onyx);overflow-x:clip;-webkit-font-smoothing:antialiased}body>header,body>main,body>footer{position:relative;z-index:2}
/* Visible particle field */
#liquid-particles{position:fixed;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;opacity:.55;mix-blend-mode:multiply}
body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(circle at 84% 12%,rgba(83,104,120,.23),transparent 28%),radial-gradient(circle at 12% 78%,rgba(255,255,255,.9),transparent 34%),linear-gradient(135deg,rgba(255,255,255,.12),transparent 48%)}
/* chrome navigation */
header{background:rgba(10,10,10,.91)!important;color:var(--alabaster);border-bottom:1px solid rgba(229,228,226,.15)!important;backdrop-filter:blur(22px) saturate(130%);-webkit-backdrop-filter:blur(22px) saturate(130%)}header a,.logo,.nav a{color:var(--alabaster)!important}.menu-toggle span{background:var(--alabaster)!important}.logo{font-weight:900;letter-spacing:-.045em}.nav a{opacity:.86}.nav a:hover{opacity:1;text-decoration:none}
/* liquid chrome ambient organisms */
.liquid-organism{position:absolute;pointer-events:none;z-index:0;width:min(34vw,440px);aspect-ratio:1;border-radius:47% 53% 61% 39%/39% 46% 54% 61%;background:radial-gradient(circle at 28% 23%,rgba(255,255,255,.92),transparent 18%),radial-gradient(circle at 62% 66%,rgba(83,104,120,.52),transparent 44%),linear-gradient(138deg,rgba(255,255,255,.62),rgba(83,104,120,.18) 45%,rgba(10,10,10,.16));box-shadow:inset 14px 14px 35px rgba(255,255,255,.75),inset -18px -20px 38px rgba(83,104,120,.32),0 34px 100px rgba(28,43,54,.16);filter:saturate(.8);opacity:.56;animation:morph24 12s ease-in-out infinite alternate}.liquid-organism.o2{width:min(19vw,230px);animation-delay:-5s;opacity:.35}@keyframes morph24{0%{transform:translate3d(0,0,0) rotate(-9deg) scale(.96);border-radius:47% 53% 61% 39%/39% 46% 54% 61%}100%{transform:translate3d(18px,-24px,0) rotate(12deg) scale(1.04);border-radius:61% 39% 44% 56%/52% 61% 39% 48%}}
/* general material system */
.hero,.section,.story-hero,.story-gallery,.editorial-project{isolation:isolate}.hero h1,.title,.section-head h2,.project h3,.contact-lead h1{letter-spacing:-.075em}.kicker,.label,.story-meta{color:var(--slate)}.button,.contact-form button{border-radius:999px}.tile,.feature-cover,.resume-preview,.contact-form,.portfolio-callout,.resume-card{border-radius:18px;overflow:hidden}.resume-preview,.contact-form,.portfolio-callout{background:rgba(238,243,245,.44);border:1px solid rgba(255,255,255,.72);box-shadow:0 25px 80px rgba(10,10,10,.09);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.dark{background:var(--onyx);color:var(--alabaster)}
/* Print overview: stronger obsidian/chrome identity without changing V22 composition */
.print-v17{--paper:var(--alabaster);--ink:var(--onyx);--line:rgba(83,104,120,.32);--glass-line:rgba(255,255,255,.72);background:var(--alabaster)}.print-stage{background:radial-gradient(circle at 50% 44%,#f5f5f3 0 18%,#e5e4e2 55%,#b8c3ca 135%)}.stage-slash,.stage-dot{color:var(--slate)}.pin{border-color:rgba(238,243,245,.92);box-shadow:0 22px 60px rgba(10,10,10,.26)}.editorial-project{background:linear-gradient(145deg,rgba(255,255,255,.34),transparent 52%)}.editorial-project:nth-of-type(even){background:linear-gradient(145deg,rgba(83,104,120,.13),transparent 62%)}.editorial-carousel:before{background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.95),transparent 31%),radial-gradient(circle at 82% 72%,rgba(83,104,120,.32),transparent 44%)}.glass-card{border:1px solid rgba(255,255,255,.82);background:linear-gradient(145deg,rgba(238,243,245,.28),rgba(83,104,120,.09));box-shadow:0 30px 90px rgba(19,33,43,.2),inset 0 1px 0 rgba(255,255,255,.95);backdrop-filter:blur(20px) saturate(135%);-webkit-backdrop-filter:blur(20px) saturate(135%)}
/* PRINT STORY PAGES — rebuilt as editorial spreads */
.story-page main{background:var(--alabaster)}.story-page .story-hero{min-height:calc(100svh - 70px);display:grid!important;grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr)!important;gap:clamp(42px,6vw,110px)!important;align-items:center;padding:clamp(38px,6vw,90px) 6vw!important;background:linear-gradient(128deg,#0a0a0a 0 47%,#536878 47% 48%,#e5e4e2 48% 100%)!important;color:var(--onyx);overflow:hidden}.story-page .story-hero:before{content:"";position:absolute;width:38vw;aspect-ratio:1;right:-11vw;top:-15vw;border:1px solid rgba(83,104,120,.22);border-radius:50%;box-shadow:0 0 0 5vw rgba(83,104,120,.035),0 0 0 10vw rgba(83,104,120,.025);pointer-events:none}.story-page .story-hero-image{position:relative;width:100%!important;max-width:none!important;z-index:2}.story-page .story-hero-image:after{content:"";position:absolute;inset:-1px;border-radius:22px;pointer-events:none;background:linear-gradient(125deg,rgba(255,255,255,.25),transparent 24%,transparent 72%,rgba(83,104,120,.16));mix-blend-mode:screen}.story-page .story-hero-image img{width:100%!important;height:min(72svh,820px)!important;object-fit:contain!important;display:block;border-radius:22px!important;background:#0a0a0a;box-shadow:0 35px 90px rgba(0,0,0,.34)}.story-page .story-hero-copy{position:relative;z-index:2;padding:clamp(8px,2vw,28px) 0!important}.story-page .story-hero-copy h1{font-size:clamp(62px,8vw,132px)!important;line-height:.82!important;letter-spacing:-.085em!important;margin:.18em 0 .24em;overflow-wrap:anywhere}.story-page .story-meta{font-size:11px;letter-spacing:.14em;font-weight:800}.story-page .story-desc{font-size:clamp(17px,1.35vw,22px)!important;line-height:1.48;max-width:590px}.story-page .story-credit{margin-top:20px}.story-page .story-credit a{color:inherit}.story-page .text-link{display:inline-block;margin-top:24px;border-bottom:1px solid currentColor;padding-bottom:5px;font-size:10px;letter-spacing:.12em;font-weight:800}
.story-page .story-gallery{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:clamp(14px,2.1vw,34px)!important;padding:clamp(70px,9vw,150px) 5vw!important;background:var(--alabaster)!important;align-items:start}.story-page .story-gallery figure{margin:0!important;grid-column:auto!important;width:auto!important;overflow:visible!important;border-radius:0!important;position:relative}.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;margin-top:11vw!important}.story-page .story-gallery figure:nth-child(6n+3){grid-column:3/span 4!important;margin-top:4vw!important}.story-page .story-gallery figure:nth-child(6n+4){grid-column:7/span 6!important;margin-top:-4vw!important}.story-page .story-gallery figure:nth-child(6n+5){grid-column:1/span 5!important;margin-top:7vw!important}.story-page .story-gallery figure:nth-child(6n+6){grid-column:7/span 5!important;margin-top:2vw!important}.story-page .story-gallery figure:before{content:attr(data-no);position:absolute;left:0;top:-20px;font-size:9px;letter-spacing:.15em;color:var(--slate)}.story-page .story-gallery img{display:block;width:100%!important;height:auto!important;max-height:none!important;object-fit:contain!important;border-radius:14px!important;box-shadow:0 18px 55px rgba(10,10,10,.11);background:#d8dddf;transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s}.story-page .story-gallery figure:hover img{transform:translateY(-5px);box-shadow:0 28px 70px rgba(10,10,10,.17)}.story-page .story-end{padding:20px 5vw 90px;background:var(--alabaster)}
/* subtle reveal */
.reveal24{animation:reveal24 .7s cubic-bezier(.2,.7,.2,1) both}@keyframes reveal24{from{opacity:0;transform:translateY(22px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@media(max-width:800px){#liquid-particles{opacity:.38}header{padding:12px 5vw!important}.nav{background:rgba(10,10,10,.98)!important}.nav a{border-color:rgba(229,228,226,.16)!important}.liquid-organism{width:170px;opacity:.25}.liquid-organism.o2{width:95px}.hero{overflow:hidden}.story-page .story-hero{min-height:0!important;display:flex!important;flex-direction:column!important;gap:0!important;padding:0!important;background:var(--onyx)!important;color:var(--alabaster)!important}.story-page .story-hero:before{width:90vw;right:-38vw;top:8vw;border-color:rgba(229,228,226,.12);box-shadow:0 0 0 12vw rgba(83,104,120,.06),0 0 0 24vw rgba(83,104,120,.035)}.story-page .story-hero-image{padding:18px 5vw 0!important}.story-page .story-hero-image img{height:auto!important;max-height:68svh!important;object-fit:contain!important;border-radius:16px!important;background:#0a0a0a;box-shadow:0 20px 55px rgba(0,0,0,.42)}.story-page .story-hero-copy{width:100%!important;padding:28px 5vw 46px!important;color:var(--alabaster)!important}.story-page .story-hero-copy .label,.story-page .story-meta{color:#9db0bc!important}.story-page .story-hero-copy h1{font-size:clamp(48px,15vw,76px)!important;line-height:.86!important;margin:.2em 0 .28em}.story-page .story-desc{font-size:15px!important;line-height:1.55;max-width:none}.story-page .story-credit{font-size:13px}.story-page .story-gallery{display:flex!important;flex-direction:column!important;gap:44px!important;padding:56px 5vw 70px!important;background:var(--alabaster)!important}.story-page .story-gallery figure,.story-page .story-gallery figure:nth-child(n){width:100%!important;max-width:100%!important;margin:0!important;grid-column:auto!important;transform:none!important}.story-page .story-gallery figure:nth-child(3n+2){width:82%!important;align-self:flex-end}.story-page .story-gallery figure:nth-child(3n+3){width:88%!important;align-self:flex-start}.story-page .story-gallery img{width:100%!important;height:auto!important;max-height:none!important;object-fit:contain!important;border-radius:12px!important}.story-page .story-end{padding:0 5vw 65px}.editorial-project{padding-bottom:64px}.glass-card{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}}
@media(max-width:380px){.story-page .story-hero-copy h1{font-size:14vw!important}.story-page .story-gallery{gap:36px!important}}
@media(prefers-reduced-motion:reduce){.liquid-organism,.reveal24{animation:none!important}.story-page .story-gallery img{transition:none!important}}
