/* Cork to Copper. Dark by default. Grade marks and edges are the one bold idea:
   every person and link is drawn in the state of its evidence. */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
  color-scheme:dark;
  --bg:#0a0a0a; --bg-2:#141414; --bg-3:#1d1c1a;
  --ink:#f5f0e8; --ink-2:#d8d2c6; --ink-3:#aea89b;
  --cork:#3f9e6c; --copper:#b87333; --copper-ink:#e2965a;
  --patina:#5d9d8c; --patina-ink:#8cc7b6;
  --rule:rgba(184,115,51,.28); --rule-soft:rgba(245,240,232,.13);
  --chalk:rgba(245,240,232,.55);
  --tint-confirmed:rgba(93,157,140,.13); --tint-probable:rgba(184,115,51,.11);
  --on-copper:#160c03;
  --map-sea:#0f1718; --map-land:#1f140a; --map-edge:rgba(184,115,51,.38); --map-grid:rgba(245,240,232,.05); --map-label:#efe9dd; --map-faint:rgba(245,240,232,.66);
  --scrim:rgba(0,0,0,.62);
  --nav-solid:#0a0a0a;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --display:'Playfair Display',Georgia,serif;
  --uncial:'Uncial Antiqua','Playfair Display',Georgia,serif;
}
html[data-theme="light"]{
  color-scheme:light;
  --bg:#f2ede4; --bg-2:#e9e3d7; --bg-3:#f9f6ef;
  --ink:#1a1712; --ink-2:#37322a; --ink-3:#5c5548;
  --cork:#1b5e3b; --copper:#9e5f1e; --copper-ink:#84490f;
  --patina:#2f7364; --patina-ink:#1f5c4f;
  --rule:rgba(132,73,15,.32); --rule-soft:rgba(26,23,18,.15);
  --chalk:rgba(26,23,18,.5);
  --tint-confirmed:rgba(47,115,100,.1); --tint-probable:rgba(158,95,30,.09);
  --on-copper:#fff8ee;
  --map-sea:#e4dece; --map-land:#cfc4ab; --map-edge:rgba(132,73,15,.5); --map-grid:rgba(26,23,18,.06); --map-label:#231e16; --map-faint:rgba(26,23,18,.72);
  --scrim:rgba(40,32,20,.45);
  --nav-solid:#f2ede4;
}

html{overflow-x:hidden;-webkit-text-size-adjust:100%;scroll-padding-top:4rem}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{background:var(--bg);color:var(--ink);font-family:var(--serif);font-size:1.3125rem;font-weight:500;line-height:1.65;overflow-x:hidden;font-variant-numeric:lining-nums}
html.panel-open,html.panel-open body{overflow:hidden}
img{max-width:100%}
a{color:inherit}
[hidden]{display:none!important}
:focus{outline:none}
:focus-visible{outline:3px solid var(--copper-ink);outline-offset:3px;border-radius:2px}
.skip{position:fixed;left:1rem;top:-5rem;z-index:20000;background:var(--copper-ink);color:var(--on-copper);padding:.7rem 1.1rem;font-weight:600;text-decoration:none;border-radius:3px}
.skip:focus{top:1rem}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cork{color:var(--cork)} .copper{color:var(--copper-ink)}

/* Grain, desktop only: costs scroll smoothness on phones. */
@media (min-width:900px){body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;z-index:500}}

