@font-face{font-family:Modica;src:url('assets/ModicaPro-Normal-Medium.otf') format('opentype');font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:BOYA;src:url('assets/BOYA Alternative bold.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:BOYA;src:url('assets/boya-alternative-regular.bc6d8e34b55c1e04d1b7.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:GOST2;src:url('assets/gost_2.304_Bold.44dfd657cf8604c2140b.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:GOST2;src:url('assets/gost_2.304.67200007c51da9a45573.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:GOST;src:url('assets/GOSTtypeB.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
/*  BASE  */*{box-sizing:border-box}.gost{font-family:GOST,monospace}.gost2{font-family:GOST2,monospace}.screen.active{display:block}.brand-word{height:36px;width:auto}nav button.active{color:#000;text-decoration:underline;text-underline-offset:6px}.page-transition.show{opacity:1;pointer-events:none}.mini-mark{height:26px;width:42px;background:linear-gradient(90deg,#444 0 16%,transparent 16% 24%,#999 24% 45%,transparent 45% 54%,#333 54%);border:1px solid #555}.project-info p{font:clamp(11px,1.05vw,15px)/1.35 GOST;margin:0}.rail::-webkit-scrollbar{display:none}.project:not(.open):not(.closing) .cover:hover{transform:scale(1.04)}.project-title{position:absolute;top:5rem;left:0;transform:translateX(-105%);font:clamp(20px,3vw,48px) BOYA;white-space:nowrap;opacity:0;transition:.45s}.cover:hover .project-title{opacity:1}.project.open .carousel-control,.project.closing .carousel-control{display:grid}.carousel-control:hover{transform:scale(1.25);border:2px solid #fff}.carousel-control.prev:hover{transform:translateY(-50%) scale(1.25)}.carousel-control.next:hover{transform:translateY(-50%) scale(1.25)}.carousel-control[hidden]{display:none!important}.project:not(.open){--closed-shift:0px}.project:not(.open):not(.closing) .card:not(.cover){display:none}.project:not(.open) .cover img{object-position:center center}.project:not(.open):not(.closing):hover{--closed-shift:calc(112px - 8.75vw)}.project:not(.open):not(.closing):hover .aside{width:calc(16.25vw + 112px);background:#fff;box-shadow:none}.project.open .text-card,.project.closing .text-card{width:min(420px,32vw);min-width:min(420px,32vw)}.contact-copy a{color:inherit}.contact-copy h1:after{width:62px;height:4px;background:#60c35a;margin-left:12px;vertical-align:middle;content:none;display:none}.contact-copy h2:after{width:48px;height:4px;background:#ed5a5a;margin-left:12px;vertical-align:middle;content:none;display:none}.contact-copy p:nth-of-type(2):after{width:58px;height:3px;background:#48c6de;margin-left:9px;vertical-align:middle;content:none;display:none}.project-logo{position:absolute;right:0;top:0;width:80px;height:80px;display:grid;place-items:center;background:#fff}.about{padding:64px 0 0;height:100vh;min-height:0;overflow:hidden;background:#fff}.contact{padding:64px 0 0;height:100vh;min-height:0;overflow:hidden;background:#fff}.about-grid{display:grid;grid-template-columns:50% 50%;height:calc(100vh - 64px);min-height:0;background:#fff}.contact-grid{display:grid;grid-template-columns:50% 50%;height:calc(100vh - 64px);min-height:0;background:#fff}.intro-logo{position:absolute;display:block;top:30%;left:50%;width:40vw;min-width:320px;transform:translate(-54%,-50%)}.intro-word{position:absolute;display:flex;justify-content:center;align-items:center;perspective:500px;white-space:nowrap;top:47%;left:50%;width:max-content;transform:translate(-50%,-50%);font:clamp(6rem,9vw,11rem)/1 BOYA;letter-spacing:.025em}.intro-word span{display:inline-block;opacity:0;transform:rotateY(90deg);animation:none;backface-visibility:hidden;transform-style:preserve-3d;transform-origin:center center;will-change:transform,opacity}.flip-word span{display:inline-block;opacity:0;transform:rotateY(90deg);animation:none;backface-visibility:hidden;transform-style:preserve-3d;transform-origin:center center;will-change:transform,opacity}.intro-word span.in{animation:letterIn .62s cubic-bezier(.2,.75,.25,1) forwards}.flip-word span.in{animation:letterIn .62s cubic-bezier(.2,.75,.25,1) forwards}.intro-word span.out{animation:letterOut .52s cubic-bezier(.7,0,.8,.25) forwards}.flip-word span.out{animation:letterOut .52s cubic-bezier(.7,0,.8,.25) forwards}.intro-line{position:absolute;left:0;width:100%;white-space:pre;opacity:0;top:63%;transform:translateY(8px);font:clamp(12px,1.6vw,30px)/1 Modica;letter-spacing:.035em;transition:opacity 1.35s ease,transform 1.35s ease}.intro-line.show{opacity:1;transform:none}.flip-word{white-space:nowrap;display:flex;align-items:center;perspective:300px;min-height:46px;margin-left:3px;font:clamp(38px,2.65vw,48px)/1 BOYA;letter-spacing:.025em}.info-group{display:flex;flex-direction:column;align-items:flex-end;max-width:100%;line-height:1.12}.info-group b{font:400 clamp(8px,.67vw,11px)/1.12 GOST2;letter-spacing:.08em}.info-group span{font:700 clamp(11px,.96vw,15px)/1.2 GOST2;max-width:100%}.project.open .aside{width:20rem;box-shadow:none;background:#fff}.project.open .card:not(.cover){animation:projectCardIn .65s ease both}.project.closing .card:not(.cover){animation:projectCardClose .65s ease both}.about-copy{position:relative;font-family:GOST;font-weight:400;background:#fff;display:flex;flex-direction:column;justify-content:center;padding:4vh 4vw 4vh 8vw;transform:translateY(-3vh);overflow:hidden}html{background:#fff;scroll-behavior:auto}#intro.exit{opacity:0;transform:none;pointer-events:none}.intro-wrap{position:relative;width:100%;height:100%;text-align:center;display:grid;place-items:center}.intro-lockup{width:min(40vw,560px);display:flex;flex-direction:column;align-items:center;gap:clamp(18px,2.5vh,30px);transform:none}.intro-full-logo.show{opacity:1;transform:none}.intro-tagline-img.show{opacity:1;transform:none}.aside{width:25%;flex:none;position:relative;overflow:hidden;text-align:right;padding-right:24px;z-index:2;background:#fff;transition:width 1.04s cubic-bezier(.22,.61,.36,1),background 1.04s cubic-bezier(.22,.61,.36,1)}.project:not(.open) .rail{position:absolute;left:50%;top:0;height:100%;width:max(58.6667vh,444.444px);flex:none;overflow:hidden;transform:translateX(calc(-50% + var(--closed-shift)));transition:transform 1.04s cubic-bezier(.22,.61,.36,1)}.project:not(.open) .aside{position:absolute;right:calc(50% + max(29.3333vh,222.222px) - var(--closed-shift));top:0;height:100%;width:25%;padding-right:24px;transition:right 1.04s cubic-bezier(.22,.61,.36,1),width 1.04s cubic-bezier(.22,.61,.36,1),background 1.04s cubic-bezier(.22,.61,.36,1)}.project-info{height:100%;padding-top:clamp(72px,9vh,92px);padding-bottom:clamp(8px,1.5vh,18px);display:flex;flex-direction:column;align-items:flex-end;opacity:0;transform:translateX(25px);transition:opacity .52s ease .1s,transform .52s ease .1s}.project-info h2{flex:0 0 auto;margin:0;font:700 clamp(17px,1.55vw,24px)/1 GOST2;margin-bottom:clamp(16px,2.6vh,26px)}.info-fields{display:flex;flex-direction:column;align-items:flex-end;width:100%;flex:0 1 auto;justify-content:flex-start;gap:clamp(14px,2.5vh,26px)}.info-group>span{font:700 clamp(13.5px,1.16vw,18.5px)/1.2 GOST2}.project:not(.open):not(.closing) .project-info{opacity:0!important;visibility:visible;transform:translateX(25px)!important;pointer-events:none}.project:not(.open):not(.closing):hover .project-info{opacity:1!important;transform:none!important}.project:not(.open):not(.closing) .info-fields{display:none!important}.project.open .project-info{opacity:1!important;visibility:visible;transform:none!important}.project.open .project-info h2{animation:projectTextReveal .62s cubic-bezier(.22,.61,.36,1) both}.project.open .info-group{animation:projectTextReveal .62s cubic-bezier(.22,.61,.36,1) both}.project.open .info-group:nth-child(1){animation-delay:.06s}.project.open .info-group:nth-child(2){animation-delay:.11s}.project.open .info-group:nth-child(3){animation-delay:.16s}.project.open .info-group:nth-child(4){animation-delay:.21s}.project.open .info-group:nth-child(5){animation-delay:.26s}.rail{display:flex;flex:1;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;gap:10px}.project.open .card,.project.closing .card{min-width:auto;flex:0 0 auto;width:auto;scroll-snap-align:center}.project.open .card:first-child,.project.closing .card:first-child{scroll-snap-align:start}.project.open .card:last-child,.project.closing .card:last-child{scroll-snap-align:end}.project.open .card img,.project.closing .card img{width:auto;height:100%;max-width:none;object-fit:contain}.project.open .card video,.project.closing .card video{width:auto;height:100%;max-width:none;object-fit:contain}.text-card{width:26%;min-width:270px;display:flex;align-items:center;padding:24px;font:clamp(12px,1.1vw,17px)/1.55 GOST;background:#fff;font-family:GOST2,monospace;font-weight:400}.carousel-control{position:absolute;border:0;border-radius:50%;backdrop-filter:blur(18px);background:rgba(255,255,255,.2);box-shadow:0 0 10px 2px rgba(0,0,0,.1);z-index:8;display:none;place-items:center;cursor:pointer;color:#b5c0d0;transition:transform .3s,border .3s,opacity .3s;font:26px/1 Arial;width:30px;height:30px;padding:5px;font-size:20px}.carousel-control.close{font-size:16px;right:16px;top:12px}.carousel-control.next{top:50%;transform:translateY(-50%);right:16px}.carousel-control.prev{top:50%;transform:translateY(-50%);left:314px}.contact-copy h1{margin-bottom:22px;width:100%;max-width:590px;font:clamp(44px,4vw,64px)/1 BOYA;text-align:center;margin:0 0 24px}.contact-copy{position:relative;font-family:GOST;padding-top:14vh;background:#fff;display:flex;flex-direction:column;justify-content:center;padding:4vh 4vw 4vh 8vw;transform:translateY(-3vh);overflow:hidden;align-items:flex-start}.contact-icon{display:block;width:19px;height:19px;flex:none;object-fit:contain}body{margin:0;color:#111;font-family:BOYA,Arial,sans-serif;background:#fff;overflow-x:hidden}.info-group>b .label-word{max-width:none!important;font:inherit!important;font-style:normal!important;letter-spacing:inherit!important;white-space:nowrap!important;display:inline-block!important}.project.open .card.gallery-reveal{opacity:.08;transform:scale(.992);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}.project.open .card.gallery-reveal.is-visible{opacity:1;transform:none}.social-icon{display:block;object-fit:contain;width:21px;height:21px}.contact-icons a{display:grid;place-items:center;border-radius:50%;color:white;font:9px Modica;font-family:GOST2;font-weight:700;text-decoration:none;background:none;width:40px;height:40px;min-width:40px;min-height:40px;margin-left:-9.5px;margin-right:-9.5px}.project{height:33vh;min-height:250px;padding:0 9px;display:flex;gap:16px;overflow:hidden;position:relative;background:#fff;opacity:.16;transform:translateY(22px);transition:height 1.04s cubic-bezier(.22,.61,.36,1),opacity .72s ease,transform .82s cubic-bezier(.22,.61,.36,1)}.project.project-visible{opacity:1;transform:none}.project.open{height:60vh;opacity:1;transform:none}#projects{padding-bottom:14vh;padding-top:calc(64px + clamp(28px,5vh,56px));scroll-padding-top:calc(64px + 28px)}.projects-list>.project:first-child{scroll-margin-top:calc(64px + 28px)}.info-group>b{align-items:baseline;gap:.38em;word-break:keep-all;overflow-wrap:normal;display:block!important;width:fit-content!important;max-width:100%!important;align-self:flex-end!important;justify-content:normal!important;white-space:nowrap!important;font:400 clamp(9px,.76vw,12.5px)/1.12 GOST!important;letter-spacing:.08em!important}.screen{display:none;min-height:100vh;background:#fff;opacity:1}.screen.page-leaving{opacity:0;transition:opacity .38s ease}.screen.active.page-entering{animation:pageContentIn .42s ease both}.page-transition img{width:min(31vw,420px);animation:none!important;transform:none!important;opacity:1;will-change:opacity}header{position:fixed;inset:0 0 auto;z-index:20;display:flex;justify-content:space-between;padding:0 10px;background:rgba(255,255,255,.78);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);height:64px;align-items:center;contain:layout paint}nav{display:flex;font:700 clamp(11px,1.25vw,20px) GOST2;text-transform:uppercase;color:#3f3f46;align-items:center;gap:24px;font-family:GOST2,monospace;font-weight:700;letter-spacing:.02em;line-height:1}nav button{font:inherit;border:0;background:none;cursor:pointer;padding:12px 0;height:64px;display:flex;align-items:center;line-height:1;letter-spacing:inherit}.wordmark{display:flex;align-items:center;width:auto;min-width:0;overflow:visible;flex:none}.header-logo{display:block;height:auto;object-fit:contain;width:clamp(105px,10.5vw,161px);flex:none;transform:none}.projects-list{display:flex;flex-direction:column;background:#fff;gap:20px}.project:not(.open) .cover{width:100%;min-width:100%;transition:transform .45s cubic-bezier(.22,.61,.36,1)}.about-copy p{font-family:GOST;font-weight:400;font:400 clamp(13px,1.08vw,18px)/1.4 GOST2;margin:0 0 18px;max-width:560px;line-height:1.55;margin-bottom:22px;font-size:clamp(13.9px,1.1556vw,19.26px)}.about-copy h1{width:100%;max-width:590px;font:clamp(44px,4vw,64px)/1 BOYA;text-align:center;margin:0 0 24px;margin-bottom:30px}.contact-copy h2{width:100%;max-width:590px;font:700 clamp(20px,2vw,32px)/1.1 GOST2;margin:0 0 16px;text-align:left;margin-bottom:20px}.contact-copy p{max-width:590px;font:400 clamp(13px,1.08vw,18px)/1.4 GOST2;display:flex;align-items:center;gap:9px;margin:6px 0;line-height:1.4;position:relative;padding-left:28px}.contact-icons{display:flex;gap:10px;margin-left:64px;margin-top:20px}.contact-icon-link{display:grid;place-items:center;width:40px;height:40px;flex:none;position:absolute;left:-10.5px;top:50%;transform:translateY(-50%)}.contact-icon-link .contact-icon{width:19px;height:19px}a{cursor:pointer}button{cursor:pointer}.cover{box-shadow:0 3px 12px #0001;transition:transform .5s;cursor:pointer}.card video{display:block;width:100%;height:100%;object-fit:cover;max-width:100%}.about-img{width:78%;height:100%;align-self:start;justify-self:center;object-fit:contain;object-position:top center;background:#fff;max-width:100%}.contact-img{width:78%;height:100%;align-self:start;justify-self:center;object-fit:contain;object-position:top center;background:#fff;max-width:100%}.card{height:100%;min-width:33vh;aspect-ratio:16/9;scroll-snap-align:start;overflow:hidden;position:relative;background:#fff;contain:layout paint}.card img{display:block;width:100%;height:100%;object-fit:cover;max-width:100%;transition:opacity .25s ease}.card img:not([data-loaded]){opacity:.001}.card img[data-loaded]{opacity:1}.page-transition{position:fixed;inset:0;z-index:40;display:grid;place-items:center;opacity:0;pointer-events:none;background:#fff;transition:opacity .4s ease;transition-duration:.8s}.intro-full-logo{display:block;width:100%;height:auto;opacity:0;transform:none;transition:opacity 1.25s ease;transition-duration:1.56s}.intro-tagline-img{display:block;width:94%;height:auto;opacity:0;transform:none;transition:opacity 1.35s ease;transition-duration:1.69s}#intro{position:fixed;inset:0;z-index:50;color:#fff;display:grid;place-items:center;transform:none;transform-origin:center;opacity:1;transition:opacity 1.05s ease;background:#000;transition-duration:1.31s}.info-group>span.type-value{white-space:normal}.info-group>span.type-value br{display:block}@keyframes letterIn{to{opacity:1;transform:rotateY(0)}}@keyframes letterOut{to{opacity:0;transform:rotateY(-90deg)}}
@keyframes projectCardIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
@keyframes projectTextReveal{from{opacity:0;transform:translateX(25px)}to{opacity:1;transform:none}}
@keyframes projectTextClose{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(25px)}}
@keyframes projectCardClose{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(24px)}}
@keyframes pageContentIn{from{opacity:0}to{opacity:1}}
.project.closing .carousel-control { pointer-events: none; }
.project.closing .project-info {
  transition-delay: 0s;
}

/* Contact rows share one icon column.  The mail link stays one semantic
   mailto link, while its visual children participate in the same grid as
   phone and address. */
.contact-copy p{
  display:grid;
  grid-template-columns:19px minmax(0,1fr);
  column-gap:9px;
  align-items:center;
  padding-left:0;
}
.contact-copy .contact-icon-link{
  position:static;
  grid-column:1;
  grid-row:1;
  width:19px;
  height:19px;
  transform:none;
}
.contact-copy p>a:not(.contact-icon-link){grid-column:2;grid-row:1;min-width:0}
.contact-email-link{display:contents}
.contact-email-link .contact-email-icon{
  position:static;
  grid-column:1;
  grid-row:1;
  justify-self:center;
  width:19px;
  height:19px;
  transform:none;
}
.contact-email-link span{grid-column:2;grid-row:1;min-width:0}

.project.closing .project-info h2,
.project.closing .info-group {
  animation: projectTextClose .62s cubic-bezier(.22,.61,.36,1) both;
}
.project.closing .info-group:nth-child(5) { animation-delay: 0s; }
.project.closing .info-group:nth-child(4) { animation-delay: .05s; }
.project.closing .info-group:nth-child(3) { animation-delay: .10s; }
.project.closing .info-group:nth-child(2) { animation-delay: .15s; }
.project.closing .info-group:nth-child(1) { animation-delay: .20s; }
.project.closing .project-info h2 { animation-delay: .26s; }
/*  DESKTOP  */
@media (max-width:1100px){nav{gap:18px}.project.open .aside{width:17rem}.carousel-control.prev{left:266px}.about-copy{padding-left:6vw}.contact-copy{padding-left:6vw}.about-copy p{font-size:clamp(15px,1.445vw,18.2px)}.contact-copy p{font-size:clamp(14px,1.35vw,17px)}}
@media (max-height:650px) and (min-width:701px){#projects{padding-top:86px;padding-bottom:80px}.project{height:46vh;min-height:245px}.project.open{height:78vh}.project-info{padding-top:58px;padding-bottom:6px}.project-info h2{margin-bottom:10px}.info-fields{gap:9px}.info-group>b{font-size:8px}.info-group>span{font-size:11px}}
@media (hover:hover) and (pointer:fine){.project:not(.open):not(.closing) .cover:hover{transform:scale(1.015)}}
/*  TABLET  */
@media (max-width:820px) and (max-aspect-ratio:1/1){header{padding-inline:12px}.header-logo{width:105px}#projects{padding-top:82px}.project{height:42vh;min-height:300px}.project.open{height:68vh}.project.open .aside{width:150px;padding-right:12px}.carousel-control.prev{left:144px}.project-info{padding-top:68px}.project-info h2{font-size:15px}.info-group>b{font-size:8px}.info-group>span{font-size:11px}.about-grid{grid-template-columns:46% 54%}.contact-grid{grid-template-columns:46% 54%}.about-copy{padding-inline:4vw 2vw}.contact-copy{padding-inline:4vw 2vw}.about-img{width:90%}.contact-img{width:90%}nav{font-size:12px;gap:13px}.projects-list{gap:18px}.project:not(.open){height:clamp(250px,44vh,360px);min-height:250px}.project:not(.open) .rail{width:min(78vw,560px)}.project:not(.open) .aside{right:calc(50% + min(39vw,280px) - var(--closed-shift))}}
/*  MOBILE  */
@media (max-width:700px) and (max-aspect-ratio:1/1){.brand-word{height:23px}.project:not(.open):not(.closing):hover{--closed-shift:-18px}.project.open .aside{width:116px}.project:not(.open):not(.closing):hover .aside{width:116px}.project-logo{width:58px;height:58px}.card{min-width:72vw}.project.open .text-card,.project.closing .text-card{min-width:75vw;width:75vw}.project-title{display:none}.about{padding-top:52px;height:auto;min-height:100vh;overflow:visible}.contact{padding-top:52px;height:auto;min-height:100vh;overflow:visible}.about-grid{grid-template-columns:1fr;height:auto;min-height:calc(100vh - 52px)}.contact-grid{grid-template-columns:1fr;height:auto;min-height:calc(100vh - 52px)}.page-transition img{width:55vw}.wordmark{width:66%;min-width:230px;overflow:hidden}.flip-word{min-height:28px;font-size:25px;margin-left:2px}.intro-logo{top:30%;width:60vw;min-width:0}.intro-word{width:100%;top:46%;font-size:15vw}.intro-line{top:61%;font-size:3vw}.project-info{padding:70px 7px 8px}.info-group b{font-size:7px}.info-group span{font-size:10px}.about-copy{min-height:48vh;transform:none;padding:48px 25px}.contact-copy{min-height:48vh;padding-top:70px;transform:none;padding:48px 25px}.about-img{width:88%;height:48vh}.contact-img{width:88%;height:48vh}.intro-lockup{width:43vw;gap:16px}.info-fields{gap:10px}.rail{gap:5px}.carousel-control.prev{left:112px}.carousel-control.next{right:8px}.carousel-control.close{right:8px}.contact-copy p{font-size:13px}.header-logo{width:84px}.contact-icons{margin-left:46px}.project{height:56vh;min-height:460px;gap:5px;opacity:1;transform:none}.project.open .card.gallery-reveal{opacity:.08}.project.open .card.gallery-reveal.is-visible{opacity:1}#projects{padding:65px 0 10vh;padding-top:calc(52px + 24px);scroll-padding-top:calc(52px + 24px)}.projects-list>.project:first-child{scroll-margin-top:calc(52px + 24px)}header{height:52px}nav button{height:52px}nav{gap:10px;font-size:10px;letter-spacing:.01em}.projects-list{gap:16px}.project:not(.open){height:clamp(210px,58vw,310px);min-height:210px}.project:not(.open) .rail{width:82vw}.project:not(.open) .aside{width:60px;padding:0;right:calc(50% + 41vw - var(--closed-shift))}.project:not(.open) .cover img{object-fit:contain}.project:not(.open):not(.closing) .cover:hover{transform:none}.project.open{height:72vh;min-height:480px}.project.open .card img,.project.closing .card img{max-width:86vw}.project.open .card video,.project.closing .card video{max-width:86vw}.project-info h2{margin-bottom:12px;font-size:14px}.info-group>b{font-size:8px!important}.info-group>span{font-size:11px}.screen.page-leaving{transition-duration:.24s}.screen.active.page-entering{animation-duration:.28s}.about-copy h1{font-size:44px;margin-bottom:24px}.contact-copy h1{font-size:44px;margin-bottom:24px}.about-copy p{font-size:13px;line-height:1.48;margin-bottom:18px}.page-transition{transition-duration:.56s}
    .contact-icon-link {
      left: -12.5px;
      width: 44px;
      height: 44px;
    }
    .contact-icons a {
      width: 44px;
      height: 44px;
      min-width: 44px;
      min-height: 44px;
      margin-left: -11.5px;
      margin-right: -11.5px;
    }}
/*  ACCESSIBILITY  */
@supports not ((backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px))){header{background:rgba(255,255,255,.96)}}
/*  REDUCED MOTION  */
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}*:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Mobile architecture: the approved desktop remains the base; these elements exist only below. */
.mobile-menu-toggle,
.mobile-project-header,
.mobile-project-primary,
.mobile-project-metadata { display: none; }

@keyframes mobileProjectOpen {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes mobileProjectClose {
  from { opacity: 1; }
  to { opacity: 0; }
}

@media (max-width:767px) and (max-aspect-ratio:1/1) {
  :root { --mobile-header-height: 52px; --mobile-page-gap: 12px; }

  html,
  body { width: 100%; max-width: 100%; overflow-x: hidden; }

  body.mobile-menu-open,
  body.mobile-project-view { overscroll-behavior-x: none; }

  body.mobile-menu-open { overflow: hidden; }

  header {
    height: calc(var(--mobile-header-height) + env(safe-area-inset-top));
    padding: env(safe-area-inset-top) 12px 0;
    contain: none;
  }

  .wordmark { width: auto; min-width: 0; overflow: visible; }
  .header-logo { width: 78px; }

  .mobile-menu-toggle {
    position: relative;
    z-index: 23;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin: 0 -7px 0 auto;
    padding: 0;
    border: 0;
    background: transparent;
    color: #2d2c2a;
  }

  .mobile-menu-toggle span {
    position: absolute;
    width: 20px;
    height: 1.5px;
    background: currentColor;
    transition: transform .28s ease, top .28s ease;
  }

  .mobile-menu-toggle span:first-child { top: 17px; }
  .mobile-menu-toggle span:last-child { top: 25px; }
  .mobile-menu-open .mobile-menu-toggle { color: #f7f7f5; }
  .mobile-menu-open .mobile-menu-toggle span:first-child { top: 21px; transform: rotate(45deg); }
  .mobile-menu-open .mobile-menu-toggle span:last-child { top: 21px; transform: rotate(-45deg); }

  #primary-navigation {
    position: fixed;
    inset: 0;
    z-index: 22;
    width: 100%;
    height: 100dvh;
    min-height: 100vh;
    padding: calc(env(safe-area-inset-top) + 72px) 24px calc(env(safe-area-inset-bottom) + 28px);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 8px;
    color: #f7f7f5;
    background: #2d2c2a;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .28s ease, visibility 0s linear .28s;
  }

  .mobile-menu-open #primary-navigation {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
  }

  #primary-navigation button {
    height: auto;
    min-height: 48px;
    padding: 5px 0;
    color: inherit;
    font-size: clamp(29px, 9vw, 42px);
    font-weight: 700;
  }

  #primary-navigation button.active {
    color: inherit;
    text-underline-offset: 7px;
  }

  #projects {
    height: 100dvh;
    min-height: 100vh;
    padding: calc(var(--mobile-header-height) + env(safe-area-inset-top) + 14px) 0 calc(env(safe-area-inset-bottom) + 12px);
    overflow: hidden;
    scroll-padding-top: 0;
  }

  #projects .projects-list {
    width: 100%;
    height: 100%;
    min-height: 0;
    padding: 0 7vw;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 12px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    scroll-padding-inline: 7vw;
    scroll-behavior: smooth;
    overscroll-behavior-inline: contain;
    touch-action: pan-x pan-y;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  #projects .projects-list::-webkit-scrollbar { display: none; }

  #projects .project:not(.open):not(.closing) {
    position: relative;
    flex: 0 0 86vw;
    width: 86vw;
    height: 100%;
    min-height: 0;
    max-height: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    overflow: hidden;
    opacity: 1;
    transform: none;
    scroll-snap-align: center;
    scroll-snap-stop: normal;
    --closed-shift: 0px;
  }

  #projects .project:not(.open):not(.closing) .rail {
    position: relative;
    inset: auto;
    order: 0;
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
    max-width: none;
    height: auto;
    display: block;
    overflow: hidden;
    transform: none;
    transition: none;
    touch-action: auto;
  }

  #projects .project:not(.open):not(.closing) .card:not(.cover),
  #projects .project:not(.open):not(.closing) .mobile-project-header,
  #projects .project:not(.open):not(.closing) .mobile-project-primary,
  #projects .project:not(.open):not(.closing) .mobile-project-metadata { display: none; }

  #projects .project:not(.open):not(.closing) .card.cover {
    width: 100%;
    min-width: 0;
    height: auto;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    box-shadow: none;
    transform: none;
  }

  #projects .project:not(.open):not(.closing) .cover img {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: contain;
    object-position: center;
  }

  #projects .project:not(.open):not(.closing) .aside {
    position: relative;
    inset: auto;
    order: 1;
    flex: 1 1 auto;
    width: 100%;
    height: auto;
    padding: 15px 4px 8px;
    overflow: visible;
    background: #f7f7f5;
    text-align: right;
    transition: none;
  }

  #projects .project:not(.open):not(.closing) .project-info {
    width: 100%;
    height: auto;
    padding: 54px 0 0 54px;
    display: flex;
    align-items: flex-end;
    opacity: 1 !important;
    visibility: visible;
    transform: none !important;
    pointer-events: auto;
    transition: none;
  }

  #projects .project:not(.open):not(.closing) .project-info h2 {
    margin: 0 0 13px;
    font-size: 18px;
  }

  #projects .project:not(.open):not(.closing) .info-fields {
    display: flex !important;
    width: 100%;
    gap: 10px;
    align-items: flex-end;
  }

  #projects .project:not(.open):not(.closing) .info-group {
    display: none;
    width: 100%;
  }

  #projects .project:not(.open):not(.closing) .info-group:nth-child(1),
  #projects .project:not(.open):not(.closing) .info-group:nth-child(2) {
    display: flex;
    justify-content: flex-end;
  }

  #projects .project:not(.open):not(.closing) .info-copy > b {
    align-self: flex-end;
    margin-bottom: 2px;
    font-size: 9px;
  }

  #projects .project:not(.open):not(.closing) .info-copy > span {
    font-size: 12px;
    line-height: 1.25;
  }

  #projects .project:not(.open):not(.closing) .info-icon {
    width: 17px;
    height: 17px;
  }

  #projects .project:not(.open):not(.closing) .project-logo {
    position: absolute;
    top: 13px;
    right: 4px;
    left: auto;
    z-index: 2;
    width: 44px;
    height: 44px;
    display: grid;
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: none;
  }

  .projects-list.mobile-project-open {
    display: block !important;
    height: auto !important;
    min-height: 100dvh;
    padding: 0 !important;
    overflow: visible !important;
    scroll-snap-type: none !important;
    touch-action: pan-y !important;
  }

  .projects-list.mobile-project-open > .project:not(.open):not(.mobile-closing) { display: none !important; }

  body.mobile-project-view #projects {
    height: auto;
    min-height: 100dvh;
    padding: calc(var(--mobile-header-height) + env(safe-area-inset-top) + 10px) 0 calc(env(safe-area-inset-bottom) + 24px);
    overflow: visible;
  }

  #projects .project.open,
  #projects .project.mobile-closing {
    position: relative;
    width: 100%;
    height: auto;
    min-height: 100dvh;
    padding: 0 clamp(10px, 3vw, 16px);
    display: block;
    overflow: visible;
    opacity: 1;
    transform: none;
    animation: mobileProjectOpen .52s ease both;
  }

  #projects .project.mobile-closing { animation: mobileProjectClose .32s ease both; }
  #projects .project.open .aside,
  #projects .project.mobile-closing .aside { display: none; }

  #projects .project.open .rail,
  #projects .project.mobile-closing .rail {
    position: static;
    width: 100%;
    height: auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--mobile-page-gap);
    overflow: visible;
    transform: none;
    scroll-snap-type: none;
    scroll-behavior: auto;
    touch-action: pan-y;
  }

  #projects .project.open .card,
  #projects .project.mobile-closing .card {
    order: 5;
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
    height: auto;
    aspect-ratio: auto;
    display: block;
    overflow: visible;
    contain: paint;
    scroll-snap-align: none;
    animation: none;
  }

  #projects .project.open .card:not(.text-card),
  #projects .project.mobile-closing .card:not(.text-card) {
    aspect-ratio: var(--media-aspect, 16 / 10);
  }

  #projects .project.open .card.cover,
  #projects .project.mobile-closing .card.cover { order: 0; }
  #projects .project.open .mobile-project-header,
  #projects .project.mobile-closing .mobile-project-header { order: 1; }
  #projects .project.open .mobile-project-primary,
  #projects .project.mobile-closing .mobile-project-primary { order: 2; }
  #projects .project.open .text-card,
  #projects .project.mobile-closing .text-card { order: 3; }
  #projects .project.open .mobile-project-metadata,
  #projects .project.mobile-closing .mobile-project-metadata { order: 4; }

  #projects .project.open .card img,
  #projects .project.open .card video,
  #projects .project.mobile-closing .card img,
  #projects .project.mobile-closing .card video {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    object-fit: contain;
  }

  #projects .project.open .card.gallery-reveal,
  #projects .project.open .card.gallery-reveal.is-visible { opacity: 1; transform: none; transition: none; }

  .mobile-project-header {
    position: relative;
    min-height: 86px;
    padding: 62px 0 2px;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    text-align: right;
  }

  .mobile-project-header h2 {
    margin: 0;
    color: #2d2c2a;
    font: 700 20px/1 GOST2;
  }

  .mobile-project-logo {
    position: absolute;
    top: 4px;
    right: 0;
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    overflow: hidden;
  }

  .mobile-project-logo .project-logo-image {
    width: 100%;
    height: 100%;
    padding: 3px;
    object-fit: contain;
  }

  .mobile-project-primary,
  .mobile-project-metadata {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 12px;
    padding: 4px 0 10px;
  }

  .mobile-project-primary .info-group,
  .mobile-project-metadata .info-group {
    width: 100%;
    max-width: none;
    justify-content: flex-end;
    text-align: right;
  }

  .mobile-project-primary .info-copy,
  .mobile-project-metadata .info-copy { align-items: flex-end; }
  .mobile-project-primary .info-copy > b,
  .mobile-project-metadata .info-copy > b { align-self: flex-end; margin-bottom: 3px; font-size: 9px; }
  .mobile-project-primary .info-copy > span,
  .mobile-project-metadata .info-copy > span { font-size: 12px; line-height: 1.3; }
  .mobile-project-primary .info-icon,
  .mobile-project-metadata .info-icon { width: 18px; height: 18px; }

  #projects .project.open .text-card,
  #projects .project.mobile-closing .text-card {
    width: 100%;
    min-width: 0;
    padding: 16px 3px 20px;
    align-items: flex-start;
    color: #2d2c2a;
    font-size: 14px;
    line-height: 1.62;
  }

  #projects .project.open .carousel-control.prev,
  #projects .project.open .carousel-control.next,
  #projects .project.mobile-closing .carousel-control.prev,
  #projects .project.mobile-closing .carousel-control.next { display: none !important; }

  #projects .project.open .carousel-control.close,
  #projects .project.mobile-closing .carousel-control.close {
    position: fixed;
    top: calc(var(--mobile-header-height) + env(safe-area-inset-top) + 8px);
    right: 10px;
    z-index: 21;
    width: 44px;
    height: 44px;
    display: grid;
    color: #2d2c2a;
    background: rgba(247, 247, 245, .82);
    box-shadow: none;
  }

  #projects .project.open .carousel-close-icon,
  #projects .project.mobile-closing .carousel-close-icon { width: 17px; height: 17px; }

  .about,
  .contact {
    width: 100%;
    min-height: 100dvh;
    padding-top: calc(var(--mobile-header-height) + env(safe-area-inset-top));
    overflow-x: hidden;
  }

  .about-grid,
  .contact-grid { width: 100%; min-width: 0; }
  .about-copy,
  .contact-copy { width: 100%; min-width: 0; padding-inline: 24px; }
  .about-copy p,
  .contact-copy p { max-width: 100%; overflow-wrap: anywhere; }
  .accessibility-widget { left: max(9px, env(safe-area-inset-left)); bottom: max(9px, env(safe-area-inset-bottom)); }
}

