:root{
    --brown:#49231f;
    --brown-dark:#321613;
    --cream:#e5ded9;
    --cream-light:#f2ece8;
    --muted:#8e7c76;
    --line:rgba(73,35,31,.18);
    --white-line:rgba(229,222,217,.2);
    --sans:"DM Sans",Arial,sans-serif;
    --serif:"Playfair Display",Georgia,serif;
    --ease:cubic-bezier(.22,.8,.24,1)
}

*{
    box-sizing:border-box;
    margin:0;
    padding:0
}

html{
    scroll-behavior:smooth;
    background:var(--cream)
}

body{
    background:var(--cream);
    color:var(--brown);
    font-family:var(--sans);
    overflow-x:hidden
}

body.modal-open,
body.menu-open{
    overflow:hidden
}

a{
    color:inherit;
    text-decoration:none
}

button,
input,
textarea,
select{
    font:inherit
}

button{
    border:0;
    cursor:pointer
}

::selection{
    background:var(--brown);
    color:var(--cream)
}


/* LOADER */

.loader{
    position:fixed;
    inset:0;
    z-index:9999;
    display:grid;
    place-items:center;
    background:var(--brown);
    color:var(--cream);
    transition:opacity .8s var(--ease),visibility .8s
}

.loader.loaded{
    opacity:0;
    visibility:hidden;
    pointer-events:none
}

.loader-inner{
    display:flex;
    align-items:center;
    gap:14px;
    font-size:11px;
    letter-spacing:.18em
}

.loader-inner img{
    width:32px;
    height:32px;
    object-fit:contain;
    filter:brightness(0) invert(1)
}


/* NOISE */

.noise{
    position:fixed;
    inset:0;
    z-index:900;
    pointer-events:none;
    opacity:.045;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")
}


/* CURSOR */

.cursor{
    position:fixed;
    left:0;
    top:0;
    width:15px;
    height:15px;
    border:1px solid rgba(229,222,217,.9);
    border-radius:50%;
    pointer-events:none;
    z-index:10000;
    transform:translate(-50%,-50%);
    transition:
        width .3s var(--ease),
        height .3s var(--ease),
        background .3s,
        border .3s,
        box-shadow .3s;
    mix-blend-mode:difference
}

.cursor::after{
    content:"";
    position:absolute;
    inset:-22px;
    border-radius:50%;
    background:rgba(73,35,31,.11);
    filter:blur(12px);
    opacity:.8
}

.cursor.active{
    width:48px;
    height:48px
}

.cursor.active span{
    opacity:1
}

.cursor span{
    position:absolute;
    inset:50%;
    width:4px;
    height:4px;
    background:var(--cream);
    border-radius:50%;
    transform:translate(-50%,-50%);
    opacity:0;
    transition:opacity .2s
}


/* SCROLL PROGRESS */

.scroll-progress{
    position:fixed;
    top:0;
    left:0;
    width:0;
    height:2px;
    background:var(--brown);
    z-index:10001
}


/* NAVBAR */

.navbar{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:82px;
    z-index:1000;
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    padding:0 4vw;
    transition:
        height .65s var(--ease),
        background .7s var(--ease),
        backdrop-filter .7s var(--ease),
        -webkit-backdrop-filter .7s var(--ease),
        box-shadow .7s var(--ease),
        border-color .7s var(--ease);
    border-bottom:1px solid transparent
}

.navbar.scrolled{
    height:68px;
    background:rgba(229,222,217,.58);
    backdrop-filter:blur(22px) saturate(120%);
    -webkit-backdrop-filter:blur(22px) saturate(120%);
    border-bottom-color:rgba(73,35,31,.1);
    box-shadow:0 10px 40px rgba(73,35,31,.05)
}

.brand{
    justify-self:start;
    display:flex
}

.brand img{
    width:88px;
    height:auto;
    display:block
}

.nav-links{
    display:flex;
    gap:34px
}

.nav-links a{
    position:relative;
    font-size:10px;
    font-weight:600;
    letter-spacing:.14em
}

