:root{--dark:#111b20;--paper:#f1eee7;--white:#fbfaf6;--ink:#1b272b;--muted:#667073;--accent:#b8a383}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 'DM Sans',Arial,sans-serif}body.dialog-open{overflow:hidden}a{color:inherit}button{font:inherit}button:focus-visible,a:focus-visible{outline:2px solid #d4aa72;outline-offset:5px}.container{width:min(100% - 64px,1440px);margin:auto}.progress{position:fixed;z-index:30;top:0;left:0;height:3px;background:var(--accent);width:0;pointer-events:none}.site-header{position:absolute;z-index:20;top:0;left:0;right:0;color:#fff;border-bottom:1px solid #ffffff47}.site-header nav{height:86px;display:flex;align-items:center;justify-content:space-between;gap:20px}.wordmark{font-size:17px;letter-spacing:.1em;font-weight:700;text-decoration:none;white-space:nowrap}.wordmark-dot{color:#d4b994}.nav-items{display:flex;gap:38px;align-items:center}.nav-items a{text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;transition:opacity .2s}.nav-items a:hover{opacity:.65}.nav-cta{border:1px solid #ffffffa0;padding:12px 17px}.nav-cta span{margin-left:15px}.menu-toggle{display:none}.hero{position:relative;min-height:min(900px,100svh);background:var(--dark);color:#fff;overflow:hidden}.hero-photo{position:absolute;top:0;right:0;width:55%;height:100%;overflow:hidden}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 37%;filter:saturate(.65) contrast(1.04)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#111b20 0%,#111b20 29%,#111b20ed 42%,#111b2070 61%,#111b200a 100%),linear-gradient(0deg,#111b2095,transparent 40%)}.hero-inner{position:relative;min-height:min(900px,100svh);display:flex;flex-direction:column;justify-content:center}.hero-copy{max-width:930px;padding:130px 0 120px}.eyebrow,.section-label{font-size:11px;letter-spacing:.15em;font-weight:700;text-transform:uppercase}.eyebrow{color:#deded5;margin:0 0 35px;display:flex;align-items:center;gap:14px}.eyebrow-line{width:30px;height:1px;background:#c7b89f}.hero h1{font:400 clamp(74px,10vw,172px)/.91 'Libre Caslon Display',Georgia,serif;letter-spacing:-.055em;margin:0 0 38px}.hero h1 em,.statement h2 em,.portfolio h2 em,.moments h2 em,.contact h2 em,.interlude p em{font-weight:400}.hero-intro{font-size:clamp(17px,1.55vw,23px);max-width:520px;color:#e4e7e5;line-height:1.55;margin:0 0 35px}.hero-actions{display:flex;gap:30px;align-items:center;flex-wrap:wrap}.light-button{background:var(--paper);color:var(--dark);text-decoration:none;padding:16px 21px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;display:inline-flex;justify-content:space-between;gap:40px;transition:background .2s,transform .2s}.light-button:hover{background:#fff;transform:translateY(-3px)}.underlined{font-size:13px;text-transform:uppercase;letter-spacing:.06em;text-underline-offset:6px;font-weight:700}.hero-bottom{position:absolute;bottom:32px;left:0;right:0;display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.15em;font-weight:700}.hero-bottom a{text-decoration:none}.down-arrow{font-size:20px;margin-left:18px}.ticker{overflow:hidden;background:#d9d0be;border-bottom:1px solid #c9bdab;padding:18px 0;white-space:nowrap}.ticker-track{display:flex;width:max-content;animation:marquee 45s linear infinite}.ticker-track span{font-size:12px;letter-spacing:.16em;font-weight:700;word-spacing:.4em}.ticker-track b{font-weight:400;padding:0 24px;color:#806e58}@keyframes marquee{to{transform:translateX(-50%)}}.statement{padding:145px 0 165px}.statement-grid{display:grid;grid-template-columns:1fr 3fr;gap:60px}.section-label{display:flex;gap:25px;align-items:center}.section-label span:first-child{color:#987f62}.statement h2{font:400 clamp(40px,5vw,80px)/1.1 'Libre Caslon Display',Georgia,serif;letter-spacing:-.035em;max-width:1100px;margin:-13px 0 55px}.statement-bottom{display:grid;grid-template-columns:1.5fr 1fr;gap:60px;border-top:1px solid #b9b8b0;padding-top:28px;align-items:start}.statement-bottom p{max-width:620px;font-size:17px;color:#424d4e;line-height:1.8;margin:0}.line-link{justify-self:end;font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;text-decoration:none;border-bottom:1px solid;padding:0 0 10px}.line-link span{margin-left:35px}.portfolio{background:var(--white);padding:120px 0 130px}.portfolio-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:55px}.portfolio h2,.moments h2{font:400 clamp(64px,8vw,126px)/.95 'Libre Caslon Display',Georgia,serif;letter-spacing:-.055em;margin:30px 0 0}.portfolio-heading>p{color:var(--muted);max-width:275px;font-size:15px;margin:0 0 6px}.filters{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:26px}.filter{border:1px solid #c4c8c3;background:transparent;color:#596264;border-radius:100px;padding:9px 17px;cursor:pointer;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;transition:background .2s,color .2s}.filter:hover,.filter.active{background:var(--dark);color:#fff;border-color:var(--dark)}.filter sup{font-size:10px;margin-left:4px;opacity:.75}.project-list{border-top:1px solid #aeb6b4}.project{display:grid;grid-template-columns:70px minmax(0,1fr) 180px 45px;gap:15px;align-items:center;width:100%;min-height:130px;text-align:left;background:none;border:0;border-bottom:1px solid #bfc6c3;padding:20px 12px 20px 5px;cursor:pointer;color:var(--ink);transition:background .25s,padding .25s}.project:hover,.project:focus-visible{background:#eaece7;padding-left:20px}.project[hidden]{display:none}.project-no{font-size:12px;color:#7a8585;align-self:center}.project-name{font:400 clamp(25px,3.3vw,48px)/1.05 'Libre Caslon Display',Georgia,serif;letter-spacing:-.025em}.project-name small{display:block;font:500 13px/1.5 'DM Sans',sans-serif;letter-spacing:0;color:#697476;margin-top:7px}.project-type{font-size:11px;font-weight:700;letter-spacing:.11em;color:#657073}.project-arrow{font:400 30px/1 Georgia,serif;text-align:right;transition:transform .25s}.project:hover .project-arrow{transform:translate(3px,-3px)}.list-hint{text-align:right;font-size:12px;color:#697476;margin-top:18px}.interlude{background:#827c6c;color:#fff;min-height:530px;display:flex;align-items:center;overflow:hidden}.interlude-inner{position:relative;padding:85px 0}.interlude p{font:400 clamp(58px,8.3vw,135px)/.92 'Libre Caslon Display',Georgia,serif;letter-spacing:-.05em;margin:35px 0 0}.interlude-mark{position:absolute;right:-20px;bottom:-100px;font:400 clamp(230px,30vw,500px)/1 'Libre Caslon Display',Georgia,serif;letter-spacing:-.15em;color:#ffffff16;pointer-events:none}.moments{padding:140px 0 150px;background:var(--paper)}.moments-heading{max-width:900px}.moments h2{margin:28px 0 22px}.moments-heading>p{font-size:17px;color:#5d6768;max-width:580px;line-height:1.7;margin:0 0 55px}.moments-grid{display:grid;grid-template-columns:1.15fr .9fr .9fr;gap:14px;align-items:start}.moment-card{margin:0}.moment-two{margin-top:75px}.moment-three{margin-top:145px}.image-space{aspect-ratio:4/5;background:#dbdcd4;border:1px solid #c4c8c0;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:22px;transition:background .25s}.image-space:after{content:'';position:absolute;width:75%;height:1px;background:#a9b1ab;top:50%;left:12.5%;transform:rotate(-24deg);opacity:.7}.moment-two .image-space{background:#d6d1c7}.moment-three .image-space{background:#d4d9d7}.moment-card:hover .image-space{background:#cdd5d1}.photo-index{font-size:11px;letter-spacing:.13em;font-weight:700;color:#646e6c}.image-space div{z-index:1}.image-space strong{display:block;font:400 clamp(26px,2.6vw,40px)/1.1 'Libre Caslon Display',Georgia,serif}.image-space div span{font-size:12px;color:#5c6765}.moments-notes{margin-top:100px;border-top:1px solid #aeb5af;display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.moments-notes>div{padding-top:24px}.moments-notes span{font-size:11px;letter-spacing:.12em;font-weight:700}.moments-notes p{font-size:15px;line-height:1.75;color:#596466;margin:16px 0 0;max-width:345px}.contact{background:var(--dark);color:var(--white);padding:130px 0 150px}.contact h2{font:400 clamp(67px,9vw,142px)/.95 'Libre Caslon Display',Georgia,serif;letter-spacing:-.06em;margin:38px 0 40px}.contact p{font-size:19px;color:#c4ceca;max-width:550px;margin:0 0 48px}.contact-link{display:flex;align-items:center;justify-content:space-between;width:min(100%,800px);border-bottom:1px solid #8b9695;padding:10px 0 19px;text-decoration:none;font:400 clamp(25px,3.8vw,55px)/1.2 'Libre Caslon Display',Georgia,serif;letter-spacing:-.02em;transition:color .2s}.contact-link:hover{color:#cdb998}.contact-link span{font:400 35px 'DM Sans',sans-serif}.contact-secondary{display:flex;gap:35px;margin-top:28px;font-size:13px;text-transform:uppercase;letter-spacing:.1em;font-weight:700}.contact-secondary a{text-underline-offset:5px}footer{background:#0b1418;color:#b1bab7;padding:24px 0}.footer-inner{display:flex;justify-content:space-between;gap:20px;font-size:11px;font-weight:700;letter-spacing:.1em}.footer-inner a{text-decoration:none}.detail-dialog{border:0;padding:0;width:min(700px,calc(100% - 28px));max-height:min(750px,calc(100% - 28px));background:var(--paper);color:var(--ink);box-shadow:0 25px 100px #0007}.detail-dialog::backdrop{background:#071116c4;backdrop-filter:blur(5px)}.detail-shell{padding:clamp(30px,5vw,70px);position:relative}.dialog-close{position:absolute;right:25px;top:16px;background:none;border:0;font:400 32px Georgia,serif;cursor:pointer}.detail-category{font-size:11px;letter-spacing:.16em;font-weight:700;margin:0 0 60px}.detail-dialog h2{font:400 clamp(43px,5vw,70px)/1 'Libre Caslon Display',Georgia,serif;letter-spacing:-.04em;margin:0 0 15px}.detail-subtitle{font-size:13px;font-weight:700;color:#6a7473;margin:0}.detail-rule{height:1px;background:#b9c0ba;margin:35px 0}.detail-body{font-size:17px;line-height:1.8;margin:0 0 65px;color:#3c4b4e}.detail-bottom{border-top:1px solid #b9c0ba;padding-top:20px;display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:10px;font-weight:700;letter-spacing:.1em}.dialog-back{background:none;border:0;text-decoration:underline;text-underline-offset:4px;cursor:pointer;text-transform:uppercase;font-size:11px;font-weight:700;white-space:nowrap}.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:translateY(0)}@media(max-width:850px){.hero{min-height:720px}.hero-inner{min-height:720px}.hero-photo{width:70%}.hero-shade{background:linear-gradient(90deg,#111b20 0%,#111b20d9 42%,#111b2066 100%),linear-gradient(0deg,#111b20b0,transparent 60%)}.statement-grid{grid-template-columns:1fr;gap:40px}.statement-bottom{gap:35px}.moments-grid{gap:10px}.project{grid-template-columns:45px minmax(0,1fr) 110px 30px}}@media(max-width:650px){.container{width:min(100% - 36px,1440px)}.site-header nav{height:70px}.menu-toggle{display:block;border:1px solid #ffffff85;color:white;background:transparent;padding:8px 12px;text-transform:uppercase;font-size:12px;font-weight:700;cursor:pointer}.menu-toggle span{margin-left:10px}.nav-items{display:none;position:absolute;top:70px;left:0;right:0;background:#111b20;padding:25px 18px 30px;flex-direction:column;align-items:stretch;gap:20px;border-bottom:1px solid #ffffff55}.nav-items.open{display:flex}.nav-cta{align-self:start}.hero,.hero-inner{min-height:780px;min-height:100svh}.hero-photo{width:100%;height:65%;top:0}.hero-photo img{object-position:center 22%}.hero-shade{background:linear-gradient(0deg,#111b20 12%,#111b20e9 30%,#111b2088 58%,#111b2077 100%)}.hero-inner{justify-content:end}.hero-copy{padding:150px 0 105px}.eyebrow{font-size:10px;flex-wrap:wrap;gap:8px;margin-bottom:25px}.hero h1{font-size:clamp(70px,16vw,105px);margin-bottom:22px}.hero-intro{font-size:17px;max-width:420px;margin-bottom:26px}.hero-bottom{bottom:22px}.hero-bottom span,.hero-bottom a{font-size:9px}.ticker{padding:14px 0}.statement{padding:85px 0 105px}.statement h2{font-size:clamp(43px,10vw,70px);margin:0 0 40px}.statement-bottom{display:block}.statement-bottom p{font-size:16px}.line-link{display:inline-block;margin-top:30px}.portfolio{padding:85px 0 100px}.portfolio-heading{display:block;margin-bottom:35px}.portfolio h2,.moments h2{font-size:clamp(65px,14vw,100px);margin:25px 0 15px}.portfolio-heading>p{max-width:500px}.filters{margin-bottom:18px}.filter{padding:8px 12px;font-size:10px}.project{grid-template-columns:35px 1fr 25px;gap:8px;min-height:100px;padding:16px 2px}.project-name{font-size:clamp(27px,8vw,38px)}.project-name small{font-size:11px}.project-type{display:none}.project-arrow{font-size:23px}.list-hint{text-align:left}.interlude{min-height:390px}.interlude-inner{padding:70px 0}.interlude p{font-size:clamp(63px,13vw,100px)}.interlude-mark{right:0;bottom:-40px;font-size:230px}.moments{padding:90px 0 100px}.moments-heading>p{font-size:16px;margin-bottom:40px}.moments-grid{grid-template-columns:1fr 1fr;gap:11px}.moment-two{margin-top:65px}.moment-three{margin-top:-35px}.image-space{padding:12px}.image-space strong{font-size:27px}.image-space div span{font-size:10px}.photo-index{font-size:9px}.moments-notes{grid-template-columns:1fr;gap:0;margin-top:70px}.moments-notes>div{border-bottom:1px solid #b9c0ba;padding:24px 0}.moments-notes p{margin:8px 0 0;max-width:550px}.contact{padding:90px 0 110px}.contact h2{font-size:clamp(66px,14vw,105px)}.contact p{font-size:16px}.contact-link{font-size:clamp(25px,6vw,40px);overflow-wrap:anywhere}.contact-link span{font-size:25px}.footer-inner{flex-wrap:wrap;font-size:10px}.footer-inner span:nth-child(2){display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticker-track{animation:none}.reveal{opacity:1;transform:none;transition:none}*,*:before,*:after{transition-duration:0s!important;animation-duration:0s!important}}
/* Phone layout: preserve the desktop composition while giving small screens room to breathe. */
@media (max-width: 650px) {
  .container { width: min(100% - 40px, 1440px); }
  .site-header nav { height: 68px; }
  .wordmark { font-size: 14px; letter-spacing: .08em; }
  .menu-toggle { min-height: 44px; padding: 9px 12px; font-size: 14px; }
  .nav-items { top: 68px; padding: 18px 20px 25px; gap: 0; box-shadow: 0 20px 30px #0711165c; }
  .nav-items a { display: flex; align-items: center; min-height: 50px; font-size: 15px; }
  .nav-cta { margin-top: 10px; padding: 0 15px; }

  .hero, .hero-inner { min-height: max(720px, 100svh); }
  .hero-photo { height: 56%; }
  .hero-photo img { object-position: center 29%; }
  .hero-shade { background: linear-gradient(0deg, #111b20 8%, #111b20 30%, #111b20e6 49%, #111b2040 76%, #111b2070 100%); }
  .hero-copy { max-width: 100%; padding: 285px 0 100px; }
  .eyebrow { font-size: 12px; line-height: 1.5; margin-bottom: 17px; }
  .eyebrow-line { width: 20px; }
  .hero h1 { font-size: clamp(3rem, 12vw, 5.1rem); line-height: .96; letter-spacing: -.048em; margin-bottom: 21px; }
  .hero h1 br { display: none; }
  .hero-intro { font-size: 16px; line-height: 1.55; max-width: 34ch; }
  .hero-actions { gap: 20px; }
  .light-button { min-height: 48px; align-items: center; padding: 12px 16px; gap: 20px; }
  .underlined { display: inline-flex; min-height: 44px; align-items: center; }
  .hero-bottom { bottom: 18px; gap: 10px; }
  .hero-bottom span, .hero-bottom a { font-size: 11px; }
  .hero-bottom a { white-space: nowrap; }
  .down-arrow { margin-left: 5px; }

  .statement { padding: 80px 0 88px; }
  .statement-grid { gap: 28px; }
  .section-label { font-size: 12px; }
  .statement h2 { font-size: clamp(2.35rem, 9vw, 4rem); line-height: 1.12; margin-bottom: 29px; }
  .statement-bottom { padding-top: 25px; }
  .statement-bottom p { line-height: 1.65; }
  .line-link { font-size: 13px; }

  .portfolio { padding: 80px 0 85px; }
  .portfolio h2, .moments h2 { font-size: clamp(3.15rem, 12vw, 5.7rem); line-height: 1; }
  .filters { gap: 8px; }
  .filter { min-height: 44px; padding: 9px 14px; font-size: 13px; }
  .filter sup { font-size: 11px; }
  .project { grid-template-columns: 28px minmax(0,1fr) 24px; min-height: 98px; gap: 8px; padding: 18px 2px; }
  .project-name { font-size: clamp(1.55rem, 7vw, 2.25rem); overflow-wrap: anywhere; }
  .project-name small { font-size: 13px; line-height: 1.4; margin-top: 5px; }
  .project-no { font-size: 12px; }
  .project-arrow { font-size: 23px; }

  .interlude { min-height: 350px; }
  .interlude p { font-size: clamp(3rem, 11vw, 5.5rem); line-height: 1; }
  .interlude-mark { font-size: 190px; right: 5px; }

  .moments { padding: 85px 0 90px; }
  .moments-heading > p { line-height: 1.6; }
  .moments-grid { grid-template-columns: 1fr; gap: 24px; }
  .moment-two, .moment-three { margin-top: 0; }
  .image-space { aspect-ratio: 5/4; padding: 20px; }
  .image-space strong { font-size: clamp(1.8rem, 8vw, 2.5rem); }
  .image-space div span { display: block; font-size: 14px; line-height: 1.4; margin-top: 6px; }
  .photo-index { font-size: 12px; }
  .moments-notes { margin-top: 60px; }
  .moments-notes span { font-size: 12px; }
  .moments-notes p { font-size: 16px; }

  .contact { padding: 85px 0 95px; }
  .contact h2 { font-size: clamp(3.2rem, 12vw, 5.8rem); line-height: 1; }
  .contact p { font-size: 16px; }
  .contact-link { gap: 8px; font-size: clamp(1.45rem, 6vw, 2.5rem); line-height: 1.25; overflow-wrap: anywhere; }
  .contact-link span { flex: none; font-size: 24px; }
  .contact-secondary { flex-wrap: wrap; gap: 18px 26px; font-size: 14px; }
  .contact-secondary a { min-height: 44px; display: inline-flex; align-items: center; }
  .footer-inner { font-size: 12px; align-items: center; }
  .footer-inner a { min-height: 44px; display: inline-flex; align-items: center; }

  .detail-dialog { width: calc(100% - 24px); max-height: calc(100dvh - 24px); overflow-y: auto; }
  .detail-shell { padding: 36px 22px 24px; }
  .detail-category { margin-bottom: 34px; font-size: 12px; }
  .detail-dialog h2 { font-size: clamp(2.3rem, 10vw, 3.6rem); overflow-wrap: anywhere; }
  .detail-subtitle { font-size: 14px; }
  .detail-rule { margin: 26px 0; }
  .detail-body { font-size: 16px; line-height: 1.65; margin-bottom: 36px; }
  .detail-bottom { align-items: flex-start; flex-direction: column; gap: 12px; }
  .dialog-back, .dialog-close { min-height: 44px; }
}

@media (max-width: 360px) {
  .container { width: calc(100% - 32px); }
  .hero h1 { font-size: clamp(2.65rem, 12vw, 3rem); }
  .hero-copy { padding-top: 265px; }
  .hero-bottom span { display: none; }
  .hero-bottom { justify-content: flex-end; }
  .statement h2 { font-size: 2.25rem; }
  .contact-link { font-size: 1.4rem; }
}

/* Keep the editorial ticker moving on phones; use a font glyph instead of an emoji. */
.ticker-track { will-change: transform; }
.ticker-track b {
  font-family: Georgia, serif;
  font-size: 22px;
  font-weight: 400;
  line-height: 0;
  vertical-align: -.08em;
}
@media (max-width: 650px) {
  .ticker-track { animation-duration: 32s; }
  .ticker-track b { padding: 0 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .ticker-track { animation: marquee 75s linear infinite !important; }
}

.ticker-track span { display: inline-flex; align-items: center; }
.ticker-track b {
  display: inline-flex;
  flex: 0 0 60px;
  height: 19px;
  padding: 0;
  align-items: center;
  justify-content: center;
  color: #806e58;
}
.ticker-track b svg { display: block; }
@media (max-width: 650px) {
  .ticker-track b { flex-basis: 52px; padding: 0; }
}

/* Photo stories */
.moment-card .image-space{isolation:isolate;border:0;background:#1b272b;color:#fff}
.moment-card .image-space::after{content:"";position:absolute;inset:0;width:auto;height:auto;top:0;left:0;transform:none;opacity:1;background:linear-gradient(180deg,rgba(10,18,20,.42),transparent 32%,rgba(10,18,20,.12) 52%,rgba(10,18,20,.8));z-index:0}
.moment-card .image-space img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.moment-card:hover .image-space img{transform:scale(1.035)}
.moment-one .image-space img{object-position:50% center}
.moment-two .image-space img{object-position:50% center}
.moment-three .image-space img{object-position:50% center}
.moment-card .photo-index,.moment-card .image-space div{position:relative;z-index:1;color:#fff;text-shadow:0 1px 8px #0009}
.moment-card .image-space div span{display:block;margin-top:9px;color:#fff;line-height:1.5}
@media(max-width:650px){.moment-card .image-space{aspect-ratio:4/4.5}}