@media (max-width:1023px) and (orientation:landscape) {
  header { height: 52px; }
  nav button { height: 52px; }
  #projects { padding-top: 70px; }
  .project { min-height: min(245px, calc(100dvh - 88px)); }
  .accessibility-widget { bottom: max(9px, env(safe-area-inset-bottom)); left: max(9px, env(safe-area-inset-left)); }
}

/* V8 PATCH — precise project geometry: center → left on open, left → center on close. */
.project{
  --project-inline-pad:9px;
  --project-gap:16px;
  --open-aside-width:20rem;
}
.project .rail{
  transition:left 1.04s cubic-bezier(.22,.61,.36,1),width 1.04s cubic-bezier(.22,.61,.36,1),transform 1.04s cubic-bezier(.22,.61,.36,1);
}
.project:not(.open) .rail{width:58.6667vh;min-width:444.444px;max-width:none}
.project.open .rail{
  position:absolute;
  top:0;
  left:calc(var(--project-inline-pad) + var(--open-aside-width) + var(--project-gap));
  width:calc(100% - var(--project-inline-pad) - var(--project-inline-pad) - var(--open-aside-width) - var(--project-gap));
  height:100%;
  transform:translateX(0);
  min-width:0;
  max-width:none;
}
.project.open .aside{
  position:absolute;
  top:0;
  right:calc(100% - var(--project-inline-pad) - var(--open-aside-width));
  height:100%;
  width:var(--open-aside-width);
}
.project-logo{overflow:hidden;transition:width 1.04s cubic-bezier(.22,.61,.36,1),height 1.04s cubic-bezier(.22,.61,.36,1)}
.project-logo-image{display:block;width:100%;height:100%;padding:5px;object-fit:contain}
.project-logo.logo-unavailable .project-logo-image{display:none}

