/* Left navigation is shared across the portfolio and its case studies. */
html{scroll-padding-top:32px}
body{padding-left:110px}
.site-rail{position:fixed;z-index:30;left:18px;top:24px;bottom:24px;width:72px;border:1px solid #ffffff18;border-radius:24px;background:linear-gradient(160deg,#110a10ed,#050506f5 65%);backdrop-filter:blur(22px);box-shadow:0 12px 60px #0008;display:flex;flex-direction:column;padding:22px 11px;overflow:hidden;transition:width .5s var(--ease),border-color .5s,box-shadow .5s}
.site-rail.is-open,.site-rail:not(.rail-enhanced):hover,.site-rail:not(.rail-enhanced):focus-within{width:238px;border-color:#b54d6550;box-shadow:14px 0 90px #000b}
.rail-brand{display:flex;align-items:center;flex-shrink:0;min-height:35px;padding-left:5px;white-space:nowrap}
.rail-brand-name{display:block;font-size:12px;font-weight:500;line-height:1.3;letter-spacing:-.02em;margin-left:19px;opacity:0;transition:opacity .3s}
.rail-kicker{font-size:9px;letter-spacing:.2em;color:var(--muted);margin:100px 0 15px 14px;opacity:0;transition:opacity .3s;white-space:nowrap}
.rail-links{display:flex;flex-direction:column;gap:8px;margin-block:auto;min-height:240px;justify-content:center}
.rail-link{position:relative;display:flex;align-items:center;gap:16px;padding:13px 12px;min-height:50px;border-radius:14px;color:#a9a0aa;overflow:hidden;transition:background .35s,color .35s,box-shadow .35s}
.rail-link svg{width:24px;height:24px;flex:0 0 24px}
.rail-link-label{font-size:14px;white-space:nowrap;opacity:0;transition:opacity .3s,transform .4s var(--ease);transform:translateX(-6px)}
.rail-link-number{margin-left:auto;font-size:9px;color:#ad7b8a;opacity:0;transition:opacity .3s}
.rail-link:hover,.rail-link:focus-visible{color:var(--ink);background:#ffffff06}
.rail-link[aria-current]{color:var(--pink);background:linear-gradient(100deg,#ae23432b,#ae23430a);box-shadow:inset 2px 0 #e16b85}
.is-open .rail-brand-name,.is-open .rail-kicker,.is-open .rail-link-label,.is-open .rail-link-number,.is-open .rail-signature{opacity:1;transform:none}
.site-rail:not(.rail-enhanced):is(:hover,:focus-within) :is(.rail-brand-name,.rail-kicker,.rail-link-label,.rail-link-number,.rail-signature){opacity:1;transform:none}
.rail-bottom{margin-top:auto;padding-top:36px;display:flex;flex-direction:column;gap:25px}





.rail-signature{font-size:9px;letter-spacing:.16em;color:var(--muted);white-space:nowrap;opacity:0;padding-left:13px;transition:opacity .3s}
.rail-toggle{position:fixed;z-index:32;top:94px;left:32px;border:1px solid var(--border);background:#0b080bf0;border-radius:12px;width:44px;height:44px;display:grid;place-items:center;color:var(--pink);transition:background .3s,border-color .3s}
.rail-toggle[hidden],.rail-backdrop[hidden]{display:none}
.rail-toggle:hover{border-color:#ff9eb180;background:#29101b}
.rail-toggle-icon{position:relative;width:17px;height:16px;display:block}
.rail-toggle-icon i{position:absolute;left:0;width:17px;height:1px;background:currentColor;top:5px;transition:transform .4s var(--ease),top .4s var(--ease)}
.rail-toggle-icon i:last-child{top:11px;width:12px}
.rail-toggle[aria-expanded=true] .rail-toggle-icon i:first-child{top:8px;transform:rotate(45deg)}
.rail-toggle[aria-expanded=true] .rail-toggle-icon i:last-child{width:17px;top:8px;transform:rotate(-45deg)}
.rail-toggle-label{display:none}
.rail-backdrop{position:fixed;inset:0;border:0;background:#0009;backdrop-filter:blur(5px);z-index:29}
.rail-link:focus-visible,.rail-brand:focus-visible{outline-offset:-3px}
.about{grid-template-columns:.85fr 1.15fr;gap:80px;align-items:start}
.about-intro{position:sticky;top:55px}
.about-intro h2{font-size:clamp(2.2rem,3.8vw,3.5rem);line-height:1.1}
.about-intro .eyebrow{font-size:10px;letter-spacing:.12em}
.about-name{color:var(--ink);font-size:17px;margin:34px 0 20px;letter-spacing:-.02em}
.about-name>span{display:block;font-size:12px;color:var(--muted);margin-top:4px;letter-spacing:0}
.about-disciplines{display:flex;flex-wrap:wrap;gap:8px;max-width:270px}
.about-disciplines span{font-size:10px;letter-spacing:.03em;border:1px solid #d6617e35;padding:5px 10px;border-radius:25px;color:var(--pink)}
.about-aside{font-size:12px;line-height:1.7;margin:28px 0 0}
.about-copy .lead{font-size:clamp(1.25rem,1.7vw,1.5rem)}
.about-copy>p{margin-bottom:25px;line-height:1.85}
.about-copy .about-belief{color:var(--ink);font-size:20px;line-height:1.6;border-left:2px solid var(--red);padding:7px 0 7px 23px;margin-block:32px;letter-spacing:-.02em}
.about-links{display:flex;flex-wrap:wrap;gap:25px;margin-top:34px}
@media(max-height:650px) and (min-width:761px){.site-rail{top:12px;bottom:12px;padding-top:15px}.rail-toggle{top:75px}.rail-kicker{margin-top:55px}.rail-links{min-height:200px;gap:3px}.rail-link{min-height:44px;padding-block:10px}.rail-bottom{padding-top:12px;gap:10px}.rail-signature{display:none}}
@media(max-width:1050px) and (min-width:761px){body{padding-left:90px}.site-rail{left:12px;width:64px;padding-inline:7px}.rail-toggle{left:22px}.wrap{width:calc(100% - 64px)}.about{gap:35px;grid-template-columns:.8fr 1.2fr}}
@media(max-width:760px){html{scroll-padding-top:88px}body{padding-left:0}.rail-ready body{padding-top:72px}.site-rail{position:relative;left:auto;top:auto;bottom:auto;margin:20px;width:calc(100% - 40px);padding:24px}.site-rail .rail-brand-name,.site-rail .rail-kicker,.site-rail .rail-link-label,.site-rail .rail-link-number,.site-rail .rail-signature{opacity:1;transform:none}.rail-kicker{margin-top:35px}.rail-links{margin-block:15px;min-height:240px}.rail-ready .site-rail{position:fixed;left:0;top:0;bottom:0;margin:0;width:min(290px,calc(100vw - 38px));border-radius:0 24px 24px 0;padding:27px 18px;transform:translateX(-105%);transition:transform .5s var(--ease);overflow-y:auto;max-height:100dvh;overscroll-behavior:contain}.rail-ready .site-rail.is-open{transform:translateX(0)}.rail-toggle{left:16px;top:16px;width:auto;min-width:96px;height:44px;display:flex;gap:13px;justify-content:center;padding:0 16px;box-shadow:0 8px 25px #0008;backdrop-filter:blur(16px)}.rail-toggle-label{display:inline;font-size:12px}.rail-ready .site-rail .rail-brand{padding-left:8px}.rail-ready .site-rail .rail-brand-name{margin-left:20px}.rail-ready .site-rail .rail-kicker{margin-top:68px;margin-bottom:0}.rail-ready .rail-links{margin-block:14px auto;flex-shrink:0}.rail-bottom{padding-top:25px}.rail-signature{padding-bottom:0}.rail-ready:has(.site-rail.is-open) .rail-toggle{left:auto;right:calc(100vw - min(290px,100vw - 38px) + 18px);min-width:44px;width:44px;padding:0;top:24px}.rail-ready:has(.site-rail.is-open) .rail-toggle-label{display:none}.about{grid-template-columns:1fr;gap:40px}.about-intro{position:static}.about-intro h2{font-size:clamp(2.2rem,8vw,3.1rem)}.about-name{margin-top:25px}.about-disciplines{max-width:none}.about-aside{margin-top:20px}.about-copy .lead{font-size:21px}.about-copy .about-belief{font-size:19px;padding-left:18px}.about-copy>p{font-size:15px}.about-links{gap:22px}.hero{padding-top:24px}.site-rail:not(.rail-enhanced):is(:hover,:focus-within){width:calc(100% - 40px)}}
@media(prefers-reduced-motion:reduce){.site-rail,.rail-toggle-icon i,.rail-link-label{transition:none}}

.mobile-nav-open body{overflow:hidden}
.rail-backdrop{touch-action:none}
.rail-link,.rail-toggle{touch-action:manipulation}

/* Social links share the portfolio palette and use inline vector marks. */
.social-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.social-link{flex:1 1 176px;display:flex;align-items:center;gap:12px;min-width:0;min-height:64px;padding:12px 14px;border:1px solid #ffffff18;border-radius:14px;background:#ffffff02;transition:transform .45s var(--ease),border-color .35s,background .35s}
.social-link>svg{width:19px;height:19px;flex:0 0 19px;color:var(--pink);transition:transform .45s var(--ease)}
.social-identity{display:flex;flex-direction:column;min-width:0;gap:2px}
.social-platform{font-size:12px;color:var(--ink);line-height:1.4}
.social-handle{font-size:11px;color:var(--muted);line-height:1.4}
.social-arrow{margin-left:auto;color:var(--muted);font-size:15px;transition:transform .35s var(--ease),color .35s}
.social-link:hover{transform:translateY(-3px);border-color:#d467805a;background:#b91f400c}
.social-link:hover>svg{transform:scale(1.06)}
.social-link:hover .social-arrow{color:var(--pink);transform:translate(2px,-2px)}
.about-intro .social-links{max-width:340px}
.contact-socials{border-top:1px solid var(--border);padding-top:23px;margin-top:8px}
.contact-socials>.eyebrow{margin-bottom:0;font-size:9px}
.contact-socials .social-links{margin-top:13px}
@media(max-width:760px){.social-links{gap:10px}.social-link{flex-basis:160px}.about-intro .social-links{max-width:none}.contact-socials{margin-top:0}.contact-socials .social-link{flex-basis:176px}}