/* ─── Gate ─── */
html.gate-passed .gate{display:none}
.gate{position:fixed;inset:0;z-index:10000;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1.5rem;overflow-y:auto;transition:opacity .7s ease,visibility .7s}
.gate.leaving{opacity:0;visibility:hidden}
.ornament{color:var(--copper);font-size:1.5rem;letter-spacing:.5em;margin:0 0 1.5rem .5em}
.gate-title{font-family:var(--uncial);font-size:clamp(2.6rem,10vw,5rem);line-height:1.1;margin-bottom:.6rem}
.gate-sub{font-style:italic;color:var(--ink-2);margin-bottom:2rem;max-width:30ch}
.gate form{display:flex;flex-direction:column;align-items:stretch;gap:.75rem;width:min(21rem,100%)}
.gate label{font-size:1.2rem;font-weight:600;color:var(--ink)}
.gate input{background:var(--bg-2);border:1.5px solid var(--copper);border-radius:3px;color:var(--ink);font:500 1.35rem var(--serif);padding:.7rem 1rem;text-align:center;min-height:54px}
.gate input::placeholder{color:var(--ink-3);opacity:1}
.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--copper-ink);color:var(--on-copper);border:0;border-radius:3px;font:600 1.3rem var(--serif);padding:.6rem 1.5rem;min-height:54px;cursor:pointer;text-decoration:none}
.btn:hover{filter:brightness(1.08)}
.gate-hint{font-size:1.125rem;line-height:1.45;color:var(--ink-2);margin-top:.25rem}
.gate-error{font-size:1.2rem;line-height:1.4;font-weight:600;color:var(--copper-ink);min-height:1.7em}
@keyframes shake{0%,100%{transform:translateX(0)}25%,75%{transform:translateX(-6px)}50%{transform:translateX(6px)}}
.gate input.shake{animation:shake .32s ease}

/* ─── Nav ─── */
.topbar{position:fixed;inset:0 0 auto 0;z-index:100;padding:.5rem 1.25rem .5rem 1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;background:linear-gradient(to bottom,var(--nav-solid),transparent);transition:background .3s}
.topbar.scrolled{background:var(--nav-solid)}
.logo{font-family:var(--uncial);font-size:1.15rem;text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;min-height:44px}
.nav-right{display:flex;align-items:center;gap:.5rem}
.nav-links{display:flex;gap:.25rem;list-style:none}
.nav-links a{display:inline-flex;align-items:center;min-height:44px;padding:0 .7rem;font-size:1.15rem;font-weight:600;color:var(--ink-2);text-decoration:none}
.nav-links a:hover{color:var(--copper-ink)}
.iconbtn{background:none;border:1px solid var(--rule);color:var(--ink);width:44px;height:44px;border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.iconbtn:hover{border-color:var(--copper-ink);color:var(--copper-ink)}
.iconbtn svg{width:20px;height:20px;display:block}
.menu-btn{display:none}
.menu-overlay{position:fixed;inset:0;z-index:1000;background:var(--bg);padding:5rem 1.5rem 2rem;overflow-y:auto}
.menu-overlay ul{list-style:none;max-width:24rem;margin:0 auto}
.menu-overlay a{display:flex;align-items:center;min-height:60px;font:600 1.6rem var(--display);text-decoration:none;border-bottom:1px solid var(--rule-soft)}
.menu-close{position:absolute;top:.5rem;right:1.25rem}
@media (max-width:980px){.nav-links{display:none}.menu-btn{display:inline-flex}}

/* ─── Hero ─── */
.hero{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:5rem 1.25rem 6rem;position:relative}
.hero-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(600px,100vw);height:600px;background:radial-gradient(circle,rgba(184,115,51,.13) 0%,transparent 70%);pointer-events:none}
.hero-content{position:relative;z-index:1;max-width:44rem}
.hero h1{font-family:var(--uncial);font-size:clamp(3rem,12vw,6rem);font-weight:400;line-height:1.05;margin-bottom:1.1rem}
.hero-sub{font-size:clamp(1.3rem,3.4vw,1.6rem);font-style:italic;color:var(--ink-2);line-height:1.5;margin:0 auto 2rem;max-width:34em}
.route{display:flex;align-items:center;justify-content:center;gap:.7rem;flex-wrap:wrap;font-size:1.3rem;font-weight:600;margin-bottom:2rem}
.route .arrow{color:var(--copper);font-size:.6em}
.hero-actions{display:flex;flex-direction:column;align-items:center}
.hero-actions a{font-size:1.25rem;font-weight:600;color:var(--copper-ink);text-underline-offset:.2em;display:inline-flex;align-items:center;min-height:44px}
.hero-scroll{position:absolute;bottom:1.5rem;font-size:1.05rem;color:var(--ink-3)}
@media (prefers-reduced-motion:no-preference){
  html.gate-passed .hero-content,.gate.leaving~main .hero-content{animation:rise 1.1s cubic-bezier(.2,.7,.2,1) both}
  @keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  .hero-scroll{animation:bob 2.6s ease-in-out infinite}
  @keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
}