.nav-links a::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-7px;
    width:100%;
    height:1px;
    background:var(--brown);
    transform:scaleX(0);
    transform-origin:right;
    transition:transform .4s var(--ease)
}

.nav-links a:hover::after,
.nav-links a:focus-visible::after{
    transform:scaleX(1);
    transform-origin:left
}

.nav-cta{
    justify-self:end;
    display:flex;
    align-items:center;
    gap:13px;
    font-size:10px;
    font-weight:600;
    letter-spacing:.13em
}

.arrow{
    font-size:16px;
    transition:transform .35s var(--ease)
}

.nav-cta:hover .arrow,
.hero-button:hover .arrow,
.contact-button:hover .arrow{
    transform:translate(3px,-3px)
}

.menu-toggle{
    display:none
}


/* MOBILE MENU */

.mobile-menu{
    position:fixed;
    inset:0;
    z-index:950;
    background:var(--brown);
    color:var(--cream);
    transform:translateY(-100%);
    transition:transform .7s var(--ease)
}

.mobile-menu.open{
    transform:translateY(0)
}

.mobile-menu-inner{
    height:100%;
    padding:130px 8vw 50px;
    display:flex;
    flex-direction:column
}

.mobile-menu-inner>p{
    font-size:10px;
    letter-spacing:.2em;
    opacity:.5
}

.mobile-menu nav{
    margin-top:auto
}

.mobile-menu nav a{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:17px 0;
    border-bottom:1px solid var(--white-line);
    font-size:clamp(30px,9vw,62px);
    font-family:var(--serif)
}

.mobile-menu nav a span{
    font-family:var(--sans);
    font-size:10px;
    opacity:.5
}


/* HERO */

.hero{
    position:relative;
    min-height:100svh;
    overflow:hidden;
    display:flex;
    align-items:center;
    background:var(--cream)
}

.hero-content{
    position:relative;
    width:100%;
    padding:150px 9vw 100px;
    z-index:3
}

.hero-topline{
    display:flex;
    align-items:center;
    gap:11px;
    font-size:9px;
    letter-spacing:.19em;
    font-weight:600
}

.topline-dot{
    width:6px;
    height:6px;
    border-radius:50%;
    background:var(--brown)
}

.hero-title-wrap{
    margin-top:30px;
    padding:10px 0 22px
}

.hero-title{
    font-size:clamp(67px,12.2vw,188px);
    line-height:.83;
    letter-spacing:-.065em;
    font-weight:600;
    position:relative;
    z-index:2
}

.title-line{
    display:block;
    overflow:visible;
    padding:3px 0 7px
}

.title-line>span{
    display:inline-block;
    transform:translateY(115%);
    opacity:0;
    transition:
        transform 1.05s var(--ease),
        opacity .8s var(--ease)
}

.hero.loaded .title-line>span{
    transform:translateY(0);
    opacity:1
}

.hero.loaded .title-line:nth-child(1)>span{
    transition-delay:.15s
}

.hero.loaded .title-line:nth-child(2)>span{
    transition-delay:.27s
}

.hero.loaded .title-line:nth-child(3)>span{
    transition-delay:.39s
}

.title-script{
    font-family:var(--serif);
    font-style:italic;
    font-weight:500;
    padding-left:12vw
}

.hero-side-copy{
    position:absolute;
    right:9vw;
    top:43%;
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:4px;
    font-size:9px;
    line-height:1.4;
    letter-spacing:.16em;
    font-weight:600
}

.hero-bottom{
    margin-top:46px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    max-width:780px
}

.hero-bottom p{
    max-width:300px;
    font-size:12px;
    line-height:1.7;
    color:#705c56
}

.hero-button,
.contact-button{
    min-width:190px;
    height:56px;
    padding:0 22px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    background:var(--brown);
    color:var(--cream);
    font-size:10px;
    font-weight:600;
    letter-spacing:.12em;
    transition:
        transform .4s var(--ease),
        box-shadow .4s var(--ease)
}

.hero-button:hover,
.contact-button:hover{
    box-shadow:0 18px 45px rgba(73,35,31,.18)
}