@media (max-width:1100px){.project{--open-aside-width:17rem}}
@media (max-width:820px) and (max-aspect-ratio:1/1){.project{--open-aside-width:150px}.project:not(.open) .rail{width:78vw;min-width:0;max-width:560px}}
@media (max-width:700px) and (max-aspect-ratio:1/1){.project{--project-gap:5px;--open-aside-width:116px}.project:not(.open) .rail{width:82vw;min-width:0;max-width:none}.project:not(.open) .project-logo{width:28px;height:28px}.project-logo-image{padding:2px}}

/* V2 — portrait phone only. Desktop and landscape phone keep the desktop layout. */
@media (max-width:700px) and (max-aspect-ratio:1/1){
  header{padding-inline:10px}
  .wordmark{width:auto;min-width:0;overflow:visible}
  .header-logo{width:78px}
  nav{gap:9px;font-size:15px;letter-spacing:0}
  nav button{padding-inline:0}
  .project.open{height:72vh;min-height:560px;--mobile-rail-height:46vh}
  .project.open .rail{
    left:0;
    top:0;
    width:100%;
    height:var(--mobile-rail-height);
    gap:8px;
    scroll-snap-type:x proximity;
    scroll-padding-inline:4vw;
    overscroll-behavior-inline:contain;
  }
  .project.open .card{height:100%;scroll-snap-align:center}
  .project.open .card.cover{width:100vw;min-width:100vw;aspect-ratio:auto}
  .project.open .card.cover img{width:100%;height:100%;max-width:none;object-fit:contain}
  .project.open .aside{
    left:0;
    right:auto;
    top:var(--mobile-rail-height);
    width:100%;
    height:calc(100% - var(--mobile-rail-height));
    padding:12px 14px 10px 76px;
    overflow:hidden;
    text-align:left;
  }
  .project.open .project-logo{left:14px;right:auto;top:16px;width:50px;height:50px}
  .project.open .project-info{height:auto;padding:0;align-items:flex-start;text-align:left}
  .project.open .project-info h2{margin:0 0 9px;font-size:15px}
  .project.open .info-fields{width:100%;gap:4px;align-items:flex-start}
  .project.open .info-group{width:100%;max-width:100%;flex-direction:row;align-items:baseline;justify-content:flex-start;gap:6px;line-height:1.25;text-align:left}
  .project.open .info-group>b{flex:0 0 auto;align-self:auto!important;font-size:9px!important;letter-spacing:.04em!important}
  .project.open .info-group>span{font-size:11px;line-height:1.25;text-align:left}
  .project.open .info-group>span.type-value br{display:none}
  .project.open .carousel-control.prev{left:8px;top:23vh}
  .project.open .carousel-control.next{right:8px;top:23vh}
  .project.open .carousel-control.close{right:8px;top:8px}
  .project.open .rail.mobile-gliding{scroll-snap-type:none}
}

