/* A centered final statement; mobile downloads can float independently on wide screens. */
.homepage-ending{position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:100svh;min-height:max(100svh,100dvh);padding-top:80px;background:var(--brand-25);background-image:url('assets/paper-grain.svg?v=brand-texture-1'),linear-gradient(180deg,var(--brand-25),var(--brand-10));background-size:192px 192px,100% 100%;color:var(--teal);text-align:center;scroll-margin-top:0}
/* The FAQ itself supplies the paper edge. Without measurement it stays in normal flow. */
.faq-ending{--faq-lip:80px;position:relative;isolation:isolate;background:var(--brand-25)}
.faq-ending>.faq-section{position:relative;z-index:2;border-radius:0 0 64px 64px}
.faq-ending>.faq-section.faq-edge-ready{position:sticky;top:calc(var(--faq-reveal-edge,var(--faq-lip)) - var(--faq-height))}
.closing-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(44px,6svh,72px) 5vw clamp(40px,5svh,60px)}
.closing-thesis{width:100%;max-width:1200px}
.closing-thesis h2{margin:0;font:400 clamp(58px,7.5vw,104px)/1.06 var(--serif);letter-spacing:-.052em}
.closing-thesis h2 span{display:block;text-wrap:balance}
.closing-subhead{margin:26px auto 0;max-width:860px;font:400 clamp(18px,1.5vw,21px)/1.5 var(--sans);letter-spacing:-.01em;text-wrap:balance}
.closing-subhead span{display:inline}
.closing-actions{display:flex;justify-content:center;align-items:center;margin-top:30px}
/* Canonical 2xl: 64px height; 18/22px padding includes the existing 1px border. */
.closing-actions>.button{display:inline-flex;align-items:center;justify-content:center;min-height:64px;padding:17px 21px;gap:8px;font:600 18px/28px var(--sans)}
.closing-mobile{margin-top:40px}
.closing-mobile>p{margin:12px 0 0;font:400 12px/1.5 var(--sans);color:var(--muted)}
.closing-mobile-icon{display:none}
.closing-downloads{display:flex;justify-content:center;align-items:center;gap:12px}
.store-badge{display:flex;align-items:center;justify-content:center;min-height:44px}
.store-badge img{display:block;height:40px;width:auto;border-radius:10px}
.store-badge:focus-visible{outline:2px solid var(--focus-ring);outline-offset:6px;border-radius:6px}
.homepage-footer{flex:none;padding:12px 5vw 28px;color:var(--text-brand-support);text-align:center}
.homepage-footer-inner{width:100%;max-width:960px;margin:0 auto;display:flex;flex-direction:column;align-items:center}
.footer-brand{display:block;width:224px;margin:0}
.footer-brand img{display:block;width:100%;height:auto}
/* Lift the link row optically while keeping the logo, copyright and footer height fixed. */
.footer-navigation{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0 26px;margin-top:12px;font:500 12px/1.5 var(--sans);color:var(--brand-600)}
.footer-navigation>a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;color:inherit}
.footer-navigation>a:hover{color:var(--brand-700);text-decoration:underline;text-underline-offset:4px}
.footer-copyright{margin:16px 0 0;font:400 11px/1.5 var(--sans);color:var(--text-brand-support)}
.site-header.is-closing-hidden,.site-header.is-closing-hidden:focus-within{opacity:0!important;visibility:hidden;pointer-events:none}
@media(min-width:801px){
 .motion-enabled .closing-body{transform:translate3d(0,var(--closing-offset,0px),0)}
}
@media(min-width:801px) and (max-height:820px){
 .closing-body{padding-top:32px;padding-bottom:28px}
 .closing-thesis h2{font-size:clamp(58px,7vw,88px)}
 .closing-subhead{margin-top:24px;font-size:18px}
 .closing-actions{margin-top:24px}
 .closing-mobile{margin-top:32px}
 .homepage-footer{padding-top:8px;padding-bottom:24px}
 .footer-brand{width:210px}
 .footer-navigation{margin-top:8px}
}
@media(max-width:800px){
 .homepage-ending{padding-top:64px}
 .faq-ending{--faq-lip:64px}
 .faq-ending>.faq-section{border-radius:0 0 40px 40px}
 .closing-body{padding:52px 6vw 44px}
 .closing-thesis h2{font-size:clamp(36px,9.9vw,66px);line-height:1.08;letter-spacing:-.045em}
 .closing-subhead{max-width:540px;margin-top:22px;font-size:17px;line-height:1.5}
 .closing-actions{margin-top:26px}
 .closing-mobile{margin-top:34px}
 .closing-mobile>p{font-size:11px}
 .homepage-footer{padding:12px 6vw 28px}
 .footer-brand{width:208px}
 .footer-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(340px,100%);gap:0 20px;margin-top:20px;font-size:12px}
 .footer-copyright{margin-top:14px}
}
@media(prefers-reduced-motion:reduce){
 .homepage-ending .closing-body{transform:none!important}
}

