:root{
    --bg:#f4f0e8;
    --surface:#ffffff;
    --text:#000;
    --muted:#8a8072;
    --border:#e1dace;
    --accent:#a8462c;
    --font-display:'Spectral', serif;
    --font-body:'Inter', sans-serif;
    --edge-ui:clamp(1rem,2vw,1.8rem);
    --page:1440px;
    --rail:max(0px,calc((100% - 1440px) / 2));
}

*{box-sizing:border-box}

html{scroll-behavior:smooth}

@view-transition{
    navigation:auto;
}

::view-transition-old(root){animation-duration:0.25s}
::view-transition-new(root){animation-duration:0.32s}

body{
    margin:0;
    background:var(--bg);
    color:var(--text);
    font-family:var(--font-body);
    font-size:16px;
    line-height:1.4;
    -webkit-font-smoothing:antialiased;
    animation:page-enter 0.6s cubic-bezier(.2,.7,.2,1);
}

@keyframes page-enter{
    from{opacity:0;transform:translateY(10px)}
    to{opacity:1;transform:none}
}

.reveal{
    opacity:0;
    transform:translateY(16px);
    transition:opacity 0.6s cubic-bezier(.2,.7,.2,1),transform 0.6s cubic-bezier(.2,.7,.2,1);
}

.reveal.is-visible{opacity:1;transform:none}

@media (prefers-reduced-motion: reduce){
    body{animation:none}
    .reveal{opacity:1;transform:none;transition:none}
}

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

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

h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.15;text-wrap:balance;margin:0}

p{margin:0}

.site-header{
    position:fixed;
    top:0;left:0;right:0;
    z-index:50;
    display:flex;
    align-items:center;
    gap:0.75rem;
    padding:1rem clamp(1.25rem,4vw,3rem);
    background:rgba(244,240,232,0.78);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(28,24,18,0.06);
}

.site-header__mark{
    width:22px;height:22px;
    color:var(--text);
    flex-shrink:0;
}

.site-header__mark svg{width:100%;height:100%;display:block}

.site-header__word{
    font-family:var(--font-display);
    font-size:1.05rem;
    letter-spacing:0.01em;
    color:var(--text);
    margin-right:auto;
}

.site-header__nav{
    display:flex;
    gap:1.75rem;
}

.site-header__nav a{
    color:var(--text);
    font-size:0.85rem;
    letter-spacing:0.02em;
    text-transform:uppercase;
}

.site-header__nav a:hover{color:var(--accent)}

.site-header__toggle{
    display:none;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    width:32px;height:32px;
    padding:0;
    border:none;
    background:transparent;
    cursor:pointer;
    z-index:60;
}

.site-header__toggle span{
    display:block;
    width:100%;height:1.5px;
    background:var(--text);
    transition:transform 0.25s ease,opacity 0.25s ease;
}

.site-header__toggle[aria-expanded="true"]{z-index:59}
.site-header__toggle[aria-expanded="true"] span{background:var(--bg)}
.site-header__toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.site-header__toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.site-header__toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

.site-header__scrim{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(28,24,18,0.35);
    opacity:0;
    transition:opacity 0.3s ease;
    z-index:55;
    pointer-events:none;
}

@media (max-width:760px){
    .site-header__toggle{display:flex}

    .site-header__nav{
        position:fixed;
        top:0;right:0;
        height:100dvh;
        width:min(78vw,320px);
        flex-direction:column;
        align-items:flex-start;
        justify-content:center;
        gap:2rem;
        padding:2rem clamp(1.75rem,8vw,3rem);
        background:var(--text);
        box-shadow:-16px 0 40px rgba(0,0,0,0.2);
        transform:translateX(100%);
        transition:transform 0.35s cubic-bezier(.2,.7,.2,1);
        z-index:58;
    }

    .site-header__nav a{
        color:var(--bg);
    }

    .site-header__nav.is-open{transform:translateX(0)}

    .site-header__scrim{display:block}

    .site-header__scrim.is-open{
        opacity:1;
        pointer-events:auto;
    }
}

.site-footer{
    max-width:1400px;
    margin:0 auto;
    padding:5rem 1.5rem 2rem;
    color:var(--muted);
    border-top:1px solid var(--border);
}

.site-footer__top{
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    gap:2.5rem;
    padding-bottom:2.5rem;
}

.site-footer__brand{
    display:flex;
    flex-direction:column;
    gap:0.85rem;
}

.site-footer__mark{width:24px;height:24px;color:var(--text)}
.site-footer__mark svg{width:100%;height:100%}

.site-footer__word{
    font-family:var(--font-display);
    font-size:1.05rem;
    color:var(--text);
}

.site-footer__tagline{
    font-size:0.85rem;
    max-width:20rem;
}

.site-footer__col{
    display:flex;
    flex-direction:column;
    gap:0.65rem;
}

.site-footer__heading{
    font-size:0.75rem;
    letter-spacing:0.05em;
    text-transform:uppercase;
    color:var(--text);
    margin-bottom:0.25rem;
}

.site-footer__col a{font-size:0.9rem}
.site-footer__col a:hover{color:var(--accent)}

.site-footer__bottom{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding-top:1.5rem;
    border-top:1px solid var(--border);
    font-size:0.8rem;
}

.site-footer__bottom a:hover{color:var(--accent)}

@media (max-width:720px){
    .site-footer__top{grid-template-columns:1fr;gap:2rem}
}

.cookie-banner{
    position:fixed;
    left:1.5rem;right:1.5rem;bottom:1.5rem;
    z-index:100;
    max-width:640px;
    margin:0 auto;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:1rem 1.5rem;
    padding:1.25rem 1.5rem;
    background:var(--text);
    color:var(--bg);
    border-radius:6px;
    box-shadow:0 12px 32px rgba(28,24,18,0.25);
    transform:none;
    animation:cookie-in 0.5s cubic-bezier(.2,.7,.2,1) 0.25s both;
}

@keyframes cookie-in{
    from{transform:translateY(120%)}
    to{transform:none}
}

@keyframes cookie-out{
    from{transform:none}
    to{transform:translateY(120%)}
}

.cookie-banner[hidden]{display:none}

.has-consent .cookie-banner{display:none}

.cookie-banner.is-leaving{animation:cookie-out 0.45s cubic-bezier(.2,.7,.2,1) both}

@media (prefers-reduced-motion: reduce){
    .cookie-banner{animation:none}
    .cookie-banner.is-leaving{animation:none;opacity:0}
}

.cookie-banner p{
    flex:1 1 260px;
    margin:0;
    font-size:0.85rem;
    line-height:1.4;
}

.cookie-banner a{text-decoration:underline}

.cookie-banner__actions{
    display:flex;
    gap:0.75rem;
    flex-shrink:0;
}

.cookie-banner__decline,
.cookie-banner__accept{
    font-family:var(--font-body);
    font-size:0.82rem;
    padding:0.55rem 1.1rem;
    border-radius:999px;
    cursor:pointer;
    border:1px solid rgba(244,240,232,0.35);
}

.cookie-banner__decline{
    background:transparent;
    color:var(--bg);
}

.cookie-banner__accept{
    background:var(--accent);
    border-color:var(--accent);
    color:#fff;
}

@media (max-width:520px){
    .cookie-banner{left:1rem;right:1rem;bottom:1rem;flex-direction:column;align-items:stretch}
    .cookie-banner__actions{justify-content:flex-end}
}

.home-intro{
    max-width:60rem;
    margin:0 auto;
    padding:clamp(4rem,10vw,7rem) 1.5rem 2rem;
    text-align:center;
    display:flex;
    flex-direction:column;
    gap:1.25rem;
    border-top:1px solid var(--border);
}

.home-intro h1{font-size:clamp(2.2rem,5vw,3.6rem)}

.home-intro__lede{
    max-width:40rem;
    margin:0 auto;
    color:var(--muted);
    font-size:1.1rem;
}

.home-split{
    max-width:1100px;
    margin:0 auto;
    padding:2rem 1.5rem 6rem;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:clamp(1.5rem,4vw,3rem);
}

.home-split__block{
    display:flex;
    flex-direction:column;
    gap:0.85rem;
    padding:clamp(1.5rem,3vw,2.25rem);
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:2px;
}

.home-split__block h2{
    font-size:0.75rem;
    font-family:var(--font-body);
    font-weight:600;
    letter-spacing:0.05em;
    text-transform:uppercase;
    color:var(--accent);
}

.home-split__block p{color:var(--muted);font-size:0.98rem}

.home-split__link{
    font-size:0.9rem;
    font-weight:500;
    margin-top:0.25rem;
}

.home-split__link:hover{color:var(--accent)}

.services{
    max-width:1200px;
    margin:0 auto;
    padding:2rem 1.5rem 4rem;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:2.5rem;
}

.services h2{
    font-size:clamp(1.6rem,3.5vw,2.2rem);
    text-align:center;
}

.services__grid{
    width:100%;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:clamp(1.25rem,2.5vw,2rem);
}

.services__item{
    display:flex;
    flex-direction:column;
    gap:0.6rem;
    padding:clamp(1.25rem,2.5vw,1.75rem);
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:2px;
}

.services__item h3{
    font-size:1.1rem;
    font-weight:400;
}

.services__item p{
    color:var(--muted);
    font-size:0.92rem;
    line-height:1.4;
}

.services__cta{
    font-size:0.9rem;
    font-weight:500;
    color:var(--text);
}

.services__cta:hover{color:var(--accent)}

@media (max-width:900px){
    .services__grid{grid-template-columns:repeat(2,1fr)}
}

@media (max-width:720px){
    .services__grid{grid-template-columns:1fr}
    .home-split{grid-template-columns:1fr}
}

.stats{
    max-width:1100px;
    margin:0 auto;
    padding:0 1.5rem 3rem;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1.5rem;
    text-align:center;
}