/* Site surface colour */
html,
body,
.screen,
.projects-list,
.project,
.aside,
.project-logo,
.card,
.text-card,
.about,
.contact,
.about-grid,
.contact-grid,
.about-copy,
.contact-copy,
.about-img,
.contact-img,
.page-transition {
  background: #f7f7f5;
}

.project:not(.open):not(.closing):hover .aside,
.project.open .aside {
  background: #f7f7f5;
}

header {
  background: rgba(247, 247, 245, .78);
}

.carousel-control {
  background: rgba(247, 247, 245, .2);
}

@supports not ((backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px))) {
  header { background: rgba(247, 247, 245, .96); }
}

/* Project details: restrained line icons paired with the existing metadata. */
.info-group {
  flex-direction: row;
  align-items: flex-start;
  justify-content: flex-end;
  gap: clamp(7px, .75vw, 12px);
}

.info-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  min-width: 0;
}

.info-group > .info-copy {
  font: inherit;
}

.info-copy > span {
  font: 700 clamp(13.5px, 1.16vw, 18.5px)/1.2 GOST2;
  max-width: 100%;
}

.info-icon {
  flex: 0 0 auto;
  width: clamp(18px, 1.45vw, 24px);
  height: clamp(18px, 1.45vw, 24px);
  margin-top: 1px;
  fill: none;
  stroke: #968a7e;
  stroke-width: 1.45;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width:700px) and (max-aspect-ratio:1/1) {
  .project.open .info-group { gap: 6px; }
  .project.open .info-copy { align-items: flex-start; }
  .project.open .info-copy > span { font-size: 11px; line-height: 1.25; text-align: left; }
  .project.open .info-icon { width: 16px; height: 16px; margin-top: 0; }
}

