/* Reset and Base Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    /* Colors */
    --bg-light: #F0EFE9;
    --text-dark: #0B1E36;
    --loader-bg: #060E1E;
    --gradient-orange: #ff6b5a;
    --gradient-purple: #c084d1;
    --gradient-pink: #e8a5c4;
    --gradient-blue: #a8d8ea;
    --gradient-green: #9fd3eb;
    --gradient-yellow: #fff9c4;
    
    /* Typography */
    --font-sans: 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-serif: 'Instrument Serif', Georgia, serif;
}

html {
    background-color: var(--bg-light);
    overscroll-behavior-y: none;
    overflow-x: hidden;
    max-width: 100%;
}
body {
    font-family: var(--font-sans);
    font-weight: 300;
    font-size: 15pt;
    background-color: var(--bg-light);
    color: var(--text-dark);
    line-height: 1.4;
    overflow-x: hidden;
    position: relative;
    scrollbar-width: none;
    max-width: 100%;
    isolation: isolate;
}

body::-webkit-scrollbar, html::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none; 
}

body.is-loading {
    overflow: hidden;
}

.skip-link {
    position: absolute;
    top: -100px;
    left: 0.75rem;
    z-index: 10000;
    padding: 0.5rem 1rem;
    background: var(--text-dark);
    color: var(--bg-light);
    text-decoration: none;
    font-size: 0.9rem;
    border-radius: 4px;
    transition: top 0.2s ease;
}
.skip-link:focus {
    top: 0.75rem;
}


.blinds-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: url("../assets/blinds.jpg") no-repeat center center;
    background-size: contain;
    background-position: 100% 50%;
    z-index: 10; 
    pointer-events: none;
    mix-blend-mode: overlay;
    -webkit-mix-blend-mode: overlay;
    opacity: .4;
    transform: translateZ(0);
    will-change: transform;
}

/* iOS Safari fallback: fixed + blend mode can fail */
@supports (-webkit-touch-callout: none) {
    .blinds-overlay {
        mix-blend-mode: normal;
        -webkit-mix-blend-mode: normal;
        opacity: 0;
    }
}

/* Cursor-following green dot (behind cursor), grows 2x on click */
.cursor-dot {
    position: fixed;
    width: 8px;
    height: 8px;
    left: 0;
    top: 0;
    background: var(--text-dark);
    border-radius: 50%;
    pointer-events: none;
    z-index: 9999;
    --dot-scale: 1;
    transform: translate3d(-50%, -50%, 0) scale(var(--dot-scale));
    transition: transform 0.15s ease-out, background 0.2s ease, box-shadow 0.2s ease;
    display: grid;
    place-items: center;
    will-change: transform, width, height;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}
.cursor-dot.is-pressed {
    --dot-scale: 2;
}

/* Work hover: turn dot into "View work" cursor */
.cursor-dot.is-work-hover {
    --dot-scale: 14;
}
.cursor-dot.is-work-hover.is-pressed {
    --dot-scale: 15;
}

/* Safari fix: avoid large transform scaling blur by animating size instead */
.cursor-dot.is-safari {
    transform: translate3d(-50%, -50%, 0);
    transition: width 0.15s ease-out, height 0.15s ease-out, background 0.2s ease, box-shadow 0.2s ease;
}
.cursor-dot.is-safari.is-pressed {
    width: 16px;
    height: 16px;
}
.cursor-dot.is-safari.is-work-hover {
    width: 112px;
    height: 112px;
}
.cursor-dot.is-safari.is-work-hover.is-pressed {
    width: 120px;
    height: 120px;
}

.cursor-dot__inner {
    position: absolute;
    left:0;
    top:0;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: scale(.2);
    transition: opacity 0.15s ease, transform 0.15s ease;
    text-align: center;
    gap: 0px;
    user-select: none;
    color: var(--text-dark);
    line-height: 1;
}
.cursor-dot.is-work-hover .cursor-dot__inner {
    opacity: 1;
    transform: scale(.1);
}

.cursor-dot.is-safari.is-work-hover .cursor-dot__inner {
    transform: scale(1.4);
}
.cursor-dot__arrow {
    display: block;
    width: 25px;
    height: 25px;
    min-height: 25px;
    flex: 0 0 auto;
}
.cursor-dot__label {
    color: var(--bg-light) !important;
    font-family: var(--font-serif);
    font-weight: 300;
    display: block;
    margin-top: 0rem;
    font-size: 0.8rem;
    letter-spacing: 0.02em;
    width: 80px;
}

.loader {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    max-width: 100vw;
    margin: 0 auto;
    background-color: var(--loader-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
    will-change: transform;
    box-sizing: border-box;
}

/* Loader transition states */
.loader.loader--hidden {
    transform: translateY(100%);
}

.loader.loader--transitioning {
    pointer-events: none;
}

/* During page transitions only: solid color, no logo or text */
.loader.loader--transitioning .loader-inner {
    visibility: hidden;
}

/* Page slide transition wrapper (used only during transition) */
.page-slide-wrapper {
    position: fixed;
    inset: 0;
    z-index: 0;
    overflow: auto;
    background-color: var(--bg-light);
    -webkit-overflow-scrolling: touch;
}

.loader-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}

.loader-text {
    font-family: var(--font-serif);
    font-size: 1.6rem;
    color: var(--bg-light) !important;
    margin-top: 1rem;
    border-color: var(--bg-light) !important;
    animation: fade-up 1.5s ease-in-out forwards;
    animation-iteration-count: 1;
   
}
@keyframes fade-up {
    from {
        opacity: 0;
        transform: translateY(100%);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
.loader-logo {
    transform: scale(.7);
    position: relative;
    width: clamp(180px, 35vw, 360px);
    aspect-ratio: 128 / 38;
}

.loader-logo-outline {
    width: 100%;
    height: 100%;
    display: block;
    opacity: 0.35;
    filter: brightness(4) saturate(0);
}

.loader-logo-fill {
    position: absolute;
    inset: 0;
    -webkit-mask-image: url("../assets/logo.svg");
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-mode: alpha;
    mask-image: url("../assets/logo.svg");
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    mask-mode: alpha;
    z-index: 2;
}

.loader-logo-fill-bar {
    position: absolute;
    inset: 0;
    background: radial-gradient(85.09% 85.09% at 77.49% 19.47%, #DAC6EB 15.38%, #EFE9D7 90.87%); 
    background-size: 200%;
    background-repeat: no-repeat;
    background-position: center;
    transform: scaleX(0);
    transform-origin: left center;
}

body.is-loading .header,
body.is-loading .hero,
body.is-loading .work-page,
body.is-loading .about-page,
body.is-loading .case-study-page {
    opacity: 0;
}

/* Vertical Grid Lines Background */
body::before {
    content: '';
    position: fixed;
    top: 0; 
    left: 0;
    width: 100%;
    height: 100%;
    background-image:
    linear-gradient(to right,
      transparent 50px,
  
      rgba(11, 30, 54, 0.05) 50px,
      rgba(11, 30, 54, 0.05) calc(50px + 1px),
      transparent calc(50px + 1px),
  
      transparent calc(50px + ((100vw - 100px) / 5) - 1px),
      rgba(11, 30, 54, 0.08) calc(50px + ((100vw - 100px) / 5) - 1px),
      rgba(11, 30, 54, 0.08) calc(50px + ((100vw - 100px) / 5)),
      transparent calc(50px + ((100vw - 100px) / 5)),
  
      transparent calc(50px + ((100vw - 100px) / 5) * 2 - 1px),
      rgba(11, 30, 54, 0.08) calc(50px + ((100vw - 100px) / 5) * 2 - 1px),
      rgba(11, 30, 54, 0.08) calc(50px + ((100vw - 100px) / 5) * 2),
      transparent calc(50px + ((100vw - 100px) / 5) * 2),
  
      transparent calc(50px + ((100vw - 100px) / 5) * 3 - 1px),
      rgba(11, 30, 54, 0.08) calc(50px + ((100vw - 100px) / 5) * 3 - 1px),
      rgba(11, 30, 54, 0.08) calc(50px + ((100vw - 100px) / 5) * 3),
      transparent calc(50px + ((100vw - 100px) / 5) * 3),
  
      transparent calc(50px + ((100vw - 100px) / 5) * 4 - 1px),
      rgba(11, 30, 54, 0.08) calc(50px + ((100vw - 100px) / 5) * 4 - 1px),
      rgba(11, 30, 54, 0.08) calc(50px + ((100vw - 100px) / 5) * 4),
      transparent calc(50px + ((100vw - 100px) / 5) * 4),
  
      transparent calc(100vw - 50px - 1px),
      rgba(11, 30, 54, 0.08) calc(100vw - 50px - 1px),
      rgba(11, 30, 54, 0.08) calc(100vw - 50px),
      transparent calc(100vw - 50px)
    ); 
  
    pointer-events: none;
    z-index: 0;
}

main {
    position: relative;
    z-index: auto;
}

/* Header Styles */
.header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    max-width: 100vw;
    z-index: 1000;
    padding: 50px 0;
    background-color: transparent;
    box-sizing: border-box;
}

#work-page .header,
#about-page .header,
#case-study-page .header {
    position: absolute;
}



#about-page .brand {
    position: static;
    display: inline-flex;
}

#work-page .navigation,
#about-page .navigation,
#case-study-page .navigation {
    position: fixed;
    top: 50px;
    right: 50px;
    z-index: 1000;
}
/*.header::before {
    content: "";
    position: absolute;
    z-index: -1;
    backdrop-filter: blur(20px);
    mask-image: linear-gradient(rgb(0, 0, 0) 25%, rgba(0, 0, 0, 0) 100%);
    inset: 0px;
    transition: 0.4s ease-in;
}*/

.header-container {
    position: relative;
    align-items: flex-start !important;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0 50px;
    box-sizing: border-box;
}

.brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.brand-logo {
    height: 2.5rem;
    width: auto;
    display: block;
}

.header-center {
z-index: 5;
position: absolute;
top: 0px;
width: 100%;
padding: 50px;
display: flex;
}

.header-tag {
    margin-left: calc(((100vw - 100px)/5) * 2 );
    font-weight: 400;
    font-size: .85rem;
    color: var(--text-dark);
}


.header-location {
    font-weight: 400;
    font-size: .85rem;
    color: var(--text-dark);
    position: absolute;
    left: calc(((100vw - 100px)/5) * 3 + 50px );
}

.navigation {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5rem;
}

.nav-link {
    color: var(--text-dark);
    text-decoration: none;
    font-weight: 400;
    font-size: 0.95rem;
    transition: opacity 0.3s ease;
}

.nav-link:hover {
    opacity: 0.7;
}

.nav-link--active {
    font-weight: 500;
    position: relative;
}

.nav-link--active::after {
    content: '';
    position: absolute;
    left: -0.5rem;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
    height: 4px;
    background-color: var(--text-dark);
    border-radius: 50%;
}

/* Hero Section */
.hero {
    position: relative;
    min-height: 100svh;
    display: flex;
    flex-direction: column; 
    align-items: center;
    justify-content: center;
    padding: 0 50px;
    overflow: visible;
}

.hero-background {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 1;
    pointer-events: none;
    overflow: visible;
    perspective: 1200px;
    perspective-origin: center center;
    margin: 0;
    padding: 0;
    /* Ensure it doesn't take up layout space */
    position: fixed !important;
}



/* Shape Containers */
.shape {
    position: absolute;
    will-change: transform;
    pointer-events: none;
    transform-style: preserve-3d;
    perspective: 1000px;
}

.shape-label{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: var(--font-serif);
    text-align: center;
    display: block;
    font-size: clamp(2rem, 4vw, 3rem);
    color: #ffffff;
    pointer-events: none;
    white-space: nowrap;
    z-index: 2;
    text-shadow: 0 0 30px #060e1e88;
    line-height: 3rem;
}

.shape-circle-left .shape-label {
    transform: translate(-60%, -50%);
    line-height: 3rem;
}

.shape-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    transform-style: preserve-3d;
}

/* Left circle */
.shape-circle-left {
    width: 600px;
    height: 600px;
    z-index: 2;
}

.shape-astrix {
    width: 80px;
    height: 80px;
    z-index: 3;
    -webkit-mask-image: url("../assets/shape-astrix.png");
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-mode: alpha;
    mask-image: url("../assets/shape-astrix.png");
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    mask-mode: alpha;
}

.shape-astrix-texture {
    transform-origin: 50% 50%;
}

/* Starburst - positioned via GSAP */
.shape-starburst {
    width: 250px;
    height: 250px;
    z-index: 3;
}

.shape-starburst-2 {
    width: 250px;
    height: 250px;
    z-index: 3;
}

.shape-M {
    width: 150px;
    height: 150px;
    z-index: 3;
}
/* Right circle */
.shape-circle-right {
    width: 600px;
    height: 600px;
    z-index: 2;
}

/* Leaf shape - positioned via GSAP */
.shape-leaf {
    width: 350px;
    height: 450px;
    z-index: 3;
}

/* Geometric pattern - positioned via GSAP */
.shape-geometric {          
    width: 180px;
    height: 180px;
    z-index: 3;
}

/* Bottom circle */
.shape-circle-bottom {
    width: 600px;
    height: 600px;
    z-index: 2;
}
/* Hero Content */
.hero-content {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    z-index: 10;
    text-align: center;
    width: 100%;
   
    margin: 0 auto;
    will-change: transform, filter;
    transform: translateZ(0);
}

.hero-tag {
    margin-bottom: 2rem;
}

.hero .pin-spacer {
    position: absolute !important;
}

.pill-button, .case-study-hero__button {
    display: inline;
    width: fit-content;
    text-decoration: none;
    padding: 0.3rem 1rem 0.2rem 1rem;
    border: 1px solid var(--text-dark);
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 400;
    color: var(--text-dark);
    background-color: transparent;
    font-family: var(--font-sans);
    transition: .3s ease;
}
.case-study-hero__button {
    margin-top: 20px;
}
.case-study-hero__button:hover{
    background-color: var(--text-dark) !important;
    color: var(--bg-light) !important;
}

.hero-headline {
    font-family: var(--font-serif);
    font-size: 6.5vw;
    font-weight: 400;
    line-height: 1;
    color: var(--text-dark);
    margin: 0;
}

.hero-title-img::before {
    opacity: 0;
    display:inline-block;
    width:75px;
    font-size: 1rem;
    font-weight: 400;
    color: var(--text-dark);
    background-color: transparent;
    font-family: var(--font-sans);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: opacity 0.3s ease;
}
.hero-title-img#selfie::before{
    content: "About me";
}
.hero-title-img#website::before{
    content: "Work";
}
.hero-title-img:hover::before{
    opacity: 1;
}
@keyframes shrink {
    from {
        width: 0px;
        margin-right:0vw;
    }
    to {
        width: 6.5vw;     
        margin-right:.7vw;
    }
}
.hero-title-img {
    position: relative;
    animation: shrink 1.2s ease forwards;
    animation-delay: 3.5s;
    width: 0px;
    height: 4.5vw;
    border-radius: 40px;
    object-fit: contain;
    display: inline-block;
    background-blend-mode: lighten;
    background-image: none;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    transition: all 0.5s ease !important;
}


.hero-title-img#selfie {
    background-color: #C1E4F700;
    background-image: url("../assets/title-selfie.jpg");
}

.hero-title-img#website {
    background-color: #DAC6EB00;    
background-image: url("../assets/title-website.jpg");
}

.hero-title-img:hover{
    background-color: #C1E4F7 !important;
    width: 85px !important;
   
}
/* Section Styles */
.section {
    min-height: 100vh;
    padding: 5rem 3rem;
    position: relative;
    z-index: 5;
    overflow: visible;
}
.section#expertise{
    min-height: 270vh;
}
.section#work{
    padding: 0;
    z-index: 99;
    margin-top:-50vh;
    min-height: 0;
}

.about__content {
    display: flex;
    flex-direction: column;
    gap: 10vh;
}

.about__intro {
    padding-left: calc((100vw - 100px) / 5);
    width: calc(((100vw - 100px) / 5) * 5);
}

.about__intro h2 {
    margin-bottom: 1.5rem;
}

.about__intro p {
    width: 100%;
    margin-bottom: 20px;
}

.about__list {
    display: flex;
    flex-direction: column;
    gap: 10vh;
}

.about__item {
    display: flex;
    flex-direction: row;
    align-items: start;
}

.about__badge {
    font-size: 1.1rem;
    letter-spacing: 0.02em;
    width: calc((100vw - 100px) / 5);
}


.about__icon {
    position: relative;
    width: 160px;
    height: 160px;
    display: grid;
    place-items: center;
    transform: translateY(-30px);
}

.about__icon-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.icon-1 .about__icon-bg{
    transform: rotate(50deg);
}

.icon-1 .about__icon-svg{
    transform: translateX(-5px);
}
.icon-2 .about__icon-bg{
    transform: rotate(-120deg);
}

.icon-3 .about__icon-bg{
    transform: rotate(10deg);
}

.about__icon-svg {
    position: relative;
    width: 56px;
    height: 56px;
}
.about__title-container{
    width: calc(((100vw - 100px) / 5) * 2);
    display: flex;
    flex-direction: row;
    gap: 20px;
    transform: translateX(-75px);
}
.about__text h3 {
    font-family: var(--font-serif);
    font-size: 2rem;
    font-weight: 300;
    margin-bottom: 0.6rem;
}

.about__text p {
    max-width: 350px;    
}

.about__desc{
    width: calc(((100vw - 100px) / 5) * 1.5);
}
.about__desc-list{
    display: flex;
    flex-direction: row;
    gap: 10px;
    margin-top: 20px;
}
.about__desc-list div{
    border: 1px solid var(--text-dark);
    border-radius: 50px;
    padding: 2px 10px;
    font-size: 0.9rem;
    font-weight: 400;
}
#work .section-intro{
    width: 100%;
    padding: 0 calc(50px + ((100vw - 100px) / 5));
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    gap: 0;
}
#work .section-intro h2{
    width: calc((100vw - 100px) / 5);
}
#work .section-intro div{
    width: calc(((100vw - 100px) / 5) * 2);
}
#work .section-intro div p{
    margin-bottom: 20px;
}

.section-content {
    margin: 0 auto;
}

body.is-work-cursor-active #work,
body.is-work-cursor-active #work * {
    cursor: none;
}

.work__cursor {
    position: fixed;
    top: 0;
    left: 0;
    transform: translate(-50%, -50%);
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
    z-index: 20;
    text-align: center;
}

.work__cursor.is-active {
    opacity: 1;
    visibility: visible;
}

.work__cursor-circle {
    width: 80px;
    height: 80px;
    gap:0;
    border-radius: 50%;
    background: rgba(11, 30, 54, 0.05);
    display: flex;
    flex-direction: column;
    padding:12px;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(20px);
}

.work__cursor-arrow {
    display: block;
    width: 25px;
    height: 25px;
    fill:none;
}

.work__cursor-label {
    display: block;
    margin-top: 0rem;
    font-size: 0.8rem;
    letter-spacing: 0.02em;
    color: var(--text-dark);
}

.work__laptop {
    position: relative;
    width: 90vw;
    aspect-ratio: 16 / 10;
    margin: 0 auto;
    display: block;
    --screen-x: 20.5%;
    --screen-y: 16.4%;
    --screen-w: 59.3%;
    --screen-h: 58.6%;
}