.stats__item{
    display:flex;
    flex-direction:column;
    gap:0.35rem;
}

.stats__value{
    font-family:var(--font-display);
    font-size:clamp(1.4rem,3vw,1.9rem);
    color:var(--accent);
}

.stats__label{
    font-size:0.8rem;
    color:var(--muted);
}

.featured{
    max-width:1200px;
    margin:0 auto;
    padding:2rem 1.5rem 4rem;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:2.5rem;
}

.featured h2{
    font-size:clamp(1.6rem,3.5vw,2.2rem);
    text-align:center;
}

.featured__grid{
    width:100%;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:clamp(1.25rem,2.5vw,1.75rem);
}

.featured__item{
    display:flex;
    flex-direction:column;
    gap:0.6rem;
}

.featured__image{
    aspect-ratio:4/3;
    overflow:hidden;
    border-radius:2px;
    background:var(--surface);
}

.featured__image img{
    width:100%;height:100%;
    object-fit:cover;
    transition:transform 0.5s cubic-bezier(.2,.7,.2,1);
}

.featured__item:hover .featured__image img{transform:scale(1.05)}

.featured__item h3{font-size:1.05rem}

.featured__item p{
    color:var(--muted);
    font-size:0.88rem;
    line-height:1.4;
}

.featured__meta{
    font-size:0.78rem;
    letter-spacing:0.03em;
    text-transform:uppercase;
    color:var(--accent);
}

.faq{
    max-width:800px;
    margin:0 auto;
    padding:2rem 1.5rem 4rem;
    display:flex;
    flex-direction:column;
    gap:2rem;
}

.faq h2{
    font-size:clamp(1.6rem,3.5vw,2.2rem);
    text-align:center;
}

.faq__list{
    display:flex;
    flex-direction:column;
    gap:0.75rem;
}

.faq__item{
    border:1px solid var(--border);
    border-radius:4px;
    padding:1rem 1.25rem;
    background:var(--surface);
}

.faq__item summary{
    font-family:var(--font-display);
    font-size:1.02rem;
    cursor:pointer;
    list-style:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
}

.faq__item summary::-webkit-details-marker{display:none}

.faq__item summary::after{
    content:"+";
    font-family:var(--font-body);
    font-size:1.2rem;
    color:var(--accent);
    flex-shrink:0;
    transition:transform 0.2s ease;
}

.faq__item[open] summary::after{transform:rotate(45deg)}

.faq__content{
    max-height:0;
    overflow:hidden;
    transition:max-height 0.35s cubic-bezier(.2,.7,.2,1);
}

.faq__content p{
    margin-top:0.75rem;
    padding-bottom:0.1rem;
    color:var(--muted);
    font-size:0.95rem;
    line-height:1.4;
}

@media (max-width:900px){
    .featured__grid{grid-template-columns:repeat(2,1fr)}
}

@media (max-width:560px){
    .stats{grid-template-columns:1fr;gap:1.75rem}
}

@media (max-width:520px){
    .featured__grid{grid-template-columns:1fr}
}

.not-found{
    min-height:60vh;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:1rem;
    text-align:center;
}

.page-projects{
    --edge:clamp(1.6rem,3.4vw,3.06rem);
    background:#fff;
}

.projects{
    display:grid;
    grid-template-columns:minmax(240px,26%) 1fr;
    gap:clamp(3.5rem,9vw,8.1rem);
    align-items:start;
    padding:calc(var(--edge-ui) * 2 + var(--chrome-h)) var(--edge) calc(var(--edge-ui) * 2 + 4rem) calc(var(--edge) + min(6vw,5.4rem));
}

.projects__side{
    position:sticky;
    top:calc(var(--edge-ui) * 2 + var(--chrome-h));
    display:flex;
    flex-direction:column;
    gap:2.6rem;
}

.projects__block{
    display:flex;
    flex-direction:column;
    gap:1rem;
}

.projects__title{
    margin:0;
    font-family:var(--font-body);
    font-size:0.7rem;
    font-weight:600;
    letter-spacing:0.14em;
    line-height:1.4;
    text-transform:uppercase;
    color:var(--text);
}

.projects__lede{
    margin:0;
    font-size:0.64rem;
    letter-spacing:0.07em;
    line-height:1.55;
    text-transform:uppercase;
    text-align:justify;
    color:var(--muted);
}

.projects__controls{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:0.4rem 1.4rem;
    padding-bottom:1.6rem;
    border-bottom:1px solid var(--border);
}

.filter-dropdown{position:relative}

.filter-dropdown__trigger{
    display:inline-flex;
    align-items:center;
    gap:0.45rem;
    padding:0;
    font-family:var(--font-body);
    font-size:0.62rem;
    font-weight:500;
    letter-spacing:0.13em;
    text-transform:uppercase;
    color:var(--text);
    background:none;
    border:none;
    cursor:pointer;
    transition:opacity 0.25s ease;
}

@media (hover:hover){
    .filter-dropdown__trigger:hover{color:var(--accent)}
}

.filter-dropdown.has-selection .filter-dropdown__trigger{color:var(--accent)}

.filter-dropdown__caret{
    width:8px;
    height:5px;
    flex:none;
    transition:transform 0.25s ease;
}

.filter-dropdown__panel{
    display:none;
    position:absolute;
    top:calc(100% + 0.9rem);
    left:0;
    z-index:20;
    min-width:11rem;
    flex-direction:column;
    padding:0.5rem 0;
    background:var(--surface);
    border:1px solid var(--border);
}

.filter-dropdown.is-open .filter-dropdown__panel{display:flex}

.filter-dropdown.is-open .filter-dropdown__caret{transform:rotate(180deg)}

@media (hover:hover){
    .filter-dropdown:hover .filter-dropdown__panel{display:flex}

    .filter-dropdown:hover .filter-dropdown__caret{transform:rotate(180deg)}
}

.projects__pill{
    padding:0.5rem 1rem;
    font-family:var(--font-body);
    font-size:0.6rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    text-align:left;
    color:var(--muted);
    background:none;
    border:none;
    cursor:pointer;
    transition:color 0.2s ease;
}

.projects__pill:hover{color:var(--text)}

.projects__pill.is-active{color:var(--text)}

.projects__sort{margin-left:auto}

.projects__sort select{
    font-family:var(--font-body);
    font-size:0.62rem;
    font-weight:500;
    letter-spacing:0.13em;
    text-transform:uppercase;
    color:var(--text);
    background:none;
    border:none;
    cursor:pointer;
}

.visually-hidden{
    position:absolute;
    width:1px;height:1px;
    padding:0;margin:-1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
    white-space:nowrap;
}

.projects__faq-title{
    margin:0 0 1.2rem;
    font-family:var(--font-body);
    font-size:0.62rem;
    font-weight:600;
    letter-spacing:0.13em;
    line-height:1.4;
    text-transform:uppercase;
    color:var(--text);
}

.projects__faq .faq__list{
    display:flex;
    flex-direction:column;
}

.projects__faq .faq__item{
    border-bottom:1px solid var(--border);
    padding:0;
}

.projects__faq .faq__item:first-child{border-top:1px solid var(--border)}

.projects__faq .faq__item summary{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    padding:0.85rem 0;
    font-family:var(--font-body);
    font-size:0.58rem;
    font-weight:400;
    letter-spacing:0.09em;
    line-height:1.4;
    text-transform:uppercase;
    color:var(--muted);
    cursor:pointer;
    list-style:none;
    transition:color 0.2s ease;
}

.projects__faq .faq__item summary:hover{color:var(--text)}

.projects__faq .faq__item summary::-webkit-details-marker{display:none}

.projects__faq .faq__item summary::after{
    content:'+';
    flex:none;
    font-size:0.8rem;
    line-height:1;
    color:var(--muted);
    transition:transform 0.3s ease,color 0.2s ease;
}

.projects__faq .faq__item[open] summary,
.projects__faq .faq__item summary:hover{color:var(--text)}

.projects__faq .faq__item[open] summary::after,
.projects__faq .faq__item summary:hover::after{color:var(--text)}

.projects__faq .faq__item[open] summary::after{transform:rotate(45deg)}

.projects__faq .faq__content p{
    margin:0;
    padding:0 0 0.9rem;
    font-size:0.6rem;
    letter-spacing:0.05em;
    line-height:1.5;
    text-transform:none;
    color:var(--muted);
}

.projects__empty{
    display:none;
    font-size:0.64rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--muted);
}

.projects__empty.is-visible{display:block}

.projects__grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:clamp(1.6rem,3vw,3rem) clamp(1.2rem,2.5vw,2.4rem);
}

.project-card{
    display:flex;
    flex-direction:column;
    gap:0.9rem;
}

.project-card.is-hidden{display:none}

.project-card__image{
    position:relative;
    aspect-ratio:3/2;
    overflow:hidden;
    background:#f2f0ec;
}

.project-card__image img{
    width:100%;height:100%;
    object-fit:cover;
    transition:transform 0.6s cubic-bezier(.2,.7,.2,1);
}

.project-card:hover .project-card__image img{transform:scale(1.04)}

.project-card__body{
    display:flex;
    flex-direction:column;
    gap:0.25rem;
}

.project-card__body h3{
    margin:0;
    font-family:var(--font-body);
    font-size:0.66rem;
    font-weight:600;
    letter-spacing:0.13em;
    line-height:1.4;
    text-transform:uppercase;
    color:var(--text);
    transition:color 0.2s ease;
}

.project-card:hover .project-card__body h3{color:var(--accent)}

.project-card__meta{
    margin:0;
    font-size:0.6rem;
    letter-spacing:0.07em;
    line-height:1.45;
    text-transform:uppercase;
    color:var(--muted);
}

