/* Aspen Atlas, site stylesheet. Direction A: white ground, one serif for display,
   one sans for text, navy as the single accent. Class vocabulary is shared by all
   four languages; the English pages and the translated pages use the same names. */
:root{
  --ink:#111417; --navy:#0e1f3a; --navy-2:#16305a; --mid:#5B6470; --faint:#8A929C;
  --hair:#E4E4E1; --soft:#F6F6F4; --paper:#FFFFFF; --cream:#f5f1e8;
  --serif:"Newsreader","Iowan Old Style",Georgia,serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --maxw:1240px; --pad:clamp(1.25rem,4vw,2.5rem); --measure:62ch;
  --ease:cubic-bezier(.2,.6,.2,1);
  --wipe:cubic-bezier(.55,0,.35,1); /* slow, fast, slow */
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:16px/1.6 var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
.container{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}.narrow>*{max-width:820px}
h1,h2,h3,h4{margin:0;font-weight:400;letter-spacing:-.01em}
p{margin:0 0 1.1rem;max-width:var(--measure);color:var(--mid)}p:last-child{margin-bottom:0}
strong,b{font-weight:600;color:var(--ink)}

/* reveal */
html.js [data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .75s var(--ease),transform .75s var(--ease);will-change:opacity,transform}
html.js [data-reveal].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html.js [data-reveal]{opacity:1;transform:none;transition:none}}

/* header */
.top{border-bottom:1px solid var(--hair);background:rgba(255,255,255,.92);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20}
.topbar{display:flex;align-items:center;justify-content:space-between;height:72px}
.brand{display:flex;align-items:center;color:var(--ink)}
.brand img{height:40px;width:auto;display:block}
@media (max-width:860px){.brand img{height:32px}}
.topbar-right{display:flex;align-items:center;gap:36px}
.topnav>ul{display:flex;gap:32px;list-style:none;margin:0;padding:0;font-size:14px;font-weight:500;color:var(--mid)}
.topnav>ul>li>a{padding:6px 0;position:relative;transition:color .45s var(--wipe)}.topnav>ul>li>a::after,.menu-btn::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left center;transition:transform .45s var(--wipe)}
.topnav>ul>li>a:hover,.menu-btn:hover,.menu-btn[aria-expanded="true"]{color:var(--ink)}.topnav>ul>li>a:hover::after,.topnav>ul>li>a[aria-current="page"]::after,.menu-btn:hover::after,.menu-btn[aria-current]::after{transform:scaleX(1)}.topnav>ul>li>a[aria-current="page"],.menu-btn[aria-current]{color:var(--ink)}
/* the current page's underline wipes in on load rather than arriving already drawn, so
   clicking a nav item reads as one continuous motion across the page change instead of
   the hover wipe stopping and the line snapping to full on the page that follows */
