/* Step 1 sign-up pop-up · drop-in for any ellebeecher.com page.
   Everything is scoped under .s1p so it can't collide with page styles.
   Fonts: uses DM Serif Display + Inter, which every site page already loads. */
.s1p{--navy:#022850;--abyss:#011c3a;--cream:#FEF9E7;--gold:#FFC700;--gold-2:#F6D36B;--sage:#9CC47A;--mist:#B9CAD6;--olive:#57700F;--orange-2:#E4933C;
  --display:"DM Serif Display",Georgia,serif;--body:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
dialog.s1p{position:fixed;inset:0;margin:auto;padding:0;border:0;background:transparent;width:min(880px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);overflow:visible;color:#fff;font:16px/1.55 var(--body)}
dialog.s1p::backdrop{background:rgba(1,20,42,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
dialog.s1p[open]{animation:s1p-in .42s cubic-bezier(.2,.7,.2,1)}
dialog.s1p[open]::backdrop{animation:s1p-fade .3s ease}
@keyframes s1p-in{from{opacity:0;transform:translateY(18px) scale(.985)}}
@keyframes s1p-fade{from{opacity:0}}
@media (prefers-reduced-motion:reduce){dialog.s1p[open],dialog.s1p[open]::backdrop{animation:none}}
.s1p *{box-sizing:border-box}
.s1p .s1p-card{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);border-radius:28px;overflow:hidden;background:radial-gradient(120% 90% at 20% 0%,#0c3969 0%,#062f5c 45%,#022850 75%,#011f40 100%);box-shadow:0 50px 100px -40px rgba(0,0,0,.75),0 0 0 1px rgba(254,249,231,.12)}
.s1p .s1p-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:
 radial-gradient(2px 2px at 8% 19%,rgba(255,255,255,.7),transparent),radial-gradient(1.2px 1.2px at 92% 24%,rgba(255,255,255,.4),transparent),
 radial-gradient(2px 2px at 12% 79%,rgba(255,255,255,.6),transparent),radial-gradient(1px 1px at 97% 6%,rgba(255,255,255,.7),transparent),
 radial-gradient(2px 2px at 87% 86%,rgba(255,255,255,.5),transparent),radial-gradient(1.2px 1.2px at 40% 7%,rgba(255,255,255,.6),transparent),
 radial-gradient(1.6px 1.6px at 30% 94%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 60% 40%,rgba(255,255,255,.5),transparent)}
.s1p .s1p-x{position:absolute;top:14px;right:14px;z-index:5;width:42px;height:42px;border-radius:50%;border:0;background:rgba(254,249,231,.1);color:var(--cream);cursor:pointer;display:grid;place-items:center;transition:background .2s}
.s1p .s1p-x:hover{background:rgba(254,249,231,.2)}
.s1p .s1p-x svg{width:18px;height:18px}
.s1p :focus-visible{outline:3px solid var(--gold);outline-offset:3px}
/* art side: the same baked-blur fan as /step-1/ */
.s1p .s1p-art{position:relative;display:grid;place-items:center;padding:44px 20px 60px;min-height:100%}
.s1p .s1p-orb{position:absolute;left:50%;top:48%;width:150%;max-width:none;transform:translate(-50%,-50%);opacity:.8;mix-blend-mode:screen;pointer-events:none}
.s1p .s1p-deck{position:relative;width:min(62%,210px);aspect-ratio:600/849}
.s1p .s1p-deck img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:5px;transform-origin:50% 100%;transform:translateX(var(--x,0)) rotate(var(--r,0deg));box-shadow:0 22px 40px -20px rgba(0,0,0,.75)}
.s1p .q2{--r:-6deg;--x:-6px;z-index:4}.s1p .q3{--r:6deg;--x:6px;z-index:3}.s1p .q4{--r:-12deg;--x:-14px;z-index:2}.s1p .q5{--r:12deg;--x:14px;z-index:1}
.s1p .q1{z-index:6}
.s1p .s1p-count{position:absolute;left:50%;bottom:-16px;transform:translateX(-50%);z-index:7;background:var(--cream);color:var(--navy);font:800 10.5px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;padding:10px 15px;border-radius:999px;white-space:nowrap;box-shadow:0 10px 24px -12px rgba(0,0,0,.6)}
/* copy side */
.s1p .s1p-body{position:relative;padding:46px 44px 36px 8px}
.s1p .s1p-eye{display:flex;align-items:center;gap:9px;font:800 11px/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-2);margin:0 0 14px}
.s1p .s1p-eye svg{width:12px;height:12px;color:var(--gold)}
.s1p h2{font:400 clamp(30px,3.4vw,40px)/1.02 var(--display);color:#fff;margin:0 0 12px;text-wrap:balance}
.s1p .s1p-lede{margin:0 0 22px;color:#E7E2D2;font-size:16.5px;line-height:1.55;text-wrap:pretty}
.s1p .s1p-fields{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:10px;margin:0 0 12px}
.s1p label{display:flex;flex-direction:column;gap:7px;min-width:0}
.s1p label span{font:700 10.5px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mist)}
.s1p label span i{font-style:normal;font-weight:600;letter-spacing:.04em;text-transform:none;opacity:.75}
.s1p input{width:100%;min-width:0;font:500 16.5px/1.2 var(--body);color:var(--navy);background:var(--cream);border:2px solid transparent;border-radius:13px;padding:14px 15px;outline:none;margin:0}
.s1p input::placeholder{color:#8a98a6}
.s1p input:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(255,199,0,.25)}
.s1p .s1p-go{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:10px;font:700 16px/1 var(--body);color:var(--navy);background:var(--gold);border:0;border-radius:999px;padding:17px 24px;cursor:pointer;box-shadow:0 10px 30px -10px rgba(255,199,0,.65);transition:transform .25s,box-shadow .25s}
.s1p .s1p-go:hover{transform:translateY(-2px);box-shadow:0 16px 36px -12px rgba(255,199,0,.8)}
.s1p .s1p-fine{margin:12px 0 0;font-size:13px;line-height:1.5;color:#C9D5DF;text-wrap:balance}
.s1p .s1p-later{display:block;margin:14px auto 0;background:none;border:0;color:var(--mist);font:600 13.5px/1 var(--body);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:6px}
.s1p .s1p-sent{display:none}
.s1p.is-sent form{display:none}
.s1p.is-sent .s1p-sent{display:block}
.s1p .s1p-sent p{margin:0 0 18px;color:#E7E2D2}
.s1p .s1p-sent b{color:#fff}
/* phones: a bottom sheet, fan becomes a small peek */
@media (max-width:700px){
  dialog.s1p{width:100%;max-width:100%;max-height:92dvh;margin:auto 0 0;inset:auto 0 0 0}
  dialog.s1p[open]{animation:s1p-up .4s cubic-bezier(.2,.7,.2,1)}
  @keyframes s1p-up{from{transform:translateY(40px);opacity:0}}
  .s1p .s1p-card{grid-template-columns:minmax(0,1fr);border-radius:26px 26px 0 0;max-height:92dvh;overflow:auto;padding-bottom:env(safe-area-inset-bottom,0px)}
  .s1p .s1p-art{padding:28px 20px 30px;min-height:0}
  .s1p .s1p-deck{width:118px}
  .s1p .s1p-body{padding:4px 22px 22px}
  .s1p h2{font-size:30px}
  .s1p .s1p-fields{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:700px) and (max-height:720px){.s1p .s1p-art{padding:18px 20px 30px}.s1p .s1p-deck{width:86px}.s1p h2{font-size:27px}.s1p .s1p-lede{font-size:15.5px;margin-bottom:16px}}
