:root {
    --bg: #080d1b;
    --bg2: #10172a;
    --panel: #151e30;
    --text: #f2f3ef;
    --muted: #9d9f98;
    --subtle: #6c716a;
    --line: rgba(245, 245, 240, .16);
    --accent: #31b7f2;
    --display: 'Figtree', 'Arial', sans-serif;
    --ease: cubic-bezier(.22, 1, .36, 1);
    --site-margin: clamp(22px, 5.4vw, 94px)
}

*,
*:before,
*:after {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 86px
}

body {
    margin: 0;
    font-family: var(--display);
    background: var(--bg);
    color: var(--text);
    font-weight: 500;
    overflow-x: hidden
}

body.menu-open {
    overflow: hidden
}

::selection {
    background: var(--accent);
    color: #06111e
}

a {
    color: inherit;
    text-decoration: none
}

button,
input,
select,
textarea {
    font: inherit
}

button {
    cursor: pointer
}

img {
    display: block;
    max-width: 100%
}

h1,
h2,
h3,
h4,
h5,
p {
    margin: 0
}

ul {
    list-style: none;
    margin: 0;
    padding: 0
}

button {
    color: inherit
}

section {
    position: relative
}

a,
button {
    -webkit-tap-highlight-color: transparent
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 4px
}

::-webkit-scrollbar {
    width: 8px
}

::-webkit-scrollbar-track {
    background: #080808
}

::-webkit-scrollbar-thumb {
    background: #263650;
    border-radius: 20px
}

::-webkit-scrollbar-thumb:hover {
    background: var(--accent)
}

.section-container {
    width: calc(100% - var(--site-margin)*2);
    max-width: 1640px;
    margin: 0 auto
}

.section {
    padding: clamp(90px, 10vw, 160px) 0
}

.section:not(.contact) {
    border-bottom: 1px solid #25324b
}

.kicker {
    font-size: 11px;
    letter-spacing: .11em;
    font-weight: 700;
    color: #bfc3b9;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 11px
}

.kicker i {
    width: 7px;
    height: 7px;
    background: var(--accent);
    border-radius: 100%;
    box-shadow: 0 0 13px var(--accent);
    display: inline-block
}

.sec-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 35px;
    margin-bottom: 50px
}

.sec-head h2 {
    font-size: clamp(55px, 7.7vw, 115px);
    line-height: .94;
    letter-spacing: -.085em;
    font-weight: 700;
    margin-top: 20px
}

.sec-head h2 em,
.faq-heading h2 em,
.contact-heading h2 em {
    font-style: normal;
    color: var(--muted);
    font-weight: 500
}

.sec-head>p {
    color: #aeb0ab;
    font-size: clamp(15px, 1.25vw, 18px);
    font-weight: 500;
    max-width: 365px;
    line-height: 1.6
}

.title-star {
    color: var(--accent);
    font-size: .25em;
    margin-left: .25em;
    vertical-align: middle
}

.green-dot {
    color: var(--accent)
}

.asset {
    background-image: var(--asset), var(--fallback, radial-gradient(circle, #303730, #0b0b0b));
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat
}

.reveal {
    transition: transform 1s var(--ease), opacity 1s ease;
    will-change: transform, opacity
}

.js-enhanced .reveal:not(.in-view) {
    opacity: 0;
    transform: translateY(46px)
}

.js-enhanced .reveal.in-view {
    opacity: 1;
    transform: translateY(0)
}

.reveal:nth-child(2) {
    transition-delay: .09s
}

.reveal:nth-child(3) {
    transition-delay: .17s
}

/* entry screen */
.preloader {
    position: fixed;
    z-index: 2000;
    inset: 0;
    background: #080d1b;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: var(--site-margin);
    transition: transform 1s var(--ease), opacity .9s;
    pointer-events: none
}

.preloader.done {
    transform: translateY(-105%)
}

.loader-big {
    font-size: clamp(80px, 20vw, 350px);
    font-weight: 800;
    letter-spacing: -.11em;
    text-align: center;
    line-height: .9;
    white-space: nowrap;
    margin-left: -.075em
}

.loader-big span {
    color: var(--accent)
}

.loader-foot {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    letter-spacing: .12em;
    margin-top: 10vh
}

.load-line {
    width: 0;
    position: absolute;
    height: 3px;
    background: var(--accent);
    bottom: 0;
    left: 0;
    transition: width .4s
}

.progress-line {
    height: 2px;
    background: var(--accent);
    width: 0;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1050;
    pointer-events: none
}

.pointer,
.pointer-glow {
    position: fixed;
    z-index: 1100;
    left: 0;
    top: 0;
    border-radius: 50%;
    pointer-events: none;
    opacity: 0;
    transition: opacity .3s, transform .12s
}

.pointer {
    width: 9px;
    height: 9px;
    background: var(--accent);
    transform: translate(-50%, -50%)
}

.pointer-glow {
    width: 35px;
    height: 35px;
    border: 1px solid var(--accent);
    opacity: 0;
    transform: translate(-50%, -50%)
}

body.cursor-active .pointer {
    opacity: .9
}

body.cursor-active .pointer-glow {
    opacity: .45
}

body.cursor-hover .pointer-glow {
    width: 75px;
    height: 75px;
    background: rgba(49, 183, 242, .1);
    opacity: .8
}

/* navigation */
.site-header {
    height: 91px;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 105;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 var(--site-margin);
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    transition: background .4s
}

.site-header.scrolled {
    position: fixed;
    height: 76px;
    background: rgba(8, 10, 8, .87);
    backdrop-filter: blur(20px);
    border-color: var(--line)
}

.top-brand {
    font-size: 43px;
    font-weight: 800;
    letter-spacing: -.1em;
    width: 115px;
    line-height: 1
}

.brand-cut {
    color: var(--accent);
    font-weight: 400
}

.desktop-nav {
    display: flex;
    gap: clamp(18px, 2.5vw, 40px);
    align-items: center
}

.desktop-nav>a {
    font-size: clamp(9px, .77vw, 12px);
    font-weight: 800;
    letter-spacing: .03em;
    transition: color .25s
}

.desktop-nav>a:hover {
    color: var(--accent)
}

.down-small {
    opacity: .5;
    padding-left: 3px
}

.menu-toggle {
    display: flex;
    gap: 20px;
    align-items: center;
    border: 1px solid #565b51;
    background: transparent;
    height: 42px;
    border-radius: 40px;
    padding: 0 16px 0 20px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .07em;
    transition: .3s
}

.menu-toggle:hover {
    color: #080d1b;
    background: var(--accent);
    border-color: var(--accent)
}

.menu-burger {
    width: 20px;
    display: flex;
    flex-direction: column;
    gap: 5px
}

.menu-burger i {
    width: 20px;
    height: 1px;
    background: currentColor;
    display: block
}

.menu-burger i:last-child {
    width: 12px;
    margin-left: auto
}

.menu-overlay {
    position: fixed;
    z-index: 1000;
    inset: 0;
    background: var(--accent);
    color: #06111e;
    visibility: hidden;
    opacity: 0;
    transform: translateY(-5%);
    transition: opacity .45s, transform .55s var(--ease), visibility .55s;
    padding: 32px var(--site-margin);
    display: flex;
    flex-direction: column
}

.menu-open .menu-overlay {
    visibility: visible;
    opacity: 1;
    transform: translateY(0)
}

.menu-overlay-top,
.overlay-menu-foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 11px;
    letter-spacing: .07em;
    font-weight: 700
}

.menu-close {
    display: flex;
    align-items: center;
    gap: 25px;
    background: transparent;
    border: 0;
    font-size: 12px;
    font-weight: 800
}

.menu-close span {
    font-size: 33px;
    font-weight: 400
}

.overlay-menu-list {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 1400px;
    margin: auto;
    width: 100%
}

.overlay-menu-list a {
    display: flex;
    align-items: baseline;
    gap: 35px;
    border-bottom: 1px solid rgba(0, 0, 0, .25);
    padding: clamp(8px, 1.2vw, 20px) 0;
    position: relative
}

.overlay-menu-list a:before {
    content: attr(data-num);
    font-size: 12px;
    align-self: center
}

.overlay-menu-list a span {
    font-size: clamp(52px, 7vw, 105px);
    font-weight: 800;
    letter-spacing: -.075em;
    line-height: 1
}

.overlay-menu-list a small {
    font-size: 13px;
    font-weight: 600
}

.overlay-menu-list a b {
    font-size: 37px;
    font-weight: 400;
    margin-left: auto;
    transition: transform .3s
}

.overlay-menu-list a:hover b {
    transform: rotate(45deg)
}

.overlay-menu-list a:hover span {
    font-style: italic
}

.overlay-menu-foot {
    gap: 20px
}

/* hero */
.hero {
    position: relative;
    min-height: 860px;
    height: min(940px, 100svh);
    overflow: hidden;
    background: #080d1b;
    isolation: isolate;
    padding-top: 90px
}

.hero:after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: #26314a;
    content: ''
}

.hero-aura {
    position: absolute;
    z-index: -2;
    inset: 0;
    background: radial-gradient(ellipse 45% 60% at 74% 79%, rgba(32, 100, 55, .21), transparent 75%), radial-gradient(ellipse 50% 30% at 65% 101%, rgba(38, 174, 66, .19), transparent 70%)
}

.hero-noise {
    position: absolute;
    z-index: -1;
    inset: 0;
    opacity: .09;
    background-image: url('https://wpriverthemes.com/HTML/davies/assets/images/item/bg-1.jpg');
    background-size: cover;
    background-position: bottom
}

.hero-topline {
    position: absolute;
    top: 157px;
    left: var(--site-margin);
    right: var(--site-margin);
    display: flex;
    justify-content: space-between;
    align-items: start
}

