.gate{position:relative;min-height:100svh;display:grid;grid-template-rows:1fr auto;overflow:hidden;isolation:isolate;background:radial-gradient(120% 70% at 50% 108%,rgb(242 184 75/.22),transparent 58%),linear-gradient(180deg,var(--night-950) 0,var(--night-900) 46%,var(--dusk) 86%,#5a4a6e 100%);color:var(--adobe)}.gate:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 40%,rgb(202 100 70/.45));opacity:.3;animation:gate-afterglow 2.4s var(--ease-dusk) backwards}@keyframes gate-afterglow{0%{opacity:1}}.gate-sky{position:absolute;inset:0;z-index:-1;animation:gate-stars 2s var(--ease-dusk) .3s backwards}@keyframes gate-stars{0%{opacity:0}}.gate-horizon{position:absolute;inset:auto 0 0;height:clamp(150px,26vh,260px);z-index:0;pointer-events:none;color:#070a1d}.gate-ridge{position:absolute;inset:0;--ridge-near:#090c22}.gate-palm{position:absolute;bottom:0;height:clamp(190px,38vh,420px);color:#060918}.gate-palm-1{left:2%}.gate-palm-2{left:9%;height:clamp(150px,28vh,320px)}.gate-palm-3{right:4%}.gate-palm-4{right:12%;height:clamp(140px,24vh,280px)}.gate-stage{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:clamp(28px,5vw,72px);padding:clamp(40px,8vh,96px) var(--gutter) clamp(140px,22vh,220px)}.gate-blade{height:clamp(420px,66vh,640px);flex:none;filter:drop-shadow(0 24px 40px rgb(0 0 0/.5))}.gate-ticket{width:min(100%,440px);animation:gate-ticket-in .8s var(--ease-out) 1.9s backwards}@keyframes gate-ticket-in{0%{opacity:0;translate:0 26px}}.gate[data-quiet] .gate-sky,.gate[data-quiet] .gate-ticket,.gate[data-quiet]:before{animation:none}.gate-card{position:relative;overflow:hidden;border-radius:14px;background:radial-gradient(120% 90% at 50% 0,#fbf7f1 0,var(--paper) 55%,var(--paper-deep) 100%);color:var(--ink);box-shadow:0 30px 70px rgb(0 0 0/.55),0 0 0 1px rgb(200 149 92/.45),0 0 60px rgb(242 184 75/.12)}.gate-tile{width:100%}.gate-card-body{padding:28px clamp(24px,6vw,40px) 30px;text-align:center}.gate-logo{width:150px;margin:0 auto 10px;color:var(--night-700)}.gate-kicker{margin:0;font-size:14px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--terra-800)}.gate-card h1{margin:6px 0 22px;font-family:var(--font-display);font-weight:800;font-size:clamp(2.25rem,1.8rem + 2vw,3rem);line-height:1;letter-spacing:.02em;text-transform:uppercase;color:var(--night-700)}.gate-form{display:grid;gap:10px;text-align:left}.gate-form label{font-size:var(--step-0);font-weight:600;color:var(--ink)}.gate-form input{width:100%;min-height:52px;padding:12px 16px;border:1.5px solid var(--ochre-ink);border-radius:var(--radius);background:#fffdf9;color:var(--ink);font:inherit;font-size:1.125rem}.gate-form input:focus-visible{outline:3px solid var(--night-700);outline-offset:2px;border-color:var(--night-700)}.gate-form input[aria-invalid=true]{border-color:var(--terra-800)}.gate-error{display:flex;gap:8px;align-items:flex-start;margin:0;font-size:var(--step--1);font-weight:600;color:var(--terra-800)}.gate-error svg{flex:none;width:20px;height:20px;margin-top:1px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.gate-enter{justify-content:center;width:100%;min-height:54px;margin-top:8px;gap:10px}.gate-enter svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.gate-form.is-going .gate-enter{--btn-bg:var(--gold-300);--btn-glow:rgb(242 184 75/0.7)}.gate-stub{display:flex;justify-content:space-between;gap:12px;padding:14px clamp(24px,6vw,40px);border-top:2px dashed rgb(138 98 53/.45);background:var(--night-700);color:var(--gold-300);font-size:14px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.gate-credit{position:relative;z-index:1;margin:0;max-width:none;justify-self:center;padding:0 var(--gutter) 22px;text-align:center;font-size:var(--step--1);color:var(--cream-soft)}@media (max-height:34em),(max-width:47.5em){.gate-blade{display:none}.gate-ticket{animation-delay:.6s}.gate-stage{padding-bottom:clamp(120px,18vh,180px)}}@media (max-width:26em){.gate-stub{flex-direction:column;gap:2px}}