.work__laptop-frame,
.work__laptop-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
}

.work__laptop-frame {
    object-fit: contain;
}

.work__laptop-video {
    left: var(--screen-x);
    top: var(--screen-y);
    width: var(--screen-w);
    height: var(--screen-h);
    object-fit: cover;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: perspective(1200px) rotateX(4.5deg);
    transform-origin: center;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}

.work__laptop-video.is-active {
    opacity: 1;
    visibility: visible;
}

.section h2, #contact h2 {
    font-family: var(--font-serif);
    font-size: 4.5vw !important;
    color: var(--text-dark);
    font-weight: 200;
    line-height: 1.1;
}

.process {
    padding: 25vh 0;
}

.process__content {
    display: flex;
    flex-direction: column;
}

.process__headline {
    text-align: center;
    max-width: 60vw;
    margin: 0 auto;
}

.process__stack {
    display: grid;
    grid-template-columns: minmax(260px, 560px);
    gap: 3rem;
    align-items: center;
    justify-content: center;
}

.process__disks {
    position: relative;
    width: 100%;
    max-width: 900px;
    height: 340px;
    margin: 0 auto;
    transform: translateY(50%);
}

.process__disk {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
}

.process__disk-graphic {
    width: clamp(300px, 28vw, 420px);
    height: clamp(180px, 22vw, 240px);
    border-radius: 50%;
    overflow: hidden;
    display: grid;
    place-items: center;
    transform: perspective(900px) rotateX(30deg) translateX(-50%); 
    transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    will-change: transform;
    transform-origin: center;
    position: relative;
    left: 50%;
}

.process__disk-graphic svg {
    width: 100%;
    height: 100%;
    display: block;
    transform: none;
}

/* Fallback gradient fills for browsers that misrender SVG foreignObject (iOS Safari) */
.process__disk[data-disk="4"] .process__disk-graphic .disk-gradient{
    background: conic-gradient(from 90deg, rgba(193, 228, 247, 1) 0deg, rgba(218, 198, 235, 1) 360deg);
}
.process__disk[data-disk="3"] .process__disk-graphic .disk-gradient{
    background: conic-gradient(from 0deg, rgba(147, 221, 137, 1) 0deg, rgba(252, 106, 0, 1) 360deg);
}
.process__disk[data-disk="2"] .process__disk-graphic .disk-gradient{
    background: conic-gradient(from 180deg, rgba(218, 198, 235, 1) 0deg, rgba(147, 221, 137, 1) 360deg);
}
.process__disk[data-disk="1"] .process__disk-graphic .disk-gradient{
    background: conic-gradient(from 90deg, rgba(244, 103, 50, 1) 0deg, rgba(218, 198, 235, 1) 360deg);
}

/* Safari: avoid SVG foreignObject conic-gradient offset by drawing gradients in CSS */
body.is-safari .process__disk-graphic{
    transform: perspective(900px) rotateX(70deg) translateX(-50%); 
}
body.is-safari .process__disk-graphic svg {
    display: none;
}
body.is-safari .process__disk-graphic::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
}
body.is-safari .process__disk[data-disk="4"] .process__disk-graphic::before {
    background: conic-gradient(from 90deg at 50% 50%, rgba(193, 228, 247, 1) 0deg, rgba(218, 198, 235, 1) 360deg);
}
body.is-safari .process__disk[data-disk="3"] .process__disk-graphic::before {
    background: conic-gradient(from 0deg at 50% 50%, rgba(147, 221, 137, 1) 0deg, rgba(252, 106, 0, 1) 360deg);
}
body.is-safari .process__disk[data-disk="2"] .process__disk-graphic::before {
    background: conic-gradient(from 180deg at 50% 50%, rgba(218, 198, 235, 1) 0deg, rgba(147, 221, 137, 1) 360deg);
}
body.is-safari .process__disk[data-disk="1"] .process__disk-graphic::before {
    background: conic-gradient(from 90deg at 50% 50%, rgba(244, 103, 50, 1) 0deg, rgba(218, 198, 235, 1) 360deg);
}

@supports (-webkit-touch-callout: none) {
    .process__disk-graphic svg {
        display: none;
    }

    /* iOS Safari: prevent double-centering from parent + inner translateX(-50%) */
    body.is-safari .process__disk-graphic{
        left: 0;
        transform: perspective(900px) rotateX(70deg);
    }

    /* iOS Safari: ensure labels sit above the gradient layer */
    body.is-safari .process__disk-graphic{
        z-index: 1;
    }
    body.is-safari .process__disk-graphic::before{
        z-index: 0;
    }
    body.is-safari .process__disk-label{
        z-index: 3;
    }
    body.is-safari .process__disk-label-headline{
        position: relative;
        z-index: 3;
    }
}

.process__disk-label {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(0, -50%);
    margin-left: calc(clamp(300px, 28vw, 420px) / 2 + 2rem);
    min-width: 400px;
    text-align: left;
}
.process__disk-label-headline {
    font-family: var(--font-serif);
    font-size: 1.6rem;
    font-weight: 400;
    color: var(--text-dark);
}

.process__disk-label-text {
    font-size: 1rem;
}
.process__label h3 {
    font-family: var(--font-serif);
    font-size: 1.6rem;
    font-weight: 400;
    margin-bottom: 0.4rem;
    color: var(--text-dark);
}

.process__label p {
    font-size: 1rem;
    color: var(--text-dark);
    line-height: 1.4;
}

.section--about-extra {
    background-color: #ff0000;
    color: #ffffff;
}

.section--about-extra h2,
.section--about-extra p {
    color: inherit;
}

/* Hidden on desktop; displayed only inside the mobile breakpoint below */
.expertise-mobile-video {
    display: none;
}

.expertise-ring {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: clamp(500px, 60vh, 600px);
    height: clamp(500px, 60vh, 600px);
    border: 2px solid rgba(11, 30, 54, 0.35);
    border-radius: 50%;
    opacity: 0;
    z-index: 0;
    pointer-events: none;
    transition: opacity 0.4s ease;
}

.expertise-center-text {
    position: absolute;
    top: 50%;
    left: 50%;
    text-align: center;
    transform: translate(-50%, -50%);
    font-family: var(--font-serif);
    font-size:  2rem;
    line-height: 1.2;
    color: var(--text-dark);
    z-index: 3;
    pointer-events: none;
    font-weight: 400;
}
#contact {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 80vh;
}
#contact .section-content {
    max-width: 30vw;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 5vh;
    align-items: center;
    justify-content: center;
}
.contact__info a{
    color: var(--text-dark);
}
.contact__links{
    display: flex;
    flex-direction: row;
    gap: 20px;
}
.contact__links a{
    border: 1px solid var(--text-dark);
    border-radius: 50px;
    padding: 2px 10px;
    font-size: 0.9rem;
    font-weight: 400;
    text-decoration: none;
    transition: all 0.3s ease;
    color: var(--text-dark);
}
.contact__links a:hover{
    background-color: var(--bg-light);
    color: var(--text-dark) !important;
}
.footer{
    padding: 50px;
    display: flex;
    justify-content: space-between;
    align-items: end;
}
.footer p{
    font-size: 10pt !important;
}

/* ============================================
   RESPONSIVE: 2 BREAKPOINTS — 1200px, 768px
   ============================================ */

/* ============================================
   WORK PAGE STYLES
   ============================================ */

.work-page {
    min-height: 100vh;
}

/* Work Intro Section */
.work-intro {
    display: flex;
    width: 100%;
    text-align: center;
}

.work-hero-wrapper {
    position: relative;
}

.work-page .about {
    margin-top: -50vh;
}

/* ============================================
   CASE STUDY PAGE STYLES
   ============================================ */

.case-study-page {
    min-height: 100vh;
    position: relative;
}

/* Case study page: single paragraph style for all <p> */
#case-study-page p {
    font-family: var(--font-sans);
    font-size: 15pt;
    font-weight: 300;
    line-height: 1.6;
    color: var(--text-dark);
    margin: 0;
}

/* Case study page: single h2 style for all section headings */
#case-study-page h2 {
    font-family: var(--font-serif);
    font-size: 2.6vw;
    color: var(--text-dark);
    font-weight: 200;
    margin: 0;
}

/* Hero uses same grid as body background: 50px repeat(5, 1fr) 50px */
.case-study-hero {
    display: grid;
    grid-template-columns: 50px repeat(5, 1fr) 50px;
    gap: 0;
    padding: 8rem 0 4rem;
    align-items: start;
}

.case-study-hero__grid {
    grid-column: 2 / 7;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    margin-bottom: 4rem;
    padding: 8vh 0;
}

.case-study-hero__content {
    grid-column: 1 / 4;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.case-study-hero__tag {
    display: inline-block;
    align-self: flex-start;
    font-family: var(--font-sans);
    font-size: 0.9rem;
    font-weight: 400;
    color: var(--text-dark);
    background-color: transparent;
}

.case-study-hero__title {
    font-family: var(--font-serif);
    font-size: 5vw;
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--text-dark);
    margin: 0;
}
#case-study-page p.case-study-hero__description{
    font-family: var(--font-serif);
    font-size: 2vw;
    line-height: 1.2;
    color: var(--text-dark);
    font-weight: 200;
    margin: 0;
}

.case-study-hero__meta {
    grid-column: 4 / 6;
    align-self: center;
}

.case-study-hero__meta-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.case-study-hero__meta-row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.5rem 1.5rem;
    align-items: baseline;
}

.case-study-hero__meta-label {
    font-family: var(--font-sans);
    font-size: 15pt;;
    font-weight: 400;
    color: var(--text-dark);
    margin: 0;
    width: 100px;
}

.case-study-hero__meta-value {
    font-family: var(--font-sans);
    font-size: 15pt;
    font-weight: 300;
    color: var(--text-dark);
    margin: 0;
}

