/* Shared startup branding; route transitions use a stable viewport frame. */
.page-loader {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:#f3eee3;color:#294d3c;font-family:system-ui,-apple-system,'Segoe UI',sans-serif;text-align:center;padding:24px;box-sizing:border-box;isolation:isolate;}
#page-boot {position:fixed;inset:0;z-index:19000;animation:page-fade-in .35s ease-out both;}
.page-loader__halo {position:absolute;width:min(76vw,510px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#cbd9c377,transparent 70%);z-index:-1;}
.page-loader__scene {position:relative;display:flex;align-items:center;justify-content:center;gap:9px;height:100px;width:min(100%,470px);}
.page-loader__scene>span {display:grid;place-items:center;flex:0 1 56px;min-width:0;height:60px;box-sizing:border-box;border:1px solid #d8c898;border-bottom:4px solid #b5aa7d;border-radius:15px;background:linear-gradient(145deg,#fff9e5,#efe1b5);color:#365840;font:800 28px/1 Georgia,serif;box-shadow:0 6px 14px #29463112,inset 0 2px #fffdf5;}
.page-loader__scene>span:nth-child(2n){background:linear-gradient(145deg,#d4dfbf,#b5c99e);border-bottom-color:#8caa78;}
.page-loader__scene>i {position:absolute;bottom:0;width:160px;height:5px;background:#294d3c10;border-radius:50%;filter:blur(3px);}
.page-loader__copy {max-width:340px;}.page-loader__brand {font-size:11px;letter-spacing:.28em;font-weight:750;color:#708569;}
.page-loader h2 {margin:10px 0;font-size:22px;line-height:1.3;font-weight:700;letter-spacing:-.025em;}.page-loader p {margin:0;font-size:13px;line-height:1.6;color:#748174;}
.page-loader__continue {border:1px solid #bbc6aa;border-radius:12px;background:#fcf9ed;color:#365840;padding:11px 18px;font:600 13px/1.4 system-ui;cursor:pointer;}.page-loader__continue:hover {background:#e4ebd6;}.page-loader__continue:focus-visible {outline:3px solid #7e9d70;outline-offset:4px;}
/* No min-height, sticky positioning or transforms on the live main element. */
[data-page-waiting="true"]>:not([data-page-loading-layer]){visibility:hidden!important;}
.page-load-layer {position:fixed;z-index:90;overflow:hidden;background:#f3eee3;isolation:isolate;contain:layout paint;}
.page-load-layer.is-quiet,.page-load-layer.is-leaving {pointer-events:none;}
.page-load-snapshot {position:absolute;inset:0;overflow:hidden;pointer-events:none;}
.page-load-sheen {position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(110deg,transparent 25%,#e5ecd944 45%,#fffbed88 50%,#e5ecd944 55%,transparent 75%);background-size:250% 100%;}
.is-shimmer .page-load-sheen,.is-loading .page-load-sheen {opacity:1;transition:opacity .3s;animation:page-sheen 2.8s linear infinite;}
.page-loader--local {position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .32s ease-out;}
.has-cubes .page-loader--local {opacity:1;pointer-events:auto;}
.page-loader--local .page-loader__scene>span {opacity:0;}
.has-cubes .page-loader__scene>span {animation:page-fade-in .4s ease-out calc(var(--tile-index,0)*.055s) both,page-cube-bob 1.8s ease-in-out calc(.4s + var(--tile-index,0)*.12s) infinite;}
.page-load-layer.is-leaving {animation:page-fade-out .22s ease-out both;}
.page-load-layer.is-leaving * {animation-play-state:paused!important;}
@keyframes page-sheen {from{background-position:130% 0;}to{background-position:-130% 0;}}
@keyframes page-fade-in {from{opacity:0;}to{opacity:1;}}
@keyframes page-fade-out {from{opacity:1;}to{opacity:0;}}
@media(max-width:480px){.page-loader{padding:16px;gap:16px;}.page-loader__scene{gap:5px;}.page-loader__scene>span{height:43px;border-radius:11px;font-size:22px;}.page-loader h2{font-size:20px;}}
@media(prefers-reduced-motion:reduce){#page-boot,.page-load-layer.is-leaving,.page-load-sheen,.has-cubes .page-loader__scene>span{animation:none!important;}.has-cubes .page-loader__scene>span{opacity:1;}.page-loader--local{transition:none;}}
.page-load-layer.is-leaving .page-loader--local {pointer-events:none;}

@keyframes page-cube-bob {0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}
