:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#20232a;background:#f5f5f7;font-synthesis:none;--accent:#5144cf;--line:#e6e5ec;--muted:#6f7280}*{box-sizing:border-box}body{margin:0}header{max-width:1100px;margin:auto;padding:32px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--accent);font-size:30px;font-weight:800}.brand span{font-size:16px;letter-spacing:-.4px;color:#262833}.quiet,small,footer{color:var(--muted);font-size:13px}main{max-width:1040px;margin:36px auto 80px;padding:0 24px}footer{text-align:center;padding:24px}.shell{display:grid;grid-template-columns:300px minmax(0,1fr);border:1px solid var(--line);border-radius:28px;background:white;box-shadow:0 16px 70px #25204b08;overflow:hidden;animation:enter .22s ease-out}.intro{padding:36px 28px;background:linear-gradient(140deg,#f1efff,#fafaff);border-right:1px solid var(--line)}.eyebrow{font-size:11px;font-weight:750;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent)}h1{font-size:34px;line-height:1.12;letter-spacing:-1.4px;margin:18px 0}h2{font-size:23px;letter-spacing:-.6px;margin:0 0 8px}p{line-height:1.6}.intro p{color:#666576;font-size:14px;white-space:pre-wrap}.meta{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.pill{font-size:12px;background:#fff9;border:1px solid #dedbf0;border-radius:20px;padding:7px 10px}.content{padding:32px;min-width:0}.step{font-size:12px;color:var(--muted);margin-bottom:24px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 16px}.toolbar h3{margin:0;font-size:16px}.actions{display:flex;gap:8px;flex-wrap:wrap}button,input,select,textarea{font:inherit}button{min-height:44px;border:1px solid var(--line);border-radius:13px;background:white;padding:10px 16px;cursor:pointer;color:inherit;transition:background .15s ease,transform .15s ease,border-color .15s ease}button:hover{background:#f7f6ff;border-color:#beb8e9}button:active{transform:scale(.98)}button:disabled{cursor:default;opacity:.5}.primary{background:var(--accent);color:white;border-color:var(--accent);font-weight:650}.primary:hover{background:#4536bc;color:white}.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.day{padding:10px 3px;display:grid;gap:7px;text-align:center;border-radius:14px}.day small{font-size:10px}.day strong{font-size:18px}.day[aria-pressed=true],.slot[aria-pressed=true]{background:var(--accent);color:white;border-color:var(--accent)}.day[aria-pressed=true] small{color:#dedaff}.slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:20px 0}.slot{font-size:14px;min-height:48px}.field{display:grid;gap:8px;margin:20px 0;font-size:13px;font-weight:600}.field input,.field select,.field textarea{width:100%;min-height:48px;padding:12px;border:1px solid #d9d8e2;border-radius:12px;background:white;color:inherit;font-size:16px;font-weight:400}.field:focus-within{color:var(--accent)}:focus-visible{outline:3px solid #b4aaff;outline-offset:3px}.notice{padding:14px 16px;background:#fff5e5;border:1px solid #f0dab3;border-radius:14px;font-size:14px;line-height:1.5;margin:18px 0}.success{background:#eaf7f1;border-color:#c3e6d6}.summary{padding:18px;background:#f6f5fc;border-radius:16px;margin:24px 0;font-size:14px}.summary strong{display:block;margin-bottom:6px}.empty{padding:36px 16px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:16px;margin:20px 0}.poll-grid{display:grid;gap:8px;margin:24px 0}.poll-option{display:flex;justify-content:space-between;text-align:left;align-items:center;gap:16px;min-height:60px}.poll-option[aria-pressed=true]{background:#eeebff;border-color:var(--accent);color:#4333b5}.poll-option small{display:block;margin-top:4px}.count{font-size:12px;border-radius:12px;padding:5px 9px;background:#eeedf3;white-space:nowrap}.hero{max-width:650px;margin:60px auto;text-align:center}.hero h1{font-size:56px}.hero p{color:var(--muted);font-size:18px}.hero a{display:inline-block;margin-top:20px;padding:14px 20px;text-decoration:none;border-radius:14px}.checkmark{font-size:32px;background:#e9f6f0;color:#287e5f;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin-bottom:24px}.text-link{color:var(--accent);text-decoration:none;display:inline-block;padding:12px 0}.bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:28px}.hint{font-size:12px;color:var(--muted);line-height:1.5}.loading{opacity:.55;pointer-events:none}@keyframes enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(max-width:700px){header{padding:20px}.quiet{display:none}main{padding:0 12px;margin:16px auto 30px}.shell{grid-template-columns:1fr;border-radius:22px}.intro{padding:26px 24px;border-right:0;border-bottom:1px solid var(--line)}h1{font-size:29px;margin:12px 0}.intro p{margin-bottom:0}.meta{margin:16px 0 0}.content{padding:24px 20px}.step{margin-bottom:18px}.hero{padding:20px}.hero h1{font-size:42px}.slots{grid-template-columns:repeat(2,minmax(0,1fr))}.bottom{align-items:stretch;flex-direction:column}.bottom button{width:100%}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.poll-grid{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x proximity}.poll-day{flex:1 0 135px;display:flex;flex-direction:column;gap:8px;scroll-snap-align:start}.poll-day h3{font-size:13px;margin:0 0 8px}.poll-option{min-height:48px;user-select:none;padding:10px 12px}.poll-option.heat-1{background:#eff8f3}.poll-option.heat-2{background:#dcefe4}.poll-option.heat-3{background:#bedecd}.poll-option.heat-4{background:#96c9af}.poll-option[aria-pressed=true]{background:#eeebff;border:2px solid var(--accent);padding:9px 11px}.poll-option .count{padding:3px 7px;background:#ffffff80}

