:root { --accent:#b0a7ff; --panel:#111730; --selected:#222452; }
.page { grid-template-columns:minmax(0,1fr); }
[hidden] { display:none !important; }
.skip-link { position:absolute; top:.75rem; left:.75rem; z-index:10; padding:.75rem 1rem; background:var(--white); color:var(--ink); transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.site-nav a { padding:.3rem .05rem; border-bottom:2px solid transparent; }
.site-nav a[aria-current="page"] { border-bottom-color:var(--accent); color:var(--white); }
.site-nav a:last-child { color:var(--white); }
.hero { min-height: min(38rem, 77svh); }
.hero h1 { font-size:clamp(2.6rem,5.4vw,6.8rem); }
.wide-section { border-top:1px solid var(--line); padding-block:clamp(3.2rem,6.3vw,6rem); }
.display-heading,.page-heading h1 {
  max-width:100%; margin:0;
  font-size:clamp(2.4rem,5.3vw,5.6rem); line-height:1.03;
  letter-spacing:-.067em;
}
.lede { margin:.9rem 0 0; max-width:52rem; color:var(--soft); font-size:clamp(1rem,1.6vw,1.22rem); line-height:1.5; }
.text-link { color:var(--accent); font-weight:650; }
.text-link:hover,.journey-controls button:hover { color:var(--white); }
.process {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:.8rem;
  margin-top:1.65rem;
}
.process-step {
  position:relative; grid-row:1; grid-column:span 2;
  min-width:0; min-height:6.3rem; display:flex; gap:.8rem; align-items:flex-start;
  padding:1.15rem 1.05rem; color:var(--white); text-align:left;
  border:1px solid var(--line); border-radius:4px; background:var(--panel); cursor:pointer;
  transition:background .22s,border-color .22s,opacity .32s,transform .32s;
}
.process-step:not(:last-of-type) { margin-right:1.2rem; }
.process-step:not(:last-of-type)::after {
  content:"→"; position:absolute; right:-1.92rem; top:50%; translate:0 -50%;
  font-size:1.22rem; color:var(--soft);
}
.process-step.is-preview::after,.process-step[aria-expanded="true"]::after { color:var(--accent); }
.process-step strong { display:block; font-size:clamp(1.08rem,2vw,1.55rem); line-height:1.12; letter-spacing:-.025em; }
.step-copy > span { display:block; margin-top:.45rem; color:var(--soft); font-size:.88rem; }
.step-dot { margin-top:.42rem; flex:none; width:.56rem; height:.56rem; border-radius:50%; background:#525b85; }
.process-step[aria-expanded="true"],.process-step.is-preview { border-color:var(--accent); background:var(--selected); }
.process-step[aria-expanded="true"] .step-dot,.process-step.is-preview .step-dot { background:var(--accent); }
.step-toggle { display:none; }
.process-feedback {
  grid-column:1/-1; grid-row:2; display:grid; grid-template-columns:1fr 1fr; gap:1.5rem;
  padding:0 16.667%; margin-top:-.8rem; opacity:1; transition:opacity .35s;
}
.process-feedback button {
  display:flex; gap:.45rem; align-items:center; justify-content:center;
  color:var(--accent); background:transparent; border:1px dashed #746bba;
  border-top:0; border-radius:0 0 4px 4px;
  min-height:2.5rem; padding:.55rem .38rem .25rem; cursor:pointer; font-size:.78rem;
  transition:background .22s,border-color .22s;
}
.process-feedback button { position:relative; }
.process-feedback button::before {
  content:"↑"; position:absolute; left:-.4rem; top:-.35rem;
  color:var(--accent); background:var(--ink); font-size:.8rem; line-height:1;
}
.process-feedback button span { font-size:1.2rem; }
.process-feedback button:hover,.process-feedback button.is-preview { background:#242450; border-color:var(--accent); }
.process-detail {
  grid-column:1/-1; display:grid; grid-template-columns:minmax(8rem,1fr) minmax(0,4fr);
  gap:1rem; padding:1.05rem 1.2rem; background:var(--panel); border:1px solid var(--line); border-radius:4px;
}
.process-detail h3,.process-detail p { margin:0; }
.process-detail h3 { font-size:1.03rem; }
.process-detail p { color:var(--soft); }
.process-detail .feedback-copy { color:var(--accent); font-size:.86rem; margin-top:.5rem; }
.process-preview { grid-column:1/-1; min-height:1.4em; color:var(--accent); font-size:.83rem; }
.process[data-reveal="waiting"] .process-step { opacity:.62; transform:translateY(8px); }
.process[data-reveal="waiting"] .process-feedback { opacity:.62; }
.process[data-reveal="playing"] .process-step { transition-delay:calc(var(--order) * 90ms); }
.process[data-reveal="playing"] .process-feedback { transition-delay:260ms; }
.film-player { position:relative; border:1px solid var(--line); border-radius:4px; overflow:hidden; background:#0c1021; }
.film-caption { margin:.85rem 0 0; color:var(--soft); font-size:clamp(.93rem,1.2vw,1.05rem); line-height:1.55; }
.film-player video { display:block; width:100%; aspect-ratio:16/9; object-fit:contain; background:#0c1021; }
.film-play {
  position:absolute; top:0; left:0; width:100%; aspect-ratio:16/9;
  display:grid; place-items:center; color:var(--white); background:#080a161c; border:0; cursor:pointer;
}
.film-play span { display:grid; place-items:center; width:3.7rem; height:3.7rem; border-radius:50%; background:#141a3b; }
.film-play:focus-visible { outline-offset:-5px; }
.film-controls { display:flex; align-items:center; gap:.65rem; padding:.3rem .7rem; }
.film-toggle { color:var(--white); background:none; border:0; min-width:2rem; min-height:2.5rem; cursor:pointer; }
.film-progress { min-width:0; flex:1; accent-color:var(--accent); cursor:pointer; }
.film-time { white-space:nowrap; font-size:.75rem; color:var(--soft); font-variant-numeric:tabular-nums; }
.film-status { margin:0; color:var(--soft); font-size:.83rem; padding:.7rem .9rem; }
.film-status:empty { display:none; }
.page-heading { padding-block:clamp(2.8rem,6vw,5.7rem) clamp(1.7rem,3.2vw,3rem); }
.client-heading { background:linear-gradient(100deg,#10162b,#1a1940); margin-inline:calc(-1 * var(--pad)); padding-inline:var(--pad); }
.client-directory { padding-block:1.5rem 4rem; }
.client-folder {
  margin-bottom:.65rem; border:1px solid var(--line); border-radius:5px;
  background:#0c1021; scroll-margin-block-start:1rem;
}
.client-row {
  display:grid; grid-template-columns:clamp(4.5rem,10vw,8rem) minmax(0,1fr) auto;
  align-items:center; gap:clamp(.8rem,2vw,1.6rem); padding:clamp(.7rem,1.65vw,1.2rem);
  border-radius:4px; cursor:pointer; list-style:none; transition:background .18s;
}
.client-row::-webkit-details-marker { display:none; }
.client-row:hover,.client-row:focus-visible,.client-folder[open] > .client-row { background:var(--selected); }
.client-folder[open] { border-color:#655c9d; }
.client-logo {
  display:grid; place-items:center; height:clamp(2.75rem,5vw,3.7rem);
  padding:.35rem .55rem; border-radius:3px; background:#fff;
}
.client-logo img { display:block; width:100%; height:100%; min-height:0; object-fit:contain; }
.client-row strong { display:block; font-size:clamp(1.22rem,2.6vw,1.85rem); letter-spacing:-.03em; }
.client-row small { color:var(--soft); display:block; margin-top:.18rem; font-size:clamp(.8rem,1.5vw,.95rem); }
.client-folder-icon {
  display:grid; place-items:center; width:1.6rem; height:1.15rem; margin-top:.22rem;
  border:1px solid currentColor; border-radius:3px; color:var(--accent); position:relative;
}
.client-folder-icon::before {
  content:""; position:absolute; width:.68rem; height:.27rem; left:0; bottom:100%;
  border:1px solid currentColor; border-bottom:0; border-radius:2px 3px 0 0;
}
.client-folder-icon::after { content:"+"; font-size:.85rem; line-height:1; }
.client-folder[open] .client-folder-icon::after { content:"−"; }
.client-panel {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:center; gap:clamp(1.2rem,4vw,4rem); padding:clamp(1.15rem,3.5vw,3rem);
}
.client-copy h2 { margin:0 0 .65rem; font-size:clamp(1.3rem,2.6vw,2rem); letter-spacing:-.035em; }
.client-copy p { margin:0; max-width:39ch; color:var(--soft); line-height:1.65; }
.client-source { display:inline-block; margin-top:.8rem; }
.client-photo { margin:0; }
.client-photo img {
  display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:contain;
  border:1px solid var(--line); border-radius:4px; background:var(--ink);
}
.client-photo figcaption,.map-caption { color:var(--soft); font-size:.75rem; margin:.45rem 0 0; }
.client-photo a { text-decoration:underline; text-underline-offset:.15em; }
.ceo-section { display:grid; grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr); gap:clamp(1.5rem,4.6vw,4.5rem); align-items:start; padding-block:0 clamp(3rem,6vw,5rem); }
.ceo-portrait { background:linear-gradient(140deg,#171c37,#20294b); }
.ceo-portrait img { display:block; width:100%; height:auto; max-height:26rem; object-fit:contain; object-position:center bottom; }
.ceo-copy { padding-top:.4rem; }
.ceo-copy h2 { margin:0; font-size:clamp(2rem,4.3vw,4rem); line-height:1.05; letter-spacing:-.052em; }
.ceo-copy blockquote { margin:1.05rem 0 1.25rem; max-width:43rem; font-size:clamp(1.13rem,2vw,1.55rem); font-weight:550; line-height:1.45; }
.ceo-message { max-width:47rem; color:var(--soft); }
.ceo-message summary { color:var(--accent); font-weight:650; width:fit-content; cursor:pointer; padding:.55rem 0; }
.ceo-message p { line-height:1.66; }
.journey { margin-top:1.55rem; }
.journey-grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:1rem; }

.map-shell { position:relative; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:#0a1020; }
.map-canvas { width:100%; height:clamp(23rem,36vw,32rem); }
.map-reset { position:absolute; left:1rem; top:1rem; padding:.55rem .8rem; border:1px solid var(--line); border-radius:2rem; background:#111730c9; backdrop-filter:blur(18px); cursor:pointer; }
.map-loading { position:absolute; left:1rem; bottom:2rem; right:1rem; padding:.7rem; background:#111730e8; border-radius:8px; font-size:.85rem; pointer-events:none; }
.journey-marker { border:0; background:none; padding:0; width:1px; height:1px; opacity:0; pointer-events:none; transition:opacity .45s; color:var(--white); }
.journey-marker.is-visible { opacity:1; pointer-events:auto; }
.journey-marker i { display:block; position:absolute; width:14px; height:14px; left:-7px; top:-7px; border:2px solid #eeeaff; border-radius:50%; background:#8275ef; box-shadow:0 0 0 6px #b0a7ff30,0 0 22px #887aff80; }
.journey-marker span { position:absolute; left:0; bottom:18px; transform:translateX(-50%); white-space:nowrap; padding:.45rem .65rem; border:1px solid #ffffff30; border-radius:8px; background:#111730d9; backdrop-filter:blur(16px); font-size:.74rem; box-shadow:0 5px 22px #0004; }
.journey-marker:hover span { background:#343465e8; }
.journey-address { font-size:.88rem; color:var(--soft); line-height:1.6; }
.journey-address a { color:var(--accent); }
.journey-detail { background:var(--panel); border:1px solid var(--line); border-radius:4px; padding:clamp(1rem,2.2vw,1.8rem); align-self:start; }
.journey-milestone + .journey-milestone:not([hidden]) { border-top:1px solid var(--line); padding-top:1rem; margin-top:1rem; }
.journey-milestone h3 { margin:0; font-size:clamp(1.65rem,3vw,2.6rem); line-height:1.06; letter-spacing:-.045em; }
.journey-milestone > p:last-child { margin:.8rem 0 0; color:var(--soft); line-height:1.55; }
.journey-controls { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.4rem; margin-top:1rem; }
.journey-controls button { color:var(--accent); border:0; background:none; padding:.45rem .1rem; cursor:pointer; }
.journey-controls button:disabled { color:#7f89ab; cursor:default; }
.journey-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.4rem; margin-top:1rem; }
.journey-tabs button {
  display:flex; flex-wrap:wrap; gap:.25rem .65rem; align-items:center; min-height:3.4rem;
  border:1px solid var(--line); border-radius:4px; background:var(--panel); padding:.65rem .7rem;
  text-align:left; cursor:pointer;
}
.journey-tabs button[aria-selected="true"] { border-color:var(--accent); background:var(--selected); }
.journey-tabs button span { color:var(--soft); font-size:.82rem; }
@media (max-width:760px) {
  .hero { min-height:auto; }
  .hero h1 { font-size:clamp(2.35rem,9.4vw,4.8rem); }
  .ceo-section,.journey-grid { grid-template-columns:1fr; }
  .client-panel { grid-template-columns:1fr; }
  .ceo-portrait { width:min(100%,22rem); }
  .process { grid-template-columns:1fr; gap:.55rem; }
  .process-step { grid-row:auto; grid-column:1; min-height:3.4rem; align-items:center; padding:.9rem; }
  .process-step:not(:last-of-type) { margin-right:0; }
  .process-feedback,.process-preview { display:none; }
  .process-step:not(:first-of-type) { margin-top:1.05rem; }
  .process-step:not(:last-of-type)::after { content:none; }
  .process-step:not(:first-of-type)::before {
    content:"↓"; position:absolute; top:-1.64rem; left:.95rem; color:var(--accent); font-size:1rem;
  }
  .step-dot { margin:0; }
  .step-copy > span { display:none; }
  .step-toggle { display:block; margin-left:auto; color:var(--accent); }
  .step-toggle::before { content:"+"; }
  .process-step[aria-expanded="true"] .step-toggle::before { content:"−"; }
  .process-detail { display:block; padding:.85rem 1rem 1rem; margin-bottom:.5rem; }
  .process-detail h3 { display:none; }
  .journey-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:570px) {
  .topbar { flex-wrap:wrap; gap:0; padding-top:.5rem; }
  .site-nav { flex:1 0 100%; justify-content:space-between; gap:.45rem; font-size:clamp(.69rem,2.8vw,.85rem); }
  .map-pin span { font-size:.63rem; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

/* Shared motion and translucent surfaces. */
html { scroll-behavior:smooth; }
.client-folder,.journey-detail,.journey-tabs button,.process-step,.process-detail {
  border-radius:12px; background-color:#111730b8; backdrop-filter:blur(18px);
  transition:background-color .35s,border-color .35s,box-shadow .35s;
}
.client-row { border-radius:11px; }
.client-folder[open],.journey-tabs button[aria-selected="true"] { box-shadow:inset 0 1px 0 #ffffff13,0 10px 35px #0002; }
.process-detail:not([hidden]) { animation:panel-arrive .42s cubic-bezier(.22,1,.36,1); }
@keyframes panel-arrive { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

.journey-marker:not(.is-visible) { visibility:hidden; }
.map-canvas .maplibregl-canvas { filter:invert(.92) hue-rotate(180deg) saturate(.45) brightness(.85); }
.map-canvas .maplibregl-ctrl-group { background:#151d35e8; backdrop-filter:blur(18px); border:1px solid #ffffff24; border-radius:10px; overflow:hidden; }
.map-canvas .maplibregl-ctrl-icon { filter:invert(1); }
.map-canvas .maplibregl-ctrl-attrib { background:#111730d9; color:#c5cbe3; }
.map-canvas .maplibregl-ctrl-attrib a { color:#c5cbe3; }
@view-transition { navigation:auto; }
::view-transition-old(root),::view-transition-new(root) { animation-duration:.3s; animation-timing-function:cubic-bezier(.22,1,.36,1); }
.journey-milestone > p:not(.section-label) { color:var(--soft); line-height:1.55; }
@media (prefers-reduced-motion:reduce) {
  ::view-transition-old(root),::view-transition-new(root) { animation:none; }
}

/* Facility photography and the next layer of project information. */
:root { --royal:#213dc7; --accent:#a6baff; --selected:#172956; }
.cta { border-radius:9px; background:linear-gradient(135deg,#2949da,#1935ac); transition:background .3s,box-shadow .3s,transform .3s; }
.cta:hover { background:#3154e3; box-shadow:0 8px 32px #193ab135; transform:translateY(-2px); }
.section-label { color:var(--accent); }
.client-heading { background:linear-gradient(100deg,#10162b,#101e46); }
.section-heading-row { display:flex; align-items:end; justify-content:space-between; gap:2rem; }
.section-heading-row .lede { max-width:23rem; }
.facility-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.1rem; margin-top:2rem; }
.facility-grid-about { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem 1.2rem; }
.facility-card { margin:0; min-width:0; }
.photo-open { width:100%; position:relative; display:block; overflow:hidden; padding:0; border:1px solid var(--line); border-radius:15px; background:#0a1020; cursor:zoom-in; }
.photo-open img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; transition:transform .8s cubic-bezier(.22,1,.36,1); }
.photo-open:hover img { transform:scale(1.035); }
.photo-expand { position:absolute; bottom:.8rem; right:.8rem; width:2.4rem; height:2.4rem; display:grid; place-items:center; border:1px solid #ffffff35; border-radius:50%; background:#10182c80; backdrop-filter:blur(14px); }
.facility-card h3 { font-size:1.1rem; margin:1rem 0 .3rem; letter-spacing:-.025em; }
.facility-card p { margin:0; color:var(--soft); font-size:.9rem; line-height:1.55; }
.facility-link { display:inline-flex; gap:.6rem; padding:.6rem 0; margin-top:1.4rem; }
.photo-dialog { width:min(95vw,80rem); max-width:none; max-height:94svh; padding:3.5rem 1rem 1rem; border:1px solid #ffffff35; border-radius:20px; color:var(--white); background:#0d1427ed; backdrop-filter:blur(24px); box-shadow:0 25px 100px #0009; }
.photo-dialog::backdrop { background:#030715d9; backdrop-filter:blur(18px); }
.photo-dialog img { display:block; width:100%; max-height:75svh; object-fit:contain; border-radius:10px; }
.photo-dialog p { color:var(--soft); margin:.8rem .3rem 0; font-size:.88rem; }
.photo-close { position:absolute; right:1rem; top:.5rem; border:0; background:none; padding:.6rem; min-height:44px; cursor:pointer; }
.stage-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem; margin:1.3rem 0; }
.stage-facts dt { font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; font-weight:650; color:var(--accent); margin-bottom:.4rem; }
.stage-facts dd { margin:0; color:var(--soft); font-size:.9rem; line-height:1.6; }
.faq-list { border-top:1px solid var(--line); }
.faq-item { border-bottom:1px solid var(--line); }
.faq-item summary { position:relative; padding:1.35rem 2rem 1.35rem 0; cursor:pointer; list-style:none; font-size:1.1rem; font-weight:550; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:'+'; position:absolute; right:.3rem; color:var(--accent); }
.faq-item[open] summary::after { content:'−'; }
.faq-item p { margin:0 1.5rem 1.5rem 0; color:var(--soft); line-height:1.7; }
.text-button { background:none; border:0; padding:.65rem 0; color:var(--accent); cursor:pointer; font-weight:600; min-height:44px; }
.film-mute,.film-fullscreen { background:none; border:0; color:var(--soft); min-height:44px; min-width:44px; cursor:pointer; font-size:.8rem; }
.film-fullscreen { font-size:1.4rem; }
.film-player:fullscreen { display:flex; flex-direction:column; justify-content:center; background:#050811; }
.film-player:fullscreen video { max-height:calc(100svh - 4rem); }
.film-player:fullscreen .film-play { height:calc(100% - 4rem); aspect-ratio:auto; }
.film-player:fullscreen .film-controls { flex:none; }
@media(max-width:900px) { .section-heading-row { display:block; } .section-heading-row .lede { max-width:36rem; } .stage-facts { grid-template-columns:1fr; gap:.85rem; } }
@media(max-width:760px) { .facility-grid { grid-template-columns:1fr; gap:1.8rem; } .photo-open img { aspect-ratio:3/2; } }
@media(max-width:430px) { .film-controls { gap:.25rem; padding-inline:.3rem; } .film-time { font-size:.65rem; } .film-mute { font-size:.7rem; } }
@media(prefers-reduced-motion:reduce) { .photo-open:hover img,.cta:hover { transform:none; } }

/* A compact company film beside its summary, after the About journey. */
.film-aside { display:grid; grid-template-columns:minmax(0,24rem) minmax(0,1fr); align-items:center; gap:clamp(1.5rem,4vw,4rem); }
.film-aside .film-player { width:100%; border-radius:12px; }
.film-summary { max-width:36rem; }
.film-summary .section-label { margin-bottom:.7rem; }
.film-summary h2 { margin:0; font-size:clamp(1.6rem,2.8vw,2.6rem); line-height:1.1; letter-spacing:-.045em; }
.film-summary > p:not(.section-label) { color:var(--soft); margin:.8rem 0 0; line-height:1.65; }
.film-aside .film-controls { gap:.25rem; padding-inline:.3rem; }
.film-aside .film-time { font-size:.65rem; }
.film-aside .film-mute { font-size:.7rem; }
.film-aside .film-play span { width:3rem; height:3rem; }
@media(max-width:680px) {
  .film-aside { grid-template-columns:minmax(0,1fr); gap:1.35rem; }
  .film-aside .film-player { max-width:24rem; }
}
.contact-invitation { display:flex; justify-content:space-between; align-items:center; gap:2rem; }
.contact-invitation .display-heading { font-size:clamp(2.3rem,4.2vw,4.6rem); }
.contact-invitation .cta { flex:none; margin-top:0; }
@media(max-width:760px) { .contact-invitation { align-items:start; flex-direction:column; } }

/* ---- Launch additions: consent banner, footer legal links, legal pages, 404 ---- */
.picb { position:fixed; z-index:50; left:max(1rem,env(safe-area-inset-left)); right:max(1rem,env(safe-area-inset-right)); bottom:max(1rem,env(safe-area-inset-bottom)); max-width:34rem; margin-left:auto; padding:1rem 1.1rem; display:grid; gap:.8rem; background:#0b1230f2; border:1px solid #8593ff42; border-radius:10px; box-shadow:0 18px 50px #0008; color:var(--white); font-size:.88rem; line-height:1.55; backdrop-filter:blur(10px); }
.picb[hidden] { display:none; }
.picb p { margin:0; color:var(--soft); }
.picb a { color:#c9d0ff; text-decoration:underline; text-underline-offset:3px; }
.picb-actions { display:flex; gap:.6rem; flex-wrap:wrap; }
.picb-actions button { min-height:44px; padding:.55rem 1.2rem; border-radius:2px; cursor:pointer; font-weight:650; }
.picb-accept { background:var(--royal); border:1px solid #8593ff42; }
.picb-accept:hover { background:#344cec; }
.picb-decline { background:transparent; border:1px solid var(--line); }
.picb-decline:hover { border-color:#ffffff55; }
.footer-legal { display:flex; flex-wrap:wrap; gap:.4rem 1.2rem; }
.footer-legal a, .footer-legal button { color:var(--soft); }
.footer-legal button { background:none; border:0; padding:0; font:inherit; font-size:inherit; cursor:pointer; }
.footer-legal a:hover, .footer-legal button:hover { color:#bec7ff; }
.hp-field { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.inline-link { color:#c9d0ff; text-decoration:underline; text-underline-offset:3px; }
.form-status[data-kind="ok"] { color:#9ff0c2; }
.form-status[data-kind="warn"] { color:#ffd38a; }
.legal { max-width:46rem; padding-bottom:clamp(3rem,6vw,6rem); }
.legal .updated { color:var(--soft); font-size:.88rem; margin:.9rem 0 0; }
.legal h2 { margin:2.4rem 0 .6rem; font-size:clamp(1.25rem,2vw,1.6rem); letter-spacing:-.03em; scroll-margin-top:1.5rem; }
.legal h3 { margin:1.4rem 0 .3rem; font-size:1.02rem; }
.legal p, .legal li { color:var(--soft); line-height:1.7; }
.legal ul { padding-left:1.2rem; }
.legal a { color:#c9d0ff; text-decoration:underline; text-underline-offset:3px; }
.legal strong { color:var(--white); font-weight:600; }
.legal .text-button { padding-left:0; }
.not-found { padding-block:clamp(3rem,8vw,7rem); max-width:44rem; }
.not-found h1 { width:auto; font-size:clamp(2.6rem,6vw,5.4rem); line-height:1.02; letter-spacing:-.06em; }
.not-found .lede { max-width:36rem; }
.not-found-links { display:grid; gap:.2rem; margin:2rem 0 0; padding:0; list-style:none; border-top:1px solid var(--line); }
.not-found-links li { border-bottom:1px solid var(--line); }
.not-found-links a { display:flex; justify-content:space-between; gap:1rem; padding:1rem 0; font-weight:600; }
.not-found-links a span { color:var(--soft); font-weight:400; }
.not-found-links a:hover { color:#bec7ff; }
@media(max-width:560px) { .not-found-links a { flex-direction:column; gap:.15rem; } }
