/* Sampled quintic focus pull: no speed discontinuity at the sharp point,
   zero velocity/acceleration at the single reversal. Blur follows the same angle. */
html,body{overscroll-behavior-y:none}
.skip-focus #focus-intro{display:none}
#focus-intro{position:fixed;inset:0;z-index:90;pointer-events:none;isolation:isolate;animation:focus-dismiss 3.45s linear forwards}
#focus-intro::before{content:"";position:absolute;inset:0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);animation:focus-clear 2.85s linear forwards}
.focus-dial{position:absolute;bottom:5svh;left:50%;width:min(440px,58vw,48svh);color:var(--orange);opacity:.65;transform:translateX(-50%);transform-origin:50% 85%;animation:focus-confirm 3.45s linear forwards}
.focus-dial svg{display:block;width:100%;overflow:visible}
.focus-dial :is(line,path){vector-effect:non-scaling-stroke;stroke-width:.75px}
.focus-ring{transform-box:view-box;transform-origin:220px 210px;animation:focus-turn 2.85s linear forwards}
.focus-distances,.focus-caption{font:8px 'Courier New',monospace;letter-spacing:.19em;text-anchor:middle}
.focus-caption{font-size:7px}.focus-lock{opacity:0;animation:focus-lock 3.45s linear forwards}
body:not(.loaded) .hero-image{animation:none}
@keyframes focus-clear{
  0.000000%{backdrop-filter:blur(14.000000px);-webkit-backdrop-filter:blur(14.000000px)}
  1.111111%{backdrop-filter:blur(13.999138px);-webkit-backdrop-filter:blur(13.999138px)}
  2.222222%{backdrop-filter:blur(13.993283px);-webkit-backdrop-filter:blur(13.993283px)}
  3.333333%{backdrop-filter:blur(13.977939px);-webkit-backdrop-filter:blur(13.977939px)}
  4.444444%{backdrop-filter:blur(13.949130px);-webkit-backdrop-filter:blur(13.949130px)}
  5.555556%{backdrop-filter:blur(13.903381px);-webkit-backdrop-filter:blur(13.903381px)}
  6.666667%{backdrop-filter:blur(13.837701px);-webkit-backdrop-filter:blur(13.837701px)}
  7.777778%{backdrop-filter:blur(13.749559px);-webkit-backdrop-filter:blur(13.749559px)}
  8.888889%{backdrop-filter:blur(13.636867px);-webkit-backdrop-filter:blur(13.636867px)}
  10.000000%{backdrop-filter:blur(13.497963px);-webkit-backdrop-filter:blur(13.497963px)}
  11.111111%{backdrop-filter:blur(13.331583px);-webkit-backdrop-filter:blur(13.331583px)}
  12.222222%{backdrop-filter:blur(13.136850px);-webkit-backdrop-filter:blur(13.136850px)}
  13.333333%{backdrop-filter:blur(12.913250px);-webkit-backdrop-filter:blur(12.913250px)}
  14.444444%{backdrop-filter:blur(12.660613px);-webkit-backdrop-filter:blur(12.660613px)}
  15.555556%{backdrop-filter:blur(12.379092px);-webkit-backdrop-filter:blur(12.379092px)}
  16.666667%{backdrop-filter:blur(12.069145px);-webkit-backdrop-filter:blur(12.069145px)}
  17.777778%{backdrop-filter:blur(11.731516px);-webkit-backdrop-filter:blur(11.731516px)}
  18.888889%{backdrop-filter:blur(11.367212px);-webkit-backdrop-filter:blur(11.367212px)}
  20.000000%{backdrop-filter:blur(10.977489px);-webkit-backdrop-filter:blur(10.977489px)}
  21.111111%{backdrop-filter:blur(10.563823px);-webkit-backdrop-filter:blur(10.563823px)}
  22.222222%{backdrop-filter:blur(10.127902px);-webkit-backdrop-filter:blur(10.127902px)}
  23.333333%{backdrop-filter:blur(9.671595px);-webkit-backdrop-filter:blur(9.671595px)}
  24.444444%{backdrop-filter:blur(9.196943px);-webkit-backdrop-filter:blur(9.196943px)}
  25.555556%{backdrop-filter:blur(8.706128px);-webkit-backdrop-filter:blur(8.706128px)}
  26.666667%{backdrop-filter:blur(8.201465px);-webkit-backdrop-filter:blur(8.201465px)}
  27.777778%{backdrop-filter:blur(7.685374px);-webkit-backdrop-filter:blur(7.685374px)}
  28.888889%{backdrop-filter:blur(7.160364px);-webkit-backdrop-filter:blur(7.160364px)}
  30.000000%{backdrop-filter:blur(6.629013px);-webkit-backdrop-filter:blur(6.629013px)}
  31.111111%{backdrop-filter:blur(6.093949px);-webkit-backdrop-filter:blur(6.093949px)}
  32.222222%{backdrop-filter:blur(5.557833px);-webkit-backdrop-filter:blur(5.557833px)}
  33.333333%{backdrop-filter:blur(5.023335px);-webkit-backdrop-filter:blur(5.023335px)}
  34.444444%{backdrop-filter:blur(4.493125px);-webkit-backdrop-filter:blur(4.493125px)}
  35.555556%{backdrop-filter:blur(3.969849px);-webkit-backdrop-filter:blur(3.969849px)}
  36.666667%{backdrop-filter:blur(3.456118px);-webkit-backdrop-filter:blur(3.456118px)}
  37.777778%{backdrop-filter:blur(2.954501px);-webkit-backdrop-filter:blur(2.954501px)}
  38.888889%{backdrop-filter:blur(2.467523px);-webkit-backdrop-filter:blur(2.467523px)}
  40.000000%{backdrop-filter:blur(1.997688px);-webkit-backdrop-filter:blur(1.997688px)}
  41.111111%{backdrop-filter:blur(1.547557px);-webkit-backdrop-filter:blur(1.547557px)}
  42.222222%{backdrop-filter:blur(1.119981px);-webkit-backdrop-filter:blur(1.119981px)}
  43.333333%{backdrop-filter:blur(0.718900px);-webkit-backdrop-filter:blur(0.718900px)}
  44.444444%{backdrop-filter:blur(0.352902px);-webkit-backdrop-filter:blur(0.352902px)}
  45.555556%{backdrop-filter:blur(0.060629px);-webkit-backdrop-filter:blur(0.060629px)}
  46.144511%{backdrop-filter:blur(0.000000px);-webkit-backdrop-filter:blur(0.000000px)}
  46.666667%{backdrop-filter:blur(0.045194px);-webkit-backdrop-filter:blur(0.045194px)}
  47.777778%{backdrop-filter:blur(0.279271px);-webkit-backdrop-filter:blur(0.279271px)}
  48.888889%{backdrop-filter:blur(0.535892px);-webkit-backdrop-filter:blur(0.535892px)}
  50.000000%{backdrop-filter:blur(0.774885px);-webkit-backdrop-filter:blur(0.774885px)}
  51.111111%{backdrop-filter:blur(0.988914px);-webkit-backdrop-filter:blur(0.988914px)}
  52.222222%{backdrop-filter:blur(1.176040px);-webkit-backdrop-filter:blur(1.176040px)}
  53.333333%{backdrop-filter:blur(1.335974px);-webkit-backdrop-filter:blur(1.335974px)}
  54.444444%{backdrop-filter:blur(1.469246px);-webkit-backdrop-filter:blur(1.469246px)}
  55.555556%{backdrop-filter:blur(1.576963px);-webkit-backdrop-filter:blur(1.576963px)}
  56.666667%{backdrop-filter:blur(1.660728px);-webkit-backdrop-filter:blur(1.660728px)}
  57.777778%{backdrop-filter:blur(1.722617px);-webkit-backdrop-filter:blur(1.722617px)}
  58.888889%{backdrop-filter:blur(1.765177px);-webkit-backdrop-filter:blur(1.765177px)}
  60.000000%{backdrop-filter:blur(1.791436px);-webkit-backdrop-filter:blur(1.791436px)}
  61.111111%{backdrop-filter:blur(1.804914px);-webkit-backdrop-filter:blur(1.804914px)}
  62.222222%{backdrop-filter:blur(1.809636px);-webkit-backdrop-filter:blur(1.809636px)}
  63.157895%{backdrop-filter:blur(1.810150px);-webkit-backdrop-filter:blur(1.810150px)}
  63.333333%{backdrop-filter:blur(1.810147px);-webkit-backdrop-filter:blur(1.810147px)}
  64.444444%{backdrop-filter:blur(1.809334px);-webkit-backdrop-filter:blur(1.809334px)}
  65.555556%{backdrop-filter:blur(1.805111px);-webkit-backdrop-filter:blur(1.805111px)}
  66.666667%{backdrop-filter:blur(1.795099px);-webkit-backdrop-filter:blur(1.795099px)}
  67.777778%{backdrop-filter:blur(1.777441px);-webkit-backdrop-filter:blur(1.777441px)}
  68.888889%{backdrop-filter:blur(1.750768px);-webkit-backdrop-filter:blur(1.750768px)}
  70.000000%{backdrop-filter:blur(1.714166px);-webkit-backdrop-filter:blur(1.714166px)}
  71.111111%{backdrop-filter:blur(1.667138px);-webkit-backdrop-filter:blur(1.667138px)}
  72.222222%{backdrop-filter:blur(1.609570px);-webkit-backdrop-filter:blur(1.609570px)}
  73.333333%{backdrop-filter:blur(1.541693px);-webkit-backdrop-filter:blur(1.541693px)}
  74.444444%{backdrop-filter:blur(1.464052px);-webkit-backdrop-filter:blur(1.464052px)}
  75.555556%{backdrop-filter:blur(1.377465px);-webkit-backdrop-filter:blur(1.377465px)}
  76.666667%{backdrop-filter:blur(1.282993px);-webkit-backdrop-filter:blur(1.282993px)}
  77.777778%{backdrop-filter:blur(1.181906px);-webkit-backdrop-filter:blur(1.181906px)}
  78.888889%{backdrop-filter:blur(1.075644px);-webkit-backdrop-filter:blur(1.075644px)}
  80.000000%{backdrop-filter:blur(0.965794px);-webkit-backdrop-filter:blur(0.965794px)}
  81.111111%{backdrop-filter:blur(0.854052px);-webkit-backdrop-filter:blur(0.854052px)}
  82.222222%{backdrop-filter:blur(0.742198px);-webkit-backdrop-filter:blur(0.742198px)}
  83.333333%{backdrop-filter:blur(0.632075px);-webkit-backdrop-filter:blur(0.632075px)}
  84.444444%{backdrop-filter:blur(0.525566px);-webkit-backdrop-filter:blur(0.525566px)}
  85.555556%{backdrop-filter:blur(0.424581px);-webkit-backdrop-filter:blur(0.424581px)}
  86.666667%{backdrop-filter:blur(0.331049px);-webkit-backdrop-filter:blur(0.331049px)}
  87.777778%{backdrop-filter:blur(0.246899px);-webkit-backdrop-filter:blur(0.246899px)}
  88.888889%{backdrop-filter:blur(0.174006px);-webkit-backdrop-filter:blur(0.174006px)}
  90.000000%{backdrop-filter:blur(0.114038px);-webkit-backdrop-filter:blur(0.114038px)}
  91.111111%{backdrop-filter:blur(0.068097px);-webkit-backdrop-filter:blur(0.068097px)}
  92.222222%{backdrop-filter:blur(0.036148px);-webkit-backdrop-filter:blur(0.036148px)}
  93.333333%{backdrop-filter:blur(0.016552px);-webkit-backdrop-filter:blur(0.016552px)}
  94.444444%{backdrop-filter:blur(0.006271px);-webkit-backdrop-filter:blur(0.006271px)}
  95.555556%{backdrop-filter:blur(0.001834px);-webkit-backdrop-filter:blur(0.001834px)}
  96.666667%{backdrop-filter:blur(0.000361px);-webkit-backdrop-filter:blur(0.000361px)}
  97.777778%{backdrop-filter:blur(0.000035px);-webkit-backdrop-filter:blur(0.000035px)}
  98.888889%{backdrop-filter:blur(0.000001px);-webkit-backdrop-filter:blur(0.000001px)}
  100.000000%{backdrop-filter:blur(0.000000px);-webkit-backdrop-filter:blur(0.000000px)}
}
@keyframes focus-turn{
  0.000000%{transform:rotate(-42.000000deg)}
  1.111111%{transform:rotate(-41.997455deg)}
  2.222222%{transform:rotate(-41.980180deg)}
  3.333333%{transform:rotate(-41.934903deg)}
  4.444444%{transform:rotate(-41.849892deg)}
  5.555556%{transform:rotate(-41.714895deg)}
  6.666667%{transform:rotate(-41.521083deg)}
  7.777778%{transform:rotate(-41.260989deg)}
  8.888889%{transform:rotate(-40.928455deg)}
  10.000000%{transform:rotate(-40.518567deg)}
  11.111111%{transform:rotate(-40.027603deg)}
  12.222222%{transform:rotate(-39.452972deg)}
  13.333333%{transform:rotate(-38.793154deg)}
  14.444444%{transform:rotate(-38.047644deg)}
  15.555556%{transform:rotate(-37.216895deg)}
  16.666667%{transform:rotate(-36.302257deg)}
  17.777778%{transform:rotate(-35.305920deg)}
  18.888889%{transform:rotate(-34.230856deg)}
  20.000000%{transform:rotate(-33.080760deg)}
  21.111111%{transform:rotate(-31.859991deg)}
  22.222222%{transform:rotate(-30.573517deg)}
  23.333333%{transform:rotate(-29.226855deg)}
  24.444444%{transform:rotate(-27.826009deg)}
  25.555556%{transform:rotate(-26.377420deg)}
  26.666667%{transform:rotate(-24.887898deg)}
  27.777778%{transform:rotate(-23.364573deg)}
  28.888889%{transform:rotate(-21.814829deg)}
  30.000000%{transform:rotate(-20.246253deg)}
  31.111111%{transform:rotate(-18.666569deg)}
  32.222222%{transform:rotate(-17.083587deg)}
  33.333333%{transform:rotate(-15.505139deg)}
  34.444444%{transform:rotate(-13.939026deg)}
  35.555556%{transform:rotate(-12.392954deg)}
  36.666667%{transform:rotate(-10.874481deg)}
  37.777778%{transform:rotate(-9.390956deg)}
  38.888889%{transform:rotate(-7.949461deg)}
  40.000000%{transform:rotate(-6.556753deg)}
  41.111111%{transform:rotate(-5.219206deg)}
  42.222222%{transform:rotate(-3.942754deg)}
  43.333333%{transform:rotate(-2.732828deg)}
  44.444444%{transform:rotate(-1.594306deg)}
  45.555556%{transform:rotate(-0.531444deg)}
  46.144511%{transform:rotate(-0.000000deg)}
  46.666667%{transform:rotate(0.452171deg)}
  47.777778%{transform:rotate(1.353688deg)}
  48.888889%{transform:rotate(2.171045deg)}
  50.000000%{transform:rotate(2.903031deg)}
  51.111111%{transform:rotate(3.549340deg)}
  52.222222%{transform:rotate(4.110633deg)}
  53.333333%{transform:rotate(4.588594deg)}
  54.444444%{transform:rotate(4.985991deg)}
  55.555556%{transform:rotate(5.306730deg)}
  56.666667%{transform:rotate(5.555915deg)}
  57.777778%{transform:rotate(5.739910deg)}
  58.888889%{transform:rotate(5.866392deg)}
  60.000000%{transform:rotate(5.944410deg)}
  61.111111%{transform:rotate(5.984447deg)}
  62.222222%{transform:rotate(5.998474deg)}
  63.157895%{transform:rotate(6.000000deg)}
  63.333333%{transform:rotate(5.999994deg)}
  64.444444%{transform:rotate(5.997577deg)}
  65.555556%{transform:rotate(5.985034deg)}
  66.666667%{transform:rotate(5.955292deg)}
  67.777778%{transform:rotate(5.902830deg)}
  68.888889%{transform:rotate(5.823574deg)}
  70.000000%{transform:rotate(5.714791deg)}
  71.111111%{transform:rotate(5.574977deg)}
  72.222222%{transform:rotate(5.403752deg)}
  73.333333%{transform:rotate(5.201750deg)}
  74.444444%{transform:rotate(4.970515deg)}
  75.555556%{transform:rotate(4.712388deg)}
  76.666667%{transform:rotate(4.430406deg)}
  77.777778%{transform:rotate(4.128186deg)}
  78.888889%{transform:rotate(3.809825deg)}
  80.000000%{transform:rotate(3.479787deg)}
  81.111111%{transform:rotate(3.142796deg)}
  82.222222%{transform:rotate(2.803731deg)}
  83.333333%{transform:rotate(2.467516deg)}
  84.444444%{transform:rotate(2.139013deg)}
  85.555556%{transform:rotate(1.822912deg)}
  86.666667%{transform:rotate(1.523626deg)}
  87.777778%{transform:rotate(1.245184deg)}
  88.888889%{transform:rotate(0.991118deg)}
  90.000000%{transform:rotate(0.764362deg)}
  91.111111%{transform:rotate(0.567139deg)}
  92.222222%{transform:rotate(0.400856deg)}
  93.333333%{transform:rotate(0.265994deg)}
  94.444444%{transform:rotate(0.162004deg)}
  95.555556%{transform:rotate(0.087194deg)}
  96.666667%{transform:rotate(0.038625deg)}
  97.777778%{transform:rotate(0.012004deg)}
  98.888889%{transform:rotate(0.001572deg)}
  100.000000%{transform:rotate(0.000000deg)}
}
@keyframes focus-confirm{0%,82%{opacity:.65;transform:translateX(-50%) scale(1)}88%{opacity:.9;transform:translateX(-50%) scale(1.012)}100%{opacity:0;transform:translateX(-50%) scale(1)}}
@keyframes focus-lock{0%,82.6%{opacity:0}87%,91%{opacity:.7}100%{opacity:0}}
@keyframes focus-dismiss{0%,99.9%{visibility:visible}100%{visibility:hidden}}
@media(max-width:700px){.focus-dial{bottom:6svh;width:min(76vw,46svh)}}
@media(prefers-reduced-motion:reduce){#focus-intro{display:none;animation:none}#focus-intro::before{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none}.focus-dial,.focus-ring,.focus-lock{animation:none}}

/* Keep the orange title absent until the focus scale has fully disappeared.
   Individual translate composes with the existing scroll-driven transform. */
.hero-title .title-one{animation:title-enter-left 1.65s 3.47s cubic-bezier(.22,.61,.36,1) 1 both}
.hero-title .title-two{animation:title-enter-right 1.65s 3.59s cubic-bezier(.22,.61,.36,1) 1 both}
@keyframes title-enter-left{from{opacity:0;translate:-100vw 0}to{opacity:1;translate:0 0}}
@keyframes title-enter-right{from{opacity:0;translate:100vw 0}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){.hero-title .title-one,.hero-title .title-two{animation:none}}
