:root{
  --orange:#f45907;
  --black:#0d0d0d;
  --white:#ffffff;
  --grey:#a1a1a1;
  --light:#f5f5f5;
  /* hero theme (defaults = designer persona; overridden per page via JS) */
  --hero-bg:#f45907;
  --hero-fg:#ffffff;
  --seg-border:#ffffff;
  --seg-text:#ffffff;
  --seg-active-bg:#ffffff;
  --seg-active-text:#0d0d0d;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  background:#ffffff;
  color:var(--black);
  -webkit-font-smoothing:antialiased;
  position:relative;
  overflow-x:hidden;
}
/* fluid desktop: the 1440 canvas is zoomed to fit the window via JS (zoom scales layout) */
.canvas{width:1440px;margin:0 auto;overflow:hidden;}
a{text-decoration:none;color:inherit;}

/* ===================== HERO ===================== */
.hero{position:relative;width:1440px;height:800px;background:var(--hero-bg);overflow:hidden;}

.hero-portrait{
  position:absolute;
  right:72px;
  top:25px;
  width:710px;
  height:auto;
  z-index:2;
}
.hero-portrait-fade{
  position:absolute;
  left:633px;right:0;bottom:0;height:200px;z-index:3;
  background:linear-gradient(to bottom,transparent 0%,var(--hero-bg) 82%);
  pointer-events:none;
}
.hero-cluster{
  position:absolute;
  left:667px;top:42px;
  width:643.85px;height:602.06px;
  z-index:3;pointer-events:none;
}

/* nav */
.nav{
  position:absolute;top:0;left:0;width:1440px;height:72px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 30px;z-index:10;
}
.nav-left{display:flex;align-items:center;gap:20px;order:1;}
.hero-art-mobile{display:none;}
.logo{height:28.55px;width:auto;}
.nav-links{display:flex;align-items:center;gap:20px;font-size:14px;font-weight:400;white-space:nowrap;}
.nav-links a{color:var(--white);}
.nav-links a.dark{color:var(--black);}
.nav-right{justify-content:flex-end;}

/* centered segmented control */
.nav-segment{
  display:flex;align-items:center;order:2;
  border:1px solid var(--seg-border);border-radius:999px;overflow:hidden;
}
.seg{
  display:flex;align-items:center;justify-content:center;
  padding:9px 16px 11px;font-size:14px;font-weight:400;color:var(--seg-text);
  white-space:nowrap;
}
.seg-active{background:var(--seg-active-bg);color:var(--seg-active-text);}
.seg-disabled{opacity:.5;pointer-events:none;}
.seg-div{width:1px;align-self:stretch;background:var(--seg-border);}

/* hero content */
.hero-content{
  position:absolute;left:80px;top:156px;width:760px;z-index:5;
  display:flex;flex-direction:column;align-items:flex-start;gap:24px;
}
.hero-eyebrow{font-size:14px;font-weight:500;color:var(--hero-fg);opacity:.3;}
.hero-title{
  font-size:70px;font-weight:700;line-height:70px;color:var(--hero-fg);
  letter-spacing:-1px;max-width:605px;
}
/* variable-font effect: heading letters swell in weight near the cursor (smooth glide) */
.vf{transition:font-variation-settings .45s cubic-bezier(.33,1,.68,1);will-change:font-variation-settings;}
.hero-sub{font-size:18px;line-height:28px;color:var(--hero-fg);width:520px;}
.hero-cta{display:flex;align-items:center;gap:70px;padding-top:30px;}
.btn-primary{
  display:flex;align-items:center;justify-content:center;
  height:78px;padding:0 32px;border-radius:84px;
  background:var(--black);color:var(--white);
  font-size:23px;font-weight:500;white-space:nowrap;
}
.btn-contact{
  display:flex;align-items:center;gap:16px;
  font-family:'Space Grotesk','Inter',sans-serif;font-size:24px;color:var(--black);
}
.btn-contact svg{display:block;}

/* social sidebar */
.social-sidebar{
  position:absolute;right:30px;top:101px;z-index:6;
  display:flex;flex-direction:column;align-items:center;gap:34px;
}
.social-sidebar a{
  font-family:'Space Grotesk',sans-serif;font-size:16px;color:var(--hero-fg);
  writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;
  transition:opacity .25s;
}
.social-sidebar a:hover{opacity:.6;}

/* ===================== DIVIDERS ===================== */
.divider{width:1440px;height:67.5px;line-height:0;}
.divider svg{display:block;width:1440px;height:67.5px;}
/* first divider curve takes the hero background colour of the active page */
.divider-hero{margin-top:-1px;}   /* плотный стык с hero — без белой полоски на широких экранах */
.divider-hero path{fill:var(--hero-bg);}