@media (max-width:1000px){
    .projects{
        grid-template-columns:1fr;
        gap:3rem;
        padding-left:var(--edge);
    }

    .projects__side{
        position:static;
        gap:2rem;
    }

    .projects__lede{max-width:36rem}
}

@media (max-width:560px){
    .projects__grid{grid-template-columns:1fr}

    .projects__controls{
        position:relative;
        gap:0.7rem 1.1rem;
    }

    .projects__sort{margin-left:0}

    .filter-dropdown{position:static}

    .filter-dropdown__panel{
        left:0;
        right:auto;
        max-width:100%;
    }
}

@media (max-width:760px){
    body{line-height:1.4}

    h1,h2,h3{line-height:1.2}

    .featured__image,
    .project-card__image{aspect-ratio:16/10}

    .services__item p,
    .featured__item p,
    .faq__content p,
    .home-split__block p,
    .project__description p{line-height:1.4}
}.page-canvas{
    animation:none;
    --edge:clamp(1.6rem,3.4vw,3.06rem);
    --cw:1000;
    background:#fff;
    overflow-x:hidden;
    scrollbar-width:none;
}

.page-canvas::-webkit-scrollbar{width:0;height:0}

.canvas{
    --cycle-k:4.097;
    position:fixed;
    inset:0;
    overflow:hidden;
    z-index:1;
    background:#fff;
}

.canvas__inner{
    position:absolute;
    top:0;
    left:var(--edge);
    right:var(--edge);
    z-index:1;
}

.canvas__flow{
    position:absolute;
    top:0;left:0;right:0;
    will-change:transform;
}

.canvas__copy{
    position:absolute;
    top:calc(var(--cw) * var(--cycle-k) * var(--copy) * 1px);
    left:0;right:0;
}

.canvas__wordmark{
    position:absolute;
    top:50%;
    left:0;right:0;
    z-index:0;
    transform:translateY(-50%);
    margin:0;
    font-family:var(--font-display);
    font-size:calc(var(--cw) * 0.052 * 1px);
    font-weight:300;
    letter-spacing:0.16em;
    line-height:1;
    text-align:center;
    text-indent:0.16em;
    text-transform:uppercase;
    color:var(--text);
    white-space:nowrap;
    pointer-events:none;
}

.canvas-tile,
.canvas-text{
    position:absolute;
    top:calc(var(--cw) * var(--t) * 1px);
    left:calc(var(--c) / 24 * 100%);
    width:calc(var(--s) / 24 * 100%);
    z-index:1;
}

.canvas-text{width:300px}

.canvas-tile{
    display:block;
    aspect-ratio:var(--r);
    overflow:hidden;
    background:#f2f0ec;
}

.canvas-tile picture{display:block;width:100%;height:100%}

.canvas-tile img{
    width:100%;height:100%;
    object-fit:cover;
    transition:transform 0.7s cubic-bezier(.2,.7,.2,1);
    -webkit-user-drag:none;
}

.canvas-tile:hover img{transform:scale(1.03)}

.canvas-tile__label{
    position:absolute;
    left:0;bottom:0;
    padding:0.7rem 0.8rem;
    font-size:0.62rem;
    font-weight:500;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:#fff;
    text-shadow:0 1px 12px rgba(0,0,0,0.6);
    opacity:0;
    transform:translateY(4px);
    transition:opacity 0.35s ease,transform 0.35s ease;
}

.canvas-tile:hover .canvas-tile__label{opacity:1;transform:none}

.canvas-text__title{
    margin:0 0 0.7rem;
    font-family:var(--font-body);
    font-size:0.68rem;
    font-weight:600;
    letter-spacing:0.13em;
    line-height:1.4;
    text-transform:uppercase;
    color:var(--text);
}

.canvas-text__body{
    margin:0;
    font-size:0.66rem;
    font-weight:400;
    letter-spacing:0.07em;
    line-height:1.55;
    text-transform:uppercase;
    text-align:justify;
    color:var(--muted);
}

