/* LB-012 P0 — "The Set Is Waiting" entrance (Bible §3, artifact 67d148b5 ~L75-116).
   Cameron, direct, 2026-09-10: no flat cards, no rectangular buttons, only
   the Aura display sans stack. Everything here reads through Aura tokens
   (aura-tokens.css) and attaches to a prop (pill / glass), never a flat
   rectangle. The idle loop canvas (#entrance-loop) stays the set; this is
   only the shell on top of it. */
#welcome{position:fixed;inset:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding:0 6vw 9vw;font-family:var(--entrance-sans);text-align:center;background:linear-gradient(180deg,rgba(10,7,16,0) 0%,rgba(10,7,16,.15) 55%,rgba(10,7,16,.62) 100%)}
#welcome .entrance-mark{position:absolute;top:5vw;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:8px}
#welcome .entrance-mark .wordmark{width:150px;filter:drop-shadow(0 2px 18px rgba(10,7,16,.55))}
#welcome .entrance-mark .eyebrow{color:var(--aura-mint);letter-spacing:3px}
#welcome .entrance-frame{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:18px}

/* Stage 1 — approach: one diegetic line, one pill CTA. Nothing else competes
   for the frame (taste-corpus: ui-overreliance-in-frame is a standing deny). */
.entrance-approach{display:flex;flex-direction:column;align-items:center;gap:22px}
.entrance-line{font-size:15px;line-height:1.5;color:var(--aura-warmWhite);opacity:.88;max-width:34ch}
.pass-button{appearance:none;border:0;border-radius:999px;padding:16px 30px;font:600 13px/1 var(--entrance-sans);letter-spacing:.2px;min-height:50px;cursor:pointer;display:inline-flex;align-items:center;gap:10px;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.pass-button--primary{background:linear-gradient(135deg,var(--aura-rose),#e767a2);color:var(--aura-plum);box-shadow:0 10px 34px rgba(255,134,190,.35),inset 0 1px 0 rgba(255,255,255,.5)}
.pass-button--primary:hover{transform:translateY(-2px);box-shadow:0 14px 42px rgba(255,134,190,.45),inset 0 1px 0 rgba(255,255,255,.55)}
.pass-button--primary:active{transform:translateY(0)}

/* Stage 2 — the pass. No enclosing card: every control below is its own
   diegetic object, individually lit and grounded on the set — the same
   footing language .pass-button (Stage 1, already accepted) already uses.
   There is no shared bounding shape anywhere in this rule block. */
.entrance-pass{width:100%;max-width:340px;display:flex;flex-direction:column;align-items:center;gap:14px;position:relative}
.entrance-pass::after{content:'';position:absolute;left:50%;top:-30%;width:220px;height:220px;transform:translateX(-50%);background:radial-gradient(circle,rgba(255,222,150,.32),transparent 65%);pointer-events:none;animation:gate-glow 4.5s ease-in-out infinite;z-index:-1}
@keyframes gate-glow{0%,100%{opacity:.5}50%{opacity:1}}
.pass-eyebrow{color:var(--aura-lilac);letter-spacing:2.6px;display:block;text-shadow:0 2px 10px rgba(10,7,16,.85),0 0 22px rgba(195,166,255,.3)}
.pass-line{color:var(--aura-warmWhite);font-size:13px;line-height:1.6;margin:0;opacity:.92;text-shadow:0 2px 12px rgba(10,7,16,.9)}
.pass-name{color:var(--aura-mint);font-weight:600}
#login-actions.pass-actions{display:flex;flex-direction:column;gap:12px;width:100%;max-width:320px;margin:0 auto}
#login-actions .button{border-radius:999px;font-family:var(--entrance-sans);justify-content:center;text-decoration:none;min-height:52px;
  /* practical-lit: each control casts its OWN light onto the ground it sits
     on, same language as the pergola string-lights already in the shot —
     the set's own lighting grammar, not a UI elevation shadow */
  filter:drop-shadow(0 10px 24px var(--btn-glow, rgba(0,0,0,.35)))}
#login-actions .button.primary{--btn-glow:rgba(255,134,190,.4);background:linear-gradient(135deg,var(--aura-rose),#e767a2);color:var(--aura-plum);box-shadow:none}
#login-actions .button.glass{--btn-glow:rgba(143,215,255,.22);background:rgba(10,7,16,.5);border:1px solid rgba(245,238,244,.4);color:var(--aura-warmWhite);box-shadow:inset 0 0 0 1px rgba(245,238,244,.08),inset 0 1px 14px rgba(143,215,255,.16);backdrop-filter:none}
#login-actions .button.glass:hover{background:rgba(10,7,16,.6)}
#login-actions .button:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(10,7,16,.6),0 0 0 6px var(--aura-mint)}

/* "Back to my season" — a genuinely different object, not a third pill in
   the stack: the returning star's OWN pass, worn on a lanyard, clipped to
   the gate ironwork. Pure CSS on the existing #entrance-back-to-season
   anchor (season-archive.js, unchanged) — no wrapper markup needed. */
#entrance-back-to-season.button.returning{
  order:-1; /* sits above the two auth objects, first thing you see returning */
  appearance:none;border-radius:14px 14px 4px 4px !important;
  clip-path:polygon(0 12%,42% 12%,42% 0,58% 0,58% 12%,100% 12%,100% 100%,0 100%);
  background:linear-gradient(155deg,rgba(20,13,26,.94),rgba(10,7,16,.98));
  border:1px solid rgba(245,238,244,.22);
  color:var(--aura-warmWhite);width:148px;min-height:96px;padding:20px 12px 12px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  margin:0 auto 10px;position:relative;
  filter:drop-shadow(0 16px 28px rgba(0,0,0,.5));
  transform:rotate(-3deg);transform-origin:top center;
  animation:lb-pass-sway 6s ease-in-out infinite;
}
@keyframes lb-pass-sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(2deg)}}
#entrance-back-to-season.button.returning::before{ /* the lanyard cord */
  content:'';position:absolute;top:-30px;left:50%;transform:translateX(-50%);
  width:3px;height:30px;background:linear-gradient(var(--aura-lilac),rgba(195,166,255,.2));border-radius:2px;
}
#entrance-back-to-season.button.returning::after{ /* the punched hole + sheen */
  content:'';position:absolute;top:10px;left:50%;transform:translateX(-50%);
  width:9px;height:9px;border-radius:50%;background:var(--aura-plum);
  box-shadow:132px 0 0 -132px, /* keep specificity happy, no-op */ 0 0 0 rgba(0,0,0,0);
}
#entrance-back-to-season.button.returning span{display:block;font-size:8px;letter-spacing:2px;text-transform:uppercase;color:var(--aura-lilac);order:-1;margin-bottom:2px}
#entrance-back-to-season.button.returning:focus-visible{outline:none;box-shadow:0 0 0 3px var(--aura-mint)}

.pass-fine{color:var(--aura-warmWhite);opacity:.55;margin:2px 0 0;text-shadow:0 2px 10px rgba(10,7,16,.85)}
#login-error{color:var(--aura-rose);font-size:11px;margin-top:10px;min-height:14px}

#welcome .welcome-note{position:absolute;bottom:20px;right:24px;color:var(--aura-warmWhite);opacity:.55;font-family:var(--entrance-sans)}
#welcome .welcome-note .live-dot{background:var(--aura-rose);box-shadow:0 0 14px var(--aura-rose)}

/* Canvas "camera push" for the approach->check-in beat: a CSS-level dolly-in
   independent of idle-loop.js's own Ken Burns math (LB-012 §"advances the
   camera to the check-in position"), reverted on resume/freeze reset. */
#entrance-loop{transition:transform 1400ms cubic-bezier(.16,1,.3,1)}
#entrance-loop.entrance-loop--pushed{transform:scale(1.045)}

@media(max-width:600px){
  #welcome{padding:0 7vw 12vw}
  #welcome .entrance-mark{top:8vw}
  #welcome .entrance-mark .wordmark{width:120px}
  .entrance-line{font-size:14px}
}
