@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/playfair-display.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:400 700;font-display:swap;src:url(fonts/playfair-display-italic.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:400 600;font-display:swap;src:url(fonts/inter.woff2) format("woff2")}

:root{
  --bg:#fcfcfc;
  --bg-tint:#f3f3f4;
  --surface:#ffffff;
  --ink:#1f1f22;
  --muted:#5d5d62;
  --line:#e2e2e5;
  --plum:#2e2e32;
  --plum-dark:#151517;
  --plum-soft:#ececee;
  --accent:#77777d;
  --plum-deep:#232326;
  --on-plum:#f5f5f6;
  --on-plum-muted:#c9c9ce;
  --error:#a3263f;
  --success:#1f6b4a;
  --focus:#3a3a3f;
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --gutter:clamp(1.25rem,4.5vw,4.5rem);
  --measure:38rem;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5rem;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body.menu-open{overflow:hidden}
img,picture{display:block;max-width:100%;height:auto}
h1,h2,h3,p,dl,dd,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:2px}
.arrow{display:inline-block;margin-left:.3em;transition:transform .2s ease}
a:hover .arrow{transform:translate(.15em,-.05em)}
.container{max-width:90rem;margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}

.skip-link{position:absolute;top:-100px;left:1rem;z-index:50;padding:.75rem 1rem;background:var(--plum);color:#fff;border-radius:4px;font-weight:600}
.skip-link:focus{top:1rem}

/* Type */
.eyebrow{font-family:var(--sans);font-size:.8125rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:1.25rem}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:0;text-wrap:balance}
h1{font-size:clamp(2.5rem,4.4vw,4rem);line-height:1.12;letter-spacing:-.012em;margin-bottom:1.5rem}
h2{font-size:clamp(1.85rem,3vw,2.6rem);line-height:1.18;margin-bottom:1.25rem}
h3{font-size:1.5rem;line-height:1.25}
h1 em,h2 em{font-style:italic;color:var(--accent)}
.lede{font-size:1.25rem;line-height:1.55;color:var(--muted);max-width:var(--measure)}
.large-copy{font-family:var(--serif);font-size:1.5rem;line-height:1.4;color:var(--ink)}
.prose p+p{margin-top:1rem}
.prose p{max-width:var(--measure)}
.prose .large-copy{max-width:36rem;margin-bottom:1.5rem}

