:root {
  --blue: #2563eb;
  --text: #0f172a;
  --muted: #64748b;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html, body { width: 100%; min-height: 100%; margin: 0; }
body { min-height: 100vh; min-height: 100dvh; overflow: hidden; color: var(--text); background: #fff; -webkit-font-smoothing: antialiased; }
button, a, label { font: inherit; }
a { color: inherit; }
.skip-link { position: fixed; left: 1rem; top: -4rem; z-index: 40; padding: .7rem 1rem; border-radius: .7rem; background:#fff; color:var(--text); box-shadow:0 8px 24px rgba(15,23,42,.14); text-decoration:none; }
.skip-link:focus { top: 1rem; }
.page { position:relative; z-index:2; width:100%; height:100vh; height:100dvh; display:grid; place-items:center; padding:1rem; }
.maintenance { position:relative; width:min(920px,100%); text-align:center; animation:rise .7s ease both; }
.maintenance::before {
  content:""; position:absolute; z-index:-1; left:50%; top:46%; width:min(900px,105vw); height:min(560px,72vh);
  transform:translate(-50%,-50%); pointer-events:none;
  background:radial-gradient(ellipse at center, rgba(37,99,235,.16) 0%, rgba(59,130,246,.10) 28%, rgba(96,165,250,.045) 52%, rgba(255,255,255,0) 76%);
  filter:blur(8px);
}
.brand { display:inline-flex; flex-direction:column; align-items:center; gap:.45rem; }
.brand-mark { width:60px; height:60px; overflow:hidden; border-radius:14px; box-shadow:0 10px 26px rgba(37,99,235,.16); }
.brand-mark img { display:block; width:100%; height:100%; }
.brand-copy { text-align:center; }
.brand-name { margin:0; font-size:.95rem; font-weight:800; letter-spacing:-.02em; }
.brand-tagline { margin:.18rem 0 0; color:var(--muted); font-size:.68rem; }
h1 { max-width:950px; margin:clamp(1.7rem,5vh,3rem) auto 0; font-size:clamp(2.25rem,7.2vw,6.2rem); line-height:.94; letter-spacing:-.075em; font-weight:800; text-wrap:balance; }
.lead { max-width:620px; margin:.8rem auto 0; color:var(--muted); font-size:clamp(.9rem,2vw,1.04rem); line-height:1.6; }
.privacy-dismiss { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
.privacy-dismiss:focus-visible + .privacy-notice .privacy-button { outline:3px solid rgba(37,99,235,.28); outline-offset:3px; }
.privacy-dismiss:checked + .privacy-notice { display:none; }
.privacy-notice { position:fixed; left:50%; bottom:1rem; z-index:30; width:min(920px,calc(100% - 2rem)); transform:translateX(-50%); display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.85rem 1rem; border:1px solid #dbeafe; border-radius:.85rem; background:#fff; box-shadow:0 12px 32px rgba(15,23,42,.12); }
.privacy-copy { min-width:0; text-align:left; }
.privacy-copy strong { display:block; font-size:.78rem; }
.privacy-copy p { margin:.2rem 0 0; color:#64748b; font-size:.68rem; line-height:1.45; }
.privacy-copy a { color:#1d4ed8; font-weight:700; text-underline-offset:2px; }
.privacy-button { flex:0 0 auto; min-height:40px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; border:0; border-radius:.65rem; padding:.62rem .9rem; background:var(--blue); color:#fff; font-size:.72rem; font-weight:700; box-shadow:0 7px 18px rgba(37,99,235,.18); transition:transform .2s ease,background .2s ease; }
.privacy-button:hover { background:#1d4ed8; transform:translateY(-1px); }
.privacy-button:focus-visible, a:focus-visible { outline:3px solid rgba(37,99,235,.28); outline-offset:3px; }
@keyframes rise { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }
@media (max-width:600px) {
  .page { padding:1rem; }
  .brand-mark { width:54px; height:54px; border-radius:13px; }
  h1 { font-size:clamp(2.05rem,11.5vw,4rem); }
  .privacy-notice { align-items:stretch; flex-direction:column; gap:.65rem; padding:.8rem; }
  .privacy-button { width:100%; }
}
@media (max-height:620px) and (min-width:601px) {
  .brand-mark { width:54px; height:54px; }
  h1 { margin-top:1.1rem; font-size:clamp(2.25rem,9vh,4.7rem); }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; } }