:root { --font-geist-sans:Arial; --font-geist-mono:"Courier New"; --background:#f1f0ec; --foreground:#151515; --hero:#181b3a; --acid:#d8ff32; --line:rgba(21,21,21,.18); --card:#f8f7f3; --card-foreground:#151515; --primary:#151515; --primary-foreground:#fff; --secondary:#e6e5df; --secondary-foreground:#151515; --muted:#e6e5df; --muted-foreground:#66655f; --accent:#d8ff32; --accent-foreground:#151515; --border:rgba(21,21,21,.18); --input:rgba(21,21,21,.18); --ring:#151515; --radius:0; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--background); color:var(--foreground); font-family:var(--font-geist-sans),Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
.site-header { height:84px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 4vw; border-bottom:1px solid rgba(255,255,255,.24); position:absolute; top:0; width:100%; z-index:5; color:#fff; }
.brand { display:inline-flex; align-items:center; width:min(230px,18vw); }
.brand img { display:block; width:100%; height:auto; filter:brightness(0); }
.site-header .brand img { filter:none; }
nav { display:flex; gap:2.4rem; font-size:.86rem; font-weight:600; }
nav a,.header-cta { transition:opacity .2s ease; }
nav a:hover,.header-cta:hover { opacity:.55; }
.header-cta { justify-self:end; display:flex; align-items:center; gap:.55rem; font-size:.86rem; font-weight:700; }
.header-cta svg { width:17px; }
.hero { min-height:780px; height:100svh; position:relative; overflow:hidden; padding:24vh 4vw 5vh; display:flex; flex-direction:column; justify-content:space-between; background:var(--hero); color:#fff; }
.hero-grid { position:absolute; inset:0; opacity:.13; background-image:linear-gradient(to right,#fff 1px,transparent 1px),linear-gradient(to bottom,#fff 1px,transparent 1px); background-size:8.33vw 8.33vw; pointer-events:none; }
.hero-kicker { display:flex; align-items:center; gap:.55rem; font-size:.76rem; font-family:var(--font-geist-mono); text-transform:uppercase; letter-spacing:.08em; position:relative; }
.hero-kicker svg { width:15px; }
.hero h1 { margin:0; font-size:clamp(4rem,9.8vw,10.5rem); line-height:.86; letter-spacing:-.075em; font-weight:680; position:relative; }
.hero h1 span { font-weight:420; }
.hero-bottom { position:relative; display:flex; align-items:end; justify-content:space-between; }
.hero-bottom p { font-size:clamp(.95rem,1.3vw,1.2rem); line-height:1.65; margin:0; }
.circle-link { width:64px; height:64px; border:1px solid currentColor; border-radius:50%; display:grid; place-items:center; transition:transform .25s ease,background .25s ease; }
.circle-link:hover { transform:translateY(5px); background:var(--acid); border-color:var(--acid); color:#111; }
.hero-stamp { position:absolute; right:5.7vw; top:18vh; width:114px; height:114px; border:1px solid var(--acid); border-radius:50%; display:grid; place-content:center; text-align:center; transform:rotate(9deg); background:var(--acid); color:#111; }
.hero-stamp span { font-size:2.35rem; font-weight:800; line-height:1; letter-spacing:-.08em; }
.hero-stamp small { margin-top:6px; font-family:var(--font-geist-mono); font-size:.51rem; line-height:1.25; }
.eyebrow { font-family:var(--font-geist-mono); font-size:.72rem; letter-spacing:.1em; margin:0; }
.manifesto { display:grid; grid-template-columns:1fr 3fr; gap:3rem; padding:10rem 4vw; border-bottom:1px solid var(--line); }
.manifesto>div { display:grid; grid-template-columns:1.25fr .75fr; gap:8vw; }
.manifesto h2,.section-heading h2,.process h2 { font-size:clamp(3rem,6.4vw,7rem); line-height:.95; letter-spacing:-.065em; font-weight:540; margin:0; }
.manifesto-copy { align-self:end; font-size:1.05rem; line-height:1.75; }
.manifesto-copy p:first-child { font-weight:700; }
.company-profile { display:grid; grid-template-columns:1fr 1fr 1.2fr; border-bottom:1px solid var(--line); }
.company-profile>article,.company-profile>dl { margin:0; padding:4rem 4vw; border-right:1px solid var(--line); }
.company-profile>article h3 { margin:4rem 0 1.5rem; font-size:clamp(2rem,3vw,3.3rem); line-height:1.05; letter-spacing:-.05em; font-weight:550; }
.company-profile>article>p:last-child { max-width:28rem; line-height:1.7; color:#66655f; }
.company-profile dl>div { display:grid; grid-template-columns:110px 1fr; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line); }
.company-profile dt { font-size:.75rem; color:#77756f; }
.company-profile dd { margin:0; font-weight:600; }
.travel-feature { display:grid; grid-template-columns:.45fr 1.55fr 1fr; gap:4vw; padding:9rem 4vw; background:#6047ff; color:#fff; }
.travel-number { font-family:var(--font-geist-mono); font-size:.75rem; }
.travel-title h2,.history-heading h2 { margin:2.8rem 0 0; font-size:clamp(3.5rem,6.5vw,7.2rem); line-height:.92; letter-spacing:-.07em; font-weight:520; }
.travel-copy { align-self:end; }
.travel-copy>svg { width:44px; height:44px; margin-bottom:2.4rem; }
.feature-icon { width:44px; height:44px; margin-bottom:2.4rem; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; font-size:1.4rem; }
.travel-copy>p { font-size:1.05rem; line-height:1.75; margin:0 0 2rem; }
.travel-tags { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:3rem; }
.travel-tags span { border:1px solid rgba(255,255,255,.5); border-radius:999px; padding:.55rem .85rem; font-size:.75rem; }
.travel-copy>p.travel-billing { margin:-1rem 0 2.5rem; padding:1rem 1.1rem; border-left:3px solid var(--acid); background:rgba(255,255,255,.1); font-size:.88rem; line-height:1.65; }
.travel-billing b { color:var(--acid); font-size:.76rem; letter-spacing:.04em; }
.travel-copy>a { display:inline-flex; align-items:center; gap:.55rem; border-bottom:1px solid #fff; padding-bottom:.35rem; font-weight:700; }
.travel-copy>a svg { width:17px; }
.services { padding:8rem 4vw 10rem; background:#191919; color:#f3f2ed; }
.section-heading { display:grid; grid-template-columns:1fr 3fr; margin-bottom:7rem; }
.section-heading h2 { font-size:clamp(3.5rem,7vw,7.7rem); }
.service-list { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.22); }
.service-card { position:relative; min-height:430px; padding:2rem; border-right:1px solid rgba(255,255,255,.22); transition:background .25s ease,color .25s ease; }
.service-card:first-child { border-left:1px solid rgba(255,255,255,.22); }
.service-card:hover { background:var(--acid); color:#111; }
.service-meta { display:flex; align-items:center; justify-content:space-between; font-family:var(--font-geist-mono); font-size:.72rem; }
.service-meta svg { width:25px; height:25px; }
.service-card h3 { font-size:clamp(2rem,3vw,3.2rem); line-height:1; letter-spacing:-.05em; margin:8rem 0 1.5rem; font-weight:520; }
.service-card p { max-width:28rem; color:#aaa; line-height:1.65; transition:color .25s ease; }
.service-card:hover p { color:#333; }
.service-arrow { position:absolute; right:2rem; bottom:2rem; width:28px; height:28px; }
.process { padding:9rem 4vw; display:grid; grid-template-columns:1fr 1fr; gap:10vw; }
.process-intro { position:sticky; top:3rem; align-self:start; }
.process h2 { margin-top:3rem; font-size:clamp(3rem,5vw,5.8rem); }
.process ol { list-style:none; margin:0; padding:0; }
.process li { display:grid; grid-template-columns:48px 1fr; padding:2.2rem 0; border-top:1px solid var(--line); }
.process li:last-child { border-bottom:1px solid var(--line); }
.process li span { font-family:var(--font-geist-mono); font-size:.7rem; }
.process li strong { font-size:2rem; letter-spacing:-.04em; font-weight:550; }
.process li p { grid-column:2; color:#66655f; }
.history { display:grid; grid-template-columns:1fr 1fr; gap:10vw; padding:9rem 4vw; background:var(--acid); }
.history-heading { position:sticky; top:3rem; align-self:start; }
.history-heading h2 { font-size:clamp(3.4rem,5.4vw,6.2rem); }
.history-guide { max-width:31rem; margin:2rem 0 0; color:#44443d; line-height:1.7; }
.timeline { border-bottom:1px solid rgba(21,21,21,.35); }
.timeline details { border-top:1px solid rgba(21,21,21,.35); }
.timeline summary { display:grid; grid-template-columns:110px 1fr 32px; gap:1rem; align-items:start; padding:2rem 0; cursor:pointer; list-style:none; }
.timeline summary::-webkit-details-marker { display:none; }
.timeline summary strong { font-family:var(--font-geist-mono); font-size:.8rem; padding-top:.35rem; }
.timeline summary span { display:grid; gap:.55rem; }
.timeline summary b { font-size:1.55rem; letter-spacing:-.04em; font-weight:600; }
.timeline summary small { font-size:.9rem; line-height:1.6; color:#44443d; }
.timeline summary i { position:relative; width:30px; height:30px; border:1px solid rgba(21,21,21,.45); border-radius:50%; transition:transform .25s ease,background .25s ease; }
.timeline summary i::before,.timeline summary i::after { content:""; position:absolute; left:50%; top:50%; width:10px; height:1px; background:#151515; transform:translate(-50%,-50%); }
.timeline summary i::after { transform:translate(-50%,-50%) rotate(90deg); transition:transform .25s ease; }
.timeline details[open] summary i { transform:rotate(180deg); background:#151515; }
.timeline details[open] summary i::before,.timeline details[open] summary i::after { background:var(--acid); }
.timeline details[open] summary i::after { transform:translate(-50%,-50%) rotate(0); }
.timeline summary:hover b { text-decoration:underline; text-underline-offset:.25em; }
.timeline details>ul { margin:0 0 2.4rem 126px; padding:1.5rem 1.8rem 1.5rem 2.8rem; background:rgba(255,255,255,.42); line-height:1.7; }
.timeline details>ul>li+li { margin-top:.65rem; }
.timeline li ul { margin:.5rem 0 .2rem; padding-left:1.2rem; color:#44443d; }
.locations { padding:9rem 4vw; background:#f1f0ec; }
.locations-heading { display:grid; grid-template-columns:1fr 2fr 1fr; align-items:end; gap:4vw; margin-bottom:6rem; }
.locations-heading h2 { margin:0; font-size:clamp(3.5rem,6.5vw,7.2rem); line-height:.92; letter-spacing:-.07em; font-weight:520; }
.locations-heading>p:last-child { line-height:1.7; color:#66655f; }
.office-list { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); }
.office-list article { min-height:270px; padding:2.2rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.office-list article:nth-child(odd) { border-left:1px solid var(--line); }
.office-list h3 { margin:3.5rem 0 1.2rem; font-size:1.8rem; letter-spacing:-.04em; }
.office-list article>p:not(.eyebrow) { display:flex; gap:.7rem; line-height:1.6; color:#66655f; }
.office-list article>p svg { width:17px; flex:0 0 auto; margin-top:.25rem; }
.office-list a { display:inline-flex; align-items:center; gap:.45rem; margin-top:1rem; border-bottom:1px solid currentColor; padding-bottom:.25rem; font-size:.8rem; font-weight:700; }
.office-list a svg { width:15px; }
.contact-strip { display:flex; justify-content:flex-end; gap:3rem; padding-top:3rem; }
.contact-strip a { display:flex; align-items:center; gap:.6rem; font-weight:700; }
.contact-strip svg { width:18px; }
.contact { min-height:620px; padding:8rem 4vw 5rem; background:#6047ff; color:white; display:flex; flex-direction:column; justify-content:space-between; }
.contact h2 { font-size:clamp(4rem,8.5vw,9rem); line-height:.9; letter-spacing:-.07em; font-weight:520; margin:4rem 0; }
.contact a { align-self:end; display:inline-flex; align-items:center; gap:1rem; border-bottom:2px solid white; padding-bottom:.35rem; font-size:clamp(1.4rem,2.7vw,2.8rem); letter-spacing:-.04em; }
.contact a svg { width:1em; height:1em; }
footer { padding:3rem 4vw; background:#151515; color:#d4d3ce; display:grid; grid-template-columns:1.1fr 1fr .8fr 1fr; gap:2rem; align-items:start; font-size:.78rem; line-height:1.6; }
.brand-footer { width:min(260px,22vw); }
.brand-footer img { filter:none; }
footer p { margin:0 0 .4rem; }
.family-sites { position:relative; justify-self:end; width:min(100%,420px); }
.family-sites summary { display:flex; align-items:center; justify-content:space-between; padding:.9rem 0; border-top:1px solid rgba(255,255,255,.34); border-bottom:1px solid rgba(255,255,255,.34); cursor:pointer; list-style:none; font-family:var(--font-geist-mono); letter-spacing:.08em; }
.family-sites summary::-webkit-details-marker { display:none; }
.family-sites summary span { font-size:1.1rem; line-height:1; transition:transform .2s ease; }
.family-sites[open] summary span { transform:rotate(45deg); }
.family-sites>div { display:grid; grid-template-columns:1fr 1fr; background:#242424; }
.family-sites>div>p { grid-column:1/-1; margin:0; padding:.85rem 1rem .45rem; color:#85857f; font-family:var(--font-geist-mono); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; border-bottom:1px solid rgba(255,255,255,.12); }
.family-sites a { display:flex; align-items:center; justify-content:space-between; padding:.9rem 1rem; border-bottom:1px solid rgba(255,255,255,.12); transition:background .2s ease,color .2s ease; }
.family-sites a:nth-of-type(odd) { border-right:1px solid rgba(255,255,255,.12); }
.family-sites a:hover { background:var(--acid); color:#151515; }
@media (max-width:760px) {
  .site-header { height:68px; grid-template-columns:1fr auto; } .brand { width:158px; } nav { display:none; } .header-cta { font-size:.76rem; }
  .hero { min-height:680px; padding-top:21vh; } .hero h1 { font-size:clamp(3.35rem,15.8vw,5.8rem); line-height:.9; }
  .hero-stamp { width:82px; height:82px; right:5vw; top:14vh; } .hero-stamp span { font-size:1.75rem; } .hero-stamp small { font-size:.38rem; }
  .hero-bottom p { max-width:75%; font-size:.83rem; } .circle-link { width:52px; height:52px; }
  .manifesto,.section-heading,.process { grid-template-columns:1fr; } .manifesto { padding:7rem 5vw; } .manifesto>div { grid-template-columns:1fr; gap:3rem; } .manifesto h2 { font-size:3.7rem; }
  .company-profile { grid-template-columns:1fr; } .company-profile>article,.company-profile>dl { border-right:0; border-bottom:1px solid var(--line); padding:4rem 5vw; }
  .travel-feature { grid-template-columns:1fr; padding:6rem 5vw; gap:2rem; } .travel-number { display:none; } .travel-title h2 { font-size:3.7rem; } .travel-copy { margin-top:2rem; }
  .services { padding:6rem 5vw; } .section-heading { gap:2rem; margin-bottom:4rem; } .service-list { grid-template-columns:1fr; }
  .service-card,.service-card:first-child { min-height:330px; border-left:1px solid rgba(255,255,255,.22); border-bottom:1px solid rgba(255,255,255,.22); } .service-card h3 { margin-top:5rem; }
  .process { padding:7rem 5vw; } .process-intro { position:static; }
  .history { grid-template-columns:1fr; padding:7rem 5vw; } .history-heading { position:static; margin-bottom:3rem; } .history-heading h2 { font-size:3.7rem; } .timeline summary { grid-template-columns:72px 1fr 30px; gap:.75rem; } .timeline summary b { font-size:1.3rem; } .timeline summary small { font-size:.8rem; } .timeline details>ul { margin-left:0; padding:1.25rem 1.2rem 1.25rem 2.4rem; font-size:.9rem; }
  .locations { padding:7rem 5vw; } .locations-heading { grid-template-columns:1fr; gap:2rem; } .locations-heading h2 { font-size:3.7rem; } .office-list { grid-template-columns:1fr; } .office-list article { border-left:1px solid var(--line); min-height:240px; } .contact-strip { justify-content:flex-start; flex-direction:column; gap:1rem; }
  .contact { min-height:540px; padding:6rem 5vw 4rem; } .contact h2 { font-size:3.7rem; } .contact a { align-self:flex-start; font-size:1.25rem; }
  footer { grid-template-columns:1fr; padding:3rem 5vw; } .brand-footer { width:220px; } .family-sites { justify-self:start; width:100%; margin-top:1rem; } .family-sites>div { grid-template-columns:1fr; } .family-sites a:nth-of-type(odd) { border-right:0; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