/* Buttons and links */
.button{border:0;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:.75rem 1.4rem;background:var(--plum);color:#fff;border-radius:6px;font-weight:500;font-size:1rem;line-height:1.3;transition:background-color .2s ease}
.button:hover{background:var(--plum-dark)}
.button-secondary{background:transparent;color:var(--plum);border:1.5px solid var(--plum)}
.button-secondary:hover{background:var(--plum-soft)}
.text-link{display:inline-flex;align-items:center;min-height:2.75rem;padding:.25rem 0;color:var(--ink);font-weight:500;font-size:1rem;border-bottom:1.5px solid currentColor;line-height:1.3}
.text-link:hover{color:var(--plum)}

/* Header */
.site-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;max-width:90rem;margin:0 auto;padding:1.1rem var(--gutter);background:var(--bg);border-bottom:1px solid transparent}
.site-header.is-stuck{border-bottom-color:var(--line)}
.wordmark{font-family:var(--serif);font-weight:700;font-size:1.6rem;letter-spacing:-.01em;line-height:1;white-space:nowrap;padding:.25rem 0}
.wordmark-dot{color:var(--accent)}
.site-nav ul{display:flex;align-items:center;gap:clamp(1.25rem,3vw,2.5rem)}
.site-nav a{font-size:1rem;font-weight:500;padding:.6rem 0;display:inline-flex;align-items:center;min-height:2.75rem;border-bottom:1.5px solid transparent;transition:border-color .2s ease}
.site-nav a:hover{border-color:var(--plum)}
.site-nav .nav-cta{border:1.5px solid var(--line);border-radius:6px;padding:.6rem 1.1rem}
.site-nav .nav-cta:hover{border-color:var(--plum);background:var(--plum-soft)}
.menu-toggle{display:none;align-items:center;gap:.6rem;min-height:2.75rem;padding:.5rem .9rem;border:1.5px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;font-size:1rem;font-weight:500;cursor:pointer}
.menu-toggle[hidden]{display:none}
.menu-toggle-icon{position:relative;width:1.1rem;height:2px;background:currentColor;border-radius:2px}
.menu-toggle-icon::before,.menu-toggle-icon::after{content:"";position:absolute;left:0;width:100%;height:2px;background:currentColor;border-radius:2px;transition:transform .2s ease}
.menu-toggle-icon::before{top:-6px}
.menu-toggle-icon::after{top:6px}
.menu-toggle[aria-expanded="true"] .menu-toggle-icon{background:transparent}
.menu-toggle[aria-expanded="true"] .menu-toggle-icon::before{transform:translateY(6px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-toggle-icon::after{transform:translateY(-6px) rotate(-45deg)}

/* Hero */
.hero{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:clamp(2rem,6vw,5rem);align-items:start;max-width:90rem;margin:0 auto;padding:clamp(2rem,5vw,4rem) var(--gutter) clamp(2.5rem,5vw,4rem)}
.hero-copy{padding-top:clamp(.5rem,2.5vw,2.5rem)}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.75rem;margin-top:1.75rem}
.hero-note{margin-top:1.5rem;font-size:.9375rem;color:var(--muted)}
.hero-portrait{display:flex;flex-direction:column;gap:.9rem}
.hero-portrait picture{width:100%;aspect-ratio:1/1;border-radius:8px;overflow:hidden;background:var(--bg-tint)}
.hero-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.hero-portrait figcaption{display:flex;flex-direction:column;gap:.15rem;font-size:.9375rem;color:var(--muted)}
.hero-portrait figcaption strong{font-family:var(--serif);font-weight:400;font-size:1.125rem;color:var(--ink)}

/* Experience strip */
.experience{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2.5rem;max-width:90rem;margin:0 auto;padding:1.5rem var(--gutter);border-top:1px solid var(--line)}
.experience .eyebrow{margin:0}
.experience-list{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem 3.25rem}
.experience-list li{display:flex;align-items:center}
.experience-list img{width:auto;filter:grayscale(1);opacity:.72}
.logo-pwc{height:2rem}
.logo-ncl{height:1.55rem}
.logo-bh{height:1.8rem}

/* Sections */
section.work,section.about,section.approach,section.connect{padding:clamp(3.5rem,7vw,6rem) 0}
.work{background:var(--bg-tint)}
.section-heading{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:2rem 4rem;align-items:end;margin-bottom:2.5rem}
.section-heading h2{margin-bottom:0}
.section-intro{font-size:1.0625rem;color:var(--muted);max-width:26rem;padding-left:2rem;border-left:1px solid var(--line)}
.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:2rem 5rem;align-items:start}

/* Work rows */
.work-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2rem,4vw,4rem);align-items:start;padding:clamp(2.5rem,4.5vw,3.5rem) 0;border-top:1px solid var(--line)}
.work-row:first-of-type{border-top:0;padding-top:0}
.work-row.is-reversed{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}
.work-row.is-reversed .work-visual{order:2}
.work-visual{margin:0}
.work-visual a{display:block;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:.6rem;box-shadow:0 18px 50px -30px rgba(0,0,0,.22);transition:transform .25s ease,box-shadow .25s ease}
.work-visual a:hover{transform:translateY(-2px);box-shadow:0 24px 60px -30px rgba(0,0,0,.3)}
.work-visual picture{display:block;border-radius:9px;overflow:hidden;background:var(--bg-tint)}
.work-visual img{width:100%;height:100%;object-fit:cover;object-position:top center}
.visual-wide{aspect-ratio:16/10}
.visual-natural{height:auto}
.visual-stack{display:grid;gap:.6rem}
.work-visual .stack-summary{background:#e0efeb;padding:1rem 1.25rem}
.work-visual .stack-scores{background:#f5f9f7;padding:1rem 1.25rem .25rem}
.stack-scores img{max-width:34rem;margin:0 auto}
.work-visual figcaption{margin-top:.75rem;font-size:.9375rem;color:var(--muted)}
.work-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;font-size:.9375rem;color:var(--muted);margin-bottom:.75rem}
.status-chip{display:inline-block;font-size:.8125rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--plum);background:var(--plum-soft);padding:.25rem .6rem;border-radius:999px}
.work-text h3{font-size:2rem;margin-bottom:.75rem}
.work-description{font-size:1.0625rem;margin-bottom:1.25rem;max-width:34rem}
.work-facts{display:grid;gap:1rem;max-width:34rem}
.work-facts dt{font-size:.8125rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.3rem}
.work-facts dd{font-size:1rem;line-height:1.6}
.work-links{display:flex;flex-wrap:nowrap;align-items:center;gap:.75rem 1.5rem;margin:1.5rem 0 1.25rem;white-space:nowrap}
.project-more{border-top:1px solid var(--line);padding-top:.5rem;max-width:34rem}
.project-more summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:.6rem;min-height:2.75rem;font-weight:500;color:var(--plum);border-radius:4px}
.project-more summary::-webkit-details-marker{display:none}
.project-more summary::before{content:"";width:.5rem;height:.5rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .2s ease;flex-shrink:0}
.project-more[open] summary::before{transform:rotate(45deg)}
.project-more[open] summary{margin-bottom:.75rem}

