:root{color-scheme:light;--paper:#f7f5f0;--ink:#2b2930;--muted:#726e78;--purple:#7657b8;--purple-dark:#573b8d;--line:#dedad5;--lavender:#eee8f7;--white:#fffefa;--serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scrollbar-gutter:stable}body{margin:0;color:var(--ink);background:var(--paper);font:15px/1.5 var(--sans);-webkit-font-smoothing:antialiased}body::before{content:"";position:absolute;inset:0 0 auto;pointer-events:none;height:620px;background:radial-gradient(ellipse at 27% 25%,#ece6f044,transparent 63%);z-index:-1}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit}button,input,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--purple);outline-offset:5px}[hidden]{display:none!important}::selection{background:#ded1f1}.page{max-width:1216px;margin:auto;padding:0 52px}.masthead{height:109px;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line)}.brand{display:flex}.brand img{width:57px;height:auto}.masthead-label{font-size:12px;letter-spacing:.025em;color:var(--muted);padding-left:25px;border-left:1px solid #d4cfd5}.week-label{margin-left:auto;font-size:11px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:#65616a}
.intro{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:82px;padding:65px 0 66px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:.14em;display:flex;align-items:center;gap:9px}.ink-dot{width:5px;height:5px;background:var(--purple);border-radius:50%}h1,h2,p{margin:0}h1{font-family:var(--serif);font-size:clamp(44px,5.6vw,72px);font-weight:400;line-height:1.04;letter-spacing:-.045em;margin:23px 0 28px;max-width:510px}.time-word{position:relative;white-space:nowrap;color:var(--purple-dark)}.word-line{position:absolute;left:1px;right:-4px;bottom:-3px;height:8px;border-top:1px solid #a490bb;border-radius:50%;transform:rotate(-3deg)}.host-line{display:flex;align-items:center;gap:12px}.avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;flex:none;background:#e9e3ed;color:#70538e;font:500 16px/1 var(--serif);border-radius:50%;width:42px;height:42px}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.host-avatar{width:43px;height:43px;border:3px solid var(--paper);box-shadow:0 0 0 1px #d8d2d9}.host-line p{font-size:12px;line-height:1.55}.host-line p span{color:var(--muted)}
.identity-panel{position:relative;margin-top:10px;background:var(--white);border:1px solid #e4dfe5;box-shadow:0 2px 3px #34284302,0 14px 35px -26px #442d6545;padding:46px 32px 0;border-radius:3px;min-height:252px}.identity-panel::before{content:"";position:absolute;top:0;left:30px;right:30px;height:1px;background:#a992c1}.corner-mark{position:absolute;top:18px;right:23px;color:#929098;font-size:9px;font-weight:600;letter-spacing:.14em}.identity-title{display:block;font:400 31px/1.2 var(--serif);letter-spacing:-.025em;margin-bottom:17px}.picker{position:relative}.input-row{min-height:46px;display:flex;align-items:center;border-bottom:1px solid #b3a7bf;gap:10px;transition:border-color .15s}.input-row:focus-within{border-bottom:2px solid var(--purple)}.input-row input{width:100%;min-width:0;outline:none!important;box-shadow:none;border:0;background:transparent;font-size:19px;letter-spacing:-.03em;padding:8px 0}.input-row input::placeholder{color:#9c98a2}.input-row input:disabled{opacity:.6}.input-avatar{width:30px;height:30px;font-size:12px}.input-arrow{stroke:var(--purple);fill:none;stroke-width:1.25;flex:none;margin-left:8px}.clear-name{background:none;border:0;flex:none;padding:2px;font:300 24px/1 var(--sans);color:var(--muted)}.clear-name:not([hidden])+.input-arrow{display:none}.identity-hint{font-size:11px;color:var(--muted);min-height:29px;padding-top:8px}.selected-note{font-size:11px;color:var(--purple-dark);padding-top:7px;overflow-wrap:anywhere}.selected-note+.identity-bottom{margin-top:19px}.identity-bottom{border-top:1px solid #eeebee;margin-top:23px;min-height:42px;display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.01em;color:#928b98}.small-spark{font-size:15px;color:#b5a1cd}.options-wrap{position:absolute;left:-13px;right:-13px;top:calc(100% + 9px);z-index:10;background:#fffefa;border:1px solid #dfd8e7;border-radius:5px;box-shadow:0 15px 40px #39214c1c;overflow:hidden}.options-wrap ul{margin:0;padding:6px;list-style:none;max-height:290px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.person-option{display:flex;gap:11px;padding:9px 10px;align-items:center;border-radius:3px;cursor:pointer}.person-option:hover,.person-option[aria-selected=true]{background:var(--lavender)}.person-option .avatar{width:35px;height:35px;font-size:12px}.person-option .person-name{font-size:13px}.person-option .person-email{font-size:10px;color:var(--muted)}.no-results{font-size:12px;color:var(--muted);padding:19px}
.schedule{padding:25px 0 0;border-top:1px solid var(--line)}.schedule-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.section-number{color:#8b818f;font-size:9px;letter-spacing:.13em;margin-bottom:9px}h2{font:400 31px/1.1 var(--serif);letter-spacing:-.025em}.schedule-meta{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted);padding-bottom:3px;white-space:nowrap}.meta-dot{color:#afa4b5}.service-status{min-height:36px;display:flex;gap:7px;align-items:center;font-size:10px;color:var(--muted);margin-top:11px}.status-dot{width:4px;height:4px;background:#a495b5;border-radius:50%;flex:none}.service-status.ready{color:#7a737e}.service-status.error{color:#9a4f36}.service-status.error .status-dot{background:#b5694e}.service-status button{border:0;background:none;padding:4px 0 4px 4px;color:var(--purple-dark);text-decoration:underline;text-underline-offset:3px;font-size:11px}.days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-top:10px}.day{min-width:0}.day-heading{display:flex;align-items:center;gap:13px;padding-bottom:19px}.day-date{font:400 43px/.9 var(--serif);letter-spacing:-.06em;color:#464049}.day-name{font-size:12px;font-weight:550;letter-spacing:.01em}.day-month{font-size:10px;color:var(--muted);margin-top:1px}.day-count{margin-left:auto;font-size:9px;color:#96909b;align-self:flex-end;padding-bottom:3px}.slot-list{display:grid;gap:10px}.slot{position:relative;text-align:left;border:1px solid #dcd5e3;background:#fffdf9;width:100%;min-height:100px;border-radius:3px;padding:18px 18px 14px;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;overflow:hidden}.slot.available:not(:disabled):hover{background:#fcf9ff;border-color:#aa93c6;box-shadow:0 5px 16px -9px #62478466;transform:translateY(-2px)}.slot.available:not(:disabled):active{transform:translateY(0)}.slot-time{display:flex;gap:6px;align-items:baseline;font:400 29px/1 var(--serif);letter-spacing:-.035em}.slot-time .period{font:500 9px/1 var(--sans);letter-spacing:.04em;color:var(--muted)}.slot-bottom{margin-top:15px;display:flex;align-items:center;gap:7px;min-height:16px;font-size:10px;color:#9685a5}.slot-arrow{position:absolute;right:18px;top:21px;width:23px;height:23px;border:1px solid #ddd2e9;border-radius:50%;display:grid;place-items:center;color:var(--purple);font-size:12px;font-family:var(--sans);transition:background .15s,color .15s}.slot:hover .slot-arrow{background:var(--purple);color:white;border-color:var(--purple)}.slot-state-dot{height:4px;width:4px;flex:none;background:#b5a2ca;border-radius:50%}.slot.booked,.slot.unavailable{border-color:#e1ddda;background:#eeece8;color:#8d878e}.slot.booked .slot-time,.slot.unavailable .slot-time{color:#8c868d}.slot.booked .period,.slot.unavailable .period{color:#9d979d}.slot.booked .slot-bottom{color:#746e78}.slot.booked .avatar{width:25px;height:25px;position:absolute;top:17px;right:17px;filter:saturate(.6);box-shadow:0 0 0 3px #f4f1ee;font-size:10px}.slot.booked .booked-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 40px)}.booked-label{margin-left:auto;color:#a49ca7;font-size:9px}.slot.yours{border-color:#b6a4cb;background:#ede7f4}.slot.yours .slot-time{color:#684b85}.slot.yours .booked-label{color:#7657a0}.slot.unavailable .slot-bottom{color:#a29aa3}.slot.loading{border-color:#e8e2e7;background:#f8f6f2;color:#aaa1ad}.slot.loading .slot-bottom{color:#b6adb8}.slot.available:disabled{background:#f6f3f0;border-color:#e5dfe6}.schedule-footnote{text-align:center;font-size:11px;color:var(--muted);margin:25px 0 0}.own-booking{display:flex;align-items:center;gap:12px;background:#ede7f4;border:1px solid #ddd1eb;padding:13px 16px;border-radius:3px;font-size:12px;margin:8px 0 22px;color:#604675}.own-booking .own-icon{font-size:18px}.own-booking p{flex:1}.own-booking button{background:none;border:0;color:var(--purple-dark);font-size:11px;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.footer{margin-top:45px;border-top:1px solid var(--line);padding:21px 0 28px;display:flex;justify-content:space-between;font-size:10px;color:#9c929d}.footer>span:last-child{font-size:11px;color:#91809f}.footer>span:last-child span{margin-left:6px}
.booking-dialog{width:440px;max-width:calc(100vw - 32px);border:1px solid #d9cedf;border-radius:5px;background:var(--white);color:var(--ink);padding:0;box-shadow:0 35px 90px #30213c40;max-height:calc(100dvh - 40px);overflow-y:auto}.booking-dialog::backdrop{background:#33283e55;backdrop-filter:blur(5px)}.dialog-close{position:absolute;top:13px;right:16px;border:0;background:none;color:#8b7e95;font:300 26px/1 var(--sans);padding:3px;z-index:1}.dialog-inner{padding:36px}.dialog-eyebrow{font-size:9px;color:#95859f;letter-spacing:.15em;font-weight:650;margin-bottom:15px}.dialog-portraits{display:flex;align-items:center;margin-bottom:24px;padding-top:6px}.dialog-portraits .avatar{width:57px;height:57px;border:3px solid var(--white);box-shadow:0 0 0 1px #ddd4e5}.dialog-portraits .avatar+.avatar{margin-left:-10px}.dialog-portraits .portrait-join{margin-left:13px;font:400 27px/1 var(--serif);color:#aa96bd}.booking-dialog h2{font-size:37px;line-height:1.08;margin-bottom:13px}.dialog-description{font-size:12px;color:var(--muted);line-height:1.7;overflow-wrap:anywhere}.appointment-summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:19px 0;margin:22px 0;font-size:13px}.appointment-summary strong{display:block;font-size:14px;font-weight:550;margin-bottom:4px}.appointment-summary span{font-size:11px;color:var(--muted)}.confirm-button,.done-button{width:100%;border:1px solid var(--purple);background:var(--purple);color:#fff;border-radius:3px;min-height:46px;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:550}.confirm-button:hover,.done-button:hover{background:var(--purple-dark);border-color:var(--purple-dark)}.confirm-button:disabled{opacity:.55}.confirmation-note{font-size:10px;color:#9d929f;text-align:center;margin-top:11px}.dialog-error{color:#9b4d34;background:#f7ece5;border:1px solid #ebd4c8;font-size:12px;padding:11px 13px;margin-bottom:16px;line-height:1.5}.success-mark{width:42px;height:42px;border-radius:50%;background:#e9e1f2;color:var(--purple);display:grid;place-items:center;font-size:20px;margin-bottom:23px}.calendar-note{font-size:12px;color:#6e5b7d;line-height:1.7;margin-bottom:23px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.no-script{position:fixed;bottom:0;left:0;right:0;padding:16px;background:#ede2f7;text-align:center;z-index:20;font-size:13px}
@media(min-width:1250px){.intro{padding-top:71px;padding-bottom:72px}.identity-panel{margin-right:10px}.days{gap:30px}}
@media(max-width:1000px){.page{padding:0 32px}.intro{gap:44px}.identity-panel{padding-left:25px;padding-right:25px}.slot{padding-left:14px;padding-right:14px}.days{gap:18px}.slot-arrow{right:14px}.slot-time{font-size:28px}}
@media(max-width:760px){.page{padding:0 23px}.masthead{height:82px;gap:16px}.masthead-label{display:none}.brand img{width:49px}.week-label{font-size:9px;letter-spacing:.06em}.intro{grid-template-columns:1fr;gap:29px;padding:36px 0 35px}.intro-copy{position:relative}.eyebrow{font-size:9px}h1{font-size:54px;margin:21px 0 23px;line-height:1.02}.host-line{gap:9px}.host-line p{font-size:11px}.host-avatar{width:36px;height:36px}.identity-panel{margin:0;padding:34px 23px 0;min-height:220px}.identity-title{font-size:28px;margin-bottom:11px}.corner-mark{top:15px}.identity-bottom{margin-top:16px;min-height:38px}.selected-note+.identity-bottom{margin-top:12px}.schedule{padding-top:24px}.schedule-heading{align-items:flex-start;gap:12px}h2{font-size:28px}.schedule-meta{flex-wrap:wrap;justify-content:flex-end;gap:3px;font-size:10px;max-width:100px;padding-top:23px}.meta-dot{display:none}.schedule-meta>span{width:100%;text-align:right}.days{gap:13px}.day-heading{gap:8px;flex-wrap:wrap;padding-bottom:15px}.day-date{font-size:38px}.day-name{font-size:11px}.day-month{font-size:9px}.day-count{display:none}.slot{min-height:110px;padding:16px 11px 12px}.slot-time{font-size:26px;gap:4px}.slot-time .period{font-size:8px}.slot-arrow{width:19px;height:19px;top:auto;bottom:12px;right:10px;font-size:10px}.slot-bottom{font-size:9px;margin-top:19px;gap:4px;max-width:calc(100% - 17px)}.slot.booked .avatar{width:24px;height:24px;top:57px;left:12px;right:auto;box-shadow:none}.slot.booked .slot-bottom{display:block;padding-top:26px;margin-top:7px;max-width:100%;line-height:1.3}.slot.booked{min-height:132px}.slot.booked .booked-name{display:block;max-width:100%;font-size:9px}.booked-label{display:block;font-size:8px;margin-top:4px}.slot-list{gap:8px}.service-status{font-size:9px;align-items:flex-start;padding-top:7px;min-height:39px;line-height:1.5}.service-status .status-dot{margin-top:5px}.schedule-footnote{font-size:10px;max-width:280px;margin:21px auto 0}.footer{font-size:9px;margin-top:33px;padding-top:18px}.footer>span:last-child{font-size:10px}.own-booking{padding:12px;font-size:11px;gap:8px}.own-booking button{font-size:10px}.dialog-inner{padding:31px 26px}.booking-dialog h2{font-size:34px}}
@media(max-width:420px){.page{padding:0 18px}.days{grid-template-columns:1fr;gap:25px}.day-heading{padding-bottom:12px;gap:10px;flex-wrap:nowrap}.day-count{display:block;font-size:9px}.day-date{font-size:39px}.day-name{font-size:12px}.day-month{font-size:10px}.slot-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.slot{min-height:94px;padding:15px 13px 12px}.slot-time{font-size:28px}.slot-time .period{font-size:9px}.slot-bottom{margin-top:14px;font-size:10px}.slot-arrow{bottom:auto;top:16px;right:12px}.slot.booked{min-height:94px}.slot.booked .avatar{left:auto;top:14px;right:12px;width:24px;height:24px}.slot.booked .slot-bottom{margin-top:16px;padding-top:0;line-height:1.3;display:block}.slot.booked .booked-name{font-size:10px;max-width:100%}.booked-label{display:none}.days{padding-top:7px}.schedule-meta{padding-top:21px}h1{font-size:53px}.own-booking{flex-wrap:wrap}.own-booking p{flex-basis:80%}.own-booking button{margin-left:24px}.identity-panel{padding-left:22px;padding-right:22px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.slot.available:not(:disabled):hover{transform:none}}

.booking-notice{font-size:12px;color:var(--purple-dark);padding:12px 15px;margin:7px 0 18px;background:#eee8f6;border:1px solid #dfd3ea;border-radius:3px}.booking-notice.error{color:#8e513d;background:#f7eee8;border-color:#ead8cc}

/* Both weeks use the same day cards and the same responsive grid. */
.identity-panel{min-height:0;padding-top:35px;padding-bottom:38px}
.schedule-heading{justify-content:flex-end;margin-bottom:21px}
.schedule-meta{max-width:none;padding:0;gap:10px;flex-wrap:nowrap}
.schedule-meta>span{width:auto}
.schedule-meta .meta-dot{display:inline}
.footer{justify-content:flex-end}
.days{display:block;padding-top:7px}
.week-section+.week-section{margin-top:36px}
.week-heading{display:flex;align-items:baseline;gap:13px;border-bottom:1px solid var(--line);padding:0 0 12px;margin:0 0 22px}
.week-heading h3{font:500 12px/1.2 var(--sans);letter-spacing:.02em;margin:0;color:var(--purple-dark)}
.week-heading>span{font-size:10px;color:#958a9b}
.week-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:29px 25px;align-items:start}
.week-days .day{min-width:0}
.week-days .day-heading{display:flex;align-items:center;gap:13px;padding-bottom:19px}
.week-days .slot-list{display:grid;grid-template-columns:1fr;gap:10px}
.schedule-empty{padding:39px 0;color:var(--muted);font-size:12px;text-align:center;border-top:1px solid var(--line)}
@media(max-width:1000px){.week-days{gap:28px 18px}}
@media(max-width:860px){.week-days{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}.week-days .day-heading{gap:11px}.week-days .slot.booked{min-height:100px}.week-days .slot.booked .avatar{top:17px;right:17px;left:auto;width:25px;height:25px;box-shadow:0 0 0 3px #f4f1ee}.week-days .slot.booked .slot-bottom{display:flex;padding-top:0;margin-top:15px;max-width:none;line-height:1.5}.week-days .slot.booked .booked-name{display:inline;max-width:calc(100% - 40px);font-size:10px}.week-days .booked-label{display:inline;font-size:9px;margin-top:0}}
@media(max-width:600px){.week-days{grid-template-columns:1fr;gap:27px}.week-heading{margin-bottom:22px;padding-bottom:11px}.week-heading h3{font-size:11px}.week-heading>span{font-size:9px}.week-section+.week-section{margin-top:33px}.week-days .day-heading{padding-bottom:12px;gap:10px;flex-wrap:nowrap}.week-days .day-count{display:block;font-size:9px}.week-days .day-date{font-size:39px}.week-days .day-name{font-size:12px}.week-days .day-month{font-size:10px}.week-days .slot-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.week-days .slot{min-height:94px;padding:15px 13px 12px}.week-days .slot-time{font-size:28px;gap:4px}.week-days .slot-time .period{font-size:9px}.week-days .slot-bottom{margin-top:14px;font-size:10px}.week-days .slot-arrow{bottom:auto;top:16px;right:12px}.week-days .slot.booked{min-height:94px}.week-days .slot.booked .avatar{left:auto;top:14px;right:12px;width:24px;height:24px;box-shadow:none}.week-days .slot.booked .slot-bottom{margin-top:16px;padding-top:0;line-height:1.3;display:block}.week-days .slot.booked .booked-name{font-size:10px;max-width:100%;display:block}.week-days .booked-label{display:none}}
/* Start with your name, then give the available times the foreground. */
.intro,.schedule{transition:opacity .22s ease,filter .22s ease}
.intro.is-inactive{opacity:.48;filter:grayscale(1)}
.schedule.is-inactive,.page:has(.intro.is-inactive:focus-within) .schedule{opacity:.38;filter:grayscale(1)}
.intro.is-inactive:focus-within{opacity:1;filter:none}
#schedule-title:focus{outline:none}
@media(prefers-reduced-motion:reduce){.intro,.schedule{transition:none}}

.schedule{scroll-margin-top:24px}

/* Open times need only the time and the action. Keep every slot the same size. */
.slot,.week-days .slot,.week-days .slot.booked{min-height:92px}
@media(max-width:600px){.slot,.week-days .slot,.week-days .slot.booked{min-height:94px}}