.role-list {
    display: flex;
    flex-direction: column;
    gap: 13px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em
}

.role-list em {
    color: var(--accent);
    font-style: normal;
    margin-right: 11px
}

.hero-status,
.mini-accent {
    font-size: 11px;
    letter-spacing: .13em;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 10px
}

.live-dot {
    height: 7px;
    width: 7px;
    border-radius: 50%;
    display: inline-block;
    background: var(--accent);
    box-shadow: 0 0 14px var(--accent);
    animation: pulse 2s infinite
}

.hero-mid {
    position: absolute;
    top: 41%;
    left: var(--site-margin);
    right: var(--site-margin);
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 30px
}

.hero-mid-left {
    align-self: center;
    display: flex;
    gap: 22px;
    flex-direction: column
}

.hero-year {
    font-size: 14px;
    font-weight: 700
}

.orbit-icon {
    margin-left: 22px;
    font-size: 30px;
    color: var(--accent)
}

.hero-intro {
    max-width: 460px;
    margin-right: 2vw
}

.eyebrow {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid var(--line);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    padding-bottom: 16px;
    margin-bottom: 20px
}

.mini-arrow {
    color: var(--accent)
}

.hero-intro p {
    font-weight: 500;
    font-size: clamp(17px, 1.6vw, 23px);
    line-height: 1.43;
    letter-spacing: -.025em;
    margin-bottom: 30px
}

.pill-link {
    display: inline-flex;
    border-radius: 80px;
    padding: 5px 5px 5px 23px;
    min-height: 48px;
    gap: 25px;
    background: transparent;
    border: 1px solid #82867d;
    align-items: center;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .07em;
    transition: background .3s, color .3s, border .3s;
    white-space: nowrap
}

.pill-link>span {
    display: grid;
    place-items: center;
    background: var(--accent);
    color: #080d1b;
    width: 38px;
    height: 38px;
    border-radius: 100%;
    font-size: 17px;
    transition: transform .4s var(--ease)
}

.pill-link:hover {
    background: var(--accent);
    border-color: var(--accent);
    color: #080d1b
}

.pill-link:hover>span {
    background: #080d1b;
    color: var(--accent);
    transform: rotate(45deg)
}

.hero-word {
    font-size: clamp(128px, 20.2vw, 600px);
    line-height: .7;
    letter-spacing: -.12em;
    font-weight: 800;
    position: absolute;
    bottom: 95px;
    left: var(--site-margin);
    right: var(--site-margin);
    white-space: nowrap;
    z-index: -1;
    transform-origin: bottom left
}

.hero-word span {
    display: inline-block
}

.hero-word b {
    color: var(--accent);
    font-weight: 800
}

.hero-bottom {
    position: absolute;
    bottom: 28px;
    left: var(--site-margin);
    right: var(--site-margin);
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 10px;
    letter-spacing: .13em;
    font-weight: 700
}

.hero-bottom b {
    color: var(--accent);
    margin-left: 14px
}

.hero-year,
.hero-bottom,
.hero-mid-left {
    position: relative;
    z-index: 2
}

/* work / featured */
.works {
    padding-bottom: 70px
}

.slider-head,
.section-bottomline {
    display: flex;
    justify-content: space-between;
    align-items: center
}

.slider-head {
    padding: 0 var(--site-margin);
    margin: 0 0 25px
}

.small-muted,
.section-bottomline {
    color: var(--muted);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: .1em
}

.slider-controls {
    display: flex;
    gap: 10px
}

.circle-arrow {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 1px solid #4a5148;
    background: transparent;
    display: grid;
    place-items: center;
    font-size: 20px;
    transition: .25s
}

.circle-arrow:hover {
    background: var(--accent);
    color: #0a0c08;
    border-color: var(--accent)
}

.slider-viewport {
    overflow: hidden;
    touch-action: pan-y;
    cursor: grab;
    padding-left: var(--site-margin)
}

.slider-viewport:active {
    cursor: grabbing
}

.work-track {
    display: flex;
    gap: 20px;
    transition: transform .7s var(--ease);
    will-change: transform
}

.work-card {
    flex: 0 0 min(34vw, 550px);
    min-width: 0
}

.work-image {
    height: clamp(300px, 32vw, 510px);
    overflow: hidden;
    position: relative;
    filter: saturate(.91);
    transition: filter .5s
}

.work-image:after,
.template-img:after {
    position: absolute;
    inset: 0;
    content: '';
    background: linear-gradient(180deg, transparent 48%, rgba(0, 0, 0, .5))
}

.work-image:before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .2);
    opacity: 0;
    transition: opacity .5s
}

.work-card:hover .work-image:before {
    opacity: 1
}

.work-image-over {
    position: absolute;
    bottom: 24px;
    left: 22px;
    right: 22px;
    z-index: 2;
    display: flex;
    justify-content: space-between;
    align-items: center;
    opacity: 0;
    transform: translateY(12px);
    transition: .35s
}

.work-image-over span {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .1em
}

.work-image-over b {
    height: 50px;
    width: 50px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--accent);
    color: #090909;
    font-size: 23px
}

.work-card:hover .work-image-over {
    opacity: 1;
    transform: translateY(0)
}

.work-meta {
    padding: 19px 1px 10px;
    display: flex;
    justify-content: space-between;
    gap: 15px;
    align-items: end
}

.work-meta small {
    font-size: 10px;
    color: var(--muted);
    letter-spacing: .08em
}

.work-meta h3 {
    font-size: clamp(27px, 2.6vw, 37px);
    font-weight: 600;
    letter-spacing: -.065em;
    margin-top: 7px
}

.tag-group {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: flex-end
}

.tag-group i {
    font-style: normal;
    border: 1px solid var(--line);
    border-radius: 50px;
    padding: 8px 10px;
    font-size: 9px;
    letter-spacing: .045em;
    color: #b4b7af
}

.section-bottomline {
    padding-top: 55px
}

.text-link {
    color: var(--text);
    transition: color .2s
}

.text-link:hover {
    color: var(--accent)
}

.featured {
    background: #0d0f0c
}

.outline-btn {
    display: flex;
    align-items: center;
    gap: 35px;
    border: 1px solid var(--line);
    padding: 16px 18px 16px 22px;
    border-radius: 40px;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
    letter-spacing: .08em;
    transition: .3s
}

.outline-btn b {
    color: var(--accent);
    font-size: 20px
}

.outline-btn:hover {
    background: var(--accent);
    border-color: var(--accent);
    color: #090a08
}

.outline-btn:hover b {
    color: #090a08
}

.template-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px
}

.template-img {
    height: clamp(255px, 27vw, 435px);
    position: relative;
    overflow: hidden;
    transition: background-size .6s
}

.template-img span {
    position: absolute;
    z-index: 2;
    top: 20px;
    left: 20px;
    font-size: 10px;
    padding: 10px 12px;
    background: rgba(0, 0, 0, .7);
    letter-spacing: .1em
}

.template-card:hover .template-img {
    filter: brightness(1.16)
}

.template-desc {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px 0
}

.template-desc h3 {
    font-size: 29px;
    letter-spacing: -.06em
}

.template-desc span {
    color: var(--muted);
    font-size: 11px;
    letter-spacing: .05em
}

.template-desc b {
    margin-left: auto;
    font-size: 18px
}

/* services */
.services {
    background: #090b09
}

.service-list {
    border-top: 1px solid var(--line)
}

.service-item {
    display: grid;
    grid-template-columns: 48% 52%;
    min-height: 690px;
    border-bottom: 1px solid var(--line);
    padding: 38px 0 50px;
    gap: 28px
}

.service-left {
    display: flex;
    flex-direction: column;
    align-items: start;
    padding: 12px 8% 0 0
}

.service-left h3 {
    font-size: clamp(60px, 7.5vw, 112px);
    font-weight: 600;
    line-height: .93;
    letter-spacing: -.085em;
    margin: 34px 0 28px
}

.service-left>p {
    max-width: 485px;
    line-height: 1.55;
    color: #c1c3bc;
    font-size: 17px;
    margin-bottom: 29px
}

.service-left ul {
    columns: 2;
    max-width: 550px;
    width: 100%;
    font-size: 12px;
    font-weight: 650;
    color: #b9bcb4;
    line-height: 2.25;
    margin-bottom: 34px
}

.service-left li:before {
    content: '// ';
    color: var(--accent)
}

.pill-link.small {
    min-height: 45px
}

.pill-link.small span {
    width: 35px;
    height: 35px
}

.service-art {
    height: 100%;
    min-height: 560px;
    position: relative;
    overflow: hidden
}

.service-art:before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center, transparent 42%, rgba(0, 0, 0, .16));
    pointer-events: none
}

.service-asterisk {
    color: var(--accent);
    position: absolute;
    top: 20px;
    right: 22px;
    font-size: 32px;
    opacity: .8;
    animation: spin 20s linear infinite
}

/* process */
.process {
    background: #10120f
}

.process-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px
}

.process-card {
    min-height: 620px;
    background: #171a17;
    border: 1px solid var(--line);
    display: flex;
    flex-direction: column;
    padding: 28px;
    position: relative;
    overflow: hidden;
    transition: background .35s, transform .5s
}

.process-card:hover {
    background: #20251e;
    transform: translateY(-6px)
}

.process-number {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .09em;
    display: flex;
    justify-content: space-between
}

.process-number span {
    font-size: 23px;
    color: var(--accent)
}

.process-sculpture {
    background-size: contain;
    max-width: 260px;
    height: 250px;
    margin: 25px auto 30px;
    width: 100%;
    transition: transform .6s var(--ease);
    background-position: center
}

