/* ASK HPN — layered on hpn.css, same neon/diner system.
   Only the tool-specific surfaces live here. */

.ask-body{padding-top:0}

/* ---------- tool hero ---------- */
.askhero{position:relative;overflow:hidden;isolation:isolate;
  padding:9.5rem 0 4.5rem;
  background:radial-gradient(110% 90% at 50% 0%,#1b1210,var(--ink) 72%)}
.askhero-bg{position:absolute;inset:0;z-index:-2;opacity:.42}
.askhero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.askhero-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,#0c0a09e6 0%,#0c0a0999 40%,var(--ink) 96%)}
.askhero-in{max-width:900px}
.askhero h1{font-size:clamp(2.5rem,1.4rem + 4.6vw,5rem);margin-bottom:.3em}
.askhero .lede{margin-bottom:2.2rem;max-width:60ch}
.kicker .dot{width:7px;height:7px;border-radius:50%;background:var(--hot);display:inline-block}

/* ---------- prompt ---------- */
.prompt{position:relative;display:flex;gap:.5rem;width:100%;max-width:680px;
  background:#140f0ecc;border:1px solid var(--line-2);border-radius:var(--r-lg);padding:.55rem;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:0 26px 70px -28px #000,0 0 0 1px #d9440d1a;
  transition:border-color .2s,box-shadow .2s}
.prompt:focus-within{border-color:var(--hot);
  box-shadow:0 0 0 1px var(--hot),0 0 34px -6px #d9440d88,0 26px 70px -28px #000}
.prompt-input{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--white);
  font-family:var(--body);font-size:1.0625rem;padding:.75em .9em}
.prompt-input::placeholder{color:var(--muted-2)}
.prompt.pulse{animation:pulse .8s ease-out 1}
@keyframes pulse{40%{box-shadow:0 0 0 3px #d9440d66}}

.suggests{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.5rem;max-width:820px}
.chip{font-family:var(--body);font-size:.86rem;color:var(--muted);background:transparent;
  border:1px solid var(--line);border-radius:999px;padding:.42em 1em;cursor:pointer;
  transition:color .15s,border-color .15s,background .15s}
.chip:hover{color:var(--white);border-color:var(--hot)}
.chip-accent{border-color:var(--hot);color:var(--hot-2)}
.chip-accent:hover{background:var(--hot);color:#fff}

/* ---------- autocomplete ---------- */
.ac{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:20;background:var(--ink-3);
  border:1px solid var(--line-2);border-radius:var(--r);padding:.4rem;text-align:left;
  box-shadow:0 26px 70px -22px #000}
.ac-item{display:block;width:100%;text-align:left;cursor:pointer;background:transparent;border:0;
  border-radius:8px;font-family:var(--body);font-size:.95rem;color:var(--muted);padding:.6em .8em}
.ac-item::before{content:"→ ";color:var(--hot)}
.ac-item:hover,.ac-item[aria-selected="true"]{background:var(--ink-4);color:var(--white)}

/* ---------- answer ---------- */
.answer{padding:clamp(3rem,7vw,5.5rem) 0;background:var(--ink-2);border-top:1px solid var(--line)}
.answer .wrap{max-width:900px}
.echo{color:var(--muted-2);font-size:.95rem;margin-bottom:1.6rem}
.echo .mono{font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--hot-2);margin-right:.6em}
.echo q{color:var(--white);font-style:italic}
.topic-tag{margin-bottom:.7em}
#answer-title:focus,#check-q:focus,#brief-q:focus{outline:none}
.answer-body{font-size:1.09rem;max-width:64ch;color:#e8ded6}
.answer-body p{margin-bottom:1em}

.moves{margin-top:2.2rem}
.moves ol{margin:0;padding:0;list-style:none;counter-reset:mv;max-width:62ch}
.moves li{counter-increment:mv;position:relative;padding:.85rem 0 .85rem 2.7rem;
  border-top:1px solid var(--line);color:var(--muted)}
.moves li::before{content:counter(mv,decimal-leading-zero);position:absolute;left:0;top:.8rem;
  font-family:var(--display);font-size:1.05rem;color:var(--hot)}

.answer-cta{margin-top:2.4rem;padding:1.5rem 1.7rem;background:var(--ink-3);
  border:1px solid var(--line);border-radius:var(--r-lg);
  display:flex;align-items:center;justify-content:space-between;gap:1.3rem;flex-wrap:wrap}
.answer-cta p{margin:0;color:var(--white);max-width:46ch}

.related{margin-top:2.4rem}
.qlist{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}
.qbtn{font-family:var(--body);font-size:.98rem;text-align:left;color:var(--muted);
  background:transparent;border:1px solid var(--line);border-radius:var(--r);
  padding:.75em 1em;cursor:pointer;width:100%;max-width:64ch;
  transition:color .15s,border-color .15s}
.qbtn:hover{color:var(--white);border-color:var(--hot)}
.qbtn::before{content:"→ ";color:var(--hot)}

.share{margin-top:2.4rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.share-btns{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.share-label{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted-2);margin-right:.4rem}
.feedback{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:1.1rem 0 0;
  color:var(--muted);font-size:.95rem}
#feedback-done{color:var(--hot-2)}

/* ---------- check + brief ---------- */
.check{padding:clamp(3rem,7vw,5rem) 0;background:var(--ink-2);border-top:1px solid var(--line)}
.check .wrap{max-width:820px}
.options{display:grid;gap:.7rem;margin:1.6rem 0}
.opt{text-align:left;cursor:pointer;width:100%;background:var(--ink);border:1px solid var(--line-2);
  border-radius:var(--r);color:var(--white);font-family:var(--body);font-size:1.03rem;
  padding:1em 1.2rem;transition:border-color .15s,background .15s,transform .15s}
.opt:hover{border-color:var(--hot);background:var(--ink-4);transform:translateX(3px)}
.opt.sel{border-color:var(--hot);background:var(--ink-4)}
.opt.sel::after{content:" ✓";color:var(--hot-2)}
.check-exit{margin:1rem 0 0}
.readout-item{padding:1.35rem 0;border-top:1px solid var(--line)}
.readout-item h3{font-size:1.2rem;margin-bottom:.35em;font-family:var(--display);text-transform:uppercase}
.readout-item p{color:var(--muted)}
.readout-cta{margin-top:1.8rem;display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}

.brief-hint{color:var(--muted);margin:-.4rem 0 0;font-size:.98rem;max-width:62ch}
.brief-hint q{color:var(--white);font-style:italic}
.brief-input{display:flex;gap:.5rem;margin:1.6rem 0;flex-wrap:wrap}
.brief-input input{flex:1;min-width:230px;background:var(--ink);color:var(--white);
  border:1px solid var(--line-2);border-radius:10px;font-family:var(--body);font-size:1rem;
  padding:.7em .9em;outline:none;transition:border-color .2s}
.brief-input input:focus{border-color:var(--hot)}
.brief-actions{display:flex;gap:.8rem;align-items:center;margin:1.5rem 0}
.brief-actions:not(:has(:not([hidden]))){display:none}
.brief-live{margin-top:2rem;padding:1.2rem 1.4rem;background:var(--ink);
  border:1px solid var(--line);border-radius:var(--r-lg)}
.brief-live ul{margin:0;padding:0;list-style:none}
.brief-live li{color:var(--muted);font-size:.95rem;padding:.28em 0}
.brief-live li::before{content:"· ";color:var(--hot)}
.brief-card{margin-top:1.5rem;background:var(--ink);border:1px solid var(--line-2);
  border-radius:var(--r-lg);padding:1.7rem 1.85rem}
.brief-card h3{font-size:1.02rem;margin:1.35em 0 .35em;font-family:var(--display);
  text-transform:uppercase;letter-spacing:.03em}
.brief-card p{color:var(--muted);margin-bottom:.45em;max-width:64ch}
.brief-card q{color:var(--white);font-style:italic}
.brief-card .moves{margin-top:.7rem}

/* ---------- library ---------- */
.library{padding:clamp(3.5rem,8vw,6rem) 0}
.library h2{max-width:22ch}
.lib-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.2rem;
  margin-top:2.6rem}
.lib-group{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:1.5rem 1.6rem}
.lib-group h3{font-size:1.02rem;margin-bottom:.9em;font-family:var(--display);
  text-transform:uppercase;letter-spacing:.03em;color:var(--hot-2)}
.lib-group .qbtn{border:0;padding:.45em 0;max-width:none;border-radius:6px}

/* ---------- contact ---------- */
.contact{padding:clamp(3.5rem,8vw,6rem) 0;background:var(--ink-2);border-top:1px solid var(--line)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.card{background:var(--ink);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:1.8rem}
.contact-form{display:grid;gap:1rem}
.field{display:grid;gap:.35rem}
.field label{font-family:var(--body);font-weight:600;font-size:.88rem;color:var(--muted)}
.field input,.field textarea{background:var(--ink-2);color:var(--white);border:1px solid var(--line-2);
  border-radius:10px;font-family:var(--body);font-size:1rem;padding:.7em .9em;
  transition:border-color .2s}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--hot)}
.field textarea{resize:vertical;min-height:6em}
.field textarea.lit{border-color:var(--hot)}
.form-error{margin:0;padding:.75rem 1rem;font-size:.95rem;border:1px solid var(--hot);
  border-radius:10px;background:#d9440d1a}
.form-error:focus{outline:none}
.btn-wide{width:100%;justify-content:center}
.confirm h3{font-size:1.4rem;font-family:var(--display);text-transform:uppercase}
.confirm p{color:var(--muted)}

/* ---------- reveal ---------- */
.answer.live > .wrap > *{animation:rise .5s ease-out both}
.answer.live > .wrap > *:nth-child(2){animation-delay:.05s}
.answer.live > .wrap > *:nth-child(3){animation-delay:.1s}
.answer.live > .wrap > *:nth-child(4){animation-delay:.15s}
.answer.live > .wrap > *:nth-child(5){animation-delay:.2s}
.answer.live > .wrap > *:nth-child(6){animation-delay:.25s}
.w{animation:wfade .24s ease-out both;animation-delay:var(--d,0ms)}
@keyframes wfade{from{opacity:.15}to{opacity:1}}

@media(max-width:860px){ .contact-grid{grid-template-columns:1fr} }
@media(max-width:560px){
  .prompt{flex-direction:column}
  .prompt .btn{justify-content:center;width:100%}
  .askhero{padding-top:8rem}
}
@media(prefers-reduced-motion:reduce){
  .w,.answer.live > .wrap > *{animation:none}
  .opt:hover{transform:none}
  .prompt.pulse{animation:none;border-color:var(--hot)}
}

/* contact rows: same rhythm as .step but without the counter, which was
   colliding with the heading when the top padding was tightened. */
.crow{position:relative;padding:1.15rem 0;border-top:1px solid var(--line)}
.crow h3{font-family:var(--display);text-transform:uppercase;font-size:1.05rem;
  letter-spacing:.03em;margin:0 0 .25em;color:var(--white)}
.crow p{margin:0;color:var(--muted);font-size:1.02rem}
.crow a{color:var(--hot-2)}
.crow a:hover{color:var(--white)}
