@import url("https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&display=swap");

:root{
  
  --grey-950: #080A09;
  --grey-900: #0C0E0D;
  --grey-800: #141615;
  --grey-700: #1B1E1D;
  --grey-600: #1E2221;
  --grey-500: #262B29;

  
  --ink-1: #F0F2F0;
  --ink-2: #C3C9C5;
  --ink-3: #8F9793;
  --ink-4: #6A7370;

  
  --green-200: #C8DDCE;
  --green-300: #A8CCB2;
  --green-400: #8FB89B;
  --green-500: #6F9C7C;
  --green-600: #547E62;
  --green-800: #22302A;
  --green-900: #182220;

  
  --brown-700: #2E2C28;
  --brown-800: #22211E;
  --brown-900: #1B1A17;
  --brown-950: #151412;

  
  --amber-300: #EFC176;
  --amber-400: #E8B25E;
  --amber-500: #D9982F;
  --amber-800: #33260F;
  --amber-900: #241B0C;

  
  --blue-300: #A9C4DC;
  --blue-800: #1D2731;
  --blue-900: #151C24;
  --zurich-300: #DCA9B0;
  --zurich-800: #2B1E21;
  --zurich-900: #1F1618;

  
  --purple-300: #C3B0D6;
  --purple-800: #241E2B;
  --teal-300: #9CCBCB;
  --teal-800: #12292A;
  --tan-300: #DCB49B;
  --tan-800: #2A1F19;
  --olive-300: #C2CE96;
  --olive-800: #232719;

  
  --rule-hair: #2A2E2C;
  --rule-mid: #3A403D;
  --rule-strong: #59605C;
  --rule-ink: #F0F2F0;

  
  --paper: var(--grey-800);
  --paper-sunken: var(--grey-700);
  --paper-raised: var(--grey-600);
  --surface-page: var(--grey-800);
  --surface-card: var(--grey-600);
  --surface-sunken: var(--grey-700);
  --surface-inverse: var(--brown-800);
  --surface-inverse-deep: var(--brown-900);
  --surface-footer: var(--brown-950);
  --surface-tint: var(--green-900);
  --surface-tint-deep: var(--green-800);
  
  --surface-inset: var(--grey-800);

  --text-strong: var(--ink-1);
  --text-body: var(--ink-2);
  --text-muted: var(--ink-3);
  --text-faint: var(--ink-4);
  --text-on-inverse: var(--ink-1);
  --text-on-inverse-muted: var(--ink-3);
  --text-accent: var(--green-400);
  --text-link: var(--green-400);
  --text-link-hover: var(--green-300);

  --accent: var(--green-400);
  --accent-hover: var(--green-300);
  --accent-press: var(--green-500);
  --accent-soft: var(--green-800);
  --accent-contrast: var(--grey-900);
  

  --border-subtle: var(--rule-hair);
  --border-default: var(--rule-mid);
  --border-strong: var(--rule-strong);
  --border-inverse: #222725;
  --focus-ring: var(--accent);

  --tag-office-london-fg: var(--green-300);
  --tag-office-london-bg: var(--green-800);
  --tag-office-london-border: var(--green-800);
  --tag-office-zurich-fg: var(--green-300);
  --tag-office-zurich-bg: transparent;
  --tag-office-zurich-border: var(--green-600);

  --state-positive-fg: var(--green-300);
  --state-positive-bg: var(--green-800);
  --state-notice-fg: var(--blue-300);
  --state-notice-bg: var(--blue-800);
  --state-caution-fg: var(--amber-400);
  --state-caution-bg: var(--amber-800);
  --state-alert-fg: var(--zurich-300);
  --state-alert-bg: var(--zurich-800);
}

[data-theme="tint"]{
  --surface-page: var(--green-900);
  --surface-card: var(--green-800);
  --surface-inset: var(--green-900);
  --surface-sunken: #131C1A;
  --surface-tint: var(--green-800);
  --border-subtle: #26332D;
  --border-default: #33443B;
  --border-strong: #4A5F53;
  --accent: var(--green-300);
  --accent-hover: var(--green-200);
  --accent-press: var(--green-400);
  --accent-soft: var(--green-800);
  --text-accent: var(--green-300);
  --text-link: var(--green-300);
  --text-link-hover: var(--green-200);
  --focus-ring: var(--green-300);
}