/* ─── Chapters ─── */
.section{padding:5.5rem 1.25rem;max-width:45rem;margin:0 auto;position:relative}
.label{font-family:var(--uncial);font-size:1.15rem;font-weight:400;color:var(--copper-ink);margin-bottom:.6rem}
h2{font-family:var(--display);font-size:clamp(2rem,6vw,3rem);font-weight:700;line-height:1.18;margin-bottom:1.6rem}
h2 .accent{color:var(--copper-ink)}
.section p{margin-bottom:1.25rem;color:var(--ink-2)}
.section p strong{color:var(--ink);font-weight:600}
.section em{font-style:italic}
.gaelic{font-style:italic;font-weight:600}
.aside-fig{float:right;width:13rem;margin:.3rem 0 1rem 1.75rem;border:1px solid var(--rule);border-radius:4px;overflow:hidden}
.aside-fig svg{display:block;width:100%;background:var(--bg-2)}
.aside-fig figcaption{font-size:1.05rem;line-height:1.35;color:var(--ink-3);padding:.55rem .7rem;background:var(--bg-2)}
@media (max-width:600px){.aside-fig{float:none;width:100%;margin:0 0 1.5rem;display:grid;grid-template-columns:5.5rem minmax(0,1fr);align-items:center;background:var(--bg-2)}}
.accent-panel{border-left:2px solid var(--copper);padding-left:1.5rem;background:linear-gradient(170deg,var(--tint-probable),transparent 45%)}
.divider{width:60px;height:1px;background:var(--copper);margin:0 auto}

.cite-list{margin-top:1.75rem;padding-top:1rem;border-top:1px solid var(--rule-soft);clear:both}
.cite-list h3{font:600 1.15rem var(--serif);color:var(--patina-ink);margin-bottom:.2rem}
.cite-list ul{list-style:none}
.cite-list a{display:flex;align-items:center;min-height:44px;padding:.3rem 0;font-size:1.15rem;line-height:1.3;color:var(--patina-ink);text-underline-offset:.2em;text-decoration-thickness:1px}
.cite-list a:hover{color:var(--copper-ink)}
.cite-list .plain{font-size:1.15rem;line-height:1.3;color:var(--ink-3);padding:.5rem 0}

.quote{font-family:var(--display);font-size:clamp(1.55rem,4.6vw,2.4rem);font-style:italic;text-align:center;padding:3rem 1.25rem 4rem;max-width:52rem;margin:0 auto;line-height:1.45}
.quote::before{content:'\201C';display:block;font-size:4.5rem;line-height:1;color:var(--copper);height:2.6rem}
.quote cite{display:block;font:500 1.15rem var(--serif);font-style:normal;color:var(--ink-3);margin-top:1rem}

