/* No remote assets: typography relies only on fonts already available on the visitor's device. */
:root { color-scheme: light dark; --ink:#1d2023; --muted:#5d636b; --paper:#f5f3ef; --surface:#fffdf9; --line:rgba(29,32,35,.14); --brand:#8b1812; --accent:#d6aa64; }
@media (prefers-color-scheme: dark) { :root { --ink:#f4f1eb; --muted:#bbb9b5; --paper:#292b2d; --surface:#323437; --line:rgba(244,241,235,.16); --brand:#d75b52; --accent:#e2b877; } }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Avenir Next, Avenir, Helvetica Neue, Helvetica, Arial, sans-serif; -webkit-font-smoothing:antialiased; }
button, a { font:inherit; }
a { color:inherit; }
.page-shell { min-height:100svh; max-width:1600px; margin:auto; padding:0 clamp(1.25rem,4vw,5rem); display:grid; grid-template-rows:auto 1fr auto; }
.site-header,.site-footer { min-height:5.75rem; display:flex; align-items:center; justify-content:space-between; gap:1.25rem; border-bottom:1px solid var(--line); }
.wordmark { text-decoration:none; letter-spacing:-.07em; font-size:1.35rem; font-weight:800; }.wordmark span { color:var(--brand); }.wordmark small { margin-left:.4rem; color:var(--muted); font-size:.55em; font-weight:700; letter-spacing:.02em; white-space:nowrap; }
nav { display:flex; align-items:center; gap:clamp(.75rem,2vw,1.75rem); }.text-link { padding:0; border:0; background:transparent; cursor:pointer; color:var(--muted); font-size:.88rem; }.text-link:hover,.text-link:focus-visible { color:var(--brand); }
.login-link { text-decoration:none; border:1px solid var(--line); padding:.62rem .85rem; border-radius:999px; font-weight:700; font-size:.88rem; transition:background .2s, color .2s; }.login-link:hover { background:var(--ink); color:var(--paper); }
.hero { min-height:calc(100svh - 11.5rem); display:grid; grid-template-columns:minmax(0,.9fr) minmax(18rem,1.1fr); align-items:center; gap:clamp(1rem,7vw,8rem); padding:clamp(3rem,8vh,7rem) 0 3rem; }.hero-copy { max-width:39rem; position:relative; z-index:1; }.eyebrow { margin:0 0 1rem; color:var(--brand); font-size:.76rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }h1 { margin:0; max-width:12ch; font-size:clamp(3rem,7vw,7.1rem); line-height:.93; letter-spacing:-.075em; } .intro { max-width:34rem; margin:1.75rem 0 2rem; font-size:clamp(1rem,1.4vw,1.2rem); line-height:1.65; color:var(--muted); }.contact-cta { display:inline-flex; gap:.65rem; align-items:center; color:var(--ink); font-weight:800; text-decoration:none; padding-bottom:.35rem; border-bottom:2px solid var(--brand); }.contact-cta:hover { color:var(--brand); }
.logo-stage { min-height:clamp(22rem,66vh,43rem); position:relative; display:grid; place-items:center; overflow:hidden; }.logo-stage img { width:min(100%,29rem); height:auto; max-height:clamp(25rem,63vh,40rem); position:relative; z-index:1; filter:drop-shadow(0 1.7rem 2rem rgba(0,0,0,.16)); }.logo-glow { position:absolute; width:78%; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle, color-mix(in srgb, var(--accent) 45%, transparent), transparent 67%); opacity:.65; }
.site-footer { border-top:1px solid var(--line); border-bottom:0; min-height:5rem; color:var(--muted); font-size:.82rem; }.site-footer p { margin:0; }
dialog { width:min(44rem,calc(100% - 2rem)); max-height:min(85svh,52rem); padding:0; border:1px solid var(--line); border-radius:1.25rem; background:var(--surface); color:var(--ink); box-shadow:0 1.5rem 5rem rgba(0,0,0,.35); }dialog::backdrop { background:rgba(11,12,13,.6); backdrop-filter:blur(5px); }.legal-content { padding:clamp(1.5rem,5vw,3.5rem); position:relative; }.legal-content h2 { margin:0 0 1.75rem; font-size:clamp(2rem,5vw,3.5rem); letter-spacing:-.06em; }.legal-content h3 { margin:2rem 0 .6rem; font-size:1rem; }.legal-content p { line-height:1.6; color:var(--muted); }.legal-content strong { color:var(--ink); }.legal-content a { color:var(--brand); }.close-dialog { position:absolute; top:1rem; right:1rem; display:grid; place-items:center; width:2.3rem; height:2.3rem; padding:0; border:1px solid var(--line); border-radius:50%; color:var(--ink); background:transparent; cursor:pointer; font-size:1.6rem; line-height:1; }.source-note { margin-top:2rem; font-size:.85rem; }.contact-protection { margin:2rem 0; padding:1.25rem; border:1px solid var(--line); border-radius:.8rem; }.contact-protection h3 { margin-top:0; }.reveal-contact { border:0; border-radius:999px; padding:.7rem 1rem; background:var(--brand); color:#fff; font-weight:800; cursor:pointer; }.reveal-contact:hover,.reveal-contact:focus-visible { filter:brightness(1.12); }.contact-details { margin-top:1rem; color:var(--muted); line-height:1.7; }.contact-details a { color:var(--brand); }
@media (max-width:700px) { .page-shell { padding:0 1.25rem; }.site-header { min-height:4.75rem; }.site-header nav { gap:.7rem; }.site-header .text-link { display:none; }.hero { min-height:auto; grid-template-columns:1fr; gap:1rem; padding-top:4rem; }.logo-stage { grid-row:1; min-height:19rem; }.logo-stage img { max-height:21rem; width:14.5rem; }.hero-copy { padding-bottom:2rem; }h1 { font-size:clamp(3.2rem,15vw,5rem); }.site-footer { align-items:flex-start; flex-direction:column; justify-content:center; gap:.55rem; }.site-footer nav { gap:1.1rem; } }
@media (prefers-reduced-motion: no-preference) { .logo-stage img { animation:appear .8s cubic-bezier(.2,.9,.2,1) both; } @keyframes appear { from { opacity:0; transform:translateY(1.5rem) rotate(-2deg); } to { opacity:1; transform:none; } } }
