/* Theme tokens come from the chosen site direction (design/DESIGN-v2-a.md, DESIGN-v2-b.md).
   To adopt a direction, set data-theme on <html>. Try the other with /book/?theme=b */
@font-face{font-family:'Geist';src:url('/assets/fonts/geist.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url('/assets/fonts/instrument-serif_latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Geist Mono';src:url('/assets/fonts/geist-mono.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root,[data-theme=a]{--bg:#0b0c0b;--fg:#f1efe8;--mute:#9a978e;--acc:#ff5b1f;--on-acc:#0b0c0b;--card:#141513;--line:#2b2c2a;--shadow:none;--radius:14px;--btn-bg:var(--acc);--btn-fg:var(--on-acc);--err:#ff8a5c}
[data-theme=b]{--bg:#ffd60a;--fg:#111111;--mute:#3d3a2c;--acc:#ff4d1f;--on-acc:#111111;--card:#fffdf5;--line:#111111;--shadow:5px 5px 0 #111;--radius:8px;--btn-bg:#111111;--btn-fg:#ffd60a;--err:#a01800}
*{box-sizing:border-box}[hidden]{display:none!important}.done:focus{outline:none}
body{margin:0;background:var(--bg);color:var(--fg);font:1.0625rem/1.5 'Geist',system-ui,sans-serif;min-height:100svh}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:var(--fg);color:var(--bg);padding:10px 14px;z-index:9}
:focus-visible{outline:3px solid var(--acc);outline-offset:3px}
[data-theme=b] :focus-visible{outline-color:#111;outline-offset:4px}
.bar{display:flex;justify-content:space-between;align-items:center;padding:14px clamp(20px,5vw,64px)}
.bar a{color:inherit;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}.bar__name{font-weight:400;font-size:1.9rem;line-height:1}.bar__back{color:var(--mute)}
main{padding:0 clamp(20px,5vw,64px) 80px;max-width:980px;margin:0 auto}
h1,h2,.chosen,.bar__name{font-family:'Instrument Serif',Georgia,serif;font-weight:400}
h1{font-size:clamp(2.6rem,9vw,5.6rem);line-height:.98;letter-spacing:-.01em;margin:3vh 0 24px}
h1 span{display:inline-block;animation:rise .7s cubic-bezier(.2,.8,.2,1) both}
h1 span:nth-child(n){animation-delay:calc(var(--n,0)*55ms)}
h1 span:nth-child(2){--n:1}h1 span:nth-child(3){--n:2}h1 span:nth-child(4){--n:3}h1 span:nth-child(5){--n:4}h1 span:nth-child(6){--n:5}h1 span:nth-child(7){--n:6}h1 span:nth-child(8){--n:7}h1 span:nth-child(9){--n:8}h1 span:nth-child(10){--n:9}
@keyframes rise{from{transform:translateY(60%);opacity:0}}
.status,.clocks{font-family:'Geist Mono',monospace;font-size:.9rem;margin:6px 0;color:var(--mute)}
.status{color:var(--fg);display:flex;align-items:center;gap:12px}
.dots{display:inline-flex;gap:5px}.dots i{width:10px;height:10px;border-radius:50%;background:var(--line);border:1.5px solid var(--fg);opacity:.5}
[data-theme=b] .dots i{background:transparent}
.dots.busy i{animation:blink 1s infinite}.dots.busy i:nth-child(2){animation-delay:.2s}.dots.busy i:nth-child(3){animation-delay:.4s}
.dots.ok i{background:var(--acc);border-color:var(--acc);opacity:1;animation:pop .4s both}.dots.ok i:nth-child(2){animation-delay:.15s}.dots.ok i:nth-child(3){animation-delay:.3s}
.dots.bad i{background:var(--err);border-color:var(--err);opacity:1}
@keyframes blink{50%{opacity:1;background:var(--acc)}}@keyframes pop{from{transform:scale(0)}}
h2{font-size:1.7rem;font-weight:400;letter-spacing:-.01em;margin:36px 0 12px}
.days{display:flex;gap:10px;overflow-x:auto;padding:4px 4px 14px;margin:0 -4px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.day{flex:0 0 auto;scroll-snap-align:start;min-width:84px;min-height:88px;padding:10px 12px;background:var(--card);color:var(--fg);border:1.5px solid var(--line);border-radius:var(--radius);font:inherit;text-align:left;cursor:pointer;display:grid;gap:2px;align-content:start;box-shadow:var(--shadow)}
.day small{color:var(--mute);font-size:.8rem}.day b{font-size:1.5rem;letter-spacing:-.03em;line-height:1}
.day i{display:block;height:4px;border-radius:4px;background:var(--acc);margin-top:6px;transform-origin:left;animation:grow .7s .2s cubic-bezier(.2,.8,.2,1) both;width:var(--w)}
@keyframes grow{from{transform:scaleX(0)}}
.day[aria-selected=true]{background:var(--acc);color:var(--on-acc);border-color:var(--acc)}.day[aria-selected=true] small{color:inherit}.day[aria-selected=true] i{background:var(--on-acc)}
.times{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.time{min-height:52px;font:600 1.05rem 'Geist Mono',monospace;background:var(--card);color:var(--fg);border:1.5px solid var(--line);border-radius:var(--radius);cursor:pointer;box-shadow:var(--shadow);animation:rise .4s both;animation-delay:calc(var(--k,0)*25ms)}
.time:hover{border-color:var(--acc)}.time[aria-selected=true]{background:var(--acc);color:var(--on-acc);border-color:var(--acc)}
.form{display:grid;gap:16px;margin-top:34px;padding:clamp(18px,4vw,32px);background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);animation:rise .5s both}
.chosen{margin:0;font-size:clamp(1.8rem,6vw,3rem);letter-spacing:-.01em;line-height:1.05}.chosen small{display:block;font:500 .9rem 'Geist Mono',monospace;letter-spacing:0;color:var(--mute);margin-top:6px}
label{display:grid;gap:6px;font-weight:600}
.check{display:flex;align-items:center;gap:12px;min-height:48px}.check input{width:24px;min-height:24px;height:24px;accent-color:var(--fg)}
input,textarea{font:inherit;font-weight:400;padding:12px 14px;min-height:48px;background:var(--bg);color:var(--fg);border:1.5px solid var(--fg);border-radius:10px;width:100%}
[data-theme=b] input,[data-theme=b] textarea{background:#fff}
input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--err);border-width:2.5px}
.err{color:var(--err);font-weight:500;font-size:.95rem;min-height:0}.err:empty{display:none}
[data-theme=b] .err{font-weight:700}
.hp{position:absolute;left:-9999px}
.go{min-height:56px;border:0;border-radius:99px;background:var(--btn-bg);color:var(--btn-fg);font:600 1.1rem 'Geist',sans-serif;cursor:pointer;padding:0 28px}
[data-theme=a] .go:hover{background:var(--fg)}.go[disabled]{opacity:.7;cursor:wait}
.done{margin-top:34px;animation:rise .6s both}
.done__big{font-size:clamp(2.2rem,8vw,4.6rem);font-weight:700;letter-spacing:-.045em;line-height:1;margin:0}
.done__sub{color:var(--mute);margin:10px 0 24px;max-width:36em}
.receipt{list-style:none;padding:18px 20px;margin:0;font:.92rem/1.9 'Geist Mono',monospace;background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.receipt li{animation:rise .35s both;animation-delay:calc(var(--k)*420ms)}.receipt li::before{content:"";display:inline-block;width:.6em;height:.6em;border-radius:50%;background:var(--acc);margin-right:.9em}
[data-theme=b] .receipt li::before{background:#111111}
.receipt li.warn::before{background:var(--err)}
.empty{padding:20px;border:1.5px dashed var(--line);border-radius:var(--radius)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.grp{border:0;padding:0;margin:0;display:grid;gap:8px}.grp legend{font-weight:600;padding:0;margin-bottom:8px}
.chips{display:flex;flex-wrap:wrap;gap:10px}.chip{display:block;position:relative}
.chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;min-height:0;margin:0;cursor:pointer}
.chip span{display:inline-flex;align-items:center;min-height:48px;padding:0 18px;background:var(--bg);border:1.5px solid var(--fg);border-radius:99px;font-weight:500}
[data-theme=b] .chip span{background:#fff}
.chip input:checked+span{background:var(--btn-bg);color:var(--btn-fg)}
.chip input:focus-visible+span{outline:3px solid var(--acc);outline-offset:3px}[data-theme=b] .chip input:focus-visible+span{outline-color:#111}
.hint{margin:0;color:var(--mute);font-size:.92rem}

.avatar{width:72px;height:72px;border-radius:50%;object-fit:cover;display:block;margin:0 0 14px}

/* Day strip without a scrollbar (Nick, Nov 8) */
.dayswrap{position:relative}
.days{scrollbar-width:none}.days::-webkit-scrollbar{display:none}
.dayswrap.fade-r .days{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 70px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 70px),transparent)}
.dayswrap.fade-l.fade-r .days{-webkit-mask-image:linear-gradient(90deg,transparent,#000 50px,#000 calc(100% - 70px),transparent);mask-image:linear-gradient(90deg,transparent,#000 50px,#000 calc(100% - 70px),transparent)}
.dayswrap.fade-l:not(.fade-r) .days{-webkit-mask-image:linear-gradient(90deg,transparent,#000 50px);mask-image:linear-gradient(90deg,transparent,#000 50px)}
.dnav{position:absolute;top:calc(50% - 7px);transform:translateY(-50%);z-index:2;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);background:var(--card);color:var(--fg);font:600 1.2rem/1 'Geist',sans-serif;cursor:pointer;box-shadow:var(--shadow);display:grid;place-items:center}
.dnav[hidden]{display:none}.dnav--prev{left:-6px}.dnav--next{right:-6px}
.dnav:hover{background:var(--acc);color:var(--on-acc);border-color:var(--acc)}

/* Confirmation: a way back to the site (Nick, Nov 9) */
.done__links{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin:30px 0 0}
.go--link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.done__alt{color:inherit;font-weight:600;text-underline-offset:4px}
@media(max-width:600px){.done__links{flex-direction:column;align-items:stretch;text-align:center}.go--link{width:100%}}

.opt{font-weight:400;opacity:.65;font-size:.85em;margin-left:6px}
.dnav svg{width:20px;height:20px;display:block}
.days{scroll-padding-inline:4px}
