*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:var(--ivory);font:15px/1.7 var(--font);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px solid var(--ink);outline-offset:5px}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:450;line-height:1.1;letter-spacing:-.045em}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.15em;text-transform:uppercase}.section{padding:100px clamp(24px,6vw,110px)}h2{font-size:clamp(36px,4.2vw,68px)}.skip{position:fixed;top:-100px;left:20px;z-index:200;padding:15px;background:var(--ink);color:var(--ivory)}.skip:focus{top:15px}.header{height:96px;display:flex;align-items:center;gap:45px;padding:0 5%;position:absolute;top:0;left:0;right:0;z-index:30;background:#f5f1e9d9;border-bottom:1px solid #302d2825}.brand{display:flex;gap:14px;align-items:center;min-height:44px;font-size:22px;font-weight:500;letter-spacing:-.04em;margin-right:auto}.brand small{display:block;font-size:9px;letter-spacing:.09em;text-transform:uppercase;font-weight:400}.brand-symbol{display:grid;place-items:center;width:28px;height:28px;border:1px solid #302d2855;font-size:20px}.desktop-nav{display:flex;gap:30px;font-size:12px}.desktop-nav a,.contact-link{min-height:44px;display:flex;align-items:center}.contact-link{font-size:12px;border-bottom:1px solid var(--ink)}.menu-toggle{display:none;min-width:44px;min-height:44px;background:none;border:0;font-size:24px}#menu{border:0;background:var(--ivory);color:var(--ink);padding:24px;width:min(440px,calc(100% - 32px));max-height:calc(100dvh - 100px)}#menu::backdrop{background:#302d2880}.menu-top{display:flex;align-items:center;justify-content:space-between;font-size:12px;border-bottom:1px solid var(--line);padding-bottom:15px}#menu button{min-width:44px;min-height:44px;border:0;background:transparent;font-size:28px}#menu nav{display:flex;flex-direction:column;padding-top:10px}#menu a{font-size:24px;min-height:56px;padding:10px 0}.locked{overflow:hidden}.stage{height:100svh;min-height:650px;position:relative;isolation:isolate;overflow:hidden;background:var(--sand)}.scene-layer{position:absolute;inset:0;z-index:-1;transform-origin:center}.scene-layer picture,.scene-layer img{height:100%;width:100%;object-fit:cover;object-position:60% center}.scene-layer:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f5f1e928,transparent 50%);pointer-events:none}#film{position:absolute;inset:0;width:100%;height:100%;opacity:0}.hero-copy{position:absolute;top:28%;left:5%;width:42%;max-width:650px}.hero-copy h1{font-size:clamp(40px,4.25vw,72px);margin:24px 0;line-height:1.1}.hero-text{max-width:330px;font-size:14px;color:var(--muted);margin-bottom:32px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:40px;min-height:54px;padding:16px 22px;border:1px solid var(--ink);background:var(--ink);color:var(--ivory);font-size:12px;border-radius:3px;transition:background .25s}.button:hover{background:#51483e}.button span{font-size:19px}.story-skip{position:absolute;left:5%;bottom:30px;min-height:44px;display:flex;gap:14px;align-items:center;font-size:12px;background:#f5f1e9dc;padding:0 12px;z-index:10}.scene-note{position:absolute;right:5%;bottom:40px;font-size:11px}.cinematic .story{height:250svh}.cinematic .stage{position:sticky;top:0}.work{background:var(--ivory);position:relative}.work-heading{display:grid;grid-template-columns:1fr 1.7fr 1fr;gap:25px;align-items:end;margin-bottom:50px}.work-heading h2{font-size:clamp(32px,3.3vw,54px);margin:0}.work-heading>p:last-child{font-size:13px;color:var(--muted);margin:0;text-align:right}.project-image{display:block;position:relative;overflow:hidden;background:var(--sand)}.project-image picture,.project-image img{width:100%}.round-arrow{position:absolute;right:22px;bottom:22px;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--ivory);font-size:27px;transition:transform .3s}.project-image:hover .round-arrow{transform:rotate(45deg)}.project-info{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:30px 0}.project-info h3{font-size:33px}.project-info h3 span{font-size:18px;color:var(--muted)}.project-info p:not(.eyebrow){font-size:14px;max-width:470px;color:var(--muted)}.text-link{font-size:12px;min-height:44px;display:inline-flex;align-items:center;border-bottom:1px solid var(--ink)}.responsive{background:#e5dbcd;display:grid;grid-template-columns:1fr 1.3fr;gap:70px;align-items:center;overflow:hidden}.responsive p:not(.eyebrow){max-width:350px;font-size:14px;color:var(--muted)}.comparison{position:relative;padding:30px 40px 80px 0;--lift:0px;transform:translateY(var(--lift))}.desktop-device{border:10px solid #35342f;border-bottom-width:19px;border-radius:12px;background:#35342f;box-shadow:0 25px 45px #302d2820}.desktop-device img{width:100%}.phone-device{position:absolute;right:0;bottom:0;width:27%;border:6px solid #35342f;border-radius:25px;overflow:hidden;background:#35342f;box-shadow:0 18px 32px #302d2830;transform:translateY(calc(var(--lift)*-.6))}.phone-device img{width:100%;height:auto}.upcoming{padding-top:60px;padding-bottom:60px}.upcoming>div{display:flex;align-items:center;gap:30px;border-top:1px solid var(--line);padding:25px 0}.upcoming h3{font-size:24px;flex:1;margin:0}.upcoming span{font-size:11px;color:var(--muted)}.services{background:var(--white)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:55px;margin-top:60px}.service-grid article{border-top:1px solid var(--line);padding-top:24px}.number{font-size:11px;color:var(--muted)}.service-grid h3{font-size:25px;margin:35px 0 20px}.service-grid p{font-size:14px;color:var(--muted)}.approach{display:grid;grid-template-columns:1.2fr 1fr;gap:100px}.intro-text{font-size:16px;max-width:440px;color:var(--muted)}.approach-steps article{border-top:1px solid var(--line);padding:25px 0}.approach-steps h3{font-size:24px}.approach-steps p{font-size:14px;color:var(--muted)}.contact{background:var(--sand);position:relative;overflow:hidden}.contact h2{font-size:clamp(44px,5.5vw,84px);max-width:1100px}.contact>p:not(.eyebrow){max-width:470px;font-size:14px}.contact .button{margin:15px 0}.contact-note{font-size:12px!important;color:var(--muted);margin-top:12px}footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:30px 5%;font-size:11px}footer a{min-height:44px;display:flex;align-items:center}.nojs{padding:20px 5%;font-size:12px}.media-failed .scene-layer{background:var(--sand)}.media-failed .scene-layer img{opacity:0}
@media(max-width:800px){:root{--header:calc(70px + env(safe-area-inset-top,0px))}html{scroll-padding-top:calc(var(--header) + 18px)}.header{position:fixed;height:var(--header);padding:env(safe-area-inset-top,0px) max(22px,env(safe-area-inset-right,0px)) 0 max(22px,env(safe-area-inset-left,0px));gap:12px;background:var(--ivory)}.brand{font-size:21px;gap:10px}.brand small{font-size:8px}.brand-symbol{width:24px;height:24px}.desktop-nav,.contact-link{display:none}.menu-toggle{display:block}#menu{position:fixed;inset:var(--header) 0 auto;width:100%;max-width:none;margin:0;max-height:calc(100dvh - var(--header));padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.story{padding-top:var(--header)}.stage{height:calc(100svh - var(--header));min-height:570px}.scene-layer img{object-position:center}.hero-copy{inset:26px 22px 0;width:auto;max-width:none;pointer-events:none}.hero-copy h1{font-size:clamp(34px,8.8vw,58px);margin:16px 0}.hero-copy .eyebrow{font-size:9px}.hero-text{display:none}.hero-copy .button{position:absolute;bottom:calc(75px + env(safe-area-inset-bottom,0px));pointer-events:auto}.story-skip{left:22px;bottom:calc(18px + env(safe-area-inset-bottom,0px));font-size:11px}.scene-note{display:none}.cinematic .story{height:calc(185svh + var(--header))}.cinematic .stage{top:var(--header)}.section{padding:60px 22px}.work-heading{grid-template-columns:1fr;gap:16px;margin-bottom:28px}.work-heading h2{font-size:37px}.work-heading>p:last-child{text-align:left}.project-info{grid-template-columns:1fr;gap:4px;padding:25px 0 0}.project-info h3{font-size:28px}.project-info h3 span{display:block;font-size:18px;margin-top:10px}.round-arrow{width:44px;height:44px;right:12px;bottom:12px}.responsive{grid-template-columns:1fr;gap:35px}.responsive h2{font-size:38px}.comparison{padding:15px 30px 65px 0;max-width:520px;width:100%;justify-self:center}.desktop-device{border-width:6px;border-bottom-width:12px}.phone-device{width:30%;border-width:4px;border-radius:16px}.service-grid{grid-template-columns:1fr;gap:24px;margin-top:35px}.service-grid h3{margin-top:15px}.approach{grid-template-columns:1fr;gap:30px}.approach h2{font-size:36px}.upcoming h3{font-size:21px}.upcoming>div{gap:16px}.contact h2{font-size:42px}footer{flex-wrap:wrap;padding:20px 22px calc(20px + env(safe-area-inset-bottom,0px));gap:5px 25px}footer>span{order:3;width:100%}h2{font-size:38px}.service-grid p,.approach-steps p{max-width:500px}}
@media(max-width:350px){.hero-copy h1{font-size:32px}.brand{font-size:19px}.stage{min-height:550px}.hero-copy{top:22px}.contact h2{font-size:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}.comparison,.phone-device{transform:none!important}}
.cinematic .work{margin-top:-100svh;z-index:5;opacity:var(--handoff,0);transform:translateY(var(--work-shift,0px));padding-top:48px;visibility:hidden}.cinematic .stage{z-index:2}@media(max-width:800px){.cinematic .work{margin-top:calc(-100svh + var(--header));padding-top:32px}}

.portal{position:absolute;inset:0 auto auto 0;width:100%;height:100%;overflow:hidden;background:var(--ivory);padding-top:48px;transform-origin:0 0;z-index:1;visibility:hidden;pointer-events:none}.hero-copy{z-index:3}.scene-note{z-index:3}@media(max-width:800px){.portal{padding-top:32px}}
@media(min-width:801px){.hero-copy h1{font-size:clamp(40px,3.8vw,65px)}}
.project-card{max-width:1020px;margin:0 auto;background:var(--white);border:1px solid #302d2825;border-radius:10px;box-shadow:0 16px 45px #302d280a;overflow:hidden}.project-card-top{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:20px 26px;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:.1em;color:var(--muted)}.project-card-top strong{font-size:17px;letter-spacing:.08em;color:var(--ink);margin-right:12px}.project-card .project-image{margin:24px 24px 0;border:1px solid #302d2820;border-radius:4px;cursor:pointer}.project-card .project-image img{transition:filter .25s}.project-card .project-image:hover img{filter:brightness(.94)}.project-open{position:absolute;right:18px;bottom:18px;display:flex;align-items:center;gap:25px;min-height:48px;padding:12px 19px;background:var(--ink);color:var(--white);font-size:13px;border:1px solid #fff8;border-radius:3px;box-shadow:0 4px 20px #0002}.project-open span{font-size:20px}.project-card .project-info{padding:26px;gap:40px}.project-card .project-info h3{margin-bottom:0}.project-card .project-info .eyebrow{margin-bottom:12px}.project-card .project-info p{margin-bottom:8px}@media(max-width:800px){.project-card-top{padding:16px;font-size:8px;gap:10px}.project-card-top strong{font-size:15px;margin-right:5px}.project-card .project-image{margin:12px 12px 0;padding-bottom:58px;background:var(--ivory)}.project-open{right:0;bottom:0;left:0;border:0;border-radius:0;justify-content:space-between;min-height:48px}.project-card .project-info{padding:20px;gap:18px}.project-card .project-info h3{font-size:25px}}
.additional-work{padding-top:0}
.additional-work .project-image picture{display:block;aspect-ratio:8/5}.additional-work .project-image img{width:100%;height:100%;object-fit:cover}
.header .brand{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;min-height:60px;letter-spacing:0}.brand-wordmark{display:block;width:208px;height:auto;mix-blend-mode:multiply}.brand-descriptor{font-size:8px;letter-spacing:.15em;text-transform:uppercase;margin-left:19px;font-weight:400}.menu-top #menu-title{display:flex;align-items:center;gap:16px}.menu-monogram{width:26px;height:auto;mix-blend-mode:multiply}.contact-actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin-top:20px}.copy-email{display:inline-flex;align-items:center;gap:16px;min-height:48px;padding:10px 0;background:transparent;border:0;border-bottom:1px solid var(--ink);font-size:12px}.contact-email{display:inline-flex;align-items:center;min-height:44px;font-size:clamp(17px,2vw,26px);letter-spacing:-.03em;border-bottom:1px solid #302d2850;margin-top:18px;overflow-wrap:anywhere}.contact-help{font-size:11px!important;color:var(--muted);margin:12px 0 0}.copy-status{font-size:12px;min-height:1.7em;margin:8px 0 0}.brand-footer{padding-top:42px;padding-bottom:42px;gap:30px}.footer-wordmark img{width:230px;height:auto;mix-blend-mode:multiply}.brand-footer>div p{font-family:Georgia,serif;font-size:18px;margin-bottom:5px}.brand-footer>div span{font-size:10px;color:var(--muted)}@media(max-width:800px){.header .brand{min-height:44px;gap:3px}.brand-wordmark{width:164px}.brand-descriptor{font-size:6.5px;margin-left:15px;letter-spacing:.12em}.contact-actions{gap:8px 22px}.brand-footer{align-items:flex-start;flex-direction:column;gap:20px}.footer-wordmark img{width:200px}.brand-footer>div p{font-size:17px}.contact-email{font-size:20px}}

.header .brand,.footer-brand{mix-blend-mode:multiply}

.brand-wordmark,.footer-wordmark img,.menu-monogram{filter:url(#brand-ink);mix-blend-mode:normal}
/* Project rhythm: content remains visible if scripts or observers fail. */
.additional-work .project-card{transition:transform .7s cubic-bezier(.2,.7,.2,1),opacity .7s}
.additional-work .project-card.reveal-pending{opacity:0;transform:translateY(28px)}
.cursor-companion{position:fixed;left:0;top:0;width:30px;height:30px;margin:-15px;z-index:90;border:1px solid #665d5280;border-radius:50%;pointer-events:none;opacity:0;display:grid;place-items:center;font:10px var(--font);color:var(--ivory);transition:width .2s,height .2s,margin .2s,background .2s,opacity .15s;will-change:transform}
.cursor-companion.visible{opacity:1}.cursor-companion.over-project{width:76px;height:76px;margin:-38px;background:var(--ink);border-color:transparent}
@media(prefers-reduced-motion:reduce){.additional-work .project-card{transition:none!important;transform:none!important;opacity:1!important}.cursor-companion{display:none!important}}
@media(hover:none),(pointer:coarse){.cursor-companion{display:none!important}}