[data-theme="accent"]{
  --surface-page: var(--green-400);
  --surface-card: var(--green-300);
  --surface-inset: var(--green-200);
  --surface-sunken: var(--green-500);
  --surface-tint: var(--green-300);
  --text-strong: var(--grey-900);
  --text-body: #24312A;
  --text-muted: #2C3A31;
  --text-faint: #38473E;
  --border-subtle: rgba(20,22,21,.16);
  --border-default: rgba(20,22,21,.28);
  --border-strong: rgba(20,22,21,.44);
  --accent: var(--grey-900);
  --accent-hover: var(--grey-800);
  --accent-press: var(--grey-700);
  --accent-soft: rgba(20,22,21,.12);
  --accent-contrast: var(--green-300);
  --text-accent: var(--grey-900);
  --text-link: var(--grey-900);
  --text-link-hover: var(--grey-700);
  --focus-ring: var(--grey-900);
}

[data-theme="inverse"]{
  --surface-page: var(--brown-800);
  --surface-card: var(--brown-700);
  --surface-inset: var(--brown-900);
  --surface-sunken: var(--brown-900);
  --surface-tint: var(--brown-700);
  --text-body: #D6D1C9;
  --text-muted: #AEA9A0;
  --text-faint: #87837B;
  --border-subtle: #34322D;
  --border-default: #403D37;
  --border-strong: #5A5750;
  --border-inverse: #34322D;
  --text-on-inverse-muted: #AEA9A0;

  
  --accent: var(--green-300);
  --accent-hover: var(--green-200);
  --accent-press: var(--green-400);
  --accent-soft: #23302A;
  --accent-contrast: var(--grey-900);
  --text-accent: var(--green-300);
  --text-link: var(--green-300);
  --text-link-hover: var(--green-200);
  --focus-ring: var(--green-300);
}

:root{
  --font-sans: "Public Sans", "Helvetica Neue", Helvetica, sans-serif;
  --font-text: var(--font-sans);
  --font-display: var(--font-sans);
  
  --font-meta: var(--font-sans);

  --fw-light: 300; 
  --fw-regular: 400; 
  --fw-medium: 500; 
  --fw-semibold: 600; 
  --fw-bold: 700; 
  --fw-black: 800; 

  
  --fs-display-1: clamp(3rem, 6.2vw, 5.25rem); 
  --fs-display-2: clamp(2.5rem, 4.6vw, 3.75rem); 
  --fs-h1: clamp(2.125rem, 3.4vw, 2.875rem); 
  --fs-h2: clamp(1.625rem, 2.3vw, 2.125rem); 
  --fs-h3: 1.375rem; 
  --fs-h4: 1.125rem; 
  --fs-lead: clamp(1.125rem, 1.5vw, 1.375rem); 
  --fs-body: 1.0625rem; 
  --fs-body-sm: 0.9375rem; 
  --fs-caption: 0.8125rem; 
  --fs-meta: 0.75rem; 

  --lh-display: 0.98; 
  --lh-heading: 1.12; 
  --lh-lead: 1.42; 
  --lh-body: 1.62; 
  --lh-tight: 1.28; 

  --ls-display: -0.03em; 
  --ls-heading: -0.018em; 
  --ls-body: -0.005em; 
  --ls-meta: 0.1em; 
  --ls-meta-wide: 0.16em; 

  
  --text-display-weight: var(--fw-semibold); 
  --text-heading-weight: var(--fw-semibold); 
  --text-eyebrow: var(--fs-meta); 
  --measure-narrow: 34ch; 
  --measure-text: 62ch; 
  --measure-wide: 78ch; 
}

