:root{
  --blue:#285aad;
  --blue-dark:#285aad;
  --blue-soft:#edf3ff;
  --ink:#080b12;
  --muted:#687083;
  --line:#dfe4ee;
  --surface:#f6f8fc;
  --white:#fff;
  --shadow:0 18px 55px rgba(13,30,68,.09);
}

::selection{background:var(--blue);color:#fff}
body{background:var(--white);color:var(--ink)}
#header{background:rgba(255,255,255,.94);border-color:var(--line);backdrop-filter:blur(18px);position:relative;z-index:5}
#header nav a{position:relative}
#header nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:2px;background:var(--blue);transition:right .25s ease}
#header nav a:hover{opacity:1}
#header nav a:hover:after{right:0}
#language b{color:var(--blue)}
.eyebrow{color:var(--blue);font-weight:700}
.primary,.cta{background:var(--blue);color:#fff;border-radius:8px;box-shadow:0 12px 28px rgba(22,93,255,.18);transition:transform .25s ease,background .25s ease,box-shadow .25s ease}
.primary:hover,.cta:hover{background:var(--blue-dark);transform:translateY(-2px);translate:0;box-shadow:0 16px 34px rgba(22,93,255,.25)}
.hero-copy{background:#fff}
.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 62%,rgba(2,7,18,.48))}
.hero-photo img{object-position:50% 43%;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.hero-photo:hover img{transform:scale(1.018)}
.hero-photo figcaption{z-index:1}
.brand,.questions{border-color:var(--line)}
.brand p,.process p,details p,.intro{color:var(--muted)}
.process article{border-color:var(--line);transition:border-color .3s ease,transform .3s ease}
.process article:hover{border-color:var(--blue);transform:translateY(-4px)}
.process article>span{color:var(--blue)}
details{border-color:var(--line)}
summary span{color:var(--blue)}
.closing{background:var(--blue);color:#fff}
.closing .primary{background:#fff;color:var(--ink);box-shadow:none}
#footer{background:#080b12;color:#fff}
#footer p,#footer small{color:#aeb7ca}
#footer .logo{filter:invert(1)}

body:has(#casting-dialog[open]){background:#f6f8fc}
#casting-dialog{
  width:100%;
  max-width:none;
  height:100svh;
  max-height:100svh;
  margin:0;
  overflow-y:auto;
  background:var(--surface);
  color:var(--ink);
}
#casting-dialog::backdrop{background:rgba(1,5,15,.78);backdrop-filter:blur(10px)}
.application-shell,.casting-gateway{
  display:grid;
  grid-template-columns:minmax(330px,36vw) minmax(0,1fr);
  min-height:100svh;
  background:var(--surface);
}
.casting-gateway{grid-template-columns:minmax(360px,44vw) minmax(0,1fr)}
.casting-visual{
  position:sticky;
  top:0;
  height:100svh;
  overflow:hidden;
  background:#05070d;
  isolation:isolate;
}
.casting-visual>img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 50%;
  transform:scale(1.015);
  animation:casting-image-in 1s cubic-bezier(.2,.72,.2,1) both;
}
.casting-visual-shade{
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,rgba(1,5,15,.46),transparent 32%,transparent 58%,rgba(1,5,15,.72));
}
.casting-visual-top,.casting-visual-copy{
  position:absolute;
  z-index:2;
  left:clamp(22px,3vw,46px);
  right:clamp(22px,3vw,46px);
  color:#fff;
}
.casting-visual-top{
  top:clamp(24px,4vw,50px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  font-size:11px;
  letter-spacing:.12em;
}
.casting-visual-top .logo{width:clamp(145px,14vw,220px);filter:invert(1)}
.casting-visual-copy{bottom:clamp(30px,5vw,60px);display:grid;gap:10px}
.casting-visual-copy span{font-size:11px;letter-spacing:.15em;color:#dce6ff}
.casting-visual-copy strong{font:400 clamp(27px,3vw,48px)/1.08 Georgia,"Times New Roman",serif;max-width:470px;letter-spacing:-.04em}

.application-panel{
  width:min(100%,1040px);
  margin:0 auto;
  padding:28px clamp(28px,5vw,74px) 58px;
}
.application-top{
  min-height:58px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:30px;
}
.application-brand{display:grid;gap:4px}
.application-brand .logo,.email-brand .logo{width:170px}
.application-brand small,.email-brand small{font-size:9px;letter-spacing:.15em;color:var(--muted)}
.dialog-close{
  min-height:44px;
  padding:8px 0 8px 16px;
  color:var(--muted);
  display:inline-flex;
  align-items:center;
  gap:8px;
  transition:color .2s ease,transform .2s ease;
}
.dialog-close:hover{color:var(--blue);transform:translateY(-1px)}

.application-stepper{
  list-style:none;
  margin:28px 0 42px;
  padding:0;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
}
.application-stepper li{
  position:relative;
  display:grid;
  justify-items:start;
  gap:8px;
  color:#939aac;
}
.application-stepper li:not(:last-child):after{
  content:"";
  position:absolute;
  z-index:0;
  left:42px;
  right:-3px;
  top:17px;
  height:2px;
  background:#d7dce7;
  transition:background .35s ease;
}
.application-stepper li.is-complete:not(:last-child):after{background:var(--blue)}
.application-stepper li>span{
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border:1px solid #cfd5e1;
  border-radius:50%;
  background:var(--surface);
  font-size:11px;
  font-weight:700;
  transition:all .3s cubic-bezier(.2,.7,.2,1);
}
.application-stepper li>small{font-size:11px;line-height:1.25;transition:color .3s ease}
.application-stepper li.is-active{color:var(--blue)}
.application-stepper li.is-active>span{
  color:#fff;
  background:var(--blue);
  border-color:var(--blue);
  box-shadow:0 0 0 7px rgba(22,93,255,.1),0 8px 18px rgba(22,93,255,.25);
  transform:scale(1.06);
}
.application-stepper li.is-complete{color:var(--ink)}
.application-stepper li.is-complete>span{background:var(--ink);border-color:var(--ink);color:#fff}

.step-heading{max-width:720px;margin-bottom:30px}
.step-meta{
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:var(--blue);
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.application-panel h2{
  margin:17px 0 10px;
  font-size:clamp(40px,4.5vw,66px);
  line-height:1.04;
  letter-spacing:-.065em;
}
.application-panel .form-note{
  max-width:680px;
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.65;
}

.fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.field-card{
  position:relative;
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:5px;
  padding:11px 15px 10px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  box-shadow:0 4px 14px rgba(13,30,68,.035);
  transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease,background .22s ease;
}
.field-card:hover{border-color:#b8c6e5;transform:translateY(-1px)}
.field-card:focus-within{
  border-color:var(--blue);
  box-shadow:0 0 0 4px rgba(22,93,255,.1),0 15px 30px rgba(13,30,68,.07);
  transform:translateY(-2px);
}
.field-card.is-required .field-label:after{content:" *";color:var(--blue)}
.field-label{
  color:#6c7486;
  font-size:11px;
  font-weight:700;
  letter-spacing:.075em;
  text-transform:uppercase;
}
.field-label i{color:var(--blue);font-style:normal}
.field-card input,.field-card textarea,.field-card select{
  width:100%;
  min-height:32px;
  padding:2px 0;
  border:0;
  border-radius:0;
  outline:0;
  background:transparent;
  color:var(--ink);
  font-size:16px;
  line-height:1.45;
}
.field-card input:focus,.field-card textarea:focus,.field-card select:focus{outline:0}
.field-card input:read-only{background:transparent;color:#596174}
.field-card:has(input:read-only){background:#f1f5ff;border-color:#cbd9ff}
.field-card textarea{min-height:105px;resize:vertical}
.field-card small{color:#858da0;font-size:11px;line-height:1.35}
.field-card.wide{grid-column:1/-1}
.select-wrap{position:relative}
.select-wrap:after{
  content:"⌄";
  position:absolute;
  right:2px;
  top:50%;
  color:var(--blue);
  transform:translateY(-58%);
  pointer-events:none;
}
.select-wrap select{appearance:none;padding-right:25px;cursor:pointer}

.photo-intro{margin:0 0 18px;color:var(--muted);font-size:14px}
.uploads{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.upload-zone{
  min-height:180px;
  padding:0;
  border:1px dashed #afbddb;
  border-radius:16px;
  background:linear-gradient(145deg,#fff,#f5f8ff);
  overflow:hidden;
  transition:all .25s ease;
}
.upload-zone:hover,.upload-zone.dragover{border-color:var(--blue);background:var(--blue-soft);transform:translateY(-2px);box-shadow:0 14px 28px rgba(22,93,255,.09)}
.upload-zone>label{display:grid;place-items:center;align-content:center;min-height:178px;padding:22px;text-align:center;cursor:pointer}
.upload-icon{display:grid;place-items:center;width:42px;height:42px;margin-bottom:12px;border-radius:50%;background:var(--blue);color:#fff;font-size:22px;box-shadow:0 8px 18px rgba(22,93,255,.2)}
.upload-zone strong{font-size:15px;font-weight:600}
.upload-zone small{max-width:220px;margin:7px 0;color:var(--muted);font-size:11px;line-height:1.45}
.upload-zone input{max-width:100%;font-size:12px;color:var(--muted)}
.upload-zone.has-files>label{min-height:110px}
.upload-previews{display:flex;flex-wrap:wrap;gap:10px;padding:0 14px 14px}
.upload-previews:empty{display:none}
.upload-previews figure{position:relative;width:96px;height:124px;margin:0;border-radius:10px;overflow:hidden;background:#dbe3f3}
.upload-previews img{width:100%;height:100%;object-fit:cover}
.upload-previews figure small{display:none}
.upload-previews button{
  position:absolute;
  top:6px;
  right:6px;
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  background:rgba(5,9,18,.78);
  color:#fff;
  font-size:18px;
  text-decoration:none;
}

.consent{
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin-top:16px;
  padding:18px;
  border:1px solid #cbd9ff;
  border-radius:14px;
  background:var(--blue-soft);
  font-size:13px;
  line-height:1.6;
}
.consent input{width:21px;height:21px;margin:2px 0 0;accent-color:var(--blue);flex:none}
.consent span{display:grid;gap:3px}
.consent strong{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--blue)}
.consent button{width:max-content;padding:0;color:var(--blue)}
#privacy-copy{margin:12px 0 0;padding:18px;border-radius:12px;background:#fff;color:var(--muted);font-size:12px;line-height:1.65}
.form-error{min-height:22px;margin-top:14px;color:#b42318;font-size:13px;font-weight:600}
.application-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid var(--line);
}
.application-actions>button:first-child{min-height:50px;padding:10px 4px;color:var(--muted)}
.application-actions .cta{min-width:210px;justify-content:space-between;padding:15px 20px}
.cta span{font-size:19px}
.step:not([hidden]){animation:step-arrive .42s cubic-bezier(.2,.72,.2,1) both}
.step:not([hidden]) .field-card{animation:field-rise .38s ease both}
.step:not([hidden]) .field-card:nth-child(2){animation-delay:.035s}
.step:not([hidden]) .field-card:nth-child(3){animation-delay:.07s}
.step:not([hidden]) .field-card:nth-child(4){animation-delay:.105s}
.step:not([hidden]) .field-card:nth-child(n+5){animation-delay:.14s}

.casting-gateway .email-start{
  position:relative;
  width:min(100%,700px);
  max-width:none;
  margin:auto;
  padding:clamp(34px,7vw,90px);
}
.email-start .dialog-close{position:absolute;top:24px;right:clamp(24px,4vw,44px)}
.email-brand{display:grid;width:max-content;gap:4px;margin-bottom:clamp(50px,8vh,100px)}
.email-brand .logo{margin:0}
.email-kicker{display:block;margin-bottom:16px;color:var(--blue);font-size:11px;font-weight:700;letter-spacing:.13em}
.casting-gateway .email-start h2{margin:0 0 16px;font-size:clamp(42px,5vw,70px);line-height:1.02;letter-spacing:-.065em}
.casting-gateway .email-start>p{max-width:520px;color:var(--muted);font-size:16px;line-height:1.7}
.casting-gateway .email-start form{display:grid;gap:14px;margin-top:30px}
.casting-gateway .email-start .field-card{display:flex;margin-top:0;font-size:inherit}
.casting-gateway .email-start .field-card[hidden]{display:none}
.casting-gateway .email-start .primary{width:100%;margin:4px 0 0}
.casting-gateway .email-start [role=status]{min-height:20px;margin:0;color:var(--blue);font-size:13px;line-height:1.5}
.email-secondary{display:flex;flex-wrap:wrap;gap:20px}
.email-secondary button{padding:7px 0;color:var(--muted);font-size:13px;text-decoration:underline;text-underline-offset:4px}
.secure-note{display:block;margin-top:24px;color:#8a92a4;font-size:11px;letter-spacing:.04em}
.success-panel{display:grid;place-items:start;gap:16px;padding:60px 0}
.success-panel>span{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--blue);color:#fff;font-size:22px;box-shadow:0 0 0 9px rgba(22,93,255,.1)}
.success-panel h2,.success-panel h3{margin:12px 0 0;font-size:clamp(40px,5vw,70px)}
.success-panel p{max-width:560px;color:var(--muted);line-height:1.7}
.success-panel .logo{width:190px;margin-top:25px}

/* Compact editorial application fields */
.uploads-dynamic .field-card{min-height:82px;padding:10px 14px 9px}
.uploads-dynamic .field-area{min-height:unset;padding:15px 17px}
.uploads-dynamic .field-area textarea{min-height:150px}
.field-age{justify-content:center;min-height:108px!important;background:linear-gradient(135deg,#f5f8ff,#fff)!important;border-color:#b9ccff!important}
.field-age input{min-height:52px;font-size:clamp(38px,4vw,58px);font-weight:750;line-height:1;color:var(--blue)!important;letter-spacing:-.05em}
.field-age small{margin-top:2px}
.field-birthdate{gap:8px}
.birthdate-control{display:grid;grid-template-columns:.72fr 1.35fr .9fr;gap:7px}
.birthdate-control select{min-width:0;min-height:43px;padding:0 30px 0 10px;border:1px solid #cbd5e8!important;border-radius:10px!important;background-color:#f7f9fe!important;color:#090b12!important;font-size:14px!important;font-weight:650!important;cursor:pointer}
.birthdate-control select:focus{border-color:var(--blue)!important;box-shadow:0 0 0 3px rgba(22,93,255,.12)}
.birthdate-control input[type="hidden"]{display:none}
.phone-control{display:grid;grid-template-columns:minmax(108px,34%) minmax(0,1fr);gap:12px;align-items:center}
.phone-control select{padding-right:4px;border-right:1px solid var(--line);font-size:14px}
.consent.has-error{border-color:#e23232;background:#fff2f2;box-shadow:0 0 0 4px rgba(226,50,50,.1)}
.consent-alert{display:block;margin-top:8px;padding:14px 16px;border:1px solid #ffb1b1;border-radius:12px;background:#fff0f0;color:#b10000;font-weight:750;line-height:1.45;animation:field-rise .25s ease both}
.application-success-celebration{display:grid;place-items:center;align-content:center;min-height:calc(100svh - 80px);padding:50px 20px;text-align:center;background:radial-gradient(circle at 50% 36%,rgba(22,93,255,.12),transparent 38%)}
.application-success-celebration .success-spark{display:grid;place-items:center;width:76px;height:76px;margin-bottom:25px;border-radius:50%;background:var(--blue);color:#fff;box-shadow:0 0 0 12px rgba(22,93,255,.1),0 24px 55px rgba(22,93,255,.23)}
.application-success-celebration .success-spark .icon{width:30px;height:30px}.application-success-celebration>small{color:var(--blue);font-weight:800;letter-spacing:.15em}.application-success-celebration h2{max-width:760px;margin:14px 0;font-size:clamp(48px,7vw,92px);line-height:.94;letter-spacing:-.07em}.application-success-celebration p{max-width:650px;margin:0 0 28px;color:var(--muted);font-size:clamp(16px,2vw,20px);line-height:1.7}.application-success-celebration .logo{width:190px;margin:10px 0 34px}.application-success-celebration .button{min-width:220px}

@keyframes casting-image-in{from{opacity:0;transform:scale(1.07)}to{opacity:1;transform:scale(1.015)}}
@keyframes step-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes field-rise{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}

@media(max-width:1050px){
  .application-shell{grid-template-columns:minmax(300px,34vw) minmax(0,1fr)}
  .application-panel{padding-left:34px;padding-right:34px}
  .application-stepper li>small{font-size:10px}
}

@media(max-width:900px){
  .application-shell,.casting-gateway{display:block;min-height:100svh}
  .casting-visual{position:relative;height:clamp(215px,34svh,330px)}
  .casting-visual>img{object-position:50% 43%}
  .casting-visual-top{top:20px}
  .casting-visual-top .logo{width:150px}
  .casting-visual-copy{bottom:22px}
  .casting-visual-copy strong{font-size:26px}
  .casting-gateway .email-start{min-height:calc(100svh - 250px);padding:34px 24px 55px}
  .email-start .dialog-close{top:18px;right:24px}
  .email-brand{margin-bottom:48px}
  .application-panel{padding:20px 24px 48px}
}

@media(max-width:650px){
  .uploads-dynamic .field-card{min-height:72px;padding:9px 12px 8px}
  .uploads-dynamic .field-area{padding:13px}.uploads-dynamic .field-area textarea{min-height:145px}
  .field-age{min-height:96px!important}.field-age input{font-size:42px}
  .birthdate-control{grid-template-columns:.7fr 1.25fr .9fr;gap:5px}
  .birthdate-control select{padding-left:8px;padding-right:22px;font-size:13px!important}
  .phone-control{grid-template-columns:102px minmax(0,1fr);gap:9px}
  .application-success-celebration{min-height:80svh;padding:38px 12px}.application-success-celebration h2{font-size:48px}.application-success-celebration p{font-size:15px}
}

@media(max-width:700px){
  #header{height:74px}
  .hero-copy{padding-top:42px}
  .hero h1{font-size:clamp(40px,11.5vw,58px)}
  .hero-photo{height:62svh}
  .hero-photo img{object-position:50% 45%}
  .brand,.process,.questions{padding-left:22px;padding-right:22px}
  .application-panel{padding:16px 16px 38px}
  .application-top{min-height:48px;align-items:center}
  .application-brand .logo{width:145px}
  .application-brand small{display:none}
  .dialog-close span{display:none}
  .dialog-close{font-size:21px;padding:7px;min-width:44px;justify-content:center}
  .application-stepper{margin:22px 0 30px;gap:4px}
  .application-stepper li{justify-items:center}
  .application-stepper li:not(:last-child):after{left:calc(50% + 19px);right:calc(-50% + 19px);top:16px}
  .application-stepper li>span{width:33px;height:33px;font-size:10px}
  .application-stepper li>small{display:none}
  .application-stepper li.is-active>small{display:block;position:absolute;top:40px;width:110px;text-align:center;color:var(--blue);font-size:9px}
  .step-heading{margin-bottom:20px}
  .step-meta{font-size:10px}
  .application-panel h2{margin-top:14px;font-size:38px;line-height:1.06}
  .application-panel .form-note{font-size:14px;line-height:1.55}
  .fields{grid-template-columns:1fr;gap:10px}
  .field-card.wide{grid-column:auto}
  .field-card{padding:10px 13px 9px;border-radius:12px}
  .field-card:hover{transform:none}
  .field-card:focus-within{transform:none;box-shadow:0 0 0 3px rgba(22,93,255,.11)}
  .field-card textarea{min-height:96px}
  .uploads{grid-template-columns:1fr;gap:10px}
  .upload-zone{min-height:145px}
  .upload-zone>label{min-height:143px;padding:18px}
  .upload-icon{width:38px;height:38px;margin-bottom:9px}
  .consent{padding:14px}
  .application-actions{
    position:sticky;
    z-index:4;
    bottom:0;
    margin:18px -16px -38px;
    padding:13px 16px max(15px,env(safe-area-inset-bottom));
    background:rgba(246,248,252,.94);
    backdrop-filter:blur(16px);
    box-shadow:0 -10px 30px rgba(13,30,68,.06);
  }
  .application-actions .cta{min-width:0;flex:1;max-width:230px}
  .photo-intro{font-size:13px}
  .casting-visual{height:230px}
  .casting-visual-top span{display:none}
  .casting-visual-copy span{font-size:9px}
  .casting-visual-copy strong{font-size:22px;max-width:300px}
  .casting-gateway .email-start{padding:30px 18px 48px}
  .email-start .dialog-close{top:14px;right:16px}
  .email-brand{margin:0 0 38px}
  .email-brand .logo{width:150px}
  .email-brand small{display:none}
  .casting-gateway .email-start h2{font-size:42px}
  .casting-gateway .email-start>p{font-size:15px}
}

@media(max-width:380px){
  .casting-visual{height:205px}
  .casting-visual-copy strong{font-size:20px}
  .application-panel h2{font-size:34px}
  .step-meta span:last-child{display:none}
}

@media(prefers-reduced-motion:reduce){
  .casting-visual>img,.step:not([hidden]),.step:not([hidden]) .field-card{animation:none!important}
  .hero-photo img,.field-card,.application-stepper li>span{transition:none!important}
}
