@font-face { font-family:"Newsreader"; font-style:normal; font-weight:200 800; font-display:swap; src:url("../fonts/newsreader/newsreader-latin-variable.woff2") format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"Newsreader"; font-style:normal; font-weight:200 800; font-display:swap; src:url("../fonts/newsreader/newsreader-latin-ext-variable.woff2") format("woff2"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:"Source Sans 3"; font-style:normal; font-weight:200 900; font-display:swap; src:url("../fonts/source-sans-3/source-sans-3-latin-variable.woff2") format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"Source Sans 3"; font-style:normal; font-weight:200 900; font-display:swap; src:url("../fonts/source-sans-3/source-sans-3-latin-ext-variable.woff2") format("woff2"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
:root { --bg-deep:#151617; --bg-base:#1c1e20; --bg-raised:#25282b; --text-primary:#f2eee7; --text-muted:#b9b8b4; --silver-soft:#858b91; --silver-bright:#c7cbd0; --border-subtle:#3c4044; --focus-ring:#d9dde1; --content-width:74rem; --reading-width:42rem; --space-2:1rem; --space-3:1.5rem; --space-4:2.25rem; --space-5:3.5rem; --radius:.5rem; --transition:160ms; --font-display:"Newsreader",Georgia,"Times New Roman",serif; --font-body:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif; }
.page-gallery{margin:var(--space-3) 0;padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}.page-gallery__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.page-gallery__item{min-width:44px;padding:0;border:1px solid var(--silver-soft);background:var(--bg-deep);cursor:zoom-in;overflow:hidden}.page-gallery__item img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.page-gallery-viewer{width:100%;max-width:none;height:100dvh;margin:0;padding:0;border:0;background:rgb(8 10 11 / .96);color:var(--text-primary)}.page-gallery-viewer::backdrop{background:rgb(4 6 7 / .9)}.page-gallery-viewer__surface{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;width:100%;height:100%;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));gap:.75rem}.page-gallery-viewer__surface img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.page-gallery-viewer button{display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--silver-soft);background:rgb(20 23 24 / .8);color:var(--text-primary);cursor:pointer}.page-gallery-viewer [data-page-gallery-close]{position:absolute;top:max(1rem,env(safe-area-inset-top));right:max(1rem,env(safe-area-inset-right));font-size:1.8rem}.page-gallery-viewer [data-page-gallery-counter]{position:absolute;top:max(1rem,env(safe-area-inset-top));left:max(1rem,env(safe-area-inset-left));margin:0;color:var(--silver-bright)}@media(max-width:700px){.page-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-gallery-viewer__surface{grid-template-columns:auto minmax(0,1fr) auto;padding-inline:.65rem;gap:.35rem}}@media(prefers-reduced-motion:reduce){.page-gallery__item img{transition:none}}body.page-gallery-open{overflow:hidden}
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { min-width:0; margin:0; background:var(--bg-base); color:var(--text-primary); font:400 16px/1.65 var(--font-body); } a { color:inherit; } a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible { outline:2px solid var(--focus-ring); outline-offset:3px; }
.shell { width:min(calc(100% - 2rem),var(--content-width)); margin-inline:auto; } .reading { max-width:var(--reading-width); } .skip-link { position:fixed; z-index:5; top:.5rem; left:.5rem; transform:translateY(-150%); padding:.6rem .8rem; background:var(--text-primary); color:var(--bg-deep); text-decoration:none; } .skip-link:focus { transform:translateY(0); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-header { position:sticky; z-index:4; top:0; border-bottom:1px solid var(--border-subtle); background:var(--bg-deep); } .header-inner { min-height:4.75rem; display:flex; align-items:center; justify-content:space-between; gap:var(--space-2); } .site-identity,.footer-identity { font:450 clamp(1.1rem,2vw,1.35rem)/1.05 var(--font-display); letter-spacing:-.012em; text-decoration:none; } .desktop-nav { display:flex; gap:1.4rem; } .desktop-nav a,.mobile-nav a,.footer-nav a,.footer-secondary a { color:var(--text-muted); font-size:.95rem; font-weight:500; letter-spacing:.015em; text-decoration:none; transition:color var(--transition) ease; } .desktop-nav a:hover,.mobile-nav a:hover,.footer-nav a:hover,.footer-secondary a:hover { color:var(--silver-bright); }
.header-social { display:flex; align-items:center; padding-left:.6rem; border-left:1px solid var(--border-subtle); } .social-links { display:flex; } .social-link { display:inline-flex; align-items:center; justify-content:center; min-width:38px; min-height:38px; color:var(--text-muted); text-decoration:none; transition:color var(--transition) ease; } .social-link:hover { color:var(--silver-bright); } .social-link__icon { width:17px; height:17px; flex:0 0 auto; } .social-links--mobile,.social-links--footer { gap:.25rem; } .social-links--mobile .social-link,.social-links--footer .social-link { justify-content:flex-start; gap:.65rem; padding-right:.75rem; } .social-link__label { font-size:.95rem; font-weight:500; letter-spacing:.015em; }
.menu-toggle { display:none; width:44px; height:44px; border:1px solid var(--border-subtle); border-radius:var(--radius); background:transparent; color:var(--text-primary); } .menu-toggle span { display:block; width:18px; height:1px; margin:5px auto; background:currentColor; } .mobile-nav { border-top:1px solid var(--border-subtle); background:var(--bg-deep); } .mobile-nav__inner { display:grid; padding:var(--space-2) 0; } .mobile-nav a { padding:.75rem 0; border-bottom:1px solid var(--border-subtle); }
.site-main { min-height:60vh; } .foundation-hero { position:relative; isolation:isolate; min-height:76svh; display:grid; align-items:end; overflow:hidden; border-bottom:1px solid var(--border-subtle); background:var(--bg-deep); } .foundation-hero::before { position:absolute; z-index:1; inset:1rem; border:1px solid rgb(199 203 208 / .38); content:""; pointer-events:none; } .foundation-hero__visual,.foundation-hero__image,.foundation-hero__overlay { position:absolute; inset:0; width:100%; height:100%; } .foundation-hero__visual { z-index:-2; } .foundation-hero__image { z-index:0; display:block; object-fit:cover; object-position:66% center; } .foundation-hero__overlay { z-index:2; background:linear-gradient(90deg,rgb(9 11 12 / .78) 0%,rgb(9 11 12 / .56) 39%,rgb(9 11 12 / .22) 100%); } .foundation-hero__inner { position:relative; z-index:2; max-width:min(calc(100% - 2rem),var(--content-width)); margin-inline:auto; padding:var(--space-5) 0 clamp(4rem,12vw,9rem); } .eyebrow { margin:0 0 var(--space-2); color:var(--silver-bright); font-size:.74rem; font-weight:600; letter-spacing:.11em; text-transform:uppercase; } .foundation-hero h1,.foundation-section h2,.generic-page h1,.foundation-contact h2 { max-width:13ch; margin:0; font-family:var(--font-display); font-size:clamp(2.65rem,7.2vw,5.7rem); font-weight:450; letter-spacing:-.024em; line-height:1.08; } .foundation-section h2,.foundation-contact h2,.generic-page h1 { font-size:clamp(2.2rem,4.5vw,3.65rem); line-height:1.1; } .hero-copy,.foundation-section p,.foundation-contact p,.generic-page p { max-width:58ch; color:var(--text-muted); } .hero-copy { margin:var(--space-3) 0; font-size:clamp(1.05rem,1.8vw,1.25rem); font-weight:400; }
.text-link,.button { display:inline-flex; align-items:center; min-height:44px; border:1px solid var(--silver-soft); border-radius:var(--radius); padding:.65rem 1rem; color:var(--text-primary); font:600 .94rem/1.2 var(--font-body); letter-spacing:.015em; text-decoration:none; transition:border-color var(--transition) ease,background var(--transition) ease; } .text-link:hover,.button:hover { border-color:var(--silver-bright); background:var(--bg-raised); } .foundation-section,.foundation-contact,.generic-page { padding:clamp(4rem,10vw,8rem) 0; border-bottom:1px solid var(--border-subtle); } .foundation-section--raised,.foundation-contact { background:var(--bg-raised); }
.study-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(13rem,.72fr); gap:var(--space-2); margin-top:var(--space-4); align-items:start; } .work-study { min-width:0; margin:0; border:1px solid var(--border-subtle); background:var(--bg-deep); } .work-study img { display:block; width:100%; height:auto; } .work-study--landscape { grid-column:1; } .work-study--portrait { grid-column:2; grid-row:1 / span 2; } .work-study--type { grid-column:1; display:grid; align-content:end; min-height:clamp(11rem,22vw,17rem); padding:var(--space-3); background:var(--bg-raised); } .work-study--type p:last-child { max-width:34ch; margin:0; }
.about-layout { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:var(--space-4) clamp(2rem,7vw,7rem); align-items:start; } .about-copy { max-width:42rem; } .about-copy p:first-child { margin-top:0; } .about-copy blockquote { max-width:34rem; margin:var(--space-3) 0 0; color:var(--text-primary); font:450 clamp(1.45rem,2.5vw,2rem)/1.32 var(--font-display); letter-spacing:-.014em; } .about-teaser { margin-top:var(--space-3); padding-top:var(--space-3); border-top:1px solid var(--silver-soft); } .about-teaser p { max-width:34rem; } .about-teaser .foundation-section__action { margin-top:var(--space-2); }
.section-intro { max-width:48rem; }
.creative-direction { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--space-4) clamp(2rem,8vw,8rem); align-items:start; } .creative-direction>div:last-of-type p:first-child { margin-top:0; } .capabilities { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:0; margin:var(--space-2) 0 0; padding:0; list-style:none; border-top:1px solid var(--border-subtle); border-bottom:1px solid var(--border-subtle); } .capabilities li { padding:.8rem 1rem .8rem 0; margin-right:1rem; color:var(--silver-bright); font-size:.92rem; font-weight:500; letter-spacing:.025em; }
.contact-layout { max-width:52rem; } .contact-layout h2 { max-width:16ch; } .contact-layout .button { margin-top:var(--space-2); }
.foundation-section__action{margin:var(--space-3) 0 0}.study-grid--projects{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.work-study--project{grid-column:auto;grid-row:auto}.work-study--project a{display:block;height:100%;text-decoration:none}.work-study--project img{aspect-ratio:4/5;object-fit:cover}.work-study--project span{display:grid;gap:.2rem;padding:1rem}.work-study--project strong{font:450 1.45rem/1.12 var(--font-display);letter-spacing:-.012em}.work-study--project small{color:var(--text-muted);font-size:.86rem}.portfolio-public,.portfolio-project{padding:clamp(4rem,10vw,8rem) 0;border-bottom:1px solid var(--border-subtle)}.portfolio-public--empty{min-height:60vh}.portfolio-public__header,.portfolio-project__header{max-width:46rem;margin-bottom:var(--space-4)}.portfolio-public h1,.portfolio-project h1{max-width:13ch;margin:0;font:450 clamp(2.65rem,6vw,4.8rem)/1.06 var(--font-display);letter-spacing:-.024em}.portfolio-public__header>p:last-child,.portfolio-project__header>p:last-child{max-width:58ch;color:var(--text-muted);font-size:1.08rem}.portfolio-public__empty{padding:var(--space-4);border:1px solid var(--border-subtle);background:var(--bg-deep)}.portfolio-public__empty h2{margin:0;font:450 2rem/1.1 var(--font-display)}.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.portfolio-card{min-width:0;border:1px solid var(--border-subtle);background:var(--bg-deep)}.portfolio-card__image{display:block;overflow:hidden}.portfolio-card__image img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform var(--transition) ease}.portfolio-card__body{padding:1rem}.portfolio-card__body .eyebrow{margin-bottom:.45rem}.portfolio-card h2{margin:0;font:450 1.65rem/1.1 var(--font-display);letter-spacing:-.012em}.portfolio-card h2 a{text-decoration:none}.portfolio-project__back{display:inline-flex;margin-bottom:var(--space-4);color:var(--silver-bright);font-weight:600;text-underline-offset:.2em}.portfolio-project__hero,.portfolio-gallery__item{margin:0;border:1px solid var(--border-subtle);background:var(--bg-deep)}.portfolio-project__hero img{display:block;width:100%;max-height:75svh;object-fit:contain}.portfolio-gallery{margin-top:var(--space-2)}.portfolio-gallery__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-2)}.portfolio-gallery__item{grid-column:span 6}.portfolio-gallery__item--portrait{grid-column:span 4}.portfolio-gallery__item--landscape{grid-column:span 8}.portfolio-gallery__item--square{grid-column:span 4}.portfolio-gallery__item img{display:block;width:100%;height:100%;max-height:42rem;object-fit:cover}.portfolio-gallery__item--portrait img{aspect-ratio:3/4}.portfolio-gallery__item--landscape img{aspect-ratio:3/2}.portfolio-gallery__item--square img{aspect-ratio:1}.portfolio-gallery__item--auto img{aspect-ratio:4/3}
@media (hover:hover){.work-study--project a:hover img,.portfolio-card__image:hover img{transform:scale(1.025)}}
@media (max-width:900px){.study-grid--projects,.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-gallery__item,.portfolio-gallery__item--landscape{grid-column:span 6}.portfolio-gallery__item--portrait,.portfolio-gallery__item--square{grid-column:span 3}}
@media (max-width:600px){.study-grid--projects,.portfolio-grid{grid-template-columns:1fr}.work-study--project img,.portfolio-card__image img{aspect-ratio:4/3}.portfolio-gallery__grid{grid-template-columns:1fr}.portfolio-gallery__item,.portfolio-gallery__item--landscape,.portfolio-gallery__item--portrait,.portfolio-gallery__item--square{grid-column:auto}.portfolio-gallery__item img,.portfolio-gallery__item--portrait img,.portfolio-gallery__item--landscape img,.portfolio-gallery__item--square img{aspect-ratio:4/3}.portfolio-public__header,.portfolio-project__header{margin-bottom:var(--space-3)}}
@media (prefers-reduced-motion:reduce){.work-study--project img,.portfolio-card__image img{transition:none}}
.generic-page__header { padding-bottom:var(--space-3); } .generic-page--module-owned .generic-page__content { max-width:var(--reading-width); } .generic-page__content>*:first-child { margin-top:0; } .generic-page__content :is(h2,h3) { font-family:var(--font-display); font-weight:450; } .generic-page__content .contacts-public-page .lead { margin-top:var(--space-2); font-size:1.08rem; } .generic-page__content form { margin-top:var(--space-3); padding:var(--space-3); border:1px solid var(--border-subtle); border-radius:var(--radius); background:var(--bg-deep); } .generic-page__content label { color:var(--text-primary); font-weight:600; } .generic-page__content :is(input[type=text],input[type=email],textarea,select) { width:100%; min-height:44px; margin-top:.35rem; padding:.65rem .75rem; border:1px solid var(--silver-soft); border-radius:var(--radius); background:var(--bg-base); color:var(--text-primary); font:400 1rem/1.5 var(--font-body); } .generic-page__content textarea { min-height:9rem; resize:vertical; } .generic-page__content :is(input[type=checkbox],input[type=radio]) { width:1.1rem; height:1.1rem; accent-color:var(--silver-bright); } .generic-page__content button { min-height:44px; border:1px solid var(--silver-soft); border-radius:var(--radius); padding:.65rem 1rem; background:var(--text-primary); color:var(--bg-deep); font:600 .94rem/1.2 var(--font-body); letter-spacing:.015em; } .generic-page__content [role=alert] { margin:var(--space-2) 0; padding:var(--space-2); border-left:3px solid #d78282; background:#39292a; } .generic-page__content [role=status] { margin:var(--space-2) 0; padding:var(--space-2); border-left:3px solid var(--silver-bright); background:#2b3032; }
.site-footer { border-top:1px solid var(--border-subtle); background:var(--bg-deep); } .footer-primary { display:grid; grid-template-columns:1.25fr .7fr .8fr; gap:var(--space-4); padding:clamp(3rem,7vw,5.5rem) 0 var(--space-4); } .footer-brand p { max-width:26ch; margin:.75rem 0 0; color:var(--text-muted); } .footer-nav { display:grid; align-content:start; justify-items:start; } .footer-nav a { display:inline-flex; align-items:center; min-height:36px; } .footer-contact { align-self:start; padding-left:var(--space-3); border-left:1px solid var(--border-subtle); } .footer-contact h2 { margin:0 0 var(--space-2); font:450 clamp(1.35rem,2vw,1.7rem)/1.15 var(--font-display); letter-spacing:-.012em; } .footer-contact__link { color:var(--silver-bright); font-size:.95rem; font-weight:600; letter-spacing:.015em; text-underline-offset:.2em; } .footer-contact .social-links { margin-top:var(--space-2); padding-top:var(--space-2); border-top:1px solid var(--border-subtle); } .footer-secondary { display:flex; align-items:center; justify-content:space-between; gap:var(--space-2); padding:var(--space-3) 0; border-top:1px solid var(--border-subtle); color:var(--text-muted); font-size:.9rem; } .footer-secondary p { margin:0; }
.footer-secondary__links,.analytics-consent-actions { display:flex; flex-wrap:wrap; gap:.65rem; align-items:center; } .footer-preferences { padding:0; border:0; background:transparent; color:inherit; font:inherit; text-decoration:underline; text-underline-offset:.2em; cursor:pointer; } .footer-preferences:focus-visible,.analytics-consent-dialog__close:focus-visible { outline:2px solid var(--silver-bright); outline-offset:4px; }
.analytics-consent-banner { position:fixed; z-index:20; right:0; bottom:0; left:0; border:0; border-top:1px solid var(--silver-soft); background:#0c0f0f; background:rgb(12 15 15 / .88); } .analytics-consent-banner__inner { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:var(--space-2); align-items:center; padding:1rem 0; } @supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) { .analytics-consent-banner { -webkit-backdrop-filter:blur(13px) saturate(115%); backdrop-filter:blur(13px) saturate(115%); } } .analytics-consent-banner h2,.analytics-consent-dialog h2 { margin:0; font:500 1.45rem/1.1 var(--font-display); } .analytics-consent-banner p { max-width:52rem; margin:.45rem 0 0; color:var(--text-muted); font-size:.94rem; } .analytics-consent-actions form { margin:0; } .analytics-consent-actions .button--quiet { background:transparent; color:var(--text-primary); } .analytics-consent-actions .button--quiet:hover,.analytics-consent-actions .button--quiet:focus-visible { border-color:var(--silver-bright); background:var(--bg-raised); color:var(--text-primary); } .analytics-consent-actions button.button--primary { border-color:#d9d0c2; background:#e6ded2; color:#1b1d1e; } .analytics-consent-actions button.button--primary:hover,.analytics-consent-actions button.button--primary:active { border-color:#c8bdac; background:#d8cdbd; color:#1b1d1e; } .analytics-consent-actions button.button--primary:focus-visible { border-color:#b8aa96; background:#d8cdbd; color:#1b1d1e; outline:2px solid var(--focus-ring); outline-offset:3px; } .analytics-consent-actions button.button--primary:disabled { border-color:#aaa39a; background:#c9c1b5; color:#343637; cursor:not-allowed; } .analytics-consent-dialog { width:min(calc(100% - 2rem),34rem); margin:auto; padding:clamp(1.25rem,4vw,2rem); border:1px solid var(--silver-soft); background:var(--bg-deep); color:var(--text-primary); } .analytics-consent-dialog::backdrop { background:rgb(0 0 0 / .6); } .analytics-consent-dialog__header { display:flex; align-items:start; justify-content:space-between; gap:var(--space-2); } .analytics-consent-dialog__close { width:2.25rem; height:2.25rem; border:1px solid var(--silver-soft); background:transparent; color:var(--text-primary); font:1.55rem/1 var(--font-body); cursor:pointer; } .analytics-consent-dialog__status { margin-top:var(--space-2); } .analytics-consent-dialog__note { padding-left:.8rem; border-left:1px solid var(--silver-bright); color:var(--silver-bright); } .analytics-consent-actions--dialog { margin-top:var(--space-3); } .analytics-consent-noscript { margin:var(--space-3) auto; padding:var(--space-2); border:1px solid var(--silver-soft); }
@media (max-width:900px) { .footer-primary { grid-template-columns:1.2fr .8fr; } .footer-contact { grid-column:1 / -1; padding:var(--space-3) 0 0; border-top:1px solid var(--border-subtle); border-left:0; } }
@media (max-width:700px) { .analytics-consent-banner { right:0; bottom:0; left:0; } .analytics-consent-banner__inner { padding:1.25rem 0 calc(1.25rem + env(safe-area-inset-bottom)); } }
@media (max-width:700px) { .shell { width:min(calc(100% - 1.5rem),var(--content-width)); } .header-inner { min-height:4.25rem; } .desktop-nav,.header-social { display:none; } .menu-toggle { display:block; } .mobile-nav__social { display:grid; gap:.25rem; margin-top:var(--space-2); padding-top:var(--space-2); border-top:1px solid var(--border-subtle); } .mobile-nav__social .social-links { display:grid; grid-template-columns:1fr 1fr; } .mobile-nav__social .social-link { min-height:44px; } .foundation-hero { min-height:clamp(34rem,92svh,45rem); } .foundation-hero::before { inset:.65rem; } .foundation-hero__image { object-position:61% center; } .foundation-hero__overlay { background:linear-gradient(90deg,rgb(9 11 12 / .76),rgb(9 11 12 / .32)); } .foundation-hero__inner { max-width:min(calc(100% - 3.3rem),var(--content-width)); padding:var(--space-4) 0 clamp(2.25rem,9vw,4rem); } .foundation-hero h1 { font-size:clamp(3rem,14vw,4.4rem); line-height:1.06; } .hero-copy { max-width:29ch; margin:var(--space-2) 0; font-size:1rem; line-height:1.5; } .text-link--hero { min-height:40px; padding:.5rem .75rem; font-size:.88rem; } .study-grid { grid-template-columns:1fr; } .work-study--landscape,.work-study--portrait,.work-study--type { grid-column:auto; grid-row:auto; } .work-study--portrait { aspect-ratio:4 / 5; overflow:hidden; } .work-study--portrait img { width:100%; height:100%; object-fit:cover; object-position:center 44%; } .work-study--type { min-height:10rem; } .about-layout,.creative-direction { grid-template-columns:1fr; gap:var(--space-3); } .footer-primary { grid-template-columns:1fr; gap:var(--space-3); padding-top:var(--space-4); } .footer-nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 var(--space-2); } .footer-nav a { min-height:44px; } .footer-contact { grid-column:auto; padding-top:var(--space-3); } .footer-secondary { align-items:flex-start; flex-direction:column; padding-bottom:var(--space-4); } .analytics-consent-banner { right:.75rem; left:.75rem; } .analytics-consent-banner__inner { grid-template-columns:1fr; padding:1rem 0; } .analytics-consent-actions { display:grid; grid-template-columns:1fr; } .analytics-consent-actions form,.analytics-consent-actions .button,.analytics-consent-actions .text-link { width:100%; } .analytics-consent-actions .text-link { justify-content:center; } } @media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms!important; } }