.hero-water{
    position:absolute;
    right:-7vw;
    top:15%;
    width:47vw;
    height:47vw;
    max-width:700px;
    max-height:700px;
    border-radius:50%;
    background:
        radial-gradient(
            circle at 35% 30%,
            rgba(255,255,255,.72),
            transparent 28%
        ),
        radial-gradient(
            circle at 60% 65%,
            rgba(73,35,31,.1),
            transparent 60%
        ),
        rgba(229,222,217,.3);
    border:1px solid rgba(73,35,31,.12);
    box-shadow:
        inset -30px -30px 80px rgba(73,35,31,.08),
        0 40px 100px rgba(73,35,31,.08);
    filter:blur(.2px);
    transition:transform .2s linear
}

.hero-orbit{
    position:absolute;
    right:1vw;
    top:20%;
    width:54vw;
    height:28vw;
    border:1px solid rgba(73,35,31,.12);
    border-radius:50%;
    transform:rotate(-25deg);
    pointer-events:none
}

.orbit-two{
    width:42vw;
    height:20vw;
    right:5vw;
    top:30%;
    transform:rotate(18deg);
    opacity:.65
}

.hero-tagline{
    position:absolute;
    left:9vw;
    bottom:40px;
    font-size:11px;
    letter-spacing:.03em;
    z-index:4
}

.hero-tagline strong{
    font-family:var(--serif);
    font-style:italic;
    font-weight:500
}

.hero-scroll{
    position:absolute;
    right:4vw;
    bottom:35px;
    display:flex;
    align-items:center;
    gap:15px;
    font-size:8px;
    letter-spacing:.16em;
    transform:rotate(90deg);
    transform-origin:right center
}

.scroll-line{
    width:60px;
    height:1px;
    background:var(--brown)
}

.hero-coordinate{
    position:absolute;
    top:50%;
    left:3vw;
    font-size:8px;
    letter-spacing:.16em;
    writing-mode:vertical-rl;
    opacity:.45
}


/* GENERAL SECTIONS */

.section{
    position:relative;
    padding:150px 9vw
}

.section-intro{
    display:flex;
    align-items:center;
    gap:16px;
    font-size:9px;
    font-weight:600;
    letter-spacing:.18em
}

.section-number{
    font-family:var(--serif);
    font-style:italic;
    font-size:18px
}


/* ABOUT */

.about{
    min-height:850px;
    display:flex;
    flex-direction:column;
    justify-content:center
}

.about-main{
    margin-top:80px;
    display:grid;
    grid-template-columns:1.35fr .65fr;
    gap:10vw;
    align-items:end
}

.about-statement{
    max-width:850px;
    font-size:clamp(52px,7vw,110px);
    line-height:.93;
    letter-spacing:-.055em;
    font-weight:500
}

.about-statement em,
.services-heading em,
.process-heading em,
.statement-content em,
.faq-layout em,
.contact-content em{
    font-family:var(--serif);
    font-style:italic;
    font-weight:500
}

.about-copy{
    max-width:360px;
    padding-bottom:12px
}

.about-copy p{
    font-size:12px;
    line-height:1.8;
    color:#765f59
}

.about-copy .large-copy{
    color:var(--brown);
    font-size:16px;
    line-height:1.55;
    margin-bottom:26px
}

.about-watermark{
    position:absolute;
    right:-2vw;
    bottom:20px;
    font-size:clamp(100px,18vw,300px);
    font-weight:700;
    letter-spacing:-.09em;
    color:rgba(73,35,31,.035);
    pointer-events:none
}


/* MARQUEE */

.marquee-section{
    overflow:hidden;
    padding:25px 0 30px;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line)
}

.marquee-row{
    overflow:hidden
}

.marquee-row+.marquee-row{
    margin-top:5px
}

.marquee-track{
    width:max-content;
    display:flex;
    align-items:center;
    gap:30px;
    animation:marquee 28s linear infinite
}

.marquee-row.reverse .marquee-track{
    animation-direction:reverse
}

.marquee-track span{
    font-size:clamp(25px,3.5vw,52px);
    font-weight:600;
    letter-spacing:-.04em
}

.marquee-track i{
    font-style:normal;
    font-size:12px
}