/* ─── Map ─── */
.map-section{background:var(--bg-2);padding:4.5rem 1.25rem}
.map-head{max-width:40rem;margin:0 auto 1.5rem;text-align:center}
.map-head p{color:var(--ink-2);line-height:1.45}
.map-svg{max-width:58rem;margin:0 auto;border:1px solid var(--rule-soft);border-radius:3px;overflow:hidden}
.map-svg svg{width:100%;height:auto;display:block}
.m-sea{fill:var(--map-sea)} .m-land{fill:var(--map-land);stroke:var(--map-edge);stroke-width:1;stroke-linejoin:round}
.m-grid{stroke:var(--map-grid);stroke-width:.6}
.m-route{fill:none;stroke-width:2.4;stroke-linecap:round}
.m-route.solid{stroke:var(--patina)} .m-route.dash{stroke:var(--copper);stroke-dasharray:11 8}
.m-dot{fill:var(--copper)} .m-dot.on{fill:var(--copper-ink)}
.m-ring{fill:none;stroke:var(--copper-ink);stroke-width:2;opacity:0}.m-ring.on{opacity:1}
.m-label{fill:var(--map-label);font:italic 600 21px var(--serif)}
.m-note{fill:var(--map-faint);font:italic 500 17px var(--serif)}
@media (max-width:640px){.m-label{font-size:46px}.m-note{font-size:32px}}
.map-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;max-width:40rem;margin:1rem auto 0}
.chip{background:none;border:1px solid var(--rule);color:var(--ink);font:600 1.15rem var(--serif);min-height:48px;padding:.3rem .5rem;border-radius:3px;cursor:pointer;line-height:1.15}
.chip:hover{border-color:var(--copper-ink);color:var(--copper-ink)}
.chip[aria-pressed="true"]{background:var(--copper-ink);border-color:var(--copper-ink);color:var(--on-copper)}
.map-info{max-width:40rem;margin:1rem auto 0;padding:1.1rem 1.25rem;background:var(--bg-3);border-left:3px solid var(--copper)}
.map-year{font-weight:600;color:var(--copper-ink);font-size:1.15rem}
.map-place{font:700 1.4rem var(--display);margin:.1rem 0 .4rem}
.map-text{color:var(--ink-2);font-size:1.25rem;line-height:1.5}

/* ─── Grade marks ─── */
.mark{display:inline-block;width:.8rem;height:.8rem;border-radius:50%;flex:none;vertical-align:-.04em;border:1.5px solid transparent}
.mark.confirmed{background:var(--patina-ink);border-color:var(--patina-ink)}
.mark.probable{background:linear-gradient(90deg,var(--copper-ink) 50%,transparent 50%);border-color:var(--copper-ink)}
.mark.possible{border-color:var(--copper-ink)}
.mark.unresolved{border:1.5px dashed var(--chalk)}
.mark.rejected{border-color:var(--ink-3);background:linear-gradient(45deg,transparent 44%,var(--ink-3) 44%,var(--ink-3) 56%,transparent 56%)}
.pill{display:inline-flex;align-items:center;gap:.4rem;font-size:1.05rem;font-weight:600;line-height:1.2;white-space:nowrap}
.pill.confirmed{color:var(--patina-ink)} .pill.probable,.pill.possible{color:var(--copper-ink)} .pill.unresolved,.pill.rejected{color:var(--ink-3)}

