/* All hosts opt into candidate-design.css; this file owns layout only. */
.privacy-panel {position:fixed;z-index:12000;bottom:1rem;right:1rem;width:min(34rem,calc(100% - 2rem));max-height:85dvh;overflow:auto;box-sizing:border-box;padding:24px;border:1px solid var(--cd-border);border-radius:18px;background:var(--cd-reading);color:var(--cd-text);box-shadow:var(--cd-reading-depth);font:400 17px/1.45 var(--cd-font)}
.privacy-panel[hidden],.privacy-panel [hidden] {display:none!important}
.privacy-panel h2 {font-size:24px;line-height:1.2;font-weight:600;margin:0 0 12px}
.privacy-panel p {margin:12px 0}
.privacy-panel a {color:inherit;text-decoration:underline;text-underline-offset:3px}
.privacy-panel input {width:18px;height:18px;margin:0;vertical-align:middle;accent-color:var(--cd-focus)}
.privacy-panel label {display:flex;align-items:center;gap:10px;min-height:44px}
.privacy-panel :is(input,a):focus-visible {outline:2px solid var(--cd-focus);outline-offset:3px}
.privacy-actions {display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 0}
.privacy-actions>.cd-button {flex:1 1 9rem}
.privacy-panel [data-privacy-close] {background:none;box-shadow:none;color:var(--cd-secondary);text-decoration:underline;padding-inline:0;margin-top:8px;font-weight:400}
.privacy-panel [data-privacy-close]:is(:hover,:active) {background:none;box-shadow:none;color:var(--cd-text);transform:none}
@media(max-width:500px) {.privacy-panel {bottom:.5rem;right:.5rem;width:calc(100% - 1rem);padding:20px}.privacy-actions {gap:8px}}
.legal-links{display:flex;flex-wrap:wrap;gap:.7rem 1.2rem;justify-content:center;padding:1.2rem;font:400 .8125rem/1.5 var(--cd-font);color:var(--cd-muted);line-height:1.5}.legal-links a,.legal-links button{color:inherit}.legal-links button{font:inherit;border:0;padding:0;background:none;text-decoration:underline;cursor:pointer}
/* Legal links join the measured navigation footer only in the final scene. */
.particle-theory .pt-bottom-bar{position:fixed;z-index:5;inset:auto 0 0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px max(12px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));background:transparent;pointer-events:none}
.particle-theory .pt-navigation-row{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-width:0}
.particle-theory .pt-bottom-bar .pt-progress{position:static;transform:none;max-width:calc(100% - 60px);min-width:0;padding:0;flex:0 1 auto;background:transparent;pointer-events:auto}
.particle-theory .pt-navigation-row:has(.pt-next-section[hidden]) .pt-progress{max-width:100%}
.particle-theory .pt-bottom-bar .pt-next-section{position:static;inset:auto;flex:0 0 auto;pointer-events:auto}
/* Phones and tablets navigate with Explore, scrolling and the full-width tabs. */
@media (max-width:999.98px){
 .particle-theory .pt-bottom-bar .pt-next-section{display:none}
 .particle-theory .pt-bottom-bar .pt-progress{max-width:100%;width:100%}
}
/* Keep laptop tabs centered independently of the floating right-edge arrow. */
@media (min-width:1000px){
 .particle-theory .pt-navigation-row{position:relative;min-height:48px}
 .particle-theory .pt-navigation-row:has(.pt-next-section[hidden]){min-height:0}
 .particle-theory .pt-bottom-bar .pt-progress{max-width:calc(100% - 144px)}
 .particle-theory .pt-bottom-bar .pt-next-section{position:absolute;inset:0 4px 0 auto;margin-block:auto}
}
.particle-theory .pt-bottom-bar .legal-links{max-width:100%;gap:0 16px;margin:0;padding:0;font-size:12px;line-height:1.5}
.particle-theory:not([data-scene="5"]) .pt-bottom-bar .legal-links{display:none}
.particle-theory .pt-bottom-bar .legal-links :is(a,button){display:inline-flex;align-items:center;min-height:28px;text-align:center;pointer-events:auto}
/* Auto margins center the heading/button together and become zero when a short
   viewport needs scrolling. Geometry is converted from the fixed header/footer. */
.particle-theory .pt-finale{top:var(--landing-finale-top,0px);bottom:var(--landing-finale-bottom,0px);justify-content:flex-start;gap:28px;padding:16px 24px;overflow-y:auto;pointer-events:auto}
.particle-theory .pt-finale h2{margin: auto 0 0;flex-shrink:0;text-wrap:balance}
.particle-theory .pt-finale .pt-cta{margin:0 0 auto;flex-shrink:0;max-width:100%}
@media (max-width:87.5em), (max-height:53.125em){
 .particle-theory .pt-stage{height:calc(var(--mobile-viewport,100dvh) - var(--mobile-header) - var(--landing-dock-height,160px))}
 .particle-theory .pt-chapter{bottom:16px}
 .particle-theory .pt-finale{gap:24px;padding-inline:16px}
}
@media (max-width:37.5em) and (max-height:40em){
 .particle-theory .pt-opening-intro p{font-size:1rem;line-height:1.4}
}

/* Keep legal links at the page end without stretching the content or covering it. */
body.cd-workspace{display:flex;flex-direction:column;min-height:100dvh}
.cd-workspace .app-shell{width:100%;flex-shrink:0}
/* The app shell is layer 1. Its fixed mobile dock/menu must paint above the
   footer as it scrolls past, even though the footer is later in the DOM. */
.cd-workspace .workspace-legal-footer{position:relative;z-index:0;margin-top:auto;flex-shrink:0;width:100%}
@media(max-width:900px){
 /* Welcome hides the bottom navigation, so it does not need that reserved space. */
 body.cd-workspace[data-workspace-section=welcome]{padding-bottom:env(safe-area-inset-bottom,0px)}
}
body.cd-onboarding{min-height:100dvh}
.cd-onboarding>.legal-links{margin-top:auto;flex-shrink:0}
