@font-face{font-family:Fraunces;src:url('/fonts/fraunces-400.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('/fonts/manrope-400.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('/fonts/manrope-500.ttf') format('truetype');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Manrope;src:url('/fonts/manrope-700.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root{--paper:#f7f2e9;--ink:#302a28;--muted:#6b5d57;--pink:#efd5d4;--accent:#843e49;--line:#97887d;--white:#fffcf7;font-family:Manrope,"Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,.button{cursor:pointer}button{color:inherit}button,a,input{touch-action:manipulation}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:5px}button:disabled{cursor:default;opacity:.4}button{border:0}button,.button{transition:background .18s,transform .18s}button:active,.button:active{transform:scale(.98)}[hidden]{display:none!important}
.topbar{height:110px;display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1280px;padding:0 56px;margin:auto}.wordmark{font-family:Fraunces,Georgia,serif;font-style:normal;font-size:25px;text-decoration:none;display:flex;align-items:center;gap:16px}.wordmark span{font:10px Arial,sans-serif;letter-spacing:.18em;border-left:1px solid var(--line);padding-left:16px}.invitation{max-width:1000px;margin:auto;padding:42px 40px 70px;min-height:calc(100svh - 110px)}.screen{animation:enter .24s ease-out}.opening{text-align:center;padding:clamp(40px,9svh,85px) 0 0;max-width:830px;margin:auto}h1,h2{font-family:Fraunces,Georgia,serif;font-weight:400;letter-spacing:-.025em;line-height:1.13;margin:22px 0}h1{font-size:clamp(42px,5.5vw,68px)}h2{font-size:clamp(36px,4.7vw,56px);max-width:830px}h1 em,h2 em{color:var(--accent);font-weight:400;font-style:normal}h1:focus,h2:focus{outline:none}.lede{font-size:17px;color:var(--muted);line-height:1.6;margin:20px 0 32px}.opening-actions{position:relative;display:flex;align-items:center;justify-content:center;gap:16px;margin:36px 0 28px;min-height:60px}.primary,.secondary{border-radius:12px;padding:18px 24px;font-weight:500;font-size:16px;display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;min-height:56px}.primary{background:var(--accent);color:var(--white)}.secondary{background:transparent;border:1px solid var(--line)}#no{min-width:110px}.no-runner{position:relative;display:flex;flex:none;z-index:5;transition:transform 240ms cubic-bezier(0.77,0,0.175,1)}.no-bubble{position:absolute;bottom:calc(100% + 14px);left:50%;width:max-content;max-width:min(220px,calc(100vw - 32px));padding:13px 17px;background:var(--pink);border:1px solid var(--line);border-radius:16px;color:var(--accent);font-size:14px;line-height:1.45;font-weight:500;pointer-events:none;transform:translateX(-50%);transform-origin:bottom center;box-shadow:0 4px 14px rgba(80,40,40,.06);animation:bubble-in 160ms cubic-bezier(.23,1,.32,1)}.no-bubble::after{content:"";position:absolute;bottom:-7px;left:calc(50% - 6px);width:12px;height:12px;background:var(--pink);border-right:1px solid var(--line);border-bottom:1px solid var(--line);transform:rotate(45deg)}.aside{color:var(--muted);font-family:Georgia,serif;font-style:italic;font-size:17px;line-height:1.6;min-height:28px}.quiet{background:transparent;padding:12px 8px;border-radius:5px;min-height:44px}.small{font-size:12px;color:var(--muted);line-height:1.6}.schedule{display:grid;grid-template-columns:1.2fr 1fr;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin:28px 0}.calendar{padding:24px;background:var(--white)}.month-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.month-head h3{font-size:17px;font-weight:500}.icon-button{background:none;border-radius:9px;font-size:22px;width:44px;height:44px}.weekdays,.days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.weekdays{font-size:11px;text-align:center;color:var(--muted);padding-bottom:10px}.day{background:transparent;border-radius:9px;height:44px}.day[aria-pressed=true]{background:var(--accent);color:var(--white)}.day.today{box-shadow:inset 0 0 0 1px var(--line)}.time-panel{padding:42px 32px;border-left:1px solid var(--line);display:flex;flex-direction:column;justify-content:center}.time-panel label{font-size:15px;font-weight:500;margin-bottom:20px}input{background:var(--white);border:1px solid var(--line);border-radius:10px;color:var(--ink);padding:14px;min-width:0}input[type=time]{font-size:26px;width:100%}.time-panel p{font-size:14px;line-height:1.7;color:var(--muted)}.selection-note{color:var(--accent)!important}.actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:32px}.actions.split{justify-content:space-between}.mood-options{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:44px}.mood{text-align:left;background:var(--white);border:1px solid var(--line);border-radius:16px;padding:28px 24px;position:relative;min-height:250px;display:flex;flex-direction:column;align-items:flex-start;gap:20px}.mood-icon{font-size:35px}.mood strong{font-family:Fraunces,Georgia,serif;font-size:30px;font-weight:400}.mood>span:not(.mood-icon):not(.mood-arrow){font-size:16px;line-height:1.65;color:var(--muted)}.mood-arrow{position:absolute;right:24px;top:28px;font-size:23px}.choice-options{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:40px 0}.choice{position:relative;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:24px 12px;min-height:120px;display:flex;flex-direction:column;align-items:center;gap:14px;font-size:16px}.choice span{font-size:31px}.choice[aria-pressed=true]{border-color:var(--accent);background:var(--pink);box-shadow:inset 0 0 0 1px var(--accent)}.summary{margin:32px 0;border-top:1px solid var(--line)}.summary>div{display:grid;grid-template-columns:150px 1fr;gap:20px;border-bottom:1px solid var(--line);padding:22px 0}.summary dt{color:var(--muted);font-size:14px}.summary dd{margin:0;font-size:18px;line-height:1.5}.error{color:#a12f2f;font-size:14px;line-height:1.6}.error:empty{display:none}
.owner{max-width:950px;margin:30px auto;padding:30px}.owner form{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.owner label{display:grid;gap:10px}.owner #results>article{border-top:1px solid var(--line);padding:25px 0}.owner #results h3{font-family:Georgia,serif;font-size:24px;font-weight:400}.owner #results p{color:var(--muted);line-height:1.6}.owner .owner-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
@keyframes enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
@media(max-width:650px){.topbar{height:85px;padding:0 22px}.wordmark{font-size:21px;gap:10px}.wordmark span{font-size:8px;padding-left:10px}#music{font-size:12px;padding:10px 4px}.invitation{padding:28px 22px 50px;min-height:calc(100svh - 85px)}h1{font-size:43px}h2{font-size:37px}.lede{font-size:17px;margin-bottom:24px}.opening-actions{gap:12px}.primary,.secondary{padding:17px 16px;font-size:16px}.schedule{grid-template-columns:1fr}.calendar{padding:18px}.time-panel{padding:22px;border-left:0;border-top:1px solid var(--line)}.time-panel label{margin-bottom:12px}.time-panel p{margin-bottom:0}.mood-options{grid-template-columns:1fr;gap:12px;margin-top:28px}.mood{min-height:0;padding:24px 58px 24px 80px;gap:8px}.mood-icon{position:absolute;left:22px;top:29px;font-size:32px}.mood strong{font-size:27px}.mood-arrow{right:20px;top:29px}.choice-options{grid-template-columns:repeat(2,1fr);margin-top:28px}.choice{min-height:105px;padding:20px 12px}.summary>div{grid-template-columns:100px 1fr;gap:12px}.summary dd{font-size:16px}.actions.split{gap:12px}.actions.split .primary{margin-left:auto}.owner{padding:22px;margin:10px auto}}

@keyframes bubble-in{from{opacity:0;transform:translate(-50%,4px) scale(.97)}to{opacity:1;transform:translateX(-50%) scale(1)}}

.choice[aria-pressed=true]::after{content:"✓";position:absolute;right:10px;top:8px;font-size:16px;font-weight:700;color:var(--accent)}

@media(hover:hover) and (pointer:fine){.primary:hover{background:#71333e}.secondary:hover{background:var(--pink)}.quiet:hover{background:var(--pink)}.icon-button:hover{background:var(--pink)}.day:hover{background:var(--pink)}.mood:hover{background:var(--pink)}.choice:hover{background:var(--pink)}}

@media(max-width:650px){
  .topbar{height:calc(72px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));gap:10px}
  .wordmark{font-size:20px;white-space:nowrap}
  #music{min-height:44px;font-size:12px;white-space:nowrap}
  .invitation{padding:20px max(16px,env(safe-area-inset-right)) max(32px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));min-height:calc(100svh - 72px - env(safe-area-inset-top))}
  .opening{padding-top:clamp(20px,5svh,40px)}
  h1{font-size:clamp(34px,10.5vw,43px)}
  h2{font-size:clamp(30px,8.3vw,36px)}
  h1,h2{margin:16px 0;overflow-wrap:break-word}
  .lede{font-size:16px;line-height:1.5;margin:14px 0 22px}
  .opening-actions{margin:28px 0 20px;gap:12px}
  .primary,.secondary{padding:16px 14px}
  #no{min-width:88px}
  .schedule{margin:20px 0}
  .calendar{padding:14px 12px;min-width:0}
  .month-head{margin-bottom:8px}
  .month-head h3{margin:0;font-size:16px}
  .weekdays,.days{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
  .day{min-width:0;padding:0;height:44px}
  .time-panel{padding:18px 16px;min-width:0}
  .time-panel label{margin-bottom:10px}
  .time-panel p:not(.selection-note){display:none}
  .time-panel .selection-note{margin:12px 0 0;line-height:1.5}
  input[type=time]{max-width:100%;min-height:54px;font-size:22px;-webkit-appearance:none;appearance:none}
  .actions{margin-top:24px;gap:12px}
  .actions>.primary,.actions>.secondary{width:100%}
  .actions.split .primary{margin-left:0}
  .mood{padding:20px 44px 20px 72px}
  .mood-icon{left:18px;top:24px;font-size:28px}
  .mood-arrow{right:16px;top:24px}
  .mood>span:not(.mood-icon):not(.mood-arrow){font-size:15px;line-height:1.5}
  .choice-options{gap:10px;margin:24px 0}
  .choice{min-width:0;padding:18px 10px}
  .summary>div{grid-template-columns:82px minmax(0,1fr);padding:18px 0;gap:12px}
  .summary dd{overflow-wrap:anywhere}
}

@media(max-height:500px) and (orientation:landscape){
  .topbar{height:56px;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
  .invitation{padding:12px max(20px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));min-height:calc(100svh - 56px)}
  .opening{padding-top:0;max-width:650px}
  h1{font-size:clamp(28px,5vw,36px);margin:8px 0}
  .opening-actions{margin:72px 0 12px}
}

.day.unavailable{opacity:1;color:var(--muted);background:var(--pink);text-decoration:line-through}#calendar-unavailability{margin:14px 0 0;line-height:1.6}
.day[aria-pressed=true]:hover{background:var(--accent)}