/* ===================== ABOUT / SERVICES ===================== */
.about{background:var(--white);padding:53px 80px;display:flex;flex-direction:column;gap:50px;}
.section-head{
  display:flex;align-items:center;justify-content:space-between;
  width:1280px;padding:20px 0 10px;
}
.section-head h2{font-size:40px;font-weight:700;color:var(--black);}
.section-tag{font-size:13px;color:var(--grey);}

.about-inner{display:flex;align-items:center;justify-content:space-between;width:1280px;}
.about-text{font-size:18px;line-height:30px;color:var(--black);width:640px;}
.about-meta{display:flex;flex-direction:column;gap:12px;align-items:flex-end;width:308px;}
.meta-item{display:flex;flex-direction:column;gap:4px;align-items:flex-end;text-align:right;}
.meta-label{font-size:12px;color:var(--grey);letter-spacing:1.2px;text-transform:uppercase;}
.meta-value{font-size:14px;font-weight:500;color:var(--black);letter-spacing:-.14px;}

.experience{width:1280px;display:flex;flex-direction:column;}
.exp-row{
  display:flex;align-items:center;justify-content:space-between;
  height:65.5px;border-bottom:1px solid var(--light);
}
.exp-row.last{height:64.5px;border-bottom:none;}
.exp-role{display:flex;flex-direction:column;}
.exp-title{font-size:14px;font-weight:500;color:var(--black);line-height:21px;letter-spacing:-.14px;}
.exp-org{font-size:13px;color:var(--grey);line-height:19.5px;}
.exp-years{font-size:12px;color:var(--grey);letter-spacing:.12px;}

.service-cards{display:flex;gap:1px;width:1280px;}
.service-card{
  width:426px;background:var(--white);
  display:flex;flex-direction:column;gap:16px;align-items:flex-start;
  padding:10px 40px 10px 0;
}
.service-num{font-size:13px;font-weight:500;color:#b3b3b3;}
.service-card h3{font-size:22px;font-weight:700;color:var(--black);}
.service-card p{font-size:15px;line-height:24px;color:var(--grey);width:386px;}

/* ===================== WORK GRID ===================== */
.work{background:var(--light);padding:50px 80px 70px;display:flex;flex-direction:column;gap:46px;}
.work-head{display:flex;flex-direction:column;gap:16px;width:1280px;}
.work-eyebrow{font-size:12px;color:var(--grey);letter-spacing:1.8px;text-transform:uppercase;}
.work-title{font-size:56px;font-weight:600;line-height:61.6px;letter-spacing:-1.68px;color:var(--black);}

.tabs{display:flex;gap:12px;}
.tab{
  font-family:'Inter',sans-serif;font-size:14px;font-weight:600;
  padding:12px 24px;border-radius:999px;cursor:pointer;
  background:var(--white);color:var(--black);border:1px solid var(--black);
}
.tab.active{background:var(--black);color:var(--white);border-color:var(--black);}

.work-grid{column-count:3;column-gap:20px;width:1280px;}
.work-card{display:block;break-inside:avoid;margin-bottom:48px;text-decoration:none;color:inherit;}
.card-img{
  width:100%;border:1px solid var(--grey);border-radius:14px;overflow:hidden;margin-bottom:20px;
}
.card-img img{display:block;width:100%;height:100%;object-fit:cover;}
.size-tall .card-img{aspect-ratio:413/1030;}
.size-medium .card-img{aspect-ratio:413/908;}
.size-short .card-img{aspect-ratio:413/438;}
.size-mini .card-img{aspect-ratio:413/333;}
.size-art .card-img{aspect-ratio:415/590;}
.size-arttall .card-img{aspect-ratio:413/742;}
.pin-info{font-family:'Roboto',sans-serif;font-weight:700;font-size:20px;line-height:25px;color:var(--black);}

/* ===================== CONTACT ===================== */
.contact{background:var(--white);padding:40px 80px 63px;display:flex;flex-direction:column;}
.contact-head{display:flex;flex-direction:column;gap:16px;width:1280px;}
.contact-eyebrow{font-size:12px;color:var(--grey);letter-spacing:1.8px;text-transform:uppercase;}
.contact-title{font-size:56px;font-weight:600;line-height:61.6px;letter-spacing:-1.68px;color:var(--black);}

.contact-body{display:flex;justify-content:space-between;width:1280px;margin-top:96px;}
.contact-left{width:740px;}
.contact-label{font-size:11px;color:var(--grey);letter-spacing:1.65px;text-transform:uppercase;display:block;}
.contact-email{display:flex;align-items:center;gap:18px;margin-top:32px;}
.contact-email .contact-email-text{font-size:40px;font-weight:500;color:var(--black);letter-spacing:-1.2px;transition:color .25s;}
.contact-email .contact-email-text:hover{color:var(--orange);}
.email-btn{
  display:flex;align-items:center;justify-content:center;
  width:40px;height:40px;border:1px solid var(--light);border-radius:50%;flex-shrink:0;
}
.contact-note{font-size:14px;line-height:22.4px;color:var(--grey);letter-spacing:-.14px;margin-top:40px;}

.contact-right{width:416px;}
.social-links{display:flex;flex-direction:column;margin-top:32px;}
.social-link{
  display:flex;align-items:center;justify-content:space-between;
  height:46px;border-bottom:1px solid var(--light);
  font-size:14px;color:var(--black);
}
.social-link.last{border-bottom:none;height:45px;}
.social-link svg{display:block;}

/* ===================== ANIMATIONS (reworked — calm) ===================== */

/* scroll reveal — subtle & short, no big movement */
.reveal{
  opacity:0;transform:translateY(20px);
  transition:opacity .55s ease,transform .55s ease;
  will-change:opacity,transform;
}
.reveal.in{opacity:1;transform:none;}

/* soft one-time fade for the hero art (no rotation, no parallax) */
@keyframes softIn{from{opacity:0;}to{opacity:1;}}
@keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}
/* Framer Motion drives hero portrait/cluster animation in the React app */
.cluster-orbit{position:absolute;left:667px;top:42px;width:643.85px;height:602.06px;z-index:1;pointer-events:none;}
.hero-cluster{position:static;width:100%;height:100%;}