/* Site-wide text tone and a charcoal opening screen. */
body,
nav,
nav button.active,
.carousel-control {
  color: #2d2c2a;
}

#intro {
  background: #2d2c2a;
}

/* Keep each metadata label intact, with a small, stable gap before its value. */
.project-info h2 {
  margin-bottom: calc(clamp(16px, 2.6vh, 26px) + 4px);
}

.info-copy > b {
  display: block;
  width: fit-content;
  max-width: none;
  align-self: flex-end;
  margin: 0 0 3px;
  white-space: nowrap;
  font: 400 clamp(9px, .76vw, 12.5px)/1.12 GOST;
  letter-spacing: .08em;
}

@media (max-width:700px) and (max-aspect-ratio:1/1) {
  .project.open .project-info h2 { margin-bottom: 12px; }
  .project.open .info-copy > b {
    align-self: flex-start;
    margin-bottom: 2px;
    font-size: 9px;
    letter-spacing: .04em;
  }
}

/* Open gallery: each media card follows its real aspect ratio; only one fixed gap is used. */
.project.open .rail,
.project.closing .rail {
  --gallery-gap: 10px;
  gap: var(--gallery-gap);
}

.project.open .card:not(.text-card),
.project.closing .card:not(.text-card) {
  min-width: 0;
  aspect-ratio: auto;
  contain: paint;
}

.project.open .cover,
.project.closing .cover {
  box-shadow: none;
}

