/* A quiet, branded curtain joins pages without replacing the browser document. */
.route-wipe{position:fixed;inset:0;z-index:10020;display:grid;place-items:center;background:#f5f2e9;border-top:5px solid #ee4712;visibility:hidden;pointer-events:none;transform:translateY(101%);will-change:transform}
.route-wipe img{width:clamp(190px,27vw,390px);height:auto;mix-blend-mode:multiply}
.route-loading{cursor:progress}
.route-loading::after{content:"";position:fixed;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,transparent 0%,#ee4712 45%,transparent 100%);z-index:10021;transform-origin:left;animation:route-progress 1.15s ease-in-out infinite;pointer-events:none}
.route-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.route-error{position:fixed;z-index:10022;bottom:24px;left:50%;transform:translateX(-50%);width:min(660px,calc(100% - 32px));padding:20px 24px;background:#f8f5ed;color:#142322;border-left:4px solid #ee4712;box-shadow:0 12px 56px #07100f35;display:flex;align-items:center;gap:16px;font-size:15px}
.route-error[hidden]{display:none}
.route-error p{margin:0;flex:1;text-wrap:pretty}
.route-error button{background:transparent;color:inherit;border:0;border-bottom:1px solid #ee4712;padding:8px 2px;font:inherit;font-weight:700;white-space:nowrap;cursor:pointer;transition:color .2s,transform .2s}
.route-error button:hover{color:#b9370c;transform:translateY(-2px)}
.route-error button:focus-visible{outline:2px solid #ee4712;outline-offset:4px}
#main:focus,h1[tabindex="-1"]:focus{outline:none}
@keyframes route-progress{0%{transform:translateX(-65%)}100%{transform:translateX(65%)}}
@media(max-width:600px){.route-error{flex-wrap:wrap;gap:12px;padding:18px}.route-error p{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.route-wipe{display:none}.route-loading::after{animation:none;background:#ee4712}.route-error button{transition:none}.route-error button:hover{transform:none}}