/* Approach */
.approach .section-heading{grid-template-columns:1fr}
.principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;counter-reset:principle}
.principles li{border-top:1px solid var(--line);padding-top:1.25rem}
.principle-number{display:block;font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--accent);margin-bottom:.75rem}
.principles h3{font-size:1.375rem;margin-bottom:.5rem}
.principles p{color:var(--muted);max-width:22rem}

/* About and connect */
.about{border-top:1px solid var(--line)}
.connect{background:var(--plum-deep);color:var(--on-plum)}
.connect .eyebrow{color:var(--on-plum-muted)}
.connect h2{color:var(--on-plum);font-size:clamp(2.1rem,3.6vw,3.2rem)}
.connect h2 em{color:#b9b9c0}
.connect .lede{color:var(--on-plum-muted);max-width:28rem}
.connect-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:3rem clamp(2.5rem,6vw,6rem);align-items:start}
.social-link{display:inline-flex;align-items:center;justify-content:center;width:3.25rem;height:3.25rem;margin-top:1.75rem;border:1.5px solid rgba(255,255,255,.35);border-radius:50%;color:var(--on-plum);transition:background-color .2s ease,color .2s ease,border-color .2s ease}
.social-link:hover{background:var(--on-plum);color:var(--plum-deep);border-color:var(--on-plum)}
.connect :focus-visible{outline-color:#d9d9de}
.connect-consulting{margin-top:1.5rem;color:var(--on-plum-muted);font-size:.9375rem;max-width:28rem}
.connect .inline-link{color:var(--on-plum);text-decoration-color:rgba(255,255,255,.45)}
.contact-form{padding-top:.35rem}
.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.25rem}
.field{margin-bottom:1.35rem}
.field label{display:block;font-size:.8125rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--on-plum-muted);margin-bottom:.55rem}
.field input,.field textarea{display:block;width:100%;font:inherit;font-size:1.0625rem;line-height:1.5;color:var(--on-plum);background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.22);border-radius:8px;padding:.75rem .9rem;min-height:3.1rem;transition:border-color .2s ease,background-color .2s ease;caret-color:#b9b9c0}
.field textarea{resize:vertical;min-height:8.5rem}
.field ::placeholder{color:#a5a5ab;opacity:1}
.field input:hover,.field textarea:hover{border-color:rgba(255,255,255,.45)}
.field input:focus-visible,.field textarea:focus-visible{outline:none;border-color:#d9d9de;background:rgba(255,255,255,.1);box-shadow:0 0 0 3px rgba(255,255,255,.18)}
.nowrap{white-space:nowrap}
.field input:-webkit-autofill,.field textarea:-webkit-autofill{-webkit-text-fill-color:var(--on-plum);-webkit-box-shadow:0 0 0 100px var(--plum-deep) inset;caret-color:#b9b9c0}
.field [aria-invalid="true"]{border-color:#ffb3c1}
.field-error{margin-top:.45rem;font-size:.9375rem;color:#ffc2cd}
.form-footer{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;margin-top:.5rem}
.button-light{background:var(--on-plum);color:var(--plum-deep);padding:.85rem 1.75rem;font-weight:600}
.button-light:hover{background:#fff}
.form-status{font-size:1rem;min-height:1.5rem;flex:1 1 14rem;color:var(--on-plum-muted)}
.form-status.is-error{color:#ffc2cd}
.form-status.is-success{color:#bfecd3;font-weight:500}
.button[disabled]{opacity:.65;cursor:progress}

/* Footer */
.site-footer{border-top:1px solid var(--line);padding:1.75rem 0 2.25rem}
.footer-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem}
.footer-row p{font-size:.9375rem;color:var(--muted)}
.footer-links{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}
.footer-links a{display:inline-flex;align-items:center;min-height:2.75rem;font-size:.9375rem;font-weight:500;border-bottom:1.5px solid transparent}
.footer-links a:hover{border-color:var(--plum)}
.site-footer .wordmark{font-size:1.4rem}

/* Inner pages */
.page{padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(3rem,7vw,5rem)}
.page h1{margin-bottom:1.25rem}
.page h2{font-size:1.5rem;margin:2rem 0 .5rem}
.page .lede{margin-bottom:.5rem}
.inline-link{color:var(--plum);text-decoration:underline;text-underline-offset:.15em;font-weight:500}
.page-updated{font-size:.9375rem;color:var(--muted);margin-top:2rem}

/* 404 */
.not-found{max-width:40rem;margin:0 auto;padding:clamp(4rem,12vw,8rem) var(--gutter)}
.not-found .lede{margin:1rem 0 2rem}

/* Responsive */
@media (max-width:1000px){
  .hero{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:2rem}
  .work-row,.connect-grid{grid-template-columns:1fr}
  .work-row.is-reversed{grid-template-columns:1fr}
  .work-row.is-reversed .work-visual{order:0}
  .section-heading,.two-col{grid-template-columns:1fr;gap:1.25rem}
  .section-intro{padding-left:0;border-left:0;max-width:var(--measure)}
  .principles{gap:1.5rem}
}
@media (max-width:760px){
  body{font-size:1rem}
  .site-header{padding-top:.85rem;padding-bottom:.85rem}
  .menu-toggle{display:inline-flex}
  .js .site-nav{display:none}
  .js .site-nav.is-open{display:block;position:absolute;top:100%;left:0;right:0;z-index:30;min-height:calc(100vh - 100%);min-height:calc(100dvh - 100%);background:var(--bg);border-top:1px solid var(--line);padding:.5rem var(--gutter) 2rem;overflow-y:auto}
  .site-nav ul{flex-direction:column;align-items:stretch;gap:0}
  .site-nav li{border-bottom:1px solid var(--line)}
  .site-nav a{display:flex;width:100%;min-height:3.25rem;font-size:1.125rem;border-bottom:0}
  .site-nav .nav-cta{margin-top:1rem;justify-content:center;border:1.5px solid var(--plum);color:var(--plum);font-family:var(--sans);font-size:1rem}
  html:not(.js) .site-header{flex-wrap:wrap}
  html:not(.js) .site-nav{width:100%}
  html:not(.js) .site-nav ul{flex-wrap:wrap;gap:.25rem 1.25rem}
  .hero{grid-template-columns:1fr;padding-top:1.5rem}
  .hero-copy{padding-top:0}
  h1{font-size:clamp(2.1rem,9.2vw,2.8rem)}
  .lede{font-size:1.0625rem}
  .eyebrow{letter-spacing:.1em}
  .hero-portrait{max-width:28rem;margin-top:.5rem}
  .hero-portrait picture{aspect-ratio:1/1}
  .experience{gap:.75rem 1.5rem;padding-top:1.25rem;padding-bottom:1.25rem}
  .experience .eyebrow{border-right:0;padding-right:0;width:100%}
  .eyebrow-extra{display:none}
  .hero .eyebrow{font-size:.75rem;letter-spacing:.07em;white-space:nowrap}
  .work-meta{flex-direction:column;align-items:flex-start;gap:.5rem}
  .footer-links{gap:.25rem 1.1rem}
  .experience{padding-top:1.5rem;padding-bottom:1.6rem;gap:1rem}
  .experience-list{width:100%;flex-wrap:nowrap;justify-content:space-between;gap:1rem}
  .experience-list li{min-width:0}
  .experience-list img{max-width:100%}
  .logo-pwc{height:1.45rem}
  .logo-ncl{height:1.15rem}
  .logo-bh{height:1.3rem}
  .field-row{grid-template-columns:1fr}
  .work-links{flex-direction:column;align-items:flex-start;gap:.5rem}
  .field{margin-bottom:1.4rem}
  .work-text h3{font-size:1.75rem}
  .work-row{padding:1.75rem 0}
  .principles{grid-template-columns:1fr}
  .large-copy{font-size:1.3rem}
}
@media (max-width:359px){
  .hero .eyebrow{white-space:normal}
  .experience-list{flex-wrap:wrap;justify-content:flex-start;gap:.9rem 1.5rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none !important}
}