:root{
  
  --hang-punctuation: 14px;

  
  --space-0: 0;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-7: 32px;
  --space-8: 40px;
  --space-9: 48px;
  --space-10: 64px;
  --space-11: 80px;
  --space-12: 96px;
  --space-13: 128px;
  --space-14: 160px;

  --section-y: clamp(64px, 8vw, 128px); 
  --section-y-tight: clamp(48px, 5vw, 80px); 
  --stack-gap: var(--space-6);
  --field-gap: var(--space-5);

  
  --container-max: 1240px;
  --container-wide: 1440px;
  --container-narrow: 720px;
  --gutter: clamp(20px, 4vw, 56px); 
  --grid-cols: 12; 
  --grid-gap: clamp(16px, 2vw, 32px);
}

:root{
  
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 12px;
  --radius-pill: 999px;
  --radius-card: var(--radius-lg);
  --radius-control: var(--radius-md);
  --radius-field: var(--radius-md);
  --radius-media: var(--radius-lg);

  
  --border-width-hair: 1px;
  --border-width-mid: 1.5px;
  --border-width-thick: 2px;
  --border-card: var(--border-width-hair) solid var(--border-subtle);
  --border-field: var(--border-width-hair) solid var(--border-default);
  --border-rule: var(--border-width-hair) solid var(--border-subtle);

  
  --shadow-none: none;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.32);
  --shadow-card: 0 1px 2px rgba(0,0,0,.28), 0 8px 24px -18px rgba(0,0,0,.6);
  --shadow-raised: 0 2px 4px rgba(0,0,0,.3), 0 18px 40px -24px rgba(0,0,0,.7);
  --shadow-overlay: 0 32px 80px -32px rgba(0,0,0,.8);
  --shadow-inset-field: inset 0 1px 0 rgba(255,255,255,.03);
  --ring-focus: 0 0 0 2px var(--grey-800), 0 0 0 4px var(--focus-ring);

  
  --texture-dots: radial-gradient(circle at 1px 1px, rgba(240,242,240,.07) 1px, transparent 0); 
  --texture-dots-size: 14px 14px; 

  
  --scrim: rgba(4,6,5,.66);
  --header-blur: saturate(140%) blur(14px); 
  --header-fill: rgba(20,22,21,.82);
  --protect-top: linear-gradient(to bottom, rgba(8,10,9,.72), rgba(8,10,9,0)); 
}

:root{
  --dur-instant: 90ms; 
  --dur-fast: 160ms; 
  --dur-base: 240ms; 
  --dur-slow: 420ms; 
  --dur-reveal: 620ms; 

  --ease-standard: cubic-bezier(.2,.7,.2,1); 
  --ease-out: cubic-bezier(.16,1,.3,1); 
  --ease-in-out: cubic-bezier(.6,0,.2,1); 
  --ease-exit: cubic-bezier(.4,0,1,1); 

  --stagger-step: 70ms; 
  --reveal-shift: 18px;

  --transition-control: background-color var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), transform var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard); 
  --transition-panel: grid-template-rows var(--dur-base) var(--ease-standard), opacity var(--dur-base) var(--ease-standard); 
}
@media (prefers-reduced-motion: reduce){
  :root{
    --dur-fast: 1ms; 
    --dur-base: 1ms; 
    --dur-slow: 1ms; 
    --dur-reveal: 1ms; 
    --stagger-step: 0ms; 
    --reveal-shift: 0px; 
  }
}

