@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Inter:wght@400;500;600&display=swap');
:root{--paper:#f6f2eb;--ink:#40352b;--muted:#776b60;--champagne:#cbb599;--line:#cabaa780;--shine:30%;font-family:Inter,Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:repeating-linear-gradient(0deg,#ffffff26 0px,#8b775207 .7px,transparent 1.5px,transparent 3px),linear-gradient(112deg,#f9f7f1,#ede6db55 35%,#fffdf8 63%,#f1eade);font-size:16px;line-height:1.6}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #92734e;outline-offset:5px}button{border:0;background:none}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;line-height:1.05}h2{font-size:clamp(2.6rem,5vw,4.8rem);letter-spacing:-.035em;white-space:pre-line}h3{font-size:1.8rem}p{color:var(--muted)}.header{position:absolute;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;width:100%;padding:28px 5%;border-bottom:1px solid transparent;transition:background .3s}.header.stuck{position:fixed;padding-top:17px;padding-bottom:17px;background:#f8f5efed;backdrop-filter:blur(15px);border-color:var(--line)}.wordmark{font-size:14px;letter-spacing:.26em;display:block}.wordmark span{font-size:11px}.header:not(.stuck)>.wordmark{visibility:hidden}.nav-actions{display:flex;align-items:center;gap:28px}.language{font-size:12px;letter-spacing:.13em;padding:9px 0}.language span{opacity:.6}.menu-toggle{display:grid;gap:6px;padding:10px 0 10px 10px}.menu-toggle i{width:23px;height:1px;background:var(--ink)}nav{position:absolute;right:4%;top:80px;background:#faf7f1;box-shadow:0 12px 30px #53463715;border:1px solid var(--line);padding:25px;min-width:240px}nav a{display:block;font-size:18px;padding:12px}nav a:hover{color:#92734e}.intro{min-height:100svh;position:relative;display:grid;place-items:center;text-align:center;padding:110px 20px 130px}.intro-content{width:min(620px,82vw)}.metal-logo{position:relative;width:100%;isolation:isolate}.metal-logo img{width:100%;height:auto}.metal-logo::after{content:'';position:absolute;inset:0;mask:url(assets/logo.png) center/contain no-repeat;background:linear-gradient(115deg,transparent calc(var(--shine) - 12%),#fffef7b0 var(--shine),transparent calc(var(--shine) + 12%));mix-blend-mode:screen;pointer-events:none}.small{max-width:380px;margin:auto}.eyebrow{font-size:12px;letter-spacing:.25em;line-height:1.8;color:var(--ink)}.intro .eyebrow{margin-top:25px}.scroll-prompt{position:absolute;bottom:36px;display:grid;justify-items:center;gap:18px;font-size:12px;letter-spacing:.18em}.scroll-line{height:44px;width:1px;background:#967d64;position:relative;animation:float 3s ease-in-out infinite}.scroll-line:after{content:'';position:absolute;bottom:0;left:-4px;width:8px;height:8px;border-right:1px solid #967d64;border-bottom:1px solid #967d64;transform:rotate(45deg)}.section{padding:100px max(6%,calc((100vw - 1320px)/2));position:relative}.story{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:7%;min-height:80svh;padding-top:60px}.story-copy{text-align:center}.tagline{letter-spacing:.3em;font-size:13px;margin-top:15px;color:var(--ink)}h1{font-size:clamp(1.65rem,2.5vw,2.3rem);line-height:1.3;margin:30px auto;max-width:430px}.buttons{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.button{display:inline-flex;gap:12px;justify-content:center;align-items:center;min-height:50px;padding:14px 24px;border:1px solid #bda68d;font-size:14px;transition:background .2s,transform .2s}.button:hover{background:#e8dccc;transform:translateY(-2px)}.button.filled{background:#cdb89f;border-color:#cdb89f;color:#382c23}.button.filled:hover{background:#c3aa8d}.hero-image{margin:0;position:relative;padding:10px;background:#d1bdab40}.hero-image img{width:100%;height:560px;object-fit:cover;object-position:54% center}.hero-image figcaption{position:absolute;bottom:30px;right:26px;font-size:10px;letter-spacing:.22em;color:#49392c;background:#fff9edb3;padding:5px 9px}.location-strip{padding:22px 6%;border-block:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:12px;letter-spacing:.06em}.location-strip span:first-child{letter-spacing:.2em}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:45px}.section-heading .eyebrow{margin-bottom:16px}.category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.category{min-height:265px;text-align:left;padding:32px;border:1px solid var(--line);background:linear-gradient(135deg,#fffaf299,#e2d3bf35);position:relative;display:flex;flex-direction:column;align-items:start;transition:transform .3s,background .3s}.category:hover{transform:translateY(-5px);background:#eee3d5}.category .number{font-size:12px;letter-spacing:.2em;color:#8e7963;margin-bottom:45px}.category h3{font-size:2rem;max-width:260px}.category p{font-size:14px;margin-top:12px;padding-right:15px}.category .arrow{position:absolute;right:25px;bottom:22px;font-size:21px}.services{background:#d1bdab20;display:grid;grid-template-columns:1fr 1.3fr;gap:10%;border-block:1px solid var(--line)}.services h2{margin-top:20px}.service-list article{display:flex;gap:27px;border-bottom:1px solid var(--line);padding:28px 0}.service-list article:first-child{padding-top:0}.service-list article>span{font-size:12px;padding-top:7px;color:#967d64}.service-list p{margin-top:14px;max-width:480px}.about{text-align:center;max-width:1200px;margin:auto}.about h2{margin:24px 0}.about>p:not(.eyebrow){max-width:680px;margin:0 auto 25px}.text-link{display:inline-block;border-bottom:1px solid #b99b79;padding:5px 0;font-size:14px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:12%;border-top:1px solid var(--line)}.contact h2{margin:20px 0}.preview-note{font-size:13px!important;max-width:350px;margin-top:30px;color:#8b7968}form{display:grid;gap:22px}label{display:grid;gap:9px;font-size:13px}input,textarea,select{width:100%;padding:11px 4px;background:transparent;border:0;border-bottom:1px solid #bca88f;border-radius:0;color:var(--ink);font-size:16px}textarea{resize:vertical}select{min-height:48px}form .button{justify-self:start}#brief-result{border-top:1px solid var(--line);padding-top:25px}#brief-result[hidden]{display:none}#copy-status{font-size:13px}footer{border-top:1px solid var(--line);padding:35px 6%;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}footer>span{font-size:11px;letter-spacing:.25em}footer p{width:100%;font-size:12px;opacity:.75}dialog{border:1px solid #d0baa0;padding:55px;background:#f8f4ec;color:var(--ink);max-width:600px;width:90%;max-height:85svh;overflow:auto;box-shadow:0 25px 90px #352a2430}dialog::backdrop{background:#34291c5c;backdrop-filter:blur(5px)}dialog h2{font-size:3.5rem;margin:20px 0}dialog>p:not(.eyebrow){margin-bottom:30px}.close-dialog{position:absolute;right:15px;top:6px;font-size:32px;padding:8px}#stars{position:fixed;inset:0;pointer-events:none;z-index:8;overflow:hidden}.spark{position:absolute;width:3px;height:3px;background:white;border-radius:50%;box-shadow:0 0 5px 1px #fff,0 0 13px 3px #fff8;animation:twinkle var(--duration) ease-in-out infinite;animation-delay:var(--delay);opacity:.1}.spark:nth-child(4n)::after{content:'';position:absolute;inset:-4px;background:linear-gradient(transparent,#fff,transparent);width:1px;left:1px}.spark:nth-child(4n)::before{content:'';position:absolute;inset:-4px;background:linear-gradient(90deg,transparent,#fff,transparent);height:1px;top:1px}.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}.js .reveal.visible{opacity:1;transform:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@keyframes twinkle{0%,100%{opacity:.08;transform:scale(.65)}45%{opacity:.8;transform:scale(1.18)}65%{opacity:.18;transform:scale(.85)}}@keyframes float{50%{transform:translateY(7px)}}@media(min-width:1500px){.intro-content{width:650px}}@media(max-width:800px){.section{padding:70px 6%}.story{grid-template-columns:1fr;gap:35px;padding-top:40px}.story-copy{max-width:540px;margin:auto}.small{max-width:330px}.hero-image img{height:420px}.story .buttons{margin-top:30px}.category-grid{grid-template-columns:repeat(2,1fr)}.services,.contact{grid-template-columns:1fr;gap:40px}.section-heading{display:block}.section-heading>p{margin-top:20px}.location-strip{flex-direction:column;gap:8px}.intro-content{width:91vw}.intro{padding-inline:16px}.category{padding:25px;min-height:235px}.category h3{font-size:1.7rem}}@media(max-width:480px){.header{padding:20px 6%}.header .wordmark{font-size:11px;letter-spacing:.17em}.header .wordmark span{font-size:9px}.nav-actions{gap:18px}.intro-content{width:100%}.intro .eyebrow{font-size:10px;letter-spacing:.19em}.intro{min-height:95svh}.scroll-prompt{bottom:34px}.story h1{font-size:1.65rem}.hero-image img{height:350px}.hero-image figcaption{font-size:8px;right:20px;bottom:20px}.buttons{display:grid;grid-template-columns:1fr;width:100%}.category-grid{grid-template-columns:1fr}.category{min-height:210px}.category .number{margin-bottom:25px}.category h3{max-width:none;font-size:2.1rem}.service-list h3{font-size:1.8rem}.section-heading h2{font-size:3.1rem}dialog{padding:45px 25px}dialog h2{font-size:2.7rem}footer .wordmark{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.spark{opacity:.3}.js .reveal{opacity:1;transform:none}.metal-logo::after{display:none}}

/* The opening logo starts without the animated reflection, in either theme. */
.intro .metal-logo{--intro-reflection:0;--shine-x:78%}
.intro .metal-logo::after{opacity:calc(.18 * var(--intro-reflection))}
.intro .aperture-layer::after{opacity:calc(.95 * var(--intro-reflection))}
/* Champagne refinement: slightly deeper satin, home-only diamond reflections. */
:root{--paper:#e6dfd4}
body{background:repeating-linear-gradient(0deg,#ffffff26 0px,#8b775209 .7px,transparent 1.5px,transparent 3px),linear-gradient(112deg,#eae5dc,#dfd6c9 35%,#eee9df 63%,#e4dacd)}
.header.stuck{background:#eae4daf0}
#stars{position:fixed;inset:0;z-index:0;pointer-events:none}
.site{position:relative;z-index:1}
.spark{width:3px;height:3px;box-shadow:0 0 4px 1px #fff,0 0 10px 3px #fff9,0 0 20px 5px #fff4}
.spark:nth-child(3n){width:4px;height:4px}
@keyframes twinkle{0%,100%{opacity:.12;transform:scale(.65)}45%{opacity:1;transform:scale(1.45)}65%{opacity:.25;transform:scale(.9)}}
.metal-logo{--shine-x:65%;--aperture-turn:0deg;--aperture-scale:1}
.metal-logo>img{clip-path:inset(59% 0 0 0);filter:drop-shadow(.28px 0 0 var(--wordmark-edge,#8e7658)) drop-shadow(-.28px 0 0 var(--wordmark-edge,#8e7658))}
.aperture-layer{position:absolute;inset:0;display:block;background:url(assets/logo.png) center/contain no-repeat;clip-path:circle(18% at 50% 36%);transform-origin:50% 36%;transform:rotate(var(--aperture-turn)) scale(var(--aperture-scale));will-change:transform}
.metal-logo::after,.aperture-layer::after{content:'';position:absolute;inset:0;pointer-events:none;-webkit-mask:url(assets/logo.png) center/contain no-repeat;mask:url(assets/logo.png) center/contain no-repeat;background-image:linear-gradient(110deg,transparent 39%,#fff7dc55 44%,#ffffff 49%,#ffffffed 51%,#fff8df55 56%,transparent 61%);background-size:300% 100%;background-position:var(--shine-x) 50%;background-repeat:no-repeat;mix-blend-mode:screen;opacity:.95}
.metal-logo::after{clip-path:inset(59% 0 0 0);opacity:.18}
@media(prefers-reduced-motion:reduce){.aperture-layer{transform:none;will-change:auto}.aperture-layer::after,.metal-logo::after{display:none}.spark{opacity:.4}}

/* Progressive enhancement: core content and navigation work without scripts. */
.lang-es{display:none}
#spanish-toggle:checked ~ .site .lang-en{display:none}
#spanish-toggle:checked ~ .site .lang-es{display:inline}
.language-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.language-input:focus-visible ~ .site .language{outline:2px solid #92734e;outline-offset:5px}
.language{display:block;cursor:pointer}
.menu-shell summary{list-style:none;cursor:pointer}
.menu-shell summary::-webkit-details-marker,.category summary::-webkit-details-marker{display:none}
.menu-shell:not([open]) nav{display:none}
.menu-shell nav{top:75px}
.category{display:block}
.category summary{list-style:none;cursor:pointer;min-height:190px;position:relative}
.category .number{display:block}
.category[open] .arrow{transform:rotate(45deg)}
.category-content{border-top:1px solid var(--line);padding-top:20px}
.category-content p{font-size:15px;line-height:1.7;margin-bottom:16px}
.category-grid{align-items:start}
.reveal,.js .reveal{opacity:1;transform:none}
/* Six disciplines: a compact two-by-three grid, including phones. */
.category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.category{min-width:0;min-height:230px}
.category summary{display:flex;flex-direction:column;min-height:170px}
.category h3{overflow-wrap:anywhere;max-width:none}
.category .arrow{position:static;align-self:flex-end;margin-top:auto;padding-top:12px;line-height:1}
@media(max-width:600px){
 .category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .category{padding:18px 14px;min-height:225px}
 .category summary{min-height:185px}
 .category .number{font-size:12px;margin-bottom:18px}
 .category h3{font-size:1.4rem;line-height:1.1}
 .category p{font-size:14px;line-height:1.4;padding-right:0;margin-top:10px}
 .category-content p{font-size:14px;line-height:1.5}
 .category-content .text-link{font-size:14px}
}

/* Photographic service covers keep the same compact two-column navigation. */
details.category--visual{padding:0;min-height:0;overflow:hidden}
.category--visual summary{display:block;min-height:0}
.category-photo{display:block;width:100%;aspect-ratio:3/2;overflow:hidden;background:#cbbba7;border-bottom:1px solid var(--line)}
.category-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.category-copy{display:flex;flex-direction:column;min-height:220px;padding:24px}
.category-copy .number{margin-bottom:12px}
.category-copy h3{font-size:clamp(1.3rem,2.6vw,2rem);line-height:1.12}
.category-copy p{font-size:14px;line-height:1.45;padding-right:0}
.category--visual .category-content{margin:0 24px;padding:20px 0}
.category--visual summary:focus-visible{outline:2px solid currentColor;outline-offset:-3px}
@media(hover:hover){.category--visual:hover .category-photo img{transform:scale(1.035)}}
@media(max-width:600px){
 .category-copy{min-height:218px;padding:16px 12px}
 .category-copy .number{margin-bottom:10px}
 .category-copy h3{font-size:1.25rem;line-height:1.12}
 .category-copy p{margin-top:9px}
 .category--visual .category-content{margin:0 12px;padding:16px 0}
}
/* Subtly cooler aperture metal; retain warm reflected highlights. */
.aperture-layer{filter:saturate(.9)}

/* Real portfolio links remain usable in native HTML previews. */
.portfolio-projects{display:grid;gap:12px;margin:18px 0 24px}
.portfolio-project{display:flex;flex-direction:column;gap:8px;border:1px solid currentColor;border-color:color-mix(in srgb,currentColor 25%,transparent);padding:16px 12px;text-decoration:none;color:inherit;overflow-wrap:anywhere}
.portfolio-project strong{font-family:Georgia,serif;font-size:clamp(1.05rem,2vw,1.4rem);line-height:1.2}
.portfolio-project .project-kind{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase}
.portfolio-project .project-credit,.portfolio-project .project-watch{font-size:.75rem;line-height:1.5}
.portfolio-project .project-watch{margin-top:4px;text-decoration:underline;text-underline-offset:4px}
.portfolio-project:hover,.portfolio-project:focus-visible{outline:2px solid currentColor;outline-offset:3px}

.project-video{display:block;width:100%;height:auto;aspect-ratio:910/512;object-fit:contain;background:#151413;position:relative;z-index:1}
