

@font-face{font-family:'ONDER';src:url('/assets/ONDER-REGULAR.TTF') format('truetype');font-display:swap}

.pf{max-width:540px;margin:0 auto}
.pf-screen{animation:pf-in .28s ease both}
@keyframes pf-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

.pf-kicker{font-size:14px;font-weight:600;color:#5A78FF;margin:0 0 12px}
.pf-h1{font:400 clamp(15px,4.7vw,27px)/1.8 'ONDER','Montserrat',sans-serif;text-transform:uppercase;letter-spacing:.05em;margin:6px 0 14px;text-wrap:balance}
.pf-h2{font-size:21px;line-height:1.3;font-weight:700;margin:0 0 20px;text-wrap:balance}
.pf-lead{color:var(--dim);margin:0 0 26px;font-size:16px}

.pf-label{display:block;font-size:14px;font-weight:600;color:var(--dim);margin:0 0 8px}
.pf-input{width:100%;font-size:17px;font-weight:600;padding:15px 16px;border:1px solid var(--hair);border-radius:16px;
  background:var(--card);color:var(--ink);outline:none}
.pf-input::placeholder{color:var(--faint);font-weight:400}
.pf-input:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(48,84,255,.25)}
.pf-input[aria-invalid="true"]{border-color:var(--red)}
.pf-err{color:#ff8a83;font-size:14px;font-weight:600;margin:8px 0 0;min-height:21px}

.pf-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:56px;margin-top:14px;padding:14px 18px;
  border:0;border-radius:16px;background:var(--blue);color:#fff;font-weight:700;font-size:17px;cursor:pointer;
  box-shadow:0 12px 32px -10px rgba(48,84,255,.75);transition:transform .12s,background .15s;-webkit-tap-highlight-color:transparent}
.pf-btn:hover{background:#2645E6}
.pf-btn:active{transform:scale(.985)}
.pf-btn--ghost{background:transparent;border:1px solid var(--hair);box-shadow:none;color:var(--ink)}
.pf-btn--ghost:hover{background:var(--card)}

.pf-progress{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.pf-progress .pf-kicker{margin:0}
.pf-count{font-size:13px;font-weight:700;color:var(--dim);font-variant-numeric:tabular-nums}
.pf-bar{height:4px;border-radius:2px;background:var(--hair);overflow:hidden;margin-bottom:26px}
.pf-bar i{display:block;height:100%;width:0;border-radius:2px;background:linear-gradient(90deg,var(--blue),#5A78FF);transition:width .3s ease}


.pf-opts{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.pf-opt>span:last-child{min-width:0;overflow-wrap:anywhere}
.pf-h2,.pf-weak span{overflow-wrap:anywhere}
.pf-opt{display:flex;align-items:flex-start;gap:14px;width:100%;min-height:58px;padding:15px 16px;text-align:left;cursor:pointer;
  border:1px solid var(--hair);border-radius:16px;background:var(--card);color:var(--ink);font-weight:500;font-size:16px;line-height:1.4;
  -webkit-tap-highlight-color:transparent}
.pf-opt .n{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:rgba(238,244,250,.09);
  font-size:13px;font-weight:700;color:var(--dim)}
@media (hover:hover){.pf-opt:hover{border-color:rgba(90,120,255,.55)}}
.pf-opt.on{border-color:var(--blue);background:rgba(48,84,255,.2)}
.pf-opt.on .n{background:var(--blue);color:#fff}

.pf-card{margin:0 0 16px;border-radius:20px;overflow:hidden;
  box-shadow:0 0 0 1px var(--hair),0 24px 60px -24px rgba(48,84,255,.6),0 18px 50px -30px rgba(249,66,58,.5)}
.pf-card img{display:block;width:100%;height:auto}
.pf-card:empty{aspect-ratio:1200/1600;background:var(--card)}
.pf-weak{position:relative;background:var(--card);border:1px solid var(--hair);border-radius:16px;padding:16px 16px 16px 20px;overflow:hidden}
.pf-weak::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--red),var(--blue))}
.pf-weak b{display:block;font-size:14px;font-weight:600;color:#5A78FF;margin-bottom:6px}
.pf-weak span{font-size:16px;font-weight:600;line-height:1.45}
.pf-hint{font-size:14px;color:var(--dim);text-align:center;margin:10px 0 0}
.pf-status{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13.5px;color:var(--faint);margin:18px 0 0;text-align:center}
.pf-status:empty{display:none}
.pf-status::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--faint)}
.pf-status.ok::before{background:#3DDC97}
.pf-status.wait::before{background:#FFB547;animation:pf-pulse 1.4s ease-in-out infinite}
@keyframes pf-pulse{50%{opacity:.3}}
@media (prefers-reduced-motion:reduce){.pf-screen,.pf-status.wait::before{animation:none}.pf-bar i{transition:none}}
