.planner{display:grid;gap:40px;padding-bottom:110px}
@media (min-width:980px){.planner{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:64px;align-items:start}}
.steps{display:grid;gap:10px}
.step{border:0;border-top:1px solid #2a2726;margin:0;padding:26px 0 22px;min-width:0}
.step legend{float:left;width:100%;font:400 clamp(26px,3.4vw,36px)/1.1 var(--serif);margin-bottom:16px;padding:0}
.step legend+*{clear:both}
.hint{font-size:14px;color:var(--wash2);margin:-6px 0 14px}
.chips{display:flex;flex-wrap:wrap;gap:8px;clear:both}
.chip{position:relative;cursor:pointer}
.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip span{display:inline-flex;align-items:center;min-height:46px;padding:0 16px;border:1px solid #3a3634;font:500 15px/1.2 var(--sans);color:var(--bone2);transition:border-color .2s,background-color .2s,color .2s}
.chip:hover span{border-color:#6b6562}
.chip input:checked+span{background:var(--bone);color:var(--ink);border-color:var(--bone)}
.chip input:focus-visible+span{outline:2px solid var(--violet);outline-offset:3px}
.field{display:block;clear:both}
.field span{display:block;font-size:14px;color:var(--wash2);margin-bottom:8px}
.field textarea,.field input{width:100%;background:#141212;border:1px solid #3a3634;color:var(--bone);font:400 16px/1.5 var(--sans);padding:12px 14px;border-radius:0}
.field textarea:focus,.field input:focus{outline:none;border-color:var(--violet)}
.check{display:flex;align-items:center;gap:12px;margin-top:14px;min-height:44px;cursor:pointer;font-size:15px}
.check input{width:20px;height:20px;accent-color:var(--violet)}
.sheet{position:relative}
@media (min-width:980px){.sheet{position:sticky;top:calc(var(--hdr) + 20px)}}
.sheet-in{background:#efe9df;color:#1a1817;padding:26px 24px 24px;position:relative;
  background-image:repeating-linear-gradient(0deg,rgba(80,70,200,.06) 0 1px,transparent 1px 28px)}
.sheet .eyebrow{color:#4a4542}
.sheet-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.count{font:600 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#5a5452}
.count b{color:var(--violet-d);font-weight:600}
.line{height:2px;background:rgba(80,70,200,.15);margin:14px 0 18px}
.line span{display:block;height:2px;background:var(--violet-d);transform-origin:left;transform:scaleX(0);transition:transform .5s cubic-bezier(.2,.7,.1,1)}
.msg{white-space:pre-wrap;word-wrap:break-word;font:400 16px/1.6 var(--sans);margin:0 0 20px;min-height:200px;color:#1a1817}
.msg i{color:#8a837d}
.sheet .cta{width:100%;margin-top:8px}
.sheet .cta.ghost{color:#1a1817;box-shadow:inset 0 0 0 1px rgba(26,24,23,.4)}
.sheet .cta.vio{background:#5a4bd6;color:#fff}
.sheet .cta.vio:hover{background:#4c3ec4}
.note{font-size:13.5px;color:#4a4542;margin:14px 0 0}
.sheet a:focus-visible,.sheet button:focus-visible{outline-color:#4c3ec4}
.jump{position:fixed;left:12px;right:12px;bottom:12px;z-index:40;display:flex;justify-content:space-between;align-items:center;min-height:52px;padding:0 18px;background:var(--bone);color:var(--ink);text-decoration:none;font:600 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;transition:transform .35s ease,opacity .35s}
.jump .count{color:#5a5452}
.jump.away{transform:translateY(90px);opacity:0;pointer-events:none}
@media (min-width:980px){.jump{display:none}}
.step legend .num{font-size:.62em;vertical-align:.12em}