@media (max-width:700px) and (max-aspect-ratio:1/1) {
  .project.open .rail,
  .project.closing .rail { --gallery-gap: 5px; }
}

/* Project controls use the same restrained line-icon language as the project metadata. */
.carousel-control {
  font-size: 0;
  line-height: 0;
}

.carousel-icon {
  display: block;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.carousel-control {
  padding: 0;
  overflow: hidden;
}

.carousel-icon {
  position: absolute;
  inset: 0;
  margin: auto;
  pointer-events: none;
}

.carousel-arrow-icon { width: 21px; height: 21px; }
.carousel-close-icon { width: 17px; height: 17px; }

.project.open .carousel-control.prev {
  left: calc(var(--project-inline-pad) + var(--open-aside-width) + var(--project-gap) + 7px);
}

.info-copy > b {
  font-family: Modica, sans-serif;
  font-weight: 400;
  font-style: normal;
  transform: scaleX(.8);
  transform-origin: right center;
  color: #968a7e;
}

@media (max-width:700px) and (max-aspect-ratio:1/1) {
  .project.open .carousel-control.prev { left: 8px; }
}

/* Minimal accessibility layer: compact on screen, complete when opened. */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.skip-link {
  position: fixed;
  top: 8px;
  left: 50%;
  z-index: 120;
  padding: 10px 16px;
  color: #fff;
  background: #2d2c2a;
  font: 700 14px/1.2 Arial, sans-serif;
  transform: translate(-50%, -150%);
  transition: transform .18s ease;
}

.skip-link:focus { transform: translate(-50%, 0); }

:where(a, button, [role="button"]):focus-visible {
  outline: 3px solid #a07648 !important;
  outline-offset: 3px !important;
}

.cover:focus-visible {
  outline: 2px solid rgba(255, 255, 255, .72) !important;
  outline-offset: -4px !important;
}

.accessibility-widget {
  position: fixed;
  left: 16px;
  bottom: 16px;
  z-index: 100;
  font-family: Arial, sans-serif;
  color: #2d2c2a;
  transition: opacity .22s ease, visibility .22s ease;
}

.intro-active .accessibility-widget {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.accessibility-toggle {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: #2d2c2a;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
}

.accessibility-toggle-icon {
  display: block;
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.accessibility-menu {
  position: absolute;
  left: 0;
  bottom: 54px;
  width: min(270px, calc(100vw - 32px));
  padding: 12px;
  border: 1px solid rgba(45, 44, 42, .18);
  color: #2d2c2a;
  background: #f7f7f5;
  box-shadow: 0 14px 35px rgba(0, 0, 0, .16);
}

.accessibility-menu[hidden] { display: none !important; }

.accessibility-menu-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  font-size: 16px;
}

.accessibility-menu-head strong { font-weight: 700; }

.accessibility-menu-close {
  width: 32px;
  height: 32px;
  border: 0;
  color: inherit;
  background: transparent;
  font: 24px/1 Arial, sans-serif;
}

.accessibility-menu > button[data-a11y-action],
.accessibility-statement-link {
  display: block;
  width: 100%;
  min-height: 42px;
  padding: 10px 12px;
  border: 0;
  border-top: 1px solid rgba(45, 44, 42, .12);
  color: inherit;
  background: transparent;
  font: 400 14px/1.25 Arial, sans-serif;
  text-align: right;
  text-decoration: none;
  cursor: pointer;
}

.accessibility-menu > button[data-a11y-action]:hover,
.accessibility-menu > button[data-a11y-action][aria-pressed="true"],
.accessibility-statement-link:hover { background: rgba(150, 138, 126, .15); }

.accessibility-statement {
  width: min(1180px, calc(100vw - 64px));
  max-height: calc(100vh - 32px);
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(45, 44, 42, .2);
  color: #2d2c2a;
  background: #f7f7f5;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
}

.accessibility-statement::backdrop { background: rgba(20, 20, 18, .55); }

.accessibility-statement-inner {
  position: relative;
  max-height: none;
  padding: 28px clamp(46px, 5vw, 72px) 26px;
  overflow: visible;
  font-family: Arial, sans-serif;
}

.accessibility-statement-close {
  position: absolute;
  top: 14px;
  left: 14px;
  width: 38px;
  height: 38px;
  border: 0;
  color: inherit;
  background: transparent;
  font: 28px/1 Arial, sans-serif;
}

.accessibility-statement h1 { margin: 0 0 16px; font: 700 clamp(28px, 4vw, 40px)/1.12 Arial, sans-serif; }
.accessibility-statement h2 { margin: 18px 0 7px; font: 700 18px/1.25 Arial, sans-serif; }
.accessibility-statement p,
.accessibility-statement li { font: 400 15px/1.48 Arial, sans-serif; }
.accessibility-statement ul { margin: 0; padding-right: 22px; }
.accessibility-statement a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.accessibility-updated { margin-top: 18px; color: #6c6964; font-size: 14px !important; }

@media (max-width: 899px), (max-height: 759px) {
  .accessibility-statement {
    width: min(900px, calc(100vw - 24px));
    max-height: calc(100vh - 24px);
  }

  .accessibility-statement-inner {
    max-height: calc(100vh - 24px);
    padding: clamp(28px, 5vw, 50px);
    overflow-x: hidden;
    overflow-y: auto;
  }
}

/* Only the explanatory cards inside the horizontal project gallery are enlarged. */
.project.open .text-card,
.project.closing .text-card {
  font-size: clamp(14.4px, 1.32vw, 20.4px);
}

html.a11y-large-text { zoom: 1.12; }

html.a11y-high-contrast body,
html.a11y-high-contrast .screen,
html.a11y-high-contrast .project,
html.a11y-high-contrast .aside,
html.a11y-high-contrast .card,
html.a11y-high-contrast .text-card,
html.a11y-high-contrast .about,
html.a11y-high-contrast .contact,
html.a11y-high-contrast .about-grid,
html.a11y-high-contrast .contact-grid,
html.a11y-high-contrast .about-copy,
html.a11y-high-contrast .contact-copy,
html.a11y-high-contrast header,
html.a11y-high-contrast .page-transition {
  color: #fff !important;
  background: #000 !important;
}

html.a11y-high-contrast .info-copy > b,
html.a11y-high-contrast .info-icon { color: #ffdf5d !important; stroke: #ffdf5d !important; }
html.a11y-high-contrast :where(a, button, [role="button"]):focus-visible { outline-color: #ffdf5d !important; }
html.a11y-high-contrast .accessibility-menu,
html.a11y-high-contrast .accessibility-statement { color: #fff !important; background: #000 !important; border-color: #fff !important; }
html.a11y-high-contrast .accessibility-toggle { color: #000 !important; background: #ffdf5d !important; }

html.a11y-grayscale main img,
html.a11y-grayscale header img { filter: grayscale(1) !important; }

html.a11y-highlight-links a {
  text-decoration: underline !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 3px !important;
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

html.a11y-reduce-motion *,
html.a11y-reduce-motion *::before,
html.a11y-reduce-motion *::after {
  scroll-behavior: auto !important;
  animation-duration: .01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: .01ms !important;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

@media (max-width: 700px) {
  .accessibility-widget { left: 10px; bottom: 10px; }
  .accessibility-toggle { width: 42px; height: 42px; }
  .accessibility-menu { bottom: 50px; }
}

/* Project sidebar alignment: one shared right edge, with the logo revealed alongside the title. */
@media (min-width: 701px), (orientation: landscape) {
  .project .aside,
  .project:not(.open) .aside {
    padding-right: 14px;
  }

  .project-logo {
    right: 14px;
  }

  .project-logo-image {
    padding: 5px 0 5px 5px;
  }
}

.project-logo {
  opacity: 0;
  visibility: hidden;
  transform: translateX(25px);
  pointer-events: none;
  transition:
    width 1.04s cubic-bezier(.22,.61,.36,1),
    height 1.04s cubic-bezier(.22,.61,.36,1),
    opacity .52s ease .1s,
    transform .52s ease .1s,
    visibility 0s linear .62s;
}

.project:not(.open):not(.closing):hover .project-logo {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition-delay: 0s, 0s, .1s, .1s, 0s;
}

.project.open .project-logo {
  visibility: visible;
  animation: projectTextReveal .62s cubic-bezier(.22,.61,.36,1) both;
}

.project.closing .project-logo {
  visibility: visible;
  animation: projectTextClose .62s cubic-bezier(.22,.61,.36,1) .26s both;
}

/* Desktop close is the exact geometric reverse of open. Keep the rail's
   left edge, width and centering transform on the same motion curve so none
   of those values can reset before the collapse begins. */
@media (min-width:1024px) {
  /* Keep the moving rail composited as a single clean surface.  This removes
     the transient seam that could remain at its former right edge on open. */
  .project .rail { background:#fff; outline:0; box-shadow:none; will-change:left,width,transform; }
  .project.closing .rail {
    transition:
      left 1.04s cubic-bezier(.22,.61,.36,1),
      width 1.04s cubic-bezier(.22,.61,.36,1),
      transform 1.04s cubic-bezier(.22,.61,.36,1);
  }
}

/* Mobile landscape uses the same closing geometry as desktop, but is kept
   strictly inside its own breakpoint so portrait remains untouched. */
@media (max-width:1023px) and (orientation:landscape) {
  .project.closing .rail {
    transition:
      left 1.04s cubic-bezier(.22,.61,.36,1),
      width 1.04s cubic-bezier(.22,.61,.36,1),
      transform 1.04s cubic-bezier(.22,.61,.36,1);
  }
}

/* Final Mobile Portrait composition. Desktop and landscape remain the approved base. */
.mobile-index-summary,
.mobile-index-progress,
.mobile-project-progress { display: none; }

@media (max-width:767px) and (max-aspect-ratio:1/1) {
  :root {
    --mobile-preview-height: clamp(496px, 68dvh, 634px);
    --mobile-editorial-gap: 12px;
  }

  #projects { position: relative; }

  body:not(.mobile-project-view) #projects .projects-list {
    padding-bottom: calc(env(safe-area-inset-bottom) + 52px);
    align-items: flex-start;
  }

  #projects .project:not(.open):not(.closing) {
    height: auto;
    min-height: 0;
    align-self: flex-start;
    overflow: visible;
  }

  #projects .project:not(.open):not(.closing) .rail {
    flex: 0 0 var(--mobile-preview-height);
    height: var(--mobile-preview-height);
  }

  #projects .project:not(.open):not(.closing) .card.cover {
    height: 100%;
    aspect-ratio: auto;
  }

  #projects .project:not(.open):not(.closing) .cover img {
    object-fit: cover;
    object-position: var(--mobile-cover-position, center center);
    transition: opacity .25s ease, object-position .35s ease;
  }

  #projects .project:not(.open):not(.closing) .aside { display: none; }

  .mobile-index-summary {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 70px;
    padding: 12px 3px 6px;
    color: #2d2c2a;
  }

  .mobile-index-logo {
    flex: 0 0 54px;
    width: 54px;
    height: 46px;
    display: grid;
    place-items: center;
    overflow: hidden;
  }

  .mobile-index-logo .project-logo-image {
    width: 100%;
    height: 100%;
    padding: 2px;
    object-fit: contain;
    object-position: center;
  }

  .mobile-index-copy { min-width: 0; }
  .mobile-index-copy h2 {
    margin: 0 0 4px;
    color: #2d2c2a;
    font: 700 18px/1.05 GOST2;
  }

  .mobile-index-copy p {
    margin: 0;
    color: #968a7e;
    font: 400 11px/1.25 GOST;
    letter-spacing: .045em;
    text-transform: uppercase;
  }

  .mobile-index-progress {
    position: absolute;
    z-index: 6;
    left: max(7vw, env(safe-area-inset-left));
    right: max(7vw, env(safe-area-inset-right));
    bottom: calc(env(safe-area-inset-bottom) + 56px);
    height: 32px;
    display: flex;
    align-items: center;
    gap: 14px;
    color: #2d2c2a;
    pointer-events: none;
  }

  .mobile-index-count {
    flex: 0 0 auto;
    font: 400 12px/1 GOST2;
    letter-spacing: .04em;
  }

  .mobile-index-count b { font: inherit; }

  .mobile-progress-track,
  .mobile-project-progress > span {
    position: relative;
    display: block;
    overflow: hidden;
    background: rgba(150,138,126,.28);
  }

  .mobile-progress-track {
    flex: 1 1 auto;
    height: 1px;
  }

  .mobile-progress-track i,
  .mobile-project-progress i {
    position: absolute;
    inset: 0;
    display: block;
    background: #2d2c2a;
    transform-origin: left center;
    transform: scaleX(var(--mobile-progress, .035));
  }

  body.mobile-project-view .mobile-index-progress { display: none; }
  #projects .project.open .mobile-index-summary,
  #projects .project.mobile-closing .mobile-index-summary { display: none; }

  #projects .project.open,
  #projects .project.mobile-closing {
    padding-inline: clamp(10px, 3vw, 16px);
  }

  #projects .project.open .rail,
  #projects .project.mobile-closing .rail {
    gap: var(--mobile-editorial-gap);
  }

  #projects .project.open .card.cover,
  #projects .project.mobile-closing .card.cover {
    order: 0;
    height: auto;
    aspect-ratio: var(--media-aspect, 16 / 10);
    overflow: hidden;
  }

  #projects .project.open .card.cover img,
  #projects .project.mobile-closing .card.cover img {
    width: 100%;
    height: auto;
    object-fit: contain;
    object-position: center;
  }

  #projects .project.open .mobile-project-header,
  #projects .project.mobile-closing .mobile-project-header {
    order: 1;
  }

  .mobile-project-header {
    min-height: 0;
    padding: 17px 2px 15px;
    display: block;
    text-align: left;
    border-bottom: 1px solid rgba(150,138,126,.52);
  }

  .mobile-project-header h2 {
    margin: 0 0 6px;
    color: #2d2c2a;
    font: 700 21px/1.05 GOST2;
  }

  .mobile-project-header p {
    margin: 0;
    color: #968a7e;
    font: 400 12px/1.3 GOST;
    letter-spacing: .045em;
    text-transform: uppercase;
  }

  #projects .project.open .mobile-project-primary,
  #projects .project.mobile-closing .mobile-project-primary { display: none; }

  #projects .project.open .mobile-project-metadata,
  #projects .project.mobile-closing .mobile-project-metadata {
    order: 2 !important;
    display: grid;
    grid-template-columns: 1fr;
    gap: 11px;
    padding: 5px 2px 20px;
  }

  .mobile-project-metadata .info-group {
    display: grid;
    grid-template-columns: 20px clamp(100px, 30vw, 116px) minmax(0, 1fr);
    align-items: start;
    gap: 9px;
    width: 100%;
    max-width: none;
    text-align: left;
  }

  .mobile-project-metadata .info-copy { display: contents; }

  .mobile-project-metadata .info-icon {
    grid-column: 1;
    grid-row: 1;
    width: 18px;
    height: 18px;
    margin: 0;
  }

  .mobile-project-metadata .info-copy > b {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    justify-self: start;
    margin: 2px 0 0;
    white-space: nowrap;
    color: #968a7e;
    font-size: 9px;
    line-height: 1.2;
    letter-spacing: .065em;
    transform-origin: left center;
  }

  .mobile-project-metadata .info-copy > span {
    grid-column: 3;
    grid-row: 1;
    min-width: 0;
    color: #2d2c2a;
    font-size: 12px;
    line-height: 1.35;
    text-align: left;
    overflow-wrap: anywhere;
  }

  .mobile-project-metadata .info-copy > span br { display: block; }

  #projects .project.open .text-card,
  #projects .project.mobile-closing .text-card {
    order: 3;
    margin-top: 8px;
    padding: 17px 3px 20px;
  }

  #projects .project.open .card:not(.cover):not(.text-card),
  #projects .project.mobile-closing .card:not(.cover):not(.text-card) { order: 4; }

  .mobile-project-progress {
    --mobile-progress: .035;
    position: fixed;
    z-index: 18;
    top: calc(var(--mobile-header-height) + env(safe-area-inset-top) + 62px);
    right: max(5px, env(safe-area-inset-right));
    bottom: calc(env(safe-area-inset-bottom) + 20px);
    width: 5px;
    display: none;
    pointer-events: none;
  }

  body.mobile-project-view .mobile-project-progress { display: block; }

  .mobile-project-progress > span {
    width: 1px;
    height: 100%;
    margin-left: 2px;
  }

  .mobile-project-progress i {
    transform-origin: center top;
    transform: scaleY(var(--mobile-progress, .035));
  }

  .mobile-cover-transition .cover { view-transition-name: mobile-project-cover; }

  ::view-transition-group(mobile-project-cover) {
    animation-duration: .64s;
    animation-timing-function: cubic-bezier(.22,.61,.36,1);
  }

  ::view-transition-old(mobile-project-cover),
  ::view-transition-new(mobile-project-cover) {
    animation-duration: .64s;
    mix-blend-mode: normal;
  }
}

