/* KUMI Partners: the vendor portal. Stone and ink, like a pass at the end of service. */
body[data-theme=partners-door]{background:var(--ink);color:var(--bone)}
body[data-theme=partners-door] .door-k{color:#2a2828}
body[data-theme=partners-door] .door-inner .label,body[data-theme=partners-door] .door h1 em{color:var(--sage)}
body[data-theme=partners]{--bg:var(--stone);--accent:var(--olive);--btn:var(--ink);--btn-ink:var(--bone);background:var(--stone);color:var(--ink)}
body[data-theme=partners] .p-top{background:var(--ink)!important;color:var(--bone);border-color:var(--ink)}
.partners-tag{color:var(--sage);margin-left:auto}
.partners-page .p-tabs:empty+.p-out,.partners-page .partners-tag+.p-out{margin-left:0}
.partners-page .muted{color:var(--soft);font-size:15px}
.partners-page .b-tiny{font-size:12px;color:var(--soft);margin-top:10px}
.new{display:inline-block;vertical-align:middle;font-family:var(--f-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;font-style:normal;padding:3px 7px;border-radius:99px;background:var(--olive);color:var(--bone);margin-left:6px;animation:new-in .6s cubic-bezier(.3,1.6,.5,1) both}
@keyframes new-in{from{transform:scale(.4);opacity:0}}

/* the top */
.b-hero{display:grid;grid-template-columns:1fr auto;gap:clamp(20px,4vw,56px);align-items:center;padding:clamp(40px,7vw,88px) 0 clamp(28px,4vw,40px)}
.b-intro{display:grid;gap:16px;min-width:0}
.b-intro>.label{color:var(--olive)}
#room .b-hero h1{font-size:clamp(44px,8vw,100px)}
.b-lede{max-width:48ch;font-size:18px;color:var(--soft)}
.b-glance{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.b-glance a{display:grid;gap:2px;padding:14px 18px;background:var(--bone);text-decoration:none;min-width:130px;transition:transform .2s,box-shadow .2s}
.b-glance a:hover{transform:translateY(-2px);box-shadow:0 12px 24px -16px #0006}
.b-glance b{font-family:var(--f-display);font-weight:400;font-size:44px;line-height:1}
.b-glance .label{font-size:10px;color:var(--soft)}
/* the crew pass, on a lanyard */
.pass{position:relative;width:min(240px,42vw);transform-origin:50% 0;animation:tag-in 1s cubic-bezier(.2,.8,.2,1) both;justify-self:end}
.pass-strap{display:block;width:34px;height:70px;margin:0 auto -10px;background:repeating-linear-gradient(90deg,var(--olive) 0 6px,var(--olive-deep) 6px 8px);clip-path:polygon(0 0,100% 0,78% 100%,22% 100%)}
.pass-card{position:relative;background:var(--ink);color:var(--bone);border-radius:14px;padding:30px 20px 18px;display:grid;gap:8px;box-shadow:0 30px 50px -26px #000}
.pass-hole{position:absolute;top:10px;left:50%;width:40px;height:8px;margin-left:-20px;border-radius:4px;background:var(--stone)}
.pass-top{display:flex;justify-content:space-between;align-items:center}
.pass-top .k{width:30px;aspect-ratio:3247/3280;-webkit-mask-image:var(--k);mask-image:var(--k);color:var(--sage)}
.pass-top .label{color:var(--sage);font-size:10px;border:1px solid var(--sage);padding:2px 8px;border-radius:99px}
.pass-name{font-family:var(--f-display);font-weight:400;font-size:clamp(28px,3.4vw,38px);line-height:1;margin-top:18px;overflow-wrap:anywhere}
.pass-kind{font-family:var(--f-display);font-style:italic;color:var(--sage);font-size:20px}
.pass-bot{display:flex;justify-content:space-between;gap:8px;border-top:1px dashed #ffffff33;padding-top:10px;margin-top:10px}
.pass-bot .label{font-size:9.5px;color:var(--mist);opacity:.8}
.pass-code{font-family:var(--f-mono);font-size:11px;color:var(--sage)}
.pass-bars{display:flex;gap:3px;height:22px;opacity:.6}
.pass-bars i{width:var(--w);background:var(--bone)}
.pass.swing{animation:swing 1.4s cubic-bezier(.3,.6,.3,1)}

/* your nights */
.b-nights{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 14px;scrollbar-width:thin;border-top:1px solid var(--ink)}
.b-nights button{position:relative;flex:none;display:flex;gap:12px;align-items:center;font:inherit;text-align:left;padding:12px 16px 12px 12px;background:var(--bone);color:var(--ink);border:1px solid transparent;cursor:pointer;margin-top:14px;transition:transform .2s}
.b-nights button:hover{transform:translateY(-2px)}
.b-nights button[aria-current=true]{background:var(--ink);color:var(--bone)}
.b-nights button.past{opacity:.75}
.b-nights .nd{display:grid;place-items:center;width:52px;height:52px;border:1px solid currentColor;border-radius:50%;line-height:1}
.b-nights .nd b{font-family:var(--f-display);font-weight:400;font-size:24px}
.b-nights .nd small{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase}
.b-nights .nt{display:grid;font-family:var(--f-display);font-size:22px;line-height:1.1}
.b-nights .nt small{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;opacity:.7}
.b-nights .dot{position:absolute;top:8px;right:8px;width:9px;height:9px;border-radius:50%;background:var(--olive);box-shadow:0 0 0 3px #48502b33;animation:pulse 2s ease-in-out infinite}
.b-jump{position:sticky;top:0;z-index:12;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;background:var(--stone);padding:10px 0;border-bottom:1px solid var(--rule);margin-bottom:8px}
.b-jump a{flex:none;font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;padding:7px 12px;border-radius:99px;border:1px solid transparent}
.b-jump a:hover{border-color:var(--ink)}
.preview-bar:not([hidden])~.inside .b-jump{top:28px}
#room [id]{scroll-margin-top:70px}

/* one night */
.b-night{padding-top:clamp(24px,4vw,40px);display:grid;gap:clamp(20px,3vw,32px)}
.b-night.empty{padding-block:56px;gap:12px}
.b-head{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:end}
.b-head>div{display:grid;gap:8px;min-width:0}
.b-head .label{color:var(--olive)}
.b-meta{font-size:17px;color:var(--soft)}
.ribbon{list-style:none;margin:0;padding:0;display:flex;align-items:center}
.ribbon li{display:grid;justify-items:center;gap:6px;position:relative;min-width:66px}
.ribbon li::before{content:"";position:absolute;top:7px;left:-50%;width:100%;height:2px;background:var(--rule);z-index:0}
.ribbon li:first-child::before{display:none}
.ribbon li.done::before,.ribbon li.now::before{background:var(--olive)}
.ribbon i{width:16px;height:16px;border-radius:50%;border:2px solid var(--rule);background:var(--stone);position:relative;z-index:1}
.ribbon li.done i{background:var(--olive);border-color:var(--olive)}
.ribbon li.now i{border-color:var(--olive);background:var(--bone);box-shadow:0 0 0 4px #48502b33}
.ribbon span{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--soft)}
.ribbon li.now span{color:var(--ink);font-weight:500}
.b-fresh{display:flex;gap:12px;align-items:center;background:var(--ink);color:var(--bone);padding:14px 18px;font-size:15px;animation:rise .6s both}
.b-fresh i{flex:none;width:10px;height:10px;border-radius:50%;background:var(--sage);animation:blink 1.6s ease-in-out infinite}
.b-fresh.first{background:var(--olive)}
.b-fresh .new{background:var(--sage);color:var(--forest)}
.b-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(16px,3vw,32px);align-items:start}
.docket{position:relative;background:var(--bone);padding:clamp(22px,4vw,36px);display:grid;gap:22px;box-shadow:0 26px 50px -30px #0008;
  -webkit-mask:linear-gradient(#000 0 0) top/100% calc(100% - 10px) no-repeat,conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom/16px 10px repeat-x;
  mask:linear-gradient(#000 0 0) top/100% calc(100% - 10px) no-repeat,conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom/16px 10px repeat-x;padding-bottom:calc(clamp(22px,4vw,36px) + 10px)}
.docket-head{display:flex;justify-content:space-between;border-bottom:2px solid var(--ink);padding-bottom:10px;color:var(--olive)}
.b-dl{display:grid;gap:14px}
.b-dl div{grid-template-columns:120px 1fr;align-items:baseline}
.b-dl dd{font-size:17px}
.b-map{font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;margin-left:8px;color:var(--olive)}
.b-run ol{list-style:none;margin:12px 0 0;padding:0 0 0 16px;border-left:2px solid var(--olive);display:grid;gap:10px}
.b-run li{display:grid;grid-template-columns:62px 1fr;gap:12px;align-items:baseline;position:relative}
.b-run li::before{content:"";position:absolute;left:-22px;top:.55em;width:10px;height:10px;border-radius:50%;background:var(--bone);border:2px solid var(--olive)}
.b-run b{font-family:var(--f-mono);font-weight:500;font-size:14px;color:var(--olive)}
.b-run span{font-family:var(--f-display);font-size:22px;line-height:1.15}
.b-run .label,.b-bring .label,.b-diet .label{color:var(--olive)}
.b-bring{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px dashed var(--rule);padding-top:18px}
.b-bring ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.b-bring li{position:relative;padding-left:22px;font-size:16px;line-height:1.35}
.b-bring li::before{content:"";position:absolute;left:0;top:.2em;width:13px;height:13px;border:1.5px solid var(--olive);border-radius:3px}
.b-note{margin:0;font-family:var(--f-display);font-size:23px;line-height:1.3;padding:16px 20px;background:var(--mist);border-left:3px solid var(--olive)}
.b-note.big{font-size:clamp(24px,3vw,32px)}
.b-note cite{display:block;margin-top:8px;font-family:var(--f-mono);font-style:normal;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--olive)}
.b-note cite::before{content:"— "}
/* numbers */
.b-num{background:var(--ink);color:var(--bone);padding:clamp(22px,3vw,32px);display:grid;gap:14px;position:relative;overflow:hidden}
.b-num>.label{color:var(--sage);display:flex;align-items:center;gap:8px}
.live{display:inline-block;width:8px;height:8px;border-radius:50%;background:#7fbf6a;box-shadow:0 0 0 0 #7fbf6a88;animation:live 1.8s ease-out infinite}
@keyframes live{to{box-shadow:0 0 0 10px #7fbf6a00}}
.b-count{display:flex;align-items:baseline;gap:12px;position:relative}
.b-count b{font-family:var(--f-display);font-weight:400;font-size:clamp(88px,12vw,140px);line-height:.85;font-variant-numeric:tabular-nums}
.b-count span{color:var(--mist);opacity:.8}
.final-stamp{position:absolute;right:0;top:-6px;font-family:var(--f-mono);font-size:12px!important;letter-spacing:.2em;text-transform:uppercase;color:var(--sage)!important;opacity:1!important;border:2px solid var(--sage);padding:6px 10px;transform:rotate(-8deg);animation:stamp-in .7s .2s cubic-bezier(.3,1.6,.5,1) both}
.b-bar{height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}
.b-bar i{display:block;height:100%;width:calc(var(--p) * 100%);background:var(--sage);border-radius:3px;animation:grow 1.2s cubic-bezier(.2,.8,.2,1) both}
@keyframes grow{from{width:0}}
.b-sub{font-size:14px;color:var(--mist);opacity:.85}
.b-sub .new{background:var(--sage);color:var(--forest)}
.b-diet{border-top:1px solid #ffffff22;padding-top:14px;display:grid;gap:10px}
.b-num .b-diet .label{color:var(--sage)}
.b-num .muted,.b-num .b-tiny{color:var(--mist);opacity:.7}
.diet{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.diet li{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border:1px solid #ffffff44;border-radius:99px;font-size:14px}
.diet b{display:grid;place-items:center;min-width:26px;height:26px;border-radius:50%;background:var(--sage);color:var(--forest);font-weight:600;font-size:13px}
.b-dnotes{display:grid;gap:6px}
.b-dnotes p{font-family:var(--f-display);font-size:19px;line-height:1.25;color:var(--bone)}

/* sections */
.b-sec{padding-top:clamp(28px,4vw,44px);border-top:1px solid var(--ink);margin-top:clamp(28px,4vw,44px);display:grid;gap:18px}
.b-night>.b-sec{margin-top:0}
.b-sec-h{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.b-sec-h .label{color:var(--olive)}
.b-sec h3{font-family:var(--f-display);font-weight:400;font-size:clamp(28px,4vw,40px);line-height:1.05}
.b-dates{list-style:none;margin:0;padding:0;display:grid;gap:0}
.b-dates li{display:grid;grid-template-columns:30px 1fr auto;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid var(--rule);position:relative}
.b-dot{width:24px;height:24px;border-radius:50%;border:2px solid var(--ink);display:grid;place-items:center;font-size:12px;background:var(--stone)}
.b-dates li.done .b-dot{background:var(--olive);border-color:var(--olive);color:var(--bone)}
.b-dates li.soon .b-dot{border-color:var(--olive);box-shadow:0 0 0 4px #48502b33;animation:pulse 2s ease-in-out infinite}
.b-dates li.late .b-dot{border-style:dashed}
.b-dt{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px}
.b-dt b{font-family:var(--f-display);font-weight:400;font-size:24px;line-height:1.1}
.amt{font-family:var(--f-mono);font-size:15px;background:var(--bone);padding:2px 8px}
.when{flex-basis:100%;font-size:14px;color:var(--soft)}
.b-dates li.done .b-dt b{text-decoration:line-through;text-decoration-thickness:1px;opacity:.6}
.tick{font:inherit;font-size:13px;font-weight:600;padding:9px 14px;border-radius:99px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;white-space:nowrap;transition:background .2s,color .2s}
.tick:hover,.tick.on{background:var(--ink);color:var(--bone)}
.b-paper{display:grid;grid-template-columns:44px 1fr;gap:16px;background:var(--bone);padding:clamp(20px,3vw,28px);align-items:start}
.b-paper .t-ico{width:40px;height:40px;background:var(--ink);border-color:var(--ink);color:var(--sage)}
.b-paper p{color:var(--soft);margin-top:6px;max-width:58ch}
.b-paper.signed{background:var(--mist)}
.seal{width:44px;height:44px;border-radius:46% 54% 50% 50%;background:radial-gradient(circle at 35% 30%,#6a7341,var(--olive) 50%,var(--olive-deep));display:grid;place-items:center;box-shadow:0 3px 6px #0004;animation:stamp-in .6s cubic-bezier(.3,1.6,.5,1) both}
.seal .mask{width:58%;height:58%;-webkit-mask-image:var(--k);mask-image:var(--k);background:var(--sage)}
.b-tbl{border-collapse:collapse;width:100%;font-size:15px;margin:8px 0}
.b-tbl td{padding:6px 10px 6px 0;border-bottom:1px solid #d9cfc5}
.b-tbl td:last-child{text-align:right;font-family:var(--f-mono)}
.doc ul{margin:0 0 10px;padding-left:1.2em}
/* on the night */
.b-on{grid-template-columns:auto 1fr;align-items:center;gap:clamp(20px,5vw,56px)}
.phone{width:210px;aspect-ratio:9/17;border-radius:30px;background:var(--ink);padding:10px;box-shadow:0 30px 60px -30px #000;transform:rotate(-4deg);transition:transform .4s}
.phone:hover{transform:rotate(0) translateY(-4px)}
.phone-in{height:100%;border-radius:22px;background:#2a2828;color:var(--bone);padding:24px 16px;display:grid;align-content:start;gap:10px;overflow:hidden}
.phone-in .label{font-size:8.5px;color:var(--sage)}
.phone-in b{font-family:var(--f-display);font-weight:400;font-size:26px;line-height:1}
.ph-row{display:flex;justify-content:space-between;border-bottom:1px solid #ffffff22;padding-bottom:6px;font-size:14px}
.ph-row small,.ph-run i{font-family:var(--f-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--sage);font-style:normal}
.ph-run{display:flex;gap:8px;font-size:12px;opacity:.8}
.b-on-copy{display:grid;gap:12px;justify-items:start}
.b-on-copy>.label{color:var(--olive)}
.b-on-copy p{max-width:56ch;color:var(--soft)}
.b-url{font-family:var(--f-mono);font-size:14px;background:var(--bone);padding:8px 12px;overflow-wrap:anywhere;color:var(--ink)!important}
.b-url.big{font-size:clamp(18px,3vw,28px);background:none;padding:0}
.partners-page .t-act{gap:8px 12px}
.partners-page .t-btn{background:var(--ink)}
.partners-page .t-btn:hover{background:var(--olive)}
.partners-page .t-btn.ghost{background:none;color:var(--ink);text-decoration:none}
.partners-page .t-btn.copied{background:var(--olive)}
.partners-page .cal{margin-top:0}
/* a shared night */
.b-collab-in{display:grid;grid-template-columns:1.2fr 1fr;gap:28px}
.b-collab-in>div{display:grid;gap:14px;align-content:start}
.seats{display:flex;flex-wrap:wrap;gap:8px}
.seats i{width:28px;height:28px;border-radius:50%;border:1.5px dashed var(--ink);animation:rise .5s var(--d) both}
.seats i.on{background:var(--olive);border:1.5px solid var(--olive)}
.b-collab .f-names li{border-color:var(--ink)}
.b-collab .f-names li.came{background:var(--olive);border-color:var(--olive);color:var(--bone)}
.b-invite{background:var(--bone);padding:22px}
.b-invite .label{color:var(--olive)}
/* after the night */
.b-recap-h{font-size:clamp(34px,5vw,56px)!important}
.b-recap-h b{font-weight:400}
.b-recap-h em{color:var(--olive)}
.b-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}
.b-photos a{display:block;background:#fff;padding:8px 8px 26px;box-shadow:0 18px 30px -20px #0008;transform:rotate(var(--r));transition:transform .3s}
.b-photos a:hover{transform:rotate(0) scale(1.03)}
.b-photos img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.b-slips{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))!important}
.b-slips li{background:var(--bone)}
.b-credit{display:grid;grid-template-columns:minmax(200px,320px) 1fr;gap:28px;align-items:center;background:var(--ink);color:var(--bone);padding:clamp(20px,3vw,32px)}
.b-credit canvas{width:100%;height:auto;display:block;box-shadow:0 30px 50px -30px #000;transform:rotate(-2deg)}
.b-credit .label{color:var(--sage)}
.b-credit p{color:var(--mist);opacity:.85;max-width:44ch}
.b-credit>div{display:grid;gap:12px}
.b-credit .t-btn{background:var(--sage);color:var(--forest)}
.b-credit .t-btn.ghost{background:none;color:var(--bone)}
/* your link */
.b-link-in{display:grid;grid-template-columns:1.4fr auto;gap:32px;align-items:center}
.b-link-in>div:first-child{display:grid;gap:12px}
.b-link-in p{color:var(--soft);max-width:56ch}
.b-nums b{color:var(--ink)}
.b-nums .label{color:var(--olive)}
.b-credits ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.b-credits li{display:grid;gap:2px;padding:12px 16px;background:var(--bone)}
.b-credits b{font-family:var(--f-display);font-weight:400;font-size:22px}
.b-credits span{font-size:14px;color:var(--soft)}
.b-credits .label{color:var(--olive)}
/* proofs */
.b-upload{display:grid;grid-template-columns:1fr 1fr auto auto;gap:12px;align-items:end;background:var(--bone);padding:18px}
.b-upload label{display:grid;gap:6px;min-width:0}
.b-upload input:not([type=file]){font:inherit;font-size:16px;padding:10px;border:1px solid var(--ink);background:#fff;border-radius:0;min-width:0}
.b-file,.b-newv{position:relative;cursor:pointer}
.b-file input,.b-newv input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.b-file span{display:block;padding:11px 14px;border:1.5px dashed var(--ink);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.b-proof-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.b-proof-list li{display:grid;gap:8px}
.b-proof{font:inherit;text-align:left;display:grid;gap:6px;padding:0 0 12px;border:0;background:var(--bone);color:var(--ink);cursor:pointer;transition:transform .2s,box-shadow .2s}
.b-proof:hover{transform:translateY(-3px);box-shadow:0 20px 30px -22px #0008}
.b-proof .thumb{display:grid;place-items:center;aspect-ratio:4/3;background:#fff;overflow:hidden}
.b-proof .thumb img{width:100%;height:100%;object-fit:contain}
.b-proof .pdf{font-family:var(--f-mono);font-size:20px;color:var(--olive)}
.b-proof b,.b-proof small,.b-proof .pv-status{margin-inline:12px}
.b-proof b{font-family:var(--f-display);font-weight:400;font-size:22px;line-height:1.1}
.b-proof small{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--soft)}
.b-newv span{display:block;text-align:center;font-size:13px;padding:8px;border:1px dashed var(--ink)}
.pv-status{justify-self:start;font-family:var(--f-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:99px;background:var(--stone);color:var(--ink)}
.pv-status.approved{background:var(--olive);color:var(--bone)}
.pv-status.changes{background:var(--ink);color:var(--sage)}
/* the brand kit */
.b-kit-lede{color:var(--soft);max-width:60ch}
.kit-logos{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:0}
.kit-logos figure{margin:0;display:grid;grid-template-rows:140px auto;background:var(--bone);color:var(--ink)}
.kit-logos figure.dark{background:var(--ink);color:var(--bone)}
.kit-logos figure.olive{background:var(--olive);color:var(--bone)}
.kit-logos .mask{align-self:center;justify-self:center;width:62%;max-height:96px;-webkit-mask-image:var(--logo);mask-image:var(--logo)}
.kit-logos figcaption{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid #8883;font-size:14px}
.kit-logos figcaption span{display:flex;gap:6px}
.kit-logos figcaption a,.kit-logos figcaption button{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;padding:4px 8px;border:1px solid currentColor;border-radius:99px;text-decoration:none;color:inherit;background:none;cursor:pointer}
.kit-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.sw{font:inherit;text-align:left;display:grid;gap:2px;padding:0 0 10px;border:0;background:var(--bone);color:var(--ink);cursor:pointer}
.sw i{height:64px;background:var(--c);box-shadow:inset 0 -1px 0 #0001}
.sw b,.sw span{margin-inline:10px}
.sw b{font-weight:600;font-size:14px;margin-top:6px}
.sw span{font-family:var(--f-mono);font-size:12px;color:var(--soft)}
.sw.copied span::after{content:" · copied"}
.kit-fonts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.kit-fonts a{display:grid;gap:6px;padding:18px;background:var(--bone);text-decoration:none}
.kit-fonts span{font-size:36px;line-height:1}
.kit-fonts small{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--soft)}
.kit-voice{display:grid;gap:8px;max-width:64ch}
.kit-voice .label{color:var(--olive);margin-top:6px}
.kit-voice p:not(.label){font-family:var(--f-display);font-size:22px;line-height:1.3}

/* the proof viewer (also used in the house) */
.pv{border:0;padding:0;width:min(1100px,100%);max-height:min(94vh,100%);background:var(--bone);color:var(--ink);box-shadow:0 40px 100px -20px #000}
.pv::backdrop{background:#1d1c1cb3;backdrop-filter:blur(3px)}
.pv-in{display:grid;gap:16px;padding:clamp(16px,3vw,28px)}
.pv-top{display:flex;align-items:center;gap:14px}
.pv-top>div{flex:1;min-width:0}
.pv-top .label{color:var(--olive)}
.pv-top h3{font-family:var(--f-display);font-weight:400;font-size:clamp(26px,4vw,36px);line-height:1}
.pv-x{font:inherit;font-size:30px;line-height:1;background:none;border:0;color:inherit;cursor:pointer;padding:4px 8px}
.pv-body{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;min-height:0}
.pv-stage-wrap{display:grid;gap:10px;align-content:start;min-width:0}
.pv-vers{display:flex;gap:6px;flex-wrap:wrap}
.pv-vers button{font:inherit;font-size:13px;padding:6px 10px;border:1px solid var(--ink);background:none;cursor:pointer;display:flex;gap:6px;align-items:baseline}
.pv-vers small{font-size:11px;opacity:.7}
.pv-vers button[aria-pressed=true]{background:var(--ink);color:var(--bone)}
.pv-stage{position:relative;background:#fff;cursor:crosshair;line-height:0}
.pv-stage img{width:100%;max-height:68vh;object-fit:contain;display:block}
.pv-pin{position:absolute;transform:translate(-50%,-50%);width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-mono);font-size:12px;line-height:1;background:var(--ink);color:var(--bone);box-shadow:0 4px 10px #0005;cursor:pointer;animation:new-in .4s cubic-bezier(.3,1.6,.5,1) both}
.pv-pin.house{background:var(--olive)}
.pv-pin.new{background:var(--sage);color:var(--forest)}
.pv-pdf{display:grid;gap:8px}
.pv-pdf object{width:100%;height:60vh;border:1px solid var(--rule)}
.pv-vnote{font-size:14px;color:var(--soft)}
.pv-vnote .label{color:var(--olive);margin-right:6px}
.pv-side{display:grid;grid-template-rows:auto 1fr auto auto;gap:10px;min-height:0;max-height:72vh}
.pv-side>.label{color:var(--olive)}
.pv-thread{list-style:none;margin:0;padding:0;overflow:auto;display:grid;gap:8px;align-content:start}
.pv-thread li{padding:10px 12px;background:#fff;border-left:3px solid var(--ink);transition:background .4s}
.pv-thread li.house{border-left-color:var(--olive)}
.pv-thread li.other{opacity:.55}
.pv-thread li.flash{background:var(--mist)}
.pv-thread li.pv-empty{border:0;background:none;color:var(--soft);font-style:italic}
.pv-who{display:flex;gap:6px;align-items:center;font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}
.pv-who b{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--ink);color:var(--bone);font-size:10px}
.pv-thread li.house .pv-who b{background:var(--olive)}
.pv-thread p{font-size:15px;line-height:1.45;margin-top:4px}
.pv-form{display:grid;gap:8px}
.pv-form textarea{font:inherit;font-size:15px;padding:10px;border:1px solid var(--ink);background:#fff;resize:vertical;border-radius:0}
.pv-act{display:flex;gap:10px;align-items:center}
.pv .rsvp{--btn:var(--ink);--btn-ink:var(--bone);padding:11px 16px}
.pv-decide{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--rule);padding-top:10px}
.pv .t-btn{font:inherit;font-size:14px;font-weight:600;padding:10px 16px;border:0;border-radius:99px;background:var(--olive);color:var(--bone);cursor:pointer}
.pv .t-btn.ghost{background:none;color:var(--ink);box-shadow:inset 0 0 0 1.5px currentColor}

/* tonight: the day-of card */
body[data-theme=tonight]{background:var(--ink);color:var(--bone)}
.tonight-page{min-height:100dvh;padding:max(20px,env(safe-area-inset-top)) 16px 40px}
.t-wrap{max-width:560px;margin:0 auto;display:grid;gap:18px;animation:rise .7s both}
.t-top{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid #ffffff33}
.t-top .label{color:var(--sage);font-size:10.5px}
.t-top .label:last-child{margin-left:auto;color:var(--mist);opacity:.7;text-align:right}
.t-k{display:block;width:28px;aspect-ratio:3247/3280;-webkit-mask-image:var(--k);mask-image:var(--k);color:var(--sage)}
.t-wrap>h1{font-family:var(--f-display);font-size:clamp(52px,15vw,84px);line-height:.92}
.t-series{color:var(--sage)}
.t-when{font-family:var(--f-display);font-style:italic;font-size:24px;color:var(--mist);margin-top:-8px}
.t-times{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px}
.t-times div{background:#ffffff0f;padding:14px;display:grid;gap:2px}
.t-wrap small{font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--sage)}
.t-times b{font-family:var(--f-display);font-weight:400;font-size:44px;line-height:1;font-variant-numeric:tabular-nums}
.t-where{display:grid;gap:4px;padding:16px;background:var(--bone);color:var(--ink);text-decoration:none}
.t-where small{color:var(--olive)}
.t-where span{font-family:var(--f-display);font-size:26px;line-height:1.1}
.t-where i{font-style:normal;font-weight:600;font-size:14px;color:var(--olive)}
.t-ask{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px;border:1px solid #ffffff44}
.t-ask b{display:block;font-family:var(--f-display);font-weight:400;font-size:30px;line-height:1}
.t-ask a{flex:none;font-weight:600;font-size:15px;padding:12px 16px;border-radius:99px;background:var(--sage);color:var(--forest);text-decoration:none}
.t-block{display:grid;gap:8px;padding-top:14px;border-top:1px solid #ffffff22}
.t-block p{font-size:17px}
.t-q{font-family:var(--f-display);font-size:20px!important}
.t-run{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.t-run li{display:grid;grid-template-columns:64px 1fr auto;gap:10px;align-items:baseline;padding:10px 12px;border-radius:4px}
.t-run b{font-family:var(--f-mono);font-weight:500;color:var(--sage)}
.t-run span{font-family:var(--f-display);font-size:22px;line-height:1.15}
.t-run li.gone{opacity:.45}
.t-run li.now{background:var(--sage);color:var(--forest)}
.t-run li.now b{color:var(--forest)}
.t-run i{font-style:normal;font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.t-list{margin:0;padding-left:1.2em;display:grid;gap:4px}
.t-foot{margin-top:18px;font-family:var(--f-display);font-style:italic;font-size:22px;color:var(--mist);display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.t-foot .label{font-style:normal;color:var(--sage)}
.tonight-page .diet li{border-color:#ffffff44}

@media (max-width:820px){
  .b-hero{grid-template-columns:1fr}
  .pass{order:-1;width:170px;margin-bottom:-30px}
  .b-grid,.b-collab-in,.b-link-in,.b-credit,.pv-body{grid-template-columns:1fr}
  .b-on{grid-template-columns:1fr}
  .phone{justify-self:center;width:180px}
  .b-upload{grid-template-columns:1fr 1fr}
  .kit-fonts{grid-template-columns:1fr}
  .pv-side{max-height:none}
  .b-credit canvas{max-width:280px;justify-self:center}
}
@media (max-width:520px){
  .b-bring{grid-template-columns:1fr}
  .b-dl div{grid-template-columns:1fr;gap:2px}
  .b-dates li{grid-template-columns:28px 1fr}
  .b-dates .tick{grid-column:2;justify-self:start}
  .ribbon li{min-width:52px}
  .b-upload{grid-template-columns:1fr}
  .b-file span{max-width:none}
  .b-glance a{min-width:0;flex:1}
  .pv{max-height:100%;height:100%;width:100%;max-width:100%;margin:0}
}
/* messages: a private line to the house */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.b-jump .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--olive);margin-left:6px;vertical-align:1px}
.msg-box{background:var(--bone);display:grid;grid-template-rows:auto 1fr auto;max-width:760px;box-shadow:0 1px 0 var(--rule)}
.msg-head{display:flex;gap:12px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--rule)}
.msg-head b{display:block;font-family:var(--f-display);font-weight:400;font-size:24px;line-height:1.1}
.msg-head small{font-size:13px;color:var(--soft)}
.msg-av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--forest);color:var(--sage);font-family:var(--f-display);font-size:22px;flex:none}
.msg-list{list-style:none;margin:0;padding:18px;display:flex;flex-direction:column;gap:6px;max-height:min(460px,60vh);min-height:180px;overflow-y:auto;overscroll-behavior:contain}
.msg{max-width:min(78%,520px);display:grid;gap:3px;animation:msg-in .25s ease both}
@keyframes msg-in{from{opacity:0;transform:translateY(6px)}}
.msg p{margin:0;padding:10px 14px;font-size:16px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:16px}
.msg small{font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;color:var(--soft);padding:0 6px}
.msg.theirs{align-self:flex-start}.msg.theirs p{background:#fff;border:1px solid var(--rule);border-bottom-left-radius:4px}
.msg.mine{align-self:flex-end;text-align:right}.msg.mine p{background:var(--ink);color:var(--bone);border-bottom-right-radius:4px;text-align:left}
.msg-day{align-self:center;font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--soft);margin:10px 0 4px}
.msg-empty{margin:auto;max-width:42ch;text-align:center;color:var(--soft);font-size:15px}
.msg-form{display:flex;gap:10px;align-items:end;padding:12px;border-top:1px solid var(--rule)}
.msg-form textarea{flex:1;font:inherit;font-size:16px;line-height:1.4;padding:10px 12px;border:1px solid var(--ink);background:#fff;color:var(--ink);border-radius:0;resize:none;min-height:44px;max-height:180px}
.msg-form .t-btn{flex:none}
/* documents, both ways */
.b-docs>.b-paper{max-width:760px}
.doc-cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3vw,32px);align-items:start}
.doc-cols>div{display:grid;gap:12px;align-content:start}
.doc-cols .label{color:var(--olive)}
.doc-list{list-style:none;margin:0;padding:0;display:grid}
.doc-row{display:grid;grid-template-columns:44px 1fr;gap:6px 12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--rule)}
.doc-ico{width:44px;height:52px;display:grid;place-items:end center;padding-bottom:6px;background:var(--bone);border:1px solid var(--ink);font-family:var(--f-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;clip-path:polygon(0 0,72% 0,100% 18%,100% 100%,0 100%)}
.doc-t{display:grid;min-width:0}.doc-t b{font-weight:600;overflow-wrap:anywhere}.doc-t small{font-size:13px;color:var(--soft)}
.doc-acts{grid-column:2;display:flex;gap:4px 12px;align-items:center;flex-wrap:wrap}
.doc-acts .undo{padding:6px 0}
.doc-acts .t-btn{font-size:14px;padding:8px 14px}
.pill{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border-radius:99px;border:1px solid var(--ink);background:none;color:var(--ink);cursor:pointer}
.pill.yes{background:var(--olive);border-color:var(--olive);color:var(--bone)}
.doc-up{grid-template-columns:1fr auto auto}
.doc-view{display:grid;gap:6px;justify-items:start}
.doc-view object,.doc-view img{width:100%;height:46vh;border:1px solid var(--rule);background:#fff;object-fit:contain}
.doc-view p{margin:0}
@media (max-width:760px){.doc-cols{grid-template-columns:1fr}.doc-up{grid-template-columns:1fr}.msg{max-width:88%}}
@media print{.p-top,.b-jump,.b-nights,.p-foot,.toast{display:none}}