.case-study-hero__media {
    grid-column: 2 / 7;
    position: relative;
    width: 100%;
    border-radius: 24px;
    overflow: hidden;
    background-color: var(--bg-light);
}

.case-study-hero__video {
    width: 102%;
    height: 100vh;
    display: block;
    object-fit: cover;
    object-position: center;
}

/* Hannah Macready case study: image gallery under hero */
.case-study-gallery {
    display: grid;
    grid-template-columns: 50px repeat(5, 1fr) 50px;
    gap: 50px;
    align-items: start;
    overflow: visible;
    padding: 20vh 0;
}

.case-study-gallery__item {
    border-radius: 16px;
    overflow: hidden;
    background-color: #d6d6d6;
    border: .5px solid var(--loader-bg);
    height: 100%
}

.case-study-gallery__item img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: top;
}

/* Top row: 1 and 3 bleed off edges by ~half width; 2 spans two columns */
.case-study-gallery__item--1 {
    grid-column: 1 / 3;
    grid-row: 1;
    margin-left: -144%;
}

.case-study-gallery__item--2 {
    grid-column: 3 / 6;
    grid-row: 1;
}

.case-study-gallery__item--3 {
    grid-column: 6 / 8;
    grid-row: 1;
    margin-right: -144%;
}

/* Bottom row: last 2 images span columns 2–6 (inner 1–5) together */
.case-study-gallery__item--4 {
    grid-column: 1 / 4;
    margin-right: -22.5%;
    grid-row: 2;
    margin-left: 50px;
}

.case-study-gallery__item--5 {
    grid-column: 5 / 8;
    margin-left: -22.5%;
    margin-right: 50px;
    grid-row: 2;
}

.portfolio-video{
    display:flex;
    justify-content: center;
    align-items: center;
    overflow: visible;
    padding: 20vh 50px;
    background-color: #D0DFE8;
    border-top: 1px solid var(--loader-bg);
    border-bottom: 1px solid var(--loader-bg);
}
.portfolio-video__video{
    max-width: 1200px;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border: .5px solid var(--loader-bg);
    border-radius: 16px;
}
.case-study-mobile-gallery{
    display: flex;
    justify-content: center;
    gap: 50px;
    align-items: start;
    overflow: visible;
    padding: 20vh 0;
    background-color: #E1F2FA;
    border-top: 1px solid var(--loader-bg);
    border-bottom: 1px solid var(--loader-bg);
}
.pabc .case-study-mobile-gallery {
    background:none;
    border-top: none;
    border-bottom: none;
    padding-bottom: 0;
}
.charlie-holley .case-study-mobile-gallery {
    background-color: #FFCBF3;
}
.case-study-mobile-gallery figure {
    object-fit: cover;
    aspect-ratio: 1 / 2;
    border-radius: 16px;
    overflow: hidden;
    background-color: #d6d6d6;
    border: .5px solid var(--loader-bg);
}
.case-study-mobile-gallery figure img{
    object-fit: cover;
    object-position: top center;
    width: 100%;
}

.case-study-mobile-gallery__item--1{
    margin-left: -5%;
}
.case-study-mobile-gallery__item--5{
    margin-right: -5%;
}

.case-study-gallery-2{
    display: grid;
    grid-template-columns: 50px repeat(5, 1fr) 50px;
    row-gap: 10vh;
    align-items: start;
    overflow: visible;
    padding: 20vh 0;
}
.case-study-gallery-2 figure {
    border-radius: 16px;
    overflow: hidden;
    background-color: #d6d6d6;
    border: .5px solid var(--loader-bg);
    height: 100%
}
.case-study-gallery-2 figure img{
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: top;
}
.case-study-gallery-2__item--1{
    grid-column: 2 / 5;
    grid-row: 1;
}
.case-study-gallery-2__item--2{
    grid-column: 4 / 7;
    grid-row: 2;
}
.case-study-gallery-2__item--3{
    grid-column: 3 / 6;
    grid-row: 3;
}

/* Case Study Context: Client + The problem (grid-aligned) */
.case-study-context {
    display: grid;
    grid-template-columns: 50px repeat(5, 1fr) 50px;
    gap: 0;
    padding: 5rem 0 0;
    align-items: start;
}

.case-study-context__grid {
    grid-column: 2 / 7;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    grid-template-rows: auto auto auto;
    row-gap: 8rem;
}