/* ===== hover interactions ===== */
.btn-primary{transition:transform .35s cubic-bezier(.2,.75,.25,1),box-shadow .35s;}
.btn-primary:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,0,0,.25);}
.btn-contact svg{transition:transform .35s cubic-bezier(.2,.75,.25,1);}
.btn-contact:hover svg{transform:translateX(8px);}

.nav-links a{transition:opacity .25s;}
.nav-links a:hover{opacity:.6;}
.seg{transition:background .3s,color .3s;}
.nav-segment:hover .seg-active{filter:brightness(.94);}
.seg:not(.seg-active):hover{background:rgba(128,128,128,.16);}

.tab{transition:transform .3s,background .3s,color .3s,border-color .3s;}
.tab:not(.active):hover{transform:translateY(-2px);background:var(--black);color:var(--white);border-color:var(--black);}
.tab.active:hover{transform:translateY(-2px);}

/* no hover animation in the About/Services block (by request) */

.card-img img{transition:transform .7s cubic-bezier(.2,.75,.25,1);}
.work-card{transition:transform .4s cubic-bezier(.2,.75,.25,1);}
.work-card:hover{transform:translateY(-8px);}
.work-card:hover .card-img img{transform:scale(1.05);}
.pin-info{transition:color .3s;}
.work-card:hover .pin-info{color:var(--orange);}

.social-link{transition:padding-left .35s cubic-bezier(.2,.75,.25,1),color .3s;}
.social-link svg{transition:transform .35s cubic-bezier(.2,.75,.25,1);}
.social-link:hover{padding-left:14px;color:var(--orange);}
.social-link:hover svg path{stroke:var(--orange);}
.social-link:hover svg{transform:translate(3px,-3px);}
.email-btn{transition:transform .35s,background .3s,border-color .3s;}
.contact-email:hover .email-btn{transform:translate(3px,-3px);background:var(--black);border-color:var(--black);}
.contact-email:hover .email-btn svg path{stroke:#fff;}

/* experience rows: no hover highlight (by request) */

.logo{transition:transform .35s;}
.logo:hover{transform:scale(1.05);}

/* respect reduced-motion */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;}
  .reveal{opacity:1!important;transform:none!important;}
  .hero-eyebrow,.hero-sub,.hero-cta,.social-sidebar,.hero-portrait,.hero-cluster,.hero-title .word{opacity:1!important;animation:none!important;}
}