.process-card:hover .process-sculpture {
    transform: rotate(20deg) scale(1.12)
}

.process-card h3 {
    font-size: clamp(30px, 3.2vw, 46px);
    font-weight: 550;
    letter-spacing: -.06em;
    line-height: 1.05;
    margin: 0 0 19px
}

.process-card h3 strong {
    color: var(--accent);
    font-weight: 550
}

.process-card p {
    color: #aaaea7;
    font-size: 15px;
    line-height: 1.6;
    max-width: 360px
}

/* about */
.about {
    background: #080d1b;
    overflow: hidden
}

.about-glow {
    position: absolute;
    top: 0;
    right: -10%;
    width: 75%;
    height: 750px;
    background: radial-gradient(ellipse, rgba(16, 95, 43, .22), transparent 67%);
    pointer-events: none
}

.about-banner {
    position: relative;
    min-height: 470px;
    padding: 0 0 70px;
    border-bottom: 1px solid var(--line)
}

.about-banner h2 {
    font-size: clamp(57px, 8vw, 120px);
    font-weight: 600;
    letter-spacing: -.083em;
    line-height: .99;
    max-width: 1230px;
    position: relative;
    z-index: 2;
    margin-top: 75px
}

.about-banner h2 span {
    color: var(--accent)
}

.about-mark {
    position: absolute;
    top: -60px;
    right: 2%;
    font-size: clamp(160px, 27vw, 420px);
    color: rgba(255, 255, 255, .035);
    font-weight: 900;
    letter-spacing: -.1em;
    z-index: 0
}

.about-cols {
    display: grid;
    grid-template-columns: 42% 1fr;
    gap: 8%;
    padding: 85px 0 60px
}

.about-left .mini-accent {
    margin-bottom: 26px;
    color: var(--muted)
}

.about-portrait {
    height: 460px;
    background-position: center;
    background-size: cover;
    position: relative
}

.about-portrait:after {
    content: 'CREATIVE WITHOUT LIMITS';
    position: absolute;
    left: 23px;
    bottom: 23px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em
}

.about-intro {
    font-size: clamp(24px, 2.9vw, 43px);
    font-weight: 500;
    letter-spacing: -.045em;
    line-height: 1.24;
    max-width: 820px;
    margin-bottom: 58px
}

.subsection-heading {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    margin-bottom: 18px;
    letter-spacing: .04em
}

.subsection-heading span {
    color: var(--muted)
}

.experience-list {
    border-top: 1px solid var(--line)
}

.experience-list>div {
    border-bottom: 1px solid var(--line);
    display: flex;
    justify-content: space-between;
    padding: 18px 0;
    gap: 10px;
    font-size: 15px
}

.experience-list b {
    color: var(--muted);
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap
}

.tech {
    display: grid;
    grid-template-columns: 42% 1fr;
    gap: 8%;
    padding-top: 55px;
    border-top: 1px solid var(--line)
}

.tech h2 {
    font-size: clamp(48px, 6vw, 87px);
    line-height: 1;
    letter-spacing: -.08em;
    margin-top: 25px
}

.tech h2 em {
    color: var(--muted);
    font-style: normal
}

.tech-list {
    display: grid;
    gap: 28px
}

.tech-item>div {
    display: flex;
    justify-content: space-between;
    margin-bottom: 13px
}

.tech-item strong {
    font-weight: 600;
    font-size: 21px
}

.tech-item b {
    color: var(--accent);
    font-size: 18px
}

.bar {
    height: 3px;
    background: #343c34;
    display: block
}

.bar i {
    height: 3px;
    width: 0;
    display: block;
    background: var(--accent);
    transition: width 1.4s var(--ease)
}

.tech-item.in-view .bar i {
    width: var(--to)
}

/* awards */
.awards {
    background: #10120f
}

.awards-top {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    align-items: end;
    margin: 25px 0 65px
}

.awards-top h3 {
    font-size: clamp(140px, 23vw, 360px);
    font-weight: 700;
    letter-spacing: -.11em;
    line-height: .8
}

.awards-top h3 sup {
    font-size: .25em;
    position: relative;
    top: -1.5em;
    color: var(--accent)
}

.awards-top p {
    font-size: clamp(21px, 2.8vw, 38px);
    margin-top: 28px;
    letter-spacing: -.05em
}

.award-names {
    display: flex;
    flex-direction: column;
    gap: 0;
    border-top: 1px solid var(--line)
}

.award-names span {
    border-bottom: 1px solid var(--line);
    padding: 23px 0;
    display: flex;
    justify-content: space-between;
    font-size: 23px;
    letter-spacing: -.03em;
    font-weight: 650
}

.award-names b {
    font-size: 19px;
    color: var(--accent)
}

.award-images {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px
}

.award-images>div {
    aspect-ratio: 1;
    filter: grayscale(1);
    transition: filter .4s, transform .4s
}

.award-images>div:hover {
    filter: grayscale(0);
    transform: translateY(-8px)
}

/* social proof */
.testimonials {
    background: #080d1b
}

.testimonial-shell {
    position: relative;
    padding: 45px 50px 45px;
    min-height: 400px;
    background: radial-gradient(ellipse 50% 100% at 0% 100%, rgba(36, 91, 45, .16), transparent), #161916;
    border: 1px solid var(--line);
    display: grid;
    grid-template-columns: 22% 1fr;
    gap: 20px
}

.big-quote {
    font-size: 200px;
    line-height: .8;
    color: var(--accent);
    font-weight: 800
}

.testimonial-content>p {
    font-size: clamp(23px, 3.4vw, 52px);
    line-height: 1.18;
    letter-spacing: -.055em;
    max-width: 890px;
    min-height: 155px
}

.quote-person {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-top: 35px
}

.quote-avatar {
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    border-radius: 100%;
    color: #060906;
    background: #b2dd8b;
    font-weight: 800;
    font-size: 13px
}

.quote-person h3 {
    font-size: 16px
}

.quote-person span {
    color: var(--muted);
    font-size: 13px;
    display: block;
    margin-top: 4px
}

.testimonial-index {
    position: absolute;
    right: 40px;
    bottom: 45px;
    font-size: 13px;
    letter-spacing: .08em;
    color: var(--muted)
}

.testimonial-index span {
    color: var(--accent)
}

.stats-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    padding-top: 70px;
    gap: 20px
}

.stats-row>div {
    border-top: 1px solid var(--line);
    padding-top: 20px;
    display: flex;
    flex-direction: column;
    align-items: start
}

.stats-row>div>span {
    color: var(--muted);
    font-size: 11px;
    letter-spacing: .1em
}

.stats-row strong {
    font-size: clamp(70px, 9vw, 130px);
    line-height: 1.3;
    letter-spacing: -.09em;
    font-weight: 600
}

.stats-row small {
    font-size: 15px;
    color: var(--muted);
    line-height: 1.4
}

/* pricing */
.pricing {
    background: #0e110e;
    overflow: hidden
}

.pricing-aura {
    position: absolute;
    background: radial-gradient(ellipse, rgba(67, 141, 52, .17), transparent 65%);
    width: 110%;
    height: 95%;
    left: -5%;
    top: -30%;
    pointer-events: none
}

.billing-switch {
    border: 1px solid var(--line);
    display: flex;
    border-radius: 50px;
    padding: 4px;
    white-space: nowrap
}

.billing-switch button {
    background: transparent;
    border: 0;
    color: var(--muted);
    border-radius: 40px;
    padding: 15px 20px;
    font-size: 12px;
    font-weight: 700;
    transition: .3s
}

.billing-switch button.active {
    background: var(--accent);
    color: #090a08
}

.billing-switch span {
    font-size: 10px
}

.price-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px
}

.price-card {
    border: 1px solid #333c31;
    background: #141815;
    padding: 36px;
    min-height: 630px;
    display: flex;
    flex-direction: column;
    transition: border-color .35s, transform .4s
}

.price-card:hover {
    transform: translateY(-7px);
    border-color: var(--accent)
}

.price-card.featured-price {
    background: #1e2719;
    border-color: var(--accent)
}

.plan-label {
    font-size: 11px;
    letter-spacing: .1em;
    color: #b0b6a9;
    display: flex;
    justify-content: space-between
}

.popular {
    padding: 5px 9px;
    background: var(--accent);
    color: #0b0b0b;
    font-size: 9px
}

.price-card h3 {
    font-size: 35px;
    letter-spacing: -.06em;
    margin: 30px 0 16px
}

.price {
    display: flex;
    align-items: baseline;
    gap: 7px
}

.price b {
    font-size: clamp(50px, 5vw, 78px);
    letter-spacing: -.085em;
    font-weight: 650
}

.price small {
    color: var(--muted);
    font-size: 15px
}

.price-card>p {
    line-height: 1.5;
    color: var(--muted);
    font-size: 15px;
    min-height: 90px;
    margin-top: 13px
}

.plan-button {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    padding: 17px 20px;
    border: 1px solid #73796e;
    border-radius: 40px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .05em;
    transition: .3s
}

.featured-price .plan-button,
.plan-button:hover {
    background: var(--accent);
    color: #080d1b;
    border-color: var(--accent)
}

.plan-button b {
    font-size: 17px
}

.price-card h4 {
    font-size: 13px;
    margin-top: 40px;
    margin-bottom: 18px
}

.price-card li {
    font-size: 14px;
    padding: 8px 0;
    color: #aeb4aa
}

.price-card li:before {
    content: '//';
    margin-right: 12px;
    color: var(--accent)
}

/* FAQ */
.faq {
    background: #080d1b
}

.faq-grid {
    display: grid;
    grid-template-columns: 42% 1fr;
    gap: 8%
}

