:root {
  --black: #090909;
  --panel: #111;
  --line: #303030;
  --signal: #fffa43;
  --white: #f7f7f2;
  --muted: #858581;
  --sans: "Inter", Arial, sans-serif;
  --mono: "JetBrains Mono", monospace;
}

* { box-sizing: border-box; }
html { background: var(--black); scroll-behavior: smooth; }
body.home-page { margin: 0; overflow-x: hidden; background: var(--black); color: var(--white); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
body.home-page, body.home-page a, body.home-page button { cursor: none; }
a, button { font: inherit; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--signal); outline-offset: 4px; }
.home-wrap { width: min(1480px, calc(100% - 80px)); margin-inline: auto; }

.home-cursor { position: fixed; z-index: 1000; top: 0; left: 0; width: 46px; height: 46px; opacity: 0; pointer-events: none; border: 1px solid var(--signal); background: rgba(255,250,67,.04); transform: translate(-50%,-50%) rotate(45deg); transition: width .22s ease, height .22s ease, background .22s ease, opacity .18s ease; }
.home-cursor.is-visible { opacity: 1; }
.home-cursor.is-active { width: 68px; height: 68px; background: var(--signal); }
.home-cursor i::before, .home-cursor i::after { content: ""; position: absolute; top: 50%; left: 50%; background: #111; transform: translate(-50%,-50%); }
.home-cursor i::before { width: 8px; height: 1px; }
.home-cursor i::after { width: 1px; height: 8px; }

.home-header { position: fixed; z-index: 100; inset: 0 0 auto; height: 82px; padding: 0 40px; display: grid; grid-template-columns: auto 1fr auto auto auto; align-items: center; gap: 30px; background: rgba(9,9,9,.84); border-bottom: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(18px); font: 600 11px/1 var(--mono); letter-spacing: .13em; }
.home-header a { color: var(--white); text-decoration: none; }
.home-header > a:first-child { color: var(--signal); }
.home-progress { height: 1px; overflow: hidden; background: #353535; }
.home-progress i { display: block; width: 100%; height: 100%; background: var(--signal); transform: scaleX(0); transform-origin: left; }

.home-hero { position: relative; min-height: 100svh; padding: 82px 0 0; display: grid; isolation: isolate; overflow: hidden; border-bottom: 1px solid var(--line); }
.home-hero__background { position: absolute; z-index: -1; inset: 82px 0 0; width: 100%; height: calc(100% - 82px); display: block; opacity: .88; }
.home-hero__grid { min-height: calc(100svh - 82px); padding: clamp(70px,8vw,130px) 0; display: grid; align-items: center; }
.home-hero__copy { position: relative; z-index: 1; }
.home-hero h1 { max-width: 1290px; margin: 0; font-size: clamp(70px,8.4vw,132px); line-height: .86; letter-spacing: -.078em; text-wrap: balance; }
.home-hero h1 span { color: var(--signal); }
.home-hero__copy > p { max-width: 620px; margin: 34px 0 0; color: #999994; font-size: clamp(17px,1.45vw,22px); line-height: 1.5; letter-spacing: -.025em; }
.home-hero__actions { margin-top: 48px; display: flex; align-items: center; gap: 28px; }
.home-button { min-height: 60px; padding: 0 22px; display: inline-flex; align-items: center; justify-content: space-between; gap: 38px; background: var(--signal); color: var(--black); text-decoration: none; font: 600 9px/1 var(--mono); letter-spacing: .1em; transition: transform .3s ease, box-shadow .3s ease; }
.home-button:hover { transform: translate(-5px,-5px); box-shadow: 5px 5px 0 var(--white); }
.home-button i { font-style: normal; font-size: 17px; }
.home-text-link { padding-bottom: 8px; border-bottom: 1px solid #555; color: #9a9a95; text-decoration: none; font: 600 8px/1 var(--mono); letter-spacing: .1em; }

.home-feature { min-width: 0; margin-bottom: 100px; display: block; border: 1px solid #383838; background: var(--panel); color: var(--white); text-decoration: none; transition: border-color .35s ease,transform .55s cubic-bezier(.16,1,.3,1); }
.home-feature:hover { border-color: #6c6c64; transform: translateY(-7px); }
.home-feature__media { position: relative; aspect-ratio: 16 / 8.2; overflow: hidden; background: #121212; }
.home-feature__media > img { width: 100%; height: 100%; display: block; object-fit: cover; transform: scale(1.005); transition: transform 1s cubic-bezier(.16,1,.3,1); }
.home-feature:hover .home-feature__base { transform: scale(1.035); }
.home-feature__media.is-fallback { background: #eee8dd; }
.home-feature__fallback { position: absolute; inset: 0; padding: 38px; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; border-left: clamp(12px,1.4vw,22px) solid #f04438; background: #eee8dd; color: #101010; }
.home-feature__fallback strong { position: relative; z-index: 1; margin-top: auto; font-size: clamp(48px,5.2vw,82px); line-height: .72; letter-spacing: -.075em; }
.home-feature__fallback sup { font-size: .23em; vertical-align: top; }
.home-feature__fallback i { position: relative; z-index: 1; font: 600 8px/1 var(--mono); letter-spacing: .1em; }
.home-feature__foot { min-height: 108px; padding: 18px 22px; display: grid; grid-template-columns: minmax(240px,1fr) auto auto; align-items: center; gap: 35px; border-top: 1px solid #383838; }
.home-feature__title { min-width: 0; }
.home-feature__title strong { display: block; font-size: clamp(28px,2.8vw,44px); line-height: 1; letter-spacing: -.055em; }
.home-feature__title small { display: block; margin-top: 10px; overflow: hidden; color: #747470; text-overflow: ellipsis; white-space: nowrap; font: 600 7px/1 var(--mono); letter-spacing: .08em; }
.home-feature__proof { min-height: 48px; padding: 7px 18px; display: flex; align-items: center; gap: 15px; border-left: 1px solid #383838; border-right: 1px solid #383838; }
.home-feature__proof img { width: 78px; height: 30px; padding: 4px 7px; object-fit: contain; background: var(--white); }
.home-feature__proof span { max-width: 150px; color: #9a9a94; font: 600 7px/1.25 var(--mono); letter-spacing: .08em; }
.home-feature__link { padding-bottom: 7px; border-bottom: 1px solid var(--signal); color: var(--signal); white-space: nowrap; font: 600 7px/1 var(--mono); letter-spacing: .08em; }

.home-selected { padding: 145px 0 160px; border-top: 1px solid var(--line); background: #0d0d0d; }
.home-section-head { display: grid; grid-template-columns: 1fr auto; gap: 50px; align-items: start; margin-bottom: 80px; }
.home-section-head h2, .home-capabilities__intro h2 { margin: 0; font-size: clamp(59px,7vw,108px); line-height: .86; letter-spacing: -.08em; }
.home-section-head p { max-width: 540px; margin: 24px 0 0; color: #858581; font-size: 15px; line-height: 1.5; }
.home-section-head > a, .home-capabilities__intro > a { align-self: end; padding-bottom: 8px; border-bottom: 1px solid #666; color: #aaa; text-decoration: none; white-space: nowrap; font: 600 8px/1 var(--mono); letter-spacing: .1em; }
.home-project-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; align-items: stretch; }
.home-project { min-width: 0; display: flex; flex-direction: column; color: var(--white); text-decoration: none; }
.home-project--guardiango { margin-top: 0; }
.home-project__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; border: 1px solid #353535; background: #151515; }
.home-project--dreamstead .home-project__media { background: #dceef2; }
.home-project--guardiango .home-project__media { background: #f2eeee; }
.home-project__media::after { content: ""; position: absolute; inset: 0; border: 1px solid transparent; transition: border-color .3s ease; }
.home-project:hover .home-project__media::after { border-color: var(--signal); }
.home-project__media img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .9s cubic-bezier(.16,1,.3,1), filter .45s ease; }
.home-project--dreamstead .home-project__media img { object-position: center 38%; }
.home-project--dreamstead .home-project__media.is-fallback img { width: 52%; margin-inline: auto; object-fit: cover; object-position: center; }
.home-project--guardiango .home-project__media.is-fallback img { object-position: top center; }
.home-project:hover .home-project__media img { transform: scale(1.045); }
.home-project__foot { min-height: 112px; padding: 21px 2px 0; display: flex; flex: 1; align-items: flex-start; justify-content: space-between; border-top: 1px solid var(--line); }
.home-project__foot h3 { margin: 0; font-size: clamp(31px,3.2vw,50px); line-height: .95; letter-spacing: -.06em; }
.home-project__foot p { margin: 12px 0 0; color: #777; font: 600 7px/1 var(--mono); letter-spacing: .08em; }
.home-project__foot > i { width: 50px; height: 50px; display: grid; place-items: center; border: 1px solid #3b3b3b; color: var(--signal); font-style: normal; transition: background .3s ease, color .3s ease, transform .3s ease; }
.home-project:hover .home-project__foot > i { background: var(--signal); color: var(--black); transform: rotate(8deg); }

.home-section-action { margin-top: 85px; padding: 24px 0; display: flex; align-items: center; justify-content: space-between; gap: 35px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.home-section-action p { margin: 0; color: #777; font-size: 13px; line-height: 1.5; }
.home-section-action a { min-height: 48px; padding: 0 16px; display: inline-flex; align-items: center; gap: 40px; border: 1px solid #444; color: var(--white); text-decoration: none; white-space: nowrap; font: 600 7px/1 var(--mono); letter-spacing: .1em; transition: background .3s ease, color .3s ease, border-color .3s ease; }
.home-section-action a:hover { border-color: var(--signal); background: var(--signal); color: var(--black); }
.home-section-action i { font-style: normal; font-size: 15px; }

.home-process { padding: 145px 0 155px; border-top: 1px solid var(--line); }
.home-process__head { display: grid; grid-template-columns: 1fr auto; gap: 50px; align-items: start; margin-bottom: 80px; }
.home-process__head h2 { max-width: 950px; margin: 0; font-size: clamp(58px,6.8vw,105px); line-height: .86; letter-spacing: -.08em; }
.home-process__head p { max-width: 520px; margin: 25px 0 0; color: #7e7e79; font-size: 15px; line-height: 1.5; }
.home-process__head > a { align-self: end; padding-bottom: 8px; border-bottom: 1px solid #666; color: #aaa; text-decoration: none; white-space: nowrap; font: 600 8px/1 var(--mono); letter-spacing: .1em; }
.home-process__flow { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid #383838; border-left: 1px solid #383838; }
.home-process__flow article { position: relative; min-height: 360px; padding: 25px; display: flex; flex-direction: column; overflow: hidden; border-right: 1px solid #383838; border-bottom: 1px solid #383838; background: var(--panel); transition: color .4s ease,transform .45s cubic-bezier(.16,1,.3,1); }
.home-process__flow article::before { content: ""; position: absolute; inset: auto 0 0; height: 0; background: var(--signal); transition: height .5s cubic-bezier(.16,1,.3,1); }
.home-process__flow article:hover { z-index: 2; color: var(--black); transform: translateY(-8px); }
.home-process__flow article:hover::before { height: 100%; }
.home-process__flow span,.home-process__flow h3,.home-process__flow p { position: relative; z-index: 1; }
.home-process__flow span { color: var(--signal); font: 600 8px/1 var(--mono); letter-spacing: .1em; transition: color .35s ease; }
.home-process__flow h3 { margin: auto 0 22px; font-size: clamp(31px,3.1vw,48px); line-height: .9; letter-spacing: -.065em; }
.home-process__flow p { margin: 0; color: #7e7e79; font-size: 13px; line-height: 1.55; transition: color .35s ease; }
.home-process__flow article:hover span,.home-process__flow article:hover p { color: rgba(9,9,9,.64); }
.home-process__cta { min-height: 90px; padding: 22px 0; display: flex; align-items: center; justify-content: flex-end; border-bottom: 1px solid var(--line); }
.home-process__cta a { color: var(--signal); text-decoration: none; font: 600 9px/1 var(--mono); letter-spacing: .08em; }
.home-process__cta i { margin-left: 20px; font-style: normal; font-size: 17px; }

.home-capabilities { padding: 145px 0 155px; border-top: 1px solid var(--line); }
.home-capabilities__intro { display: grid; grid-template-columns: 1fr auto; gap: 50px; align-items: start; padding-bottom: 85px; }
.home-capabilities__list { border-top: 1px solid var(--line); }
.home-capabilities__list > a { min-height: 148px; display: grid; grid-template-columns: minmax(330px,1fr) minmax(270px,.75fr) 30px; gap: 25px; align-items: center; border-bottom: 1px solid var(--line); color: var(--white); text-decoration: none; transition: padding .35s ease, color .35s ease, background .35s ease; }
.home-capabilities__list > a:hover { padding-inline: 22px; background: var(--signal); color: var(--black); }
.home-capabilities__list h3 { margin: 0; font-size: clamp(35px,4.2vw,65px); line-height: .9; letter-spacing: -.065em; }
.home-capabilities__list p { margin: 0; color: #7d7d78; font-size: 13px; line-height: 1.5; transition: color .3s ease; }
.home-capabilities__list > a:hover p { color: rgba(9,9,9,.62); }
.home-capabilities__list i { opacity: 0; color: var(--black); font-style: normal; font-size: 22px; transform: translate(-8px,8px); transition: opacity .25s ease, transform .25s ease; }
.home-capabilities__list > a:hover i { opacity: 1; transform: none; }

.home-next { padding: 105px 0 120px; border-top: 1px solid var(--line); background: #0d0d0d; }
.home-next__head { padding-bottom: 35px; display: flex; align-items: center; justify-content: flex-end; border-bottom: 1px solid var(--line); }
.home-next__head p { margin: 0; color: #777; font-size: 13px; }
.home-next__links { display: grid; grid-template-columns: repeat(3,1fr); border-left: 1px solid var(--line); }
.home-next__links a { min-height: 260px; padding: 24px; display: grid; grid-template-columns: 1fr auto; gap: 25px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--white); text-decoration: none; transition: color .35s ease, background .35s ease, transform .35s ease; }
.home-next__links a:hover { z-index: 2; background: var(--signal); color: var(--black); transform: translateY(-10px); }
.home-next__links div { align-self: end; }
.home-next__links small { display: block; margin-top: 15px; color: #6f6f6b; font-size: 13px; line-height: 1; }
.home-next__links b { display: block; font-size: clamp(42px,4.6vw,70px); line-height: .85; letter-spacing: -.07em; }
.home-next__links i { align-self: end; font-style: normal; font-size: 24px; }

.home-close { min-height: 88svh; padding: 120px 0 60px; display: grid; align-items: center; background: var(--signal); color: var(--black); }
.home-close h2 { max-width: 1280px; margin: 0 0 70px; font-size: clamp(75px,9.4vw,150px); line-height: .82; letter-spacing: -.085em; }
.home-close > div > div { display: flex; align-items: center; gap: 35px; }
.home-close a { color: var(--black); text-decoration: none; }
.home-close a:first-child { min-height: 64px; padding: 0 23px; display: inline-flex; align-items: center; gap: 48px; border: 2px solid var(--black); font: 600 9px/1 var(--mono); letter-spacing: .1em; transition: background .3s ease, color .3s ease, transform .3s ease; }
.home-close a:first-child:hover { background: var(--black); color: var(--signal); transform: translate(-5px,-5px); }
.home-close a:first-child i { font-style: normal; font-size: 18px; }
.home-close a:last-child { padding-bottom: 8px; border-bottom: 2px solid var(--black); font: 600 8px/1 var(--mono); letter-spacing: .1em; }

.home-footer { padding: 34px 0; }
.home-footer > div { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; color: #62625f; font: 600 7px/1 var(--mono); letter-spacing: .1em; }
.home-footer a { color: inherit; text-decoration: none; }
.home-footer a:first-child { color: var(--signal); }
.home-footer a:last-child { justify-self: end; }

.home-motion .home-hero h1, .home-motion .home-hero__copy > p, .home-motion .home-hero__actions { opacity: 0; transform: translateY(38px); }
.home-motion.is-loaded .home-hero h1, .home-motion.is-loaded .home-hero__copy > p, .home-motion.is-loaded .home-hero__actions { opacity: 1; transform: none; transition: opacity .7s ease, transform .9s cubic-bezier(.16,1,.3,1); }
.home-motion.is-loaded .home-hero h1 { transition-delay: .06s; }
.home-motion.is-loaded .home-hero__copy > p { transition-delay: .12s; }
.home-motion.is-loaded .home-hero__actions { transition-delay: .18s; }
.home-motion [data-feature], .home-motion [data-project], .home-motion [data-capability], .home-motion [data-process-card] { opacity: 0; transform: translateY(36px); }
.home-motion [data-feature].is-visible, .home-motion [data-project].is-visible, .home-motion [data-capability].is-visible, .home-motion [data-process-card].is-visible { opacity: 1; transform: none; transition: opacity .65s ease var(--delay,0ms), transform .85s cubic-bezier(.16,1,.3,1) var(--delay,0ms), padding .35s ease, color .35s ease, background .35s ease; }
.home-motion [data-feature].is-visible:hover, .home-motion [data-process-card].is-visible:hover { transform: translateY(-8px); }

@media (max-width: 1100px) {
  .home-wrap { width: calc(100% - 48px); }
  .home-hero h1 { font-size: clamp(64px,8.6vw,96px); }
  .home-feature__foot { grid-template-columns: minmax(220px,1fr) auto; }
  .home-feature__proof { border-right: 0; }
  .home-feature__link { grid-column: 1 / -1; justify-self: end; }
  .home-process__flow { grid-template-columns: repeat(2,1fr); }
  .home-section-head > a, .home-capabilities__intro > a, .home-process__head > a { justify-self: start; }
}

@media (max-width: 800px) {
  body.home-page, body.home-page a, body.home-page button { cursor: auto; }
  .home-cursor { display: none; }
  .home-header { height: 70px; padding: 0 22px; grid-template-columns: auto 1fr auto auto; gap: 18px; }
  .home-header > a:nth-of-type(3) { display: none; }
  .home-hero { min-height: 92svh; padding-top: 70px; }
  .home-hero__background { inset: 70px 0 0; height: calc(100% - 70px); }
  .home-hero__grid { min-height: calc(92svh - 70px); padding: 75px 0 85px; }
  .home-hero h1 { max-width: 760px; font-size: clamp(62px,11.6vw,92px); }
  .home-hero__actions { align-items: center; flex-direction: row; }
  .home-feature { margin-bottom: 80px; }
  .home-feature__media { aspect-ratio: 16 / 9; }
  .home-selected, .home-capabilities { padding: 110px 0 120px; }
  .home-section-head, .home-capabilities__intro { grid-template-columns: 1fr; gap: 25px; }
  .home-section-head > a, .home-capabilities__intro > a { grid-column: 1; }
  .home-project-grid { grid-template-columns: 1fr; gap: 70px; }
  .home-project--guardiango { width: 100%; margin: 0; }
  .home-process { padding: 110px 0 120px; }
  .home-process__head { grid-template-columns: 1fr; gap: 25px; }
  .home-process__head > a { grid-column: 1; }
  .home-process__flow article { min-height: 300px; }
  .home-capabilities__list > a { min-height: 175px; grid-template-columns: 1fr 25px; gap: 18px; }
  .home-capabilities__list p { grid-column: 1; margin-top: -32px; }
  .home-capabilities__list i { grid-column: 2; grid-row: 1 / span 2; }
  .home-next__links { grid-template-columns: 1fr; }
  .home-next__links a { min-height: 185px; }
}

@media (max-width: 560px) {
  .home-wrap { width: calc(100% - 32px); }
  .home-header { font-size: 9px; letter-spacing: .07em; grid-template-columns: 1fr auto auto; }
  .home-header .home-progress { display: none; }
  .home-hero { min-height: 88svh; padding-top: 70px; }
  .home-hero__grid { min-height: calc(88svh - 70px); padding: 62px 0 72px; }
  .home-hero h1 { font-size: clamp(51px,15vw,72px); }
  .home-hero__copy > p { margin-top: 27px; font-size: 16px; }
  .home-hero__actions { margin-top: 38px; align-items: flex-start; flex-direction: column; }
  .home-feature { width: 100%; margin-bottom: 65px; }
  .home-feature__fallback { padding: 24px; }
  .home-feature__fallback strong { font-size: 49px; }
  .home-feature__foot { padding: 19px; grid-template-columns: 1fr; gap: 20px; }
  .home-feature__proof { padding: 14px 0; border: 0; border-top: 1px solid #383838; border-bottom: 1px solid #383838; }
  .home-feature__link { grid-column: 1; }
  .home-selected, .home-capabilities { padding: 86px 0 95px; }
  .home-section-head, .home-capabilities__intro { margin-bottom: 55px; padding-bottom: 0; }
  .home-section-head h2, .home-capabilities__intro h2 { font-size: 51px; }
  .home-project-grid { gap: 60px; }
  .home-project--guardiango { width: 100%; }
  .home-project__foot { min-height: 95px; }
  .home-project__foot h3 { font-size: 37px; }
  .home-project__foot p { max-width: 250px; line-height: 1.4; }
  .home-section-action { margin-top: 60px; align-items: flex-start; flex-direction: column; }
  .home-process { padding: 86px 0 95px; }
  .home-process__head { margin-bottom: 55px; }
  .home-process__head h2 { font-size: 51px; }
  .home-process__flow { grid-template-columns: 1fr; }
  .home-process__flow article { min-height: 250px; }
  .home-process__cta { align-items: flex-start; flex-direction: column; }
  .home-process__cta a { line-height: 1.5; }
  .home-capabilities__intro { padding-bottom: 55px; }
  .home-capabilities__list > a { min-height: 195px; grid-template-columns: 1fr 20px; gap: 14px; }
  .home-capabilities__list h3 { font-size: 41px; }
  .home-capabilities__list p { margin-top: -42px; font-size: 12px; }
  .home-next { padding: 80px 0 90px; }
  .home-next__head { align-items: flex-start; flex-direction: column; gap: 16px; }
  .home-next__links a { min-height: 165px; }
  .home-close { min-height: 82svh; padding: 90px 0 50px; }
  .home-close h2 { margin: 0 0 58px; font-size: clamp(62px,18.5vw,88px); }
  .home-close > div > div { align-items: flex-start; flex-direction: column; }
  .home-footer > div { grid-template-columns: 1fr auto; }
  .home-footer span { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .home-motion .home-hero h1, .home-motion .home-hero__copy > p, .home-motion .home-hero__actions, .home-motion [data-feature], .home-motion [data-project], .home-motion [data-capability], .home-motion [data-process-card] { opacity: 1; transform: none; }
}