/* ===================== STICKY TOP BAR (floating pill) ===================== */
.topbar{
  position:fixed;top:0;left:0;width:100%;z-index:1000;
  padding:10px 24px;
  transform:translateY(-130%);
  transition:transform .4s cubic-bezier(.2,.75,.25,1);
}
.topbar.show{transform:none;}
.topbar-inner{
  max-width:1280px;margin:0 auto;height:72px;
  display:flex;align-items:center;justify-content:space-between;padding:0 30px;
  background:rgba(255,255,255,.8);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-radius:40px;
  box-shadow:0 4px 14px rgba(94,56,30,.09);
}
.topbar-logo img{height:28.5px;width:auto;display:block;}
.topbar-cta{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--black);color:#fff;border-radius:999px;
  padding:12px 24px;font-size:14px;font-weight:600;white-space:nowrap;
  transition:transform .3s;
}
.topbar-cta:hover{transform:translateY(-2px);}

/* ===================== BURGER (hidden on desktop) ===================== */
.burger{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:9px;background:none;border:none;cursor:pointer;z-index:30;
}
.burger span{display:block;height:2px;width:100%;background:#fff;border-radius:2px;
  transition:transform .3s ease,opacity .3s ease;}

/* ===================== MOBILE ===================== */
@media (max-width:760px){
  body{height:auto!important;overflow-x:hidden;}
  .canvas{width:100%!important;margin:0!important;zoom:1!important;overflow:visible;}
  .topbar{display:none!important;}

  /* dividers fluid */
  .divider,.divider svg{width:100%;}

  /* ---- NAV (segment full width + centered logo, no burger) ---- */
  .burger{display:none!important;}
  .nav{position:relative;order:1;width:100%;display:flex;flex-direction:column;align-items:stretch;
    height:auto;padding:20px 16px 0;gap:20px;overflow:visible;}
  .nav-segment{order:1;display:flex;width:100%;}
  .nav-segment .seg{flex:1;font-size:12px;padding:9px 8px 11px;}
  .nav-left{order:2;display:flex;justify-content:center;width:100%;}
  .logo{height:26px;width:auto;max-width:62vw;object-fit:contain;}

  /* ---- HERO ---- */
  .hero{width:100%;height:auto;display:flex;flex-direction:column;align-items:stretch;padding-bottom:40px;}
  .hero-portrait,.cluster-orbit,.hero-portrait-fade,.social-sidebar{display:none!important;}
  .hero-art-mobile{display:block;order:2;width:85%;max-width:300px;height:auto;margin:8px auto 0;}
  .hero-content{position:static;order:3;width:auto;padding:8px 16px 0;gap:14px;align-items:stretch;}
  .hero-eyebrow{font-size:14px;}
  .hero-title{font-size:40px;line-height:40px;letter-spacing:-.5px;}
  .hero-sub{width:auto;font-size:18px;line-height:28px;}
  .hero-cta{flex-direction:column;gap:10px;padding-top:30px;align-items:stretch;}
  .btn-primary{width:100%;height:78px;font-size:23px;padding:0 32px;}
  .btn-contact{height:78px;justify-content:center;font-size:24px;}

  /* ---- shared section widths ---- */
  .about,.work,.contact{padding:40px 20px;}
  .section-head,.about-inner,.experience,.service-cards,
  .work-head,.work-grid,.contact-head,.contact-body{width:auto;}

  /* ---- ABOUT ---- */
  .section-head{flex-wrap:wrap;gap:6px;padding:6px 0;}
  .section-head h2{font-size:30px;}
  .about-inner{flex-direction:column;align-items:flex-start;gap:26px;}
  .about-text{width:auto;font-size:16px;line-height:26px;}
  .about-meta{width:100%;align-items:flex-start;}
  .meta-item{align-items:flex-start;text-align:left;}
  .service-cards{flex-direction:column;gap:0;}
  .service-card{width:auto;padding:18px 0;border-bottom:1px solid var(--light);}
  .service-card p{width:auto;}
  .exp-row{padding:0;margin:0;}

  /* ---- WORK ---- */
  .work-title{font-size:40px;line-height:44px;}
  .tabs{flex-wrap:wrap;}
  .work-grid{column-count:1;width:auto;}
  .work-card{margin-bottom:32px;}

  /* ---- CONTACT ---- */
  .contact-title{font-size:34px;line-height:38px;}
  .contact-body{flex-direction:column;gap:44px;margin-top:44px;}
  .contact-left,.contact-right{width:auto;}
  .contact-email{flex-wrap:wrap;gap:14px;margin-top:24px;}
  .contact-email .contact-email-text{font-size:26px;letter-spacing:-.6px;}
  .contact-note{white-space:normal;}
  .contact-note br{display:none;}
  .social-links{margin-top:24px;}
}
