.book{--bk-paper:var(--background);--bk-paper2:var(--card);--bk-ink:var(--foreground);--bk-ink2:color-mix(in srgb,var(--foreground)86%,transparent);--bk-slate:var(--muted-foreground);--bk-slate2:color-mix(in srgb,var(--muted-foreground)75%,transparent);--bk-line:color-mix(in srgb,var(--foreground)18%,transparent);--bk-line2:color-mix(in srgb,var(--foreground)9%,transparent);--bk-accent:#006beb;--bk-accent-soft:#5ba3f5;--bk-accent-tint:rgba(0,107,235,.12);--bk-bad:#ef4444;--fg-fade:.55s;--fg-ease:cubic-bezier(.2,.7,.2,1);--fill-dur:.45s;--reveal-delay:.1s;flex-direction:column;height:calc(100dvh - 80px);min-height:0;display:flex;overflow:hidden}.book-hdr{border-bottom:1px solid var(--bk-line2);align-items:center;gap:18px;padding:16px max(20px,min(4vw,40px));display:flex}.book-hdr-title{flex-wrap:wrap;flex:1;align-items:baseline;gap:14px;min-width:0;display:flex}.book-hdr h1{letter-spacing:-.01em;color:var(--bk-ink);margin:0;font-size:16px;font-weight:600}.book-sub{color:var(--bk-slate2);font-size:12px;font-family:var(--font-mono);letter-spacing:.02em}.book-x{border:1px solid var(--bk-line);cursor:pointer;width:32px;height:32px;color:var(--bk-slate);background:0 0;border-radius:5px;flex:none;justify-content:center;align-items:center;transition:all .15s;display:flex}.book-x:hover{background:var(--bk-paper2);color:var(--bk-ink)}.fg-wrap{width:100%;transition:height var(--fg-fade)var(--fg-ease);overflow:hidden}.fg{display:block;overflow:visible}.fg-pan{transition:transform var(--fg-fade)var(--fg-ease)}.fg-edge{fill:none;stroke-width:1.5px}.fg-edge[data-state=live]{stroke:var(--bk-line)}.fg-edge[data-state=off],.fg-edge[data-state=taken-base]{stroke:var(--bk-line2)}.fg-edge[data-state=ghost]{stroke:var(--bk-slate2);opacity:.38}.fg-edge--taken{stroke:var(--bk-accent-soft);stroke-width:2px;stroke-dasharray:1;stroke-dashoffset:1px;opacity:.75;transition:stroke-dashoffset .5s .12s}.fg-edge--taken[data-on=true]{stroke-dashoffset:0}.fg-node{transition:opacity var(--fg-fade)var(--fg-ease)}.fg-node[data-state=off]{opacity:.35}.fg-node[data-hidden=true],.fg-eg[data-hidden=true]{opacity:0}.fg-eg{transition:opacity var(--fg-fade)var(--fg-ease)}.fg-dot{fill:var(--bk-paper);stroke:var(--bk-line);stroke-width:1.5px;transition:fill .3s,stroke .3s}.fg-node[data-state=next] .fg-dot{stroke:var(--bk-slate2)}.fg-node[data-state=done] .fg-dot{fill:var(--bk-accent);stroke:var(--bk-accent)}.fg-node[data-state=current] .fg-dot{fill:var(--bk-paper2);stroke:var(--bk-accent);stroke-width:2px}.fg-check{fill:none;stroke:#fff;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.fg-pulse{fill:none;stroke:var(--bk-accent-soft);stroke-width:1.5px;transform-box:fill-box;transform-origin:50%;animation:2.2s ease-out infinite fg-pulse}@keyframes fg-pulse{0%{opacity:.8;transform:scale(.72)}70%{opacity:0;transform:scale(1.3)}to{opacity:0;transform:scale(1.3)}}.fg-label{font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;text-anchor:middle;fill:var(--bk-slate2);paint-order:stroke;stroke:var(--bk-paper);stroke-width:3.5px;font-size:10px}.fg-node[data-state=done] .fg-label{fill:var(--bk-slate)}.fg-node[data-state=current] .fg-label{fill:var(--bk-accent-soft)}.fg-dot--branch{fill:var(--bk-paper);stroke:var(--bk-line);stroke-width:1.2px;transition:fill .4s var(--fg-ease),stroke .4s var(--fg-ease)}.fg-node[data-state=done] .fg-dot--branch{fill:var(--bk-accent-soft);stroke:var(--bk-accent-soft)}.fg-node[data-state=next] .fg-dot--branch{stroke:var(--bk-slate2)}.fg-node[data-state=off] .fg-dot--branch{opacity:.3}.fg-node[data-state=ghost] .fg-dot--branch{fill:var(--bk-paper2);stroke:var(--bk-slate2);opacity:.55}.fg-check--branch{fill:none;stroke:#fff;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.fg-label--branch{font-family:var(--font-mono);letter-spacing:.02em;text-transform:uppercase;text-anchor:middle;fill:var(--bk-slate2);paint-order:stroke;stroke:var(--bk-paper);stroke-width:3px;font-size:9px}.fg-branch{transition:opacity var(--fg-fade)var(--fg-ease)}.fg-branch-group{transition:opacity var(--fg-fade)var(--fg-ease)var(--reveal-delay);will-change:opacity}.fg-branch-group[data-hidden=true]{opacity:0}.fg-branch[data-selected=ghost]{opacity:1}.fg-branch[data-selected=false]{opacity:.32}.fg-branch.fg-l2{animation:fg-fan-in var(--fg-fade)var(--fg-ease)var(--fill-dur)both}@keyframes fg-fan-in{0%{opacity:0}to{opacity:1}}.book-main{flex-direction:column;flex:1;width:100%;min-height:0;padding:max(14px,min(2.5vh,32px)) max(20px,min(4vw,40px));display:flex}.book-stage{flex-direction:column;gap:max(20px,min(3.5vh,36px));width:100%;max-width:1140px;margin:max(10px,50dvh - 440px) auto 0;display:flex}.book-panel{width:100%;max-width:600px;min-height:max(260px,min(44vh,400px));margin:0 auto}.book-stage[data-phase=schedule]{flex:1;min-height:0;margin:0 auto}.book-panel--schedule{flex-direction:column;flex:1;max-width:880px;min-height:0;display:flex}.book-step{flex-direction:column;gap:20px;width:100%;animation:.45s cubic-bezier(.2,.7,.2,1) book-in;display:flex}@keyframes book-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.book-eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--bk-accent-soft);font-size:11px}.book-q{letter-spacing:-.02em;color:var(--bk-ink);margin:0;font-size:max(22px,min(2.6vw,29px));font-weight:600;line-height:1.3}.book-sent-body{color:var(--bk-ink2);margin:0;font-size:15px;line-height:1.55}.book-form{flex-direction:column;gap:16px;display:flex}.book-field{border:1px solid var(--bk-line);width:100%;font-family:var(--font-sans);color:var(--bk-ink);background:var(--bk-paper2);border-radius:8px;outline:none;padding:13px 16px;font-size:16px}.book-field:focus{border-color:var(--bk-accent-soft)}.book-field[data-invalid]{border-color:var(--bk-bad)}.book-field--area{resize:vertical;min-height:110px;line-height:1.5}.book-actions{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.book-skip{color:var(--bk-slate);font-family:var(--font-mono);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:10px 0;font-size:12.5px;text-decoration:underline}.book-skip:hover{color:var(--bk-ink2)}.book-opts{grid-template-columns:1fr 1fr;gap:10px;display:grid}.book-opt{border:1px solid var(--bk-line);background:var(--bk-paper2);font-family:var(--font-sans);color:var(--bk-ink2);cursor:pointer;text-align:left;border-radius:8px;padding:14px 16px;font-size:15px;transition:all .15s}.book-opt:hover{border-color:var(--bk-accent);color:var(--bk-accent-soft)}.book-opt[data-sel=true]{border-color:var(--bk-accent);background:var(--bk-accent-tint);color:var(--bk-accent-soft)}.book-opt:disabled{opacity:.5;cursor:default}.book-form--custom{flex-flow:wrap;align-items:center;gap:10px}.book-form--custom .book-field{flex:1;width:auto;min-width:200px}.book-or{font-family:var(--font-mono);color:var(--bk-slate2);white-space:nowrap;font-size:12px}.book-consent{border:1px solid var(--bk-line2);background:var(--bk-paper2);border-radius:10px;flex-direction:column;gap:12px;padding:18px;display:flex}.book-consent-opt{color:var(--bk-ink2);cursor:pointer;align-items:flex-start;gap:10px;font-size:14.5px;line-height:1.45;display:flex}.book-consent-opt input{accent-color:var(--bk-accent);margin-top:3px}.book-privacy{color:var(--bk-slate);text-underline-offset:3px;font-size:12.5px;text-decoration:underline}.book-error{color:var(--bk-bad);align-items:center;gap:12px;font-size:13.5px;display:flex}.book-back{color:var(--bk-slate);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;align-self:flex-start;align-items:center;gap:7px;padding:6px 0;font-size:12.5px;transition:color .15s;display:inline-flex}.book-back:hover{color:var(--bk-ink2)}.book-btn{cursor:pointer;font-size:14px;font-weight:600;font-family:var(--font-sans);border:none;border-radius:9999px;align-items:center;gap:8px;padding:12px 24px;transition:all .2s;display:inline-flex}.book-btn--primary{background:var(--bk-accent);color:#fff;box-shadow:0 8px 24px rgba(0,107,235,.25)}.book-btn--primary:hover{background:color-mix(in srgb,var(--bk-accent)88%,#fff)}.book-btn--primary:disabled{opacity:.5;cursor:default;box-shadow:none}.book-btn--ghost{color:var(--bk-ink2);border:1px solid var(--bk-line);background:0 0}.book-btn--ghost:hover{border-color:var(--bk-accent);color:var(--bk-accent-soft)}.book-btn--sm{padding:7px 14px;font-size:12.5px}.book-slider{flex-direction:column;gap:22px;display:flex}.book-slider-track{padding:6px 0 0;position:relative}.book-slider-rail{background:var(--bk-line);border-radius:2px;height:2px;position:absolute;top:13px;left:7px;right:7px}.book-slider-fill{background:var(--bk-accent);border-radius:2px;height:100%;transition:width .18s;position:absolute;top:0;left:0}.book-slider-stops{justify-content:space-between;display:flex;position:relative}.book-slider-stop{cursor:pointer;font-family:var(--font-sans);color:var(--bk-slate);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:10px;padding:0;font-size:13px;transition:color .15s;display:flex}.book-slider-stop:first-child{text-align:left;align-items:flex-start}.book-slider-stop:last-child{text-align:right;align-items:flex-end}.book-slider-dot{border:2px solid var(--bk-line);background:var(--bk-paper);border-radius:50%;width:14px;height:14px;transition:all .15s}.book-slider-stop:hover{color:var(--bk-accent-soft)}.book-slider-stop:hover .book-slider-dot{border-color:var(--bk-accent)}.book-slider-stop[data-sel=true]{color:var(--bk-accent)}.book-slider-stop[data-sel=true] .book-slider-dot{border-color:var(--bk-accent);background:var(--bk-accent);box-shadow:0 0 0 4px var(--bk-accent-tint)}.book-slider-stop:focus-visible{outline:none}.book-slider-stop:focus-visible .book-slider-dot{box-shadow:0 0 0 3px var(--bk-accent-soft)}.book-slider-stop:disabled{opacity:.5;cursor:default}.book-slider-label{line-height:1.3}.book-stage[data-phase=done] .book-panel{max-width:600px}.book-hp{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;left:-9999px}@media (max-width:560px){.book-opts{grid-template-columns:1fr}.book-hdr{gap:12px}.book-sub{display:none}}@media (prefers-reduced-motion:reduce){.fg-pulse{animation:none}.fg-edge--taken,.fg-pan,.fg-wrap,.fg-node,.fg-eg,.fg-branch,.fg-branch-group{transition:none}.fg-branch.fg-l2,.book-step{animation:none}}
