/* Public landing page shown before sign-in: the Wilson shield, the story of the name, and this family's own lines.
   It sits above the auth gate (z-index 2000 on mobile) and is dismissed into the existing sign-in flow. */
.landing{
  position:fixed;
  inset:0;
  z-index:2100;
  overflow-y:auto;
  overscroll-behavior-y:contain;
  -webkit-overflow-scrolling:touch;
  color:#f1e7d0;
  background:
    radial-gradient(circle at 18% 12%,rgba(213,180,110,.10),transparent 32rem),
    radial-gradient(circle at 82% 88%,rgba(85,113,166,.10),transparent 30rem),
    #07090d;
  font:400 16px/1.65 system-ui,-apple-system,"Segoe UI",sans-serif;
}
.landing[hidden],body:not(.auth-locked) .landing{display:none}
.landing *,.landing *:before,.landing *:after{box-sizing:border-box}

.landing__inner{width:min(1120px,100%);margin:0 auto;padding:0 28px 72px}

.landing__top{
  position:sticky;top:0;z-index:2;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 0 22px;
  background:linear-gradient(180deg,#07090d 0%,#07090d 72%,rgba(7,9,13,0));
}
.landing__wordmark{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.landing__wordmark strong{display:block;font:500 17px/1.05 Georgia,"Times New Roman",serif;color:#f1e7d0}
.landing__wordmark small{display:block;margin-top:3px;color:#8e98a8;font-size:10px;text-transform:uppercase;letter-spacing:.16em}

.landing__enter{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:11px 18px;border:0;border-radius:999px;cursor:pointer;
  background:#d5b46e;color:#1a1408;
  font:750 13px/1 system-ui,-apple-system,sans-serif;letter-spacing:.02em;
  box-shadow:0 10px 28px rgba(213,180,110,.22);
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
}
.landing__enter:hover{background:#e6c886;transform:translateY(-1px);box-shadow:0 14px 34px rgba(213,180,110,.3)}
.landing__enter:focus-visible{outline:2px solid #f1e7d0;outline-offset:3px}
.landing__enter--ghost{background:rgba(255,255,255,.06);color:#f1e7d0;border:1px solid rgba(255,255,255,.14);box-shadow:none}
.landing__enter--ghost:hover{background:rgba(255,255,255,.1);box-shadow:none}

/* Hero */
.landing__hero{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:48px;align-items:center;
  padding:28px 0 56px;
}
.landing__shield{
  position:relative;
  aspect-ratio:1/1;
  border-radius:28px;
  overflow:hidden;
  border:1px solid rgba(213,180,110,.22);
  background:radial-gradient(circle at 50% 40%,#2b241d,#0b0d11 72%);
  box-shadow:0 40px 110px rgba(0,0,0,.55),0 0 0 8px rgba(213,180,110,.04);
}
.landing__shield{display:grid;place-items:center;align-content:center;gap:14px;padding:5%}
/* The crest photo is a 420px square of a round tartan seal, so it is shown as a medallion at native size
   rather than stretched across the frame. The 118% zoom crops the table edge, matching .brand-mark. */
.landing__seal{
  position:relative;width:min(100%,420px);aspect-ratio:1/1;border-radius:50%;overflow:hidden;
  border:1px solid rgba(213,180,110,.55);
  box-shadow:0 0 0 10px rgba(213,180,110,.06),0 0 0 11px rgba(213,180,110,.14),0 30px 70px rgba(0,0,0,.6);
}
.landing__seal img{display:block;width:100%;height:100%;object-fit:cover;transform:translateY(-1%) scale(1.18)}
.landing__seal:after{content:"";position:absolute;inset:6px;border:1px solid rgba(255,255,255,.18);border-radius:50%;pointer-events:none}
.landing__shield-caption{margin:0;color:#8e98a8;font:500 11px/1.3 system-ui,-apple-system,sans-serif;letter-spacing:.16em;text-transform:uppercase;text-align:center}
.landing__shield--missing .landing__seal,.landing__shield--missing .landing__shield-caption{display:none}
.landing__shield--missing:after{
  content:"Semel et Semper";
  position:absolute;inset:0;display:grid;place-items:center;
  color:#d5b46e;font:500 clamp(22px,4vw,34px)/1.1 Georgia,"Times New Roman",serif;letter-spacing:.06em;
}
.landing__shield:before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 70%,rgba(7,9,13,.4));
}
.landing__eyebrow{margin:0 0 14px;color:#d5b46e;font:700 11px/1.2 system-ui,-apple-system,sans-serif;letter-spacing:.18em;text-transform:uppercase}
.landing__title{margin:0;font:500 clamp(40px,6vw,72px)/.96 Georgia,"Times New Roman",serif;letter-spacing:-.035em;color:#f8f1e1}
.landing__title em{font-style:italic;color:#d5b46e}
.landing__motto{margin:20px 0 0;color:#d5b46e;font:italic 500 18px/1.4 Georgia,"Times New Roman",serif;letter-spacing:.04em}
.landing__motto span{color:#8e98a8;font-style:normal;font-family:system-ui,-apple-system,sans-serif;font-size:13px;letter-spacing:.02em}
.landing__lede{margin:18px 0 0;max-width:52ch;color:#bbc3cf;font-size:17px}
.landing__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.landing__fineprint{margin:16px 0 0;color:#707b8d;font-size:12px}

/* Sections */
.landing__section{padding:44px 0 8px;border-top:1px solid rgba(255,255,255,.08)}
.landing__section h2{margin:0 0 6px;font:500 clamp(26px,3.4vw,36px)/1.08 Georgia,"Times New Roman",serif;letter-spacing:-.02em;color:#f8f1e1}
.landing__section > p{margin:12px 0 0;max-width:68ch;color:#bbc3cf}
.landing__kicker{margin:0 0 10px;color:#d5b46e;font:700 11px/1.2 system-ui,-apple-system,sans-serif;letter-spacing:.18em;text-transform:uppercase}

.landing__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:26px 0 0;padding:0;list-style:none}
.landing__facts li{
  padding:20px 20px 22px;border:1px solid rgba(255,255,255,.09);border-radius:20px;
  background:linear-gradient(180deg,rgba(18,22,31,.85),rgba(9,12,18,.9));
}
.landing__facts strong{display:block;margin-bottom:8px;font:500 19px/1.2 Georgia,"Times New Roman",serif;color:#f1e7d0}
.landing__facts p{margin:0;color:#aeb7c7;font-size:14.5px;line-height:1.6}

.landing__arms{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:26px 0 0;padding:0;list-style:none}
.landing__arms li{padding:0 0 18px;overflow:hidden;border:1px solid rgba(213,180,110,.16);border-radius:16px;background:rgba(213,180,110,.05)}
.landing__arms-figure{margin:0 0 14px;border-bottom:1px solid rgba(213,180,110,.14);background:linear-gradient(180deg,rgba(7,9,13,.55),rgba(7,9,13,.2))}
.landing__arms-art{display:block;width:100%;height:auto;aspect-ratio:240/150}
.landing__arms b{display:block;padding:0 18px;color:#d5b46e;font:700 11px/1.2 system-ui,-apple-system,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.landing__arms span{display:block;margin-top:8px;padding:0 18px;color:#e6dcc4;font-size:14.5px;line-height:1.55}

.landing__lines{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:26px}
.landing__line{
  padding:24px;border:1px solid rgba(255,255,255,.09);border-radius:22px;
  background:linear-gradient(180deg,rgba(18,22,31,.9),rgba(9,12,18,.95));
}
.landing__line h3{margin:0;font:500 22px/1.15 Georgia,"Times New Roman",serif;color:#f1e7d0}
.landing__line .landing__where,.landing__person .landing__where{display:block;margin-top:4px;color:#8e98a8;font-size:12px;text-transform:uppercase;letter-spacing:.14em}
.landing__line p{margin:14px 0 0;color:#bbc3cf;font-size:15px}
.landing__line ul{margin:14px 0 0;padding-left:18px;color:#aeb7c7;font-size:14.5px}
.landing__line li{margin-top:6px}

/* Notable members: a sideways-scrolling gallery with snap points, arrow buttons, and native swipe or arrow-key scrolling. */
.landing__people{margin-top:40px}
.landing__people-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.landing__people-head .landing__kicker{margin-bottom:6px}
.landing__people-head h3{margin:0;font:500 clamp(22px,2.8vw,28px)/1.1 Georgia,"Times New Roman",serif;letter-spacing:-.01em;color:#f8f1e1}
.landing__people-nav{display:flex;gap:8px;flex:0 0 auto}
.landing__people-btn{
  width:42px;height:42px;border-radius:50%;cursor:pointer;display:grid;place-items:center;
  border:1px solid rgba(213,180,110,.32);background:rgba(213,180,110,.06);color:#d5b46e;font-size:18px;line-height:1;
  transition:background .15s ease,transform .15s ease,opacity .15s ease;
}
.landing__people-btn:hover{background:rgba(213,180,110,.16);transform:translateY(-1px)}
.landing__people-btn:disabled{opacity:.3;cursor:default;transform:none}
.landing__people-btn:focus-visible{outline:2px solid #f1e7d0;outline-offset:3px}
.landing__people-track{
  display:flex;gap:16px;margin:20px 0 0;padding:6px 0 18px;list-style:none;
  overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(213,180,110,.35) transparent;
}
.landing__people-track::-webkit-scrollbar{height:6px}
.landing__people-track::-webkit-scrollbar-thumb{background:rgba(213,180,110,.3);border-radius:999px}
.landing__people-track:focus-visible{outline:2px solid rgba(241,231,208,.6);outline-offset:4px;border-radius:12px}
.landing__person{
  flex:0 0 340px;scroll-snap-align:start;display:flex;flex-direction:column;
  padding:22px 22px 24px;border:1px solid rgba(255,255,255,.09);border-radius:22px;
  background:linear-gradient(180deg,rgba(18,22,31,.9),rgba(9,12,18,.95));
}
.landing__person-mark{
  width:52px;height:52px;margin-bottom:14px;border-radius:50%;display:grid;place-items:center;
  border:1px solid rgba(213,180,110,.4);background:radial-gradient(circle at 50% 35%,rgba(213,180,110,.22),rgba(213,180,110,.04));
  color:#d5b46e;font:500 17px/1 Georgia,"Times New Roman",serif;letter-spacing:.04em;
}
.landing__person-era{color:#d5b46e;font:700 11px/1.2 system-ui,-apple-system,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.landing__person h4{margin:6px 0 0;font:500 21px/1.15 Georgia,"Times New Roman",serif;color:#f1e7d0}
.landing__person p{margin:12px 0 0;color:#bbc3cf;font-size:14.5px;line-height:1.6}

.landing__caveat{margin:20px 0 0;color:#8e98a8;font-size:13px;max-width:72ch}
.landing__caveat a{color:#d5b46e}

.landing__footer{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;
  margin-top:56px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08);color:#707b8d;font-size:12.5px;
}

@media(max-width:900px){
  .landing__hero{grid-template-columns:1fr;gap:28px;padding-top:12px}
  .landing__shield{max-width:520px;margin:0 auto;width:100%}
  .landing__facts,.landing__arms,.landing__lines{grid-template-columns:1fr 1fr}
  .landing__person{flex-basis:min(320px,78vw)}
}
@media(max-width:620px){
  .landing__inner{padding:0 16px max(56px,env(safe-area-inset-bottom))}
  .landing__top{padding:max(12px,env(safe-area-inset-top)) 0 12px}
  .landing__top .landing__enter{padding:10px 14px;font-size:12px}
  .landing__wordmark small{display:none}
  .landing__shield{border-radius:22px}
  .landing__title{font-size:clamp(36px,11vw,46px)}
  .landing__lede{font-size:16px}
  .landing__cta .landing__enter{width:100%}
  .landing__facts,.landing__arms,.landing__lines{grid-template-columns:1fr}
  .landing__section{padding-top:34px}
  .landing__shield{padding:6%}
  .landing__people-head{align-items:flex-start;flex-direction:column}
  .landing__people-track{margin-inline:-16px;padding-inline:16px;scroll-padding-inline:16px}
}
@media(prefers-reduced-motion:reduce){.landing__enter,.landing__people-btn{transition:none}}
