.book-main{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,88px);align-items:start;width:min(var(--width),calc(100% - var(--gutter) * 2));margin:0 auto;padding-block:clamp(56px,8vw,120px) clamp(96px,12vw,176px)}.home-terrain.book-terrain{--clear: radial-gradient(ellipse 40% 50% at 25% 44%, transparent 50%, #000 100%);--fade: linear-gradient(#000 45%, transparent 85%);-webkit-mask-image:var(--clear),var(--fade);-webkit-mask-composite:source-in;mask-image:var(--clear),var(--fade);mask-composite:intersect}.book-intro{padding-top:8px;animation:book-rise .6s cubic-bezier(.2,.7,.2,1) both}.book-intro h1{font-size:clamp(42px,5vw,68px);font-weight:800;line-height:1.04;text-wrap:balance}.book-intro p{max-width:36ch;margin-top:24px;color:var(--muted);font-size:18px;line-height:1.6;text-wrap:pretty}.book-intro p+p{margin-top:16px}.book-intro img{display:inline-block;width:26px;height:26px;margin:0 7px 0 3px;border-radius:50%;vertical-align:-7px;object-fit:cover}.book-card{padding:clamp(20px,2.4vw,32px);border-radius:16px;background:var(--surface);box-shadow:0 1px 2px #27272c0d,0 24px 48px -24px #27272c2e;font-size:15px;line-height:1.4;animation:book-rise .6s .08s cubic-bezier(.2,.7,.2,1) both}.book-stage{overflow:hidden;outline:none}.book-month p,.book-times-day{font-weight:600}.book-pick{display:grid;grid-template-columns:minmax(0,1fr) 168px;gap:32px}.book-month,.book-times-day{display:flex;align-items:center;justify-content:space-between;height:32px;margin-bottom:16px}.book-month-nav{display:flex;gap:2px}.book-month-nav button{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--ink);transition:background-color .15s}.book-month-nav button:hover:not(:disabled){background:var(--surface-quiet)}.book-month-nav button:disabled{color:var(--line);cursor:default}.book-month-nav svg{width:16px;height:16px}.book-times-day span{color:var(--muted);font-weight:400}.book-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.book-weekday{padding-bottom:6px;color:var(--muted);text-align:center}.book-date{position:relative;display:grid;place-items:center;aspect-ratio:1;max-height:48px;padding:0;border:0;border-radius:10px;background:var(--surface-quiet);color:var(--ink);font-size:inherit;font-weight:600;font-variant-numeric:tabular-nums;transition:background-color .15s,color .15s,transform .15s}button.book-date:hover{background:color-mix(in oklch,var(--accent) 14%,var(--surface-quiet))}button.book-date:active{transform:scale(.94)}.book-date[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}.book-date.is-closed{background:transparent;color:var(--muted);font-weight:400;opacity:.6}.book-date[data-today]:after{content:"";position:absolute;bottom:6px;width:4px;height:4px;border-radius:50%;background:currentColor}.book-grid button.book-date:focus-visible{outline-offset:2px}.book-times{display:flex;flex-direction:column;min-height:0}.book-slots{display:grid;align-content:start;gap:8px;max-height:340px;margin:0;padding:0 0 28px;overflow-y:auto;list-style:none;scrollbar-width:none;-webkit-mask-image:linear-gradient(#000 calc(100% - 40px),transparent);mask-image:linear-gradient(#000 calc(100% - 40px),transparent)}.book-slot{display:grid;grid-template-columns:1fr 0fr;transition:grid-template-columns .28s cubic-bezier(.2,.7,.2,1),gap .28s}.book-slot.is-selected{grid-template-columns:1fr 1fr;gap:6px}.book-slots.is-entering .book-slot{animation:book-rise .32s calc(var(--i) * 22ms) cubic-bezier(.2,.7,.2,1) both}.book-time,.book-next{min-width:0;height:44px;padding:0;border-radius:10px;font-size:inherit;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden}.book-time{border:1px solid var(--line);background:transparent;transition:border-color .15s,background-color .15s,color .15s}.book-time:hover{border-color:var(--ink)}.book-slot.is-selected .book-time{border-color:transparent;background:var(--ink);color:var(--canvas)}.book-next{border:0;background:var(--accent);color:var(--on-accent);opacity:0;transition:opacity .2s}.book-slot.is-selected .book-next{opacity:1}.book-next:hover{background:color-mix(in oklch,var(--accent),var(--ink) 18%)}.book-notice{padding:10px 12px;border-radius:10px;background:var(--signal-soft);color:var(--signal)}.book-times .book-notice{margin-bottom:12px}.book-shimmer{display:block;border-radius:10px;background:linear-gradient(90deg,var(--surface-quiet) 30%,color-mix(in oklch,var(--surface-quiet),var(--surface) 60%) 50%,var(--surface-quiet) 70%) 0 0 / 300% 100%;animation:book-shimmer 1.4s linear infinite}.book-shimmer-month{width:40%;height:20px;margin:6px 0 22px}.book-shimmer-date{aspect-ratio:1;max-height:48px}.book-shimmer-time{height:44px;margin-top:8px}.book-shimmer-time:first-child{margin-top:48px}.book-form{display:grid;gap:20px}.book-chosen{display:flex;align-items:center;justify-content:space-between;gap:16px;height:48px;padding:0 6px 0 16px;border-radius:10px;background:var(--surface-quiet);font-weight:600}.book-change{padding:6px 10px;border:0;border-radius:8px;background:transparent;color:var(--accent);font-size:inherit;font-weight:500}.book-change:hover{background:var(--canvas)}.book-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.book-field{display:grid;gap:8px}.book-field label,.book-stack legend{font-weight:500}.book-field input,.book-field textarea{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink);font:16px/1.4 var(--sans);transition:border-color .15s,box-shadow .15s}.book-field textarea{resize:vertical;min-height:84px}.book-field input:hover,.book-field textarea:hover{border-color:color-mix(in oklch,var(--line),var(--ink) 30%)}.book-field input:focus,.book-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.book-field [aria-invalid=true]{border-color:var(--signal)}.book-field-error{color:var(--signal)}.book-stack{margin:0;padding:0;border:0}.book-stack legend{padding:0;margin-bottom:10px}.book-chips{display:flex;flex-wrap:wrap;gap:8px}.book-chip input{position:absolute;opacity:0;pointer-events:none}.book-chip span{display:inline-flex;align-items:center;height:38px;padding:0 14px;border:1px solid var(--line);border-radius:999px;cursor:pointer;user-select:none;transition:background-color .15s,border-color .15s,color .15s,padding .2s}.book-chip svg{width:0;height:14px;margin-right:0;transition:width .2s,margin .2s}.book-chip span:hover{border-color:var(--ink)}.book-chip input:checked+span{padding-left:11px;border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.book-chip input:checked+span svg{width:14px;margin-right:6px}.book-chip input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.book-submit{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:48px;margin-top:4px;border:0;border-radius:10px;background:var(--accent);color:var(--on-accent);font-size:inherit;font-weight:600;transition:background-color .18s,transform .1s}.book-submit:hover{background:color-mix(in oklch,var(--accent),var(--ink) 18%)}.book-submit:active{transform:scale(.99)}.book-submit[aria-busy=true]{cursor:wait}.book-submit[aria-busy=true]:after{content:"";width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:book-spin .7s linear infinite}.book-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.book-done{display:grid;justify-items:center;gap:12px;padding:clamp(32px,5vw,64px) 8px;text-align:center;outline:none}.book-done h2{margin-top:8px;font-size:clamp(26px,3vw,32px)}.book-done p{max-width:38ch;color:var(--muted);line-height:1.6}.book-check{width:56px;height:56px}.book-check circle{stroke:var(--accent);stroke-width:2.5;stroke-dasharray:151;stroke-dashoffset:151;animation:book-draw .6s cubic-bezier(.65,0,.45,1) forwards}.book-check path{stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:36;stroke-dashoffset:36;animation:book-draw .35s .45s cubic-bezier(.65,0,.45,1) forwards}.book-message{padding:32px 4px;color:var(--muted)}.book-message a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line)}@keyframes book-rise{0%{opacity:0;transform:translateY(12px)}}@keyframes book-shimmer{to{background-position:-150% 0}}@keyframes book-spin{to{transform:rotate(1turn)}}@keyframes book-draw{to{stroke-dashoffset:0}}@media(prefers-color-scheme:dark){.book-card{box-shadow:0 0 0 1px #ffffff0d,0 24px 48px -24px #0000007f}}@media(max-width:960px){.book-main{grid-template-columns:minmax(0,1fr);gap:36px}.book-terrain{display:none}.book-intro{padding-top:0}.book-intro p{max-width:56ch}}@media(max-width:620px){.book-intro p{font-size:17px}.book-pick{grid-template-columns:minmax(0,1fr);gap:24px}.book-slots{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;padding-bottom:0;overflow:visible;-webkit-mask-image:none;mask-image:none}.book-slot.is-selected{grid-column:1 / -1}.book-row{grid-template-columns:minmax(0,1fr)}.book-shimmer-time:first-child{margin-top:0}}@media(prefers-reduced-motion:reduce){.book-intro,.book-card,.book-slots.is-entering .book-slot{animation:none}.book-slot,.book-chip span,.book-chip svg{transition:none}.book-check circle,.book-check path{animation:none;stroke-dashoffset:0}}
