@font-face { font-family: "Montserrat"; font-style: normal; font-display: swap; font-weight: 500; src: url("/fonts/montserrat-latin-ext-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Montserrat"; font-style: normal; font-display: swap; font-weight: 600; src: url("/fonts/montserrat-latin-ext-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Literata"; font-style: normal; font-display: swap; font-weight: 500; src: url("/fonts/literata-latin-ext-500-normal.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-display: swap; font-weight: 500; src: url("/fonts/ibm-plex-mono-latin-ext-500-normal.woff2") format("woff2"); }

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root { --eggshell:#f4eed7; --charcoal:#3c3835; --ochre:#bc9652; --shaman:#806b80; --hunter:#6b7d6a; --chieftain:#5f7c8a; --beast:#aa4400; --cta:#d0804f; --display:"Montserrat",system-ui,sans-serif; --body:"Literata",Georgia,serif; --mono:"IBM Plex Mono",ui-monospace,monospace; }
html { scroll-behavior: smooth; }
body { min-height: 100vh; color: var(--charcoal); background: var(--eggshell); font: 500 1rem/1.55 var(--body); }
a { color: inherit; }
.skip-link { position: absolute; top: -100%; left: 1rem; z-index: 1000; padding: .65rem 1rem; color: var(--eggshell); background: var(--charcoal); }
.skip-link:focus { top: 0; outline: 2px solid var(--charcoal); outline-offset: 4px; }
.site { min-height: 100vh; overflow: clip; }
.site-header, .site-footer { max-width: 1240px; margin: 0 auto; padding: 1.5rem 2rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.site-header { border-bottom: 1px solid rgba(60,56,53,.22); }
.lockup { display: inline-flex; align-items: center; gap: .8rem; text-decoration: none; }
.lockup img { width: 52px; height: auto; }
.lockup span { display: grid; font: 500 .64rem/1.1 var(--display); letter-spacing: .14em; }
.site-header nav { display: flex; align-items: center; gap: 1.75rem; font: 600 .72rem/1 var(--display); letter-spacing: .08em; text-transform: uppercase; }
.site-header nav a { text-decoration: none; }
.site-header nav a:hover { text-decoration: underline; text-underline-offset: 5px; }
.site-header nav a:focus-visible, .text-link:focus-visible, .contact a:focus-visible, .site-footer a:focus-visible, .privacy-content a:focus-visible { outline: 2px solid var(--charcoal); outline-offset: 4px; }
.portal-link { padding: .7rem 1rem; border: 1px solid var(--charcoal); border-radius: 4px; transition: background 150ms ease,color 150ms ease; }
.portal-link:hover { color: var(--eggshell); background: var(--charcoal); text-decoration: none !important; }
.content { max-width: 1180px; margin: 0 auto; padding: 0 2rem; }
.hero { position: relative; min-height: 720px; display: flex; flex-direction: column; justify-content: center; overflow: hidden; border-bottom: 1px solid rgba(60,56,53,.22); }
.eyebrow, .index { color: var(--chieftain); font: 500 .72rem/1.3 var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.hero h1 { position: relative; z-index: 1; max-width: 930px; margin: 1.5rem 0; font: 500 clamp(3.3rem,8vw,7.4rem)/.94 var(--display); letter-spacing: -.055em; }
.deck { position: relative; z-index: 1; max-width: 680px; font-size: clamp(1.05rem,2vw,1.35rem); }
.text-link { position: relative; z-index: 1; display: inline-flex; width: fit-content; gap: .7rem; margin-top: 2rem; font: 600 .78rem/1.3 var(--display); letter-spacing: .08em; text-transform: uppercase; text-underline-offset: 5px; }
.text-link:hover { color: var(--beast); }
.hero-symbol { position: absolute; right: -8rem; bottom: -5rem; width: min(44vw,520px); height: auto; opacity: .065; }
.statement { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.25fr); gap: clamp(3rem,8vw,8rem); padding: clamp(5rem,10vw,9rem) 0; border-bottom: 1px solid rgba(60,56,53,.22); }
.statement h2 { margin-top: 1rem; font: 500 clamp(2.4rem,5vw,5rem)/1 var(--display); letter-spacing: -.045em; }
.prose { display: grid; align-content: center; gap: 1.5rem; font-size: clamp(1.05rem,1.8vw,1.3rem); }
.principals { margin-left: 0; padding-left: 2rem; border-left: 5px solid var(--hunter); }
.contact { margin: 0 -2rem; padding: clamp(5rem,10vw,9rem) 2rem; color: var(--eggshell); background: var(--charcoal); }
.contact .index { color: var(--ochre); }
.contact h2 { max-width: 850px; margin: 1rem 0 2rem; font: 500 clamp(2.5rem,6vw,6rem)/1 var(--display); letter-spacing: -.045em; }
.contact a { color: var(--eggshell); font: 500 clamp(.95rem,2vw,1.2rem)/1.4 var(--mono); text-decoration-color: var(--ochre); text-underline-offset: 6px; }
.contact a:hover { color: var(--ochre); }
.site-footer { font: 500 .72rem/1.4 var(--mono); border-top: 1px solid rgba(60,56,53,.22); }
.footer-meta { display:flex; align-items:center; gap:1.5rem; }
.footer-meta a { text-underline-offset:4px; }
.privacy-content { max-width:1180px; margin:0 auto; padding:0 2rem 6rem; }
.privacy-hero { position:relative; padding:clamp(5rem,10vw,9rem) 0; border-bottom:1px solid rgba(60,56,53,.22); }
.privacy-hero h1 { max-width:980px; margin:1.5rem 0; font:500 clamp(3.3rem,8vw,7rem)/.94 var(--display); letter-spacing:-.055em; }
.data-path { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr); gap:clamp(3rem,8vw,8rem); padding:clamp(4rem,8vw,7rem) 0; border-bottom:1px solid rgba(60,56,53,.22); }
.privacy-heading h2, .privacy-grid h2 { margin-top:1rem; font:500 clamp(1.8rem,3.4vw,3.4rem)/1.05 var(--display); letter-spacing:-.04em; }
.data-path ol { list-style:none; display:grid; gap:0; counter-reset:privacy-step; }
.data-path li { counter-increment:privacy-step; display:grid; grid-template-columns:3rem minmax(0,1fr); gap:.35rem 1rem; padding:1.25rem 0; border-top:1px solid rgba(60,56,53,.22); }
.data-path li::before { content:"0" counter(privacy-step); grid-row:1 / span 2; color:var(--chieftain); font:500 .72rem/1.5 var(--mono); letter-spacing:.12em; }
.data-path strong { font:600 1rem/1.35 var(--display); }
.data-path span { grid-column:2; }
.privacy-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-bottom:1px solid rgba(60,56,53,.22); }
.privacy-grid section { padding:clamp(3rem,6vw,5rem) clamp(2rem,5vw,4rem) clamp(3rem,6vw,5rem) 0; border-bottom:1px solid rgba(60,56,53,.22); }
.privacy-grid section:nth-child(even) { padding-left:clamp(2rem,5vw,4rem); padding-right:0; border-left:1px solid rgba(60,56,53,.22); }
.privacy-grid section:nth-last-child(-n+2) { border-bottom:0; }
.privacy-grid p:not(.index) { margin-top:1.5rem; }
.privacy-note { display:flex; justify-content:space-between; gap:2rem; margin-top:3rem; padding:1.5rem; color:var(--eggshell); background:var(--charcoal); font:500 .78rem/1.5 var(--mono); }
.privacy-note span { max-width:52ch; }
@media (max-width:700px) { .site-header { align-items:flex-start; }.site-header nav a:not(.portal-link) { display:none; }.site-header,.site-footer,.content { padding-left:1rem; padding-right:1rem; }.lockup img { width:42px; }.hero { min-height:660px; }.hero h1 { font-size:clamp(3.25rem,15vw,5.2rem); }.statement { grid-template-columns:1fr; gap:2rem; }.principals { padding-left:1rem; }.contact { margin-left:-1rem; margin-right:-1rem; padding-left:1rem; padding-right:1rem; }.site-footer { align-items:flex-start; flex-direction:column; }.hero-symbol { width:72vw; right:-26vw; } }
@media (max-width:700px) { .footer-meta { align-items:flex-start; flex-direction:column; gap:.65rem; }.privacy-content { padding-left:1rem; padding-right:1rem; }.privacy-hero h1 { font-size:clamp(3.1rem,15vw,5rem); }.data-path { grid-template-columns:1fr; gap:2rem; }.privacy-grid { grid-template-columns:1fr; }.privacy-grid section,.privacy-grid section:nth-child(even) { padding:3rem 0; border-left:0; border-bottom:1px solid rgba(60,56,53,.22); }.privacy-grid section:nth-last-child(2) { border-bottom:1px solid rgba(60,56,53,.22); }.privacy-grid section:last-child { border-bottom:0; }.privacy-note { flex-direction:column; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms !important; } }
