@font-face{font-family:PJS;src:url(/assets/fonts/pjs-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:PJS;src:url(/assets/fonts/pjs-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:PJS;src:url(/assets/fonts/pjs-700.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:PJS;src:url(/assets/fonts/pjs-800.woff2) format("woff2");font-weight:800;font-display:swap}
/* tokens: src/theme/tokens.ts + src/components/brand.tsx */
:root{--white:#FFFFFF;--blush:#FFF1F6;--blushDeep:#FFD6E8;--lavender:#F3EEFC;--mist:#F4F5F8;--line:#E6E8F0;--pink:#F50070;--pinkDeep:#C4005C;--navy:#111B42;--slate:#737B98;--mint:#0F9F8E;--logoPink:#E0005A;--r-md:16px;--r-lg:22px;--pill:999px;--shadow-card:0 12px 24px rgba(17,27,66,.08);--shadow-soft:0 6px 16px rgba(17,27,66,.06);--ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:PJS,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--white);color:var(--navy);-webkit-font-smoothing:antialiased;overflow-x:hidden;display:flex;flex-direction:column;min-height:100vh;min-height:100svh}
img,svg{display:block}
a{color:inherit}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--pink);outline-offset:3px}

.stage{position:relative;overflow:hidden;overflow:clip;flex:1;display:flex;flex-direction:column;align-items:center;width:100%;padding:28px 22px 12px}
.brand{position:relative;z-index:2}
.brand img{width:min(74vw,330px);height:auto}
.grid{width:100%;max-width:520px;display:flex;flex-direction:column;gap:26px;margin-top:22px}
.art{position:relative}
.field{position:absolute;inset:0;pointer-events:none;z-index:3}
.card{position:relative;overflow:hidden;border-radius:32px;background:var(--blush);aspect-ratio:4/3;box-shadow:0 12px 24px rgba(245,0,112,.16),0 0 48px rgba(245,0,112,.1)}
.card img{width:100%;height:100%;object-fit:cover}
.shimmer{position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.38) 50%,transparent 65%);background-size:250% 100%;background-position:120% 0;mix-blend-mode:soft-light;pointer-events:none}
@media(prefers-reduced-motion:no-preference){.card img{animation:breathe-img 22s ease-in-out infinite alternate}.shimmer{animation:shimmer 9s ease-in-out 2.5s infinite}}
@keyframes breathe-img{from{transform:scale(1)}to{transform:scale(1.06) translate(-1%,-1%)}}
@keyframes shimmer{0%,55%{background-position:120% 0}100%{background-position:-120% 0}}
.copy{display:flex;flex-direction:column;align-items:flex-start;text-align:left}
.head{font-weight:800;font-size:clamp(32px,9.4vw,50px);line-height:1.12;letter-spacing:-.025em;color:var(--navy)}
.head em{font-style:normal;color:var(--pink)}
/* SignalOrb (src/components/signal-orb.tsx) */
.orb{position:absolute;left:0;top:0;width:var(--s);height:var(--s);margin:calc(var(--s)/-2) 0 0 calc(var(--s)/-2);will-change:transform}
.orb__bloom{position:absolute;inset:0;border-radius:50%;background:var(--p);opacity:.28}
.orb__ring{position:absolute;inset:7%;border-radius:50%;border:1.5px solid rgba(245,0,112,.28)}
.orb__ring i{position:absolute;width:8%;height:8%;min-width:3px;min-height:3px;border-radius:50%}
.orb__ring .d1{top:1%;left:46%}.orb__ring .d2{bottom:6%;right:8%}.orb__ring .d3{top:42%;left:-2%}
.orb__core{position:absolute;inset:19%;width:62%;height:62%}
.orb__spark{position:absolute;left:50%;top:50%;width:16%;height:16%;min-width:10px;min-height:10px;transform:translate(-50%,-50%);fill:#fff}
@media(prefers-reduced-motion:no-preference){.orb__bloom{animation:bloom 3.4s ease-in-out infinite}.orb__ring{animation:spin 18s linear infinite}}
@keyframes bloom{50%{transform:scale(1.08)}}
@keyframes spin{to{transform:rotate(360deg)}}
.spark-dot{position:absolute;left:0;top:0;border-radius:8px;pointer-events:none;z-index:3}

.soon{display:inline-flex;align-items:center;gap:9px;margin-top:18px;font-size:13px;font-weight:700;color:var(--pinkDeep);padding:8px 14px;border-radius:var(--pill);background:var(--blush)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--pink)}
@media(prefers-reduced-motion:no-preference){.dot{animation:blink 1.8s ease-in-out infinite}}
@keyframes blink{50%{opacity:.35}}

