:root { --navy:#0b233c; --navy-2:#122f4d; --ink:#1d2c3d; --muted:#586675; --line:#d9e0e5; --paper:#f7f9fa; --white:#fff; --gold:#c7a16b; --max:1180px; }
    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    body { margin:0; color:var(--ink); background:var(--white); font:400 1rem/1.65 'DM Sans',sans-serif; }
    a { color:inherit; text-decoration:none; }
    a:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
    .container { width:min(calc(100% - 3rem),var(--max)); margin-inline:auto; }
    .site-header { background:var(--navy); color:var(--white); border-bottom:1px solid rgba(255,255,255,.14); }
    .header-inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; min-height:88px; }
    .brand { display:flex; align-items:center; gap:.9rem; min-width:0; }
    .brand-mark { display:block; width:88px; height:52px; object-fit:contain; flex:none; }
    .brand-copy { display:flex; flex-direction:column; line-height:1.16; }
    .brand-name { font:800 .91rem/1.2 Manrope,sans-serif; text-transform:uppercase; letter-spacing:.13em; }
    .brand-role { color:#b9c6d2; font-size:.78rem; margin-top:.26rem; }
    nav { display:flex; align-items:center; gap:2rem; font-size:.9rem; font-weight:600; }
    nav a { color:#e1e8ed; transition:color .2s ease; }
    nav a:hover { color:var(--gold); }
    nav .nav-contact { color:var(--navy); background:var(--white); padding:.72rem 1.08rem; }
    nav .nav-contact:hover { color:var(--navy); background:#e8edf0; }
    .hero { background:var(--navy); color:var(--white); overflow:hidden; }
    .hero-grid { display:grid; grid-template-columns:1.06fr .94fr; min-height:600px; }
    .hero-copy { padding:clamp(4rem,8vw,7.5rem) 5rem clamp(4rem,7vw,6rem) 0; align-self:center; position:relative; z-index:1; }
    .eyebrow { color:var(--gold); display:flex; align-items:center; gap:.85rem; font:700 .75rem/1.4 Manrope,sans-serif; text-transform:uppercase; letter-spacing:.2em; }
    .eyebrow:before { content:""; display:block; width:32px; height:1px; background:var(--gold); }
    h1,h2,h3,p { margin-top:0; }
    h1,h2,h3 { font-family:Manrope,sans-serif; }
    h1 { font-weight:600; font-size:clamp(2.75rem,5.4vw,5.35rem); line-height:1.08; letter-spacing:-.055em; margin:2rem 0 1.6rem; max-width:12ch; }
    h1 em { font-style:normal; color:#d9b47a; }
    .hero-lede { color:#cbd6df; font-size:1.15rem; line-height:1.65; max-width:38rem; margin-bottom:2rem; }
    .hero-actions { display:flex; gap:1.4rem; align-items:center; flex-wrap:wrap; }
    .button { display:inline-flex; align-items:center; justify-content:center; gap:.65rem; min-height:50px; padding:.8rem 1.3rem; font-weight:700; font-size:.93rem; transition:background .2s ease, transform .2s ease; }
    .button:hover { transform:translateY(-2px); }
    .button-gold { background:var(--gold); color:#12243a; }
    .button-gold:hover { background:#dfb879; }
    .text-link { border-bottom:1px solid rgba(255,255,255,.52); padding-bottom:.3rem; font-weight:600; font-size:.93rem; }
    .text-link:hover { color:var(--gold); border-color:var(--gold); }
    .hero-visual { min-height:100%; position:relative; background:linear-gradient(145deg,#193956,#091c31); }
    .hero-visual img { width:100%; height:100%; position:absolute; inset:0; object-fit:contain; object-position:center bottom; filter:saturate(.87) contrast(1.04); }
    .hero-visual:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(11,35,60,.08),transparent 45%),linear-gradient(0deg,rgba(4,20,36,.7),transparent 40%); pointer-events:none; }
    .visual-caption { position:absolute; z-index:1; bottom:2.2rem; left:2.2rem; right:2.2rem; border-top:1px solid rgba(255,255,255,.5); padding-top:1rem; color:white; font:500 .86rem/1.5 Manrope,sans-serif; letter-spacing:.02em; }
    .intro { padding:6.4rem 0 5.6rem; }
    .section-head { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:end; margin-bottom:3.1rem; }
    .section-label { color:#82704f; font:800 .75rem/1.4 Manrope,sans-serif; letter-spacing:.18em; text-transform:uppercase; display:block; margin-bottom:1.35rem; }
    h2 { font-size:clamp(2rem,3.4vw,3.5rem); line-height:1.17; letter-spacing:-.045em; font-weight:600; margin-bottom:0; }
    .section-head p { color:var(--muted); font-size:1.12rem; max-width:31rem; margin-bottom:.25rem; }
    .service-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
    .service { padding:2rem 1.45rem 2.1rem; border-left:1px solid var(--line); }
    .service:first-child { border-left:0; padding-left:0; }
    .service:last-child { padding-right:0; }
    .service-number { color:#9b7848; font:700 .78rem Manrope,sans-serif; letter-spacing:.08em; }
    .service h3 { font-size:1.16rem; line-height:1.35; letter-spacing:-.02em; margin:2.6rem 0 .85rem; }
    .service p { color:var(--muted); line-height:1.58; font-size:.94rem; margin-bottom:0; }
    .method { background:var(--paper); padding:6.25rem 0; }
    .method-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:8vw; }
    .method h2 { max-width:11ch; }
    .method-intro { color:var(--muted); margin-top:1.3rem; max-width:26rem; }
    .steps { border-top:1px solid #cbd4db; }
    .step { display:grid; grid-template-columns:3rem 1fr; gap:1.2rem; padding:1.5rem 0; border-bottom:1px solid #cbd4db; }
    .step span { color:#9b7848; font:700 .8rem Manrope,sans-serif; padding-top:.2rem; }
    .step h3 { font-size:1.13rem; margin:0 0 .45rem; letter-spacing:-.02em; }
    .step p { color:var(--muted); margin:0; font-size:.96rem; }
    .about { padding:6.5rem 0; }
    .about-grid { display:grid; grid-template-columns:.82fr 1.18fr; gap:8vw; }
    .about h2 { max-width:13ch; }
    .about-copy { font-size:1.08rem; }
    .about-copy p { margin-bottom:1.35rem; }
    .about-copy strong { color:var(--navy); }
    .about-note { border-left:2px solid var(--gold); padding:.2rem 0 .2rem 1.3rem; margin-top:2rem; color:var(--muted); font-size:.95rem; }
    .about-note strong { display:block; font-family:Manrope,sans-serif; margin-bottom:.35rem; }
    .career-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem 1rem; margin:2rem 0; padding:1.4rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
    .career-facts strong { display:block; font:700 clamp(1.25rem,2vw,1.9rem)/1.2 Manrope,sans-serif; color:var(--navy); }
    .career-facts span { display:block; color:var(--muted); font-size:.82rem; line-height:1.4; margin-top:.4rem; }
    .career-list { margin:2rem 0 0; border-top:1px solid var(--line); }
    .career-item { display:grid; grid-template-columns:7.5rem 1fr; gap:1rem; padding:1.1rem 0; border-bottom:1px solid var(--line); }
    .career-item dt { color:#8b6842; font:700 .83rem/1.5 Manrope,sans-serif; }
    .career-item dd { margin:0; color:var(--muted); font-size:.93rem; line-height:1.55; }
    .career-item dd strong { color:var(--navy); }
    .case-studies { background:var(--navy); color:var(--white); padding:6rem 0; }
    .case-studies .section-label { color:var(--gold); }
    .case-intro { max-width:47rem; color:#cbd7e1; font-size:1.08rem; margin:1.2rem 0 2.5rem; }
    .case-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; }
    .case-card { display:grid; grid-template-columns:1fr .8fr; gap:1.6rem; min-height:310px; border:1px solid rgba(255,255,255,.27); padding:1.6rem; background:rgba(255,255,255,.035); }
    .case-card .case-image { width:100%; height:100%; min-height:260px; object-fit:contain; background:#fff; }
    .case-type { color:var(--gold); font:700 .74rem/1.4 Manrope,sans-serif; text-transform:uppercase; letter-spacing:.12em; }
    .case-card h3 { font-size:clamp(1.6rem,2.4vw,2.5rem); line-height:1.16; letter-spacing:-.04em; margin:1.1rem 0; }
    .case-card p { color:#cbd7e1; font-size:.94rem; line-height:1.58; }
    .case-art { background:linear-gradient(145deg,#315171,#102840); display:flex; align-items:end; padding:1.5rem; font:500 clamp(2rem,3.2vw,3.6rem)/1.05 Manrope,sans-serif; letter-spacing:-.05em; min-height:260px; }
    .external-link { display:inline-flex; gap:.5rem; align-items:center; color:var(--gold); font-weight:700; border-bottom:1px solid var(--gold); padding-bottom:.3rem; margin-top:1rem; }
    .external-link:hover { color:#f0c588; border-color:#f0c588; }
    .projects { padding:6rem 0; }
    .projects-head { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:2.5rem; }
    .projects-head h2 { max-width:18ch; }
    .projects-head p { color:var(--muted); max-width:29rem; margin:0; }
    .project-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem; }
    .project-card { margin:0; border-top:1px solid var(--line); padding-top:1rem; }
    .project-card img { display:block; width:100%; height:330px; object-fit:contain; background:#fff; }
    .project-card figcaption { padding:1rem 0 0; font:700 1rem/1.4 Manrope,sans-serif; }
    .project-card figcaption span { display:block; font:500 .82rem/1.5 'DM Sans',sans-serif; color:var(--muted); margin-top:.3rem; }
    .gallery { padding:6rem 0; background:var(--paper); }
    .gallery-head { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:end; margin-bottom:2.4rem; }
    .gallery-head p { margin:0; color:var(--muted); max-width:32rem; }
    .gallery-group { margin-top:3.7rem; }
    .gallery-group h3 { font-size:clamp(1.4rem,2vw,2rem); letter-spacing:-.035em; margin:0 0 1.4rem; }
    .gallery-group p { color:var(--muted); margin:-.6rem 0 1.5rem; }
    .gallery-grid { columns:3 280px; column-gap:1.2rem; }
    .gallery figure { display:inline-block; vertical-align:top; width:100%; margin:0 0 1.2rem; overflow:hidden; background:#fff; border:1px solid var(--line); break-inside:avoid; }
    .gallery img { width:100%; height:auto; object-fit:contain; display:block; }
    .gallery figcaption { padding:.9rem 1rem 1rem; font:600 .92rem/1.45 Manrope,sans-serif; color:var(--navy); }
    .beyond { background:var(--paper); padding:6rem 0; }
    .beyond-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:7vw; align-items:center; }
    .book-photo { width:100%; max-height:540px; object-fit:contain; display:block; }
    .beyond h2 { max-width:15ch; }
    .beyond p { color:var(--muted); font-size:1.05rem; }
    .beyond-block { padding:1.7rem 0; border-bottom:1px solid #cbd4db; }
    .beyond-block:first-of-type { border-top:1px solid #cbd4db; margin-top:2rem; }
    .beyond-block h3 { margin:0 0 .5rem; font-size:1.18rem; }
    .beyond-block p { margin:0; font-size:.96rem; }
    .beyond-block a { color:var(--navy); display:inline-block; margin-top:.7rem; font-weight:700; text-decoration:underline; text-underline-offset:4px; }
    .beyond-block a:hover { color:#8b6842; }
    .writings { padding:6rem 0; }
    .writings-head { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:end; margin-bottom:2.5rem; }
    .writings-head p { color:var(--muted); margin:0; max-width:34rem; }
    .writing-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 2rem; border-top:1px solid var(--line); }
    .writing-item { padding:1.5rem 0; border-bottom:1px solid var(--line); }
    .writing-item small { display:block; color:#8b6842; font:700 .78rem/1.5 Manrope,sans-serif; margin-bottom:.5rem; }
    .writing-item a { display:inline-block; color:var(--navy); font:700 1.08rem/1.35 Manrope,sans-serif; text-decoration:underline; text-underline-offset:4px; }
    .writing-item a:hover,.writing-more a:hover { color:#8b6842; }
    .writing-item p { color:var(--muted); font-size:.92rem; line-height:1.55; margin:.55rem 0 0; }
    .writing-more { margin:2rem 0 0; color:var(--muted); }
    .writing-more a { color:var(--navy); font-weight:700; text-decoration:underline; text-underline-offset:4px; }
    .encounters { padding:6rem 0; }
    .encounters-head { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:end; margin-bottom:2.5rem; }
    .encounters-head p { color:var(--muted); max-width:31rem; margin:0; }
    .encounters-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:1.5rem; }
    .encounter { margin:0; border-top:1px solid var(--line); padding-top:1rem; }
    .encounter img { display:block; width:100%; height:330px; object-fit:contain; background:#fff; }
    .encounter figcaption { padding-top:1rem; font:700 1.05rem/1.4 Manrope,sans-serif; }
    .encounter figcaption span { display:block; color:var(--muted); font:400 .9rem/1.5 'DM Sans',sans-serif; margin-top:.35rem; }
    .contact { background:var(--navy); color:var(--white); padding:5.5rem 0; }
    .contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:end; }
    .contact h2 { max-width:15ch; }
    .contact p { color:#c8d4df; margin:1.35rem 0 0; max-width:31rem; }
    .contact-details { border-top:1px solid rgba(255,255,255,.3); }
    .contact-row { display:grid; grid-template-columns:6.5rem 1fr; gap:1rem; padding:1.15rem 0; border-bottom:1px solid rgba(255,255,255,.3); align-items:baseline; }
    .contact-row span { color:#a8bac9; font-size:.82rem; text-transform:uppercase; letter-spacing:.1em; font-weight:700; }
    .contact-row a { font:600 clamp(1rem,1.7vw,1.25rem)/1.4 Manrope,sans-serif; overflow-wrap:anywhere; }
    .contact-row strong { font:600 clamp(1rem,1.7vw,1.25rem)/1.4 Manrope,sans-serif; overflow-wrap:anywhere; }
    .contact-row a:hover { color:var(--gold); }
    .site-footer { background:#081c30; color:#afbdc9; padding:2rem 0; font-size:.83rem; }
    .footer-inner { display:flex; justify-content:space-between; gap:2rem; align-items:center; }
    .site-footer p { margin:0; }
    .site-footer a { color:#e1e9ef; text-decoration:underline; text-underline-offset:3px; }
    @media (max-width:900px) {
      .header-inner { min-height:76px; }
      nav { gap:1rem; }
      nav a:not(.nav-contact) { display:none; }
      .hero-grid { grid-template-columns:1fr .8fr; min-height:560px; }
      .hero-copy { padding-right:2rem; }
      .service-grid { grid-template-columns:repeat(2,1fr); }
      .service:nth-child(3) { border-left:0; padding-left:0; border-top:1px solid var(--line); }
      .service:nth-child(4) { border-top:1px solid var(--line); }
      .service:nth-child(2) { padding-right:0; }
      .method-grid,.about-grid { gap:3rem; }
      .project-card img { height:270px; }
      .case-card { display:block; }
      .case-card .case-image,.case-art { height:230px; min-height:0; margin-top:1.5rem; }
    }
    @media (max-width:680px) {
      .container { width:min(calc(100% - 2.25rem),var(--max)); }
      .header-inner { gap:.5rem; }
      .brand { gap:.45rem; }
      .brand-role { font-size:.7rem; }
      .brand-name { font-size:.82rem; }
      .brand-mark { width:62px; height:38px; }
      nav .nav-contact { padding:.55rem .7rem; font-size:.8rem; }
      .hero-grid { display:flex; flex-direction:column; }
      .hero-copy { padding:4.25rem 0 3.5rem; }
      h1 { max-width:12ch; margin:1.5rem 0; }
      .hero-lede { font-size:1.04rem; }
      .hero-visual { min-height:290px; margin:0 -1.125rem; }
      .hero-visual img { object-position:center bottom; }
      .visual-caption { left:1.125rem; right:1.125rem; bottom:1.2rem; }
      .intro,.about { padding:4.5rem 0; }
      .method { padding:4.5rem 0; }
      .section-head,.method-grid,.about-grid,.contact-grid { display:block; }
      .section-head { margin-bottom:2rem; }
      .section-head p { margin:1.2rem 0 0; font-size:1rem; }
      .service { padding:1.45rem 1rem; }
      .service h3 { margin-top:1.6rem; }
      .method-intro { margin-bottom:2rem; }
      .about-copy { margin-top:2rem; font-size:1rem; }
      .case-studies,.projects,.beyond,.gallery,.writings { padding:4.5rem 0; }
      .beyond-grid { display:block; }
      .case-grid { grid-template-columns:1fr; }
      .career-facts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem .8rem; }
      .career-facts strong { font-size:1.2rem; }
      .career-item { grid-template-columns:5.5rem 1fr; }
      .projects-head { display:block; }
      .projects-head p { margin-top:1rem; }
      .project-grid { grid-template-columns:1fr; gap:2.5rem; }
      .project-card img { height:330px; }
      .gallery-head { display:block; }
      .gallery-head p { margin-top:1rem; }
      .gallery-grid { columns:2 220px; }
      .gallery-group { margin-top:3rem; }
      .book-photo { max-height:380px; margin-bottom:2.5rem; }
      .writings-head { display:block; }
      .writings-head p { margin-top:1rem; }
      .writing-list { grid-template-columns:1fr; }
      .encounters { padding:4.5rem 0; }
      .encounters-head { display:block; }
      .encounters-head p { margin-top:1rem; }
      .encounters-grid { grid-template-columns:1fr; gap:2.5rem; }
      .encounter img { height:270px; }
      .contact { padding:4.5rem 0; }
      .contact-details { margin-top:2.5rem; }
      .footer-inner { align-items:flex-start; flex-direction:column; gap:.8rem; }
    }
    @media (max-width:390px) {
      .brand-role { display:none; }
      .service-grid { grid-template-columns:1fr; }
      .service,.service:first-child,.service:nth-child(3),.service:nth-child(4) { border-left:0; border-top:1px solid var(--line); padding:1.45rem 0; }
      .service:first-child { border-top:0; }
      .service h3 { margin-top:1rem; }
      .contact-row { grid-template-columns:1fr; gap:.25rem; }
      .gallery-grid { columns:1; }
    }
    @media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .button { transition:none; } }