/* ─── Tree ─── */
.tree-section{background:var(--bg-2);padding:5rem 1.25rem}
.tree-head{max-width:43rem;margin:0 auto 2rem}
.tree-head p{color:var(--ink-2);margin-bottom:1rem}
.legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.5rem 1.5rem;margin:1.25rem 0 0;padding:1rem 0;border-block:1px solid var(--rule-soft)}
.legend div{font-size:1.125rem;line-height:1.35;color:var(--ink-2)}
.legend dt{display:block;margin-bottom:.1rem}
.spine{max-width:46rem;margin:0 auto}
.gen-label{font:600 1.2rem var(--serif);color:var(--copper-ink);text-align:center;margin-bottom:.8rem}
.margin-note{display:flex;gap:.6rem;align-items:baseline;font-size:1.15rem;line-height:1.4;color:var(--ink-2);max-width:36rem;margin:0 auto 1rem;font-style:italic}
.couple{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;position:relative}
.couple::before{content:'';position:absolute;top:50%;left:calc(50% - .625rem);width:1.25rem;height:2px;background:var(--copper)}
.couple.single{grid-template-columns:minmax(0,22rem);justify-content:center}.couple.single::before{display:none}
.pcard{display:block;text-decoration:none;background:var(--bg-3);border:1.5px solid var(--rule-soft);border-radius:5px;padding:1rem 1.1rem;transition:transform .15s ease,box-shadow .15s ease;position:relative}
.pcard:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.28)}
.pcard.confirmed{border-color:var(--patina);background:linear-gradient(160deg,var(--tint-confirmed),var(--bg-3) 60%)}
.pcard.probable{border-color:var(--copper);background:linear-gradient(160deg,var(--tint-probable),var(--bg-3) 60%)}
.pcard.possible{border-color:var(--copper)}
.pcard.unresolved{border-style:dashed;border-color:var(--chalk);background:transparent}
.pcard img{width:84px;height:84px;object-fit:cover;border-radius:50%;float:right;margin:0 0 .4rem .7rem;border:2px solid var(--copper)}
.pcard-name{display:block;font:700 1.3rem/1.2 var(--display);margin-bottom:.35rem}
.pcard-line{display:block;font-size:1.125rem;line-height:1.35;color:var(--ink-2)}
.pcard .pill{margin-top:.55rem;display:flex}
.marriage{text-align:center;font-size:1.15rem;line-height:1.35;color:var(--ink-2);margin-top:.8rem}
.kin{margin:1rem auto 0;max-width:42rem}
.kin h4{font:600 1.15rem var(--serif);color:var(--ink-2);margin-bottom:.4rem;text-align:center}
.kin ul{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}
.kin a{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:.2rem .75rem;border:1px solid var(--rule-soft);border-radius:999px;text-decoration:none;font-size:1.15rem;font-weight:600;line-height:1.15;background:var(--bg-2)}
.kin a:hover{border-color:var(--copper-ink);color:var(--copper-ink)}
/* The line itself is drawn in the state of the evidence. */
.link{display:flex;flex-direction:column;align-items:center;margin:1rem 0}
.link i{display:block;width:0;border-left:3px solid var(--patina);height:1.6rem}
.link.probable i{border-left-color:var(--copper);border-left-style:dashed}
.link.possible i,.link.unresolved i{border-left:3px dotted var(--chalk)}
.link p{max-width:32rem;text-align:center;font-size:1.15rem;line-height:1.4;font-style:italic;color:var(--ink-2);padding:.35rem 0}
.link p .pill{font-style:normal;margin-right:.25rem}
.branches-head{text-align:center;margin:0 auto 1rem;max-width:36rem}
.branches-head h3{font:700 1.5rem var(--display)}
.branches-head p{font-size:1.15rem;color:var(--ink-3);line-height:1.4}
.branches{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;max-width:58rem;margin:0 auto}
.branch{border:1px solid var(--rule-soft);border-radius:5px;padding:1rem 1.1rem}
.branch b{display:block;font:700 1.2rem/1.25 var(--display)}
.branch span{display:block;font-size:1.125rem;line-height:1.35;color:var(--ink-3);margin-bottom:.45rem}
.branch li{list-style:none;font-size:1.15rem;line-height:1.5;color:var(--ink-2)}
@media (max-width:900px){.branches{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.branches{grid-template-columns:1fr}.couple{grid-template-columns:1fr;gap:.6rem}.couple::before{display:none}}

/* ─── Register: people and sources ─── */
.register-section{padding:5rem 1.25rem;max-width:50rem;margin:0 auto}
.register-section>p{color:var(--ink-2);margin-bottom:1.25rem}
.field{display:block;margin-bottom:.6rem}
.field span{display:block;font-weight:600;font-size:1.2rem;margin-bottom:.25rem}
.field input,.field select{width:100%;background:var(--bg-2);color:var(--ink);border:1.5px solid var(--copper);border-radius:3px;font:500 1.3rem var(--serif);padding:.55rem .85rem;min-height:54px}
.field input::placeholder{color:var(--ink-3);opacity:1}
.field-row{display:grid;grid-template-columns:2fr 1fr;gap:.75rem}
@media (max-width:600px){.field-row{grid-template-columns:1fr}}
.count{font-size:1.15rem;color:var(--ink-3);margin:.2rem 0 1rem;min-height:1.6em}
.group{border-top:1px solid var(--rule)}
.group summary{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 .7rem;padding:.8rem 0;cursor:pointer;list-style:none;min-height:54px}
.group summary::-webkit-details-marker{display:none}
.group summary::before{content:'+';font:700 1.3rem var(--display);width:1.1rem;color:var(--copper-ink)}
.group[open] summary::before{content:'\2212'}
.group-title{font:700 1.3rem/1.3 var(--display)}
.group-count{font-size:1.15rem;color:var(--ink-3)}
.group-blurb{flex-basis:100%;padding-left:1.8rem;font-size:1.125rem;line-height:1.35;color:var(--ink-3)}
.rows{list-style:none;padding-bottom:.5rem}
.row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.1rem 1rem;align-items:baseline;padding:.65rem .4rem;min-height:56px;text-decoration:none;border-top:1px solid var(--rule-soft)}
.row:hover{background:var(--bg-2)}
.row-name{font-weight:600;font-size:1.3rem;line-height:1.25}
.row-meta{grid-column:1;font-size:1.125rem;line-height:1.3;color:var(--ink-3)}
.row .pill{grid-column:2;grid-row:1}
.row-also{grid-column:1;font-size:1.125rem;line-height:1.3;font-style:italic;color:var(--copper-ink)}
.empty{padding:1.25rem 0;border-top:1px solid var(--rule);color:var(--ink-2)}
.row-more{margin-top:.75rem}

