/* One type scale and a shared rhythm for the stage, controls and invitation. */
html{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--muted:#64715e}
body{grid-template-rows:48px minmax(0,1fr) 68px}
.topbar{grid-row:1}.site-footer{grid-row:2}.footer{grid-row:3}
.topbar{padding:0 32px}.wordmark{font:12px system-ui,sans-serif;letter-spacing:.35px}.header-aside{font-size:12px;letter-spacing:0}
.site-footer{grid-template-rows:88px minmax(0,1fr) 116px}
.intro{padding-top:4px}h1{font-size:clamp(28px,3.8vw,42px);line-height:1.12;letter-spacing:-1px;margin-bottom:8px}.intro p{font-size:13px;line-height:1.45;color:#64715e}
.speech{font-size:15px;line-height:1.48;max-width:min(460px,90%);padding:12px 20px;color:#425637;border-radius:16px;box-shadow:0 5px 18px #40573308}
.speech[data-topic]:not([data-topic=""]):before{font-size:10px;line-height:1.2;letter-spacing:1.2px;margin-bottom:6px;color:#68795c}
.stage-mark{font-size:10px;letter-spacing:1.1px;color:#637255}
.toybox{padding:10px 12px;border-radius:18px;box-shadow:0 6px 22px #3c533009}
.tool-caption{font-size:12px;line-height:1.4;min-height:26px;padding:0 5px 8px;color:#637158;gap:14px}
#snack-counter{white-space:nowrap;font-variant-numeric:tabular-nums;color:#637158}
.toys button{height:64px;gap:5px;font-size:12px;line-height:1.2;font-weight:500;border-radius:12px}.toys svg{width:36px;height:36px}
.footer{gap:48px;padding:0 24px}.footer-copy{justify-content:center}.footer-copy strong{font-size:16px;line-height:1.35;font-weight:500;max-width:none;color:var(--ink)}
.company-link{min-height:44px;font-size:14px;font-weight:600;padding:6px 14px 6px 8px;gap:10px;border-radius:12px;white-space:nowrap}.company-link b{font-weight:600;letter-spacing:.4px}.doorway svg{width:27px;height:30px}
.link-arrow{left:-38px;width:30px;height:22px;color:#60764c;animation:invitation-nudge 2.3s ease-in-out infinite}.company-link:hover .link-arrow,.company-link:focus-visible .link-arrow{animation:none;transform:translate(4px,-50%)}
@keyframes invitation-nudge{0%,100%{transform:translate(0,-50%)}50%{transform:translate(4px,-50%)}}
.disco .intro p,.disco .stage-mark{color:#bac9a9}.disco .tool-caption,.disco #snack-counter{color:#cfdbbe}.disco .speech[data-topic]:not([data-topic=""]):before{color:#5d7050}.disco .header-aside,.disco .wordmark{color:#bcc9af}
@media(max-width:700px){
 body{grid-template-rows:36px minmax(0,1fr) 58px}.topbar{padding:0 16px}.wordmark{font-size:12px}.header-aside{font-size:10px}
 .site-footer{grid-template-rows:88px minmax(0,1fr) 150px;padding:0 12px}.intro{padding-top:2px}h1{font-size:26px;letter-spacing:-.6px;line-height:1.12;margin-bottom:7px}.intro p{font-size:12px;line-height:1.35}
 .speech{font-size:13px;line-height:1.4;padding:10px 14px}.speech[data-topic]:not([data-topic=""]):before{font-size:9px;letter-spacing:.9px;margin-bottom:5px}
 .stage-mark{font-size:9px;letter-spacing:.7px}.toybox{padding:8px;border-radius:16px}.tool-caption{font-size:11px;min-height:25px;line-height:1.35;gap:8px;padding:0 3px 6px}.toys button{height:52px;font-size:11px;gap:4px;padding:4px 1px}.toys svg{width:30px;height:30px}
 .footer{gap:30px;padding:0 14px}.footer-copy strong{font-size:13px;line-height:1.3;max-width:220px}.company-link{font-size:12px;min-height:38px;gap:6px;padding:5px 9px 5px 5px;border-radius:10px}.doorway svg{width:23px;height:26px}.link-arrow{width:24px;height:20px;left:-29px}
}
@media(max-width:480px){.topbar{justify-content:center}.header-aside{display:none}}
@media(max-height:620px){
 body{grid-template-rows:30px minmax(0,1fr) 54px}.site-footer{grid-template-rows:56px minmax(0,1fr) 138px}.intro{padding-top:1px}.intro h1{font-size:22px;line-height:1.12;margin-bottom:0}.intro p{display:none}
 .speech{font-size:11.5px;line-height:1.4;padding:8px 12px}.speech[data-topic]:not([data-topic=""]):before{font-size:9px;margin-bottom:4px}.stage-mark{display:none}.tool-caption{font-size:10.5px;min-height:24px}.toys button{height:48px;font-size:11px;gap:3px}.toys svg{width:27px;height:27px}.toybox{padding:7px}
 .footer-copy strong{font-size:13px}.company-link{font-size:12px;min-height:38px}
}
@media(min-width:701px) and (max-height:620px){.site-footer{grid-template-rows:42px minmax(0,1fr) 90px}.toys button{height:49px}.tool-caption{min-height:23px}}
@media(max-height:420px){
 body{grid-template-rows:0 minmax(0,1fr) 44px}.topbar{display:none}.site-footer{grid-template-rows:30px minmax(0,1fr) 82px}.intro{padding:0}.intro h1{font-size:22px;line-height:1.2}.intro h1 em{display:inline;margin-left:.12em}.toys{grid-template-columns:repeat(10,minmax(0,1fr))}.toys button{height:45px;font-size:10px;gap:2px}.toys svg{width:26px;height:26px}.tool-caption{font-size:10px;min-height:23px;padding-bottom:5px}.toybox{padding:6px}.speech{font-size:11px;padding:6px 12px}.speech[data-topic]:not([data-topic=""]):before{font-size:9px}.footer-copy{display:flex}.footer{gap:38px}.footer-copy strong{font-size:13px}.company-link{min-height:34px;padding:3px 9px}.doorway svg{width:23px;height:26px}
}
@media(prefers-reduced-motion:reduce){.link-arrow{animation:none}}

/* The invitation is one little doorway, rather than a caption beside a button. */
.footer{padding:5px 16px;gap:0}
.footer .company-link{display:flex;align-items:center;gap:18px;min-height:52px;padding:7px 14px 7px 24px;border:1px solid #a4b69070;border-radius:18px;background:linear-gradient(110deg,#fffff6ad,#e0e8d1ba);box-shadow:0 4px 14px #42573508,inset 0 1px #ffffffb0;transition:background .25s,box-shadow .25s,border-color .25s;color:#3e5336}
.footer .company-link span{margin-left:0}
.footer .footer-copy{display:block;text-align:left;padding-right:22px;border-right:1px solid #83977340}
.footer .footer-copy strong{display:block;font-family:Georgia,serif;font-size:18px;line-height:1.2;font-weight:normal;letter-spacing:-.3px;color:#42513c;max-width:none}
.footer-copy strong span{font-style:italic}
.footer .exit-label{font-size:11px;line-height:1.35;letter-spacing:.1px;color:#657458}
.footer .exit-label b{display:block;font-size:15px;letter-spacing:1px;color:#385032}
.footer .link-arrow{position:static;width:25px;height:18px;transform:none;flex-shrink:0;animation:doorway-nudge 2.6s ease-in-out infinite}
.footer .doorway{display:flex;align-items:center;justify-content:center;width:35px;height:38px;background:radial-gradient(ellipse at center,#fff0af,#eadfad80 65%,transparent 70%);border-radius:0;flex-shrink:0}
.footer .doorway svg{width:32px;height:36px;filter:drop-shadow(0 2px 1px #39522b20)}
.footer .company-link:hover,.footer .company-link:focus-visible{background:linear-gradient(110deg,#fffffa,#e1ebd2);border-color:#819b66;box-shadow:0 5px 18px #42573518}
.footer .company-link:hover .link-arrow,.footer .company-link:focus-visible .link-arrow{animation:none;transform:translateX(3px)}
@keyframes doorway-nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(3px)}}
.disco .footer .company-link{background:linear-gradient(110deg,#eaf0dc,#cbdab6);border-color:#c4d2af}.disco .footer .link-arrow{color:#60764c}.disco .footer .doorway{background:radial-gradient(ellipse at center,#fff0af,#eadfad80 65%,transparent 70%)}
@media(max-width:700px){.footer{padding:4px 12px}.footer .company-link{width:min(100%,510px);justify-content:space-between;min-height:49px;padding:6px 9px 6px 14px;gap:9px;border-radius:15px}.footer .footer-copy{padding-right:10px;flex:1}.footer .footer-copy strong{font-size:15px;line-height:1.15;white-space:normal;max-width:240px}.footer .exit-label{font-size:10px}.footer .exit-label b{font-size:13px}.footer .link-arrow{width:18px;height:15px}.footer .doorway{width:28px;height:33px}.footer .doorway svg{width:27px;height:31px}}
@media(max-width:360px){.footer .company-link{gap:6px;padding-left:10px}.footer .footer-copy strong{font-size:14px}.footer .footer-copy{padding-right:6px}.footer .link-arrow{width:14px}}
@media(max-height:620px){.footer{padding:3px 12px}.footer .company-link{min-height:46px;padding-top:4px;padding-bottom:4px}.footer .footer-copy strong{font-size:15px}}
@media(max-height:420px){.footer .company-link{min-height:38px;padding:2px 12px;border-radius:12px}.footer .footer-copy strong{font-size:15px}.footer .doorway{height:30px}.footer .doorway svg{width:25px;height:29px}.footer .exit-label b{display:inline;margin-left:3px;font-size:13px}}
@media(prefers-reduced-motion:reduce){.footer .link-arrow{animation:none}}

/* Quiet typography, with the destination written out in full. */
.footer .footer-copy strong{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:15px;line-height:1.35;font-weight:400;letter-spacing:0;color:#58654e}
.footer .footer-copy strong span{font-style:normal;font-weight:600;color:#35482e}
.footer .exit-label{font-size:13px;line-height:1.3;font-weight:400;color:#58654e;white-space:nowrap}
.footer .exit-label b{display:inline;font-size:13px;letter-spacing:0;font-weight:600;color:#35482e}
@media(max-width:700px){.footer .company-link{gap:9px;padding-left:12px}.footer .footer-copy strong{font-size:12px}.footer .exit-label,.footer .exit-label b{font-size:12px}.footer .footer-copy{padding-right:9px}.footer .link-arrow{width:16px}.footer .doorway{width:25px}}
@media(max-width:360px){.footer .company-link{gap:6px;padding-left:10px}.footer .footer-copy{padding-right:6px}.footer .footer-copy strong{font-size:11.5px}.footer .exit-label,.footer .exit-label b{font-size:11px}.footer .link-arrow{width:13px}.footer .doorway{width:22px}}
@media(max-height:420px){.footer .footer-copy strong{font-size:13px}.footer .exit-label,.footer .exit-label b{font-size:12px}}

/* The doorway sits in the header, with space to read it before entering the stage. */
body{grid-template-rows:86px minmax(0,1fr)}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px 32px}
.topbar .wordmark{font-size:13px;flex-shrink:0}
.topbar .invitation{position:static;display:flex;padding:0;flex-shrink:0}
.invitation .company-link{min-height:62px;padding:10px 16px 10px 20px;gap:15px;border-radius:17px}
.invitation .invitation-copy{display:flex;flex-direction:column;gap:5px}
.invitation .footer-copy{border:0;padding:0;flex:none}
.invitation .footer-copy strong{font-size:14px;line-height:1.35;white-space:normal;max-width:none}
.invitation .exit-label,.invitation .exit-label b{font-size:14px;line-height:1.3}
.invitation .exit-label{color:#647158}
.invitation .exit-label b{color:#35482e}
.invitation .doorway{width:37px;height:43px}
.invitation .doorway svg{width:34px;height:39px}
.invitation .link-arrow{width:23px;height:18px}
@media(max-width:700px){
 body{grid-template-rows:80px minmax(0,1fr)}
 .topbar{padding:9px 16px;gap:12px}.topbar .wordmark{display:none}
 .topbar .invitation{width:100%;justify-content:center}
 .invitation .company-link{width:min(100%,450px);min-height:62px;padding:9px 15px 9px 18px;gap:12px}
 .invitation .invitation-copy{flex:1;gap:4px}
 .invitation .footer-copy strong{font-size:13px}.invitation .exit-label,.invitation .exit-label b{font-size:13px}
 .invitation .doorway{width:32px;height:38px}.invitation .doorway svg{width:30px;height:35px}
 .site-footer{grid-template-rows:74px minmax(0,1fr) 150px}
}
@media(max-height:620px){
 body{grid-template-rows:66px minmax(0,1fr)}.topbar{display:flex;padding:5px 16px}
 .invitation .company-link{min-height:54px;padding:6px 13px 6px 16px;border-radius:14px}
 .invitation .footer-copy strong{font-size:12px}.invitation .exit-label,.invitation .exit-label b{font-size:12px}
 .invitation .invitation-copy{gap:2px}.invitation .doorway{height:35px}.invitation .doorway svg{height:32px}
 .site-footer{grid-template-rows:42px minmax(0,1fr) 138px}
}
@media(min-width:701px) and (max-height:620px){.site-footer{grid-template-rows:42px minmax(0,1fr) 90px}}
@media(max-height:420px){
 body{grid-template-rows:50px minmax(0,1fr)}.topbar{padding:3px 14px}
 .invitation .company-link{min-height:42px;padding:4px 12px;gap:10px}
 .invitation .invitation-copy{flex-direction:row;align-items:center;gap:15px}
 .invitation .footer-copy strong{font-size:12px}.invitation .doorway{width:25px;height:29px}.invitation .doorway svg{width:24px;height:28px}
 .site-footer{grid-template-rows:30px minmax(0,1fr) 82px}
}

/* Give the bottom toybox the same breathing room as the header card. */
.site-footer{padding-bottom:12px}
@media(max-height:420px){.site-footer{padding-bottom:6px}}

.topbar{height:auto;min-height:0}

@media(max-width:700px) and (min-height:421px) and (max-height:620px){body{grid-template-rows:78px minmax(0,1fr)}}
