/* SHRIVE footer: the far side of the confessional screen. Transform and opacity only. */
.shrive-foot,.shrive-docs-foot{--sf-ease:var(--ease-out-expo,cubic-bezier(.16,1,.3,1));--sf-notch:radial-gradient(circle at 0 50%,transparent 3.5px,#000 4px) left/51% 100% no-repeat,radial-gradient(circle at 100% 50%,transparent 3.5px,#000 4px) right/51% 100% no-repeat}
.site-foot.full-footer.shrive-foot{position:relative;row-gap:56px;background:var(--ground);color:var(--ink);border-radius:0}
.shrive-foot .shrive-lattice{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.shrive-lattice::before{content:'';position:absolute;inset:0;background:color-mix(in srgb,var(--accent) 11%,var(--ground))}
.shrive-lattice .shrive-ember{position:absolute;border-radius:50%;background:radial-gradient(closest-side,var(--glow),color-mix(in srgb,var(--accent) 60%,transparent) 45%,transparent);will-change:transform}
.shrive-foot{--sf-lit:calc(min(21vw,300px) * .8 + 150px)}
.shrive-lattice .shrive-ember-a{left:-4%;bottom:calc(var(--sf-lit) * -.35);width:62%;height:calc(var(--sf-lit) * 1.5);opacity:.8}
.shrive-lattice .shrive-ember-b{right:-6%;bottom:calc(var(--sf-lit) * -.3);width:56%;height:calc(var(--sf-lit) * 1.35);opacity:.6}
.shrive-lattice .shrive-hot{left:0;top:0;width:380px;height:380px;margin:-190px 0 0 -190px;opacity:.45;transform:translate3d(72vw,160px,0)}
.shrive-lattice .shrive-plate{--h:radial-gradient(circle,transparent 0 2px,#000 2.6px);position:absolute;inset:0;background:var(--ground);-webkit-mask:var(--h) 0 0/14px 14px,var(--h) 7px 7px/14px 14px;-webkit-mask-composite:source-in;mask:var(--h) 0 0/14px 14px,var(--h) 7px 7px/14px 14px;mask-composite:intersect}
.shrive-lattice::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,transparent 0 var(--sf-lit),color-mix(in srgb,var(--ground) 55%,transparent) calc(var(--sf-lit) + 180px),color-mix(in srgb,var(--ground) 72%,transparent) 70%,var(--ground))}
.shrive-lattice .shrive-line{position:absolute;left:0;right:0;top:0;z-index:1;height:1px;background:var(--glow);box-shadow:0 0 10px 1px var(--accent),0 0 2px var(--glow);transform-origin:left center}
.shrive-foot.is-armed .shrive-line{transform:scaleX(0)}
.shrive-foot.is-lit .shrive-line{transform:scaleX(1);transition:transform 1600ms var(--sf-ease)}
.shrive-foot.is-live .shrive-ember-a{animation:shrive-drift-a 9s var(--sf-ease) infinite alternate}
.shrive-foot.is-live .shrive-ember-b{animation:shrive-drift-b 11s var(--sf-ease) infinite alternate}
@keyframes shrive-drift-a{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(8%,-6%,0) scale(1.08)}}
@keyframes shrive-drift-b{from{transform:translate3d(0,0,0) scale(1.05)}to{transform:translate3d(-10%,-4%,0) scale(.95)}}
.shrive-foot :focus-visible{outline-color:var(--glow)}
.shrive-foot .footer-top,.shrive-foot .footer-columns,.shrive-foot .footer-bottom,.shrive-foot .footer-slider{position:relative}
.shrive-foot .footer-top{align-items:flex-end;gap:24px 32px}
.shrive-foot .footer-brand{display:grid;gap:16px}
.shrive-foot .nav-wordmark{color:var(--ink)}
.shrive-foot .footer-brand p{margin:0;max-width:36ch;color:var(--ink-soft);font:400 16px/1.55 var(--font-body)}
.shrive-foot .footer-actions{gap:12px}
.shrive-foot .footer-actions .btn{background:var(--glow);color:var(--ground);border-color:var(--glow);border-radius:2px}
.shrive-foot .footer-actions .btn-ghost{background:var(--ground);color:var(--ink);border-color:color-mix(in srgb,var(--ink) 40%,transparent)}
.shrive-foot .footer-rail::before{background:var(--accent);box-shadow:0 0 12px -2px var(--accent)}
.shrive-foot .slider-dots span{background:var(--ink)}
.shrive-foot .footer-links summary{display:flex;align-items:center;gap:10px;min-height:32px;margin-bottom:12px;color:var(--accent-deep);font:600 12px/1.4 var(--font-mono);letter-spacing:.16em}
.shrive-foot .footer-links summary::before{content:'';flex:none;width:5px;height:5px;border-radius:50%;background:var(--glow);box-shadow:0 0 8px 1px var(--accent)}
.shrive-foot .footer-link-list{display:flex;flex-wrap:wrap;gap:2px 10px}
.shrive-foot .footer-links a{position:relative;color:var(--ground);min-height:44px}
.shrive-foot .footer-links a span,.shrive-docs-foot .sdf-links span{display:inline-block;padding:6px 14px 5px;background:var(--ink);color:var(--ground);font:600 11px/1.25 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;-webkit-mask:var(--sf-notch);mask:var(--sf-notch);transform:rotate(var(--slip-tilt,0deg));transition:transform 420ms var(--sf-ease)}
.shrive-foot .footer-link-list a:nth-child(3n+1) span{--slip-tilt:-.6deg}
.shrive-foot .footer-link-list a:nth-child(3n+2) span{--slip-tilt:.5deg}
.shrive-foot .footer-links a span::after{left:14px;right:14px;bottom:2px;height:1px;background:var(--accent);transform:scaleX(0);transition:transform 320ms var(--sf-ease)}
.shrive-foot .footer-links a::before{content:'';position:absolute;left:-6px;right:-6px;top:50%;height:34px;margin-top:-17px;background:radial-gradient(closest-side,color-mix(in srgb,var(--glow) 70%,transparent),transparent);opacity:0;transition:opacity 360ms var(--sf-ease);pointer-events:none}
.shrive-foot .footer-links a:is(:hover,:focus-visible){color:var(--ground)}
.shrive-foot .footer-links a:is(:hover,:focus-visible)::before{opacity:1}
.shrive-foot .footer-links a:is(:hover,:focus-visible) span,.shrive-docs-foot .sdf-links a:hover span{transform:translateY(-2px) rotate(0deg)}
.shrive-foot .footer-links a:is(:hover,:focus-visible) span::after{transform:scaleX(1)}
.shrive-foot .footer-bottom{gap:16px 32px;padding-top:24px;border-top:1px solid color-mix(in srgb,var(--accent) 55%,transparent);color:var(--ink-soft)}
.shrive-foot .footer-bottom p{color:var(--ink-soft);line-height:1.6}
.shrive-foot .footer-bottom .back-top{color:var(--ink);background:var(--ground);border-color:color-mix(in srgb,var(--ink) 35%,transparent);border-radius:2px}
.shrive-foot .footer-monument{position:relative;margin-top:-8px;padding-bottom:clamp(24px,4vw,56px);font-size:clamp(88px,21vw,300px);line-height:.8;letter-spacing:-.02em;color:var(--ground);-webkit-text-stroke:1px color-mix(in srgb,var(--glow) 45%,transparent);transform:none;clip-path:none}
@media(max-width:767px){
 .site-foot.full-footer.shrive-foot{row-gap:40px}
 .shrive-foot .footer-links{border-top-color:color-mix(in srgb,var(--accent) 40%,transparent)}
 .shrive-foot .footer-links summary{margin-bottom:0;min-height:52px}
 .shrive-foot .footer-link-list{gap:2px 8px;padding-bottom:12px}
 .shrive-foot .footer-actions{width:100%}
 .shrive-lattice .shrive-hot{width:260px;height:260px;margin:-130px 0 0 -130px}
 .shrive-foot{--sf-lit:calc(88px * .8 + 120px + 176px)}
}
.shrive-docs-foot{position:relative;isolation:isolate;display:grid;justify-content:stretch;gap:20px 32px;max-width:none;margin-top:var(--space-48,48px);padding:40px max(var(--gutter,24px),calc((100% - 1180px)/2)) calc(56px + env(safe-area-inset-bottom));background:radial-gradient(ellipse 50% 120% at 18% 130%,color-mix(in srgb,var(--glow) 55%,transparent),transparent),radial-gradient(ellipse 40% 110% at 88% 140%,color-mix(in srgb,var(--accent) 45%,transparent),transparent),color-mix(in srgb,var(--accent) 12%,var(--ground))}
.shrive-docs-foot::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--ground);mask:radial-gradient(circle,transparent 0 1.8px,#000 2.4px) 0 0/12px 12px}
.shrive-docs-line{position:absolute;left:0;right:0;top:0;height:1px;background:var(--glow);box-shadow:0 0 10px 1px var(--accent)}
.shrive-docs-foot .sdf-mark{font:700 20px/1 var(--font-display);letter-spacing:.16em;color:var(--ink)}
.shrive-docs-foot .sdf-links{display:flex;flex-wrap:wrap;gap:2px 10px}
.shrive-docs-foot .sdf-links a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.shrive-docs-foot .sdf-links a:focus-visible{outline:2px solid var(--glow);outline-offset:2px}
.shrive-docs-foot .sdf-legal{display:flex;flex-wrap:wrap;gap:8px 32px;padding-top:16px;border-top:1px solid color-mix(in srgb,var(--accent) 50%,transparent)}
.shrive-docs-foot p{margin:0;padding:2px 6px;background:var(--ground);color:var(--ink-soft);line-height:1.6}
@media(prefers-reduced-motion:reduce){
 .shrive-foot .shrive-ember{animation:none!important}
 .shrive-foot .shrive-line{transform:none!important;transition:none!important}
 .shrive-foot .footer-links a :is(span,span::after),.shrive-foot .footer-links a::before,.shrive-docs-foot span{transition:none}
}