.notify{position:relative;width:100%;max-width:480px;margin-top:18px}
.fieldrow{display:flex;gap:6px;padding:6px;border-radius:var(--pill);background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow-card);transition:border-color .25s,box-shadow .25s,transform .7s var(--ease),opacity .5s}
.fieldrow:focus-within{border-color:var(--pink);box-shadow:0 0 0 4px rgba(245,0,112,.1),var(--shadow-card)}
.fieldrow input{flex:1;min-width:0;height:50px;border:0;background:transparent;color:var(--navy);font:inherit;font-size:16px;padding:0 6px 0 18px;outline:none}
.fieldrow input::placeholder{color:var(--slate)}
.btn{position:relative;flex:none;height:50px;padding:0 24px;border:0;border-radius:var(--pill);cursor:pointer;font:inherit;font-weight:700;font-size:15.5px;color:#fff;background:linear-gradient(90deg,#F50070,#C026D3);box-shadow:0 10px 22px -8px rgba(245,0,112,.55);transition:transform .25s var(--ease),background .2s,box-shadow .25s;will-change:transform}
.btn:hover{box-shadow:0 14px 28px -8px rgba(192,38,211,.55)}
.btn[disabled]{cursor:progress}.btn.busy .btn__t{opacity:.65}
.btn__ok{position:absolute;inset:0;margin:auto;width:24px;height:24px;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24;opacity:0}
.plat{border:0;display:flex;justify-content:flex-start;gap:8px;margin-top:12px}
.plat label{position:relative;cursor:pointer}
.plat input{position:absolute;opacity:0;inset:0;cursor:pointer}
.plat span{display:inline-block;padding:6px 14px;border-radius:var(--pill);font-size:13.5px;font-weight:600;color:var(--slate);background:var(--mist);border:1px solid transparent;transition:all .2s}
.plat input:checked+span{color:var(--pinkDeep);background:var(--blush);border-color:var(--blushDeep)}
.plat input:focus-visible+span{outline:2px solid var(--pink);outline-offset:2px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.msg{font-size:14px;font-weight:600;color:var(--pinkDeep);margin-top:10px}.msg:empty{display:none}
.done{position:absolute;left:0;right:0;top:50%;transform:translateY(-35%);opacity:0;pointer-events:none;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.done__spark{width:30px;height:30px;fill:var(--pink);margin-bottom:6px}
.done b{font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--navy)}
.done span{color:var(--slate);font-size:15px}
.notify.ok .plat,.notify.ok .msg{opacity:0;transition:opacity .35s}
.notify.ok .fieldrow{transform:scale(.2);opacity:0;transition:transform .7s var(--ease) .55s,opacity .45s .75s}
.notify.ok .fieldrow input{opacity:0;transition:opacity .2s}
.notify.ok .btn__t{opacity:0}
.notify.ok .btn__ok{opacity:1;stroke-dashoffset:0;transition:stroke-dashoffset .5s var(--ease) .1s,opacity .1s}
.notify.ok .done{opacity:1;transform:translateY(-50%);transition:opacity .6s var(--ease) 1s,transform .8s var(--ease) 1s}
@media(prefers-reduced-motion:no-preference){.notify.ok .done__spark{animation:pop .9s var(--ease) 1s both}}
@keyframes pop{0%{transform:scale(0) rotate(-90deg)}70%{transform:scale(1.2) rotate(10deg)}100%{transform:none}}

.badges{display:flex;gap:10px;justify-content:flex-start;margin-top:22px;flex-wrap:wrap}
.badge{display:flex;align-items:center;gap:9px;height:48px;padding:0 15px 0 12px;border-radius:11px;background:#000;color:#fff;border:1px solid #A6A6A6;user-select:none}
.badge svg{width:22px;height:22px}
.badge span{display:flex;flex-direction:column;line-height:1.05;text-align:left}
.badge small{font-size:9.5px;font-weight:600;letter-spacing:.02em}
.badge b{font-size:16.5px;font-weight:700;margin-top:2px}

.foot{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 20px 24px;font-size:13px;color:var(--slate)}
.foot nav{display:flex;gap:22px}
.foot a{text-decoration:none;font-weight:600;color:var(--navy)}.foot a:hover{color:var(--pink)}

@media(min-width:760px){
  .foot{padding:16px 40px 24px}
}
@media(min-width:980px){
  .stage{justify-content:center;padding:36px 40px 8px}
  .brand img{width:480px}
  .grid{max-width:1120px;flex-direction:row;align-items:center;gap:72px;margin-top:36px}
  .art{flex:0 0 560px}
  .copy{flex:1}
  .head{font-size:46px}
}
}
@media(max-width:400px){.btn{padding:0 18px}.fieldrow input{padding-left:14px}}

@media(prefers-reduced-motion:no-preference){
  .js .s{opacity:0;transform:translateY(16px)}
  .js.in .s{opacity:1;transform:none;transition:opacity 1s var(--ease),transform 1s var(--ease)}
  .js .brand.s{transform:scale(.94)}
  .js.in .brand.s{transform:none;transition-duration:1.4s}
  .js.in .s2{transition-delay:.45s}.js.in .s3{transition-delay:.7s}.js.in .s4{transition-delay:.85s}.js.in .s5{transition-delay:1s}.js.in .s6{transition-delay:1.15s}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