/* The same download group moves outside the parallax body on wide screens. */
@media(min-width:1200px) and (min-height:600px){
 .closing-mobile.is-floating{position:absolute;right:clamp(24px,2vw,40px);bottom:24px;z-index:1;display:flex;flex-direction:column;width:max-content;margin:0;padding:16px 18px 18px;border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:0 10px 32px -12px color-mix(in srgb,var(--shadow-color) 14%,transparent),0 2px 6px -2px color-mix(in srgb,var(--shadow-color) 6%,transparent);text-align:left;opacity:1;transform:none;transform-origin:100% 100%;transition:opacity 360ms ease-out,transform 580ms cubic-bezier(.16,1,.3,1),border-color 200ms ease-out,box-shadow 200ms ease-out}
 .closing-mobile.is-floating>p{order:-1;display:flex;align-items:center;gap:8px;margin:0 0 10px;font:500 13px/20px var(--sans);letter-spacing:0;color:var(--muted)}
 .is-floating .closing-mobile-icon{display:grid;place-items:center;flex:none;width:24px;height:24px;background:var(--gray-100);border-radius:7px}
 .closing-mobile-icon svg{width:14px;height:18px;transform-origin:50% 75%;transition:transform 360ms cubic-bezier(.22,1,.36,1),color 200ms ease-out}
 .is-floating .closing-downloads{gap:8px}
 .is-floating .store-badge{transition:transform 180ms cubic-bezier(.25,1,.5,1)}
 .is-floating .store-badge:focus-visible{outline-offset:4px}
 .is-floating .store-badge:active{transform:translateY(1px)}
 .closing-mobile.is-floating.is-download-ready:not(.is-download-visible){opacity:0;transform:translateY(14px) scale(.98);pointer-events:none}
 .closing-mobile.is-floating:focus-within{opacity:1;transform:none;transition:none;pointer-events:auto;border-color:var(--gray-300)}
 .closing-mobile.is-floating:focus-within .closing-mobile-icon svg{transform:translateY(-1px) rotate(-7deg);color:var(--teal)}
}
@media(min-width:1200px) and (min-height:600px) and (hover:hover){
 .closing-mobile.is-floating.is-download-visible:hover{transform:translateY(-2px);border-color:var(--gray-300);box-shadow:0 14px 36px -14px color-mix(in srgb,var(--shadow-color) 18%,transparent),0 3px 8px -3px color-mix(in srgb,var(--shadow-color) 8%,transparent)}
 .closing-mobile.is-floating:hover .closing-mobile-icon svg{transform:translateY(-1px) rotate(-7deg);color:var(--teal)}
 .is-floating .store-badge:hover{transform:translateY(-1px)}
 .is-floating .store-badge:active{transform:translateY(1px)}
}
@media(min-width:1200px) and (min-height:600px) and (prefers-reduced-motion:no-preference){
 /* Only the first observed entrance staggers; restored and keyboard views stay immediate. */
 .is-floating.is-download-ready .store-badge img{transition:opacity 320ms ease-out 90ms,transform 460ms cubic-bezier(.22,1,.36,1) 90ms}
 .is-floating.is-download-ready .store-badge:nth-child(2) img{transition-delay:150ms}
 .is-floating.is-download-ready:not(.is-download-visible) .store-badge img{opacity:0;transform:translateY(5px)}
 .closing-mobile.is-floating:focus-within .store-badge img{opacity:1;transform:none;transition:none}
}
@media(prefers-reduced-motion:reduce){
 .closing-mobile.is-floating,.closing-mobile.is-floating.is-download-ready,.closing-mobile.is-floating.is-download-visible:hover{opacity:1;transform:none;transition:none;pointer-events:auto}
 .is-floating .store-badge,.is-floating .store-badge:hover,.is-floating .store-badge:active{transform:none;transition:none}
 .closing-mobile.is-floating .closing-mobile-icon svg,.closing-mobile.is-floating:hover .closing-mobile-icon svg,.closing-mobile.is-floating:focus-within .closing-mobile-icon svg{transform:none;transition:none}
 .is-floating .store-badge img{opacity:1;transform:none;transition:none}
}