@keyframes marquee{
    to{
        transform:translateX(-50%)
    }
}


/* SERVICES */

.services{
    background:var(--cream-light)
}

.services-heading{
    margin-top:80px;
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:50px
}

.services-heading h2,
.process-heading h2{
    max-width:760px;
    font-size:clamp(54px,7vw,110px);
    line-height:.9;
    letter-spacing:-.055em;
    font-weight:500
}

.services-heading p{
    max-width:280px;
    font-size:12px;
    line-height:1.7;
    color:#765f59
}

.service-grid{
    margin-top:100px;
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line)
}

.service-card{
    position:relative;
    min-height:390px;
    padding:35px;
    background:var(--cream-light);
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    overflow:hidden;
    transition:
        background .5s var(--ease),
        color .5s var(--ease),
        transform .5s var(--ease)
}

.service-card::before{
    content:"";
    position:absolute;
    width:180px;
    height:180px;
    right:-60px;
    top:-60px;
    border-radius:50%;
    border:1px solid rgba(73,35,31,.13);
    transition:transform .7s var(--ease)
}

.service-card:hover{
    background:var(--brown);
    color:var(--cream);
    transform:translateY(-5px)
}

.service-card:hover::before{
    transform:scale(2);
    border-color:rgba(229,222,217,.2)
}

.card-number{
    position:absolute;
    top:35px;
    left:35px;
    font-size:9px;
    letter-spacing:.15em;
    opacity:.5
}

.card-icon{
    position:absolute;
    top:28px;
    right:34px;
    font-size:42px;
    font-family:var(--serif)
}

.service-card h3{
    position:relative;
    font-size:clamp(27px,3vw,45px);
    letter-spacing:-.045em;
    font-weight:600
}

.service-card p{
    position:relative;
    max-width:330px;
    margin-top:13px;
    font-size:11px;
    line-height:1.7;
    opacity:.62
}

.card-arrow{
    position:absolute;
    bottom:34px;
    right:35px;
    font-size:22px;
    transition:transform .4s var(--ease)
}

.service-card:hover .card-arrow{
    transform:translate(4px,-4px)
}


/* STATEMENT */

.statement{
    position:relative;
    min-height:780px;
    overflow:hidden;
    display:grid;
    place-items:center;
    background:var(--brown);
    color:var(--cream)
}

.statement-content{
    position:relative;
    z-index:3;
    width:min(900px,80%);
    text-align:center
}

.statement-content>span{
    font-size:9px;
    letter-spacing:.2em;
    opacity:.55
}

.statement-content h2{
    margin-top:45px;
    font-size:clamp(52px,7vw,105px);
    line-height:.96;
    letter-spacing:-.055em;
    font-weight:500
}

.statement-ring{
    position:absolute;
    border:1px solid rgba(229,222,217,.14);
    border-radius:50%
}

.ring-one{
    width:75vw;
    height:75vw;
    max-width:1000px;
    max-height:1000px
}

.ring-two{
    width:48vw;
    height:48vw;
    max-width:700px;
    max-height:700px
}

.statement-liquid{
    position:absolute;
    width:500px;
    height:500px;
    border-radius:50%;
    background:
        radial-gradient(
            circle at 40% 35%,
            rgba(229,222,217,.12),
            transparent 65%
        );
    filter:blur(5px)
}


/* PROCESS */

.process{
    background:var(--cream)
}

.process-heading{
    margin-top:80px
}

.process-timeline{
    position:relative;
    margin-top:100px;
    max-width:1000px;
    margin-left:auto
}

.process-line{
    position:absolute;
    left:23px;
    top:0;
    bottom:0;
    width:1px;
    background:var(--line)
}

.process-line span{
    display:block;
    width:100%;
    height:0;
    background:var(--brown);
    transition:height 1.5s var(--ease)
}

.process-timeline.active .process-line span{
    height:100%
}

.process-step{
    position:relative;
    display:grid;
    grid-template-columns:48px 1fr;
    gap:35px;
    padding:0 0 95px
}

.process-step:last-child{
    padding-bottom:0
}