.faq-heading h2 {
    font-size: clamp(49px, 6.3vw, 91px);
    font-weight: 600;
    letter-spacing: -.083em;
    line-height: 1.06;
    margin-top: 23px;
    margin-bottom: 23px
}

.faq-heading p {
    max-width: 350px;
    font-size: 16px;
    line-height: 1.55;
    color: var(--muted);
    margin-bottom: 30px
}

.faq-heading .outline-btn {
    display: inline-flex
}

.faq-list {
    border-top: 1px solid var(--line)
}

.faq-item {
    border-bottom: 1px solid var(--line)
}

.faq-item button {
    width: 100%;
    display: grid;
    grid-template-columns: 46px 1fr 35px;
    gap: 14px;
    text-align: left;
    align-items: center;
    background: transparent;
    border: 0;
    padding: 28px 0
}

.faq-item button span {
    font-size: 12px;
    color: var(--accent)
}

.faq-item button strong {
    font-size: clamp(16px, 1.5vw, 21px);
    font-weight: 600;
    letter-spacing: -.02em
}

.faq-item button i {
    font-style: normal;
    font-size: 28px;
    font-weight: 300;
    text-align: right;
    transition: transform .35s;
    color: var(--accent)
}

.faq-item.open button i {
    transform: rotate(45deg)
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height .45s var(--ease)
}

.faq-item.open .faq-answer {
    max-height: 300px
}

.faq-answer p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--muted);
    margin: 0 55px 29px 60px
}

/* contact/footer */
.contact {
    background: #0b0f0b;
    overflow: hidden;
    padding-bottom: 130px
}

.contact-aura {
    position: absolute;
    width: 80%;
    height: 110%;
    right: -23%;
    bottom: -70%;
    background: radial-gradient(ellipse, rgba(32, 111, 54, .36), transparent 70%);
    pointer-events: none
}

.contact-heading {
    text-align: center
}

.contact-heading>.kicker {
    justify-content: center
}

.contact-heading h2 {
    font-size: clamp(60px, 10.7vw, 170px);
    line-height: .94;
    letter-spacing: -.087em;
    font-weight: 600;
    margin: 30px 0 90px
}

.contact-grid {
    display: grid;
    grid-template-columns: 42% 1fr;
    gap: 7%
}

.contact-aside {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    gap: 20px
}

.contact-swirl {
    font-size: clamp(150px, 22vw, 340px);
    line-height: 1;
    color: var(--accent);
    font-weight: 300;
    animation: spin 70s linear infinite;
    text-shadow: 0 0 100px rgba(42, 255, 107, .25)
}

.contact-aside p {
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .1em;
    line-height: 1.5
}

.contact-aside .muted {
    font-size: 11px;
    letter-spacing: .12em;
    color: var(--muted)
}

.contact-form {
    position: relative;
    z-index: 2
}

.form-two {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 25px
}

.contact-form label {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    display: block;
    margin-bottom: 29px
}

.contact-form input,
.contact-form select,
.contact-form textarea {
    display: block;
    margin-top: 12px;
    padding: 15px 0;
    color: var(--text);
    background: transparent;
    border: 0;
    border-bottom: 1px solid #596157;
    width: 100%;
    border-radius: 0;
    font-size: 16px;
    outline: 0;
    transition: border-color .2s;
    resize: vertical;
    letter-spacing: normal
}

.contact-form select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5 7 5 5 5-5' fill='none' stroke='%23c5ff35' stroke-width='2'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right center;
    background-size: 18px
}

.contact-form select option {
    background: #141815;
    color: white
}

.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus {
    border-color: var(--accent)
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
    color: #73796f
}

.submit-button {
    width: 100%;
    border: 0;
    padding: 10px 10px 10px 26px;
    border-radius: 80px;
    background: var(--accent);
    color: #060807;
    font-size: 12px;
    font-weight: 800;
    display: flex;
    justify-content: space-between;
    align-items: center;
    letter-spacing: .08em;
    transition: filter .2s
}

.submit-button span {
    height: 45px;
    width: 45px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #080d1b;
    color: var(--accent);
    font-size: 23px
}

.submit-button:hover {
    filter: brightness(.86)
}

.form-notice {
    font-size: 13px;
    color: var(--accent);
    margin-top: 12px;
    min-height: 16px
}

.site-footer {
    position: relative;
    background: #0b0c0b;
    overflow: hidden
}

.footer-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    padding: 50px 0
}

.footer-top>span {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .09em
}

.footer-top .footer-email {
    font-size: clamp(23px, 3vw, 47px);
    letter-spacing: -.06em;
    font-weight: 600
}

.footer-top a:hover {
    color: var(--accent)
}

.footer-divider {
    border-top: 1px solid var(--line)
}

.footer-links {
    display: grid;
    grid-template-columns: 1fr 1fr 1.2fr;
    gap: 25px;
    padding: 60px 0
}

.footer-links>div {
    display: flex;
    flex-direction: column;
    align-items: start;
    gap: 14px
}

.footer-links small {
    font-size: 11px;
    color: var(--muted);
    letter-spacing: .1em;
    margin-bottom: 11px
}

.footer-links a {
    font-size: 16px;
    transition: color .2s
}

.footer-links a:hover {
    color: var(--accent)
}

.footer-note p {
    max-width: 220px;
    line-height: 1.5;
    color: var(--muted)
}

.footer-huge {
    font-size: clamp(135px, 25vw, 530px);
    font-weight: 750;
    letter-spacing: -.119em;
    line-height: .74;
    white-space: nowrap;
    margin-left: -.08em
}

.footer-huge span {
    color: var(--accent)
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 30px 0 40px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .09em
}

.footer-bottom a {
    color: var(--text)
}

.footer-bottom a:hover {
    color: var(--accent)
}

/* colour configurator */
.theme-panel {
    position: fixed;
    right: 0;
    top: 43%;
    z-index: 110;
    display: flex;
    align-items: start;
    transform: translateX(210px);
    transition: transform .4s
}

.theme-panel.open {
    transform: translateX(0)
}

.theme-toggle {
    border: 0;
    border-radius: 6px 0 0 6px;
    background: var(--accent);
    color: #080d1b;
    font-size: 20px;
    width: 45px;
    height: 45px
}

.theme-options {
    width: 210px;
    padding: 22px;
    background: #f6f7f4;
    color: #111
}

.theme-options b,
.theme-options small {
    display: block;
    font-size: 11px;
    letter-spacing: .1em;
    margin-bottom: 16px
}

.swatches {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px
}

.swatches button {
    width: 32px;
    height: 32px;
    background: var(--swatch);
    border: 2px solid #ccc;
    border-radius: 50%
}

.swatches button.active {
    outline: 2px solid #111;
    outline-offset: 2px
}

/* responsive */
@media(max-width:1200px) {
    .desktop-nav {
        gap: 14px
    }

    .desktop-nav>a {
        font-size: 10px
    }

    .work-card {
        flex-basis: 44vw
    }

    .hero {
        min-height: 750px
    }

    .hero-word {
        font-size: 26vw
    }

    .service-item {
        min-height: 620px
    }

    .service-left h3 {
        font-size: 7vw
    }

    .service-art {
        min-height: 500px
    }

    .price-card {
        padding: 25px
    }

    .price-card h3 {
        margin-top: 40px
    }
}

@media(max-width:980px) {
    .desktop-nav {
        display: none
    }

    .site-header {
        height: 74px
    }

    .hero {
        height: 850px;
        min-height: 730px;
        padding-top: 74px
    }

    .hero-topline {
        top: 120px
    }

    .hero-mid {
        top: 36%
    }

    .hero-word {
        font-size: 26vw;
        bottom: 120px
    }

    .sec-head {
        align-items: start
    }

    .work-card {
        flex-basis: 55vw
    }

    .service-item {
        grid-template-columns: 1fr 1fr
    }

    .service-left h3 {
        font-size: 7.5vw
    }

    .service-left ul {
        columns: 1
    }

    .service-art {
        min-height: 485px
    }

    .process-card {
        min-height: 585px;
        padding: 20px
    }

    .process-sculpture {
        height: 215px
    }

    .process-card h3 {
        font-size: 31px
    }

    .about-banner {
        min-height: 380px
    }

    .price-grid {
        gap: 10px
    }

    .price-card {
        padding: 22px;
        min-height: 630px
    }

    .price {
        flex-wrap: wrap
    }

    .price b {
        font-size: 49px
    }

    .pricing .sec-head {
        align-items: end
    }
}