.plate{
    position:absolute;
    inset:-0.85rem -1.1rem;
    z-index:-1;
    background:rgba(255,255,255,0.5);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    -webkit-mask-image:linear-gradient(to right,transparent,#000 14%,#000 86%,transparent),linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent);
    mask-image:linear-gradient(to right,transparent,#000 14%,#000 86%,transparent),linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent);
    -webkit-mask-composite:source-in;
    mask-composite:intersect;
    opacity:0;
    transition:opacity 0.4s ease;
    pointer-events:none;
}

.has-plate > .plate,
.is-over-image > .plate{opacity:1}

@supports not ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){
    .plate{background:rgba(255,255,255,0.86)}
}

.canvas__spacer{
    position:relative;
    z-index:0;
    width:1px;
    pointer-events:none;
}

.layer-logo,
.layer-nav,
.layer-bar{
    position:fixed;
    z-index:50;
}

.layer-logo{
    top:var(--edge-ui);
    left:var(--edge-ui);
    width:44px;
    height:44px;
    color:var(--text);
}

.layer-logo svg{width:100%;height:100%;display:block}

.layer-nav{
    top:var(--edge-ui);
    right:var(--edge-ui);
    display:flex;
    height:44px;
    align-items:center;
    gap:2.6rem;
}

.layer-nav a,
.layer-bar > span:not(.plate),
.layer-bar a{
    font-size:0.66rem;
    font-weight:500;
    letter-spacing:0.19em;
    text-transform:uppercase;
    color:var(--text);
    transition:color 0.25s ease;
}

.layer-nav a:hover,
.layer-bar a:hover{color:var(--accent)}

.layer-bar{
    left:var(--edge-ui);
    right:var(--edge-ui);
    bottom:var(--edge-ui);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.5rem;
}

.layer-bar > span:not(.plate),
.layer-bar a{
    font-weight:500;
    letter-spacing:0.16em;
    color:#3d3730;
}

.layer-veil{
    position:fixed;
    left:0;right:0;
    z-index:49;
    height:calc(var(--edge-ui) * 2 + 2.1rem);
    background:rgba(255,255,255,0.5);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    opacity:0;
    transition:opacity 0.4s ease;
    pointer-events:none;
}

.layer-veil--top{
    top:0;
    -webkit-mask-image:linear-gradient(to bottom,#000 62%,transparent);
    mask-image:linear-gradient(to bottom,#000 62%,transparent);
}

.layer-veil--bottom{
    bottom:0;
    -webkit-mask-image:linear-gradient(to top,#000 62%,transparent);
    mask-image:linear-gradient(to top,#000 62%,transparent);
}

.layer-veil.is-over-image{opacity:1}

body:not(.page-canvas) .layer-veil{opacity:1}

@supports not ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){
    .layer-veil{background:rgba(255,255,255,0.86)}
}

@media (max-width:760px){
    .canvas{--cycle-k:16.343;--home-anchor:9.314}

    .canvas__wordmark{
        font-size:calc(var(--cw) * 0.105 * 1px);
        letter-spacing:0.16em;
        text-indent:0.16em;
    }

    .canvas-tile,
    .canvas-text{
        top:calc(var(--cw) * var(--mt) * 1px);
        left:calc(var(--mc) / 6 * 100%);
        width:calc(var(--ms) / 6 * 100%);
    }

    .canvas-text__body{line-height:1.5;text-align:left}

    .canvas-tile__label{opacity:1;transform:none}

    .layer-logo{width:34px;height:34px}

    .layer-nav{height:34px}

    .layer-nav{gap:1.1rem}

    .layer-nav a{letter-spacing:0.12em}

    .layer-bar{
        display:grid;
        grid-template-columns:auto auto;
        justify-content:space-between;
        align-items:start;
        gap:0.45rem 1.1rem;
    }

    .layer-bar > span:not(.plate),
    .layer-bar a{letter-spacing:0.1em}

    .layer-bar > span:not(.plate){
        order:3;
        justify-self:end;
        text-align:right;
    }

    .layer-bar a:nth-of-type(2){
        justify-self:end;
        text-align:right;
    }
}

@media (max-width:380px){
    .layer-bar{gap:0.45rem 0.7rem}

    .layer-bar > span:not(.plate),
    .layer-bar a{letter-spacing:0.06em}
}

@media (prefers-reduced-motion: reduce){
    .canvas-tile img,
    .plate{transition:none}
}

.plate{z-index:0}

.canvas-text > *:not(.plate),
.layer-nav > a,
.layer-bar > *:not(.plate),
.layer-logo > svg{
    position:relative;
    z-index:1;
}

@media (max-width:760px){
    .canvas{--cycle-k:16.343;--home-anchor:9.314}

    .layer-nav a{letter-spacing:0.09em}
}

@media (max-width:760px){
    .layer-nav{gap:0.85rem}

    .layer-nav a{letter-spacing:0.07em}
}

.layer-nav a:hover,
.layer-nav a.is-current{
    color:var(--text);
    text-decoration:line-through;
}
.layer-bar a:hover{color:var(--accent)}

.projects__faq .faq__item{
    background:none;
    border:none;
    border-bottom:1px solid var(--border);
    border-radius:0;
    box-shadow:none;
}

.projects__faq .faq__item:first-child{border-top:1px solid var(--border)}

.projects__sort{margin-left:0}

@media (max-width:760px){

    .projects__lede{line-height:1.5}
}

.page-canvas .cookie-banner,
.page-projects .cookie-banner,
.page-about .cookie-banner,
.page-legal .cookie-banner,
.page-404 .cookie-banner{
    left:auto;
    right:var(--edge-ui);
    bottom:calc(var(--edge-ui) * 2 + 2.2rem);
    z-index:60;
    max-width:26rem;
    margin:0;
    gap:0.9rem 1.2rem;
    padding:1.1rem 1.3rem;
    background:var(--surface);
    color:var(--text);
    border:1px solid var(--border);
    border-radius:0;
    box-shadow:0 10px 30px rgba(28,24,18,0.08);
}

.page-canvas .cookie-banner p,
.page-projects .cookie-banner p,
.page-about .cookie-banner p,
.page-legal .cookie-banner p,
.page-404 .cookie-banner p{
    font-size:0.62rem;
    letter-spacing:0.07em;
    line-height:1.5;
    text-transform:uppercase;
    color:var(--muted);
}

.page-canvas .cookie-banner a,
.page-projects .cookie-banner a,
.page-about .cookie-banner a,
.page-legal .cookie-banner a,
.page-404 .cookie-banner a{color:var(--text)}

.page-canvas .cookie-banner__decline,
.page-projects .cookie-banner__decline,
.page-about .cookie-banner__decline,
.page-legal .cookie-banner__decline,
.page-404 .cookie-banner__decline,
.page-canvas .cookie-banner__accept,
.page-projects .cookie-banner__accept,
.page-about .cookie-banner__accept,
.page-legal .cookie-banner__accept,
.page-404 .cookie-banner__accept{
    padding:0;
    font-size:0.62rem;
    font-weight:500;
    letter-spacing:0.13em;
    text-transform:uppercase;
    background:none;
    border:none;
    border-radius:0;
    cursor:pointer;
    transition:none;
}

.page-canvas .cookie-banner__decline,
.page-projects .cookie-banner__decline,
.page-about .cookie-banner__decline,
.page-legal .cookie-banner__decline,
.page-404 .cookie-banner__decline{color:var(--muted)}

.page-canvas .cookie-banner__accept,
.page-projects .cookie-banner__accept,
.page-about .cookie-banner__accept,
.page-legal .cookie-banner__accept,
.page-404 .cookie-banner__accept{color:var(--text)}

.page-canvas .cookie-banner__decline:hover,
.page-projects .cookie-banner__decline:hover,
.page-about .cookie-banner__decline:hover,
.page-canvas .cookie-banner__accept:hover,
.page-projects .cookie-banner__accept:hover,
.page-about .cookie-banner__accept:hover,
.page-legal .cookie-banner__decline:hover,
.page-legal .cookie-banner__accept:hover,
.page-404 .cookie-banner__decline:hover,
.page-404 .cookie-banner__accept:hover{color:var(--accent)}

@media (max-width:560px){
    .page-canvas .cookie-banner,
    .page-projects .cookie-banner,
    .page-about .cookie-banner,
    .page-legal .cookie-banner,
    .page-404 .cookie-banner{
        left:var(--edge-ui);
        right:var(--edge-ui);
        max-width:none;
    }
}

@media (max-width:560px){
    .page-canvas .cookie-banner p,
    .page-projects .cookie-banner p,
    .page-about .cookie-banner p,
    .page-legal .cookie-banner p,
    .page-404 .cookie-banner p{flex:0 0 auto}

    .page-canvas .cookie-banner__actions,
    .page-projects .cookie-banner__actions,
    .page-about .cookie-banner__actions,
    .page-legal .cookie-banner__actions,
    .page-404 .cookie-banner__actions{
        justify-content:flex-end;
        gap:1.4rem;
    }
}

.page-about{
    --edge:clamp(1.6rem,3.4vw,3.06rem);
    background:#fff;
}

.about{
    padding:calc(var(--edge-ui) * 2 + var(--chrome-h)) var(--edge) calc(var(--edge-ui) * 2 + 4.5rem) calc(var(--edge) + min(6vw,5.4rem));
}

.about__col{
    max-width:27rem;
    display:flex;
    flex-direction:column;
}

.about__name{
    margin:0 0 2.4rem;
    font-family:var(--font-body);
    font-size:0.92rem;
    font-weight:600;
    letter-spacing:0.26em;
    line-height:1.4;
    text-transform:uppercase;
    color:var(--text);
}

.about__section{
    display:flex;
    flex-direction:column;
    gap:1.1rem;
    margin-bottom:2.6rem;
}

.about__section--spaced{margin-top:3.4rem}

.about__label{
    margin:0;
    font-size:0.62rem;
    font-weight:400;
    letter-spacing:0.16em;
    line-height:1.4;
    text-transform:uppercase;
    color:var(--text);
}

.about__text{
    margin:0;
    font-size:0.64rem;
    font-weight:400;
    letter-spacing:0.045em;
    line-height:1.6;
    text-align:justify;
    color:var(--muted);
}

.about__text strong{
    font-weight:600;
    color:var(--text);
}

.about__founders{
    margin:1rem 0 0;
    font-size:0.62rem;
    letter-spacing:0.11em;
    line-height:1.4;
    text-transform:uppercase;
    color:var(--text);
}

@media (max-width:900px){
    .about{
        padding-left:var(--edge);
        padding-right:var(--edge);
    }

    .about__col{max-width:34rem}
}

@media (max-width:760px){
    .about__name{
        letter-spacing:0.18em;
        margin-bottom:2rem;
    }

    .about__text{
        line-height:1.55;
        text-align:left;
    }
}

.page-legal{
    --edge:clamp(1.6rem,3.4vw,3.06rem);
    background:#fff;
}

.legal{
    padding:calc(var(--edge-ui) * 2 + var(--chrome-h)) var(--edge) calc(var(--edge-ui) * 2 + 4.5rem) calc(var(--edge) + min(6vw,5.4rem));
}

.legal__col{
    max-width:33rem;
    display:flex;
    flex-direction:column;
}

.legal__name{
    margin:0 0 2.4rem;
    font-family:var(--font-body);
    font-size:1.05rem;
    font-weight:600;
    letter-spacing:0.22em;
    line-height:1.4;
    text-transform:uppercase;
    color:var(--text);
}

.legal__lede{
    margin:0;
    font-size:0.95rem;
    font-weight:400;
    letter-spacing:0.01em;
    line-height:1.5;
    color:var(--text);
}

.legal__updated{
    margin:1.2rem 0 3.6rem;
    font-size:0.68rem;
    letter-spacing:0.11em;
    line-height:1.4;
    text-transform:uppercase;
    color:var(--muted);
}

.legal__section{
    display:flex;
    flex-direction:column;
    gap:1.2rem;
    margin-bottom:3.2rem;
}

.legal__section:last-child{margin-bottom:0}

.legal__label{
    margin:0;
    display:flex;
    gap:1.2rem;
    font-size:0.72rem;
    font-weight:500;
    letter-spacing:0.15em;
    line-height:1.4;
    text-transform:uppercase;
    color:var(--text);
}

.legal__num{
    flex:0 0 auto;
    color:var(--muted);
}

.legal__text{
    margin:0;
    font-size:0.86rem;
    font-weight:400;
    letter-spacing:0.012em;
    line-height:1.5;
    color:var(--muted);
}

.legal__text a{
    color:var(--text);
    text-decoration:underline;
    text-underline-offset:0.3em;
    text-decoration-thickness:1px;
    transition:color 0.25s ease;
}

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

@media (max-width:900px){
    .legal{
        padding-left:var(--edge);
        padding-right:var(--edge);
    }

    .legal__col{max-width:36rem}
}

@media (max-width:760px){
    .legal__name{
        letter-spacing:0.16em;
        margin-bottom:2rem;
    }

    .legal__label{
        gap:1rem;
    }

    .legal__text{
        line-height:1.5;
    }
}

.page-404{
    --edge:clamp(1.6rem,3.4vw,3.06rem);
    background:#fff;
}

.notfound{
    min-height:100vh;
    display:flex;
    align-items:center;
    padding:calc(var(--edge-ui) * 2 + var(--chrome-h)) var(--edge) calc(var(--edge-ui) * 2 + 4.5rem) calc(var(--edge) + min(6vw,5.4rem));
}

.notfound__col{
    max-width:31rem;
    display:flex;
    flex-direction:column;
}

.notfound__code{
    margin:0 0 1.7rem;
    font-size:0.74rem;
    font-weight:400;
    letter-spacing:0.34em;
    line-height:1.4;
    color:var(--muted);
}

.notfound__title{
    margin:0 0 1.5rem;
    font-family:var(--font-body);
    font-size:1.15rem;
    font-weight:600;
    letter-spacing:0.22em;
    line-height:1.4;
    text-transform:uppercase;
    color:var(--text);
}

.notfound__text{
    margin:0;
    font-size:0.88rem;
    font-weight:400;
    letter-spacing:0.012em;
    line-height:1.5;
    color:var(--muted);
}

.notfound__links{
    display:flex;
    flex-wrap:wrap;
    gap:1.6rem 2.4rem;
    margin-top:2.8rem;
}

.notfound__link{
    font-size:0.74rem;
    font-weight:500;
    letter-spacing:0.13em;
    text-transform:uppercase;
    color:var(--text);
    border-bottom:1px solid var(--text);
    padding-bottom:0.35rem;
    transition:color 0.2s ease,border-color 0.2s ease;
}

.notfound__link:hover{
    color:var(--accent);
    border-bottom-color:var(--accent);
}

@media (max-width:900px){
    .notfound{
        padding-left:var(--edge);
        padding-right:var(--edge);
    }

    .notfound__col{max-width:34rem}
}

@media (max-width:760px){
    .notfound__title{
        letter-spacing:0.16em;
    }

    .notfound__text{
        line-height:1.5;
    }
}

.projects__sort{
    min-width:9rem;
    display:inline-flex;
}

.projects__sort select{
    width:100%;
    min-width:0;
}

.projects__controls{
    flex-wrap:nowrap;
    gap:0.9rem;
}

.filter-dropdown__trigger,
.projects__sort select{font-size:0.58rem;letter-spacing:0.11em}

.filter-dropdown__trigger span{white-space:nowrap}

.projects__sort{min-width:7rem}

@media (max-width:1000px){
    .projects__controls{flex-wrap:wrap;gap:0.4rem 1.4rem}

    .projects__sort{min-width:9rem}
}

.projects__sort{
    position:relative;
    align-items:center;
    line-height:1;
}

.projects__sort select{
    appearance:none;
    -webkit-appearance:none;
    padding:0 0.9rem 0 0;
    line-height:1;
    border-radius:0;
}

.projects__sort::after{
    content:'';
    position:absolute;
    right:0;
    top:50%;
    width:8px;
    height:5px;
    margin-top:-2px;
    background:currentColor;
    clip-path:polygon(0 0, 100% 0, 50% 100%);
    pointer-events:none;
}

.filter-dropdown__trigger{line-height:1}

.projects__sort{min-width:5.4rem}

.page-contact{
    --edge:clamp(1.6rem,3.4vw,3.06rem);
    background:#fff;
}

.contact{
    padding:calc(var(--edge-ui) * 2 + var(--chrome-h)) var(--edge) calc(var(--edge-ui) * 2 + 4.5rem) calc(var(--edge) + min(6vw,5.4rem));
}

.contact__col{
    max-width:27rem;
    display:flex;
    flex-direction:column;
}

.contact__title{
    margin:0 0 1.4rem;
    font-family:var(--font-body);
    font-size:0.92rem;
    font-weight:600;
    letter-spacing:0.22em;
    line-height:1.4;
    text-transform:uppercase;
    color:var(--text);
}

.contact__lede{
    margin:0;
    font-size:0.64rem;
    letter-spacing:0.045em;
    line-height:1.6;
    text-transform:none;
    color:var(--muted);
}

.contact__direct{
    margin:1.6rem 0 0;
    font-size:0.64rem;
    font-weight:600;
    letter-spacing:0.06em;
    line-height:1.55;
    color:var(--text);
}

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

.contact__form,
.contact__sent{
    display:flex;
    flex-direction:column;
    margin-top:4.5rem;
}

.contact__sent{gap:1.2rem;align-items:flex-start}

.contact__honeypot{
    position:absolute;
    left:-9999px;
    opacity:0;
    pointer-events:none;
}

.contact__field{
    display:flex;
    flex-direction:column;
    gap:0.9rem;
    margin-bottom:2.2rem;
}

.contact__label{
    font-size:0.62rem;
    font-weight:400;
    letter-spacing:0.16em;
    line-height:1.4;
    text-transform:uppercase;
    color:var(--text);
}

.contact__field input,
.contact__field textarea{
    width:100%;
    padding:0 0 0.5rem;
    font-family:var(--font-body);
    font-size:0.75rem;
    letter-spacing:0.04em;
    line-height:1.4;
    color:var(--text);
    background:none;
    border:none;
    border-bottom:1px solid var(--text);
    border-radius:0;
    resize:none;
    transition:border-color 0.25s ease;
}

.contact__field textarea{
    min-height:7rem;
    padding-top:0.4rem;
}

.contact__field input:focus,
.contact__field textarea:focus{
    outline:none;
    border-bottom-color:var(--accent);
}

.contact__field em{
    font-style:normal;
    font-size:0.58rem;
    letter-spacing:0.09em;
    text-transform:uppercase;
    color:var(--accent);
}

.contact__submit{
    align-self:flex-start;
    margin-top:0.6rem;
    padding:0;
    font-family:var(--font-body);
    font-size:0.66rem;
    font-weight:600;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:var(--text);
    background:none;
    border:none;
    border-bottom:1px solid var(--text);
    padding-bottom:0.35rem;
    cursor:pointer;
    transition:color 0.2s ease,border-color 0.2s ease;
}

.contact__submit:hover{
    color:var(--accent);
    border-bottom-color:var(--accent);
}

.page-contact .cookie-banner{
    left:auto;
    right:var(--edge-ui);
    bottom:calc(var(--edge-ui) * 2 + 2.2rem);
    z-index:60;
    max-width:26rem;
    margin:0;
    gap:0.9rem 1.2rem;
    padding:1.1rem 1.3rem;
    background:var(--surface);
    color:var(--text);
    border:1px solid var(--border);
    border-radius:0;
    box-shadow:0 10px 30px rgba(28,24,18,0.08);
}

.page-contact .cookie-banner p{
    font-size:0.62rem;
    letter-spacing:0.07em;
    line-height:1.5;
    text-transform:uppercase;
    color:var(--muted);
}

.page-contact .cookie-banner a{color:var(--text)}

.page-contact .cookie-banner__decline,
.page-contact .cookie-banner__accept{
    padding:0;
    font-size:0.62rem;
    font-weight:500;
    letter-spacing:0.13em;
    text-transform:uppercase;
    background:none;
    border:none;
    border-radius:0;
    cursor:pointer;
}

.page-contact .cookie-banner__decline{color:var(--muted)}

.page-contact .cookie-banner__accept{color:var(--text)}

.page-contact .cookie-banner__decline:hover,
.page-contact .cookie-banner__accept:hover{color:var(--accent)}

@media (max-width:900px){
    .contact{
        padding-left:var(--edge);
        padding-right:var(--edge);
    }

    .contact__col{max-width:34rem}
}

@media (max-width:760px){
    .contact__title{
        letter-spacing:0.16em;
    }

    .contact__form,
    .contact__sent{margin-top:3rem}
}

@media (max-width:560px){
    .page-contact .cookie-banner{
        left:var(--edge-ui);
        right:var(--edge-ui);
        max-width:none;
    }

    .page-contact .cookie-banner p{flex:0 0 auto}

    .page-contact .cookie-banner__actions{
        justify-content:flex-end;
        gap:1.4rem;
    }
}

.page-project{
    --edge:clamp(1.6rem,3.4vw,3.06rem);
    background:#fff;
}

.project{
    display:grid;
    grid-template-columns:minmax(240px,26%) 1fr;
    gap:clamp(3.5rem,9vw,8.1rem);
    align-items:start;
    padding:calc(var(--edge-ui) * 2 + var(--chrome-h)) var(--edge) calc(var(--edge-ui) * 2 + 4rem) calc(var(--edge) + min(6vw,5.4rem));
}

.project__side{
    position:sticky;
    top:calc(var(--edge-ui) * 2 + var(--chrome-h));
    display:flex;
    flex-direction:column;
    gap:1.6rem;
}

.project__title{
    margin:0;
    font-family:var(--font-body);
    font-size:0.78rem;
    font-weight:600;
    letter-spacing:0.16em;
    line-height:1.4;
    text-transform:uppercase;
    color:var(--text);
}

.project__excerpt{
    margin:0;
    font-size:0.64rem;
    letter-spacing:0.07em;
    line-height:1.55;
    text-transform:uppercase;
    text-align:justify;
    color:var(--muted);
}

.project__specs{
    margin:0.4rem 0 0;
    display:flex;
    flex-direction:column;
    border-top:1px solid var(--border);
}

.project__spec{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:1rem;
    padding:0.65rem 0;
    border-bottom:1px solid var(--border);
}

.project__spec dt{
    flex:none;
    font-size:0.57rem;
    letter-spacing:0.11em;
    text-transform:uppercase;
    color:var(--muted);
}

.project__spec dd{
    margin:0;
    font-size:0.59rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    text-align:right;
    color:var(--text);
}

.project__description{
    display:flex;
    flex-direction:column;
    gap:1rem;
    margin-top:0.6rem;
}

.project__description p{
    margin:0;
    font-size:0.82rem;
    letter-spacing:0.01em;
    line-height:1.5;
    color:var(--muted);
}

.project__back{
    align-self:flex-start;
    margin-top:0.6rem;
    font-size:0.62rem;
    font-weight:500;
    letter-spacing:0.13em;
    text-transform:uppercase;
    color:var(--text);
    border-bottom:1px solid var(--text);
    padding-bottom:0.3rem;
    transition:color 0.2s ease,border-color 0.2s ease;
}

.project__back:hover{
    color:var(--accent);
    border-bottom-color:var(--accent);
}

.project__main{
    display:flex;
    flex-direction:column;
    gap:clamp(1.2rem,2.5vw,2.4rem);
}

.project__figure{
    margin:0;
    overflow:hidden;
    background:#f2f0ec;
    aspect-ratio:3/2;
}

.project__figure--lead{aspect-ratio:16/9}

.project__figure picture,
.project__figure img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.project__grid{
    display:grid;
    grid-template-columns:1fr;
    gap:clamp(1.2rem,2.5vw,2.4rem);
}

.page-project .cookie-banner{
    left:auto;
    right:var(--edge-ui);
    bottom:calc(var(--edge-ui) * 2 + 2.2rem);
    z-index:60;
    max-width:26rem;
    margin:0;
    gap:0.9rem 1.2rem;
    padding:1.1rem 1.3rem;
    background:var(--surface);
    color:var(--text);
    border:1px solid var(--border);
    border-radius:0;
    box-shadow:0 10px 30px rgba(28,24,18,0.08);
}

.page-project .cookie-banner p{
    font-size:0.62rem;
    letter-spacing:0.07em;
    line-height:1.5;
    text-transform:uppercase;
    color:var(--muted);
}

.page-project .cookie-banner a{color:var(--text)}

.page-project .cookie-banner__decline,
.page-project .cookie-banner__accept{
    padding:0;
    font-size:0.62rem;
    font-weight:500;
    letter-spacing:0.13em;
    text-transform:uppercase;
    background:none;
    border:none;
    border-radius:0;
    cursor:pointer;
}

.page-project .cookie-banner__decline{color:var(--muted)}

.page-project .cookie-banner__accept{color:var(--text)}

.page-project .cookie-banner__decline:hover,
.page-project .cookie-banner__accept:hover{color:var(--accent)}

@media (max-width:1000px){
    .project{
        grid-template-columns:1fr;
        gap:2.6rem;
        padding-left:var(--edge);
    }

    .project__side{
        position:static;
        max-width:36rem;
    }
}

@media (max-width:760px){

    .project__excerpt{line-height:1.5}

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

    .project__figure--lead{aspect-ratio:3/2}
}

@media (max-width:560px){
    .page-project .cookie-banner{
        left:var(--edge-ui);
        right:var(--edge-ui);
        max-width:none;
    }

    .page-project .cookie-banner p{flex:0 0 auto}

    .page-project .cookie-banner__actions{
        justify-content:flex-end;
        gap:1.4rem;
    }
}

.project__excerpt{text-align:left}

.projects{
    grid-template-areas:
        "side main"
        "faq main";
    align-content:start;
}

.projects__side{grid-area:side;position:static}

.projects__main{grid-area:main}

.projects__faq{grid-area:faq;margin-top:2.4rem}

@media (max-width:1000px){
    .projects{
        grid-template-areas:
            "side"
            "main"
            "faq";
    }

    .projects__lede{text-align:left}

    .projects__faq{margin-top:0}
}

.projects{
    grid-template-rows:auto 1fr;
}

.projects__faq{align-self:start}

@media (max-width:1000px){
    .projects{grid-template-rows:auto auto auto}
}

.canvas-tile__label{
    left:0;
    right:0;
    padding:1.8rem 0.85rem 0.75rem;
    background:linear-gradient(to top,rgba(18,14,9,0.58),rgba(18,14,9,0.28) 45%,transparent);
    text-shadow:0 1px 3px rgba(0,0,0,0.45);
}

.projects__sort{align-self:center}

.projects__controls{align-items:baseline}

.projects__sort{align-self:baseline}

.projects__sort select{vertical-align:baseline}

.projects,
.project,
.about,
.legal,
.notfound,
.contact{
    max-width:var(--page);
    margin-inline:auto;
}

.canvas__inner{
    left:calc(var(--edge) + var(--rail));
    right:calc(var(--edge) + var(--rail));
}

.layer-logo{left:calc(var(--edge-ui) + var(--rail))}

.layer-nav{right:calc(var(--edge-ui) + var(--rail))}

.layer-bar{
    left:calc(var(--edge-ui) + var(--rail));
    right:calc(var(--edge-ui) + var(--rail));
}

.page-canvas .cookie-banner,
.page-projects .cookie-banner,
.page-about .cookie-banner,
.page-legal .cookie-banner,
.page-404 .cookie-banner{right:calc(var(--edge-ui) + var(--rail))}

body:not(.page-canvas) .layer-bar{left:calc(var(--edge) + min(6vw,5.4rem) + var(--rail))}

@media (max-width:1000px){
    body:not(.page-canvas) .layer-bar{left:calc(var(--edge-ui) + var(--rail))}
}

.projects{row-gap:0}

.projects__faq{margin-top:4rem}

@media (max-width:1000px){
    .projects{
        row-gap:3rem;
        grid-template-areas:
            "block"
            "controls"
            "main"
            "faq";
        grid-template-rows:auto auto auto auto;
    }

    .projects__side{display:contents}

    .projects__block{grid-area:block}

    .projects__controls{grid-area:controls;margin-top:-1rem}

    .projects__faq{grid-area:faq;margin-top:0}
}

@media (max-width:1000px){
    .about,
    .legal,
    .notfound,
    .contact{padding-left:var(--edge)}
}

.notfound{min-height:100dvh}

.page-contact .cookie-banner,
.page-project .cookie-banner{right:calc(var(--edge-ui) + var(--rail))}

.about__label,
.legal__label,
.canvas-text__title,
.projects__title,
.projects__faq-title,
.project__title,
.contact__title,
.about__name{font-family:var(--font-body)}

.layer-nav{right:calc(var(--edge) + var(--rail))}

.layer-bar{right:calc(var(--edge) + var(--rail))}

@media (max-width:1000px){
    .layer-logo{left:calc(var(--edge) + var(--rail))}

    .layer-bar,
    body:not(.page-canvas) .layer-bar{left:calc(var(--edge) + var(--rail))}
}

:root{
    --chrome-h:57px;
    --veil-solid:calc(var(--edge-ui) * 2 + var(--chrome-h));
    --veil-fade:calc(var(--edge-ui) * 1.2);
}

@media (max-width:760px){
    :root{--chrome-h:44px}
}

.layer-logo{
    width:var(--chrome-h);
    height:var(--chrome-h);
}

.layer-nav{height:var(--chrome-h)}

.layer-veil{height:calc(var(--veil-solid) + var(--veil-fade))}

.layer-veil--top{
    -webkit-mask-image:linear-gradient(to bottom,#000 var(--veil-solid),transparent);
    mask-image:linear-gradient(to bottom,#000 var(--veil-solid),transparent);
}

.layer-veil--bottom{
    -webkit-mask-image:linear-gradient(to top,#000 var(--veil-solid),transparent);
    mask-image:linear-gradient(to top,#000 var(--veil-solid),transparent);
}

:root{
    --veil-fade:calc(var(--edge-ui) * 0.8);
}

.layer-veil{
    background:rgba(255,255,255,0.45);
    -webkit-backdrop-filter:blur(8px);
    backdrop-filter:blur(8px);
}

:root{
    --veil-fade:calc(var(--edge-ui) * 0.5);
}

.layer-veil{
    background:rgba(255,255,255,0.32);
    -webkit-backdrop-filter:blur(5px);
    backdrop-filter:blur(5px);
}

:root{
    --bar-h:1rem;
    --veil-solid-bottom:calc(var(--edge-ui) * 2 + var(--bar-h));
}

@media (max-width:760px){
    :root{--bar-h:2.3rem}
}

.layer-veil--bottom{
    height:calc(var(--veil-solid-bottom) + var(--veil-fade));
    -webkit-mask-image:linear-gradient(to top,#000 var(--veil-solid-bottom),transparent);
    mask-image:linear-gradient(to top,#000 var(--veil-solid-bottom),transparent);
}

:root{--logo-nudge:calc(var(--chrome-h) * -0.07)}

.layer-logo svg{transform:translateY(var(--logo-nudge))}

.layer-veil--bottom{
    height:calc(var(--veil-solid) + var(--veil-fade));
    -webkit-mask-image:linear-gradient(to top,#000 var(--veil-solid),transparent);
    mask-image:linear-gradient(to top,#000 var(--veil-solid),transparent);
}

.layer-veil--bottom{
    height:calc(var(--veil-solid-bottom) + var(--veil-fade));
    -webkit-mask-image:linear-gradient(to top,#000 var(--veil-solid-bottom),transparent);
    mask-image:linear-gradient(to top,#000 var(--veil-solid-bottom),transparent);
}

.projects__lede{
    text-transform:none;
    color:var(--text);
}

.projects__controls{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    align-items:center;
}

.projects__controls .filter-dropdown:nth-child(1){justify-self:start}
.projects__controls .filter-dropdown:nth-child(2){justify-self:center}
.projects__controls .filter-dropdown:nth-child(3){justify-self:end}

.projects__faq .faq__item,
.projects__faq .faq__item:first-child{
    border:none;
}

.projects__faq .faq__item summary{text-transform:none}

.layer-nav a{font-size:0.72rem}:root{
    --veil-solid:calc(var(--edge-ui) * 1.5 + var(--chrome-h));
    --veil-fade:calc(var(--edge-ui) * 0.5);
    --veil-solid-bottom:calc(var(--edge-ui) * 1.5 + var(--bar-h));
}

.project-card__meta{
    text-transform:none;
    color:var(--text);
}

.project-card{gap:1.6rem}

.projects__grid{row-gap:1.6rem}

:root{
    --muted:#000;
    --font-display:Arial, Helvetica, sans-serif;
    --font-body:Arial, Helvetica, sans-serif;
}

.layer-bar > span:not(.plate),
.layer-bar a{color:var(--text)}

.projects__controls{border-bottom:none}

.project__specs{border-top:none}

.project__spec{border-bottom:none}

.projects__grid{column-gap:clamp(0.8rem,1.6vw,1.2rem)}

.projects__lede,
.projects__faq .faq__content p,
.project__description p{text-align:justify}

.canvas-tile{
    --k:var(--photo-scale,1);
    width:calc(var(--s) / 24 * 100% * var(--k));
    left:calc((var(--c) / 24 * 100%) + (var(--s) / 24 * 100%) * (1 - var(--k)) / 2);
}

@media (max-width:760px){
    .canvas-tile{
        width:calc(var(--ms) / 6 * 100% * var(--k));
        left:calc((var(--mc) / 6 * 100%) + (var(--ms) / 6 * 100%) * (1 - var(--k)) / 2);
    }
}

.canvas-text__title,
.canvas-text__body{text-transform:none}

.canvas__wordmark{
    font-weight:700;
    font-size:calc(var(--cw) * 0.046 * 1px);
    letter-spacing:0.254em;
    text-indent:0.254em;
}

@media (max-width:760px){
    .canvas__wordmark{
        font-size:calc(var(--cw) * 0.093 * 1px);
        letter-spacing:0.254em;
        text-indent:0.254em;
    }
}

.layer-veil{
    background:#fff;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
}

.project__main,
.project__grid{gap:clamp(0.6rem,1.2vw,1.2rem)}

.layer-veil,
.layer-veil--top,
.layer-veil--bottom{
    background:#fff;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
    -webkit-mask-image:none;
    mask-image:none;
    opacity:1;
    transition:none;
}

.canvas__wordmark{
    font-size:calc(var(--cw) * 0.040 * 1px);
    letter-spacing:0.32em;
    text-indent:0.32em;
}

@media (max-width:760px){
    .canvas__wordmark{
        font-size:calc(var(--cw) * 0.081 * 1px);
        letter-spacing:0.32em;
        text-indent:0.32em;
    }
}

.canvas-text__title{font-size:0.82rem}.canvas__inner{
    left:calc(var(--edge) + var(--rail) + min(6vw,5.4rem));
}

@media (max-width:1000px){
    .canvas__inner{left:calc(var(--edge) + var(--rail))}
}

.canvas__inner{
    left:calc(var(--edge) + var(--rail) + clamp(4rem,6vw,5.4rem));
}

@media (max-width:1000px){
    .canvas__inner{left:calc(var(--edge) + var(--rail) + clamp(4rem,6vw,5.4rem))}
}

@media (max-width:760px){
    .canvas__inner{left:calc(var(--edge) + var(--rail))}
}

@media (min-width:761px) and (max-width:1000px){
    .canvas__wordmark{font-size:calc(var(--cw) * 0.036 * 1px)}
}

@media (hover:hover){
    .layer-nav a:hover,
    .layer-bar a:hover,
    .filter-dropdown__trigger:hover,
    .projects__pill:hover,
    .projects__faq .faq__item summary:hover,
    .projects__faq .faq__item summary:hover::after,
    .project-card:hover .project-card__body h3,
    .legal__text a:hover,
    .notfound__link:hover,
    .contact__direct a:hover,
    .contact__submit:hover,
    .project__back:hover,
    .cookie-banner__decline:hover,
    .cookie-banner__accept:hover,
    .site-header__nav a:hover,
    .site-footer__col a:hover,
    .site-footer__bottom a:hover,
    .home-split__link:hover,
    .services__cta:hover{
        color:var(--text);
        text-shadow:0.025em 0 0 currentColor,-0.025em 0 0 currentColor;
    }

    .canvas-tile:hover .canvas-tile__label{text-shadow:0 1px 12px rgba(0,0,0,0.6)}
}

.filter-dropdown.has-selection .filter-dropdown__trigger{
    color:var(--text);
    text-shadow:0.025em 0 0 currentColor,-0.025em 0 0 currentColor;
}

.notfound__link:hover,
.contact__submit:hover,
.project__back:hover{border-bottom-color:var(--text)}

@media (hover:hover){
    .page-canvas .cookie-banner__decline:hover,
    .page-canvas .cookie-banner__accept:hover,
    .page-projects .cookie-banner__decline:hover,
    .page-projects .cookie-banner__accept:hover,
    .page-about .cookie-banner__decline:hover,
    .page-about .cookie-banner__accept:hover,
    .page-legal .cookie-banner__decline:hover,
    .page-legal .cookie-banner__accept:hover,
    .page-404 .cookie-banner__decline:hover,
    .page-404 .cookie-banner__accept:hover,
    .page-contact .cookie-banner__decline:hover,
    .page-contact .cookie-banner__accept:hover,
    .page-project .cookie-banner__decline:hover,
    .page-project .cookie-banner__accept:hover{
        color:var(--text);
        text-shadow:0.025em 0 0 currentColor,-0.025em 0 0 currentColor;
    }
}

.projects__title{font-size:0.95rem}.contact__submit{
    border-bottom:none;
    padding-bottom:0;
}

.project__spec{padding:0.22rem 0}

.project__specs{margin-top:0.2rem}

.project__side{gap:3rem}

.project__figure{cursor:zoom-in}

.project__figure:focus-visible{outline:1px solid var(--text);outline-offset:4px}

.has-lightbox{overflow:hidden}

.lightbox{
    position:fixed;
    inset:0;
    z-index:200;
    display:none;
    background:#fff;
}

.lightbox.is-open{display:block}

.lightbox:focus{outline:none}

.lightbox__stage{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
}

.lightbox__picture{display:block;line-height:0}

.lightbox__img{
    display:block;
    max-width:min(80vw, 1500px);
    max-height:76vh;
    max-height:76dvh;
    width:auto;
    height:auto;
    opacity:0;
    transition:opacity 0.35s ease;
}

.lightbox__img.is-ready{opacity:1}

.lightbox__nav{
    position:absolute;
    top:0;
    bottom:0;
    width:clamp(120px, 16vw, 260px);
    z-index:1;
    display:flex;
    align-items:center;
    padding:0;
    background:none;
    border:none;
    cursor:pointer;
}

.lightbox__nav--prev{
    left:0;
    justify-content:flex-start;
    padding-left:clamp(1rem, 3vw, 3.4rem);
}

.lightbox__nav--next{
    right:0;
    justify-content:flex-end;
    padding-right:clamp(1rem, 3vw, 3.4rem);
}

.lightbox__nav svg{
    width:34px;
    height:34px;
    display:block;
    opacity:0.62;
    transition:opacity 0.25s ease,transform 0.25s ease;
}

.lightbox__nav:focus-visible{outline:1px solid var(--text);outline-offset:-8px}

@media (hover:hover){
    .lightbox__nav:hover svg{opacity:1}

    .lightbox__nav--prev:hover svg{transform:translateX(-4px)}

    .lightbox__nav--next:hover svg{transform:translateX(4px)}
}

.lightbox__close,
.lightbox__caption,
.lightbox__counter{
    position:absolute;
    z-index:2;
    margin:0;
    font-family:var(--font-body);
    font-size:0.62rem;
    font-weight:500;
    letter-spacing:0.18em;
    line-height:1;
    text-transform:uppercase;
    color:var(--text);
}

.lightbox__close{
    top:var(--edge-ui);
    right:calc(var(--edge) + var(--rail));
    height:var(--chrome-h);
    display:flex;
    align-items:center;
    gap:0.55rem;
    padding:0;
    background:none;
    border:none;
    cursor:pointer;
}

.lightbox__close::after{
    content:'';
    width:11px;
    height:11px;
    background:
        linear-gradient(currentColor,currentColor) center/100% 1px no-repeat,
        linear-gradient(currentColor,currentColor) center/1px 100% no-repeat;
    transform:rotate(45deg);
}

.lightbox__close:focus-visible{outline:1px solid var(--text);outline-offset:6px}

.lightbox__caption{
    left:calc(var(--edge) + var(--rail));
    bottom:var(--edge-ui);
    max-width:50%;
    color:var(--text);
}

.lightbox__counter{
    right:calc(var(--edge) + var(--rail));
    bottom:var(--edge-ui);
    font-variant-numeric:tabular-nums;
}

@media (max-width:760px){
    .lightbox__img{
        max-width:88vw;
        max-height:68vh;
        max-height:68dvh;
    }

    .lightbox__nav{
        width:26%;
        padding:0 var(--edge);
    }

    .lightbox__nav svg{width:26px;height:26px;opacity:0.7}

    .lightbox__close,
    .lightbox__caption,
    .lightbox__counter{letter-spacing:0.12em}

    .lightbox__caption{max-width:58%}
}

@media (prefers-reduced-motion: reduce){
    .lightbox__img{transition:none}

    .lightbox__nav svg{transition:none}
}

@media (hover:hover){
    .lightbox__close:hover{
        text-shadow:0.025em 0 0 currentColor,-0.025em 0 0 currentColor;
    }
}

.canvas-text__title{text-transform:uppercase}

@media (min-width:761px){
    .canvas{--cycle-k:5.509}
}

@media (min-width:761px){
    .canvas{--home-anchor:3.81}
}

@media (min-width:1001px){
    body:not(.page-canvas) .layer-bar{
        right:calc(var(--edge) + min(6vw,5.4rem) + var(--rail));
    }
}

.filter-dropdown__panel::before{
    content:'';
    position:absolute;
    left:0;
    right:0;
    top:-0.9rem;
    height:0.9rem;
}

.projects__faq .faq__list{gap:0}

.projects__faq .faq__item summary{padding:0.5rem 0}

.project-card{gap:0.7rem}

.projects__grid{
    row-gap:1.1rem;
    column-gap:clamp(1rem,2vw,1.6rem);
}

@media (hover:hover){
    .layer-nav a,
    .layer-bar a,
    .filter-dropdown__trigger,
    .projects__pill,
    .project-card .project-card__body h3,
    .legal__text a,
    .notfound__link,
    .contact__direct a,
    .contact__submit,
    .project__back,
    .cookie-banner__decline,
    .cookie-banner__accept,
    .site-header__nav a,
    .site-footer__col a,
    .site-footer__bottom a,
    .home-split__link,
    .services__cta,
    .lightbox__close{
        text-shadow:0 0 0 transparent,0 0 0 transparent;
        transition:text-shadow 0.3s ease,color 0.3s ease;
    }

    .projects__faq .faq__item summary{
        text-shadow:0 0 0 transparent,0 0 0 transparent;
        transition:text-shadow 0.3s ease,color 0.3s ease;
    }

    .projects__faq .faq__item summary::after{
        text-shadow:0 0 0 transparent,0 0 0 transparent;
        transition:transform 0.3s ease,color 0.3s ease,text-shadow 0.3s ease;
    }
}

@media (prefers-reduced-motion:reduce){
    .layer-nav a,
    .layer-bar a,
    .filter-dropdown__trigger,
    .projects__pill,
    .project-card .project-card__body h3,
    .legal__text a,
    .notfound__link,
    .contact__direct a,
    .contact__submit,
    .project__back,
    .cookie-banner__decline,
    .cookie-banner__accept,
    .site-header__nav a,
    .site-footer__col a,
    .site-footer__bottom a,
    .home-split__link,
    .services__cta,
    .lightbox__close,
    .projects__faq .faq__item summary,
    .projects__faq .faq__item summary::after{transition:none}
}

body{animation:none}

body > main{animation:page-enter 0.6s cubic-bezier(.2,.7,.2,1)}

.layer-bar,
body:not(.page-canvas) .layer-bar{
    left:calc(var(--edge) + min(6vw,5.4rem) + var(--rail));
    right:calc(var(--edge) + var(--rail));
}

@media (max-width:1000px){
    .layer-bar,
    body:not(.page-canvas) .layer-bar{
        left:calc(var(--edge) + var(--rail));
        right:calc(var(--edge) + var(--rail));
    }
}

.project-card__body{gap:0}

.project-card__body h3{
    margin:0 0 0.35rem;
    font-size:0.82rem;
    font-weight:600;
    letter-spacing:0.13em;
    line-height:1.4;
}

.project-card__meta{
    font-size:0.66rem;
    font-weight:400;
    letter-spacing:0.07em;
    line-height:1.55;
}.contact__direct{
    font-size:0.72rem;
    font-weight:400;
    letter-spacing:0.05em;
    line-height:1.65;
}html,
body{scrollbar-width:none}

html::-webkit-scrollbar,
body::-webkit-scrollbar{width:0;height:0}

@media (min-width:761px){
    .canvas-text{width:480px}
}

.canvas-text__title{
    letter-spacing:0.20em;
    line-height:1.25;
    text-align:justify;
    text-align-last:justify;
}

@media (max-width:760px){
    .canvas-text__title{
        text-align:left;
        text-align-last:auto;
    }
}

.canvas-text__body,
.project-card__meta,
.project__excerpt,
.projects__lede,
.about__text,
.about__founders,
.legal__text,
.legal__lede,
.notfound__text,
.contact__lede,
.contact__direct,
.project__description p,
.projects__faq .faq__content p{line-height:1.35}

@media (hover:hover){
    .filter-dropdown__trigger:hover,
    .projects__pill:hover,
    .projects__sort:hover,
    .projects__faq .faq__item summary:hover,
    .projects__faq .faq__item summary:hover::after{
        text-shadow:0 0 0 transparent,0 0 0 transparent;
    }
}

@media (min-width:761px){
    .canvas-text{width:min(240px, calc(var(--s) / 24 * 100%))}
}

@media (min-width:761px){
    .canvas-text{width:min(300px, calc(var(--s) / 24 * 100%))}

    .canvas-text__title{
        text-align:left;
        text-align-last:auto;
    }
}

.canvas-text--right{left:auto;right:0}

.layer-nav a:hover,
.layer-nav a.is-current{text-decoration:none}

.projects__faq .faq__item summary{padding:0.22rem 0}

@media (min-width:1001px){
    .projects__side{
        grid-column:1;
        grid-row:1 / -1;
        align-self:start;
        position:sticky;
        top:calc(var(--edge-ui) * 2 + var(--chrome-h));
    }

    .projects__side .projects__controls{padding-bottom:0}

    .projects__side .projects__faq{margin-top:3.2rem}

    .projects__main{
        grid-column:2;
        grid-row:1 / -1;
    }
}

.about__text,
.about__founders,
.legal__text,
.legal__lede,
.notfound__text,
.projects__lede,
.project__description p,
.projects__faq .faq__content p,
.contact__lede,
.contact__direct{font-size:0.7rem}

@media (min-width:1001px){
    .projects{grid-template-columns:minmax(200px,21%) 1fr}
}

.layer-bar > span:not(.plate),
.layer-bar a{font-weight:400}

.canvas__wordmark{letter-spacing:0.416em;text-indent:0.416em}

.canvas__wordmark{
    left:calc(var(--edge) + var(--rail) + clamp(4rem,6vw,5.4rem));
    right:calc(var(--edge) + var(--rail));
}

@media (max-width:760px){
    .canvas__wordmark{
        left:calc(var(--edge) + var(--rail));
        right:calc(var(--edge) + var(--rail));
    }
}

.contact__label,
.contact__field input,
.contact__field textarea,
.contact__submit,
.filter-dropdown__trigger,
.projects__pill,
.projects__empty,
.projects__faq .faq__item summary,
.project__back,
.project__spec dt,
.project__spec dd,
.notfound__link{font-size:0.7rem}

.project-card__body h3{font-size:0.8rem}

.project-card__meta{font-size:0.8rem}

@media (min-width:761px){
    .canvas-text{width:min(380px, calc(var(--s) / 24 * 100%))}
}

.canvas-text__title{font-size:0.8rem}

.canvas-text__body{font-size:0.8rem}

.canvas__wordmark{text-indent:0}

.canvas__wordmark span{letter-spacing:0}

.page-canvas .cookie-banner p,
.page-projects .cookie-banner p,
.page-about .cookie-banner p,
.page-legal .cookie-banner p,
.page-404 .cookie-banner p,
.page-contact .cookie-banner p,
.page-project .cookie-banner p,
.page-canvas .cookie-banner__accept,
.page-projects .cookie-banner__accept,
.page-about .cookie-banner__accept,
.page-legal .cookie-banner__accept,
.page-404 .cookie-banner__accept,
.page-contact .cookie-banner__accept,
.page-project .cookie-banner__accept,
.page-canvas .cookie-banner__decline,
.page-projects .cookie-banner__decline,
.page-about .cookie-banner__decline,
.page-legal .cookie-banner__decline,
.page-404 .cookie-banner__decline,
.page-contact .cookie-banner__decline,
.page-project .cookie-banner__decline{font-size:0.7rem}

@media (min-width:1001px){
    .projects{column-gap:calc(clamp(3.5rem,9vw,8.1rem) + 5%)}
}

@media (min-width:1001px){
    .projects__main{min-height:max(calc(100vh - var(--edge-ui) * 4 - var(--chrome-h) - 4rem), 34rem)}
}

.projects__faq-title,
.projects__faq .faq__item summary::after{font-size:0.7rem}

.projects__title,
.about__name,
.contact__title,
.legal__name,
.project__title,
.notfound__title{font-size:0.9rem}

.about__label,
.legal__label,
.legal__num,
.legal__updated,
.notfound__code{font-size:0.7rem}

.canvas-tile__label{font-size:0.8rem}

@media (min-width:1001px){
    .projects{column-gap:calc(16.1% + 0.85 * clamp(3.5rem,9vw,8.1rem))}

    .projects__faq{
        display:flex;
        flex-direction:column;
        max-height:max(calc(100vh - var(--edge-ui) * 4 - var(--chrome-h) - var(--bar-h) - 17rem), 10rem);
    }

    .projects__faq-title{flex:none}

    .projects__faq .faq__list{
        flex:1 1 auto;
        min-height:0;
        overflow-y:auto;
        overscroll-behavior:contain;
        scrollbar-width:thin;
    }
}
.projects__faq .reveal{opacity:1;transform:none;transition:none}

@media (min-width:761px){
    .projects__title,
    .about__name,
    .contact__title,
    .legal__name,
    .project__title,
    .notfound__title{letter-spacing:0.22em}
}
@media (min-width:1001px){
    .projects__faq .faq__list{
        overflow-x:hidden;
        margin-right:-0.75rem;
        padding-right:0.75rem;
    }
}

@media (max-width:350px){
    .layer-nav{gap:0.55rem}

    .layer-nav a{letter-spacing:0.03em}
}

.canvas-tile img{object-position:var(--fx,50%) var(--fy,50%)}

@media (min-width:1001px){
    .canvas-text{width:min(380px, calc(var(--s) / 24 * 100%), calc(var(--cw) * 0.253 * 1px))}
}

@media (min-width:761px) and (max-width:1000px){
    .canvas-text{width:min(380px, calc(var(--s) / 24 * 100%), calc(var(--cw) * 0.275 * 1px))}
}

@media (min-width:761px){
    .canvas-tile,
    .canvas-text{top:calc(var(--cw) * (var(--t) + var(--p, 0)) * 1px)}
}

@media (max-width:760px){
    .canvas[data-stulpeliai] .canvas-text__title,
    .canvas[data-stulpeliai] .canvas-text__body{
        -webkit-hyphens:none;
        hyphens:none;
        overflow-wrap:break-word;
    }

    .canvas[data-stulpeliai] .canvas-text__title{letter-spacing:0.1em}
}

@media (max-width:760px){
    .canvas[data-stulpeliai] .canvas__inner{
        left:0;
        right:0;
    }

    .canvas[data-stulpeliai] .canvas-text{
        padding-inline:1.1rem;
    }

    .canvas[data-stulpeliai] .canvas-text__title{
        font-size:0.683rem;
        text-align:justify;
        text-align-last:left;
    }

    .canvas[data-stulpeliai] .canvas-text__body{
        font-size:0.683rem;
        text-align:justify;
        text-align-last:left;
    }

    .canvas[data-stulpeliai] .canvas-tile__label{display:none}
}

@media (max-width:760px){
    :root{
        --veil-solid-bottom:calc(var(--edge-ui) * 2 + var(--bar-h));
    }

    .page-canvas .layer-veil--bottom{display:none}

    .page-canvas{background:#fff}

    .page-canvas .canvas{
        position:relative;
        height:auto;
        overflow:visible;
        background:transparent;
        padding-top:calc(var(--edge-ui) * 2 + 44px);
        padding-bottom:calc(var(--edge-ui) * 2 + var(--bar-h));
    }

    .page-canvas .canvas__inner,
    .page-canvas .canvas__flow{
        position:relative;
        top:auto;
    }

    .page-canvas .canvas__flow{
        transform:none !important;
        will-change:auto;
    }

    .page-canvas .canvas__copy{
        position:relative;
        top:auto;
        height:calc(var(--cw) * var(--cycle-k-loop, var(--cycle-k)) * 1px);
    }

    .page-canvas .canvas__copy[data-namai]{height:calc(var(--cw) * var(--cycle-k) * 1px)}

    .page-canvas .canvas__spacer{display:none}

    .page-canvas .canvas__wordmark{
        position:fixed;
        top:calc(var(--edge-ui) * 2 + 44px + var(--cw) * var(--home-anchor) * 1px);
        transform:translateY(-50%);
    }

    .page-canvas .layer-bar{z-index:0}
}
