:root{color-scheme:dark;--bg: #0c1d35;--bg-elev: #102743;--bg-deep: #08162a;--ink: #eef3fa;--ink-2: rgba(238, 243, 250, .78);--ink-3: rgba(238, 243, 250, .58);--ink-strong: #ffffff;--tint: #9fbee4;--paper: #ffffff;--line: rgba(206, 224, 247, .14);--line-2: rgba(206, 224, 247, .26);--wash: rgba(206, 224, 247, .05);--font-display: "Ysabeau", "Iowan Old Style", Georgia, serif;--font-body: "Commissioner", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--wrap: 1240px;--gutter: clamp(1.25rem, 5vw, 4.5rem);--header-h: 3.5rem;--ease: cubic-bezier(.16, 1, .3, 1)}@media(min-width:48rem){:root{--header-h: 4.5rem}}.light{color-scheme:light;--bg: #ffffff;--bg-elev: #eef3fa;--bg-deep: #ffffff;--ink: #0c1d35;--ink-2: rgba(12, 29, 53, .76);--ink-3: rgba(12, 29, 53, .56);--ink-strong: #04101f;--tint: #234a75;--line: rgba(12, 29, 53, .13);--line-2: rgba(12, 29, 53, .24);--wash: rgba(12, 29, 53, .04);color:var(--ink)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:1.0625rem;font-weight:350;line-height:1.75;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:400;line-height:1.12;letter-spacing:-.015em;text-wrap:balance}p{margin:0;text-wrap:pretty}ul{margin:0;padding:0;list-style:none}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}::selection{background:var(--tint);color:var(--bg-deep)}:focus-visible{outline:2px solid var(--tint);outline-offset:3px;border-radius:2px}.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}.skip{position:absolute;left:-9999px}.skip:focus{left:var(--gutter);top:.5rem;z-index:50;padding:.5rem .9rem;background:var(--bg-elev);border:1px solid var(--line-2)}.eyebrow{display:flex;align-items:center;gap:.9rem;margin:0 0 1.25rem;font-family:var(--font-body);font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--tint)}.eyebrow:before,.section-title:before{content:"";background:var(--ink)}.eyebrow:before{flex:none;width:2.5rem;height:2px}.section-title:before{position:absolute;top:0;left:0;width:2.5rem;height:2px}.site-header{position:sticky;top:0;z-index:20;background:#0c1d35db;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--line)}.site-header>.wrap{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:var(--header-h)}.brand{display:none;font-family:var(--font-display);font-size:1.0625rem;letter-spacing:.005em;white-space:nowrap}.brand span{color:var(--ink-2);font-family:var(--font-display);font-size:.85rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;margin-left:.6rem}@media(min-width:48rem){.brand{display:block}}.site-nav{display:flex;align-items:center;width:100%;justify-content:space-between;gap:1rem}@media(min-width:48rem){.site-nav{width:auto;justify-content:flex-end;gap:clamp(1.1rem,3vw,2.25rem);margin-inline-start:auto}}.site-nav a{position:relative;padding-block:.35rem;font-size:.8rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);transition:color .35s var(--ease)}.site-nav a:after{content:"";position:absolute;inset-inline:0;bottom:0;height:1px;background:var(--tint);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}.site-nav a:hover{color:var(--ink)}.site-nav a:hover:after{transform:scaleX(1)}section{scroll-margin-top:var(--header-h)}.section-head{max-width:56ch}.section-title{position:relative;padding-top:1.5rem;font-size:clamp(1.7rem,3.6vw,2.4rem)}.about{padding-block:clamp(3.25rem,9vw,7rem) clamp(3.5rem,10vw,8rem)}.about-grid{display:grid;column-gap:clamp(2.25rem,5vw,4.5rem);row-gap:clamp(1.75rem,4vw,2.75rem)}@media(min-width:62rem){.about-grid{grid-template-columns:1.45fr .9fr;grid-template-areas:"head portrait" "body portrait";align-items:start}.about-head{grid-area:head}.about-body{grid-area:body}.portrait-col{grid-area:portrait}}.about-name{font-size:clamp(2.1rem,5.4vw,3.85rem);font-weight:300}.about-kicker{margin-top:1.15rem;padding-top:1.15rem;border-top:2px solid var(--ink);max-width:34ch;font-family:var(--font-display);font-size:clamp(1.15rem,2.1vw,1.5rem);font-weight:300;line-height:1.35;color:var(--ink)}.areas{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:clamp(1.75rem,4vw,2.5rem)}.areas a{display:block;padding:.4rem .9rem;border:1px solid var(--ink-strong);border-radius:2px;background:var(--ink-strong);font-size:.82rem;font-weight:450;line-height:1.3;color:var(--bg);transition:background-color .35s var(--ease),border-color .35s var(--ease),color .35s var(--ease)}.areas a:hover{background:transparent;color:var(--ink-strong)}.about-body{display:grid;gap:1.15rem;max-width:68ch;color:var(--ink-2)}.about-body p:nth-last-child(-n+2){color:var(--ink)}.about-body p:last-child{margin-top:.75rem;padding-left:clamp(1rem,2vw,1.4rem);border-left:2px solid var(--ink-3);font-family:var(--font-display);font-size:clamp(1.08rem,1.9vw,1.3rem);line-height:1.45;color:var(--ink)}.portrait{margin:0;max-width:18rem;border:1px solid var(--line-2);background:var(--bg-elev);overflow:hidden}@media(min-width:62rem){.portrait-col{position:sticky;top:calc(var(--header-h) + 2.5rem)}.portrait{margin-left:auto;max-width:24rem}}figure.portrait{border:0;padding:clamp(.45rem,1vw,.7rem);background:var(--paper)}.portrait img{width:100%;aspect-ratio:4 / 5;object-fit:cover;object-position:center 22%}.portrait--empty{display:none;aspect-ratio:4 / 5;place-items:center}.portrait--empty span{font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3)}@media(min-width:62rem){.portrait--empty{display:grid}}.services{padding-block:clamp(3.5rem,9vw,7rem);background:var(--bg-deep)}.services-intro{margin-top:1.5rem;max-width:72ch;color:var(--ink-2)}.services-list{--svc-num: 0rem;--svc-gap: 0rem;margin-top:clamp(2.25rem,5vw,3.5rem);border-top:1px solid var(--line)}@media(min-width:48rem){.services-list{--svc-num: 4.5rem;--svc-gap: 1.75rem}}@media(min-width:62rem){.services-list{--svc-num: 3rem;--svc-gap: 1.25rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(2rem,4.5vw,4rem)}.service--wide{grid-column:1 / -1}}.service{border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--header-h) + 1.25rem)}.service-head{display:grid;row-gap:.45rem;padding-top:clamp(1.5rem,3vw,2.25rem)}@media(min-width:48rem){.service-head{grid-template-columns:var(--svc-num) 1fr;column-gap:var(--svc-gap);align-items:baseline;row-gap:0}}.service-no{font-size:.78rem;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.1em;color:var(--tint)}.service-title{display:block;font-family:var(--font-display);font-size:clamp(1.2rem,2.4vw,1.6rem);font-weight:500;line-height:1.2;letter-spacing:-.012em;color:var(--ink-strong)}.service-lead{display:block;margin-top:.45rem;max-width:58ch;font-size:.95rem;color:var(--ink-3)}.service-panel{padding-left:calc(var(--svc-num) + var(--svc-gap));padding-top:.75rem;padding-bottom:clamp(1.5rem,3.5vw,2.5rem)}@media(min-width:48rem){.service-panel{padding-right:2.75rem}}@media(min-width:62rem){.service-panel{padding-right:0}}.service-group+.service-group{margin-top:clamp(1.5rem,3vw,2.25rem);padding-top:clamp(1.5rem,3vw,2.25rem);border-top:1px solid var(--line)}.group-title{font-family:var(--font-body);font-size:.76rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--tint)}.group-lead{margin-top:.75rem;max-width:78ch;font-size:.97rem;color:var(--ink-2)}.group-items{margin-top:1rem;display:grid;gap:.7rem;max-width:82ch}.group-items li{position:relative;padding-left:1.5rem;font-size:.97rem;color:var(--ink-2)}.group-items li:before{content:"";position:absolute;left:0;top:.82em;width:.65rem;height:1px;background:var(--line-2)}.services-outro{margin-top:clamp(2.25rem,5vw,3.5rem);padding-left:clamp(1rem,2vw,1.5rem);border-left:2px solid var(--tint);max-width:62ch;font-family:var(--font-display);font-size:clamp(1.12rem,2vw,1.45rem);font-weight:400;line-height:1.4;color:var(--ink)}.contact{padding-block:clamp(3.25rem,9vw,7rem)}.contact-grid{margin-top:clamp(2rem,5vw,3.25rem);display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}@media(min-width:48rem){.contact-grid{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}}.contact-cell{padding:clamp(1.5rem,3.5vw,2.25rem) clamp(1.25rem,3vw,2rem);background:var(--bg)}.contact-label{font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}.contact-value{margin-top:.85rem;font-family:var(--font-display);font-size:clamp(1.05rem,2.2vw,1.4rem);line-height:1.35;word-break:break-word}a.contact-value{position:relative;display:inline-block;transition:color .35s var(--ease)}a.contact-value:after{content:"";position:absolute;inset-inline:0;bottom:-.15rem;height:1px;background:var(--tint);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}a.contact-value:hover{color:var(--tint)}a.contact-value:hover:after{transform:scaleX(1)}.site-footer{border-top:1px solid var(--line);background:var(--bg-deep)}.site-footer>.wrap{display:flex;flex-direction:column;gap:.3rem;padding-block:1.6rem;font-size:.78rem;letter-spacing:.04em;color:var(--ink-3)}@media(min-width:34rem){.site-footer>.wrap{flex-direction:row;align-items:baseline;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem}}.site-footer a{transition:color .35s var(--ease)}.site-footer a:hover{color:var(--ink)}.notice{min-height:calc(100dvh - var(--header-h));display:grid;align-content:center;padding-block:clamp(3rem,10vw,7rem)}.notice-code{font-family:var(--font-body);font-size:.78rem;font-weight:500;letter-spacing:.24em;color:var(--tint)}.notice h1{margin-top:1.25rem;font-size:clamp(1.9rem,5vw,3rem);font-weight:300}.notice p{margin-top:1.25rem;max-width:48ch;color:var(--ink-2)}.notice a.back{margin-top:2.25rem;justify-self:start;padding:.75rem 1.5rem;border:1px solid var(--line-2);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;transition:border-color .35s var(--ease),background-color .35s var(--ease),transform .2s var(--ease)}.notice a.back:hover{border-color:var(--tint);background-color:var(--wash)}.notice a.back:active{transform:translateY(1px)}@keyframes rise{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:none}}.rise{animation:rise .6s var(--ease) both;animation-delay:calc(min(var(--i, 0),5)*60ms)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rise{animation:none}*,*:before,*:after{transition-duration:.01ms!important}}