@media(max-width:760px) {
    :root {
        --site-margin: 22px
    }

    .pointer,
    .pointer-glow {
        display: none
    }

    .section {
        padding: 80px 0
    }

    .site-header {
        height: 68px
    }

    .top-brand {
        font-size: 34px
    }

    .hero {
        height: 780px;
        min-height: 720px
    }

    .hero-topline {
        top: 120px
    }

    .hero-status {
        font-size: 9px
    }

    .role-list {
        font-size: 10px;
        gap: 10px
    }

    .hero-mid {
        top: 35%;
        flex-direction: column;
        align-items: start;
        gap: 36px
    }

    .hero-mid-left {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        width: 100%
    }

    .hero-intro {
        max-width: 410px;
        margin: 0
    }

    .hero-intro p {
        font-size: 19px
    }

    .hero-word {
        bottom: 118px;
        font-size: 26.3vw;
        left: 14px
    }

    .hero-bottom {
        bottom: 25px;
        font-size: 9px
    }

    .hero-bottom>span:nth-child(2) {
        display: none
    }

    .sec-head {
        gap: 25px;
        margin-bottom: 35px
    }

    .sec-head h2 {
        font-size: clamp(55px, 10.2vw, 78px)
    }

    .sec-head>p {
        display: none
    }

    .work-card {
        flex-basis: 76vw
    }

    .work-image {
        height: 370px
    }

    .template-grid {
        grid-template-columns: 1fr 1fr
    }

    .template-card:nth-child(3) {
        display: none
    }

    .template-img {
        height: 300px
    }

    .service-item {
        display: flex;
        flex-direction: column-reverse;
        gap: 25px;
        padding: 25px 0 50px
    }

    .service-art {
        min-height: 0;
        height: 450px
    }

    .service-left h3 {
        font-size: clamp(55px, 12vw, 90px);
        margin: 20px 0
    }

    .service-left ul {
        columns: 2
    }

    .process-grid {
        grid-template-columns: 1fr
    }

    .process-card {
        min-height: unset;
        padding: 25px
    }

    .process-sculpture {
        height: 190px;
        width: 200px;
        margin: 15px auto
    }

    .process-card h3 {
        font-size: 37px;
        max-width: 350px
    }

    .process-card p {
        margin-top: 10px
    }

    .about-banner {
        min-height: 350px
    }

    .about-banner h2 {
        font-size: clamp(48px, 10vw, 70px);
        margin-top: 70px
    }

    .about-cols,
    .tech {
        grid-template-columns: 1fr;
        gap: 35px
    }

    .about-portrait {
        height: 330px
    }

    .about-intro {
        font-size: 30px
    }

    .tech {
        padding-top: 45px
    }

    .tech h2 {
        margin-top: 10px
    }

    .awards-top {
        grid-template-columns: 1fr;
        gap: 35px
    }

    .awards-top h3 {
        font-size: 34vw
    }

    .award-images {
        grid-template-columns: repeat(3, 1fr)
    }

    .testimonial-shell {
        padding: 28px;
        grid-template-columns: 1fr;
        gap: 0
    }

    .big-quote {
        font-size: 110px;
        line-height: .8
    }

    .testimonial-content>p {
        font-size: 27px;
        min-height: unset
    }

    .testimonial-index {
        right: 25px;
        bottom: 25px
    }

    .stats-row {
        gap: 10px
    }

    .stats-row strong {
        font-size: 13vw
    }

    .stats-row>div>span {
        font-size: 9px
    }

    .stats-row small {
        font-size: 12px
    }

    .pricing .sec-head {
        flex-direction: column;
        align-items: start
    }

    .price-grid {
        grid-template-columns: 1fr
    }

    .price-card {
        min-height: 0;
        padding: 28px
    }

    .price-card>p {
        min-height: unset;
        margin-bottom: 26px
    }

    .faq-grid {
        grid-template-columns: 1fr;
        gap: 45px
    }

    .faq-heading h2 {
        font-size: 59px
    }

    .contact-heading h2 {
        font-size: clamp(58px, 11vw, 80px);
        margin-bottom: 65px
    }

    .contact-grid {
        grid-template-columns: 1fr
    }

    .contact-aside {
        display: none
    }

    .footer-top {
        flex-wrap: wrap
    }

    .footer-top>span:last-child {
        margin-left: auto
    }

    .footer-links {
        grid-template-columns: 1fr 1fr
    }

    .footer-note {
        display: none
    }

    .footer-huge {
        font-size: 25vw
    }

    .footer-bottom span:nth-child(2) {
        display: none
    }

    .overlay-menu-list a span {
        font-size: 65px
    }

    .overlay-menu-list a small {
        display: none
    }

    .overlay-menu-foot span {
        display: none
    }
}

@media(max-width:480px) {
    .hero {
        height: 720px;
        min-height: 680px
    }

    .hero-topline {
        top: 111px
    }

    .hero-status {
        font-size: 8px
    }

    .hero-mid {
        top: 36%
    }

    .hero-mid-left .mini-accent {
        font-size: 9px
    }

    .hero-year {
        font-size: 10px
    }

    .hero-intro p {
        font-size: 17px
    }

    .hero-word {
        bottom: 125px;
        font-size: 26.4vw
    }

    .hero-bottom {
        bottom: 30px
    }

    .sec-head h2 {
        font-size: 52px
    }

    .slider-head {
        align-items: center
    }

    .work-card {
        flex-basis: 83vw
    }

    .work-image {
        height: 330px
    }

    .work-meta {
        align-items: start
    }

    .tag-group {
        max-width: 145px
    }

    .tag-group i {
        font-size: 8px;
        padding: 6px 8px
    }

    .section-bottomline {
        gap: 12px;
        font-size: 9px
    }

    .template-grid {
        grid-template-columns: 1fr
    }

    .template-card:nth-child(2) {
        display: none
    }

    .template-img {
        height: 350px
    }

    .service-art {
        height: 360px
    }

    .service-left ul {
        columns: 1
    }

    .about-banner h2 {
        font-size: 48px
    }

    .award-names span {
        font-size: 17px
    }

    .stats-row {
        grid-template-columns: 1fr;
        gap: 25px
    }

    .stats-row strong {
        font-size: 88px
    }

    .stats-row small {
        font-size: 15px
    }

    .billing-switch button {
        font-size: 10px;
        padding: 14px
    }

    .faq-heading h2 {
        font-size: 49px
    }

    .faq-item button {
        grid-template-columns: 25px 1fr 25px;
        gap: 7px;
        padding: 24px 0
    }

    .faq-answer p {
        margin-left: 33px;
        margin-right: 10px
    }

    .form-two {
        grid-template-columns: 1fr;
        gap: 0
    }

    .contact-heading h2 {
        font-size: 49px
    }

    .footer-top .footer-email {
        font-size: 27px
    }

    .footer-top>span:last-child {
        margin: 0
    }

    .footer-bottom {
        font-size: 9px
    }

    .menu-overlay {
        padding: 23px
    }

    .overlay-menu-list a span {
        font-size: 56px
    }
}

@media(prefers-reduced-motion:reduce) {

    *,
    *:before,
    *:after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        transition-duration: .01ms !important
    }

    .js-enhanced .reveal:not(.in-view) {
        opacity: 1;
        transform: none
    }
}

@keyframes pulse {

    0%,
    100% {
        box-shadow: 0 0 5px var(--accent);
        opacity: 1
    }

    50% {
        box-shadow: 0 0 20px var(--accent);
        opacity: .65
    }
}

@keyframes spin {
    to {
        transform: rotate(360deg)
    }
}

/* Journal / alternate homepage */
.journal-hero {
    padding: 210px 0 70px;
    background: radial-gradient(ellipse at 70% 100%, rgba(40, 90, 33, .22), transparent 60%), #0a0c09;
    border-bottom: 1px solid var(--line)
}

.journal-hero h1 {
    font-size: clamp(110px, 22vw, 350px);
    font-weight: 750;
    line-height: .9;
    letter-spacing: -.115em;
    margin: 55px 0
}

.journal-hero h1 span {
    color: var(--accent)
}

.journal-hero-bottom {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    color: var(--muted)
}

.blog-view-switch {
    display: flex;
    gap: 8px;
    margin-bottom: 40px
}

.blog-view-switch a {
    padding: 14px 18px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .07em;
    border: 1px solid var(--line);
    border-radius: 40px;
    transition: .25s
}

.blog-view-switch a.active,
.blog-view-switch a:hover {
    background: var(--accent);
    color: #060906;
    border-color: var(--accent)
}

.journal-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 45px
}

.journal-with-sidebar {
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 7%
}

.journal-grid {
    display: grid;
    gap: 45px 24px
}

.journal-grid-1 {
    grid-template-columns: 1fr
}

.journal-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr))
}

.journal-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr))
}

.journal-image {
    display: block;
    position: relative;
    min-height: 250px;
    aspect-ratio: 1.6;
    overflow: hidden;
    transition: filter .4s
}

.journal-image:hover {
    filter: brightness(1.14)
}

.journal-image span {
    position: absolute;
    bottom: 18px;
    left: 18px;
    background: var(--accent);
    padding: 11px 15px;
    color: #080d1b;
    font-size: 10px;
    font-weight: 800;
    opacity: 0;
    transform: translateY(10px);
    transition: .3s
}

.journal-image:hover span {
    opacity: 1;
    transform: translateY(0)
}

.journal-grid-1 .journal-image {
    aspect-ratio: 1.66
}

.journal-meta {
    display: flex;
    justify-content: space-between;
    font-size: 11px;
    color: var(--muted);
    font-weight: 700;
    margin: 16px 0;
    letter-spacing: .05em;
    gap: 12px
}

.journal-card h2 {
    font-size: clamp(22px, 2.8vw, 41px);
    font-weight: 600;
    letter-spacing: -.045em
}

.journal-card h2 a:hover {
    color: var(--accent)
}

.journal-read {
    display: inline-block;
    margin-top: 19px;
    font-size: 11px;
    letter-spacing: .08em;
    font-weight: 800
}

.journal-read b {
    color: var(--accent);
    font-size: 16px
}

.journal-sidebar {
    display: flex;
    flex-direction: column;
    gap: 38px
}

.sidebar-block {
    border-bottom: 1px solid var(--line);
    padding-bottom: 30px
}

.sidebar-block h3 {
    font-size: 24px;
    letter-spacing: -.05em;
    margin-bottom: 20px
}

.journal-search {
    display: flex;
    border: 1px solid var(--line)
}

.journal-search input {
    border: 0;
    outline: 0;
    background: transparent;
    min-width: 0;
    flex: 1;
    padding: 14px;
    color: white;
    font-size: 14px
}

.journal-search button {
    background: var(--accent);
    border: 0;
    color: #080d1b;
    width: 45px;
    font-size: 20px
}

.search-results {
    display: block;
    font-size: 12px;
    color: var(--accent);
    padding-top: 9px
}