.step-number{
    position:relative;
    z-index:2;
    width:47px;
    height:47px;
    display:grid;
    place-items:center;
    background:var(--cream);
    border:1px solid var(--brown);
    border-radius:50%;
    font-size:9px;
    font-weight:600
}

.process-step h3{
    font-size:15px;
    letter-spacing:.05em
}

.process-step p{
    max-width:470px;
    margin-top:12px;
    color:#765f59;
    font-size:12px;
    line-height:1.8
}


/* FAQ */

.faq{
    background:var(--cream-light)
}

.faq-layout{
    margin-top:90px;
    display:grid;
    grid-template-columns:.7fr 1.3fr;
    gap:10vw
}

.faq-layout h2{
    font-size:clamp(60px,8vw,120px);
    line-height:.85;
    letter-spacing:-.06em;
    font-weight:500
}

.faq-list{
    border-top:1px solid var(--line)
}

.faq-item{
    border-bottom:1px solid var(--line)
}

.faq-item summary{
    list-style:none;
    cursor:pointer;
    padding:28px 0;
    display:flex;
    justify-content:space-between;
    gap:30px;
    font-size:13px;
    font-weight:600
}

.faq-item summary::-webkit-details-marker{
    display:none
}

.faq-item summary span{
    font-size:20px;
    font-weight:400;
    transition:transform .4s var(--ease)
}

.faq-item[open] summary span{
    transform:rotate(45deg)
}

.faq-item p{
    max-width:600px;
    padding:0 50px 28px 0;
    font-size:12px;
    line-height:1.8;
    color:#765f59
}


/* CONTACT */

.contact{
    min-height:850px;
    overflow:hidden;
    background:var(--brown);
    color:var(--cream);
    display:flex;
    flex-direction:column
}

.contact-top{
    display:flex;
    justify-content:space-between;
    font-size:9px;
    letter-spacing:.18em;
    opacity:.55
}

.contact-content{
    position:relative;
    z-index:2;
    margin:auto 0;
    text-align:center
}

.contact-content h2{
    max-width:1000px;
    margin:auto;
    font-size:clamp(58px,8vw,125px);
    line-height:.88;
    letter-spacing:-.06em;
    font-weight:500
}

.contact-content p{
    max-width:360px;
    margin:35px auto;
    font-size:12px;
    line-height:1.7;
    opacity:.65
}

.contact-button{
    margin:auto;
    background:var(--cream);
    color:var(--brown)
}

.contact-details{
    margin-top:27px;
    display:flex;
    justify-content:center;
    gap:30px
}

.contact-details a{
    font-size:11px;
    letter-spacing:.05em;
    border-bottom:1px solid rgba(229,222,217,.3);
    padding-bottom:4px
}

.contact-orb{
    position:absolute;
    width:50vw;
    height:50vw;
    max-width:750px;
    max-height:750px;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    border-radius:50%;
    border:1px solid rgba(229,222,217,.1);
    box-shadow:
        0 0 100px rgba(229,222,217,.04),
        inset 0 0 100px rgba(229,222,217,.03)
}

.contact-bottom{
    display:flex;
    justify-content:space-between;
    padding-top:50px;
    font-size:8px;
    letter-spacing:.15em;
    opacity:.4
}


/* MODAL */

.modal{
    position:fixed;
    inset:0;
    z-index:2000;
    display:grid;
    place-items:center;
    visibility:hidden;
    opacity:0;
    transition:
        opacity .4s var(--ease),
        visibility .4s
}

.modal.open{
    visibility:visible;
    opacity:1
}

.modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(50,22,19,.55);
    backdrop-filter:blur(8px)
}

.modal-panel{
    position:relative;
    z-index:2;
    width:min(650px,calc(100% - 30px));
    max-height:90vh;
    overflow-y:auto;
    padding:48px;
    background:var(--cream);
    color:var(--brown);
    transform:translateY(25px) scale(.98);
    transition:transform .5s var(--ease)
}

.modal.open .modal-panel{
    transform:translateY(0) scale(1)
}

.modal-close{
    position:absolute;
    top:20px;
    right:25px;
    width:40px;
    height:40px;
    background:transparent;
    color:var(--brown);
    font-size:30px
}