@media (max-width:380px) and (max-aspect-ratio:1/1) {
  :root { --mobile-preview-height: clamp(490px, 66dvh, 544px); }
  .mobile-project-metadata .info-group {
    grid-template-columns: 18px 98px minmax(0, 1fr);
    gap: 7px;
  }
  .mobile-project-metadata .info-copy > b { font-size: 8.5px; }
  .mobile-project-metadata .info-copy > span { font-size: 11.5px; }
}

/* Final responsive refinement. The desktop rules above remain the approved baseline. */
.text-card > p { margin: 0; }
.media-caption {
  margin: 7px 0 0;
  color: #968a7e;
  font: 400 12px/1.35 GOST;
}

@media (max-width:767px) and (max-aspect-ratio:1/1) {
  :root {
    --mobile-content-inline: 3px;
    --mobile-progress-clearance: calc(env(safe-area-inset-bottom) + 68px);
  }

  html,
  body { min-height: 100dvh; }

  #projects,
  .about,
  .contact {
    height: 100dvh;
    min-height: 100dvh;
  }

  body:has(#about.active),
  body:has(#contact.active) { height: 100dvh; overflow-y: hidden; }

  .about,
  .contact {
    padding-top: calc(var(--mobile-header-height) + env(safe-area-inset-top));
    overflow: hidden;
  }

  .about-grid,
  .contact-grid {
    height: calc(100dvh - var(--mobile-header-height) - env(safe-area-inset-top));
    min-height: 0;
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
  }

  .about-copy,
  .contact-copy {
    min-height: 0;
    padding: 16px 24px 10px;
    transform: none;
    justify-content: flex-start;
    overflow: visible;
  }

  .about-copy h1,
  .contact-copy h1 {
    margin: 0 0 12px;
    font-size: clamp(34px, 9.5vw, 40px);
  }

  .about-copy p {
    margin: 0 0 9px;
    font-size: clamp(12.2px, 3.35vw, 13.5px);
    line-height: 1.4;
  }

  .contact-copy h2 { margin: 0 0 8px; font-size: 20px; }
  .contact-copy p { margin: 2px 0; font-size: 13px; line-height: 1.3; }
  .contact-icons { margin-top: 7px; }

  .about-img,
  .contact-img {
    width: 88%;
    height: 100%;
    min-height: 0;
    object-fit: contain;
  }

  .mobile-index-summary,
  .mobile-project-header {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 70px;
    padding: 12px var(--mobile-content-inline) 6px;
    color: #2d2c2a;
  }

  .mobile-index-copy p,
  .mobile-project-header .mobile-index-copy p { text-transform: none; }

  .mobile-index-progress { bottom: var(--mobile-progress-clearance); }

  .mobile-project-header {
    min-height: 70px;
    padding-top: 12px;
    padding-bottom: 10px;
    justify-content: flex-start;
    text-align: left;
    border-bottom: 1px solid rgba(150,138,126,.52);
  }

  .mobile-project-header .mobile-index-logo { flex-basis: 54px; width: 54px; height: 46px; }
  .mobile-project-header .mobile-index-copy h2 { margin-bottom: 4px; font-size: 18px; line-height: 1.05; }
  .mobile-project-header .mobile-index-copy p { font-size: 11px; line-height: 1.25; }

  #projects .project.open .mobile-project-metadata,
  #projects .project.mobile-closing .mobile-project-metadata {
    gap: 7px;
    padding: 3px var(--mobile-content-inline) 13px;
  }

  .mobile-project-metadata .info-group {
    grid-template-columns: 18px clamp(96px, 28vw, 108px) minmax(0, 1fr);
    gap: 7px;
  }

  .mobile-project-metadata .info-icon { width: 17px; height: 17px; }
  .mobile-project-metadata .info-copy > b { margin-top: 1px; }

  #projects .project.open .content-block,
  #projects .project.mobile-closing .content-block {
    order: calc(3 + var(--content-order)) !important;
  }

  #projects .project.open .text-card,
  #projects .project.mobile-closing .text-card {
    margin-top: 7px;
    padding: 15px var(--mobile-content-inline) 18px;
  }
}