/* ─── Trivia ─── */
.trivia-section{background:var(--bg-2);padding:5rem 1.25rem}
.trivia-head{text-align:center;margin-bottom:1.25rem}
.trivia-controls{display:flex;justify-content:center;align-items:center;gap:1rem;margin-bottom:1.25rem}
.trivia-indicator{font-size:1.15rem;color:var(--ink-3);white-space:nowrap;min-width:6.5rem;text-align:center}
.trivia-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;max-width:62rem;margin:0 auto}
.card{background:var(--bg-3);border:1px solid var(--rule-soft);border-radius:5px;padding:1.2rem 1.25rem;display:flex;flex-direction:column;gap:.5rem}
.card h3{font:700 1.25rem/1.25 var(--display)}
.card p{font-size:1.2rem;line-height:1.5;color:var(--ink-2)}
.card p strong{color:var(--ink);font-weight:600}
.trivia-grid .card{display:none}.trivia-grid .card.active{display:flex}
@media (max-width:768px){.trivia-grid{grid-template-columns:1fr}}

/* ─── Find ─── */
.find-sub{font:700 1.5rem var(--display);margin:2.25rem 0 .85rem}
.find-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:1rem}
.find-grid .card a{color:var(--patina-ink);text-underline-offset:.2em;font-weight:600;display:inline-flex;min-height:44px;align-items:center;font-size:1.15rem}
.changed{margin-top:2.5rem;border-top:1px solid var(--rule)}
.changed summary{font:700 1.3rem var(--display);padding:.9rem 0;cursor:pointer;min-height:54px}
.changed ul{padding-left:1.25rem}
.changed li{margin-bottom:.6rem;color:var(--ink-2);font-size:1.2rem;line-height:1.5}