.modal-heading>span{
    font-size:8px;
    letter-spacing:.18em
}

.modal-heading h2{
    margin-top:35px;
    max-width:500px;
    font-size:clamp(42px,6vw,70px);
    line-height:.92;
    letter-spacing:-.05em;
    font-weight:500
}

.modal-heading h2 em{
    font-family:var(--serif);
    font-style:italic;
    font-weight:500
}

#contactForm{
    margin-top:45px
}

#contactForm label{
    display:block;
    margin-bottom:25px
}

#contactForm label>span{
    display:block;
    margin-bottom:9px;
    font-size:9px;
    letter-spacing:.12em;
    font-weight:600
}

#contactForm input,
#contactForm textarea,
#contactForm select{
    width:100%;
    border:0;
    border-bottom:1px solid rgba(73,35,31,.25);
    outline:none;
    padding:12px 0;
    background:transparent;
    color:var(--brown);
    font-size:13px;
    resize:vertical
}

#contactForm input:focus,
#contactForm textarea:focus,
#contactForm select:focus{
    border-color:var(--brown)
}

#contactForm input.invalid,
#contactForm textarea.invalid,
#contactForm select.invalid{
    border-color:#9a3e32
}

.field-error{
    display:block;
    min-height:15px;
    margin-top:5px;
    color:#9a3e32;
    font-size:9px
}

.form-submit{
    width:100%;
    height:55px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 20px;
    background:var(--brown);
    color:var(--cream);
    font-size:10px;
    letter-spacing:.12em;
    font-weight:600;
    transition:opacity .3s
}

.form-submit:hover{
    opacity:.88
}

.form-submit:disabled{
    opacity:.5;
    cursor:wait
}

.form-note{
    margin-top:15px;
    font-size:9px;
    line-height:1.5;
    opacity:.55
}


/* TOAST */

.toast{
    position:fixed;
    right:25px;
    bottom:25px;
    z-index:3000;
    display:flex;
    align-items:center;
    gap:11px;
    padding:15px 19px;
    background:var(--brown);
    color:var(--cream);
    font-size:10px;
    letter-spacing:.04em;
    transform:translateY(120px);
    opacity:0;
    transition:
        transform .5s var(--ease),
        opacity .5s var(--ease)
}

.toast.show{
    transform:translateY(0);
    opacity:1
}

.toast-icon{
    width:20px;
    height:20px;
    display:grid;
    place-items:center;
    border:1px solid rgba(229,222,217,.35);
    border-radius:50%
}


/* FOOTER */

.footer{
    min-height:120px;
    padding:30px 4vw;
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    background:var(--brown-dark);
    color:var(--cream)
}

.footer img{
    width:80px;
    filter:brightness(0) invert(1)
}

.footer p,
.footer a{
    font-size:8px;
    letter-spacing:.14em;
    opacity:.5
}

.footer a{
    justify-self:end
}


/* REVEALS */

.reveal{
    opacity:0;
    transform:translateY(35px);
    transition:
        opacity .9s var(--ease),
        transform .9s var(--ease)
}

.reveal.visible{
    opacity:1;
    transform:translateY(0)
}


/* FOCUS */

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible{
    outline:2px solid currentColor;
    outline-offset:5px
}


/* RESPONSIVE */

@media (max-width:900px){

    .navbar{
        grid-template-columns:1fr auto
    }

    .nav-links,
    .nav-cta{
        display:none
    }

    .menu-toggle{
        display:flex;
        width:45px;
        height:45px;
        background:transparent;
        flex-direction:column;
        justify-content:center;
        align-items:flex-end;
        gap:7px
    }

    .menu-toggle span{
        width:24px;
        height:1px;
        background:var(--brown);
        transition:transform .4s var(--ease)
    }

    .menu-toggle span:last-child{
        width:16px
    }

    .menu-toggle.open span:first-child{
        transform:translateY(4px) rotate(45deg)
    }

    .menu-toggle.open span:last-child{
        width:24px;
        transform:translateY(-4px) rotate(-45deg)
    }

    .hero-content{
        padding:140px 7vw 100px
    }

    .hero-title{
        font-size:clamp(62px,13vw,120px)
    }

    .hero-side-copy,
    .hero-coordinate{
        display:none
    }

    .hero-water{
        width:65vw;
        height:65vw;
        right:-15vw;
        top:23%;
        opacity:.65
    }

    .hero-orbit{
        display:none
    }

    .about-main{
        grid-template-columns:1fr;
        gap:60px
    }

    .services-heading{
        flex-direction:column;
        align-items:flex-start
    }

    .faq-layout{
        grid-template-columns:1fr;
        gap:70px
    }

    .contact-content h2{
        max-width:700px
    }
}