/* Responsive invitation surfaces: keep the page fixed-width and scroll only
   dense date choices. Safe-area padding also covers landscape iPhones. */
html{color-scheme:light}body{min-width:0}header,main,footer{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}footer{padding-bottom:max(24px,env(safe-area-inset-bottom))}.shell>*{min-width:0}.intro h1,.intro p,.pill,.summary,.notice,.hero h1,.text-link{overflow-wrap:anywhere}.brand{min-height:44px}.content{container-type:inline-size}.field{min-width:0}.field select{max-width:100%;text-overflow:ellipsis}.toolbar h3{min-width:0}.toolbar .actions{flex-shrink:0}.actions button{min-width:44px}.days{grid-template-columns:repeat(7,minmax(44px,1fr));overflow-x:auto;padding:4px 3px 8px;scroll-padding-inline:3px;scroll-snap-type:x proximity}.day{scroll-snap-align:start}.poll-grid{overscroll-behavior-inline:contain;scroll-padding-inline:4px}.poll-grid:focus-visible{outline-offset:0}.poll-day{min-width:0}.bottom button{min-width:140px}.hint{overflow-wrap:anywhere}button,a,input,select{touch-action:manipulation}button{ -webkit-tap-highlight-color:transparent }
@media(hover:none){button:hover{background:white;border-color:var(--line)}button.primary:hover{background:var(--accent);color:white}.day[aria-pressed=true]:hover,.slot[aria-pressed=true]:hover{background:var(--accent);border-color:var(--accent)}.poll-option[aria-pressed=true]:hover{background:#eeebff;border-color:var(--accent)}}
@media(min-width:861px) and (max-width:1100px){.shell{grid-template-columns:260px minmax(0,1fr)}.intro{padding:28px 24px}.content{padding:28px 24px}}
@media(max-width:860px){main{margin-top:16px}.shell{grid-template-columns:1fr}.intro{padding:24px;border-right:0;border-bottom:1px solid var(--line)}.intro h1{font-size:30px;max-width:28ch}.intro p{margin-bottom:0}.meta{margin:16px 0}.content{padding:24px}.step{margin-bottom:16px}}
@media(max-width:480px){header{padding-top:16px;padding-bottom:12px}main{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.intro,.content{padding:20px 16px}.intro h1{font-size:28px}.shell{border-radius:20px}.toolbar{gap:8px}.toolbar .actions{gap:6px}.bottom{gap:12px}.bottom button,.content form>.primary{width:100%}.hero{padding:12px 0;margin:32px auto}.hero h1{font-size:clamp(32px,10vw,42px)}.hero p{font-size:16px}}
@container(max-width:390px){.slots{grid-template-columns:repeat(2,minmax(0,1fr))}.bottom{align-items:stretch;flex-direction:column}.bottom button{width:100%}}