@media (max-width:380px) and (max-aspect-ratio:1/1) {
  .about-copy,
  .contact-copy { padding-top: 12px; padding-bottom: 7px; }
  .about-copy h1,
  .contact-copy h1 { margin-bottom: 9px; font-size: 34px; }
  .about-copy p { margin-bottom: 7px; font-size: 12px; line-height: 1.36; }
  .mobile-project-metadata .info-group { grid-template-columns: 17px 94px minmax(0, 1fr); gap: 6px; }
}

@media (max-width:1023px) and (orientation:landscape) {
  :root { --mobile-landscape-header: 36px; }

  header {
    height: var(--mobile-landscape-header);
    min-height: var(--mobile-landscape-header);
    padding-block: 0;
  }

  nav button { height: var(--mobile-landscape-header); padding-block: 0; }
  #projects { padding-top: calc(var(--mobile-landscape-header) + 14px); }

  .project {
    --project-inline-pad: 6px;
    --project-gap: 8px;
    --open-aside-width: min(25.5vw, 245px);
  }
  .project.open .rail { width: calc(100% - var(--project-inline-pad) - var(--project-inline-pad) - var(--open-aside-width) - var(--project-gap)); }

  .project-logo,
  .project.open .project-logo {
    width: 48px;
    height: 48px;
  }

  .project-info {
    padding-top: 51px;
    padding-bottom: 5px;
  }

  .project-info h2 { margin-bottom: 7px; }
  .info-fields { gap: 6px; }
  .info-group { gap: 6px; }
  .info-copy > b { margin-bottom: 1px; font-size: 8px !important; }
  .info-copy > span { font-size: clamp(10px, 1.25vw, 12px); line-height: 1.14; }
  .info-icon { width: 15px; height: 15px; }
}

/* Scoped mobile finish: preserve the approved desktop and existing mobile behavior. */
@media (max-width:1023px) {
  html,
  body,
  a,
  button,
  [role="button"],
  img,
  svg {
    -webkit-tap-highlight-color: rgba(45, 44, 42, .5);
  }
}

@media (max-width:767px) and (max-aspect-ratio:1/1) {
  #projects .project.open .mobile-project-metadata .info-group,
  #projects .project.mobile-closing .mobile-project-metadata .info-group {
    align-items: start;
  }

  #projects .project.open .mobile-project-metadata .info-icon,
  #projects .project.mobile-closing .mobile-project-metadata .info-icon {
    align-self: center;
    margin: 0;
  }

  #projects .project.open .mobile-project-metadata .info-copy > b,
  #projects .project.mobile-closing .mobile-project-metadata .info-copy > b {
    align-self: baseline !important;
    margin: 0 !important;
  }

  #projects .project.open .mobile-project-metadata .info-copy > span,
  #projects .project.mobile-closing .mobile-project-metadata .info-copy > span {
    align-self: baseline;
    margin: 0;
  }

  #projects .project.open .mobile-project-metadata .mobile-project-type-value,
  #projects .project.mobile-closing .mobile-project-metadata .mobile-project-type-value {
    white-space: nowrap;
    letter-spacing: -.012em;
  }

  #projects .project.open .carousel-control.close,
  #projects .project.mobile-closing .carousel-control.close {
    isolation: isolate;
    background: transparent;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: none;
  }

  #projects .project.open .carousel-control.close::before,
  #projects .project.mobile-closing .carousel-control.close::before {
    content: "";
    position: absolute;
    z-index: -1;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: rgba(247, 247, 245, .82);
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
    box-shadow: 0 0 10px 2px rgba(0, 0, 0, .1);
  }
}

@media (max-width:1023px) and (orientation:landscape) {
  .about,
  .contact {
    height: 100dvh;
    min-height: 100dvh;
    padding-top: var(--mobile-landscape-header);
    overflow: hidden;
  }

  .about-grid,
  .contact-grid {
    height: calc(100dvh - var(--mobile-landscape-header));
    min-height: 0;
    grid-template-columns: minmax(0, 57%) minmax(0, 43%);
    overflow: hidden;
  }

  .about-copy,
  .contact-copy {
    min-height: 0;
    height: 100%;
    padding: clamp(8px, 2.4dvh, 12px) 2.5vw clamp(7px, 2dvh, 10px) 4vw;
    transform: none;
    justify-content: center;
    overflow: hidden;
  }

  .about-copy h1,
  .contact-copy h1 {
    margin: 0 0 clamp(7px, 2dvh, 10px);
    font-size: clamp(32px, 10dvh, 40px);
    line-height: 1;
  }

  .about-copy h1 { text-transform: uppercase; }

  .about-copy p {
    margin: 0 0 clamp(6px, 1.8dvh, 9px);
    font-size: clamp(11px, 1.45vw, 13px);
    line-height: 1.3;
  }

  .contact-copy h2 {
    margin: 0 0 clamp(4px, 1.3dvh, 7px);
    font-size: clamp(18px, 5.2dvh, 22px);
    line-height: 1.05;
  }

  .contact-copy p {
    margin: 1px 0;
    font-size: clamp(11px, 1.5vw, 13px);
    line-height: 1.25;
  }

  .contact-icons {
    margin-top: clamp(3px, 1dvh, 5px);
    margin-left: 58px;
  }

  .about-img,
  .contact-img {
    width: 92%;
    height: 100%;
    min-height: 0;
    justify-self: end;
    object-fit: contain;
    object-position: top right;
  }
}