@media (max-width:600px){

    .navbar{
        height:70px;
        padding:0 6vw
    }

    .navbar.scrolled{
        height:62px
    }

    .brand img{
        width:76px
    }

    .hero-content{
        padding:120px 6vw 95px
    }

    .hero-title{
        font-size:clamp(52px,15vw,88px);
        line-height:.88
    }

    .title-script{
        padding-left:7vw
    }

    .hero-title-wrap{
        margin-top:24px
    }

    .hero-bottom{
        margin-top:34px;
        flex-direction:column;
        align-items:flex-start;
        gap:25px
    }

    .hero-bottom p{
        max-width:270px;
        font-size:11px
    }

    .hero-button,
    .contact-button{
        width:100%;
        min-width:0
    }

    .hero-tagline{
        left:6vw;
        bottom:25px;
        font-size:10px
    }

    .hero-scroll{
        display:none
    }

    .section{
        padding:100px 6vw
    }

    .about{
        min-height:700px
    }

    .about-main{
        margin-top:55px
    }

    .about-statement{
        font-size:clamp(46px,13vw,76px)
    }

    .about-copy .large-copy{
        font-size:14px
    }

    .service-grid{
        grid-template-columns:1fr;
        margin-top:65px
    }

    .service-card{
        min-height:340px
    }

    .services-heading,
    .process-heading{
        margin-top:55px
    }

    .services-heading h2,
    .process-heading h2{
        font-size:clamp(48px,13vw,78px)
    }

    .statement{
        min-height:650px
    }

    .statement-content{
        width:88%
    }

    .statement-content h2{
        font-size:clamp(44px,12vw,72px)
    }

    .statement-liquid{
        width:320px;
        height:320px
    }

    .ring-one{
        width:130vw;
        height:130vw
    }

    .ring-two{
        width:85vw;
        height:85vw
    }

    .process-timeline{
        margin-top:65px
    }

    .process-step{
        grid-template-columns:42px 1fr;
        gap:22px;
        padding-bottom:70px
    }

    .step-number{
        width:42px;
        height:42px
    }

    .process-line{
        left:20px
    }

    .faq-layout{
        margin-top:60px
    }

    .faq-layout h2{
        font-size:clamp(52px,14vw,80px)
    }

    .faq-item summary{
        padding:23px 0;
        font-size:12px
    }

    .faq-item p{
        padding-right:20px
    }

    .contact{
        min-height:760px
    }

    .contact-top{
        font-size:7px
    }

    .contact-content h2{
        font-size:clamp(48px,13vw,80px)
    }

    .contact-content p{
        font-size:11px;
        padding:0 15px
    }

    .contact-details{
        flex-direction:column;
        align-items:center;
        gap:14px
    }

    .contact-orb{
        width:100vw;
        height:100vw
    }

    .contact-bottom{
        flex-direction:column;
        gap:12px;
        padding-top:35px
    }

    .modal-panel{
        padding:38px 25px
    }

    .modal-heading h2{
        font-size:clamp(40px,11vw,62px)
    }

    .footer{
        grid-template-columns:1fr;
        gap:20px;
        text-align:center
    }

    .footer a{
        justify-self:center
    }

    .footer img{
        width:70px
    }

}

@media (prefers-reduced-motion:reduce){

    html{
        scroll-behavior:auto
    }

    *,
    *::before,
    *::after{
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
        transition-duration:.01ms!important
    }

    .reveal{
        opacity:1;
        transform:none
    }
}