.recent-posts a {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 15px
}

.recent-img {
    width: 80px;
    aspect-ratio: 1;
    flex: none
}

.recent-posts a b {
    font-size: 14px;
    letter-spacing: -.02em;
    font-weight: 600;
    display: block
}

.recent-posts a:hover b {
    color: var(--accent)
}

.recent-posts small {
    font-size: 11px;
    color: var(--muted);
    display: block;
    margin-top: 5px
}

.sidebar-cat a {
    display: flex;
    justify-content: space-between;
    font-size: 15px;
    padding: 10px 0;
    border-bottom: 1px solid var(--line)
}

.sidebar-cat a:hover,
.sidebar-tags a:hover {
    color: var(--accent)
}

.sidebar-cat span {
    color: var(--muted)
}

.sidebar-tags {
    display: flex;
    gap: 8px;
    flex-wrap: wrap
}

.sidebar-tags a {
    font-size: 12px;
    border: 1px solid var(--line);
    padding: 9px 12px;
    border-radius: 20px
}

.journal-pagination {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-top: 50px
}

.page-btn {
    width: 45px;
    height: 45px;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: transparent;
    font-size: 12px
}

.page-btn.active,
.page-btn:hover {
    background: var(--accent);
    color: #090909
}

.journal-hero h1.single-head {
    font-size: clamp(75px, 11vw, 155px);
    line-height: .97;
    letter-spacing: -.08em
}

.article-body {
    font-size: 17px;
    line-height: 1.75
}

.article-feature {
    aspect-ratio: 1.6;
    margin-bottom: 25px
}

.article-info {
    font-size: 12px;
    letter-spacing: .08em;
    color: var(--muted);
    margin-bottom: 30px
}

.article-body h2 {
    font-size: clamp(36px, 5vw, 70px);
    line-height: 1.08;
    letter-spacing: -.06em;
    margin-bottom: 28px
}

.article-body>p {
    color: #b7bcb5;
    margin-bottom: 20px
}

.article-body blockquote {
    font-size: clamp(26px, 3.7vw, 48px);
    line-height: 1.3;
    letter-spacing: -.06em;
    border-left: 3px solid var(--accent);
    padding: 0 0 0 25px;
    margin: 40px 0
}

.article-subimage {
    aspect-ratio: 1.9;
    margin: 35px 0
}

.article-body h3 {
    font-size: 32px;
    letter-spacing: -.04em;
    margin: 20px 0
}

.article-tags {
    align-items: center;
    margin: 32px 0
}

.article-tags span {
    font-size: 12px
}

.article-body h3.comments-title {
    margin-top: 60px
}

.article-body .muted {
    color: var(--muted);
    font-size: 15px
}

.comment-form {
    margin-top: 25px
}

.comment-form label {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    display: block;
    margin-bottom: 25px
}

.comment-form input,
.comment-form textarea {
    border: 0;
    border-bottom: 1px solid #555;
    background: transparent;
    color: white;
    width: 100%;
    display: block;
    padding: 18px 0;
    font-size: 16px;
    margin-top: 10px;
    outline: 0
}

.comment-form input:focus,
.comment-form textarea:focus {
    border-color: var(--accent)
}

.hero-v2 {
    isolation: isolate;
    background: #0b0c0b;
    height: 900px;
    min-height: 760px
}

.hero-v2-glow {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 70% 70%, rgba(68, 100, 59, .21), transparent 70%)
}

.hero-v2-top {
    position: absolute;
    top: 140px;
    left: var(--site-margin);
    right: var(--site-margin);
    display: flex;
    justify-content: space-between;
    align-items: start
}

.v2-type {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    line-height: 1.7
}

.v2-type span {
    color: var(--muted)
}

.v2-status {
    font-size: 11px;
    letter-spacing: .1em;
    display: flex;
    align-items: center;
    gap: 10px
}

.hero-v2-inner {
    position: absolute;
    top: 190px;
    bottom: 85px;
    left: var(--site-margin);
    right: var(--site-margin);
    display: grid;
    grid-template-columns: 1fr 38%;
    gap: 8%;
    align-items: center
}

.hero-v2-portrait {
    height: 100%;
    width: 100%;
    max-width: 510px;
    justify-self: center;
    background-size: cover;
    background-position: center 22%;
    filter: grayscale(1) contrast(1.1)
}

.hero-v2-overlay {
    position: absolute;
    left: 0;
    right: 0;
    top: 45%;
    pointer-events: none
}

.v2-name {
    font-size: clamp(150px, 25vw, 400px);
    font-weight: 800;
    letter-spacing: -.115em;
    line-height: .9;
    white-space: nowrap;
    text-shadow: 0 12px 50px #0008
}

.v2-name span {
    color: var(--accent)
}

.v2-portrait-label {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em
}

.v2-portrait-label span {
    color: var(--accent);
    margin: 0 10px
}

.v2-intro {
    position: relative;
    align-self: end;
    margin-bottom: 90px;
    z-index: 1
}

.v2-intro>span {
    font-size: 11px;
    letter-spacing: .1em;
    color: var(--accent)
}

.v2-intro p {
    font-size: clamp(30px, 3vw, 45px);
    line-height: 1.1;
    letter-spacing: -.05em;
    margin: 15px 0 30px
}

.hero-v2 .hero-bottom {
    bottom: 25px
}

.hero-v2 .hero-bottom>span {
    display: block
}

@media(max-width:970px) {
    .journal-with-sidebar {
        grid-template-columns: 1fr 250px;
        gap: 30px
    }

    .journal-grid-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .hero-v2-inner {
        grid-template-columns: 1fr 36%
    }

    .v2-name {
        font-size: 25vw
    }
}

@media(max-width:720px) {
    .journal-hero {
        padding: 150px 0 55px
    }

    .journal-hero h1 {
        font-size: 25vw;
        margin: 45px 0
    }

    .journal-hero-bottom {
        font-size: 9px
    }

    .journal-with-sidebar {
        grid-template-columns: 1fr
    }

    .journal-sidebar {
        display: none
    }

    .journal-grid-3,
    .journal-grid-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .journal-image {
        min-height: 0
    }

    .journal-card h2 {
        font-size: 23px
    }

    .hero-v2 {
        height: 740px
    }

    .hero-v2-top {
        top: 100px
    }

    .hero-v2-inner {
        top: 160px;
        grid-template-columns: 1fr
    }

    .hero-v2-portrait {
        justify-self: start;
        width: 75%;
        max-width: 460px
    }

    .v2-name {
        font-size: 25vw
    }

    .hero-v2-overlay {
        top: 45%
    }

    .v2-intro {
        position: absolute;
        bottom: 0;
        right: 0;
        max-width: 270px;
        margin-bottom: 30px;
        background: rgba(5, 5, 5, .7);
        padding: 14px
    }

    .v2-intro p {
        font-size: 23px
    }
}

@media(max-width:480px) {

    .journal-grid-2,
    .journal-grid-3 {
        grid-template-columns: 1fr
    }

    .blog-view-switch a {
        font-size: 10px;
        padding: 12px
    }

    .hero-v2-portrait {
        width: 95%
    }

    .v2-intro {
        max-width: 230px
    }

    .v2-intro p {
        font-size: 20px
    }

    .hero-v2-top {
        gap: 10px
    }

    .v2-type,
    .v2-status {
        font-size: 9px
    }

    .journal-hero h1.single-head {
        font-size: 16vw
    }
}

.nav-dropdown {
    position: relative
}

.nav-dropdown>a {
    font-size: clamp(9px, .77vw, 12px);
    font-weight: 800;
    letter-spacing: .03em;
    white-space: nowrap;
    transition: color .25s
}

.nav-dropdown:hover>a {
    color: var(--accent)
}

.nav-dropdown-menu {
    position: absolute;
    top: 100%;
    left: -13px;
    min-width: 175px;
    padding: 12px;
    background: #171c17;
    border: 1px solid var(--line);
    box-shadow: 0 15px 50px #0007;
    display: flex;
    flex-direction: column;
    gap: 5px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: .25s;
    z-index: 20
}

.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0)
}

.nav-dropdown-menu a {
    padding: 11px;
    white-space: nowrap;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .02em
}

.nav-dropdown-menu a:hover {
    background: #262e24;
    color: var(--accent)
}

/* final geometry fixes for hero baseline and mobile overflow */
.hero-bottom {
    position: absolute;
    z-index: 2;
    width: auto
}

.hero-mid {
    top: 30%
}

.hero-word {
    margin: 0
}

.hero-v2 .hero-bottom {
    position: absolute
}

@media(max-width:760px) {
    .hero-mid {
        top: 31%
    }
}

@media(max-width:480px) {
    .hero-mid {
        top: 30%
    }
}

@media(max-width:760px) {
    .featured .sec-head {
        display: block
    }

    .featured .sec-head .outline-btn {
        width: max-content;
        max-width: 100%;
        margin-top: 24px
    }
}