/* VK Creative navigation and primary action refinements. */
.desktop-nav a { position:relative; padding:.35rem 0; color:#c3c4c2; transition:color 220ms ease,text-shadow 220ms ease; }
.desktop-nav a::after { position:absolute; right:0; bottom:.04rem; left:0; height:1px; background:linear-gradient(90deg,transparent,#eef0f2 48%,transparent); box-shadow:0 0 8px rgb(219 223 227 / .34); content:""; opacity:0; transform:scaleX(.45); transform-origin:center; transition:opacity 220ms ease,transform 220ms ease; }
.desktop-nav a:hover,.desktop-nav a:focus-visible { color:var(--text-primary); text-shadow:0 0 10px rgb(226 229 232 / .18); }
.desktop-nav a:hover::after,.desktop-nav a:focus-visible::after { opacity:.9; transform:scaleX(1); }
.desktop-nav a[aria-current=page],.desktop-nav a.is-current { color:#e1e3e3; text-shadow:0 0 7px rgb(226 229 232 / .12); }
.desktop-nav a[aria-current=page]::after,.desktop-nav a.is-current::after { opacity:.62; transform:scaleX(.78); }
.header-social .social-link,.mobile-nav__social .social-link { transition:color 200ms ease,transform 200ms ease,text-shadow 200ms ease; }
.header-social .social-link:hover,.header-social .social-link:focus-visible,.mobile-nav__social .social-link:hover,.mobile-nav__social .social-link:focus-visible { color:var(--silver-bright); text-shadow:0 0 9px rgb(218 222 226 / .24); transform:translateY(-1px); }
.menu-toggle { transition:border-color 220ms ease,background 220ms ease,box-shadow 220ms ease; }
.menu-toggle span { transition:transform 220ms ease,opacity 180ms ease; }
.menu-toggle.is-open { border-color:var(--silver-bright); background:linear-gradient(135deg,rgb(199 203 208 / .18),rgb(37 40 43 / .7)); box-shadow:0 0 12px rgb(215 219 223 / .18); }
.menu-toggle.is-open span:first-child { transform:translateY(3px) rotate(45deg); }
.menu-toggle.is-open span:last-child { transform:translateY(-3px) rotate(-45deg); }
.mobile-nav.is-open { background:linear-gradient(180deg,#151617 0%,#1a1c1e 100%); }
.mobile-nav a[data-nav-item] { position:relative; padding:.78rem .1rem .78rem .7rem; transition:color 220ms ease,transform 220ms ease; }
.mobile-nav a[data-nav-item]::before { position:absolute; top:.55rem; bottom:.55rem; left:0; width:1px; background:linear-gradient(#fff,#8f969d); box-shadow:0 0 8px rgb(220 224 228 / .35); content:""; opacity:0; transform:scaleY(.45); transition:opacity 220ms ease,transform 220ms ease; }
.mobile-nav.is-open a[data-nav-item] { animation:mobile-nav-reveal 240ms both; }
.mobile-nav.is-open a[data-nav-item]:nth-child(2) { animation-delay:35ms; }
.mobile-nav.is-open a[data-nav-item]:nth-child(3) { animation-delay:70ms; }
.mobile-nav.is-open a[data-nav-item]:nth-child(4) { animation-delay:105ms; }
.mobile-nav a[data-nav-item]:hover,.mobile-nav a[data-nav-item]:focus-visible { color:var(--text-primary); transform:translateX(2px); }
.mobile-nav a[data-nav-item][aria-current=page],.mobile-nav a[data-nav-item].is-current { color:#e4e6e6; }
.mobile-nav a[data-nav-item]:hover::before,.mobile-nav a[data-nav-item]:focus-visible::before,.mobile-nav a[data-nav-item][aria-current=page]::before,.mobile-nav a[data-nav-item].is-current::before { opacity:.8; transform:scaleY(1); }
@keyframes mobile-nav-reveal { from { opacity:0; transform:translateY(-3px); } to { opacity:1; transform:translateY(0); } }
.premium-cta,.contact-layout>.button { position:relative; gap:.65rem; overflow:hidden; border-color:rgb(207 211 215 / .75); background:linear-gradient(135deg,rgb(199 203 208 / .16),rgb(22 24 25 / .7)); box-shadow:inset 0 1px 0 rgb(255 255 255 / .12),0 4px 14px rgb(0 0 0 / .15); transition:border-color 220ms ease,background 220ms ease,box-shadow 220ms ease,transform 220ms ease; }
.premium-cta::before,.contact-layout>.button::before { position:absolute; inset:1px; background:linear-gradient(112deg,transparent 22%,rgb(244 246 247 / .16) 50%,transparent 76%); content:""; opacity:.44; pointer-events:none; transform:translateX(-22%); transition:transform 260ms ease,opacity 220ms ease; }
.premium-cta__arrow,.contact-layout>.button::after { position:relative; z-index:1; color:var(--silver-bright); font-size:1.08em; line-height:1; content:"→"; transition:transform 220ms ease; }
.premium-cta:hover,.contact-layout>.button:hover { border-color:#e1e4e6; background:linear-gradient(135deg,rgb(210 214 218 / .24),rgb(37 40 43 / .9)); box-shadow:inset 0 1px 0 rgb(255 255 255 / .18),0 6px 18px rgb(0 0 0 / .2),0 0 13px rgb(218 222 226 / .12); transform:translateY(-1px); }
.premium-cta:hover::before,.contact-layout>.button:hover::before { opacity:.75; transform:translateX(22%); }
.premium-cta:hover .premium-cta__arrow,.contact-layout>.button:hover::after { transform:translateX(4px); }
.premium-cta:active,.contact-layout>.button:active { transform:translateY(1px); }
.premium-cta:focus-visible,.contact-layout>.button:focus-visible { outline:2px solid #f0f2f3; outline-offset:4px; border-color:#f0f2f3; }
@media (max-width:700px) { .premium-cta,.contact-layout>.button { min-height:44px; } .premium-cta__arrow,.contact-layout>.button::after { font-size:1em; } }
@media (prefers-reduced-motion:reduce) { .mobile-nav.is-open a[data-nav-item] { animation:none; } .desktop-nav a::after,.mobile-nav a[data-nav-item]::before,.premium-cta::before,.contact-layout>.button::before { transition:none; } .header-social .social-link:hover,.header-social .social-link:focus-visible,.mobile-nav__social .social-link:hover,.mobile-nav__social .social-link:focus-visible,.mobile-nav a[data-nav-item]:hover,.mobile-nav a[data-nav-item]:focus-visible,.premium-cta:hover,.contact-layout>.button:hover,.premium-cta:active,.contact-layout>.button:active { transform:none; } .premium-cta:hover::before,.contact-layout>.button:hover::before,.premium-cta:hover .premium-cta__arrow,.contact-layout>.button:hover::after { transform:none; } }

/* Public Contacts form: restrained silver focus treatment without changing module markup. */
.generic-page--module-owned .contacts-public-page #contact-form > p { margin-block:1.15rem; }
.generic-page--module-owned .contacts-public-page #contact-form > p:focus-within > label { color:#e4e6e6; text-shadow:0 0 7px rgb(219 223 227 / .14); }
.generic-page--module-owned .contacts-public-page #contact-form :is(input[type=text],input[type=email],textarea) { border-color:rgb(151 157 163 / .82); background:#1c1e20; caret-color:#f1f3f4; transition:border-color 210ms ease,background 210ms ease,box-shadow 210ms ease,color 210ms ease; }
.generic-page--module-owned .contacts-public-page #contact-form :is(input[type=text],input[type=email],textarea)::placeholder { color:#aeb2b4; opacity:.78; transition:color 210ms ease,opacity 210ms ease; }
.generic-page--module-owned .contacts-public-page #contact-form :is(input[type=text],input[type=email],textarea):focus { border-color:#c7cbd0; background:#222528; box-shadow:inset 0 1px 0 rgb(255 255 255 / .09),0 0 11px rgb(204 210 215 / .14); color:#f4f1eb; }
.generic-page--module-owned .contacts-public-page #contact-form :is(input[type=text],input[type=email],textarea):focus-visible { outline:none; }
.generic-page--module-owned .contacts-public-page #contact-form :is(input[type=text],input[type=email],textarea):focus::placeholder { color:#9da2a5; opacity:.58; }
.generic-page--module-owned .contacts-public-page #contact-form :is(input[type=text],input[type=email],textarea)[aria-invalid=true] { border-color:#a96655; background:#2a2220; }
.generic-page--module-owned .contacts-public-page #contact-form :is(input[type=text],input[type=email],textarea)[aria-invalid=true]:focus { border-color:#bd7a65; box-shadow:inset 0 1px 0 rgb(255 255 255 / .07),0 0 10px rgb(169 102 85 / .14); }
.generic-page--module-owned .contacts-public-page [role=alert] { border-left-color:#a96655; background:#2a2220; color:#eedbd4; }
.generic-page--module-owned .contacts-public-page #contact-form :is(input[type=text],input[type=email],textarea):disabled { border-color:#5f6468; background:#202224; color:#9da0a1; cursor:not-allowed; opacity:.78; }
.generic-page--module-owned .contacts-public-page #contact-form input:-webkit-autofill,.generic-page--module-owned .contacts-public-page #contact-form input:-webkit-autofill:hover,.generic-page--module-owned .contacts-public-page #contact-form input:-webkit-autofill:focus { -webkit-box-shadow:0 0 0 1000px #222528 inset,0 0 11px rgb(204 210 215 / .14); -webkit-text-fill-color:#f4f1eb; caret-color:#f1f3f4; }
@media (hover:hover) { .generic-page--module-owned .contacts-public-page #contact-form :is(input[type=text],input[type=email],textarea):hover:not(:disabled):not([aria-invalid=true]) { border-color:#bec3c7; } .header-social .social-link:hover,.mobile-nav__social .social-link:hover { background:rgb(199 203 208 / .08); box-shadow:0 0 10px rgb(218 222 226 / .12); } }
@media (prefers-reduced-motion:reduce) { .generic-page--module-owned .contacts-public-page #contact-form :is(input[type=text],input[type=email],textarea),.generic-page--module-owned .contacts-public-page #contact-form :is(input[type=text],input[type=email],textarea)::placeholder { transition:none; } }

/* Portfolio public cards are single links; keep their visual treatment contained. */
[data-portfolio-protected-image]{-webkit-user-drag:none;-webkit-touch-callout:none;user-select:none}
.about-profile{padding:clamp(4rem,10vw,8rem) 0;border-bottom:1px solid var(--border-subtle)}.about-profile__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(18rem,.9fr);gap:clamp(2rem,7vw,7rem);align-items:start}.about-profile__header{grid-column:1}.about-profile__header h1{max-width:10ch;margin:0;font:450 clamp(3rem,7vw,6rem)/1.02 var(--font-display);letter-spacing:-.03em}.about-profile__portrait{grid-column:2;grid-row:1 / span 2;margin:0;padding:clamp(.45rem,1vw,.75rem);border:1px solid var(--silver-soft);background:linear-gradient(135deg,rgb(220 224 227 / .14),rgb(220 224 227 / .02))}.about-profile__portrait img{display:block;width:100%;height:auto;max-height:72svh;object-fit:contain;background:var(--bg-deep)}.about-profile__biography{grid-column:1;max-width:39rem;font-size:1.06rem;line-height:1.7}.about-profile__biography>*:first-child{margin-top:0}.about-profile__action{margin-top:var(--space-3)}@media(max-width:700px){.about-profile__grid{grid-template-columns:1fr;gap:var(--space-3)}.about-profile__header{grid-column:auto}.about-profile__portrait{grid-column:auto;grid-row:auto;max-width:34rem}.about-profile__biography{grid-column:auto;font-size:1rem}}
@media (min-width:701px){.about-profile__grid{grid-template-columns:minmax(0,.92fr) minmax(16rem,.68fr);column-gap:clamp(1.5rem,4vw,4rem);row-gap:clamp(1rem,2.5vw,2rem)}.about-profile__portrait{grid-row:2;justify-self:start;align-self:start;width:min(100%,26rem)}}
.portfolio-card{display:block;color:inherit;text-decoration:none}.portfolio-card__body{display:block}.portfolio-card__body .eyebrow{display:block}.portfolio-card__title{display:block;font:450 1.65rem/1.1 var(--font-display);letter-spacing:-.012em}.portfolio-project__hero{width:fit-content;max-width:100%}.portfolio-project__hero img{width:auto;max-width:100%}@media (hover:hover){.portfolio-card:hover .portfolio-card__image img{transform:scale(1.025)}}

/* Portfolio public gallery viewer stays entirely theme-owned. */
.portfolio-project__hero,.portfolio-gallery__item{border:0;background:transparent}.portfolio-project__hero .portfolio-gallery__trigger{max-width:100%}.portfolio-gallery{margin-top:var(--space-3)}.portfolio-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.6rem,1.4vw,1rem)}.portfolio-gallery__item,.portfolio-gallery__item--portrait,.portfolio-gallery__item--square{grid-column:span 1}.portfolio-gallery__item--landscape{grid-column:1 / -1}.portfolio-gallery__trigger{display:block;width:100%;min-height:44px;padding:0;border:1px solid var(--border-subtle);background:var(--bg-deep);color:inherit;cursor:zoom-in;overflow:hidden}.portfolio-gallery__trigger img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;transition:opacity 180ms ease,transform 180ms ease}.portfolio-gallery__item--portrait .portfolio-gallery__trigger img{aspect-ratio:3/4}.portfolio-gallery__item--landscape .portfolio-gallery__trigger img{aspect-ratio:3/2}.portfolio-gallery__item--square .portfolio-gallery__trigger img{aspect-ratio:1}.portfolio-gallery__item--auto .portfolio-gallery__trigger img{aspect-ratio:4/3}.portfolio-gallery__trigger:focus-visible,.portfolio-viewer button:focus-visible{outline:2px solid var(--silver-bright);outline-offset:3px}@media (hover:hover){.portfolio-gallery__trigger:hover img{opacity:.94;transform:scale(1.012)}}
.portfolio-viewer{width:100%;max-width:none;height:100dvh;margin:0;padding:0;border:0;background:transparent;color:var(--text-primary)}.portfolio-viewer::backdrop{background:rgb(4 6 7 / .9);animation:portfolio-viewer-backdrop 180ms ease both}.portfolio-viewer__surface{display:grid;grid-template-rows:auto minmax(0,1fr);width:100%;height:100%;padding:max(clamp(.75rem,2vw,1.5rem),env(safe-area-inset-top)) max(clamp(.75rem,2vw,1.5rem),env(safe-area-inset-right)) max(clamp(.75rem,2vw,1.5rem),env(safe-area-inset-bottom)) max(clamp(.75rem,2vw,1.5rem),env(safe-area-inset-left));background:rgb(10 12 13 / .96)}.portfolio-viewer__toolbar{position:relative;z-index:3;display:flex;align-items:center;gap:.65rem;min-height:44px}.portfolio-viewer__counter{margin:0;color:var(--silver-bright);font-size:.9rem;font-variant-numeric:tabular-nums}.portfolio-viewer__zoom-controls{display:flex;gap:.35rem;margin-left:auto}.portfolio-viewer__close,.portfolio-viewer__previous,.portfolio-viewer__next,.portfolio-viewer__zoom-controls button{position:relative;z-index:3;display:inline-grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--silver-soft);border-radius:0;background:rgb(20 23 24 / .8);color:var(--text-primary);font:1.4rem/1 var(--font-body);cursor:pointer}.portfolio-viewer__zoom-controls button{font-size:1.15rem}.portfolio-viewer__zoom-controls button:disabled,.portfolio-viewer__previous:disabled,.portfolio-viewer__next:disabled{opacity:.35;cursor:default}.portfolio-viewer__close{font-size:1.8rem}.portfolio-viewer__viewport{position:relative;z-index:1;min-height:0;overflow:hidden;isolation:isolate}.portfolio-viewer__stage{display:grid;place-items:center;width:100%;height:100%;min-height:0;overflow:hidden;touch-action:none}.portfolio-viewer__stage>img{position:relative;z-index:1;display:block;max-width:100%;max-height:100%;object-fit:contain;transform-origin:center;transition:transform 180ms ease;will-change:transform}.portfolio-viewer__stage.is-zoomed>img{cursor:grab}.portfolio-viewer__stage.is-panning>img{cursor:grabbing}.portfolio-viewer__previous,.portfolio-viewer__next{position:absolute;top:50%;z-index:2;transform:translateY(-50%)}.portfolio-viewer__previous{left:clamp(.35rem,1.5vw,1rem)}.portfolio-viewer__next{right:clamp(.35rem,1.5vw,1rem)}.portfolio-viewer__stage.is-unavailable::before{position:relative;z-index:2;color:var(--text-muted);content:"Image unavailable"}.portfolio-viewer__stage.is-unavailable>img{display:none}.portfolio-viewer-open{overflow:hidden}@keyframes portfolio-viewer-backdrop{from{opacity:0}to{opacity:1}}@media (max-width:700px){.portfolio-gallery{margin-top:var(--space-2)}.portfolio-gallery__grid{gap:.55rem}.portfolio-viewer__surface{padding:max(.65rem,env(safe-area-inset-top)) max(.65rem,env(safe-area-inset-right)) max(.65rem,env(safe-area-inset-bottom)) max(.65rem,env(safe-area-inset-left))}.portfolio-viewer__toolbar{gap:.35rem}.portfolio-viewer__zoom-controls{gap:.2rem}.portfolio-viewer__previous,.portfolio-viewer__next{top:auto;bottom:.45rem;transform:none}.portfolio-viewer__previous{left:.45rem}.portfolio-viewer__next{right:.45rem}}@media (prefers-reduced-motion:reduce){.portfolio-gallery__trigger img,.portfolio-viewer::backdrop,.portfolio-viewer__stage>img{animation:none;transition:none}}
@media (min-width:701px){.portfolio-viewer__canvas{position:relative;z-index:1;display:grid;place-items:center;overflow:visible;transform-origin:center;transition:transform 180ms ease;will-change:transform}.portfolio-viewer__canvas>img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}.portfolio-viewer__stage.is-zoomed .portfolio-viewer__canvas{cursor:grab}.portfolio-viewer__stage.is-panning .portfolio-viewer__canvas{cursor:grabbing}.portfolio-viewer__stage.is-unavailable .portfolio-viewer__canvas{display:none}}@media (max-width:700px){.portfolio-viewer__canvas{display:contents}.portfolio-viewer__canvas>img{position:relative;z-index:1;display:block;max-width:100%;max-height:100%;object-fit:contain;transform-origin:center;transition:transform 180ms ease;will-change:transform}.portfolio-viewer__stage.is-unavailable .portfolio-viewer__canvas>img{display:none}}@media (prefers-reduced-motion:reduce){.portfolio-viewer__canvas,.portfolio-viewer__canvas>img{transition:none}}

.legal-page{padding:clamp(4rem,9vw,7rem) 0;border-bottom:1px solid var(--border-subtle)}.legal-page__header,.legal-page__content{max-width:min(calc(100% - 2rem),54rem);margin-inline:auto}.legal-page__header{padding-bottom:clamp(2rem,4vw,3.5rem);border-bottom:1px solid var(--border-subtle)}.legal-page h1{max-width:15ch;margin:0;font:450 clamp(2.5rem,5vw,4.35rem)/1.08 var(--font-display);letter-spacing:-.025em}.legal-page__content{padding-top:clamp(2rem,4vw,3.5rem);color:var(--text-muted);font-size:1.04rem;line-height:1.75;overflow-wrap:anywhere}.legal-page__content :is(h2,h3){color:var(--text-primary);font-family:var(--font-display);font-weight:450;letter-spacing:-.014em}.legal-page__content h2{margin-top:2.8em;font-size:clamp(1.7rem,3vw,2.35rem);line-height:1.15}.legal-page__content h3{margin-top:2em;font-size:1.3rem;line-height:1.25}.legal-page__content :is(ul,ol){padding-left:1.35rem}.legal-page__content li+li{margin-top:.55rem}.legal-page__content a,.contact-privacy-notice a,.analytics-consent-banner__copy a,.analytics-consent-dialog a{color:var(--silver-bright);text-decoration-thickness:1px;text-underline-offset:.2em}.legal-page__content a:focus-visible,.contact-privacy-notice a:focus-visible,.analytics-consent-banner__copy a:focus-visible,.analytics-consent-dialog a:focus-visible{outline:2px solid var(--silver-bright);outline-offset:3px}.legal-page__content code{padding:.12em .35em;border:1px solid var(--border-subtle);background:var(--bg-deep);color:var(--text-primary);overflow-wrap:anywhere}.contact-privacy-notice{max-width:48ch;margin-top:1rem;color:var(--text-muted);font-size:.9rem;line-height:1.55}@media(max-width:700px){.legal-page__header,.legal-page__content{max-width:min(calc(100% - 1.5rem),54rem)}.legal-page h1{font-size:clamp(2.3rem,11vw,3.4rem)}.legal-page__content{font-size:1rem}.legal-page__content :is(ul,ol){padding-left:1.15rem}}

/* Portfolio inline stage and overview share the viewer sequence. */
.portfolio-inline-gallery{margin-top:var(--space-3)}.portfolio-inline-gallery__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:.7rem}.portfolio-inline-gallery__toolbar p{margin:0;color:var(--silver-bright);font-size:.92rem;font-variant-numeric:tabular-nums}.portfolio-inline-gallery__toolbar button{display:inline-grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--silver-soft);background:transparent;color:var(--text-primary);font:1.35rem/1 var(--font-body);cursor:pointer}.portfolio-inline-gallery__stage{display:grid;grid-template-rows:minmax(18rem,clamp(22rem,58svh,46rem)) auto;justify-items:center;width:100%;padding:0;border:0;background:transparent;color:var(--text-primary);cursor:zoom-in}.portfolio-inline-gallery__stage img{display:block;align-self:center;max-width:100%;max-height:min(76svh,46rem);width:auto;height:auto;object-fit:contain}.portfolio-inline-gallery__stage span{margin-top:.65rem;color:var(--text-muted);font-size:.86rem}.portfolio-inline-gallery__stage:focus-visible,.portfolio-gallery__thumbnail:focus-visible{outline:2px solid var(--silver-bright);outline-offset:4px}.portfolio-gallery__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.portfolio-gallery__thumbnail{display:block;min-width:44px;padding:0;border:1px solid var(--border-subtle);background:var(--bg-deep);cursor:pointer;overflow:hidden}.portfolio-gallery__thumbnail img{display:block;width:100%;height:7.25rem;object-fit:cover}.portfolio-gallery__thumbnail.is-selected,.portfolio-gallery__thumbnail[aria-current=true]{border-color:var(--silver-bright);box-shadow:inset 0 0 0 1px rgb(231 234 237 / .35)}@media (hover:hover){.portfolio-gallery__thumbnail:hover img{opacity:.9}}@media (max-width:900px){.portfolio-gallery__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:700px){.portfolio-inline-gallery{margin-top:var(--space-2)}.portfolio-inline-gallery__stage{grid-template-rows:minmax(18rem,62svh) auto}.portfolio-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-gallery__thumbnail img{height:6.4rem}}@media (prefers-reduced-motion:reduce){.portfolio-gallery__thumbnail img{transition:none}}
.portfolio-inline-gallery{margin-top:var(--space-3)}.portfolio-inline-gallery__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:.7rem}.portfolio-inline-gallery__toolbar p{margin:0;color:var(--silver-bright);font-size:.92rem;font-variant-numeric:tabular-nums}.portfolio-inline-gallery__toolbar button{display:inline-grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--silver-soft);background:transparent;color:var(--text-primary);font:1.35rem/1 var(--font-body);cursor:pointer}.portfolio-inline-gallery__stage{display:grid;grid-template-rows:minmax(18rem,clamp(22rem,58svh,46rem)) auto;justify-items:center;width:100%;padding:0;border:0;background:transparent;color:var(--text-primary);cursor:zoom-in;touch-action:pan-y}.portfolio-inline-gallery__stage img{display:block;align-self:center;max-width:100%;max-height:min(76svh,46rem);width:auto;height:auto;object-fit:contain}.portfolio-inline-gallery__stage span{margin-top:.65rem;color:var(--text-muted);font-size:.86rem}.portfolio-inline-gallery__stage:focus-visible,.portfolio-gallery__thumbnail:focus-visible{outline:2px solid var(--silver-bright);outline-offset:4px}.portfolio-gallery__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.portfolio-gallery__thumbnail{display:block;min-width:44px;padding:0;border:1px solid var(--border-subtle);background:var(--bg-deep);cursor:pointer;overflow:hidden}.portfolio-gallery__thumbnail img{display:block;width:100%;height:7.25rem;object-fit:cover}.portfolio-gallery__thumbnail.is-selected,.portfolio-gallery__thumbnail[aria-current=true]{border-color:var(--silver-bright);box-shadow:inset 0 0 0 1px rgb(231 234 237 / .35)}@media (hover:hover){.portfolio-gallery__thumbnail:hover img{opacity:.9}}@media (max-width:900px){.portfolio-gallery__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:700px){.portfolio-inline-gallery{display:flex;flex-direction:column;margin-top:var(--space-2);overflow:hidden}.portfolio-inline-gallery__stage{order:1;grid-template-rows:auto auto;min-height:0}.portfolio-inline-gallery__stage img{max-height:calc(68svh - 7rem)}.portfolio-inline-gallery__toolbar{order:2;width:100%;margin:.7rem 0 0}.portfolio-gallery{order:3;margin-top:var(--space-2)}.portfolio-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-gallery__thumbnail img{height:6.4rem}}@media (prefers-reduced-motion:reduce){.portfolio-gallery__thumbnail img{transition:none}}

.site-identity{display:inline-flex;align-items:center;min-width:0}.site-identity__logo{display:block;width:auto;max-width:min(12rem,34vw);max-height:2.4rem;object-fit:contain}.site-identity__logo+.site-identity__text{margin-left:.65rem}@media(max-width:700px){.site-identity__logo{max-width:48vw;max-height:2rem}}
.vk-business-details__items span{display:inline-flex;align-items:center;gap:.4rem}.vk-business-details svg,.vk-business-location h2 svg,.vk-business-hours h2 svg,.vk-business-hours summary svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.vk-business-location h2,.vk-business-hours h2{display:flex;align-items:center;gap:.55rem}.vk-business-hours summary{display:flex;align-items:center;justify-content:space-between}.vk-business-hours summary svg{transition:transform var(--transition) ease}.vk-business-hours details[open] summary svg{transform:rotate(180deg)}
.vk-contact-page .vk-business-details,.vk-contact-page .vk-business-location,.vk-contact-page .vk-business-hours{margin:var(--space-4) 0;padding:var(--space-3);border:1px solid var(--border-subtle);background:var(--bg-deep)}.vk-contact-page .vk-business-details h2,.vk-contact-page .vk-business-location h2,.vk-contact-page .vk-business-hours h2{margin:0;font:450 clamp(1.7rem,3vw,2.35rem)/1.12 var(--font-display)}.vk-business-details__items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:var(--space-3);border-top:1px solid var(--border-subtle)}.vk-business-details__items a{display:grid;gap:.2rem;min-width:0;padding:1rem 1rem 0 0;color:var(--text-primary);text-decoration:none}.vk-business-details__items a+a{padding-left:1rem;border-left:1px solid var(--border-subtle)}.vk-business-details__items span,.vk-business-location small,.vk-business-hours dt{color:var(--text-muted);font-size:.85rem;letter-spacing:.04em}.vk-business-details__items strong{overflow-wrap:anywhere}.vk-business-location p{margin-bottom:.2rem;font-size:1.12rem;color:var(--text-primary)}.vk-business-location__maps-link{margin-top:var(--space-2)}.vk-business-hours details{margin-top:var(--space-2);border-top:1px solid var(--border-subtle)}.vk-business-hours summary{padding:1rem 0;cursor:pointer;color:var(--silver-bright);font-weight:600}.vk-business-hours dl{margin:0 0 1rem}.vk-business-hours dl div{display:flex;justify-content:space-between;gap:1rem;padding:.45rem 0;border-top:1px solid rgb(60 64 68 / .6)}.vk-business-hours dt,.vk-business-hours dd{margin:0}.vk-business-hours dd{color:var(--text-primary)}@media(max-width:600px){.vk-contact-page .vk-business-details,.vk-contact-page .vk-business-location,.vk-contact-page .vk-business-hours{padding:1.1rem}.vk-business-details__items{grid-template-columns:1fr}.vk-business-details__items a+a{padding-left:0;border-left:0}.vk-business-hours dl div{align-items:baseline}}
.vk-business-location__maps-link{display:flex;width:fit-content;max-width:100%}

/* Homepage only: three selected works can be browsed natively on narrow screens. */
@media(max-width:600px){.featured-projects-carousel{position:relative;max-width:100%;overflow:hidden}.featured-swipe-hint{display:inline-flex;gap:.35rem;align-items:center;margin:0 0 .55rem;color:var(--silver-bright);font-size:.82rem;font-weight:600;letter-spacing:.035em;opacity:1;transition:opacity 180ms ease,transform 180ms ease}.featured-swipe-hint span{font-size:1rem}.featured-swipe-hint.is-dismissed{opacity:0;transform:translateX(.3rem);pointer-events:none}.featured-projects-carousel::after{position:absolute;top:2.3rem;right:0;bottom:.85rem;width:clamp(1.25rem,6vw,2.25rem);content:"";pointer-events:none;background:linear-gradient(90deg,rgb(18 18 18 / 0),rgb(18 18 18 / .16));transition:opacity 180ms ease}.featured-projects-carousel.is-swiped::after,.featured-projects-carousel.is-at-end::after{opacity:0}.study-grid--projects--three{display:flex;gap:var(--space-2);max-width:100%;box-sizing:border-box;overflow-x:auto;overflow-y:hidden;padding:.6rem 18% .85rem 0;scroll-snap-type:x mandatory;scroll-padding-left:0;overscroll-behavior-x:contain;scrollbar-width:none}.study-grid--projects--three::-webkit-scrollbar{display:none}.study-grid--projects--three .work-study--project{flex:0 0 min(82vw,22rem);min-width:0;max-width:82vw;scroll-snap-align:start;scroll-snap-stop:normal;opacity:.96;transition:opacity 180ms ease,border-color 180ms ease,box-shadow 180ms ease,transform 180ms ease}.study-grid--projects--three .work-study--project.is-active{opacity:1;transform:translateY(-1px);border-color:var(--silver-bright);box-shadow:0 0 15px rgb(218 225 232 / .12),0 6px 12px rgb(0 0 0 / .15),inset 0 1px 0 rgb(255 255 255 / .1)}.study-grid--projects--three .work-study--project a{min-width:0}.study-grid--projects--three .work-study--project:focus-within{outline:2px solid var(--silver-bright);outline-offset:3px}}@media(prefers-reduced-motion:reduce){.featured-swipe-hint,.featured-projects-carousel::after,.study-grid--projects--three .work-study--project{transition:none}.study-grid--projects--three{scroll-behavior:auto}.study-grid--projects--three .work-study--project,.study-grid--projects--three .work-study--project.is-active{opacity:1;transform:none;box-shadow:none}}
