/* Ali Al-Ali — a bold personal-brand stage in forest, ivory and gold. */
@layer base, components, utilities;
@layer base {
  :root { --ivory:#f5f3ec; --paper:#fbfaf6; --forest:#173d32; --deep:#0f1915; --sage:#b7c8ac; --gold:#d3b87d; --ink:#222c27; --muted:#666e65; --line:#d9dbd1; --serif:'Instrument Serif',Georgia,serif; --sans:'DM Sans',Arial,sans-serif; --display:'Barlow Condensed','Arial Narrow',Impact,sans-serif; --gutter:clamp(22px,5.5vw,88px); --header-height:90px; }
  *,*::before,*::after { box-sizing:border-box; }
  html { scroll-padding-top:110px; }
  body { margin:0; background:var(--ivory); color:var(--ink); font-family:var(--sans); font-size:15px; line-height:1.65; -webkit-font-smoothing:antialiased; }
  h1,h2,h3,p,figure { margin:0; }
  a { color:inherit; text-decoration:none; }
  button { color:inherit; font:inherit; cursor:pointer; }
  button,input { -webkit-tap-highlight-color:transparent; }
  img { display:block; max-width:100%; }
  svg { display:block; }
  ul { margin:0; padding:0; list-style:none; }
  [hidden] { display:none!important; }
  ::selection { background:var(--gold); color:var(--deep); }
  :focus-visible { outline:3px solid var(--gold); outline-offset:5px; }
  section[id],footer[id] { scroll-margin-top:110px; }
}
@layer components {
  h1,h2,h3 { font-weight:800; }
  h2 { font-family:var(--display); font-size:clamp(60px,6.7vw,104px); line-height:.96; letter-spacing:-.025em; text-transform:uppercase; }
  h2 em { display:inline-block; font-family:var(--serif); font-weight:400; font-size:.76em; line-height:1.06; letter-spacing:-.025em; text-transform:none; color:var(--forest); }
  .site-container { width:calc(100% - var(--gutter)*2); max-width:1360px; margin-inline:auto; }
  .icon-library { position:absolute; width:0; height:0; overflow:hidden; }
  .icon { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
  .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .skip-link { position:fixed; top:8px; left:16px; padding:10px 20px; z-index:100; background:var(--gold); color:var(--deep); transform:translateY(-160%); }
  .skip-link:focus { transform:none; }
  .site-header { position:fixed; top:0; left:0; width:100%; z-index:30; color:var(--paper); transition:background .3s,box-shadow .3s; }
  .site-header.is-scrolled { background:#0f1915f5; box-shadow:0 1px 0 #ffffff19; backdrop-filter:blur(12px); }
  .header-inner { --header-inset:max(clamp(88px,10vw,160px),calc((100vw - 1240px)/2)); width:calc(100% - var(--header-inset)*2); max-width:none; min-height:var(--header-height); display:flex; align-items:center; justify-content:space-between; gap:26px; }
  .wordmark { display:flex; align-items:center; gap:8px; line-height:1; font-size:29px; font-weight:800; font-style:italic; letter-spacing:-.045em; flex-shrink:0; }
  .brand-slashes { font-size:26px; color:var(--gold); letter-spacing:-.17em; margin-right:5px; }
  .wordmark-detail { display:block; font-size:7px; font-style:normal; letter-spacing:.21em; margin-top:8px; font-weight:600; }
  .desktop-nav { display:flex; gap:30px; font-size:12px; font-weight:700; }
  .desktop-nav a { position:relative; padding-block:14px; }
  .desktop-nav a::after { content:''; position:absolute; left:0; right:0; bottom:7px; height:2px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .3s; }
  .desktop-nav a:hover::after,.desktop-nav a[aria-current="location"]::after { transform:scaleX(1); }
  .button { display:inline-flex; align-items:center; justify-content:center; gap:27px; padding:18px 24px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.065em; border:1px solid transparent; line-height:1.4; min-height:54px; transition:background .3s,color .3s; }
  .button .icon { width:18px; height:18px; transition:transform .3s; }
  .button:hover .icon,.text-link:hover .icon,.contact-email:hover .icon { transform:translate(3px,-3px); }
  .button-dark { background:var(--deep); color:var(--paper); }
  .button-dark:hover { background:var(--forest); }
  .header-cta { padding:14px 22px; min-height:48px; gap:20px; font-size:10px; }
  .button-gold { background:var(--gold); color:var(--deep); }
  .button-gold:hover { background:#e3cd9d; }
  .text-link { display:inline-flex; align-items:center; gap:14px; font-size:12px; font-weight:700; padding-block:12px; }
  .text-link .icon { width:18px; height:18px; transition:transform .3s; }
  .nojs-nav { display:none; }
  .menu-toggle { display:none; width:44px; height:44px; background:none; border:0; padding:12px 5px; }
  .menu-toggle span { display:block; background:var(--paper); height:2px; margin-block:7px; width:28px; }
  .mobile-menu { width:100%; max-width:none; height:100dvh; max-height:none; margin:0; padding:26px; border:0; background:var(--deep); color:var(--ivory); }
  .mobile-menu::backdrop { background:#0f1915dd; }
  .mobile-menu-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:48px; }
  .mobile-brand { font-size:28px; font-weight:800; font-style:italic; }
  .icon-button { display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; padding:0; border:1px solid #b7c8ac4d; background:transparent; color:inherit; border-radius:50%; transition:background .2s; }
  .icon-button:hover { background:#b7c8ac24; }
  .mobile-menu nav { display:flex; flex-direction:column; gap:6px; margin-bottom:35px; }
  .mobile-menu nav a { font-family:var(--display); font-size:49px; font-weight:700; text-transform:uppercase; padding:5px 0; border-bottom:1px solid #b7c8ac38; }
  .mobile-menu nav small { font-family:var(--sans); font-size:10px; color:var(--gold); margin-right:20px; }
  .mobile-menu-note { color:var(--sage); font-size:12px; margin-top:28px; }
  .hero { background:var(--deep); color:var(--paper); position:relative; }
  .hero-stage { --copy-inset:max(clamp(88px,10vw,160px),calc((100vw - 1240px)/2)); position:relative; min-height:790px; height:min(900px,100svh); isolation:isolate; overflow:hidden; }
  .hero-accent { position:absolute; top:0; bottom:0; right:0; width:40%; background:var(--gold); clip-path:polygon(0 0,100% 0,100% 100%,0 84%); z-index:-2; }
  .hero-stripes { position:absolute; right:-130px; bottom:70px; width:680px; height:130px; transform:rotate(-29deg); background:repeating-linear-gradient(0deg,var(--deep) 0 24px,transparent 24px 42px); z-index:-1; }
  .hero-copy { position:relative; z-index:4; padding-block:178px 44px; margin-left:var(--copy-inset); width:calc(60% - var(--copy-inset) - 28px); max-width:760px; }
  .eyebrow { font-size:10px; font-weight:700; letter-spacing:.18em; line-height:1.7; }
  .hero-intro { color:var(--gold); margin-bottom:28px; font-size:9px; letter-spacing:.23em; }
  .hero h1 { margin:0 0 24px; font-weight:800; }
  .hero-mask { display:block; overflow:hidden; padding:.04em 0; margin:-.04em 0; }
  .hero-line { display:block; }
  .hero-kicker { font-family:var(--sans); font-size:18px; line-height:1.3; text-transform:uppercase; font-weight:700; letter-spacing:.25em; color:#e5e2d9; margin-bottom:4px; }
  .hero-bridge { font-family:var(--serif); font-weight:400; font-style:italic; font-size:clamp(42px,4.3vw,64px); line-height:1.16; letter-spacing:-.02em; }
  .hero-impact { font-family:var(--display); font-weight:800; font-size:clamp(110px,11.7vw,181px); line-height:.91; letter-spacing:-.025em; text-transform:uppercase; color:var(--gold); }
  .hero-ending { font-family:var(--serif); font-size:clamp(50px,4.3vw,67px); line-height:1; font-weight:400; padding-bottom:7px; }
  .hero-ending em { color:var(--paper); font-weight:400; }
  .hero-description { max-width:410px; font-size:13px; line-height:1.8; color:#c5c9bf; }
  .hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:30px; margin-top:30px; }
  .hero-actions a { display:inline-flex; align-items:center; min-height:44px; padding-block:9px; font-size:14px; font-weight:500; line-height:1.5; transition:color .25s; }
  .hero-actions a>span { padding-bottom:4px; border-bottom:1px solid #c2c5b860; transition:border-color .25s; }
  .hero-call-link { color:var(--gold); }
  .hero-actions .hero-call-link>span { border-color:var(--gold); }
  .hero-field-link { color:#e5e2d9; }
  .hero-actions a:hover { color:var(--paper); }
  .hero-actions a:hover>span { border-color:var(--paper); }
  .hero-footnote { display:flex; align-items:center; flex-wrap:wrap; margin-top:24px; font-size:12px; font-weight:400; color:#b8c0b3; letter-spacing:0; }
  .hero-footnote>span+span { border-left:1px solid #b8c0b340; margin-left:14px; padding-left:14px; }
  .hero-portrait { position:absolute; bottom:0; right:2%; height:calc(100% - 106px); width:auto; max-width:51%; object-fit:contain; object-position:bottom; z-index:2; }
  .hero-portrait-label { position:absolute; right:var(--gutter); bottom:75px; z-index:3; padding:15px 22px; color:var(--deep); background:var(--gold); transform:rotate(-5deg); box-shadow:8px 8px 0 #0f19154d; }
  .hero-portrait-label span { display:block; font-size:8px; font-weight:800; letter-spacing:.16em; }
  .hero-portrait-label strong { font-family:var(--serif); font-style:italic; font-size:38px; font-weight:400; line-height:1; }
  .scroll-cue { position:absolute; bottom:25px; left:var(--copy-inset); display:flex; align-items:center; gap:16px; font-size:7px; letter-spacing:.16em; color:#b8c0b3; z-index:4; }
  .scroll-cue .icon { transform:rotate(90deg); width:15px; height:15px; }
  .ribbon-window { position:relative; height:120px; margin-top:-20px; overflow:hidden; z-index:5; }
  .expertise-ribbon { position:absolute; top:23px; left:-5%; width:110%; height:68px; background:var(--gold); color:var(--deep); display:flex; align-items:center; transform:rotate(-3deg); transform-origin:center; }
  .expertise-track { display:flex; align-items:center; width:max-content; gap:48px; padding-inline:45px; white-space:nowrap; font-family:var(--display); font-weight:700; font-size:36px; line-height:1; }
  .expertise-track span:nth-child(even) { font-family:var(--sans); font-weight:400; font-size:31px; }
  .hero-practices { display:flex; align-items:center; gap:50px; padding:10px 0 65px; }
  .practice-intro { width:190px; flex-shrink:0; font-size:8px; line-height:1.9; color:#b4bcb0; }
  .practice-intro strong { color:var(--gold); font-weight:700; }
  .practice-network { position:relative; flex:1; min-width:0; }
  .practice-connections { position:absolute; top:0; left:0; width:100%; height:100%; fill:none; stroke:var(--gold); stroke-width:1; opacity:.35; }
  .practice-shapes { display:flex; align-items:center; justify-content:space-between; gap:14px; position:relative; min-height:120px; }
  .practice-shape { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; width:136px; height:105px; font-size:11px; font-weight:700; line-height:1.35; color:var(--ivory); background:var(--forest); border:1px solid #b7c8ac66; border-radius:43% 57% 54% 46% / 49% 39% 61% 51%; flex-shrink:1; }
  .practice-shape span { display:block; font-size:7px; color:var(--gold); margin-bottom:7px; letter-spacing:.12em; }
  .shape-execution { border-radius:48% 52% 38% 62% / 52% 47% 53% 48%; background:#304738; }
  .shape-performance { border-radius:58% 42% 46% 54% / 52% 58% 42% 48%; }
  .shape-transformation { border-radius:41% 59% 57% 43% / 43% 53% 47% 57%; }
  .shape-ai { background:var(--gold); color:var(--deep); border-color:var(--gold); }
  .shape-ai span { color:var(--deep); }
  .experience-strip { position:relative; background:var(--ivory); padding:47px 0; }
  .stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
  .stat { display:flex; flex-direction:column; justify-content:center; padding:24px 28px; min-height:172px; background:var(--paper); border:1px solid #dadbd0; box-shadow:4px 4px 0 #173d320b; }
  .stat:nth-child(even) { transform:rotate(2deg); }
  .stat:nth-child(odd) { transform:rotate(-2deg); }
  .stat strong { font-family:var(--display); font-size:68px; font-weight:800; line-height:.9; letter-spacing:-.02em; color:var(--forest); }
  .stat strong span { font-size:40px; }
  .stat p { margin-top:13px; font-size:11px; font-weight:700; }
  .stat small { display:block; font-size:8px; margin-top:4px; font-weight:400; color:var(--muted); }
  .section-pad { padding-block:110px; }
  .section-label { display:flex; align-items:center; gap:24px; margin-bottom:49px; font-size:9px; font-weight:800; letter-spacing:.15em; color:var(--forest); }
  .about-layout { display:grid; grid-template-columns:.95fr 1.05fr; gap:9%; align-items:start; }
  .about-portrait { position:relative; padding:0 42px 135px 0; }
  .portrait-frame { aspect-ratio:432/542; overflow:hidden; background:#e9e8df; transform:rotate(-3deg); }
  .portrait-frame img { width:100%; height:100%; object-fit:cover; }
  .portrait-label { position:absolute; top:55%; left:-12px; transform:rotate(-3deg); background:var(--gold); color:var(--deep); padding:20px 28px; z-index:3; }
  .portrait-label strong { display:block; font-family:var(--display); font-size:39px; font-weight:800; text-transform:uppercase; line-height:1; }
  .portrait-label span { display:block; font-size:6px; margin-top:8px; font-weight:800; letter-spacing:.15em; }
  .about-field-shot { position:absolute; right:-20px; bottom:40px; width:63%; padding:9px; background:var(--paper); transform:rotate(5deg); box-shadow:0 12px 25px #0f19151a; z-index:4; }
  .about-field-shot img { width:100%; aspect-ratio:4/3; object-fit:cover; }
  .about-field-shot span { display:block; padding:12px 5px 3px; font-size:7px; font-weight:800; letter-spacing:.13em; }
  .portrait-decoration { position:absolute; bottom:10px; left:-22px; font-family:var(--display); font-size:175px; font-weight:800; line-height:1; color:transparent; -webkit-text-stroke:1px #173d3255; }
  .about-copy h2 { margin-bottom:31px; font-size:clamp(57px,5.6vw,84px); }
  .about-copy p { margin-bottom:22px; font-size:13px; line-height:1.85; color:var(--muted); }
  .about-copy p.lead { font-size:17px; font-weight:600; color:var(--ink); line-height:1.65; }
  .about-copy p.about-list-intro { margin-bottom:13px; color:var(--forest); font-weight:700; }
  .delivery-list li { display:flex; gap:15px; align-items:flex-start; padding:13px 0; border-bottom:1px solid var(--line); font-size:12px; line-height:1.65; }
  .delivery-list .icon { width:17px; height:17px; color:var(--forest); margin-top:2px; }
  .about-bottom { margin-top:27px; display:flex; justify-content:space-between; align-items:center; gap:20px; color:var(--forest); font-size:9px; font-weight:700; }
  .language-note { font-size:7px; letter-spacing:.12em; border:1px solid #bbc5b6; padding:7px 10px; }
  .services-section { background:var(--deep); color:var(--paper); overflow:clip; }
  .section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:45px; margin-bottom:45px; }
  .section-heading h2 { max-width:840px; }
  .section-heading>p { max-width:295px; font-size:12px; line-height:1.85; color:var(--muted); padding-bottom:5px; }
  .services-section h2 em { color:var(--gold); }
  .services-section .section-heading>p { color:#b9c0b4; }
  .service-photo { position:relative; height:365px; margin:55px 0 65px; overflow:hidden; background:var(--forest); }
  .service-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#0f1915e8,#0f191535); }
  .service-photo img { position:absolute; right:0; width:68%; height:100%; object-fit:cover; object-position:50% 45%; }
  .service-photo p { position:absolute; left:45px; bottom:45px; z-index:2; font-family:var(--display); font-size:clamp(30px,3.5vw,52px); font-weight:600; line-height:1.03; }
  .service-photo p strong { color:var(--gold); font-weight:800; }
  .service-photo>span { position:absolute; right:45px; bottom:20px; color:var(--gold); font-size:130px; z-index:2; line-height:1; }
  .service-grid { display:flex; flex-direction:column; }
  .service-card { position:relative; display:grid; grid-template-columns:75px 1.15fr 1fr; column-gap:38px; row-gap:18px; border-top:1px solid #aeb8a74d; padding:38px 0; transition:background .3s; }
  .service-card:last-child { border-bottom:1px solid #aeb8a74d; }
  .service-card-top { grid-column:1; grid-row:1/4; display:flex; flex-direction:column; gap:24px; }
  .service-number { font-family:var(--display); font-size:54px; font-weight:700; line-height:1; color:var(--gold); }
  .service-symbol { width:45px; height:45px; fill:none; stroke:var(--sage); stroke-width:1.1; }
  .service-card h3 { grid-column:2; grid-row:1/3; font-family:var(--display); font-size:clamp(31px,3.2vw,48px); line-height:1.04; text-transform:uppercase; letter-spacing:-.015em; }
  .service-card>p { grid-column:3; font-size:12px; color:#b9c0b4; line-height:1.8; }
  .service-card ul { grid-column:3; display:flex; flex-wrap:wrap; gap:6px; }
  .service-card li { padding:5px 8px; border:1px solid #aeb8a730; font-size:8px; color:#d1d7ca; line-height:1.5; }
  .service-link { grid-column:2/4; display:flex; align-items:center; justify-content:space-between; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; color:var(--gold); padding-top:6px; }
  .service-link .icon { width:24px; height:24px; transition:transform .3s; }
  .service-link:hover .icon { transform:translate(3px,-3px); }
  .organizations { margin-top:90px; background:var(--paper); color:var(--ink); padding:35px 45px; transform:rotate(-1deg); }
  .credibility-logos { padding:0 0 20px; background:var(--ivory); }
  .credibility-logos .organizations { margin-top:0; }
  .organizations-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:18px; border-bottom:1px solid var(--line); }
  .organizations-heading p { font-size:9px; font-weight:800; letter-spacing:.12em; }
  .organizations-heading span { font-size:10px; color:var(--muted); }
  .organization-logos { display:flex; align-items:center; justify-content:space-around; flex-wrap:wrap; gap:35px; padding-top:28px; }
  .organization-logos img { width:150px; height:105px; object-fit:contain; mix-blend-mode:multiply; }
  .organization-logos img:nth-child(2) { width:140px; }
  .organization-logos img:last-child { width:170px; }
  .field-categories { display:flex; gap:9px; flex-wrap:wrap; margin:35px 0; }
  .field-categories span { border:1px solid #c1c8ba; padding:7px 12px; font-size:8px; font-weight:600; }
  .gallery-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid var(--line); padding:23px 0 37px; }
  .gallery-filters { display:flex; gap:8px; flex-wrap:wrap; }
  .gallery-filters button { padding:9px 14px; min-height:44px; font-size:10px; font-weight:700; background:transparent; border:1px solid transparent; }
  .gallery-filters button[aria-pressed="true"] { background:var(--forest); color:var(--paper); }
  .gallery-filters button:hover { border-color:var(--forest); }
  .gallery-filters button span { font-size:7px; margin-left:7px; opacity:.7; }
  .gallery-count { font-size:9px; color:var(--muted); white-space:nowrap; }
  .gallery-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:40px 30px; align-items:start; }
  .gallery-item { grid-column:span 4; }
  .gallery-item:nth-child(6n+1) { grid-column:span 5; }
  .gallery-item:nth-child(6n+2) { grid-column:span 3; margin-top:70px; }
  .gallery-item:nth-child(6n+3) { grid-column:span 4; margin-top:30px; }
  .gallery-item:nth-child(6n+4) { margin-top:25px; }
  .gallery-item:nth-child(6n+5) { grid-column:span 5; }
  .gallery-item:nth-child(6n+6) { grid-column:span 3; margin-top:65px; }
  .gallery-photo { position:relative; display:block; overflow:hidden; background:#d2d5c9; aspect-ratio:4/3; }
  .gallery-photo img { width:100%; height:100%; object-fit:cover; transition:transform .6s; }
  .gallery-photo:hover img { transform:scale(1.055); }
  .photo-view { position:absolute; inset:0; display:flex; align-items:flex-end; justify-content:space-between; padding:20px; font-size:9px; font-weight:800; text-transform:uppercase; color:var(--paper); background:linear-gradient(transparent 50%,#0f1915a8); opacity:0; transition:opacity .3s; }
  .gallery-photo:hover .photo-view,.gallery-photo:focus-visible .photo-view { opacity:1; }
  .gallery-item figcaption { display:flex; flex-direction:column; gap:4px; margin-top:13px; }
  .gallery-item figcaption>span { font-size:12px; font-weight:700; }
  .gallery-item figcaption small { font-size:7px; letter-spacing:.12em; color:var(--muted); }
  .booking-section { position:relative; background:var(--gold); color:var(--deep); overflow:hidden; padding:100px 0; }
  .booking-layout { display:grid; grid-template-columns:1.05fr .95fr; gap:9%; align-items:center; }
  .booking-copy { position:relative; }
  .booking-copy .section-label { color:var(--deep); margin-bottom:35px; }
  .booking-copy h2 { font-size:clamp(80px,8.8vw,133px); position:relative; z-index:3; }
  .booking-copy h2 em { color:var(--forest); }
  .booking-copy>p { font-size:12px; line-height:1.85; max-width:280px; margin-top:25px; position:relative; z-index:3; }
  .booking-signature { display:block; font-family:var(--serif); font-size:37px; font-style:italic; margin-top:23px; position:relative; z-index:3; }
  .booking-portrait { position:absolute; width:320px; right:-65px; bottom:-50px; z-index:1; }
  .booking-card { background:var(--paper); padding:45px; border:1px solid #0f191520; box-shadow:10px 10px 0 #0f191515; transform:rotate(2deg); position:relative; z-index:4; }
  .booking-card .eyebrow { color:var(--forest); font-size:8px; }
  .booking-card h3 { font-family:var(--display); font-size:48px; font-weight:700; text-transform:uppercase; line-height:1; margin-top:25px; letter-spacing:-.02em; }
  .call-details { display:flex; align-items:center; flex-wrap:wrap; gap:15px; margin:27px 0; padding:17px 0; border-block:1px solid var(--line); }
  .call-details>span { display:flex; align-items:center; gap:8px; font-size:9px; font-weight:600; }
  .call-details .icon { width:17px; height:17px; }
  .status-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--forest); box-shadow:0 0 0 4px #173d3210; flex-shrink:0; }
  .booking-card li { display:flex; align-items:center; gap:12px; padding:8px 0; font-size:11px; }
  .booking-card li .icon { width:16px; height:16px; color:var(--forest); }
  .booking-action { width:100%; justify-content:space-between; margin-top:25px; }
  .booking-note { margin-top:15px; font-size:9px; color:var(--muted); line-height:1.7; }
  .booking-email { display:inline-block; margin-top:14px; font-size:11px; border-bottom:1px solid var(--line); }
  .paid-consultation { display:flex; margin-top:16px; }
  #calendar-embed { padding-bottom:60px; }
  #calendar-embed iframe { width:100%; min-height:750px; border:0; background:white; }
  .site-footer { background:var(--deep); color:var(--paper); padding:70px 0 25px; overflow:hidden; }
  .footer-top { display:flex; align-items:center; justify-content:space-between; gap:35px; padding-bottom:45px; border-bottom:1px solid #aeb8a740; }
  .footer-top .eyebrow { color:var(--gold); font-size:8px; margin-bottom:15px; }
  .footer-top h2 { font-size:clamp(55px,5.2vw,80px); }
  .footer-top h2 em { color:var(--gold); }
  .contact-email { display:flex; align-items:center; gap:20px; font-size:16px; font-weight:500; border-bottom:1px solid #aeb8a780; padding:10px 0; }
  .contact-email .icon { transition:transform .3s; }
  .footer-middle { display:flex; align-items:center; justify-content:space-between; gap:30px; padding-block:32px; }
  .footer-brand { font-size:24px; font-weight:800; font-style:italic; line-height:1.1; }
  .footer-brand>span { display:block; font-size:6px; font-style:normal; letter-spacing:.16em; margin-top:8px; color:#b4bcb0; }
  .footer-middle nav { display:flex; flex-wrap:wrap; gap:22px; font-size:10px; }
  .social-links { display:flex; gap:16px; font-size:10px; }
  .social-links a { display:flex; align-items:center; gap:8px; }
  .social-links .icon { width:14px; height:14px; color:var(--gold); }
  .footer-name { display:flex; align-items:center; justify-content:space-between; font-family:var(--display); font-weight:800; font-size:clamp(110px,20.1vw,310px); letter-spacing:-.035em; line-height:.9; color:var(--gold); padding:27px 0 32px; white-space:nowrap; }
  .footer-name span { font-family:var(--sans); font-weight:400; font-size:.72em; }
  .footer-bottom { display:flex; justify-content:space-between; gap:20px; border-top:1px solid #aeb8a733; padding-top:24px; color:#b4bcb0; font-size:8px; }
  .footer-bottom a { display:flex; align-items:center; gap:8px; }
  .footer-bottom .icon { width:13px; height:13px; transform:rotate(-90deg); }
  .lightbox { margin:auto; border:0; background:var(--deep); color:var(--paper); padding:55px 50px 25px; max-width:min(95vw,1080px); width:100%; max-height:95dvh; }
  .lightbox::backdrop { background:#0f1915ec; }
  .lightbox-close { position:absolute; top:10px; right:12px; }
  .lightbox-content>img { width:100%; max-height:68dvh; height:auto; object-fit:contain; }
  .lightbox-bottom { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-top:20px; text-align:center; }
  .lightbox-bottom p { font-size:12px; }
  .lightbox-bottom span { font-size:9px; color:var(--sage); }
  .lightbox-prev .icon { transform:rotate(180deg); }
  .lenis.lenis-smooth { scroll-behavior:auto!important; }
  .lenis.lenis-stopped { overflow:hidden; }
  .lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior:contain; }

  @media(min-width:1700px) { .hero-copy { padding-top:195px; } }
  @media(min-width:1151px) {
    .desktop-nav { margin-left:clamp(24px,4vw,64px); margin-right:auto; }
  }
  @media(max-width:1150px) {
    .header-inner { --header-inset:8vw; }
    .hero-stage { --copy-inset:8vw; }
    .desktop-nav { gap:19px; font-size:11px; }
    .desktop-nav { background:var(--deep); padding-inline:14px; }
    .wordmark { font-size:25px; }
    .hero-copy { padding-top:177px; }
    .hero-impact { font-size:11.7vw; }
    .hero-description { max-width:370px; }
    .hero-actions { gap:24px; }
    .hero-portrait { right:-3%; max-width:55%; }
    .hero-practices { gap:25px; }
    .practice-intro { width:155px; }
    .practice-shape { height:90px; width:120px; font-size:9px; }
    .about-layout { gap:7%; }
    .service-card { column-gap:25px; grid-template-columns:60px 1.1fr 1fr; }
    .booking-card { padding:33px; }
    .booking-card h3 { font-size:42px; }
  }
  @media(max-width:850px) {
    :root { --header-height:76px; --gutter:30px; }
    .header-inner { --header-inset:var(--gutter); }
    .desktop-nav,.header-cta { display:none; }
    .js .menu-toggle { display:block; }
    .nojs-nav { display:flex; justify-content:center; gap:18px; padding:5px 15px 14px; font-size:10px; background:var(--deep); }
    .js .nojs-nav { display:none; }
    .site-header { background:#0f1915f5; }
    .hero-stage { height:auto; min-height:670px; }
    .hero-copy { padding-block:125px 0; width:calc(100% - 60px); margin-inline:var(--gutter); }
    .hero-intro { margin-bottom:22px; }
    .hero h1 { width:57%; }
    .hero-impact { font-size:10.5vw; }
    .hero-bridge { font-size:48px; }
    .hero-ending { font-size:55px; }
    .hero h1 { margin-bottom:20px; }
    .hero-description { max-width:45%; }
    .hero-accent { width:40%; top:95px; bottom:auto; height:510px; clip-path:polygon(0 0,100% 0,100% 100%,0 88%); }
    .hero-portrait { height:auto; width:48%; max-width:none; right:-2%; top:135px; bottom:auto; }
    .hero-portrait-label { bottom:auto; top:495px; right:4%; }
    .hero-stripes { bottom:70px; width:520px; right:-230px; }
    .hero-footnote { margin-top:22px; }
    .scroll-cue { bottom:40px; left:var(--gutter); }
    .ribbon-window { height:102px; }
    .expertise-ribbon { height:60px; }
    .expertise-track { font-size:31px; gap:32px; }
    .hero-practices { flex-direction:column; align-items:flex-start; gap:20px; padding-bottom:50px; }
    .practice-intro { width:auto; }
    .practice-intro br { display:none; }
    .practice-network { width:100%; }
    .practice-shapes { gap:9px; }
    .practice-shape { font-size:9px; height:87px; }
    .stats-grid { gap:14px; }
    .stats-grid { grid-template-columns:repeat(2,1fr); }
    .stat { padding:20px; min-height:160px; }
    .stat strong { font-size:55px; }
    .section-pad { padding-block:80px; }
    .section-label { margin-bottom:36px; }
    .about-layout { grid-template-columns:1fr; gap:55px; }
    .about-portrait { width:80%; max-width:470px; padding-bottom:120px; margin-inline:auto; }
    .about-copy h2 { font-size:74px; }
    .about-copy p { font-size:14px; }
    .section-heading { flex-direction:column; align-items:flex-start; gap:25px; }
    .section-heading>p { max-width:420px; font-size:13px; }
    .service-photo { height:300px; margin:35px 0 45px; }
    .service-photo p { left:30px; bottom:30px; }
    .service-photo>span { right:25px; font-size:90px; }
    .service-card { grid-template-columns:58px 1fr; gap:17px 25px; }
    .service-card h3 { grid-column:2; grid-row:auto; font-size:42px; }
    .service-card>p,.service-card ul { grid-column:2; }
    .service-link { grid-column:2; }
    .service-card-top { grid-row:1/5; }
    .organizations { padding:28px; margin-top:60px; }
    .organizations-heading { flex-direction:column; align-items:flex-start; gap:8px; }
    .organization-logos { gap:20px; }
    .organization-logos img { width:120px; height:90px; }
    .organization-logos img:nth-child(2) { width:110px; }
    .organization-logos img:last-child { width:130px; }
    .gallery-grid { grid-template-columns:repeat(2,1fr); gap:30px 22px; }
    .gallery-item:nth-child(n) { grid-column:span 1; margin-top:0; }
    .gallery-item:nth-child(even) { margin-top:45px; }
    .booking-section { padding-top:80px; }
    .booking-layout { grid-template-columns:1fr; gap:40px; }
    .booking-copy { padding-bottom:0; }
    .booking-copy h2 { font-size:108px; }
    .booking-copy>p { max-width:310px; }
    .booking-portrait { width:270px; right:0; bottom:-45px; }
    .booking-card { max-width:540px; width:100%; margin:0 auto; padding:45px; transform:rotate(1deg); }
    .booking-copy h2,.booking-copy>p,.booking-signature { max-width:100%; }
    .footer-top { flex-direction:column; align-items:flex-start; }
    .footer-middle { flex-wrap:wrap; }
    .footer-middle nav { gap:18px; }
    .footer-bottom { flex-wrap:wrap; }
    .footer-name { font-size:20vw; }
  }
  @media(max-width:560px) {
    :root { --gutter:23px; --header-height:72px; }
    h2 { font-size:64px; }
    .wordmark { font-size:25px; }
    .header-inner { gap:10px; }
    .hero-stage { min-height:610px; }
    .hero-copy { padding-top:115px; width:calc(100% - 46px); margin-inline:23px; }
    .hero-intro { font-size:6px; letter-spacing:.1em; margin-bottom:25px; }
    .hero-kicker { font-size:10px; letter-spacing:.14em; }
    .hero-bridge { font-size:32px; }
    .hero-impact { font-size:12vw; }
    .hero-ending { font-size:42px; }
    .hero h1 { width:65%; margin-bottom:0; }
    .hero-description { font-size:12px; max-width:100%; margin-top:106px; }
    .hero-actions { align-items:center; gap:20px; margin-top:26px; }
    .hero-actions a { font-size:13px; }
    .hero-footnote { font-size:11px; margin-top:22px; }
    .hero-accent { top:117px; width:43%; height:283px; }
    .hero-portrait { height:auto; width:58%; top:136px; right:-22px; max-width:210px; }
    .hero-portrait-label { bottom:auto; top:346px; right:14px; padding:10px 12px; transform:rotate(-3deg); }
    .hero-portrait-label strong { font-size:22px; }
    .hero-portrait-label span { font-size:6px; }
    .hero-stripes { bottom:195px; width:400px; height:74px; right:-235px; }
    .scroll-cue { display:none; }
    .expertise-track { font-size:27px; gap:25px; }
    .expertise-ribbon { height:55px; }
    .ribbon-window { height:90px; }
    .hero-practices { padding:10px 0 45px; gap:18px; }
    .practice-shapes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); justify-items:center; gap:15px 25px; }
    .practice-shape { width:min(140px,100%); height:93px; font-size:11px; }
    .practice-shape:last-child { grid-column:1/3; }
    .practice-connections { opacity:.18; }
    .practice-intro { font-size:7px; }
    .experience-strip { padding:35px 0; }
    .stat { padding:20px 17px; min-height:155px; }
    .stat strong { font-size:54px; }
    .stat p { font-size:9px; }
    .stat small { font-size:7px; }
    .section-pad { padding-block:65px; }
    .section-label { font-size:8px; gap:15px; margin-bottom:35px; }
    .about-portrait { width:92%; padding-right:26px; padding-bottom:100px; }
    .portrait-label { padding:16px 20px; left:-4px; }
    .portrait-label strong { font-size:33px; }
    .portrait-label span { font-size:5px; }
    .about-field-shot { right:-5px; bottom:10px; width:65%; }
    .portrait-decoration { font-size:130px; bottom:-6px; left:-8px; }
    .about-layout { gap:45px; }
    .about-copy h2 { font-size:62px; }
    .about-copy p.lead { font-size:16px; }
    .about-copy p { font-size:12px; }
    .delivery-list li { font-size:11px; }
    .about-bottom { gap:10px; font-size:8px; }
    .language-note { font-size:6px; padding:6px 8px; }
    .section-heading { gap:23px; margin-bottom:28px; }
    .section-heading>p { font-size:12px; }
    .service-photo { height:255px; }
    .service-photo img { width:100%; }
    .service-photo p { left:23px; bottom:25px; font-size:28px; max-width:255px; }
    .service-photo>span { font-size:80px; top:20px; bottom:auto; right:20px; }
    .service-card { grid-template-columns:40px 1fr; gap:15px 15px; padding-block:30px; }
    .service-number { font-size:39px; }
    .service-symbol { width:32px; height:32px; }
    .service-card h3 { font-size:35px; }
    .service-card>p { font-size:11px; }
    .service-card li { font-size:7px; }
    .service-link { font-size:8px; gap:15px; }
    .organizations { padding:23px; margin-top:50px; }
    .organizations-heading span { font-size:9px; }
    .organization-logos { gap:10px; flex-wrap:nowrap; }
    .organization-logos img:nth-child(n) { width:30%; height:80px; }
    .field-categories { gap:7px; margin-block:25px; }
    .field-categories span { font-size:7px; padding:6px 8px; }
    .gallery-toolbar { padding:14px 0 25px; flex-direction:column; align-items:flex-start; gap:10px; }
    .gallery-filters { gap:4px; }
    .gallery-filters button { font-size:9px; padding-inline:9px; }
    .gallery-grid { gap:28px 14px; }
    .gallery-item:nth-child(n) { grid-column:1/3; margin-top:0; }
    .gallery-item:nth-child(2n) { width:88%; justify-self:end; }
    .gallery-item:nth-child(2n+1) { width:94%; }
    .photo-view { opacity:1; padding:15px; font-size:8px; }
    .booking-section { padding-block:65px; }
    .booking-copy h2 { font-size:90px; max-width:100%; }
    .booking-copy>p { max-width:310px; font-size:11px; margin-top:22px; }
    .booking-signature { font-size:30px; max-width:100%; }
    .booking-portrait { width:210px; bottom:-15px; right:-36px; }
    .booking-card { padding:27px; margin-bottom:0; }
    .booking-card h3 { font-size:38px; }
    .booking-card li { font-size:10px; }
    .booking-action { font-size:9px; padding-inline:17px; }
    .call-details { gap:13px; }
    .call-details>span { font-size:8px; }
    .site-footer { padding-top:55px; }
    .footer-top h2 { font-size:56px; }
    .contact-email { font-size:14px; gap:12px; }
    .footer-middle { flex-direction:column; align-items:flex-start; gap:25px; }
    .footer-middle nav { font-size:9px; gap:16px; }
    .footer-name { font-size:21vw; padding-block:12px 32px; }
    .footer-name span { display:none; }
    .footer-bottom { font-size:7px; }
    .footer-bottom>span:nth-child(2) { display:none; }
    .lightbox { max-width:96vw; padding:60px 15px 20px; }
    .lightbox-bottom { gap:10px; }
    .lightbox-bottom p { font-size:10px; }
    .lightbox-bottom .icon-button { width:40px; height:40px; flex-shrink:0; }
  }
  @media(max-width:360px) {
    .hero-actions { gap:14px; }
    .hero-actions a { font-size:12px; }
  }
  @media(prefers-reduced-motion:reduce) {
    *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
    .gallery-photo:hover img { transform:none; }
  }
}
