/* THE GO E1U THEATER, theater.e1ulife.com. Fonts are ours, not a CDN's: the page's policy only allows its own. */
@font-face { font-family: 'Unbounded'; src: url('/assets/fonts/unbounded.woff2') format('woff2'); font-weight: 200 900; font-display: swap; }
@font-face { font-family: 'Figtree'; src: url('/assets/fonts/figtree.woff2') format('woff2'); font-weight: 300 900; font-display: swap; }
@font-face { font-family: 'Spline Sans Mono'; src: url('/assets/fonts/spline-sans-mono.woff2') format('woff2'); font-weight: 300 700; font-display: swap; }

  *{box-sizing:border-box}
  :root{
    --o:#FD5E00; --o2:#D94A00; --ink:#0B0C10; --ink2:#12141A; --ink3:#1A1D26;
    --tx:#F2F3EE; --tx2:#B9BDC4; --tx3:#8B8F98; --hair:rgba(255,255,255,.09); --hair2:rgba(255,255,255,.22);
    --disp:'Unbounded',sans-serif; --body:'Figtree',sans-serif; --mono:'Spline Sans Mono',monospace;
    --bar:64px; --curt:15vw;
  }
  html{scroll-behavior:smooth}
  body{margin:0;background:#07080B;color:var(--tx);font-family:var(--body);-webkit-font-smoothing:antialiased}
  a{color:inherit}
  button{font:inherit;color:inherit;cursor:pointer}

  /* top bar */
  .bar{height:var(--bar);display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:#060709;border-bottom:1px solid var(--hair);position:relative;z-index:10}
  .brand{font:700 15px var(--disp);text-transform:uppercase;letter-spacing:-.01em}
  .brand span{color:var(--o)}
  .who{display:flex;align-items:center;gap:20px;font-size:15px;color:var(--tx2)}
  .who a{text-decoration:none;border:1px solid var(--hair2);border-radius:8px;padding:9px 14px;font-weight:600;color:var(--tx);font-size:14px}
  .who a:hover{border-color:var(--tx3)}

  /* the hall: a photographed stage; the screen sits in its black opening */
  .hall{position:relative;width:100%;aspect-ratio:16/9;background:#050304 var(--img) center/100% 100% no-repeat;overflow:hidden}
  .screen{position:absolute;top:var(--sy);height:var(--sh);aspect-ratio:16/9;left:50%;transform:translateX(-50%);background:#000;
      box-shadow:0 0 0 10px #0a0a0c, 0 0 0 11px rgba(255,255,255,.08), 0 0 110px rgba(255,236,200,.22), 0 40px 80px rgba(0,0,0,.7);border-radius:2px;overflow:hidden}
  .screen video,.screen .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;background:#000}
  .poster.card{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:7%;background:#0B0C10}
  .poster.card .n{font:600 clamp(60px,10vw,200px)/1 var(--mono);color:var(--o);letter-spacing:-.06em}
  .poster.card .t{font:700 clamp(22px,2.8vw,54px)/1.08 var(--disp);text-transform:uppercase;letter-spacing:-.02em;max-width:16ch;margin-top:2%}
  .play{position:absolute;left:50%;top:78%;width:96px;height:96px;margin:-48px 0 0 -48px;border-radius:50%;border:0;background:var(--o);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 40px rgba(0,0,0,.5)}
  .play svg{margin-left:7px}
  .play:hover{background:var(--o2)}
  .soon{position:absolute;left:0;right:0;bottom:6%;text-align:center;font:600 clamp(12px,1vw,17px) var(--mono);color:var(--tx3);letter-spacing:.02em}
  .now{position:absolute;left:0;right:0;top:calc(var(--sy) + var(--sh) + 1vw);display:flex;justify-content:center;gap:18px;align-items:baseline;font:700 clamp(14px,1.3vw,21px) var(--disp);text-transform:uppercase;letter-spacing:-.01em;text-shadow:0 2px 14px rgba(0,0,0,.85)}
  .now small{font:500 clamp(12px,.95vw,15px) var(--mono);color:var(--tx2);text-transform:none;letter-spacing:0}

  /* progress */
  .progress{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:20px 56px;padding:34px 32px;background:#0a0b0f;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
  .progress .series{font:700 15px var(--disp);text-transform:uppercase;letter-spacing:-.01em}
  .pips{display:flex;gap:8px}
  .pip{width:34px;height:10px;border-radius:5px;background:#262a35}
  .pip.on{background:var(--o)}
  .progress .fact{font-size:16px;color:var(--tx2)}
  .progress .fact b{color:var(--tx);font-weight:700}

  /* picker */
  .picker{padding:84px 5vw 40px;max-width:1700px;margin:0 auto}
  .picker h2,.breakdown h2.big{font:700 clamp(28px,3vw,46px)/1.08 var(--disp);text-transform:uppercase;letter-spacing:-.02em;text-align:center;margin:0 0 14px}
  .picker .lead{text-align:center;color:var(--tx2);font-size:20px;margin:0 0 48px}
  .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
  .vcard{all:unset;box-sizing:border-box;display:block;background:var(--ink2);border:1px solid var(--hair);border-radius:14px;overflow:hidden;cursor:pointer;transition:border-color .15s,background .15s}
  .vcard:hover{border-color:var(--hair2)}
  .vcard.sel{background:var(--ink3);border-color:var(--hair2)}
  .vcard:focus-visible{outline:2px solid var(--o);outline-offset:2px}
  .thumb{position:relative;aspect-ratio:16/9;background:#0e1015;display:flex;align-items:center;padding:0 8%}
  .thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .thumb .num{font:600 clamp(54px,5.6vw,110px)/1 var(--mono);color:var(--o);letter-spacing:-.06em}
  .thumb .dur{position:absolute;right:12px;bottom:10px;font:500 13px var(--mono);color:var(--tx2);background:rgba(0,0,0,.6);padding:3px 8px;border-radius:5px}
  .check{position:absolute;right:12px;top:12px;width:30px;height:30px;border-radius:50%;background:var(--o);display:none;align-items:center;justify-content:center}
  .vcard.done .check{display:flex}
  .meta{padding:18px 20px 22px}
  .meta .name{font:700 17px/1.25 var(--disp);text-transform:uppercase;letter-spacing:-.01em;margin:0 0 8px}
  .meta .sub{font-size:15px;line-height:1.4;color:var(--tx2);margin:0}
  .state{margin-top:12px;font:600 13px var(--mono);color:var(--tx3);min-height:18px}
  .vcard.sel .state,.state.up{color:var(--o)}

  /* breakdown */
  .breakdown{padding:60px 5vw 100px;max-width:1300px;margin:0 auto}
  .breakdown h2.big{margin-bottom:10px}
  .breakdown .one{text-align:center;color:var(--tx2);font-size:22px;line-height:1.4;margin:0 auto 56px;max-width:36ch}
  .cols{display:grid;grid-template-columns:1.15fr 1fr;gap:72px}
  .cols h3{font:700 20px var(--disp);text-transform:uppercase;letter-spacing:-.01em;margin:0 0 20px}
  .do{margin:0;padding:0;list-style:none;counter-reset:s;border-top:1px solid var(--hair2)}
  .do li{counter-increment:s;display:flex;gap:22px;padding:20px 0;border-bottom:1px solid var(--hair);font-size:20px;line-height:1.4}
  .do li::before{content:counter(s);font:600 20px var(--mono);color:var(--o);min-width:1.4ch}
  .tip{margin-top:26px;font-size:18px;line-height:1.5;color:var(--tx2)}
  .tip b{color:var(--tx)}
  .copyblock{border:1px solid var(--hair);background:var(--ink2);border-radius:14px;padding:6px 24px}
  .copyblock .row{display:flex;gap:18px;align-items:flex-start;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--hair);font-size:18px;line-height:1.45}
  .copyblock .row:last-child{border-bottom:0}
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;padding:13px 24px;font-weight:700;font-size:16px;text-decoration:none;border:1px solid var(--hair2);background:transparent}
  .btn.go{background:var(--o);border-color:var(--o);color:#0B0C10}
  .btn.go:hover{background:var(--o2);border-color:var(--o2)}
  .btn.sm{padding:8px 16px;font-size:14px;flex:none}
  .btn:hover{border-color:var(--tx3)}
  .actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:30px}
  .btn.done-on{background:#1c2a1f;border-color:#2f4a35}
  .watched{margin:14px 0 0;font-size:15px;color:var(--tx3)}
  .upline{margin-top:34px;padding-top:24px;border-top:1px solid var(--hair);font-size:18px;line-height:1.5;color:var(--tx2)}
  .upline b{color:var(--tx)}
  .next{margin-top:18px;font-size:18px;color:var(--tx2)}
  .next a{color:var(--tx);font-weight:700}

  footer{padding:30px 5vw 40px;text-align:center;font-size:13px;line-height:1.6;color:var(--tx3);border-top:1px solid var(--hair)}
  footer a{color:var(--tx2)}

  @media (max-width:1100px){.grid{grid-template-columns:repeat(2,1fr)}.cols{grid-template-columns:1fr;gap:48px}}
  @media (max-width:700px){
    .bar{padding:0 14px}.brand{font-size:13px;white-space:nowrap}.who{gap:8px}.who span{display:none}.who a,.who button.link{padding:8px 10px;font-size:13px;white-space:nowrap}
    .hall{aspect-ratio:auto;background-size:300% auto;background-position:50% 0;padding:15vw 4vw 22px}
    .screen{position:relative;top:auto;left:auto;transform:none;height:auto;width:100%}
    .play{width:72px;height:72px;margin:-36px 0 0 -36px}
    .now{position:static;flex-direction:column;align-items:center;gap:4px;text-align:center;margin-top:18px}
    .grid{grid-template-columns:repeat(2,1fr);gap:14px}
    .meta{padding:12px 12px 14px}.meta .name{font-size:12px}.meta .sub{display:none}.state{margin-top:8px;font-size:12px}
    .thumb .num{font-size:52px}.thumb .dur{font-size:11px;right:8px;bottom:6px}.check{width:24px;height:24px;right:8px;top:8px}
    .poster.card .n{font-size:64px}.poster.card .t{font-size:20px}
    .soon{font-size:11px}
    .picker{padding:56px 16px 20px}.breakdown{padding:40px 16px 70px}
    .progress{padding:26px 16px}
  }

  /* sign-in and the membership notice, on the big screen */
  .gatebox{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:4% 8%;background:#0B0C10}
  .gatebox h2{font:700 clamp(18px,2.4vw,40px)/1.1 var(--disp);text-transform:uppercase;letter-spacing:-.02em;margin:0 0 .5em}
  .gatebox p{color:var(--tx2);font-size:clamp(13px,1.3vw,21px);line-height:1.4;margin:0 0 1.2em;max-width:34em}
  .gatebox form{display:flex;flex-direction:column;gap:.9em;text-align:left;width:min(100%,32em)}
  .gatebox .two{display:grid;grid-template-columns:1fr 1fr;gap:.9em}
  .gatebox label{display:block;font-size:clamp(11px,.95vw,15px);color:var(--tx2);font-weight:600;margin-bottom:.35em}
  .gatebox input{width:100%;background:var(--ink2);border:1px solid var(--hair2);border-radius:10px;padding:.8em .9em;font:500 clamp(13px,1.2vw,18px) var(--body);color:var(--tx)}
  .gatebox input:focus{outline:2px solid var(--o);outline-offset:1px}
  .gatebox .btn{width:100%;margin-top:.2em}
  .gatebox .err{background:#2a1710;border:1px solid #5a2c18;color:#ffd9c7;border-radius:10px;padding:.7em .9em;font-size:clamp(12px,1.05vw,16px)}
  .gatebox .small{margin-top:1em;font-size:clamp(11px,.95vw,15px);color:var(--tx3)}
  .gatebox .small a{color:var(--tx2)}
  /* below this width the screen is too small to hold a form, so it grows to fit it, as the hall does on a phone */
  @media (max-width:1000px){
    .hall--gate{aspect-ratio:auto;background-size:300% auto;background-position:50% 0;padding:15vw 4vw 22px}
    .hall--gate .screen{position:relative;top:auto;left:auto;transform:none;height:auto;width:100%;aspect-ratio:auto}
    .hall--gate .gatebox{position:relative;inset:auto;padding:28px 18px}
    .gatebox .two{grid-template-columns:1fr}
    .gatebox h2{font-size:22px}.gatebox p{font-size:15px}.gatebox label{font-size:13px}.gatebox input{font-size:16px}.gatebox .small{font-size:14px}.gatebox .err{font-size:14px}
  }
  .who form{margin:0}
  .who button.link{background:transparent;border:1px solid var(--hair2);border-radius:8px;padding:9px 14px;font-weight:600;color:var(--tx);font-size:14px}
  .who button.link:hover{border-color:var(--tx3)}
  .screen .poster.card.title .n{font-size:clamp(34px,6vw,120px)}
