:root{color-scheme:dark;--bg:#2e2c2b;--ink:#e9e5dd;--muted:#bab5ae;font-family:Arial,Helvetica,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}button{font:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--ink);outline-offset:6px}.page{min-height:100svh;display:grid;grid-template-columns:clamp(290px,25vw,390px) 1fr}.sidebar{padding:64px 38px 45px;display:flex;flex-direction:column;align-items:flex-start;min-height:100svh}.brand{display:block;line-height:0;width:100%;max-width:230px}.brand img{width:100%;height:auto;filter:invert(96%) sepia(7%) saturate(140%) brightness(110%)}.contact{margin-top:auto;font-size:.875rem;line-height:1.85;font-weight:400;width:100%;padding-top:45px}.contact address{font-style:normal;color:var(--muted)}.phones{display:flex;flex-direction:column;margin:27px 0}.phones span{color:var(--muted)}.email{font-size:.8125rem;white-space:nowrap}.visual{position:relative;overflow:hidden;min-height:100svh;background:#373c33}.photos{position:absolute;inset:0}.photo{position:absolute;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.6s ease,transform 8s linear;transform:scale(1.035)}.photo.active{opacity:1;transform:scale(1)}[hidden]{display:none!important}@media(min-width:1600px){.sidebar{padding:75px 50px 55px}}@media(max-width:700px){.page{grid-template-columns:1fr;grid-template-rows:auto minmax(55svh,1fr)}.sidebar{min-height:0;padding:30px 26px;display:grid;grid-template-columns:1fr auto;gap:32px}.brand{width:170px}.contact{grid-column:1/-1;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:20px;font-size:.8125rem}.phones{margin:0}.email{grid-column:1/-1;font-size:.875rem}.visual{min-height:55svh}}@media(max-width:360px){.sidebar{padding:26px 20px}.contact{column-gap:12px;font-size:.75rem}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.photo{transform:none}}

/* A restrained entrance: brand, contact details, then photography. */
@keyframes reveal-detail{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes reveal-photography{from{opacity:0;transform:scale(1.018)}to{opacity:1;transform:scale(1)}}
.brand{animation:reveal-detail 1s cubic-bezier(.2,.65,.3,1) .12s both}
.contact address{animation:reveal-detail .9s ease .36s both}
.phones{animation:reveal-detail .9s ease .48s both}
.email{display:inline-block;animation:reveal-detail .9s ease .6s both}
.has-photos .photos{animation:reveal-photography 1.5s cubic-bezier(.2,.65,.3,1) .55s both}
@media(prefers-reduced-motion:reduce){.brand,.contact address,.phones,.email,.has-photos .photos{animation:none}}