@keyframes nav-underline{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.topnav>ul>li>a[aria-current="page"]::after,.menu-btn[aria-current]::after{animation:nav-underline .45s var(--wipe) both}
/* nav menus (Products): a disclosure button and the links it shows (nav.js). The button sits
   in the line exactly like a link, its underline stops short of the chevron, and the panel
   fades and drops 4px in. On phones the nav row scrolls sideways, so the panel hangs from the
   header instead of the row (the row would clip it) and nav.js places it under its button. */
.has-menu{position:relative}
.menu-btn{display:inline-flex;align-items:center;gap:6px;margin:0;padding:0;border:0;border-radius:0;background:none;font:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;position:relative;transition:color .45s var(--wipe);-webkit-tap-highlight-color:transparent}
.menu-btn::after{right:16px;bottom:calc(.242em - 6px)}
.menu-btn::before{content:"";position:absolute;inset:-10px -8px}
.menu-btn .chev{display:block;flex:none;transition:transform .15s var(--ease)}
.menu-btn[aria-expanded="true"] .chev{transform:rotate(180deg)}
.menu-btn:focus{outline:none}.menu-btn:focus-visible{outline:2px solid var(--navy);outline-offset:4px}
.navmenu{position:absolute;z-index:30;top:calc(50% + 44px);left:-19px;width:max-content;min-width:236px;max-width:min(340px,calc(100vw - 2*var(--pad)));margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--hair);border-radius:2px;box-shadow:0 1px 2px rgba(14,31,58,.04),0 16px 36px -16px rgba(14,31,58,.22);white-space:normal;font-size:14px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .15s var(--ease),transform .15s var(--ease),visibility 0s linear .15s}
.navmenu::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:30px}
.has-menu.is-open .navmenu{opacity:1;visibility:visible;transform:none;transition:opacity .15s var(--ease),transform .15s var(--ease),visibility 0s}
html:not(.js) .has-menu:hover .navmenu,html:not(.js) .has-menu:focus-within .navmenu{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.navmenu li{display:block}
.navmenu a{display:block;padding:10px 12px 11px;color:var(--ink);transition:background-color .15s var(--ease)}
.navmenu a:hover{background:var(--soft)}
.navmenu a:focus{outline:none}.navmenu a:focus-visible{outline:2px solid var(--navy);outline-offset:-2px}
.navmenu a[aria-current="page"]{box-shadow:inset 2px 0 0 var(--navy)}
.nm-name{display:block;font-weight:500;line-height:1.35;color:var(--ink)}
.nm-desc{display:block;margin-top:2px;font-size:13px;font-weight:400;line-height:1.4;color:var(--mid)}
@media (max-width:860px){.has-menu{position:static}.navmenu{top:calc(100% + 6px);left:var(--menu-x,var(--pad))}.navmenu::before{display:none}}
@media (prefers-reduced-motion:reduce){.menu-btn,.menu-btn::after,.menu-btn .chev,.navmenu,.has-menu.is-open .navmenu,.navmenu a{transition:none}.menu-btn[aria-current]::after{animation:none}}
.langswitch{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.08em;color:var(--faint)}.langswitch .lswitch-label{display:none}
.langswitch ul{display:flex;gap:0;list-style:none;margin:0;padding:0}.langswitch li+li::before{content:"·";margin:0 7px;color:var(--hair)}
.langswitch a{color:var(--faint)}.langswitch a:hover{color:var(--ink)}.langswitch a[aria-current="true"]{color:var(--ink);font-weight:600}
@media (max-width:860px){.topbar{flex-wrap:wrap;height:auto;padding:14px var(--pad) 0}.topbar-right{width:calc(100% + 2*var(--pad));order:3;flex-wrap:nowrap;gap:24px;margin:10px calc(-1*var(--pad)) 0;border-top:1px solid var(--hair);padding:9px var(--pad) 7px;overflow-x:auto;scrollbar-width:none}.topbar-right::-webkit-scrollbar{display:none}.topnav>ul{gap:18px;font-size:13px;white-space:nowrap;flex:none}.langswitch{flex:none;margin-left:auto;padding-left:8px}}

/* hero and page heads */
.hero{padding:clamp(72px,10vw,128px) 0 64px}
.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mid);font-weight:500;margin:0 0 24px;max-width:none}
.hero h1,.page-head h1{font:300 clamp(34px,3.4vw,54px)/1.08 var(--serif);letter-spacing:-.012em;max-width:18ch;margin:0 0 24px}
.hero h1 em,.page-head h1 em{font-style:italic;font-weight:400}
.standfirst,.page-head p:not(.eyebrow){font-size:clamp(17px,1.25vw,19px);line-height:1.5;color:var(--mid);max-width:58ch}
.hero-actions,.btn-row{display:flex;flex-wrap:wrap;gap:16px;margin-top:40px}
.btn{display:inline-block;padding:14px 22px;border:1px solid var(--ink);font-size:14px;font-weight:500;color:var(--ink);background:none;line-height:1.2;position:relative;isolation:isolate;overflow:hidden;transition:color .45s var(--wipe)}
.btn::before{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left center;transition:transform .45s var(--wipe);z-index:-1}
.btn:hover{color:#fff}.btn:hover::before{transform:scaleX(1)}
.btn-ink,.hero-actions .btn:first-child{background:var(--ink);color:#fff}
.btn-ink::before,.hero-actions .btn:first-child::before{background:#fff}
.btn-ink:hover,.hero-actions .btn:first-child:hover{color:var(--ink)}
.page-head{padding:clamp(64px,8vw,104px) 0 56px;border-bottom:1px solid var(--hair)}
.page-head h1{font-size:clamp(34px,3.8vw,52px);max-width:22ch}

/* signature strip */
.strip{display:flex;align-items:flex-end;gap:3px;height:64px;margin-top:64px;border-bottom:1px solid var(--hair);padding-bottom:0}
.strip i{flex:1 1 0;display:block;border-radius:1px 1px 0 0}
.striplegend{display:flex;justify-content:space-between;gap:24px;font-size:12px;color:var(--faint);margin-top:12px;letter-spacing:.02em}.striplegend b{color:var(--navy);font-weight:700}

/* proof strip (English home) */
.proof{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:36px 0}
.proof .container{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.proof .n{font:400 44px/1 var(--serif);letter-spacing:-.02em;color:var(--ink)}.proof .l{font-size:13px;color:var(--mid);margin-top:8px;max-width:none}
.proof .src{grid-column:1/-1;font-size:12px;color:var(--faint);margin-top:4px;max-width:none}

/* sections */
section{padding:clamp(64px,8vw,104px) 0}section.tight{padding:48px 0}
.band{background:var(--soft)}
.band-ink{background:var(--navy);color:#fff}.band-ink p{color:#B8C2D3}.band-ink h2,.band-ink h3,.band-ink strong,.band-ink b{color:#fff}
.band-ink .section-label{color:#8FA0BA}.band-ink .btn{border-color:#fff;color:#fff}.band-ink .btn::before{background:#fff}.band-ink .btn:hover{color:var(--navy)}
.section-label{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mid);font-weight:500;margin-bottom:22px}
h2.display{font:400 clamp(30px,3.4vw,46px)/1.12 var(--serif);letter-spacing:-.012em;max-width:24ch;margin-bottom:22px}
h2.display+p{font-size:17px}
.cols-2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,88px);align-items:start}
.cols-3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,56px)}
@media (max-width:860px){.cols-2,.cols-3,.proof .container{grid-template-columns:1fr}}

/* entries */
.entry{padding:24px 0;border-top:1px solid var(--hair)}.cols-3 .entry{border-top:1px solid var(--ink);padding-top:20px}
.band-ink .entry{border-color:rgba(255,255,255,.14)}
.entry h3{font:500 21px/1.3 var(--serif);margin-bottom:10px;display:flex;align-items:baseline;gap:12px}
.entry p{font-size:15px}
.marker{display:inline-block;width:8px;height:8px;background:var(--navy);flex:none;position:relative;top:-2px}.marker.moss{background:var(--mid)}.band-ink .marker{background:#fff}.band-ink .marker.moss{background:#8FA0BA}

/* stats */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.stats.stats-stack{grid-template-columns:1fr;gap:0}
.stat{display:flex;align-items:baseline;gap:20px;padding:18px 0;border-top:1px solid var(--hair)}.stat:last-child{border-bottom:1px solid var(--hair)}
.stat .n{font:400 48px/1 var(--serif);letter-spacing:-.02em;min-width:3.2ch;color:var(--ink)}.stat .l{font-size:14px;color:var(--mid)}

/* pull quotes, notes */
.pull{border-left:2px solid var(--ink);padding:6px 0 6px 24px}.band-ink .pull{border-color:#fff}
.pull q{quotes:none;font:400 clamp(22px,2.2vw,28px)/1.3 var(--serif);color:var(--ink)}.band-ink .pull q{color:#fff}.pull q b{font-weight:500;font-style:italic}
.govern-note{font-size:14.5px;color:var(--mid);padding:18px 22px;background:var(--soft);border-left:2px solid var(--navy);max-width:var(--measure)}
.band .govern-note{background:#fff}.band-ink .govern-note{background:rgba(255,255,255,.06);border-color:#fff;color:#B8C2D3}

/* steps */
.steps{list-style:none;margin:0;padding:0;counter-reset:step}
.steps li{counter-increment:step;display:grid;grid-template-columns:56px 1fr;gap:12px;padding:22px 0;border-top:1px solid var(--hair)}.steps li:last-child{border-bottom:1px solid var(--hair)}
.band-ink .steps li{border-color:rgba(255,255,255,.14)}
.steps li::before{content:counter(step,upper-roman);font:400 14px var(--sans);color:var(--navy);letter-spacing:.06em;padding-top:5px}.band-ink .steps li::before{color:#8FA0BA}
.steps h3{font:500 20px/1.3 var(--serif);margin-bottom:6px;grid-column:2}.steps h3:last-child{margin-bottom:0}.steps p{font-size:15px;grid-column:2}

/* contact */
.contact-block{padding:18px 0;border-top:1px solid var(--hair);display:grid;grid-template-columns:120px 1fr;gap:12px}.contact-block:last-child{border-bottom:1px solid var(--hair)}
.contact-block .k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mid);padding-top:4px}.contact-block .v{font-size:16px;color:var(--ink);line-height:1.5}.contact-block .v a{border-bottom:1px solid var(--ink)}

/* policies */
.policy-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 48px}
.policy-card{display:block;padding:26px 0;border-top:1px solid var(--hair);transition:padding-left .25s var(--ease)}.policy-card:hover{padding-left:8px}
.policy-card h3{font:500 22px/1.25 var(--serif);margin-bottom:8px}.policy-card p{font-size:15px}.policy-card .policy-meta{font-size:13px;font-weight:500;color:var(--navy);margin-top:12px}
.policy-content{padding:clamp(56px,7vw,88px) var(--pad);max-width:860px}
.back-link{font-size:13px;color:var(--mid);display:inline-block;margin-bottom:40px;border-bottom:1px solid transparent}.back-link:hover{color:var(--ink);border-color:var(--ink)}
.policy-header{padding-bottom:28px;border-bottom:1px solid var(--ink);margin-bottom:40px}
.policy-header h1{font:300 clamp(34px,4vw,54px)/1.08 var(--serif);letter-spacing:-.012em;margin-bottom:18px}
.policy-meta-info{display:flex;gap:28px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mid)}
.policy-body h2{font:500 24px/1.3 var(--serif);margin:40px 0 12px}.policy-body h2:first-child{margin-top:0}.policy-body h3{font:500 19px/1.35 var(--serif);margin:28px 0 8px}
.policy-body p,.policy-body li{font-size:16px;color:var(--mid)}.policy-body ul,.policy-body ol{padding-left:22px;margin:0 0 1.2rem}.policy-body li{margin-bottom:8px}.policy-body li::marker{color:var(--navy)}.policy-body strong{color:var(--ink)}.policy-body a{border-bottom:1px solid var(--ink)}
@media (max-width:860px){.policy-grid{grid-template-columns:1fr}.contact-block{grid-template-columns:1fr;gap:4px}}

/* footer */
.site-foot{border-top:1px solid var(--ink);padding:72px 0 40px;font-size:14px}
.foot-lede{font:400 clamp(24px,2.4vw,32px)/1.25 var(--serif);color:var(--ink);max-width:30ch;margin-bottom:12px}
.site-foot>.container>p{max-width:54ch}
.langs{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:40px 0;padding:24px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.lang .tag{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-bottom:6px}.lang .line{font:400 17px/1.4 var(--serif);color:var(--mid)}
.foot-meta{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}.foot-meta p{margin:0;font-size:13px;color:var(--mid)}
.foot-links{list-style:none;margin:0;padding:0;display:flex;gap:24px;font-size:13px;font-weight:500}.foot-links a{position:relative;padding-bottom:2px}.foot-links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left center;transition:transform .45s var(--wipe)}.foot-links a:hover::after{transform:scaleX(1)}
.certification-badge{display:flex;align-items:center;gap:10px;margin-top:36px;font-size:12px;letter-spacing:.06em;color:var(--mid)}.certification-badge img{width:18px;height:auto}
@media (max-width:860px){.langs{grid-template-columns:1fr}.hero{padding-top:56px}}

/* hero with the section figure */
.hero-split .container{display:grid;grid-template-columns:0.85fr 1.15fr;gap:clamp(32px,5vw,80px);align-items:center}
.hero-split{padding:32px 0 48px;min-height:calc(100vh - 72px);display:flex;align-items:center}
.hero-split .container{width:100%}
.hero-split .hero-actions{margin-top:32px}
.hero-figure{margin:0}.hero-figure figcaption{font-size:12px;color:var(--faint);margin-top:12px;line-height:1.5;max-width:60ch}
.hero-section{display:block;width:100%;height:auto;border:1px solid var(--hair);background:#fff}
.hero-section .ground{fill:var(--soft)}
.hero-section .blk{fill:var(--navy);opacity:0;transition:opacity 1.2s var(--ease) .9s}.hero-section .blk.lo{fill-opacity:.06}.hero-section .blk.med{fill-opacity:.13}.hero-section .blk.hi{fill-opacity:.24}
.hero-section .fault{stroke:var(--mid);stroke-width:1;stroke-dasharray:4 4;opacity:.55}.hero-section .collar{fill:var(--navy)}.hero-section .eoh{fill:var(--navy);fill-opacity:.5}
.hero-section .grid{stroke:var(--navy);stroke-opacity:.07;stroke-width:1}.hero-section .gl{font:400 9px var(--sans);fill:var(--faint)}
html.js .hero-figure.in .blk,html:not(.js) .hero-section .blk{opacity:1}.hero-section .profile{fill:none;stroke:var(--mid);stroke-width:1}
.hero-section .trace{fill:none;stroke:var(--navy);stroke-opacity:.45;stroke-width:1.4;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s var(--ease) .2s}
.hero-section .seg{stroke:var(--navy);stroke-width:3.4;stroke-linecap:butt;opacity:0;transition:opacity .8s var(--ease) 1.2s}
.hero-section .seg.med{stroke-opacity:.5}.hero-section .seg.hi{stroke-opacity:1;stroke-width:4.2}
.hero-section .scale line{stroke:var(--ink);stroke-width:1}.hero-section .scale text{font:500 11px var(--sans);fill:var(--mid);letter-spacing:.04em}
html.js .hero-figure.in .trace,html:not(.js) .hero-section .trace{stroke-dashoffset:0}
html.js .hero-figure.in .seg,html:not(.js) .hero-section .seg{opacity:1}
@media (prefers-reduced-motion:reduce){.hero-section .trace{stroke-dashoffset:0;transition:none}.hero-section .seg{opacity:1;transition:none}}
@media (max-width:960px){.hero-split .container{grid-template-columns:1fr}}

/* provenance chain */
.chain{display:grid;grid-template-columns:1fr 40px 1fr 40px 1fr 40px 1fr;align-items:center;gap:0;margin-top:56px}
.chain-node{border:1px solid var(--ink);background:#fff;padding:16px 18px;display:flex;flex-direction:column;gap:4px;min-height:96px}
.chain-node .chain-k{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mid)}
.chain-node b{font:400 22px/1.15 var(--serif);color:var(--ink)}.chain-node span:last-child{font-size:13px;color:var(--mid)}
.chain-link{width:100%;height:10px;display:block}.chain-link line{stroke:var(--ink);stroke-width:1;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .6s var(--ease)}
html.js .chain-link.in line,html:not(.js) .chain-link line{stroke-dashoffset:0}
.chain-cap{font-size:13px;color:var(--faint);margin-top:14px;max-width:60ch}
@media (max-width:960px){.chain{grid-template-columns:1fr}.chain-link{height:28px;width:10px;margin:0 auto}.chain-link line{x1:5;x2:5;y1:0;y2:10}}

/* the record as a graph */
.kg-figure{margin:0}.kg-figure figcaption{font-size:12px;color:var(--faint);margin-top:10px;line-height:1.5;max-width:56ch}
.kg{display:block;width:100%;height:auto}
.kg .edge{stroke:var(--navy);stroke-opacity:.45;stroke-width:1;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1s var(--ease) .2s}.kg .edge.thin{stroke-opacity:.18}
.kg .elbl{font:500 8.5px var(--sans);fill:var(--faint);letter-spacing:.06em}
.kg .node{opacity:0;transition:opacity .6s var(--ease) .7s}.kg .node circle{fill:#fff;stroke:var(--navy);stroke-width:1.2}
.kg .node.big circle{fill:var(--navy)}.kg .node text{font:500 12px var(--sans);fill:var(--ink)}.kg .node .ns{font-size:10.5px;fill:var(--mid);font-weight:400}
.kg .node.res circle{stroke-opacity:.35;stroke-width:1}.kg .node.res text{font-size:8.5px;fill:var(--mid)}
.kg .node.res.cu circle{fill:var(--navy);stroke-opacity:1}.kg .node.res.cu text{fill:#fff;font-weight:600;font-size:10px}
html.js .kg-figure.in .edge,html:not(.js) .kg .edge{stroke-dashoffset:0}html.js .kg-figure.in .node,html:not(.js) .kg .node{opacity:1}
@media (prefers-reduced-motion:reduce){.kg .edge{stroke-dashoffset:0;transition:none}.kg .node{opacity:1;transition:none}}

/* the record as a timeline */
.tl-figure{margin:56px 0 0}.tl-figure figcaption{font-size:12px;color:var(--faint);margin-top:14px;line-height:1.5;max-width:60ch}
.tl{display:block;width:100%;height:auto}
.tl .axis{stroke:var(--ink);stroke-width:1}.tl .tick{stroke:var(--hair)}.tl .own{fill:var(--navy);fill-opacity:.18}
.tl .lbl{font:500 12px var(--sans);fill:var(--ink)}.tl .yrs{font:400 11px var(--sans);fill:var(--faint)}.tl .n{font:400 11px var(--sans);fill:var(--mid)}
.tl .bar{fill:var(--navy);fill-opacity:.85;transform:scaleY(0);transition:transform .9s var(--ease)}.tl .file{fill:var(--navy);fill-opacity:.4}
html.js .tl-figure.in .bar,html:not(.js) .tl .bar{transform:scaleY(1)}
.tl .bar:nth-child(4n){transition-delay:.15s}.tl .bar:nth-child(4n+1){transition-delay:.3s}.tl .bar:nth-child(4n+2){transition-delay:.45s}
@media (prefers-reduced-motion:reduce){.tl .bar{transform:none;transition:none}}



/* across jurisdictions: heading and intro side by side, three columns below */
.regions-head{align-items:end;margin-bottom:8px}.regions-head p{font-size:16px}
.regions-grid{margin-top:40px}.regions-grid .entry{border-top:1px solid var(--ink);padding-top:20px}

@media (prefers-reduced-motion:reduce){.btn,.btn::before,.topnav>ul>li>a,.topnav>ul>li>a::after,.foot-links a::after{transition:none}.topnav>ul>li>a[aria-current="page"]::after{animation:none}}

/* questions page: a numbered index, one block per question, and the sample and query
   cards inside question 01. The source design's mono labels (question numbers, kickers,
   sub-labels, back-to-top) are set here in the stylesheet's own small-label convention,
   the one .section-label and .eyebrow use; its gold accent is navy, its slate is --mid. */
.qindex{list-style:none;margin:40px 0 0;padding:0;border-top:1px solid var(--hair);max-width:820px}
.qindex li{border-bottom:1px solid var(--hair)}
.qindex a{display:flex;gap:18px;align-items:baseline;padding:17px 2px;line-height:1.4}
.qindex .qtext{font:400 18px/1.4 var(--serif);color:var(--ink);border-bottom:1px solid transparent}
.qindex a:hover .qtext{border-color:var(--ink)}
.qsub,.sample .shead,.query .qlabel,.qindex .qnum,.backtop{font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}
.qindex .qnum{color:var(--navy);flex:0 0 34px;padding-top:3px}

.qsec{scroll-margin-top:88px}
.qblock{border-top:2px solid var(--navy);padding-top:26px}
.band-ink .qblock{border-top-color:#fff}
.qblock p{max-width:68ch}
.qblock p.qlede{max-width:56ch}
.qsub{display:block;color:var(--mid);margin:42px 0 10px}
.band-ink .qsub{color:#8FA0BA}
.qlede{font:400 clamp(19px,1.7vw,22px)/1.45 var(--serif);color:var(--ink)}
.band-ink .qlede{color:#fff}

.sample{background:var(--soft);border-left:2px solid var(--navy);padding:24px 26px;margin:28px 0;max-width:820px}
.band .sample{background:#fff}
.sample .shead{display:block;color:var(--mid);margin-bottom:14px}
.sample p{margin:0;font:400 17px/1.75 var(--serif);color:var(--ink);max-width:64ch}
.sample em{font-style:italic;font-weight:500;color:var(--navy)}
.sample .snote{font:400 13px/1.6 var(--sans);color:var(--faint);margin-top:18px}

.query{border:1px solid var(--hair);padding:22px 26px;margin:28px 0;max-width:820px}
.query .qlabel{display:block;color:var(--navy);margin-bottom:12px}
.query q{quotes:"\201C" "\201D";display:block;font:400 clamp(19px,1.8vw,22px)/1.5 var(--serif);color:var(--ink);max-width:56ch}

.whynot h3{font:500 21px/1.3 var(--serif);margin:34px 0 8px}
.whynot h3+p{margin-top:0}

.backtop{display:inline-block;margin-top:38px;color:var(--mid);border-bottom:1px solid transparent}
.backtop:hover{color:var(--ink);border-color:var(--ink)}
.band-ink .backtop{color:#8FA0BA}.band-ink .backtop:hover{color:#fff;border-color:#fff}
@media (max-width:640px){.qindex a{gap:14px}.sample,.query{padding:20px}}

/* Geo page: the Aspen Geo founding offer (geo.html). Every rule below is scoped under
   .geo, the wrapper that page's fragment carries, so nothing here reaches another page.
   The equation figure is three inline SVGs (paper, equals with the mark, map) in a grid
   that stacks on a phone with the equals sign between the two pictures. */
.geo .geo-hero{padding:clamp(40px,5vw,72px) 0 clamp(56px,7vw,96px)}
.geo .geo-hero h1{max-width:24ch;margin-bottom:20px}
.geo .geo-nb{white-space:nowrap}
.geo h1,.geo h2,.geo .geo-sub{text-wrap:balance}
.geo .geo-sub{font:400 clamp(21px,2vw,28px)/1.3 var(--serif);color:var(--ink);max-width:48ch;margin:0 0 18px}
/* Trace a number: the hero figure. A pile of six invented records (each sheet an HTML box
   holding one inline SVG), the equals sign with the mark, and the map card. geo-hero.js
   lifts the source sheet, wipes in the source row, draws the connector in .geo-wires and
   places the chip. Without script the Hole 7 trace shows as authored in the markup. */
.geo .geo-hero{overflow-x:clip}
.geo .geo-fig{--gease:cubic-bezier(.22,1,.36,1);margin:clamp(44px,5vw,76px) 0 0;position:relative}
.geo .geo-fig[data-reveal]{transform:none}
.geo .geo-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.geo .geo-eq{position:relative;display:grid;grid-template-columns:minmax(0,1fr) clamp(104px,11vw,156px) minmax(0,1fr);grid-template-areas:"pile eq map" "pcap . mcap" ". . hint";align-items:center}
.geo .geo-pile{grid-area:pile;position:relative;aspect-ratio:500/420}
.geo .geo-sheet{position:absolute;border-radius:2px;background:var(--p);transform:rotate(var(--r));box-shadow:0 0 0 .5px rgba(14,31,58,.08),0 1px 1.5px rgba(14,31,58,.06),0 8px 22px -8px rgba(14,31,58,.14);transition:transform .6s var(--gease),opacity .6s var(--gease)}
.geo .geo-sheet::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 2px 4px rgba(14,31,58,.06),0 26px 50px -14px rgba(14,31,58,.28);opacity:0;transition:opacity .6s var(--gease);pointer-events:none}
.geo .geo-sheet svg{display:block;width:100%;height:100%;overflow:visible}
.geo .geo-sheet.is-leaving{z-index:20}
.geo .geo-sheet.is-active{z-index:30;transform:translateY(-4%) scale(1.03) rotate(calc(var(--r) * .2))}
.geo .geo-sheet.is-active::after{opacity:1}
.geo .geo-band{position:absolute;display:block;border-radius:2px;background:rgba(14,31,58,.1);transform:scaleX(0);transform-origin:0 50%;opacity:0;transition:transform .45s var(--gease),opacity .25s var(--gease)}
.geo .geo-band.is-on{transform:none;opacity:1;transition:transform .5s var(--gease) .12s,opacity .2s var(--gease) .12s}
.geo .geo-cap{display:block;max-width:none;margin:22px 0 0;text-align:center;font-size:12px;line-height:1.4;letter-spacing:.14em;text-transform:uppercase;color:var(--mid);font-weight:500}
.geo .geo-cap-pile{grid-area:pcap}.geo .geo-cap-map{grid-area:mcap}
.geo .geo-equals{grid-area:eq;display:flex;justify-content:center;transition:opacity .6s var(--gease),transform .6s var(--gease)}
.geo .geo-equals svg{display:block;width:clamp(88px,8.6vw,124px);height:auto;overflow:visible}
.geo .geo-eq > .geo-equals{translate:-5px 0}
.geo .geo-card{grid-area:map;position:relative;aspect-ratio:500/420;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 0 0 1px rgba(14,31,58,.08),0 1px 2px rgba(14,31,58,.05),0 20px 48px -20px rgba(14,31,58,.22);transition:opacity .7s var(--gease),transform .7s var(--gease)}
.geo .geo-map{display:block;width:100%;height:100%}
.geo .geo-contour{fill:none;stroke:#e2e4df;stroke-width:.8}
.geo .geo-contour-ix{stroke:#cdd1ca;stroke-width:1}
.geo .geo-creek{fill:none;stroke:#c6cfdb;stroke-width:1.3;stroke-linecap:round}
.geo .geo-north text{font:600 9.5px var(--sans);fill:#3a4049}
.geo .geo-north-l{fill:#3a4049}.geo .geo-north-r{fill:#fff;stroke:#3a4049;stroke-width:.75;stroke-linejoin:round}
.geo .geo-scale text,.geo .geo-legend text{font:500 9px var(--sans);fill:var(--faint);font-variant-numeric:tabular-nums}
.geo .geo-legend text{fill:var(--mid)}
.geo .geo-scale-o{fill:#fff;stroke:#3a4049;stroke-width:.75}.geo .geo-scale-f{fill:#3a4049}
.geo .geo-legend,.geo .geo-scale{transition:opacity .3s var(--gease)}
.geo .geo-card.geo-docked .geo-legend,.geo .geo-card.geo-docked .geo-scale{opacity:0}
.geo .geo-lg-claim{fill:rgba(14,31,58,.04);stroke:var(--navy);stroke-width:1.2}
.geo .geo-lg-sample{fill:#fff;stroke:var(--navy);stroke-width:1.2;stroke-linejoin:round}
.geo .geo-lg-hole{fill:var(--navy)}
.geo .geo-feat{cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent}
.geo .geo-hit{fill:none;pointer-events:all}
.geo .geo-hit-line{fill:none;stroke:transparent;stroke-width:24;pointer-events:stroke}
@media (pointer:coarse){.geo .geo-hit-line{stroke-width:64}}
.geo .geo-anchor{fill:none;pointer-events:none}
.geo .geo-claim-fill{fill:var(--navy);fill-opacity:.022;pointer-events:none;transition:fill-opacity .45s var(--gease)}
.geo .geo-claim{fill:none;stroke:var(--navy);stroke-width:1.5;stroke-linejoin:round;pointer-events:none}
.geo .geo-claim-halo{fill:none;stroke:var(--navy);stroke-opacity:0;stroke-width:7;stroke-linejoin:round;pointer-events:none;transition:stroke-opacity .45s var(--gease)}
.geo .geo-feat-claim.is-active .geo-claim-fill{fill-opacity:.045}
.geo .geo-feat-claim.is-active .geo-claim-halo{stroke-opacity:.07}
.geo .geo-feat-claim:focus-visible .geo-claim-halo{stroke-opacity:.2}
.geo .geo-collar{fill:var(--navy)}
.geo .geo-trace{stroke:var(--navy);stroke-opacity:.45;stroke-width:1;stroke-linecap:round;transition:stroke-opacity .45s var(--gease)}
.geo .geo-eoh{fill:var(--navy);fill-opacity:.45}
.geo .geo-feat-hole.is-active .geo-trace{stroke-opacity:.9}
.geo .geo-halo{fill:var(--navy);fill-opacity:.08;stroke:var(--navy);stroke-opacity:.28;stroke-width:1;opacity:0;transform:scale(.4);transform-box:fill-box;transform-origin:center;transition:opacity .35s var(--gease),transform .55s var(--gease)}
.geo .geo-feat.is-active .geo-halo{opacity:1;transform:none}
.geo .geo-focus{fill:none;stroke:var(--navy);stroke-width:1.5;opacity:0}
.geo .geo-feat:focus-visible .geo-focus{opacity:1}
.geo .geo-hlabel{font:500 9px var(--sans);fill:var(--faint);transition:fill .3s var(--gease)}
.geo .geo-feat.is-active .geo-hlabel{fill:var(--navy);font-weight:600}
.geo .geo-diamond{fill:#fff;stroke:var(--navy);stroke-width:1.3;stroke-linejoin:round;transition:fill .3s var(--gease)}
.geo .geo-feat-sample.is-active .geo-diamond{fill:var(--navy)}
.geo .geo-wires{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:40}
.geo .geo-wire{transition:opacity .25s var(--gease)}
.geo .geo-wire.is-out{opacity:0}
.geo .geo-wire path{fill:none;stroke:var(--navy);stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.geo .geo-wire .geo-wire-case{stroke:#fff;stroke-opacity:.6;stroke-width:3.25}
.geo .geo-wire.is-drawing path{transition:stroke-dashoffset .5s var(--gease) .2s}
.geo .geo-wire circle{fill:var(--navy);stroke:#fff;stroke-width:1.5;paint-order:stroke}
.geo .geo-wire .geo-dot-end{opacity:0;transform:scale(.3);transform-box:fill-box;transform-origin:center;transition:opacity .2s var(--gease) .58s,transform .28s var(--gease) .58s}
.geo .geo-wire.is-drawn .geo-dot-end{opacity:1;transform:none}
.geo .geo-chip{position:absolute;z-index:5;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:5px;max-width:calc(100% - 16px);padding:6px 11px 6px;border-radius:14px;font:400 12px/1.4 var(--sans);font-variant-numeric:tabular-nums;color:var(--mid);white-space:nowrap;background:rgba(255,255,255,.95);box-shadow:0 0 0 .5px rgba(14,31,58,.14),0 1px 2px rgba(14,31,58,.06),0 10px 26px -10px rgba(14,31,58,.3);pointer-events:none;opacity:0;transform:translateY(6px);transition:opacity .2s var(--gease),transform .5s var(--gease)}
.geo .geo-chip b{font-weight:600;color:var(--ink)}
.geo .geo-chip i{font-style:normal;color:var(--faint);margin-left:5px}
.geo .geo-chip.is-on{opacity:1;transform:none;transition:opacity .45s var(--gease) .36s,transform .5s var(--gease) .36s}
.geo .geo-chip.is-out{opacity:0;transform:none;transition:opacity .2s var(--gease)}
/* the no-script chip: beside Hole 7 on a wide card, docked at the foot of a narrow one */
.geo .geo-chip-static{left:17.6%;top:56.4%}
@media (max-width:1124px) and (min-width:861px),(max-width:520px){
  .geo .geo-chip-static.is-on{left:0;right:0;top:auto;bottom:10px;width:max-content;max-width:calc(100% - 20px);margin:0 auto}
  .geo .geo-card-static .geo-legend,.geo .geo-card-static .geo-scale{opacity:0}
}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.geo .geo-chip{background:rgba(255,255,255,.72);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px)}}
.geo .geo-hint{grid-area:hint;max-width:none;margin:8px 0 0;text-align:center;font-size:13px;line-height:1.45;color:var(--faint);text-wrap:balance;visibility:hidden}
.geo .geo-fig.geo-live .geo-hint{visibility:visible}
.geo .geo-hint-touch{display:none}
@media (hover:none){.geo .geo-hint-hover{display:none}.geo .geo-hint-touch{display:inline}}
.geo .geo-fig figcaption{font-size:12px;color:var(--faint);margin-top:32px;line-height:1.5}
.geo .geo-fig.geo-pre .geo-sheet{opacity:0;transform:translateY(-6%) rotate(calc(var(--r) * 1.8)) scale(1.02)}
.geo .geo-fig.geo-pre .geo-equals,.geo .geo-fig.geo-pre .geo-card{opacity:0;transform:translateY(12px)}
.geo .geo-fig.geo-settling .geo-sheet{transition-delay:calc(var(--i) * 70ms)}
.geo .geo-fig.geo-settling .geo-equals{transition-delay:.32s}
.geo .geo-fig.geo-settling .geo-card{transition-delay:.42s}
.geo .geo-fig.geo-instant *,.geo .geo-fig.geo-instant *::after{transition:none!important}
@media (prefers-reduced-motion:reduce){.geo .geo-fig *,.geo .geo-fig *::after{transition:none!important;animation:none!important}}
@media (max-width:860px){
  .geo .geo-eq{grid-template-columns:minmax(0,1fr);grid-template-areas:"pile" "pcap" "eq" "map" "mcap" "hint"}
  .geo .geo-pile,.geo .geo-card{width:100%;max-width:520px;justify-self:center}
  .geo .geo-cap-pile{margin-top:18px}
  .geo .geo-eq > .geo-equals{padding:30px 0 34px;translate:none}
  .geo .geo-equals svg{width:96px}
}
/* One accent besides navy, the copper signal, used sparingly: the How it works numerals,
   markers and lines, and (in lighter forms, over the photograph) the flow-through rule and
   eyebrow. Never body text. */
.geo{--geo-signal:#C0442B;--geo-signal-lt:#F2AC8E;--geo-hair:#DCDCD7}
.geo .geo-lede{font:400 clamp(20px,1.75vw,24px)/1.5 var(--serif);color:var(--ink);max-width:44ch}
.geo .geo-mail{font-size:13px;color:var(--mid);margin:14px 0 0}.geo .geo-mail a{border-bottom:1px solid currentColor}
.geo .band-ink .geo-mail{color:#B8C2D3}
.geo .geo-get{margin-top:40px;row-gap:8px}.geo .geo-get .entry p{font-size:16px}
.geo .geo-close h2.display{margin-bottom:0}
.geo .geo-close-lede{font:400 clamp(20px,1.75vw,24px)/1.5 var(--serif);color:#D3DAE5;max-width:40ch;margin:22px 0 0;text-wrap:pretty}
.geo .geo-close .btn-row{margin-top:36px}

/* the photo bands: a full-bleed photograph (geo-bg-*.webp/jpg, from src/tools/geo_photos.py)
   in its own colour. A light neutral overlay over the whole frame, and a soft scrim only
   where the type sits, keep light type legible (WCAG AA, measured against the lightest
   pixel behind each line); the rest of the photo reads true. The ground colour holds the
   contrast until the lazy image arrives. */
.geo .geo-photo-band{--geo-k:0,0,0;position:relative;isolation:isolate;overflow:hidden;background:var(--geo-ground);color:#fff}
.geo .geo-photo{position:absolute;inset:0;z-index:-2;display:block}
.geo .geo-photo img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--geo-focus,50% 50%)}
.geo .geo-photo-band::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--geo-scrim),rgba(var(--geo-k),var(--geo-veil));pointer-events:none}
.geo .geo-photo-band a:focus-visible{outline:2px solid #fff;outline-offset:4px}
.geo .geo-btn-light{background:#fff;border-color:#fff;color:var(--navy)}
.geo .geo-btn-light::before{background:var(--geo-btn-fill)}
.geo .geo-btn-light:hover{color:#fff}

/* the offer: one centred block on the haul road, a soft oval scrim behind it */
.geo .geo-offer-band{--geo-ground:#55534e;--geo-btn-fill:var(--navy);--geo-focus:50% 58%;--geo-veil:.2;
  --geo-scrim:radial-gradient(ellipse 44% 54% at 50% 50%,rgba(var(--geo-k),.38) 0%,rgba(var(--geo-k),.34) 52%,rgba(var(--geo-k),.16) 78%,rgba(var(--geo-k),0) 100%);
  padding:clamp(104px,11vw,160px) 0}
@media (max-width:640px){.geo .geo-offer-band{--geo-scrim:radial-gradient(ellipse 92% 52% at 50% 50%,rgba(var(--geo-k),.42) 0%,rgba(var(--geo-k),.38) 62%,rgba(var(--geo-k),.16) 86%,rgba(var(--geo-k),0) 100%)}}
.geo .geo-offer{display:flex;flex-direction:column;align-items:center;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.22)}
.geo .geo-offer .section-label{color:#fff;margin-bottom:24px}
.geo .geo-offer h2{font:400 clamp(26px,2.5vw,36px)/1.2 var(--serif);letter-spacing:-.012em;color:#fff;max-width:none}
.geo .geo-price{display:flex;flex-direction:column;align-items:center;max-width:none;margin:clamp(26px,3vw,40px) 0 0;color:#fff}
.geo .geo-price-n{font:300 clamp(64px,calc(8vw + 44px),168px)/.9 var(--serif);letter-spacing:-.035em;font-variant-numeric:lining-nums;color:#fff;text-shadow:0 2px 28px rgba(0,0,0,.18)}
.geo .geo-price-l{margin-top:clamp(16px,1.4vw,22px);font:500 12px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#fff}
.geo .geo-offer-cta{display:flex;flex-direction:column;align-items:center;margin-top:clamp(40px,4.2vw,60px)}
.geo .geo-offer .geo-btn-light{text-shadow:none}
.geo .geo-offer .geo-mail{color:#fff;margin-top:18px}

/* the flow-through band: the open pit and the mountains, cream type on a scrim that fades out
   to the right, light copper */
.geo .geo-ftc{--geo-ground:#4f4a42;--geo-btn-fill:#16181b;--geo-focus:50% 30%;--geo-veil:.2;
  --geo-scrim:radial-gradient(ellipse 40% 30% at 24% 27%,rgba(var(--geo-k),.32) 0%,rgba(var(--geo-k),.24) 55%,rgba(var(--geo-k),0) 100%),linear-gradient(90deg,rgba(var(--geo-k),.5) 0%,rgba(var(--geo-k),.46) 36%,rgba(var(--geo-k),.2) 60%,rgba(var(--geo-k),0) 78%);
  padding:clamp(104px,12vw,168px) 0}
.geo .geo-ftc .container{text-shadow:0 1px 2px rgba(0,0,0,.22)}
.geo .geo-ftc-eyebrow{font:600 12.5px/1.5 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#F8CBB6;margin:0 0 clamp(20px,2.2vw,30px);max-width:none}
.geo .geo-ftc-eyebrow::before{content:"";display:block;width:56px;height:3px;background:var(--geo-signal-lt);margin-bottom:22px}
.geo .geo-ftc-title{font:300 clamp(46px,7.2vw,112px)/.98 var(--serif);letter-spacing:-.025em;color:var(--cream);max-width:14ch;text-shadow:0 2px 30px rgba(0,0,0,.2)}
.geo .geo-ftc-title em{font-style:italic;font-weight:300}
.geo .geo-ftc-foot{margin-top:clamp(32px,3.6vw,52px)}
.geo .geo-ftc-foot p{font-size:clamp(17px,1.35vw,20px);line-height:1.55;color:var(--cream);max-width:54ch;text-wrap:pretty}
.geo .geo-ftc-foot p.geo-ftc-cta{margin-top:32px;font-size:inherit;line-height:1;text-shadow:none}
.geo .geo-ftc .geo-btn-light{background:var(--cream);border-color:var(--cream);color:var(--ink)}
.geo .geo-ftc .geo-btn-light:hover{color:var(--cream)}
@media (max-width:1023px){.geo .geo-ftc{--geo-scrim:linear-gradient(180deg,rgba(var(--geo-k),.6) 0%,rgba(var(--geo-k),.56) 30%,rgba(var(--geo-k),.45) 48%,rgba(var(--geo-k),.43) 74%,rgba(var(--geo-k),.26) 100%)}}

/* How it works: three centred steps in a row (a centred stack on a phone), each with a
   copper numeral in a ring, joined by fine lines that run from ring to ring. geo-page.js
   arms them when the section first scrolls into view: the first line draws to step two and
   lights its ring, then the second to step three; after that a short copper highlight drifts
   along the lines on a slow loop, paused offscreen. Only transform and opacity move. Without
   script, and with reduced motion, it is all drawn. */
.geo .geo-how-sec h2.display{margin:0 auto clamp(48px,5vw,76px);text-align:center}
.geo .geo-how{--mk:46px;--gap:clamp(28px,4vw,56px);--lk:14px;--flow:9s;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--gap)}
.geo .geo-how li{position:relative;text-align:center}
.geo .geo-mk{position:relative;display:flex;align-items:center;justify-content:center;width:var(--mk);height:var(--mk);margin:0 auto 26px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--geo-hair)}
.geo .geo-mk::after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 0 1px var(--geo-signal),0 0 0 5px rgba(192,68,43,.07);background:#fff}
.geo .geo-mk b{position:relative;z-index:1;font:500 13px/1 var(--sans);letter-spacing:.06em;color:var(--geo-signal)}
.geo .geo-link{position:absolute;top:calc(var(--mk) / 2 - 2px);left:calc(50% + var(--mk) / 2 + var(--lk));width:calc(100% + var(--gap) - var(--mk) - 2 * var(--lk));height:4px;overflow:hidden;pointer-events:none}
.geo .geo-link::before,.geo .geo-link::after,.geo .geo-link i{content:"";position:absolute;left:0;right:0;top:1.5px;height:1px}
.geo .geo-link::before{background:var(--geo-hair)}
.geo .geo-link::after{background:rgba(192,68,43,.68);transform-origin:0 50%}
.geo .geo-link i{top:1px;height:2px;background:linear-gradient(90deg,rgba(192,68,43,0) 36%,rgba(192,68,43,1) 50%,rgba(192,68,43,0) 64%);opacity:0;transform:translateX(-50%)}
.geo .geo-how h3{font:500 21px/1.3 var(--serif);margin:0 0 8px;text-wrap:balance}
.geo .geo-how p{font-size:15px;max-width:30ch;margin-left:auto;margin-right:auto;text-wrap:balance}
.geo .geo-how.is-armed .geo-mk::after{opacity:0;transform:scale(.84)}
.geo .geo-how.is-armed .geo-link::after{transform:scaleX(0)}
.geo .geo-how.is-run .geo-mk::after{opacity:1;transform:none;transition:opacity .6s var(--ease) var(--d,0s),transform .8s cubic-bezier(.22,1,.36,1) var(--d,0s)}
.geo .geo-how.is-run .geo-link::after{transform:none;transition:transform 1.1s cubic-bezier(.65,0,.35,1) var(--d,0s)}
.geo .geo-how li:nth-child(1) .geo-mk{--d:.05s}
.geo .geo-how li:nth-child(1) .geo-link{--d:.35s}
.geo .geo-how li:nth-child(2) .geo-mk{--d:1.3s}
.geo .geo-how li:nth-child(2) .geo-link{--d:1.6s}
.geo .geo-how li:nth-child(3) .geo-mk{--d:2.55s}
@keyframes geo-flow-1{0%{opacity:0;transform:translateX(-50%)}5%{opacity:1}31%{opacity:1;transform:translateX(50%)}34%,100%{opacity:0;transform:translateX(50%)}}
@keyframes geo-flow-2{0%,34%{opacity:0;transform:translateX(-50%)}39%{opacity:1}65%{opacity:1;transform:translateX(50%)}68%,100%{opacity:0;transform:translateX(50%)}}
.geo .geo-how.is-flow .geo-link i{animation:geo-flow-1 var(--flow) cubic-bezier(.45,0,.55,1) infinite}
.geo .geo-how.is-flow li:nth-child(2) .geo-link i{animation-name:geo-flow-2}
.geo .geo-how.is-paused .geo-link i{animation-play-state:paused}
@media (max-width:700px){
  .geo .geo-how{--mk:42px;--lk:12px;--run:40px;grid-template-columns:minmax(0,1fr)}
  .geo .geo-how li{padding-bottom:calc(var(--run) + 2 * var(--lk))}
  .geo .geo-how li:last-child{padding-bottom:0}
  .geo .geo-mk{margin-bottom:20px}
  .geo .geo-link{top:auto;bottom:var(--lk);left:calc(50% - 2px);width:4px;height:var(--run)}
  .geo .geo-link::before,.geo .geo-link::after{top:0;bottom:0;left:1.5px;right:auto;width:1px;height:auto}
  .geo .geo-link::after{transform-origin:50% 0}
  .geo .geo-link i{top:0;bottom:0;left:1px;right:auto;width:2px;height:auto;background:linear-gradient(180deg,rgba(192,68,43,0) 36%,rgba(192,68,43,1) 50%,rgba(192,68,43,0) 64%);transform:translateY(-50%)}
  .geo .geo-how.is-armed .geo-link::after{transform:scaleY(0)}
  .geo .geo-how.is-run .geo-link::after{transform:none}
  @keyframes geo-flow-1{0%{opacity:0;transform:translateY(-50%)}5%{opacity:1}31%{opacity:1;transform:translateY(50%)}34%,100%{opacity:0;transform:translateY(50%)}}
  @keyframes geo-flow-2{0%,34%{opacity:0;transform:translateY(-50%)}39%{opacity:1}65%{opacity:1;transform:translateY(50%)}68%,100%{opacity:0;transform:translateY(50%)}}
}
@media (prefers-reduced-motion:reduce){
  .geo .geo-how .geo-mk::after,.geo .geo-how .geo-link::after{opacity:1!important;transform:none!important;transition:none!important}
  .geo .geo-how .geo-link i{display:none}
}

/* Questions: no heading, one centred column of native details and summary, hairline rules,
   Newsreader questions set left inside the column, a plus that turns to a minus. One open at
   a time. geo-page.js eases the height open and closed; without it, or with reduced motion,
   they simply toggle. */
.geo .geo-faq-sec{padding:clamp(56px,7vw,96px) 0}
.geo .geo-faq{max-width:740px;margin:0 auto;border-top:1px solid var(--geo-hair)}
.geo .geo-faq details{border-bottom:1px solid var(--geo-hair)}
.geo .geo-faq summary{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:26px 0;list-style:none;cursor:pointer;border-radius:3px;-webkit-tap-highlight-color:transparent}
.geo .geo-faq summary::-webkit-details-marker{display:none}
.geo .geo-faq summary::marker{content:""}
.geo .geo-faq summary:focus{outline:none}
.geo .geo-faq summary:focus-visible{outline:2px solid var(--navy);outline-offset:4px}
.geo .geo-q{font:500 clamp(19px,1.6vw,21px)/1.35 var(--serif);color:var(--ink);text-wrap:pretty}
.geo .geo-qi{position:relative;flex:none;width:30px;height:30px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--geo-hair);transition:box-shadow .35s var(--ease),transform .5s cubic-bezier(.22,1,.36,1)}
.geo .geo-qi::before,.geo .geo-qi::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:1.5px;margin:-.75px 0 0 -5.5px;border-radius:1px;background:var(--ink);transition:transform .5s cubic-bezier(.22,1,.36,1)}
.geo .geo-qi::after{transform:rotate(90deg)}
.geo .geo-faq summary:hover .geo-qi{box-shadow:inset 0 0 0 1px #9aa1aa}
.geo .geo-faq details[open]:not(.is-closing) .geo-qi{transform:rotate(180deg);box-shadow:inset 0 0 0 1px var(--ink)}
.geo .geo-faq details[open]:not(.is-closing) .geo-qi::after{transform:rotate(0deg)}
.geo .geo-a{overflow:hidden}
.geo .geo-a p{margin:0;padding:0 52px 30px 0;font-size:16px;line-height:1.6;max-width:640px;text-wrap:pretty}
@media (prefers-reduced-motion:reduce){.geo .geo-qi,.geo .geo-qi::before,.geo .geo-qi::after{transition:none}}

@media (max-width:860px){.geo .cols-2{row-gap:12px}}
@media (max-width:520px){
  .geo .geo-offer-cta,.geo .geo-offer-cta .btn,.geo .geo-ftc-cta .btn,.geo .geo-close .btn{display:block;width:100%;text-align:center}
  .geo .geo-a p{padding-right:0}
}

/* Geo hero v3: colour terrain, a zoom intro and a red box trace. Overrides the Geo page
   block above (left as it was) for the hero figure only. The map card holds a stage that
   carries the terrain images (geo-terrain*.webp/jpg, from src/tools/geo_terrain.py) and the
   SVG overlay in one plane, tilted a few degrees; the legend, scale, north arrow and chip
   sit flat above it. geo-hero.js plays the intro (push in, colour, boundary, traces, a tap
   on S1005, the certificate lifts, red boxes and the line) and then the hover trace. The
   final state below is what no script and reduced motion see. Red is only for the boxes
   and the connector; the page defines --geo-signal, the fallback keeps this block whole. */
.geo .geo-hero h1{max-width:none;margin-bottom:24px}
.geo .geo-sub{max-width:36em;font-size:clamp(20px,1.75vw,25px);line-height:1.34;margin-bottom:20px;color:var(--ink)}
.geo .geo-hero .standfirst{max-width:60ch}
.geo .geo-fig{--sig:var(--geo-signal,#C0442B);--tilt:12deg}
.geo .geo-fig[data-reveal]{opacity:1}
.geo .geo-card{background:#717b66;isolation:isolate;container-type:inline-size;box-shadow:0 0 0 1px rgba(14,31,58,.1),0 1px 2px rgba(14,31,58,.06),0 24px 56px -22px rgba(14,31,58,.34)}
.geo .geo-stage{position:absolute;inset:0;transform-origin:50% 50%;transform:perspective(1000px) translate(0,0) rotateX(var(--tilt)) scale(1)}
.geo .geo-far,.geo .geo-near{position:absolute;pointer-events:none}
.geo .geo-far img,.geo .geo-near img{display:block;width:100%;height:100%;max-width:none}
.geo .geo-near{-webkit-mask-image:linear-gradient(90deg,transparent,#000 3.2%,#000 96.8%,transparent),linear-gradient(180deg,transparent,#000 3.2%,#000 96.8%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent,#000 3.2%,#000 96.8%,transparent),linear-gradient(180deg,transparent,#000 3.2%,#000 96.8%,transparent);mask-composite:intersect}
.geo .geo-mute,.geo .geo-haze{position:absolute;inset:-80%;pointer-events:none;opacity:0}
.geo .geo-mute{background:#8b8f8a;mix-blend-mode:saturation}
.geo .geo-haze{background:#eef1f3}
.geo .geo-map{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
/* the overlay */
.geo .geo-dim{fill:#0b1622;fill-opacity:.14;pointer-events:none}
.geo .geo-ore{pointer-events:none}
.geo .geo-ore-shell{fill:url(#geo-ore-g);stroke:#f3c39b;stroke-opacity:.7;stroke-width:.8}
.geo .geo-ore-core{fill:#c0643a;fill-opacity:.34;stroke:#eaa877;stroke-opacity:.55;stroke-width:.6}
.geo .geo-claim-case{fill:none;stroke:var(--navy);stroke-opacity:.5;stroke-width:3.6;stroke-linejoin:round;pointer-events:none}
.geo .geo-claim{fill:none;stroke:#fff;stroke-width:1.6;stroke-linejoin:round;pointer-events:none}
.geo .geo-claim-red{fill:none;stroke:var(--sig);stroke-width:1.6;stroke-linejoin:round;stroke-dasharray:1 2;stroke-dashoffset:1;opacity:0;pointer-events:none}
.geo .geo-trace-case{fill:none;stroke:#10140f;stroke-opacity:.62;stroke-width:5.8;stroke-linecap:round}
.geo .geo-trace{fill:none;stroke-opacity:1;stroke-width:3.4;stroke-linecap:round}
.geo .geo-collar{fill:#fff;stroke:var(--navy);stroke-width:1.5}
.geo .geo-hlabel{font:600 10.5px var(--sans);fill:#fff;paint-order:stroke;stroke:rgba(9,18,28,.6);stroke-width:2.8px;stroke-linejoin:round}
.geo .geo-feat.is-active .geo-hlabel{fill:#fff;font-weight:700}
.geo .geo-diamond{stroke:#fff;stroke-width:1.4;stroke-linejoin:round;transform-box:fill-box;transform-origin:center}
.geo .geo-bt,.geo .geo-anchor-r,.geo .geo-probe,.geo .geo-eoh{fill:none;stroke:none;pointer-events:none}
.geo .geo-focus{stroke:#fff;stroke-width:1.5}
.geo .geo-nsbox{fill:none;stroke:var(--sig);stroke-width:1.5;display:none}
html:not(.js) .geo .geo-nsbox{display:inline}
/* flat chrome over the terrain */
.geo .geo-chrome{position:absolute;inset:0;pointer-events:none;font:500 clamp(9px,2.05cqw,10.5px)/1 var(--sans);color:#2b323b;letter-spacing:.01em}
.geo .geo-scale,.geo .geo-legend,.geo .geo-north{position:absolute;display:flex;align-items:center;background:rgba(255,255,255,.8);box-shadow:0 0 0 .5px rgba(14,31,58,.14),0 2px 8px -2px rgba(14,31,58,.18)}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.geo .geo-scale,.geo .geo-legend,.geo .geo-north{background:rgba(255,255,255,.7);-webkit-backdrop-filter:saturate(170%) blur(12px);backdrop-filter:saturate(170%) blur(12px)}}
.geo .geo-scale{left:10px;bottom:10px;flex-direction:column;align-items:stretch;gap:3px;padding:6px 9px 5px;border-radius:9px}
.geo .geo-scale-bar{display:block;width:clamp(64px,17cqw,88px);height:auto;overflow:visible}
.geo .geo-sb-o{fill:#fff;stroke:#2b323b;stroke-width:.8}.geo .geo-sb-f{fill:#2b323b}
.geo .geo-scale-l{display:flex;justify-content:space-between;font-variant-numeric:tabular-nums;color:#4a525c}
.geo .geo-scale-l i{font-style:normal}
.geo .geo-legend{right:10px;bottom:10px;gap:clamp(8px,2.4cqw,12px);padding:7px 10px;border-radius:9px;white-space:nowrap}
.geo .geo-lg{display:inline-flex;align-items:center;gap:5px}
.geo .geo-lg i{display:block;flex:none}
.geo .geo-lg-ramp{width:24px;height:4px;border-radius:2px}
.geo .geo-lg-ore{width:12px;height:8px;border-radius:50%;background:rgba(206,120,70,.55);box-shadow:inset 0 0 0 .8px #d98b5a}
.geo .geo-lg-claim{width:11px;height:8px;border-radius:1.5px;box-shadow:inset 0 0 0 1.4px var(--navy)}
.geo .geo-north{top:10px;right:10px;width:28px;height:28px;justify-content:center;border-radius:50%}
.geo .geo-north svg{width:15px;height:20px;display:block}
.geo .geo-north text{font:700 8px var(--sans);fill:#2b323b}
.geo .geo-n-l{fill:#2b323b}.geo .geo-n-r{fill:#fff;stroke:#2b323b;stroke-width:.8;stroke-linejoin:round}
/* the source sheet lifts straight and well forward, so its row can be boxed exactly */
.geo .geo-sheet::after{opacity:var(--lift,0)}
.geo .geo-sheet.is-active{transform:translateY(-5%) scale(1.12) rotate(0deg)}
.geo .geo-sheet.is-active::after{opacity:var(--lift,1)}
.geo .geo-band{background:none;border-radius:2px;box-shadow:inset 0 0 0 1.5px var(--sig);transform:none}
.geo .geo-fig.geo-live .geo-band{visibility:hidden}
/* red boxes and the connector, drawn by the script in .geo-wires */
.geo .geo-wires .geo-box{fill:none;stroke:var(--sig);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.geo .geo-wires .geo-box-case{fill:none;stroke:#fff;stroke-opacity:.85;stroke-width:3}
.geo .geo-wires .geo-rowbox{fill:var(--sig);fill-opacity:0}
.geo .geo-wires .geo-link{fill:none;stroke:var(--sig);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.geo .geo-wires .geo-link-case{fill:none;stroke:#fff;stroke-opacity:.6;stroke-width:3.25;stroke-linecap:round}
.geo .geo-wires .geo-pulse{fill:#fff;fill-opacity:.18;stroke:#fff;stroke-width:1.5}
/* the no-script chip sits under S1005 */
.geo .geo-chip-static{left:58.8%;top:81.4%;width:max-content;translate:-50% 0}
@media (max-width:1124px) and (min-width:861px),(max-width:520px){.geo .geo-chip-static.is-on{translate:none}}
.geo .geo-fig.geo-intro .geo-sheet,.geo .geo-fig.geo-intro .geo-sheet::after,.geo .geo-fig.geo-live .geo-chip{transition:none}
/* before the script takes over, motion-friendly pages wait in the intro's first frame; if
   the script never runs, the final state comes back on its own after a moment */
@keyframes geo-v3-stage{to{transform:perspective(1000px) translate(0,0) rotateX(var(--tilt)) scale(1)}}
@keyframes geo-v3-show{to{opacity:1}}
@keyframes geo-v3-hide{to{opacity:0}}
@media (prefers-reduced-motion:no-preference){
  html.js .geo .geo-fig:not(.geo-live) .geo-stage{transform:perspective(1000px) translate(-3%,2.5%) rotateX(0deg) scale(.4167);animation:geo-v3-stage .01s 2.5s forwards}
  html.js .geo .geo-fig:not(.geo-live) .geo-near,html.js .geo .geo-fig:not(.geo-live) .geo-map,html.js .geo .geo-fig:not(.geo-live) .geo-chrome{opacity:0;animation:geo-v3-show .01s 2.5s forwards}
  html.js .geo .geo-fig:not(.geo-live) .geo-mute{opacity:.62;animation:geo-v3-hide .01s 2.5s forwards}
  html.js .geo .geo-fig:not(.geo-live) .geo-haze{opacity:.26;animation:geo-v3-hide .01s 2.5s forwards}
  html.js .geo .geo-fig:not(.geo-live) .geo-chip{display:none}
  html.js .geo .geo-fig:not(.geo-live) .geo-band{visibility:hidden}
  html.js .geo .geo-fig:not(.geo-live) .geo-sheet.is-active{transform:rotate(var(--r));z-index:auto}
  html.js .geo .geo-fig:not(.geo-live) .geo-sheet.is-active::after{opacity:0}
}
@media (max-width:860px){
  .geo .geo-eq > .geo-equals{padding:16px 0 20px}
  .geo .geo-cap-pile{margin-top:14px}
}
@media (max-width:520px){
  .geo .geo-legend .geo-lg:nth-child(2){display:none}
  .geo .geo-scale{left:8px;bottom:8px}.geo .geo-legend{right:8px;bottom:8px;padding:6px 8px}.geo .geo-north{top:8px;right:8px}
}

/* The property figure (home and Geo heroes) */
/* The hero figure of the home and Geo pages: the illustrative property (a synthetic deposit and
   drilling on real open terrain) in a quiet window frame: rounded corners, a hairline, a soft layered
   shadow and a slim bar with three dots. On screens 700px and up with WebGL2 a live 3D scene fills the
   window (geo-3d.js); elsewhere three 16:10 posters captured from that scene (3200x2000) crossfade in
   turn (geo-view.js), and a phone gets a 5:6 crop of each. Three view buttons at the top left, dark
   glass pills, fly the 3D camera or switch the posters; a one-line colour key sits under the lit one.
   Shown no wider than 1160px, so the posters stay sharp on 2x screens. Scoped to .geo-view, so the
   same figure works on any page. */
.geo-view{margin:clamp(40px,4.6vw,64px) 0 0;max-width:1160px}
.geo-view-win{position:relative;border-radius:12px;overflow:hidden;isolation:isolate;background:#0e1f3a;box-shadow:0 0 0 1px rgba(14,31,58,.16),0 1px 2px rgba(14,31,58,.08),0 10px 24px -12px rgba(14,31,58,.22),0 44px 90px -36px rgba(14,31,58,.42)}
.geo-view-win::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);pointer-events:none;z-index:3}
.geo-view-bar{display:flex;align-items:center;gap:8px;height:30px;padding:0 13px;background:#0a172c;border-bottom:1px solid rgba(255,255,255,.06)}
.geo-view-bar i{width:11px;height:11px;border-radius:50%;background:rgba(255,255,255,.17)}
.geo-view-shots{position:relative;aspect-ratio:16/10}
.geo-view-shot{position:absolute;inset:0;display:block;opacity:0;z-index:0}
.geo-view-shot img{width:100%;height:100%;max-width:none;object-fit:cover}
.geo-view-shot.is-prev{opacity:1;z-index:1}
.geo-view-shot.is-on{opacity:1;z-index:2;transition:opacity 1.2s cubic-bezier(.45,0,.25,1)}
.geo-view-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;margin-top:22px}
.geo-view-note{font-size:12px;line-height:1.5;color:var(--faint);max-width:560px}
.geo-view-btns{position:absolute;left:14px;top:12px;z-index:6;display:flex;flex-direction:column;align-items:flex-start;gap:6px;font-family:var(--sans);-webkit-font-smoothing:antialiased}
.geo-view-btn{margin:0;min-width:156px;min-height:32px;box-sizing:border-box;display:flex;align-items:center;gap:9px;padding:5px 14px 5px 11px;border:1px solid #1e3358;border-radius:10px;background:rgba(10,20,38,.84);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font:500 12px/1.2 var(--sans);letter-spacing:.03em;color:#cfc9ba;text-align:left;white-space:nowrap;cursor:pointer;box-shadow:0 1px 2px rgba(8,20,42,.18),0 6px 16px -8px rgba(8,20,42,.35);transition:color .25s var(--ease),border-color .25s var(--ease),background-color .25s var(--ease)}
.geo-view-btn i{width:7px;height:7px;border-radius:50%;flex:none;background:#2a4370;transition:background-color .25s var(--ease),box-shadow .25s var(--ease)}
.geo-view-btn:hover{color:#ebe6da;border-color:#2c4a78}
.geo-view-btn[aria-pressed="true"]{color:#f5f1e8;border-color:#4f88ad;background:rgba(12,26,50,.9)}
.geo-view-btn[aria-pressed="true"] i{background:#8fc7e8;box-shadow:0 0 0 3px rgba(143,199,232,.16)}
.geo-view-btn:focus-visible{outline:2px solid #8fc7e8;outline-offset:2px}
.geo-view-key{display:none;align-items:center;gap:7px;margin:-2px 0 2px 12px;padding:4px 9px;border-radius:7px;background:rgba(10,20,38,.7);font:400 10.5px/1.2 var(--sans);letter-spacing:.02em;color:#cfc9ba;white-space:nowrap}
.geo-view-btn[aria-pressed="true"] + .geo-view-key{display:inline-flex}
.geo-view-key b{width:58px;height:5px;border-radius:3px;box-shadow:0 0 0 1px rgba(245,241,232,.14)}
.geo-view-key b.is-cu{background:linear-gradient(to right,#22405f,#8a3a52,#ff4b33);background:linear-gradient(in srgb-linear to right,#22405f,#8a3a52,#ff4b33)}
.geo-view-key b.is-conf{background:linear-gradient(to right,#c2504a,#c9b45e,#2f6f4f);background:linear-gradient(in srgb-linear to right,#c2504a,#c9b45e,#2f6f4f)}
html:not(.js) .geo-view-btns{display:none}
.geo-view.is-instant *{transition:none!important}
@media (prefers-reduced-motion:reduce){.geo-view *{transition:none!important}}
@media (max-width:640px){
  .geo-view{margin-top:40px}
  .geo-view-win{border-radius:10px}
  .geo-view-bar{height:22px;gap:6px;padding:0 10px}
  .geo-view-bar i{width:8px;height:8px}
  .geo-view-shots{aspect-ratio:5/6}
  .geo-view-foot{margin-top:16px}
  .geo-view-btns{left:8px;top:8px;gap:4px;align-items:stretch}
  .geo-view-btn{min-width:0;min-height:24px;gap:6px;padding:3px 9px 3px 7px;border-radius:7px;font-size:10.5px;letter-spacing:.02em}
  .geo-view-btn i{width:5px;height:5px}
  .geo-view-btn[aria-pressed="true"] i{box-shadow:0 0 0 2px rgba(143,199,232,.16)}
  .geo-view-btn[aria-pressed="true"] + .geo-view-key{display:none}
}

/* The live 3D layer (geo-3d.js) laid over the poster, with a reset button and the wheel hint. The
   view buttons (.geo-view-btns) sit above it. */
.geo-view .g3{position:absolute;inset:0;z-index:4;opacity:0;transition:opacity .9s cubic-bezier(.45,0,.25,1);background:radial-gradient(120% 95% at 55% 48%,rgba(255,255,255,.06),rgba(255,255,255,0) 45%,rgba(8,20,42,.07) 100%),linear-gradient(to top,var(--g3-b2) 0%,var(--g3-b1) 47%,var(--g3-b0) 100%)}
.geo-view .g3.on{opacity:1}
.geo-view .g3-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;outline:none;touch-action:none}
.geo-view .g3-canvas:active{cursor:grabbing}
.geo-view .g3-canvas:focus-visible{box-shadow:inset 0 0 0 2px #8fc7e8}
.geo-view .g3-reset{position:absolute;right:12px;bottom:12px;z-index:3;margin:0;border:1px solid #1e3358;background:rgba(10,20,38,.82);color:#cfc9ba;font:500 11.5px/1 var(--sans);letter-spacing:.02em;padding:7px 12px;border-radius:999px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:color .2s}
.geo-view .g3-reset:hover{color:#f5f1e8}
.geo-view .g3-reset:focus-visible{outline:2px solid #8fc7e8;outline-offset:2px}
.geo-view .g3-hint{position:absolute;left:50%;bottom:14px;z-index:3;transform:translateX(-50%);padding:7px 12px;border-radius:999px;background:rgba(10,20,38,.82);color:#f5f1e8;font:400 12px/1.2 var(--sans);white-space:nowrap;opacity:0;transition:opacity .3s;pointer-events:none}
.geo-view .g3-hint.show{opacity:1}
.geo-view .g3-hint kbd{font:inherit;padding:1px 5px;border-radius:4px;background:rgba(255,255,255,.14)}
@media (prefers-reduced-motion:reduce){.geo-view .g3{transition:none}}
/* The certificate trace in the Drill hole assays view: a synthetic lab certificate built from the
   illustrative property's own data, as if scanned (off-white paper, faint grain, a slight turn,
   typewriter figures, a specimen stamp), on the right third of the frame; one Cu value boxed in copper
   red and a fine copper line from it to the interval on the hole. System fonts only. */
.geo-view .g3-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.geo-view .g3-cert{--cw:clamp(250px,calc(var(--g3w,1160px)*.3),440px);position:absolute;z-index:5;right:2.4%;top:7.5%;width:var(--cw);font-size:calc(var(--cw)/36.5);opacity:0;visibility:hidden;transform:translateX(18px) rotate(-.8deg);transform-origin:70% 20%;transition:opacity .4s cubic-bezier(.2,.7,.2,1),transform .4s cubic-bezier(.2,.7,.2,1),visibility 0s linear .4s;pointer-events:none}
.geo-view .g3-cert.on{opacity:1;visibility:visible;transform:translateX(0) rotate(-.8deg);transition:opacity .4s cubic-bezier(.2,.7,.2,1),transform .4s cubic-bezier(.2,.7,.2,1),visibility 0s;pointer-events:auto}
.geo-view .g3-cert.now,.geo-view .g3-cert.now *{transition:none!important}
.geo-view .g3-paper{position:relative;padding:1.5em 1.6em 1.25em;color:#26241f;background-color:#f2eee3;background-image:radial-gradient(130% 90% at 30% 20%,rgba(255,255,255,.5),rgba(255,255,255,0) 60%),linear-gradient(to bottom,rgba(120,110,90,.06),rgba(120,110,90,0) 18%,rgba(120,110,90,0) 82%,rgba(120,110,90,.08)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .32 0 0 0 0 .27 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");border-radius:1.5px;box-shadow:0 0 0 .5px rgba(60,50,30,.18),0 1px 2px rgba(8,20,42,.28),0 12px 30px -10px rgba(8,20,42,.5);font:400 1em/1.25 "Courier New",Courier,ui-monospace,monospace;-webkit-font-smoothing:antialiased}
.geo-view .g3-lab{font:700 1.12em/1.1 "Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:.07em;text-transform:uppercase;color:#1f2a3a}
.geo-view .g3-doc{margin:.3em 0 .8em;padding-bottom:.55em;border-bottom:1.5px solid #3a3730;font:400 .9em/1 "Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#4a463d}
.geo-view .g3-meta{display:grid;grid-template-columns:auto 1fr auto auto;column-gap:.7em;row-gap:.15em;font-size:.86em;margin-bottom:.65em}
.geo-view .g3-meta span{color:#6b665b}
.geo-view .g3-meta b{font-weight:700;white-space:nowrap}
.geo-view .g3-methods{font-size:.82em;color:#4a463d;margin-bottom:.55em;padding:.4em 0;border-top:1px dashed rgba(58,55,48,.4);border-bottom:1px dashed rgba(58,55,48,.4)}
.geo-view .g3-paper table{width:100%;border-collapse:collapse;font-size:.92em;font-variant-numeric:tabular-nums}
.geo-view .g3-paper th{font:700 .86em/1.2 "Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:.03em;text-align:left;padding:0 .3em .35em;border-bottom:1px solid #3a3730;color:#33302a}
.geo-view .g3-paper td{padding:.13em .3em;white-space:nowrap}
.geo-view .g3-paper .n{text-align:right}
.geo-view .g3-paper tbody tr:nth-child(5n) td{border-bottom:1px dotted rgba(58,55,48,.35)}
.geo-view .g3-hit td{background:linear-gradient(rgba(184,86,47,.16),rgba(184,86,47,.16)) no-repeat 0 0/0% 100%;transition:background-size .28s cubic-bezier(.3,.6,.2,1)}
.geo-view .g3-cert.hl .g3-hit td{background-size:100% 100%}
.geo-view .g3-hit td:nth-child(2){transition-delay:.04s}.geo-view .g3-hit td:nth-child(3){transition-delay:.08s}.geo-view .g3-hit td:nth-child(4){transition-delay:.12s}.geo-view .g3-hit td:nth-child(5){transition-delay:.16s}
.geo-view .g3-box{display:inline-block;padding:0 .25em;margin:0 -.25em;border-radius:1px;box-shadow:0 0 0 1.5px rgba(181,78,39,0);transition:box-shadow .2s ease .2s}
.geo-view .g3-cert.hl .g3-box{box-shadow:0 0 0 1.5px #b54e27}
.geo-view .g3-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:1em;margin-top:.8em;font-size:.76em;color:#6b665b}
.geo-view .g3-sig{width:6.4em;height:1.8em;flex:none;fill:none;stroke:#23336a;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.72}
.geo-view .g3-sign{display:none}
.geo-view .g3-stamp{position:absolute;right:6.2em;bottom:.7em;padding:.15em .55em;border:2px solid rgba(170,48,36,.36);border-radius:.3em;color:rgba(170,48,36,.36);font:900 1.5em/1 "Arial Black","Helvetica Neue",Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;transform:rotate(-9deg);mix-blend-mode:multiply;pointer-events:none}
.geo-view .g3-cert-x{position:absolute;right:.35em;top:.3em;margin:0;width:1.9em;height:1.9em;border:0;border-radius:50%;background:none;color:#6b665b;font:400 1.35em/1 "Helvetica Neue",Arial,sans-serif;cursor:pointer}
.geo-view .g3-cert-x:hover{color:#1f2a3a;background:rgba(58,55,48,.08)}
.geo-view .g3-cert-x:focus-visible{outline:2px solid #b54e27;outline-offset:1px}
.geo-view .g3-trace{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;overflow:visible;opacity:0}
.geo-view .g3-trace.show{opacity:1}
.geo-view .g3-trace line.h{stroke:rgba(255,248,238,.55);stroke-width:3.6;stroke-linecap:round}
.geo-view .g3-trace line.l{stroke:#c45a2c;stroke-width:1.5;stroke-linecap:round}
.geo-view .g3-trace circle{opacity:0;transition:opacity .25s}
.geo-view .g3-trace.ringed circle{opacity:1}
.geo-view .g3-trace circle.rh{fill:none;stroke:rgba(255,248,238,.6);stroke-width:3.6}
.geo-view .g3-trace circle.r{fill:rgba(196,90,44,.16);stroke:#c45a2c;stroke-width:1.5}
.geo-view .g3-trace circle.d{fill:#c45a2c}
@media (prefers-reduced-motion:reduce){.geo-view .g3-cert,.geo-view .g3-cert *,.geo-view .g3-trace circle{transition:none!important}}
/* compact: the phone poster's certificate, fewer rows at a larger size, low on the right */
.geo-view .g3.compact .g3-cert{--cw:calc(var(--g3w,500px)*.6);top:auto;bottom:3.5%;right:3%;font-size:calc(var(--cw)/27)}
.geo-view .g3.compact .g3-paper tbody tr:not(.g3-near),.geo-view .g3.compact .g3-methods,.geo-view .g3.compact .g3-foot>span,.geo-view .g3.compact .g3-meta>:nth-child(n+5):not(:nth-child(13)):not(:nth-child(14)){display:none}
.geo-view .g3.compact .g3-meta{grid-template-columns:auto 1fr}
.geo-view .g3.compact .g3-paper{padding:1.1em 1.2em .9em}
.geo-view .g3.compact .g3-stamp{bottom:.5em;right:1.2em;font-size:1.25em}

/* Home: the hero text over the property figure at the full content width, as on the Geo page */
.home-hero{padding:clamp(40px,5vw,72px) 0 clamp(56px,7vw,96px)}
.home-hero .hero-actions{margin-top:32px}