.case-study-context__client {
    grid-column: 2 / 4;
    padding-right:50px;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.case-study-context__label {
    margin: 0;
}

.case-study-context__highlight {
    color: var(--text-dark);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.case-study-context__client-image {
    grid-column: 4 / 4;
    grid-row: 1;
    position: relative;
    align-self: start;
    overflow: hidden;
    min-width: 0;
}

.case-study-context__client-image img {
    width: 100%;
    max-width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
    object-fit: cover;
}

.case-study-context__problem-text {
    grid-column: 3 / 5;
    grid-row: 2;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.case-study-context__label--problem {
    grid-column: 2 / 3;
    grid-row: 2;
}

.case-study-context__problem-lead {
    font-style: italic;
}

/* Full-width Vimeo section (autoplay, loop, no player UI) */
.case-study-vimeo {
    width: 100%;
    margin: 0;
    display: grid;
    grid-template-columns: 50px repeat(5, 1fr) 50px;
    gap: 0;
    padding: 0 0 8rem;
    align-items: start;
}

.case-study-vimeo__wrap {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%; /* 16:9 */
    overflow: hidden;
    grid-column: 2 / 7;
    border-radius: 24px;
}

.case-study-vimeo__wrap iframe {
    position: absolute;
    left: 0;
    top: -3%;
    width: 105%;
    height: 105%;
    border: none;
}

/* Case Study Evolution: Design evolution + phase timeline */
.case-study-evolution {
    display: grid;
    grid-template-columns: 50px repeat(5, 1fr) 50px;
    gap: 0;
    padding: 0;
    align-items: start;
}

.case-study-evolution__grid {
    grid-column: 2 / 7;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    grid-template-rows: auto auto;
    row-gap: 2.5rem;
}

.case-study-evolution__heading {
    grid-column: 1 / 6;
    grid-row: 1;
}

.case-study-evolution__intro {
    grid-column: 2 / 4;
    grid-row: 1;
}

.case-study-evolution__timeline {
    grid-column: 2 / 2;
    grid-row: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    position: relative;
    padding: 0.25rem 0;
}

.case-study-evolution__timeline::before {
    content: '';
    position: absolute;
    left: 0%;
    top: 1.5rem;
    bottom: 1.5rem;
    width: 1px;
    background-color: var(--text-dark);
    transform: translateX(-50%);
    z-index: 0;
}

.case-study-evolution__phase {
    cursor:pointer !important;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: none;
    border: none;
    padding: 0.5rem 0;
    font-family: inherit;
    text-align: left;
    position: relative;
    z-index: 1;
    color: var(--text-dark);
    margin-left: -6px;
}

.case-study-evolution__phase:hover .case-study-evolution__dot {
    border-color: var(--text-dark);
}

.case-study-evolution__dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid var(--text-dark);
    background-color: var(--bg-light);
    flex-shrink: 0;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

.case-study-evolution__phase.is-active .case-study-evolution__dot {
    background-color: var(--text-dark);
    border-color: var(--text-dark);
}

.case-study-evolution__phase-label {
    font-size: clamp(0.85rem, 1.1vw, 0.95rem);
    font-weight: 300;
}

.case-study-evolution__content {
    grid-column: 3 / 4;
    grid-row: 2;
    position: relative;
    min-height: 8rem;
    margin-top: 10px;
}
.case-study-evolution__phase-date{
    font-size: 12pt !important;
    font-style: italic;
    opacity: 0.7;
}
.case-study-evolution__phase-content {
    position: absolute;
    left: 0px;
    top: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.35s ease, visibility 0.35s ease;
}

.case-study-evolution__phase-content.is-visible {
    position: absolute;
    left: 0px;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.case-study-evolution__phase-title {
    font-family: var(--font-sans);
    font-size: clamp(1.05rem, 1.35vw, 1.2rem);
    font-weight: 600;
    color: var(--text-dark);
    margin: 0;
}

.case-study-evolution__phase-content p + p {
    margin-top: 0.5rem;
}

.case-study-evolution__media {
    grid-column: 1 / 8;
    margin-top: 3rem;
    position: relative;
    overflow: hidden;
}

.case-study-evolution__ipad {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
    position: relative;
    z-index: 0;
}

.MMT-video {
    position: absolute;
    left: 24.4%;
    top: 1.8%;
    width: 44.9%;
    height: 57.5%;
    object-fit: fill;
    z-index: 1;
    transform-origin: 55% 50%;
    transform: perspective(4051px) rotateX(22deg) rotateY(28deg) rotateZ(-15deg) skew(2deg) rotate(-1deg);
    border-radius: 8px;
    opacity: 1;
}

.MMT-video--hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.MMT-showcase-section, .MMT-showcase-section2 {
    display: grid;
    grid-template-columns: 50px repeat(5, 1fr) 50px;
    gap: 0rem;
    row-gap: 8rem;
    padding: 0;
    margin-top:-4rem;
    align-items: start;
}
.MMT-showcase-section2{
    margin-top:8rem;
}
.photography-caption {
    grid-column: 6 / 6;
    text-align: right;
}
.illustrations-caption {
    grid-column: 2 / 2;
}
.MMT-showcase {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
    position: relative;
    z-index: 0;
    border-radius: 10px;    
    box-shadow: 0 4px 80px 0 rgba(11, 30, 54, 0.10);
}
.MMT-showcase-video-1 {
    grid-column: 2 / 6;
}
.MMT-showcase-video-2 {
    grid-column: 3 / 7;
}

.product-feature{
    margin-top:8rem;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 8rem 0;
 background-image:  url('../assets/MMT/wood-bkg.jpg');
 background-size: cover;
 background-position: center;
 background-repeat: no-repeat;
}
.product-feature-video {
    width:100%;
    max-width: 1200px;
}

.UX-content {
    display: grid;
    grid-template-columns: 50px repeat(5, 1fr) 50px;
    align-items: start;
    gap: 0;
    padding: 8rem 0 0;
}

.UX-content__grid {
    grid-column: 2 / 7;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    align-items: start;
}

.UX-content__title {
    grid-column: 1 / 2;
}

.UX-content__text {
    grid-column: 2 / 4;
   
}

.UX-content__userPersonas {
    margin-top: 6rem;
    grid-column: 2 / 7;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0 2rem;
    align-items: start;
}
.UX-content__userPersonas img {
    grid-column: 2 / 6;
    }
.UX-content__sitemap {
    margin-top: 8rem;
    grid-column: 2 / 7;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0 2rem;
    align-items: start;
}
.UX-content__sitemap img {
    grid-column: 2 / 6;
    }
.UX-analysis {
    margin-top: 8rem;
    grid-column: 2 / 7;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0 2rem;
    align-items: start;
}
.UX-analysis img {
    grid-column: 2 / 6;
    }

.collaboration {
    margin-top: 8rem;
    grid-column: 2 / 7;
    display: grid;
    grid-template-columns: 50px repeat(5, 1fr) 50px;
    align-items: start;
    row-gap: 1rem;
}
.collaboration h2, .collaboration p {
    grid-column: 3 / 5;
}
.collaboration p a {
    color: var(--text-dark);
    text-decoration: underline;
}
.outcome {
    margin-top: 8rem;
    grid-column: 2 / 7;
    display: grid;
    grid-template-columns:50px repeat(5, 1fr) 50px;
    align-items: start;
    row-gap: 1rem;
}
.outcome h2, .outcome p {
    grid-column: 3 / 6;
}
.outcome .testimonial{
    margin-top:1rem !important;
}
.outcome .testimonial-name {
    font-family: var(--font-serif);
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 1.4;
    color: var(--text-dark);
    margin-top:1rem;
    display: block;
}
.outcome .testimonial-title {
    font-family: var(--font-sans);
    font-size: 1.2rem;
    display: block;

}

.next-projects{
    margin-top: 14vh;
    width:100%;
    padding:50px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}
.project-card{
    width: 40%;
}
.project-card h3{
    margin:20px 0;
    font-family: var(--font-serif);
    font-weight: 200;
}
.project-thumbnail{
    width:100%;
    aspect-ratio: 3 / 2;
    border-radius: 20px;  
    overflow: hidden;  
    display: flex;
}
.project-thumbnail video{
    object-fit: cover;
    width: 100%;
}

/* ============================================
   ABOUT PAGE STYLES
   ============================================ */

.about-page {
    position: relative;
    background-image:  url('../assets/shape-circle-half.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: top center;
}

.about-hero {
    position: relative;
    height: 80vh;
    display: flex;
    grid-template-columns: 50px repeat(5, 1fr) 50px;
    align-items: center;
    padding: 8rem 0 0;
    will-change: height;
    
}

.about-hero__heading {
    width:100%;
    text-align: center;
    font-family: var(--font-serif);
    font-size: 4.5vw;
    font-weight: 400;
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--text-dark);
    margin: 0;
    will-change: transform;
    text-rendering: optimizeLegibility;
}

/* WebKit: promoted layers + will-change on large type often look soft; font-size is animated via GSAP instead of scale. */
body.is-safari .about-hero__heading {
    will-change: auto;
}

.about-hero__star {
    position: absolute;
    width: 12vw;
    height: auto;
    opacity: 1;
    pointer-events: none;
    top: 55%;
    left:70vw;
}

.about-intro {
    display: grid;
    grid-template-columns: 50px repeat(5, 1fr) 50px;
    will-change: transform, opacity;
    row-gap: 20px;
}

.about-intro__content {
    grid-column: 2 / 7;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
}

.about-intro__image-wrapper {
    grid-column: 2 / 3;
    position: relative;
}

.about-intro__image-shape-ring {
    position: absolute;
    z-index: 0;
    top: 3vh;
    left: -5vw;
    width: 12vw;
    height: auto;
}

.about-intro__image-selfie-2 {
    position: relative;
    z-index: 1;
    width: 80%;
    height: auto;
    border-radius: 20px;
    display: block;
    margin-top: 10vh;
    box-shadow: 0 10px 40px rgba(11, 30, 54, 0.12);
}

.about-intro__image-shape-burst {
    position: absolute;
    top: 25vh;
    left: -5.5vw;
    width: 14vw;
    height: auto;
    z-index: 3;
    transform: rotate(40deg);
}

.about-intro__text {
    grid-column: 3 / 5;
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

.about-intro__title {
    font-family: var(--font-serif);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 400;
    line-height: 1.2;
    margin: 0 0 1rem 0;
    color: var(--text-dark);
}

.about-intro__text p {
    font-family: var(--font-sans);
    font-size: 15pt;
    line-height: 1.6;
    color: var(--text-dark);
    margin: 0;
}

.about-intro__stats {
    grid-column: 4 / 7;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.about-intro__stat {
    grid-column: span 1;
}

.about-intro__stat-number {
    font-family: var(--font-serif);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 400;
    line-height: 1.1;
    color: var(--text-dark);
}

.about-intro__stat-label {
    font-family: var(--font-serif);
    font-size: 1.6rem;
    color: var(--text-dark);
    line-height: 1.4;
}

.about-experience {
    display: grid;
    grid-template-columns: 50px repeat(5, 1fr) 50px;
    padding: 6rem 0;
}

.about-experience__heading {
    grid-column: 3 / 7;
    font-family: var(--font-serif);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 400;
    line-height: 1.2;
    margin: 0 0 3rem 0;
    color: var(--text-dark);
}

.about-experience__grid {
    grid-column: 3 / 7;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.about-experience__column {
    grid-column: span 2;
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}

.about-experience__column:last-child {
    grid-column: 3 / 7;
}

.about-experience__item {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.about-experience__role {
    font-family: var(--font-sans);
    font-size: 15pt;
    font-weight: 300;
    color: var(--text-dark);
    line-height: 1.4;
}

.about-experience__period {
    font-family: var(--font-sans);
    font-size: 15pt;
    color: var(--text-dark);
    font-weight: 300;
    line-height: 1.4;
}

.about-interests {
    display: grid;
    grid-template-columns: 50px repeat(5, 1fr) 50px;
    padding: 6rem 0;
}

.about-interests__heading {
    grid-column: 3 / 7;
    font-family: var(--font-serif);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 400;
    line-height: 1.2;
    margin: 0 0 2rem 0;
    color: var(--text-dark);
}

.about-interests__content {
    grid-column: 3 / 5;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.about-interests__content p {
    font-family: var(--font-sans);
    font-size: 15pt;
    line-height: 1.6;
    color: var(--text-dark);
    margin: 0;
}

.about-contact {
    display: grid;
    grid-template-columns: 50px repeat(5, 1fr) 50px;
    padding: 6rem 0 8rem;
}

.about-contact__heading {
    grid-column: 3 / 7;
    font-family: var(--font-serif);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 400;
    line-height: 1.2;
    margin: 0 0 2rem 0;
    color: var(--text-dark);
}

.about-contact__content {
    grid-column: 3 / 5;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.about-contact__email {
    font-family: var(--font-sans);
    font-size: 15pt;
    color: var(--text-dark);
    text-decoration: none;
    transition: opacity 0.3s ease;
}


.about-contact__social {
    display: flex;
    gap: 2rem;
}

.about-contact__link {
    font-family: var(--font-sans);
    font-size: 15pt;
    font-weight: 400;
    color: var(--text-dark);
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.about-contact__link:hover {
    opacity: 0.7;
}

.work-intro__container {
    grid-column: 2 / 4;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content:center;
    width: 100%;
    gap: 1rem;
    background-image: url('../assets/blue-radial-gradient.png');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

.work-intro__heading {
    font-family: var(--font-serif);
    font-size: 4.5vw;
    font-weight: 400;
    line-height: 1.11;
    letter-spacing: -0.02em;
    color: var(--text-dark);
    margin: 0;
    text-align: center;
}

.work-intro__description {
    font-family: var(--font-sans);
    font-size: 15pt;
    font-weight: 200;
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: var(--text-dark);
    max-width: 500px;
    margin: 0;
    text-align: center;
}

/* Work Slider Section */
.work-slider {
    position: relative;
    width: 100%;
    height: 100vh;
    display: grid;
    grid-template-columns: 50px repeat(5, 1fr) 50px;
    gap: 0;
    align-items: center;
    
}

.work-slider__laptop {
    position: relative;
    grid-column: 2 / 5; 
    width: 100%;
    height: calc(100vh - 100px);
    background-color: var(--bg-light);
    border-radius: 40px;
    overflow: hidden;
    align-self: center;
    will-change: width, height, transform;
}

.work-slider__media-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 101%;
    height: 100%;
    z-index: 0;
}

.work-slider__media {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 50%;
    transform-origin: center center;
    will-change: clip-path, transform;
}

.work-slider__media--placeholder {
    background: linear-gradient(135deg, #c5e1a5 0%, #a8d8ea 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}

.work-slider__placeholder-text {
    font-family: var(--font-serif);
    font-size: clamp(1.5rem, 3vw, 3rem);
    color: rgba(255, 255, 255, 0.8);
    text-align: center;
    line-height: 1.4;
}


.work-slider__content-wrapper {
    grid-column: 5 / 7;
    align-self: center;
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    justify-content: flex-end;
    margin-left: 50px;
    height: 100%;
    will-change: transform, opacity;
}

.work-slider__counter-fixed {
    font-family: var(--font-sans);
    font-size: clamp(0.9rem, 1.2vw, 1.25rem);
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: var(--text-dark);
    display: flex;
    gap: 0.2em;
    align-items: flex-start;
    position: absolute;
    top: 100px;
}

.work-slider__counter-current-wrapper {
    top:-8px;
    position: relative;
    display: inline-block;
    width: 3em;
}

.work-slider__counter-current {
    font-size: 40px;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    visibility: hidden;
}

.work-slider__counter-current[data-project="1"] {
    opacity: 1;
    visibility: visible;
}

.work-slider__counter-separator {
    font-size: 0.8em;
    opacity: 0.7;
}

.work-slider__counter-total {
    font-size: 0.8em;
    opacity: 0.7;
}

.work-slider__content {
    position: absolute;
    top: auto;
    left: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    align-items: flex-start;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
}

.work-slider__content[data-project="1"] {
    z-index: 10;
    pointer-events: auto;
    opacity: 1;
    visibility: visible;
}

.work-slider__content[data-project="2"],
.work-slider__content[data-project="3"],
.work-slider__content[data-project="4"] {
    z-index: 1;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
}

.work-slider__descriptions {
    grid-column: 6 / 6;
    align-self: end;
    position: relative;
    z-index: 2;
    top: -200px;
    will-change: transform, opacity;
}

.work-slider__description {
    position: absolute;
    bottom: 0;
    left: 0;
    pointer-events: none;
    font-family: var(--font-sans);
    font-size: clamp(0.9rem, 1.1vw, 1rem);
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: -0.01em;
    color: var(--text-dark);
    margin: 0;
    opacity: 0;
    visibility: hidden;
}

.work-slider__description[data-project="1"] {
    opacity: 1;
    visibility: visible;
}

.work-slider__title {
    font-family: var(--font-serif);
    font-size: clamp(2rem, 3.5vw, 4rem);
    font-weight: 400;
    line-height: 1.11;
    letter-spacing: -0.02em;
    color: var(--text-dark);
    margin: 0;
}

.work-slider__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1.5rem;
    border: 1px solid var(--text-dark);
    border-radius: 50px;
    font-family: var(--font-sans);
    font-size: clamp(0.8rem, 1vw, 0.875rem);
    font-weight: 400;
    color: var(--text-dark);
    text-decoration: none;
    transition: all 0.3s ease;
    width: fit-content;
    cursor: pointer;
}

.work-slider__button:hover {
    background-color: var(--text-dark);
    color: var(--bg-light) !important;
}

/* Pagination Dots */
.work-slider__pagination {
    position: absolute;
    bottom: clamp(2rem, 5vw, 4rem);
    left: clamp(2rem, 5vw, 4rem);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    z-index: 3;
}

.work-slider__dot {
    width: 8px;
    height: 8px;
    border-radius: 4px;
    background-color: rgba(255, 255, 255, 0.3);
    transition: height 0.3s ease, background-color 0.3s ease;
    position: relative;
    overflow: hidden;
    --fill-height: 0%;
}

.work-slider__dot::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: var(--fill-height, 0%);
    background-color: white;
    border-radius: 4px;
}

.work-slider__dot.is-active {
    height: 32px;
    background-color: rgba(255, 255, 255, 0.15);
}

/* ============================================
   BREAKPOINT 1: max-width 1200px
   ============================================ */
@media (max-width: 1200px) {
    #awwwards {
        transform: scale(.6) translateY(-50%) !important;
        top: 80% !important;
    }
    /* Global / Header */
    .header {
        padding: 1.5rem 0;
    }
    .header-container {
        padding: 0 30px;
    }
    .brand {
        left: 30px;
        top: 1.5rem;
    }
    .navigation {
        right: 30px;
        top: 1.5rem;
    }
    #work-page .navigation,
    #about-page .navigation,
    #case-study-page .navigation {
        position: fixed;
        top: 1.5rem;
        right: 30px;
    }
    .shape-circle-left,
    .shape-circle-right,
    .shape-circle-bottom {
        width: 500px;
        height: 500px;
    }
    .shape-circle-left {
        left: -150px;
    }
    .shape-circle-right {
        right: -200px;
    }
    .hero {
        padding: 6rem 30px 2rem;
    }
    .process__disk-label-text {
        font-size: 13px;
        max-width: 200px;
    }

    /* Grid */
    body::before {
        /* 30px gutters on both sides, 5 equal columns across remaining width */
        background-image: linear-gradient(to right,
          transparent 30px,

          rgba(11, 30, 54, 0.05) 30px,
          rgba(11, 30, 54, 0.05) calc(30px + 1px),
          transparent calc(30px + 1px),

          /* Column 1 right edge */
          transparent calc(30px + ((100vw - 60px) / 5) - 1px),
          rgba(11, 30, 54, 0.08) calc(30px + ((100vw - 60px) / 5) - 1px),
          rgba(11, 30, 54, 0.08) calc(30px + ((100vw - 60px) / 5)),
          transparent calc(30px + ((100vw - 60px) / 5)),

          /* Column 2 right edge */
          transparent calc(30px + ((100vw - 60px) / 5) * 2 - 1px),
          rgba(11, 30, 54, 0.08) calc(30px + ((100vw - 60px) / 5) * 2 - 1px),
          rgba(11, 30, 54, 0.08) calc(30px + ((100vw - 60px) / 5) * 2),
          transparent calc(30px + ((100vw - 60px) / 5) * 2),

          /* Column 3 right edge */
          transparent calc(30px + ((100vw - 60px) / 5) * 3 - 1px),
          rgba(11, 30, 54, 0.08) calc(30px + ((100vw - 60px) / 5) * 3 - 1px),
          rgba(11, 30, 54, 0.08) calc(30px + ((100vw - 60px) / 5) * 3),
          transparent calc(30px + ((100vw - 60px) / 5) * 3),

          /* Column 4 right edge */
          transparent calc(30px + ((100vw - 60px) / 5) * 4 - 1px),
          rgba(11, 30, 54, 0.08) calc(30px + ((100vw - 60px) / 5) * 4 - 1px),
          rgba(11, 30, 54, 0.08) calc(30px + ((100vw - 60px) / 5) * 4),
          transparent calc(30px + ((100vw - 60px) / 5) * 4),

          /* Right gutter at 30px from edge */
          transparent calc(100vw - 30px - 1px),
          rgba(11, 30, 54, 0.08) calc(100vw - 30px - 1px),
          rgba(11, 30, 54, 0.08) calc(100vw - 30px),
          transparent calc(100vw - 30px)
        );
    }
    .section {
        min-height: 0;
    }
    #case-study-page p.case-study-hero__description {
        font-size: 20pt;
    }
    #case-study-page h2, #contact h2, .work-intro__heading, .section h2 {
        font-size: 30pt !important;
    }

    /* — Work Page — */
    .work-page .about {
        margin-top: -75vh;
    }
    .work-intro {
        grid-template-columns: 30px repeat(5, 1fr) 30px;
    }
    
    .work-slider {
        grid-template-columns: 30px repeat(5, 1fr) 30px;
    }
    .work-slider__laptop{
        height: calc(50vh - 100px)
    }
    
    .work-slider__content-wrapper {
        margin-left: 30px;
        justify-content: flex-end;
        height: 40%;
        top: 20%;
    }
    
    .work-slider__counter-fixed {
        top: 80px;
    }
    
    .work-slider__counter-current-wrapper {
        width: 3em;
    }
    
    .work-slider__counter-current {
        font-size: 36px;
    }
    

    /* — About Page — */
    .about-hero {
        grid-template-columns: 30px repeat(5, 1fr) 30px;
    }
    
    .about-intro {
        grid-template-columns: 30px repeat(5, 1fr) 30px;
    }
    
    .about-experience {
        grid-template-columns: 30px repeat(5, 1fr) 30px;
    }
    
    .about-interests {
        grid-template-columns: 30px repeat(5, 1fr) 30px;
    }
    
    .about-contact {
        grid-template-columns: 30px repeat(5, 1fr) 30px;
    }

    /* — Case Study Page — */
    .case-study-hero {
        grid-template-columns: 30px repeat(5, 1fr) 30px;
    }
    
    .case-study-hero__media, .collaboration h2, .collaboration p, .outcome h2, .outcome p {
        grid-column: 2 / 7;
    }
    
    .case-study-gallery {
        grid-template-columns: 30px repeat(5, 1fr) 30px;
        padding: 50px 0;
    }
    .case-study-gallery-2 {
        grid-template-columns: 30px repeat(5, 1fr) 30px;
        padding: 50px 0;
    }
    
    .case-study-context {
        grid-template-columns: 30px repeat(5, 1fr) 30px;
        padding: 50px 0 0 0 ;
    }
    
    .case-study-evolution {
        grid-template-columns: 30px repeat(5, 1fr) 30px;
        padding: 50px 0;
    }
    
    .case-study-vimeo, .collaboration, .outcome {
        grid-template-columns: 30px repeat(5, 1fr) 30px;
        padding: 50px 30px;
    }
    
    .UX-content {
        grid-template-columns: 30px repeat(5, 1fr) 30px;
        padding: 50px 0;
    }
    .portfolio-video, .case-study-mobile-gallery{
        padding: 0 30px;
    }
    
    .MMT-showcase-section2, .UX-content__userPersonas, .UX-content__sitemap, .UX-analysis, .collaboration, .outcome{
        margin-top: 2rem;
    }
    .photography-caption{
        grid-column: 4 / 7;
    }
    .case-study-evolution__intro, .case-study-evolution__content{
        grid-column: 3 / 6;
    }
    .case-study-evolution__timeline{
        grid-column: 3 / 3;
    }
    .MMT-showcase-section, .MMT-showcase-section2{
        row-gap: 4rem;
    }
    .product-feature {
        padding: 6rem 50px;
    }

    /* — Contact — */
    #contact {
        min-height: 80vh;
    }
    #contact .section-content {
        max-width: 50vw;
    }
    .case-study-hero__video{
        height: 50vh;
    }
    .about__intro{
        width: calc(((100vw - 100px) / 5) * 4);
    }
}

/* ============================================
   BREAKPOINT 2: max-width 768px
   ============================================ */
@media (max-width: 768px) {
    /* — Global — */
    body {
        font-size: 12pt;
    }
    .loader-logo {
        transform: scale(.8);
    }
    .section#expertise {
        margin-top: 10vh;
        min-height: 90vh;
        padding: 0;
    }
    /* The JS-driven ring and hero text are replaced by the video on mobile */
    .expertise-ring, .shape-circle-left, .shape-circle-right, .shape-circle-bottom{
        display: none;
    }
    /* Mobile expertise orbit video */
    .expertise-mobile-video {
        filter:brightness(1.01);
        display: block;
        width: 100%;
        height: auto;
        max-height: 90svh;
        object-fit: contain;
    }
    body::before {
        background-image: none;
    }
    .header-center {
        display: none;
    }
    .section {
        padding: 1.5rem 0.75rem;
    }
    #case-study-page .section {
        padding: 3rem 20px;
    }
    #contact .section-content {
        max-width: 100%;
    }
    .section#work{
        margin-top: -20vh;
    }
    .next-projects{
        margin-top: 8vh;
        padding:20px;
    }
    .project-thumbnail {
        aspect-ratio: 1 / 1;
        justify-content: center;
    }
    /* — Header & Loader — */
    .header {
        padding: 1rem 0;
        width: 100%;
        max-width: 100vw;
        left: 0;
        right: 0;
        padding-left: 0;
        padding-right: 0;
    }
    .header-container {
        max-width: 100%;
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }
    .loader {
        max-width: 100vw;
        left: 0;
        right: 0;
    }
    .loader-text {
        font-size: 14pt;
    }
    .work__laptop{
        transform: scale(1.4);
    }
    /* Constrain all page content to viewport width */
    main,
    .case-study-page,
    .work-page,
    .about-page {
        max-width: 100vw;
        overflow-x: hidden;
        box-sizing: border-box;
    }
    .MMT-video {
        left: 24%;
        top: 1.8%;
        width: 44.9%;
        height: 57.5%;
        transform: perspective(1051px) rotateX(23deg) rotateY(27deg) rotateZ(-15deg) skew(2deg) rotate(-1deg);
        border-radius: 3px;
    }

    /* — Navigation — */
    .brand {
        position: static;
        margin-bottom: 1rem;
    }
    .navigation {
        position: static;
        justify-content: center;
        align-items: center;
    }
    #work-page .navigation,
    #about-page .navigation,
    #case-study-page .navigation {
        position: fixed;
        top: 1rem;
        right: 20px;
        flex-direction: column;
        align-items: flex-end;
        gap: 0.5rem;
    }

    /* — Work Page — */
    .work-page .about {
        margin-top: -35vh;
    }
    .work-intro {
        padding: 8vh 0 8vh;
        grid-template-columns: 0.75rem 1fr 0.75rem;
    }
    .work-intro__container {
        background-position: top;
        justify-content: flex-start;
        padding: 80px 40px;
        grid-column: 2 / 3;
    }
    .work-slider {
        grid-template-columns: 15px 1fr 15px;
        grid-template-rows: 50vh minmax(0, 1fr);
        grid-auto-flow: row;
        padding: 3vh 0;
        margin-top: -40vh;
        height: auto;
        min-height: 0vh;
        align-items: start;
    }
    .work-slider__laptop {
        grid-column: 2 / 3;
        grid-row: 1;
        border-radius: 20px;
        min-height: 240px;
        max-height: 50vh;
        
    }
    .work-slider__content-wrapper {
        grid-column: 2 / 3;
        grid-row: 2;
        position: relative !important;
        top: auto !important;
        left: auto !important;
        width: auto !important;
        height: 35vh !important;
        margin-left: 0;
        justify-content: flex-start;
    }
    .work-slider__counter-fixed {
        position: relative;
        top: 0;
    }
    .work-slider__counter-current-wrapper {
        width: 3em;
        top: -6px;
    }
    .work-slider__counter-current {
        font-size: 28px;
    }
    .work-slider__descriptions {
        grid-column: 2 / 3;
        grid-row: 2;
        align-self: start;
        margin-top: 1rem;
        padding-bottom: 0;
        top: 150px;
    }
    .work-slider__description {
       bottom: auto;
    }
    
    .work-slider__content {
        padding: 2rem 0;
        top: 0;
        gap: 1rem;
    }
    .work-slider__title {
        font-size: 1.5rem;
    }
    .work-slider__pagination {
        bottom: 1.5rem;
        left: 1.5rem;
    }
    /* #about section (work page): single-column stack */
    .about {
        padding: 4rem 0 6rem;
    }
    .about__content {
        padding: 0 20px;
        gap: 3rem;
        max-width: 100%;
    }
    .about__intro {
        width: 100%;
        max-width: 100%;
        padding-left: 0;
    }
    .about__list {
        gap: 2.5rem;
        width: 100%;
    }
    .about__item {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
        width: 100%;
    }
    .about__badge {
        order: 1;
        width: auto;
    }
    .about__title-container {
        order: 2;
        flex-direction: column;
        align-items: flex-start;
        width: 100%;
        transform: none;
        gap: 1rem;
    }
    .about__icon {
        order: 1;
        width: 80px;
        height: 80px;
        transform: translateY(0);
    }
    .about__icon-svg {
        width: 44px;
        height: 44px;
    }
    .about__text {
        order: 2;
        width: 100%;
    }
    .about__text h3 {
        font-size: clamp(1.35rem, 4vw, 1.75rem);
    }
    .about__text p {
        max-width: 100%;
    }
    .about__desc {
        order: 3;
        width: 100%;
    }
    .about__desc-list {
        flex-wrap: wrap;
    }

    /* — About Page — */
    .about-hero {
        grid-template-columns: 20px repeat(5, 1fr) 20px;
        padding: 5rem 0 3rem;
    }
    
    .about-intro {
        grid-template-columns: 20px repeat(5, 1fr) 20px;
    }
    
    .about-intro__content {
        grid-column: 2 / 7;
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }
    
    .about-intro__image-wrapper {
        grid-column: 1 / 2;
        max-width: 300px;
        margin: 0 auto;
    }
    
    .about-intro__text {
        grid-column: 1 / 2;
    }
    
    .about-intro__stats {
        grid-column: 2 / 7;
        grid-template-columns: 1fr 1fr;
        gap: 2rem;
    }
    
    .about-experience {
        grid-template-columns: 20px repeat(5, 1fr) 20px;
    }
    
    .about-experience__grid {
        grid-column: 2 / 7;
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .about-experience__column {
        grid-column: 1 / 2;
    }
    
    .about-experience__column:last-child {
        grid-column: 1 / 2;
    }
    
    .about-interests {
        grid-template-columns: 20px repeat(5, 1fr) 20px;
    }
    
    .about-interests__content {
        grid-column: 2 / 7;
    }
    
    .about-contact {
        grid-template-columns: 20px repeat(5, 1fr) 20px;
    }
    
    .about-contact__content {
        grid-column: 2 / 7;
    }
    
    /* — Case Study Page — */
    .case-study-hero {
        grid-template-columns: 20px 1fr 20px;
        padding: 6rem 20px 3rem;
    }
    
    .case-study-hero__grid {
        grid-column: 1 / 2;
        grid-template-columns: 1fr;
        margin-bottom: 3rem;
    }
    
    .case-study-hero__content {
        grid-column: 1 / 2;
    }
    
    .case-study-hero__meta {
        margin-top: 40px;
        grid-column: 1 / 2;
        align-self: start;
    }
    
    .case-study-hero__media {
        grid-column: 1 / 2;
    }
    
    .case-study-gallery {
        grid-template-columns: 20px 1fr 20px;
        padding: 3rem 20px;
        gap: 2rem;
    }
    
    .case-study-gallery__item,
    .case-study-gallery__item--1,
    .case-study-gallery__item--2,
    .case-study-gallery__item--3,
    .case-study-gallery__item--4,
    .case-study-gallery__item--5 {
        grid-column: 1 / 2;
        grid-row: auto;
        margin: 0;
        min-height: 200px;
    }
    
    .case-study-mobile-gallery {
        flex-direction: column;
        align-items: center;
        gap: 2rem;
        padding: 3rem 20px;
    }
    
    .case-study-mobile-gallery__item--1,
    .case-study-mobile-gallery__item--5 {
        margin-left: 0;
        margin-right: 0;
    }
    
    .case-study-mobile-gallery figure {
        max-width: 100%;
    }
    
    .case-study-gallery-2 {
        grid-template-columns: 20px 1fr 20px;
        padding: 3rem 20px;
        row-gap: 2rem;
    }
    
    .case-study-gallery-2__item--1,
    .case-study-gallery-2__item--2,
    .case-study-gallery-2__item--3 {
        grid-column: 1 / 2;
        grid-row: auto;
    }
    
    .portfolio-video {
        padding: 3rem 20px;
    }
    
    .portfolio-video__video {
        max-width: 100%;
    }
    
    .case-study-evolution, .collaboration, .outcome {
        grid-template-columns: 0px repeat(5, 1fr) 0px;
    }
    #case-study-page p, .case-study-hero__meta-value, .case-study-hero__meta-label, .about-intro__text p, .about-experience__role, .about-experience__period, .about-interests__content p{
        font-size: 12pt;
    }
    
    .case-study-evolution__grid {
        grid-column: 2 / 7;
        grid-template-rows: auto auto auto auto;
        row-gap: 1rem;
    }
    
    .case-study-evolution__heading {
        grid-column: 1 / 6;
        grid-row: 1;
    }
    
    .case-study-evolution__intro {
        grid-column: 1 / 6;
        grid-row: 2;
    }
    
    .case-study-evolution__timeline {
        grid-column: 1 / 6;
        grid-row: 3;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 0.5rem 1.5rem;
    }
    
    .case-study-evolution__timeline::before {
        display: none;
    }
    
    .case-study-evolution__content {
        grid-column: 1 / 6;
        grid-row: 4;
    }
    
    .case-study-evolution__phase-content,
    .case-study-evolution__phase-content.is-visible {
        left: 0;
    }
    
    .case-study-evolution__media {
        grid-column: 1 / 7;
    }
    
    .case-study-vimeo {
        grid-template-columns: 20px 1fr 20px;
        padding: 3rem 20px 3rem;
    }
    
    .case-study-vimeo__wrap {
        grid-column: 1 / 2;
    }
    
    .UX-content {
        grid-template-columns: 20px repeat(5, 1fr) 20px;
        padding: 4rem 0 0;
    }
    
    .UX-content__grid {
        grid-column: 2 / 7;
        grid-template-columns: 1fr;
    }
    
    .UX-content__title {
        grid-column: 1 / 2;
    }
    
    .UX-content__text {
        grid-column: 1 / 2;
    }
    
    .UX-content__userPersonas,
    .UX-content__sitemap {
        grid-column: 2 / 7;
    }
    .product-feature{
        margin-top: 2rem;
        padding: 1rem;
    }
    .case-study-context {
        grid-template-columns: 20px 1fr 20px;
        padding: 3rem 20px;
    }
    
    .case-study-context__grid {
        grid-column: 1 / 2;
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        row-gap: 2rem;
    }
    
    .case-study-context__client {
        grid-column: 1 / 2;
        grid-row: auto;
    }
    
    .case-study-context__client-image {
        grid-column: 1 / 2;
        grid-row: auto;
    }
    
    .case-study-context__label--problem {
        grid-column: 1 / 2;
        grid-row: auto;
    }
    
    .case-study-context__problem-lead {
        grid-column: 1 / 2;
        grid-row: auto;
    }
    
    .case-study-context__problem-text {
        grid-column: 1 / 2;
        grid-row: auto;
    }
    .MMT-showcase-section, .MMT-showcase-section2{
        grid-template-columns: 20px repeat(5, 1fr) 20px;
        row-gap: 1rem;
        padding:0;
    }
    .MMT-showcase-video-1, .MMT-showcase-video-2{
        grid-column: 2 / 7;
        padding:0;
    }
    .case-study-hero__description br{
        display: none;
    }
    /* — Case Study Page (768px: single column) — */
    .case-study-hero {
        grid-template-columns: 1fr;
        padding: 5rem 20px 2rem;
    }
    
    .case-study-hero__grid {
        grid-column: 1;
        margin-bottom: 2rem;
    }
    .case-study-hero__content {
        grid-column: 1;
    }
    .case-study-hero__meta {
        grid-column: 1;
    }
    .case-study-hero__title {
        font-size: 38pt;
    }
    .case-study-hero__media {
        grid-column: 1;
        border-radius: 16px;
    }
    .case-study-gallery {
        grid-template-columns: 1fr;
        padding: 2rem 20px;
        gap: 1.5rem;
    }
    
    .case-study-gallery__item,
    .case-study-gallery__item--1,
    .case-study-gallery__item--2,
    .case-study-gallery__item--3,
    .case-study-gallery__item--4,
    .case-study-gallery__item--5 {
        grid-column: 1;
        grid-row: auto;
        margin: 0;
        min-height: 180px;
    }
    
    .case-study-mobile-gallery {
        flex-direction: column;
        align-items: center;
        gap: 1.5rem;
        padding: 2rem 20px;
    }
    .case-study-mobile-gallery__item--1,
    .case-study-mobile-gallery__item--5 {
        margin-left: 0;
        margin-right: 0;
    }
    .case-study-gallery-2 {
        grid-template-columns: 1fr;
        padding: 2rem 20px;
        row-gap: 1.5rem;
    }
    
    .case-study-gallery-2__item--1,
    .case-study-gallery-2__item--2,
    .case-study-gallery-2__item--3 {
        grid-column: 1;
        grid-row: auto;
    }
    
    .portfolio-video {
        padding: 2rem 20px;
    }
    .case-study-context {
        grid-template-columns: 1fr;
        padding: 2rem 20px;
    }
    
    .case-study-context__grid {
        grid-column: 1;
    }
    
    .case-study-evolution {
        grid-template-columns: 1fr;
        padding: 2rem 20px 3rem;
    }
    
    .case-study-evolution__grid {
        grid-column: 1;
    }
    
    .case-study-evolution__phase-content,
    .case-study-evolution__phase-content.is-visible {
        left: 0;
    }
    
    .case-study-evolution__media {
        grid-column: 1;
    }
    
    .case-study-vimeo {
        grid-template-columns: 1fr;
        padding: 2rem 20px;
    }
    
    .case-study-vimeo__wrap {
        grid-column: 1;
    }
    
    #case-study-page .section {
        padding: 2rem 20px;
    }
    .UX-content {
        grid-template-columns: 1fr;
        padding: 3rem 20px 0;
    }
    
    .UX-content__grid {
        grid-column: 1;
        grid-template-columns: 1fr;
    }
    
    .UX-content__title,
    .UX-content__text {
        grid-column: 1;
    }
    
    .UX-content__userPersonas,
    .UX-content__sitemap,
    .UX-analysis {
        grid-column: 1;
        display: flex;
        flex-direction: column;
        gap: 1rem;
        margin-top: 2.5rem;
        grid-template-columns: none;
    }
    
    .UX-content__userPersonas img,
    .UX-content__sitemap img,
    .UX-analysis img {
        grid-column: auto;
        width: 100%;
        max-width: 100%;
    }
    

    
    .about-hero {
        grid-template-columns: 15px 1fr 15px;
        padding: 4rem 0 3rem;
        min-height: 50vh;
    }
    
    .about-hero__heading {
        grid-column: 2 / 3;
    }
    
    .about-hero__star--1 {
        top: 10%;
        left: 5%;
    }
    
    .about-hero__star--2 {
        top: 15%;
        right: 5%;
    }
    
    .about-intro {
        grid-template-columns: 15px 1fr 15px;
        margin-top: -15vh;
        opacity:1 !important;
    }
    .about-intro__image-selfie-2{
        width: 100%;
    }
    .about-intro__image-shape-burst{
        width:100px;
    }
    .about-intro__image-shape-ring{
        top:60px;
        left:-50px;
        width:100px;
    }
    
    .about-intro__content {
        grid-column: 2 / 3;
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .about-intro__image-wrapper {
        grid-column: 1 / 2;
    }
    
    .about-intro__text {
        grid-column: 1 / 2;
    }
    
    .about-intro__stats {
        grid-column: 2 / 3;
        grid-template-columns: 1fr 1fr;
        gap: 2rem;
    }
    
    .about-experience {
        grid-template-columns: 15px 1fr 15px;
        padding: 3rem 0;
    }
    
    .about-experience__heading {
        grid-column: 2 / 3;
    }
    
    .about-experience__grid {
        grid-column: 2 / 3;
        grid-template-columns: 1fr;
    }
    
    .about-experience__column {
        grid-column: 1 / 2;
    }
    
    .about-experience__column:last-child {
        grid-column: 1 / 2;
    }
    
    .about-interests {
        grid-template-columns: 15px 1fr 15px;
        padding: 3rem 0;
    }
    
    .about-interests__heading {
        grid-column: 2 / 3;
    }
    
    .about-interests__content {
        grid-column: 2 / 3;
    }
    
    .about-contact {
        grid-template-columns: 15px 1fr 15px;
        padding: 3rem 0 4rem;
    }
    
    .about-contact__heading {
        grid-column: 2 / 3;
    }
    
    .about-contact__content {
        grid-column: 2 / 3;
    }

    /* — Index / Home page — */
    .hero {
        padding: 20px;
    }
    .hero-content {
        margin-top: -50px;
    }
    .hero-headline {
        font-size: 3rem;
    }
    .hero-headline br{
        display: none;
    }
    @keyframes shrink-mobile {
        from {
            width: 0px;
            margin-right:0vw;
        }
        to {
            width: 40px;     
            margin-right:.7vw;
        }
    }
    .hero-title-img {
        animation: shrink-mobile 1.2s ease forwards;
        animation-delay: 3.5s;
        height: 2rem;
    }
    .shape-circle-left,
    .shape-circle-right,
    .shape-circle-bottom {
        width: 300px;
        height: 300px;
    }
    .shape-starburst {
        width: 150px;
        height: 150px;
    }
    .shape-leaf {
        width: 200px;
        height: 250px;
    }
    .shape-geometric {
        width: 100px;
        height: 100px;
    }
    .work__laptop {
        width: min(94vw, 720px);
    }
    .process {
        padding: 7rem 0.75rem;
    }
    .process__stack {
        grid-template-columns: 1fr;
    }
    .process__disk {
        height: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 1.5rem;
    }
    .process__disk-graphic {
        width: clamp(150px, 60vw, 250px);
        height: clamp(120px, 50vw, 200px);
        position: static;
        transform: perspective(900px);
        left: auto;
    }
    .process__disk-label {
        margin-left: 0;
        margin-top: 0;
        text-align: center;
        transform: translate(-50%, -110%);
    }
    .process__disk-label-text{
        display: none;
    }
    .process__headline{
        max-width: 100%;
    }
    .process__disk-label-headline,
    .process__disk-label-text {
        text-align: center;
    }
}