*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-text);font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);-webkit-font-smoothing:antialiased;text-wrap:pretty}
h1,h2,h3,h4{margin:0;color:var(--text-strong);font-family:var(--font-display);font-weight:var(--text-heading-weight);line-height:var(--lh-heading);letter-spacing:var(--ls-heading);text-wrap:balance}
h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3)}h4{font-size:var(--fs-h4)}
p{margin:0}
a{color:var(--text-link);text-decoration:none;text-underline-offset:.22em;text-decoration-thickness:1px;transition:color var(--dur-fast) var(--ease-standard),text-decoration-color var(--dur-fast) var(--ease-standard)}
a:hover{color:var(--text-link-hover);text-decoration:underline;text-decoration-color:var(--border-strong)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--ring-focus);border-radius:var(--radius-xs)}
hr{border:0;border-top:var(--border-rule);margin:0}
::selection{background:var(--green-800);color:var(--ink-1)}
.ric-eyebrow{font-family:var(--font-sans);font-size:var(--fs-body-sm);font-weight:var(--fw-medium);letter-spacing:-.008em;color:var(--text-muted)}
.ric-meta{font-family:var(--font-sans);font-size:var(--fs-caption);letter-spacing:-.005em;color:var(--text-muted)}
.ric-lead{font-size:var(--fs-lead);line-height:var(--lh-lead);color:var(--text-body);max-width:var(--measure-text)}
.ric-container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--gutter)}
.ric-grid{display:grid;grid-template-columns:repeat(var(--grid-cols),minmax(0,1fr));gap:var(--grid-gap)}
@media (max-width:860px){
.ric-split-section{grid-template-columns:1fr!important;gap:var(--space-7)!important}
.ric-split-section .ric-split-aside{position:static!important}
.ric-split-section .ric-split-body{border-left:0!important;padding-left:0!important}
}

html{scroll-behavior:smooth}
body{background:var(--surface-page);overflow-x:hidden}
nav::-webkit-scrollbar{display:none}
@media (max-width:1080px){.ric-header-contact{display:none!important}}
.ric-sq-arrow{color:var(--text-strong);transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
.ric-sq-arrow svg{transition:transform var(--dur-fast) var(--ease-out)}
.ric-sq-arrow:hover{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}
.ric-sq-arrow:hover svg{transform:translate(2px,-2px)}
.ric-sq-arrow:active{background:var(--accent-press);border-color:var(--accent-press)}
.ric-tab-button[aria-selected="false"]:hover{border-color:var(--accent)!important;color:var(--accent)!important}
.ric-client-row:hover{color:var(--accent-hover)!important;text-decoration:none}
.ric-client-row:hover svg{stroke:var(--accent);transform:translate(2px,-2px);transition:transform var(--dur-fast) var(--ease-out)}
.ric-nav-link{color:var(--text-body);transition:color var(--dur-fast) var(--ease-standard)}
.ric-nav-link[aria-current="page"]{color:var(--text-strong)}
.ric-nav-link:hover,.ric-nav-link:focus-visible,.ric-nav-link[aria-expanded="true"]{color:var(--accent)}
.ric-nav-item{transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}
.ric-nav-item svg{transition:transform var(--dur-fast) var(--ease-out);color:var(--text-faint)}
.ric-nav-item:hover{background:var(--accent-soft);color:var(--accent-hover)}
.ric-nav-item:hover svg{transform:translateX(3px);color:var(--accent)}
.ric-nav-item[aria-current="page"]{color:var(--accent)}
a{color:var(--text-link)}a:hover{color:var(--text-link-hover)}
.ric-nav-item{color:var(--text-strong)}

.ric-toc-link{color:var(--text-muted);transition:color var(--dur-fast) var(--ease-standard)}
.ric-toc-link:hover{color:var(--accent)}

@media (max-width:900px){
  .ric-nav-desktop{display:none!important}
  .ric-nav-cta{display:none!important}
  .ric-burger{display:inline-flex!important}
  .ric-drawer:not([hidden]){display:block!important}
}
.ric-burger:hover{border-color:var(--accent);color:var(--accent)}

@media (max-width:1024px){
  .ric-cols-3{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:860px){
  .ric-split,.ric-split-toc{grid-template-columns:1fr!important;gap:var(--space-8)!important}
  .ric-split > *{position:static!important}
  .ric-cols-3,.ric-cols-2{grid-template-columns:1fr!important}
  .ric-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:var(--space-8)!important}
  .ric-split-label{grid-template-columns:1fr!important;gap:var(--space-4)!important}
}
@media (max-width:560px){
  .ric-footer-grid{grid-template-columns:1fr!important}
}

@media (max-width:860px){
  .ric-split > * + *{border-left:0!important;padding-left:0!important}
}
