.site-header{position:fixed;inset:0 0 auto;z-index:100;height:var(--header-h);display:flex;align-items:flex-start;background:var(--hero-grad);background-size:100% 106svh;background-position:top center;background-repeat:no-repeat}.site-header__inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:110%;padding-inline:clamp(2.5rem,6vw,6rem);padding-top:2.25rem}.site-header__logo{justify-self:start}.site-header__nav{justify-self:center}.site-header__burger{justify-self:end}.site-header__logo{font-family:var(--font-head);font-size:1.6rem;letter-spacing:.01em;white-space:nowrap;color:var(--text)}.site-header__nav{display:flex;gap:clamp(2.25rem,4vw,4rem);font-size:.82rem}.site-header__nav a{color:var(--text)}.site-header__nav .is-active:after{transform:scaleX(1)}.site-header.is-dark-top .site-header__logo,.site-header.is-dark-top .site-header__nav a{color:var(--accent-dark)}.site-header.is-dark-top .site-header__burger span{background:var(--accent-dark)}.site-header__burger{display:none;flex-direction:column;gap:5px;width:30px;height:22px;padding:0;background:none;border:0;cursor:pointer;justify-content:center}.site-header__burger span{display:block;height:2px;width:100%;background:var(--text);transition:transform .35s var(--ease),opacity .25s var(--ease)}.site-header.is-open .site-header__burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}.site-header.is-open .site-header__burger span:nth-child(2){opacity:0}.site-header.is-open .site-header__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.site-header__overlay{position:fixed;inset:0;z-index:90;background:var(--bg);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;visibility:hidden;transition:opacity .4s var(--ease),visibility 0s linear .4s}.site-header.is-open .site-header__overlay{opacity:1;pointer-events:auto;visibility:visible;transition:opacity .4s var(--ease),visibility 0s}.site-header__overlay nav{display:flex;flex-direction:column;align-items:center;gap:2rem}.site-header__overlay a{font-family:var(--font-head);font-size:clamp(2rem,9vw,3.25rem)}@media(max-width:720px){.site-header__nav{display:none}.site-header__burger{display:flex}.site-header__inner{width:100%;padding-inline:clamp(1.25rem,5vw,2rem);padding-top:1.25rem;grid-template-columns:1fr auto;position:relative;z-index:95}.site-header__overlay{justify-content:flex-end;padding-inline:clamp(1.5rem,8vw,3rem)}.site-header__overlay nav{align-items:flex-end;text-align:right;transform:translate(18px);transition:transform .4s var(--ease)}.site-header.is-open .site-header__overlay nav{transform:none}}@media(max-width:720px)and (prefers-reduced-motion:reduce){.site-header__overlay nav,.site-header.is-open .site-header__overlay nav{transform:none;transition:none}}.site-footer{background:var(--footer-bg);padding-block:clamp(3rem,6vw,5rem)}.site-footer__inner{max-width:1500px;width:100%;margin-inline:auto;padding-inline:clamp(2.5rem,5vw,4.5rem);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:clamp(1.5rem,4vw,3rem)}.site-footer__cols{display:flex;gap:clamp(2rem,5vw,4rem);align-items:start}.site-footer__brand h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:.5rem}.site-footer__brand p{margin:0;color:var(--text-soft)}.site-footer__cols h4{font-family:var(--font-head);font-weight:400;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.08;letter-spacing:.01em;text-transform:none;margin-bottom:.5rem}.site-footer__cols p{margin:0}.site-footer__social{display:flex;gap:.6rem;list-style:none;margin:0;padding:0}.site-footer__social a{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:50%;border:1px solid var(--text);color:var(--text);transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}.site-footer__social a:hover{background:var(--text);border-color:var(--text);color:var(--footer-bg)}.site-footer__social svg{width:21px;height:21px}.site-footer__copyright{max-width:1500px;width:100%;margin:clamp(2rem,4vw,3rem) auto 0;padding-inline:clamp(2.5rem,5vw,4.5rem);font-size:.8rem;letter-spacing:.04em;color:var(--text-soft)}@media(max-width:860px){.site-footer__inner{flex-direction:column;align-items:flex-start}.site-footer__cols{width:100%;justify-content:space-between}}@media(max-width:720px){.site-footer__social a{width:40px;height:40px}}@media(max-width:540px){.site-footer__cols{flex-direction:column;gap:clamp(1.5rem,5vw,2rem)}}.portfolio-hero{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:clamp(500px,40vw,640px);background:#161613;padding:clamp(3rem,7vw,6rem) 0 clamp(1.5rem,3.5vw,3rem)}.portfolio-hero__media{position:absolute;inset:0;z-index:0}.portfolio-hero__media:after{content:"";position:absolute;inset:0;z-index:1;background:#ebe7db26}.portfolio-hero__media picture,.portfolio-hero__media img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;transform:scaleY(-1);filter:saturate(1.02) brightness(1.04)}.portfolio-hero .container{max-width:min(1340px,92vw)}.portfolio-hero__intro{position:relative;z-index:1;max-width:100%;margin-inline:auto;text-align:center;color:var(--text)}@media(min-width:601px){.portfolio-hero__intro.reveal{transform:translateY(calc(5.25rem + 24px))}.portfolio-hero__intro.reveal.is-visible{transform:translateY(5.25rem)}}.portfolio-hero__intro p{margin:0 0 1.1rem;font-size:clamp(1.15rem,2vw,1.55rem);line-height:1.55;font-style:italic}.portfolio-hero__intro p:last-child{margin-bottom:0}.portfolio-grid{background:var(--dark);color:var(--cream);padding-top:clamp(2.5rem,6vw,5rem)}.portfolio-grid .container{max-width:min(1500px,92vw)}.portfolio__heading{color:var(--cream);font-size:clamp(2.25rem,5vw,3.5rem);line-height:1;margin-bottom:clamp(2rem,5vw,3.5rem)}.portfolio__grid{display:flex;flex-direction:column;gap:clamp(1rem,2.5vw,2rem)}.pf-rowgroup{display:flex;flex-direction:column}.pf-row{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.5vw,2rem);align-items:start}.pf-card{display:block;width:100%;padding:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer;text-align:left}.pf-card__media{position:relative;aspect-ratio:2 / 3;overflow:hidden;background:var(--bg-deep)}.pf-card__media picture,.pf-card__media img,.pf-card__placeholder{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.pf-card__media img{transition:transform .7s var(--ease),filter .5s var(--ease);transform:scale(1.001)}.pf-card:hover .pf-card__media img,.pf-card.is-open .pf-card__media img{transform:scale(1.06);filter:brightness(.7)}.pf-card__overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:1rem;text-align:center;background:#20201e00;transition:background .5s var(--ease)}.pf-card:hover .pf-card__overlay,.pf-card:focus-visible .pf-card__overlay,.pf-card.is-open .pf-card__overlay{background:#20201e47}.pf-card__title{font-family:var(--font-head);color:var(--bg);font-size:clamp(1.75rem,1rem + 1.44vw,2.9rem);line-height:1.1;opacity:0;transform:translateY(12px);transition:opacity .45s var(--ease),transform .45s var(--ease)}.pf-card:hover .pf-card__title,.pf-card:focus-visible .pf-card__title,.pf-card.is-open .pf-card__title{opacity:1;transform:none}.pf-card__badges{position:absolute;top:.6rem;left:.6rem;right:.6rem;z-index:2;display:flex;flex-wrap:wrap;gap:.4rem}.pf-badge{font-family:var(--font-body);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;background:var(--accent-dark);color:var(--text);padding:.32rem .55rem;border-radius:2px;line-height:1;white-space:nowrap}.pf-panel{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .42s var(--ease),opacity .3s var(--ease)}.pf-panel.is-open{grid-template-rows:1fr;opacity:1}.pf-panel__inner{overflow:hidden;min-height:0;position:relative;margin-top:clamp(.75rem,1.5vw,1.25rem);border:1px solid hsl(44 30% 60% / .28);border-radius:4px;padding:clamp(1.25rem,2.5vw,2rem)}.pf-panel__content{animation:pfFade .35s var(--ease) both}@keyframes pfFade{0%{opacity:0}to{opacity:1}}.pf-panel__close{position:absolute;top:.4rem;right:.7rem;background:none;border:0;cursor:pointer;color:var(--cream);font-size:1.9rem;line-height:1;transition:color .3s var(--ease)}.pf-panel__close:hover{color:var(--accent-dark)}.pf-panel__text{margin:0;font-size:clamp(1.02rem,1.3vw,1.25rem);line-height:1.6;max-width:72ch;color:var(--cream)}.pf-panel__text strong{font-weight:700}.pf-badges{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 .8rem;padding:0}@media(max-width:1100px){.pf-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.pf-row{grid-template-columns:1fr}.pf-card__title{display:none}.pf-card__overlay{background:none}.portfolio-hero{background:var(--accent);min-height:auto}.portfolio-hero__media{display:none}}@media(prefers-reduced-motion:reduce){.pf-panel{transition:none}.pf-panel__content{animation:none}}.about{background:var(--dark);color:var(--cream);padding-top:calc(var(--header-h) + clamp(2rem,5vw,4rem))}.about .container{max-width:min(1320px,94vw)}.about__grid{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(2.5rem,6vw,6rem);align-items:start}.about__gallery{grid-column:1;grid-row:1}.about__text{grid-column:2;grid-row:1}.about__text h2{font-size:clamp(2rem,3.4vw,2.85rem);margin-bottom:clamp(1.75rem,3vw,2.5rem);white-space:nowrap;color:var(--cream)}.about__text p{font-size:clamp(1rem,1.25vw,1.2rem);line-height:1.55;margin:0 0 1.5rem;max-width:64ch;color:var(--cream)}.about__gallery{display:grid;grid-template-columns:1fr 1.18fr;gap:clamp(.75rem,1.5vw,1.25rem);align-items:start;position:sticky;top:calc(var(--header-h) + 1.5rem)}.about__gallery>:first-child{grid-column:1 / -1}.about__gallery img{width:100%;height:auto;border-radius:2px}@media(max-width:900px){.about__grid{grid-template-columns:1fr}.about__gallery,.about__text{grid-column:1}.about__gallery{grid-row:2;position:static}.about__text{grid-row:1}.about__text h2{white-space:normal}}.contact{position:relative;background:var(--dark);color:var(--cream);padding-top:calc(var(--header-h) + clamp(2.5rem,6vw,5rem));padding-bottom:clamp(6rem,12vw,10rem);overflow:hidden}.contact__inner{display:flex;flex-direction:column;align-items:center}.contact__heading{color:var(--cream);text-align:center;font-size:clamp(3.25rem,9vw,5.5rem);margin-bottom:clamp(2rem,5vw,3.5rem)}.contact__form{display:grid;gap:1.5rem;width:100%;max-width:880px}.contact__form label{display:grid;gap:.5rem}.contact__form span{font-size:.95rem;color:var(--cream)}.contact__required{margin:0;font-size:.8rem;letter-spacing:.04em;opacity:.7}.contact__honeypot{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}.contact__thanks{text-align:center;max-width:880px;font-size:clamp(1.1rem,1.6vw,1.4rem);color:var(--cream)}.contact__error{margin:0;font-size:.9rem;color:var(--accent-light)}.contact__name{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;border:0;padding:0;margin:0}.contact__name legend{grid-column:1 / -1;padding:0;margin-bottom:.5rem;font-size:.95rem;color:var(--cream)}.contact__form input,.contact__form textarea{font-family:var(--font-body);font-size:1rem;color:var(--text);background:var(--accent-dark);border:2px solid transparent;border-radius:15px 0;padding:.85rem 1rem;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}.contact__form input::placeholder,.contact__form textarea::placeholder{color:#31312b99}.contact__form input:focus,.contact__form textarea:focus{outline:none;transform:scale(1.01);box-shadow:0 0 0 3px #e8b32159}.contact__form textarea{resize:vertical}.contact__submit{justify-self:start;margin-top:.5rem;font-family:var(--font-body);font-size:.95rem;letter-spacing:.12em;color:var(--cream);background:transparent;border:0;border-bottom:1px solid var(--cream);padding:.4rem 1.5rem .6rem;text-align:center;cursor:pointer;transition:color .3s var(--ease)}.contact__submit:hover{color:var(--accent-dark)}.contact__submit:disabled{opacity:.6;cursor:default}.contact__divider{position:absolute;left:0;right:0;bottom:-1px;line-height:0}.contact__divider svg{display:block;width:100%;height:clamp(60px,7vw,110px)}@media(max-width:520px){.contact__name{grid-template-columns:1fr}}.hero{position:relative;min-height:106svh;display:flex;background:var(--hero-grad);padding:calc(var(--header-h) + clamp(1rem,2.6vw,2.5rem)) clamp(2.5rem,6vw,6rem) clamp(2.5rem,5vw,5rem)}.hero__frame{position:relative;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--bg);text-align:center}.hero__media{position:absolute;inset:0;z-index:0}.hero__media picture,.hero__media img{width:100%;height:100%;object-fit:cover}.hero__media img{filter:brightness(.5) saturate(.8) contrast(.85)}.hero__scrim{position:absolute;inset:0;z-index:1;background:radial-gradient(120% 80% at 50% 50%,#11110e00 45%,#11110e38)}.hero__grain{position:absolute;inset:-150%;z-index:2;pointer-events:none;opacity:.85;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px;animation:grain .7s steps(1) infinite}@keyframes grain{0%{transform:translate(0)}10%{transform:translate(-3%,-4%)}20%{transform:translate(-8%,2%)}30%{transform:translate(4%,-6%)}40%{transform:translate(-2%,7%)}50%{transform:translate(-9%,-2%)}60%{transform:translate(6%,3%)}70%{transform:translate(-4%,5%)}80%{transform:translate(3%,-7%)}90%{transform:translate(-6%,1%)}to{transform:translate(0)}}.hero__bar{position:absolute;left:0;right:0;height:14vh;background:#000;z-index:5;pointer-events:none;animation:barOpen 1s var(--ease) .15s both}.hero__bar--top{top:0;transform-origin:top}.hero__bar--bottom{bottom:0;transform-origin:bottom}@keyframes barOpen{0%{transform:scaleY(1)}to{transform:scaleY(0)}}.hero__content{position:relative;z-index:3;padding-inline:0;transform:translateY(-5vh)}.hero__title{font-size:clamp(2.5rem,7vw,5.25rem);line-height:1.5;letter-spacing:0;font-variant-ligatures:none;font-feature-settings:"liga" 0,"clig" 0,"dlig" 0;animation:heroLineIn 1s var(--ease) .6s both}.hero__title span{display:block}.hero__title span:last-child{font-style:italic;animation:spaceOut 1.8s var(--ease) 1.2s both}@keyframes heroLineIn{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes spaceOut{0%{letter-spacing:0}to{letter-spacing:.13em}}.hero__subhead{margin-top:2.5rem;font-size:clamp(1.15rem,2vw,1.6rem);letter-spacing:.01em;animation:heroLineIn 1s var(--ease) .9s both}@media(prefers-reduced-motion:reduce){.hero__media img,.hero__grain{animation:none}.hero__bar{display:none}.hero__title,.hero__subhead{opacity:1;transform:none;animation:none}.hero__title span:last-child{letter-spacing:.13em;animation:none}}.services{background:var(--accent);color:var(--text);padding-block:clamp(5rem,11vw,10rem)}.services__inner{max-width:1500px;width:100%;margin-inline:auto;padding-inline:clamp(2.5rem,5vw,4.5rem);display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:start}.services__heading{font-size:clamp(2.75rem,7vw,5rem);line-height:1;margin-bottom:0}.services__list{border-top:1px solid #000}.service{border-bottom:1px solid #000}.service__head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:clamp(.9rem,1.8vw,1.4rem) 0;background:none;border:0;cursor:pointer;text-align:left;color:inherit}.service__title{font-size:clamp(1.55rem,2.7vw,2.4rem);line-height:1.1}.service__chevron{flex:none;transition:transform .35s var(--ease)}.service__head[aria-expanded=false] .service__chevron{transform:rotate(180deg)}.service__body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--ease),opacity .3s var(--ease);opacity:0}.service__body.is-open{grid-template-rows:1fr;opacity:1}.service__body>p{overflow:hidden;margin:0;padding-bottom:clamp(1rem,2vw,1.5rem);font-size:.92rem;color:#31312bd9}@media(max-width:900px){.services__inner{grid-template-columns:1fr;gap:clamp(1.5rem,4vw,2.5rem)}}@media(max-width:820px){.service__title{font-size:clamp(1.35rem,5vw,2rem)}}@media(max-width:720px){.hero{padding:0}.hero__content{padding-inline:clamp(1.25rem,5vw,2rem);transform:translateY(-2vh)}.hero__title{line-height:1.25}.services{padding-block:clamp(3.5rem,12vw,5rem)}}:root{--bg: rgb(234, 230, 221);--bg-deep: hsl(44, 18%, 84%);--text: rgb(45, 45, 42);--text-soft: hsl(60, 3%, 30%);--accent: rgb(201, 182, 131);--accent-dark: hsl(44, 81%, 52%);--accent-light: hsl(44.27, 74.1%, 72.75%);--footer-bg: rgb(237, 210, 134);--dark: var(--text);--cream: var(--bg);--font-head: "Young Serif", Georgia, serif;--font-body: "Bitter", Georgia, serif;--maxw: 1040px;--gutter: clamp(1.25rem, 4vw, 4rem);--header-h: 76px;--ease: cubic-bezier(.4, 0, .2, 1);--hero-grad: linear-gradient( 180deg, hsl(46 18% 30%) 0%, hsl(49 13% 19%) 7%, hsl(53 9% 11%) 18%, hsl(56 7% 8%) 100% )}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-weight:400;font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:var(--font-head);font-weight:400;line-height:1.08;margin:0;letter-spacing:.01em}a{color:inherit;text-decoration:none}.skip-link{position:absolute;left:0;top:0;z-index:1000;padding:.75rem 1.25rem;background:var(--text);color:var(--bg);transform:translateY(-120%);transition:transform .2s var(--ease)}.skip-link:focus{transform:translateY(0)}img{display:block;max-width:100%}.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:clamp(4rem,9vw,8rem)}section[id]{scroll-margin-top:var(--header-h)}.eyebrow{font-family:var(--font-body);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--text-soft)}.link-underline{position:relative;display:inline-block;font-family:var(--font-body);letter-spacing:.04em}.link-underline:after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}.link-underline:hover:after{transform:scaleX(1)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease);will-change:opacity,transform}.reveal.is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