/* INFINIX DESIGN | identity layer | preserves Davies-inspired choreography */
:root {
    --bg: #080d1b;
    --bg2: #0e1528;
    --panel: #131c2e;
    --text: #f3f7ff;
    --muted: #a7b2c9;
    --subtle: #798ba9;
    --line: rgba(168, 192, 246, .16);
    --accent: #31b7f2;
    --accent-alt: #9557db;
    --brand-gradient: linear-gradient(110deg, #1ebbea 0%, #2d91e8 35%, #6854cb 70%, #a24abb 100%)
}

body {
    background: var(--bg)
}

.hero {
    background: #080d1b
}

.hero-aura,
.about-glow,
.pricing-aura,
.contact-aura {
    filter: hue-rotate(140deg)
}

.site-header.scrolled {
    background: rgba(7, 13, 27, .88)
}

.top-brand {
    width: clamp(155px, 16.3vw, 247px);
    height: 66px;
    display: flex;
    align-items: center;
    flex-shrink: 0;
    line-height: 1;
    letter-spacing: normal
}

.top-brand img {
    height: 100%;
    width: 100%;
    object-fit: contain;
    object-position: left center
}

.loader-big {
    font-size: clamp(44px, 9vw, 140px);
    letter-spacing: -.085em;
    line-height: 1;
    white-space: normal;
    margin-left: 0
}

.hero-word {
    font-size: clamp(88px, 14.8vw, 270px);
    letter-spacing: -.105em;
    bottom: clamp(115px, 11vw, 152px)
}

.hero-word span,
.footer-huge {
    background: #fff;
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent
}

.hero-word b {
    color: var(--accent)
}

.footer-huge {
    font-size: clamp(87px, 17.8vw, 328px);
    letter-spacing: -.105em;
    line-height: .95;
    white-space: normal;
    padding: 18px 0 10px
}

.about-mark {
    font-size: clamp(90px, 19vw, 310px);
    background: var(--brand-gradient);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    opacity: .07
}

.menu-overlay {
    background: linear-gradient(135deg, #188fd0, #515bc0 63%, #8748be);
    color: #fff
}

.overlay-menu-list a {
    border-color: rgba(255, 255, 255, .28)
}

.menu-overlay .menu-close {
    color: #fff
}

.overlay-menu-list a:hover span {
    color: #06152c
}

.menu-overlay .overlay-menu-foot {
    color: #f1f6ff
}

#works .asset,
#templates .asset,
#services .asset,
#awards .asset,
.about-portrait,
.journal-image,
.article-feature {
    background-color: #0c1630
}

.asset {
    background-size: cover !important
}

.work-image:before,
.template-img:before,
.service-art:before {
    background: linear-gradient(140deg, transparent 65%, rgba(74, 67, 171, .15))
}

.hero-aura:after {
    background: radial-gradient(ellipse, rgba(24, 171, 231, .12), transparent 65%)
}

.service-item:hover h3,
.text-link:hover,
.footer-email:hover {
    color: var(--accent)
}

.price-card.featured-price {
    border-color: var(--accent)
}

.price-card.featured-price:before {
    background: linear-gradient(90deg, #19b8e8, #8950c8)
}

.price b {
    font-size: clamp(31px, 3.3vw, 52px) !important;
    letter-spacing: -.065em
}

.price {
    text-transform: uppercase;
    display: flex;
    align-items: center
}

.price .price-cycle {
    display: none
}

.price .quote-only {
    color: #fff;
    font-weight: 700
}

.price .quote-only span {
    color: var(--accent)
}

.billing-label {
    font-size: 12px;
    color: #b9c9e8;
    letter-spacing: .12em;
    border: 1px solid rgba(124, 163, 230, .22);
    padding: 16px 21px;
    border-radius: 30px;
    font-weight: 750
}

.live-dot {
    background: #2ad2dd;
    box-shadow: 0 0 18px #2292eb
}

.brand-contact-line {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    font-size: 13px;
    letter-spacing: .04em;
    margin-top: 22px;
    color: #c1cae2
}

.brand-contact-line a:hover {
    text-decoration: underline;
    color: var(--accent)
}

.contact-form select option {
    background: #101729;
    color: #fff
}

.brand-gradient-text {
    background: var(--brand-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent
}

.footer-links .brand-logo-footer {
    width: 235px;
    margin-top: 22px
}

#theme-panel {
    display: none !important
}

.journal-hero h1 {
    font-size: clamp(66px, 14vw, 195px)
}

.journal-hero h1.single-head {
    font-size: clamp(52px, 9vw, 125px)
}

@media(max-width:1000px) {
    .top-brand {
        width: 205px
    }

    .hero-word {
        font-size: 20vw
    }

    .footer-huge {
        font-size: 17.5vw
    }

    .overlay-menu-list a span {
        color: #fff
    }
}

@media(max-width:650px) {
    .top-brand {
        width: 155px;
        height: 55px
    }

    .hero-word {
        font-size: 19.3vw;
        letter-spacing: -.095em;
        left: var(--site-margin);
        right: auto;
        bottom: 145px
    }

    .footer-huge {
        font-size: 17vw
    }

    .loader-big {
        font-size: 11vw
    }

    .about-mark {
        font-size: 23vw;
        top: -5px
    }

    .brand-contact-line {
        font-size: 12px
    }

    .menu-overlay {
        padding: 24px 19px
    }

    .overlay-menu-list a span {
        font-size: clamp(36px, 10vw, 68px)
    }

    .overlay-menu-foot span:last-child {
        display: none
    }
}

@media(prefers-reduced-motion:reduce) {

    .hero-word,
    .footer-huge {
        transform: none !important
    }
}

/* Final Infinix polish */
.footer-huge {
    color: #f2f7ff;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    text-transform: uppercase;
    font-size: clamp(84px, 17vw, 320px);
    line-height: .85;
    padding-bottom: 35px;
    overflow: visible
}

.footer-huge .footer-design {
    display: block;
    font-size: .59em;
    line-height: 1.1;
    letter-spacing: -.064em;
    color: var(--text);
    background: none;
    -webkit-text-fill-color: var(--text)
}

.hero-v2 {
    background: #090e1e
}

.hero-v2-glow {
    background: radial-gradient(ellipse at 70% 70%, rgba(36, 129, 223, .27), transparent 70%)
}

.hero-v2-portrait {
    filter: none
}

.v2-name {
    font-size: clamp(118px, 19vw, 310px);
    white-space: nowrap;
    letter-spacing: -.1em;
    background: var(--brand-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent
}

.v2-name span {
    color: var(--accent);
    -webkit-text-fill-color: var(--accent)
}

@media(max-width:650px) {
    .v2-name {
        font-size: 20vw
    }

    .footer-huge {
        font-size: 16.5vw
    }

    .footer-huge .footer-design {
        font-size: .7em
    }
}


/* ---- Motion upgrade: scroll-linked visual direction / Infinix Design ---- */
:root {
    --motion-ease: cubic-bezier(.2, .82, .2, 1)
}

/* .asset {
    background-image: var(--asset), var(--fallback, linear-gradient(135deg, #0b244b, #2d1d53))
}

.asset[data-demo-original] {
    background-color: #101422
} */

/* Old Davies demo photography is linked first; local Infinix placeholder graphics stay as offline fallbacks. */
.work-image,
.template-img,
.service-art,
.award-images>.asset,
.about-portrait {
    background-position: center;
    background-size: cover
}

.service-scroll-note {
    font-size: 10px;
    letter-spacing: .18em;
    font-weight: 750;
    text-align: right;
    color: var(--accent);
    padding: 0 max(var(--site-margin), calc((100vw - 1640px)/2));
    margin-top: -22px;
    margin-bottom: 24px;
    opacity: .75
}

/* Sections with actual captured scroll progress, not timed faux slides. */
@media (min-width:1001px) and (prefers-reduced-motion:no-preference) {
    .services {
        overflow: visible;
        position: relative;
        padding-bottom: 0;
    }

    .service-pin {
        height: calc(100vh * 3.0);
        position: relative;
        margin-left: calc(-1 * max(var(--site-margin), calc((100vw - 1640px) / 2)));
        width: 100vw;
    }

    .service-list {
        position: sticky;
        top: 0;
        left: 0;
        height: 100vh;
        display: flex;
        width: max-content;
        gap: 0;
        border: none;
        transition: none !important;
        will-change: transform;
    }

    .service-item {
        width: 100vw;
        min-width: 100vw;
        height: 100vh;
        min-height: 650px;
        padding: max(70px, 7vh) var(--site-margin) 6vh;
        gap: 4vw;
        box-sizing: border-box;
        align-items: center;
        grid-template-columns: 46% 54%;
        border-bottom: 0;
        border-right: 1px solid var(--line);
        transform: none !important;
        opacity: 1 !important;
    }

    .service-left {
        max-width: 750px;
        padding: 0
    }

    .service-left h3 {
        font-size: clamp(54px, 6.1vw, 109px);
        margin: 28px 0 24px
    }

    .service-art {
        height: min(79vh, 720px);
        min-height: unset
    }

    .service-pin .service-item:nth-child(2) {
        background: #0b0f1d
    }

    .service-pin .service-item:nth-child(3) {
        background: #090d18
    }

    .service-pin .service-art {
        clip-path: inset(0 0 0 0 round 2px)
    }
}

.service-art::after,
.template-img::before,
.about-portrait::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(145deg, rgba(36, 58, 190, .12), transparent 52%, rgba(63, 38, 160, .12));
    pointer-events: none;
    z-index: 1
}

.process-sculpture {
    background-size: contain !important;
    background-repeat: no-repeat
}

.brand-marquee {
    overflow: hidden;
    border-block: 1px solid var(--line);
    height: 116px;
    display: flex;
    align-items: center;
    background: #0a0f1e;
}

.brand-marquee-track {
    display: flex;
    width: max-content;
    white-space: nowrap;
    animation: brandtravel 34s linear infinite;
    will-change: transform;
}

.brand-marquee-track>span {
    font-size: clamp(22px, 3.4vw, 56px);
    font-weight: 800;
    letter-spacing: -.055em;
    padding-right: 1.1em
}

.brand-marquee-track b {
    color: var(--accent);
    font-weight: 400;
    padding: 0 .22em
}

@keyframes brandtravel {
    to {
        transform: translateX(-50%)
    }
}

.brand-marquee:hover .brand-marquee-track {
    animation-play-state: paused
}

.scrub-char {
    display: inline-block;
    opacity: var(--char-light, .18);
    transition: opacity .14s linear;
    will-change: opacity;
    white-space: pre
}

.scrub-whitespace {
    display: inline-block;
    white-space: pre
}

.about-banner h2 {
    max-width: 1250px
}

.contact-heading h2 .scrub-char,
.about-banner h2 .scrub-char {
    opacity: var(--char-light, .2)
}

.scroll-activated .process-card {
    transition: transform .2s linear, background .3s !important;
}

.process-card .process-sculpture {
    transform: rotate(var(--turn, 0deg)) scale(var(--mag, 1))
}

.process-card:hover .process-sculpture {
    transform: rotate(calc(var(--turn, 0deg) + 9deg)) scale(1.08)
}

.work-card .work-image {
    transform: translateZ(0);
    background-size: cover;
    transition: background-size .8s var(--motion-ease), filter .4s
}

.work-card:hover .work-image {
    filter: saturate(1.12)
}

.work-card .work-image-over {
    transform: translateY(18px)
}

.work-card:hover .work-image-over {
    transform: translateY(0);
    opacity: 1
}

.work-card {
    transition: opacity .5s, transform .5s
}

.horizontal-progress {
    position: fixed;
    z-index: 90;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2px;
    pointer-events: none;
    overflow: hidden;
    opacity: 0;
    transition: opacity .3s
}

.horizontal-progress.is-visible {
    opacity: 1
}

.horizontal-progress span {
    display: block;
    height: 100%;
    width: 100%;
    background: linear-gradient(90deg, var(--accent), #8064f7);
    transform: scaleX(var(--progress, 0));
    transform-origin: 0 50%;
}

.clip-reveal {
    clip-path: inset(14% 9% 14% 9%);
    opacity: .78;
    transform: scale(.96);
    transition: clip-path 1s var(--motion-ease), opacity 1s, transform 1s var(--motion-ease)
}

.clip-reveal.clip-in-view {
    clip-path: inset(0% 0% 0% 0%);
    opacity: 1;
    transform: scale(1)
}

/* soft image movement + active mouse depth */
.float-drift {
    will-change: transform
}

@media (max-width:1000px) {
    .service-pin {
        height: auto !important;
        width: 100%;
        margin: 0;
    }

    .service-list {
        position: static !important;
        display: block !important;
        width: 100% !important;
        height: auto !important;
        transform: none !important;
    }

    .service-item {
        min-width: 0;
        transform: none !important;
        opacity: 1 !important
    }

    .service-scroll-note {
        display: none
    }

    .brand-marquee {
        height: 82px
    }

    .brand-marquee-track>span {
        font-size: 29px
    }
}

@media (max-width:640px) {
    .brand-marquee {
        height: 64px
    }

    .brand-marquee-track>span {
        font-size: 23px
    }

    .clip-reveal {
        clip-path: none !important;
        opacity: 1;
        transform: none
    }
}

@media (prefers-reduced-motion:reduce) {
    .brand-marquee-track {
        animation: none
    }

    .scrub-char {
        opacity: 1 !important
    }

    .clip-reveal {
        clip-path: none !important;
        opacity: 1 !important;
        transform: none !important
    }

    .service-pin {
        height: auto !important;
        width: 100% !important;
        margin: 0 !important
    }

    .service-list {
        height: auto !important;
        display: block !important;
        width: 100% !important;
        transform: none !important;
        position: static !important
    }

    .service-item {
        min-width: 0;
        width: 100%;
        height: auto;
        min-height: 0;
        transform: none !important;
        opacity: 1 !important
    }

    .horizontal-progress {
        display: none
    }
}

@media (min-width:1001px) and (prefers-reduced-motion:no-preference) {
    .service-pin {
        overflow: clip
    }
}

/* ==========================================================
   INFINIX DESIGN - FULL-VIEWPORT HERO VIDEO
   The header is absolutely positioned above the hero, so the
   same video extends beneath the entire transparent header.
   The video is local, muted, inline, accessible and responsive.
   ========================================================== */
.hero.hero-video-ready,
.hero.hero-v2.hero-video-ready {
    height: 100vh;
    height: 100svh;
    min-height: 0;
    max-height: none;
    background: #080d1b;
    isolation: isolate;
    position: relative;
    overflow: hidden;
}

.hero-video-layer {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
    background: #080d1b url('video/infinix-hero-poster.jpg') center/cover no-repeat;
}

.hero-background-video {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    pointer-events: none;
}

.hero-video-layer::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg,
            rgba(4, 8, 19, .39) 0%,
            rgba(5, 9, 21, .31) 36%,
            rgba(4, 8, 18, .46) 72%,
            rgba(3, 7, 17, .73) 100%);
    pointer-events: none;
}

.hero-video-ready>.hero-aura,
.hero-video-ready>.hero-noise,
.hero-video-ready>.hero-v2-glow {
    position: absolute;
    z-index: 1;
    pointer-events: none;
}

.hero-video-ready>.hero-aura {
    opacity: .20;
}

.hero-video-ready>.hero-noise {
    opacity: .035;
}

.hero-video-ready>.hero-v2-glow {
    opacity: .16;
}

.hero-video-ready>.hero-topline,
.hero-video-ready>.hero-mid,
.hero-video-ready>.hero-word,
.hero-video-ready>.hero-bottom,
.hero-video-ready>.hero-v2-top,
.hero-video-ready>.hero-v2-inner,
.hero-video-ready>.hero-v2-overlay {
    z-index: 2;
}

.hero-video-ready>.hero-word {
    color: #fff;
    text-shadow: 0 6px 35px rgba(0, 0, 0, .27);
}

/* Do not place a solid background over the video before scrolling. */
.site-header:not(.scrolled) {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.site-header.scrolled {
    background: rgba(7, 13, 27, .91);
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
}

@media (max-width: 760px) {

    .hero.hero-video-ready,
    .hero.hero-v2.hero-video-ready {
        height: 100svh;
        min-height: 0;
    }

    .hero-video-ready .hero-topline {
        top: clamp(94px, 15svh, 120px);
    }

    .hero-video-ready .hero-mid {
        top: clamp(185px, 31svh, 280px);
        gap: clamp(17px, 3svh, 32px);
    }

    .hero-video-ready .hero-word {
        bottom: clamp(79px, 15svh, 125px);
    }

    .hero-video-ready .hero-bottom {
        bottom: clamp(16px, 3svh, 30px);
    }

    .hero-video-ready .hero-v2-top {
        top: clamp(90px, 14svh, 110px);
    }

    .hero-video-ready .hero-v2-inner {
        top: clamp(152px, 23svh, 185px);
        bottom: 65px;
    }
}

@media (max-width: 480px) and (max-height: 730px) {
    .hero-video-ready .hero-mid-left {
        display: none;
    }

    .hero-video-ready .hero-mid {
        top: 27svh;
    }

    .hero-video-ready .hero-intro p {
        font-size: 15px;
        line-height: 1.42;
    }

    .hero-video-ready .hero-word {
        bottom: 105px;
    }

    .hero-video-ready .hero-bottom {
        font-size: 8px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero-background-video {
        display: none;
    }
}

/* ------------------------------------------------------
  Official user-provided Infinix Design artwork + mellow
  cinematic hero. Keep pre-existing site motion intact.
------------------------------------------------------- */
.top-brand {
    width: clamp(192px, 18.2vw, 265px);
    height: 68px;
    max-width: 28vw;
}

.top-brand img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left center;
}

.loader-big {
    width: min(460px, 78vw);
    height: auto;
    margin-inline: auto;
    display: flex;
    justify-content: center;
    align-items: center;
}

.loader-big img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 55svh;
    object-fit: contain;
}

.menu-overlay-top .micro-label {
    display: block;
    flex-shrink: 0;
    width: min(252px, 65vw);
}

.menu-overlay-top .brand-menu-lockup {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.footer-links .brand-logo-footer {
    display: block;
    width: 210px;
    max-width: 100%;
    height: auto;
    object-fit: contain;
    margin-top: 16px;
}

.hero-video-ready>.hero-aura {
    opacity: .105;
    animation: infinixSoftDrift 24s ease-in-out infinite alternate;
}

.hero-video-ready>.hero-noise {
    opacity: .018;
}

.hero-video-ready>.hero-v2-glow {
    opacity: .09;
}

/* Soften the mixed-media layer so the moving network remains visible. */
.hero-video-layer::after {
    background: linear-gradient(180deg, rgba(4, 8, 19, .40) 0%, rgba(5, 9, 21, .27) 38%, rgba(4, 8, 18, .41) 74%, rgba(3, 7, 17, .71) 100%);
}

@keyframes infinixSoftDrift {
    from {
        transform: translate3d(-.35%, 0, 0) scale(1.01)
    }

    to {
        transform: translate3d(.35%, .3%, 0) scale(1.035)
    }
}

@media(max-width:1000px) {
    .top-brand {
        width: 220px;
        max-width: 48vw;
    }
}

@media(max-width:760px) {
    .top-brand {
        width: 189px;
        height: 56px;
        max-width: 50vw;
    }

    .loader-big {
        width: min(335px, 74vw)
    }

    .footer-links .brand-logo-footer {
        width: 185px;
    }
}

@media(max-width:390px) {
    .top-brand {
        width: 174px;
        max-width: 50vw;
    }
}

@media(prefers-reduced-motion:reduce) {
    .hero-video-ready>.hero-aura {
        animation: none;
    }
}

/* Prevent a few pixels of overflow from large display lettering on narrow phones. */
@media (max-width:480px) {

    html,
    body {
        overflow-x: clip;
    }
}