/* ─── Panel: bottom sheet on phones, side file on desktop ─── */
.scrim{position:fixed;inset:0;background:var(--scrim);z-index:2000;opacity:0;transition:opacity .22s ease}
.scrim.on{opacity:1}
.panel{position:fixed;z-index:2001;background:var(--bg-3);display:flex;flex-direction:column;box-shadow:0 0 40px rgba(0,0,0,.45);transition:transform .26s cubic-bezier(.2,.7,.2,1)}
@media (min-width:821px){
  .panel{top:0;right:0;bottom:0;width:min(30rem,92vw);border-left:1px solid var(--rule);transform:translateX(102%)}
  .panel.on{transform:none}
}
@media (max-width:820px){
  .panel{left:0;right:0;bottom:0;max-height:88vh;max-height:88dvh;border-radius:14px 14px 0 0;border-top:1px solid var(--rule);transform:translateY(102%)}
  .panel.on{transform:none}
}
.panel-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem .6rem .4rem .9rem;border-bottom:1px solid var(--rule-soft);flex:none}
.textbtn{background:none;border:0;color:var(--copper-ink);font:600 1.2rem var(--serif);min-height:44px;padding:0 .6rem;cursor:pointer}
.panel-body{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:1.1rem 1.25rem 2.25rem;flex:1}
.panel h2{font-size:1.75rem;margin-bottom:.35rem}
.panel-variants{font-size:1.125rem;line-height:1.35;color:var(--ink-3);font-style:italic;margin-bottom:.5rem}
.panel-grade{font-size:1.125rem;line-height:1.35;color:var(--ink-2);margin:.2rem 0 .9rem}
.panel-grade .pill{display:flex;font-size:1.2rem;margin-bottom:.1rem}
.panel-photo{width:96px;height:96px;object-fit:cover;border-radius:50%;float:right;margin:0 0 .5rem .8rem;border:2px solid var(--copper)}
.panel-bio{font-size:1.3rem;line-height:1.5;margin-bottom:1rem;color:var(--ink)}
.panel h3{font:700 1.2rem var(--display);color:var(--copper-ink);margin:1.35rem 0 .35rem;clear:both}
.ledger{list-style:none}
.ledger li{padding:.5rem 0;border-top:1px solid var(--rule-soft);font-size:1.2rem;line-height:1.4;color:var(--ink-2)}
.ledger b{font-weight:600;color:var(--ink)}
.ledger small{display:block;font-size:1.05rem;line-height:1.35;color:var(--ink-3)}
.ledger .srcs{display:flex;flex-wrap:wrap;gap:0 .9rem;margin-top:.1rem}
.ledger .srcs a{display:inline-flex;align-items:center;min-height:44px;color:var(--patina-ink);font-size:1.1rem;font-weight:500;line-height:1.2;text-decoration:underline;text-underline-offset:.2em}
.fact{display:grid;grid-template-columns:1rem minmax(0,1fr);gap:0 .6rem}
.fact .mark{margin-top:.38rem}
.fact.rejected .claim{text-decoration:line-through;text-decoration-thickness:1px}
.fact .verdict{display:block;font-size:1.05rem;font-weight:600;color:var(--ink-3)}
.fam a{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:48px;text-decoration:none;font-weight:600;font-size:1.25rem;line-height:1.2;padding:.35rem 0}
.fam a:hover{color:var(--copper-ink)}
.fam a>span>span:first-child{text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--ink-3);text-underline-offset:.2em}
.fam-note{font-size:1.1rem;line-height:1.35;color:var(--ink-3);margin-bottom:.5rem}
.fam small{font-weight:500}
.fam .rel{display:block;margin-top:-.15rem}
.note-box{border-left:3px solid var(--copper);background:var(--tint-probable);padding:.6rem .8rem;margin:.9rem 0;font-size:1.2rem;line-height:1.4;color:var(--ink-2)}
.settle{border:1.5px dashed var(--chalk);padding:.65rem .85rem;margin-top:1.35rem;border-radius:4px;font-size:1.2rem;line-height:1.4;color:var(--ink-2)}
.settle b{display:block;font-family:var(--display);font-size:1.1rem;color:var(--ink)}
.says{font-size:1.25rem;line-height:1.45;border-left:3px solid var(--patina);padding:.3rem 0 .3rem .85rem;color:var(--ink)}
.record-link{margin-top:1rem;width:100%}
.panel-foot{margin-top:.85rem;font-size:1.1rem;line-height:1.35;color:var(--ink-3)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ─── Footer ─── */
footer{padding:3.5rem 1.25rem 4rem;text-align:center;border-top:1px solid var(--rule)}
.slainte{font-size:1.9rem;font-style:italic;color:var(--copper-ink);margin-bottom:.75rem}
.foot-logo{font-family:var(--uncial);font-size:1.2rem;margin-bottom:.75rem}
footer p{font-size:1.15rem;color:var(--ink-2);line-height:1.45;margin-bottom:.35rem}
footer a{color:var(--copper-ink);display:inline-flex;min-height:44px;align-items:center;text-underline-offset:.2em}
.foot-small{max-width:36rem;margin:.75rem auto 0;color:var(--ink-3)}
@media print{.gate,.topbar,.scrim,.panel{display:none!important}}
