/* The kit is stationery: light paper, explicit ink, artwork independent of browser backgrounds. */
.kit-intro { max-width: 940px; margin-bottom: 32px; text-align: center; }
.kit-eyebrow { margin: 0 0 10px; color: #62507e; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.kit-intro .lede { max-width: 660px; margin: 16px auto 0; }
.kit-maker-grid { grid-template-columns: minmax(0,1fr); gap: 28px; }
.kit-form h3 { margin: 0 0 10px; font-size: 28px; }
.kit-form .fine { font-size: 13px; }
.kit-form .field { min-width: 0; }
.kit-styles { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; min-width: 0; margin: 18px 0 22px; padding: 0; border: 0; }
.kit-styles legend { margin-bottom: 8px; font-size: 14px; font-weight: 650; }
.kit-styles label { position: relative; cursor: pointer; }
.kit-styles input { position: absolute; top: 7px; right: 6px; width: 15px; height: 15px; margin: 0; accent-color: #6b4c91; }
.kit-styles label > span { display: grid; gap: 4px; padding: 10px 7px; border: 2px solid #e3dfe9; border-radius: 12px; background: #fff; }
.kit-styles input:checked + span { border-color: #6b4c91; background: #f7f1ff; }
.kit-styles input:focus-visible + span { outline: 3px solid #3b73b9; outline-offset: 2px; }
.kit-styles b { font-size: 12px; }
.kit-styles small { font-size: 10px; color: #665b70; }
.kit-swatch { width: 28px; height: 32px; border: 2px solid #704766; border-radius: 4px; }
.swatch-color { background: radial-gradient(circle at 50% 35%,#ffd95a 5px,transparent 6px),linear-gradient(135deg,#ffadba 50%,#89c9ed 50%); }
.swatch-pastel { background: radial-gradient(circle at 50% 35%,#f5d1e4 5px,transparent 6px),#f9f5ed; border-style: double; }
.swatch-outline { background: radial-gradient(circle at 50% 35%,#fff 4px,#666 4px 5px,transparent 6px),#fff; border-color: #666; }
.kit-print-status:empty { display: none; }
.kit-preview { min-width: 0; }
.kit-preview-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
.kit-preview-head h3 { font-size: 18px; }
.kit-preview-head span { color: #766987; font-size: 12px; white-space: nowrap; }
.kit-sheets { --k1: #ba334a; --k2: #efae27; --k3: #3779b3; --kbg: #fff9ed; --kink: #30273d; --kpaper: #fffdf7; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
.kit-sheets[data-theme="princess"] { --k1:#a13875; --k2:#d6a247; --k3:#8561c4; --kbg:#fff3fa; }
.kit-sheets[data-theme="pirate"] { --k1:#294e69; --k2:#c49a42; --k3:#bc493e; --kbg:#fff7e9; }
.kit-sheets[data-theme="mermaid"] { --k1:#177670; --k2:#7fcbb7; --k3:#7652aa; --kbg:#f0faf7; }
.kit-sheets[data-theme="unicorn"] { --k1:#7850a1; --k2:#d29cb6; --k3:#69b9c9; --kbg:#faf4ff; }
.kit-sheets[data-theme="space"] { --k1:#394e88; --k2:#d9a33e; --k3:#778bc8; --kbg:#f3f5ff; }
.kit-sheet { box-sizing: border-box; position: relative; display: flex; flex-direction: column; align-items: center; overflow: hidden; padding: 30px 24px 22px; border: 3px solid var(--k1); border-radius: 18px; background: var(--kpaper); color: var(--k1); text-align: center; box-shadow: 0 15px 35px -26px #49385a; font-family: 'Host Grotesk',Arial,sans-serif; }
.kit-sheet::before { content:''; position: absolute; inset: 9px; background: none; opacity: 1; border: 1px dashed var(--k2); border-radius: 10px; pointer-events: none; }
.kit-sheet > * { position: relative; z-index: 1; }
.kit-invite { grid-column: 1 / -1; padding: 30px 40px 22px; }
.ks-art { display:block; flex-shrink:0; width:150px; height:123px; object-fit:contain; margin:0 auto 6px; }
.kit-door .ks-art, .kit-cert .ks-art { width:115px; height:94px; }
.kit-sheet p { margin: 0; }
.kit-sheet .ks-top { margin-top:8px; font-size:14px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.kit-sheet .ks-name { width:100%; margin-top:10px; font-size:clamp(38px,6vw,74px); font-weight:780; letter-spacing:-.04em; line-height:1.08; overflow-wrap:anywhere; }
.kit-sheet .ks-line { margin-top:10px; font-size:18px; color:var(--kink); overflow-wrap:anywhere; }
.kit-sheet .ks-facts { display:grid; gap:9px; width:100%; max-width:390px; margin:22px auto 0; text-align:left; }
.kit-sheet .ks-facts div { display:grid; grid-template-columns:58px minmax(0,1fr); gap:12px; padding-top:9px; border-top:1px solid var(--k2); }
.kit-sheet .ks-facts [hidden] { display:none!important; }
.kit-sheet .ks-facts dt { color:var(--k1); font-size:12px; font-weight:700; }
.kit-sheet .ks-facts dd { margin:0; font-size:16px; font-weight:500; color:var(--kink); overflow-wrap:anywhere; }
.kit-sheet .ks-hand { margin-top:18px; color:var(--k1); font-family:'Caveat',Georgia,serif; font-size:29px; font-weight:700; line-height:1.25; }
.kit-sheet .ks-arrow { margin-top:6px; color:var(--k1); font-size:64px; line-height:1; }
.kit-sheet .ks-blank { width:85%; height:42px; margin-top:18px; border-bottom:2px solid var(--k1); }
.kit-sheet .ks-brand { margin-top:24px; color:#726779; font-size:9px; letter-spacing:.03em; }
.kit-sheets[data-style="pastel"] { --kpaper: var(--kbg); }
.kit-sheets[data-style="pastel"] .kit-sheet { border-width:1px; border-radius:40px 8px 40px 8px; }
.kit-sheets[data-style="pastel"] .kit-sheet::before { border:3px double var(--k2); border-radius:32px 5px 32px 5px; }
.kit-sheets[data-style="pastel"] .ks-name { font-family:Georgia,serif; font-weight:400; letter-spacing:-.035em; }
.kit-sheets[data-style="pastel"] .ks-top { letter-spacing:.19em; }
.kit-sheets[data-style="outline"] { --k1:#343434; --k2:#777; --k3:#555; --kpaper:#fff; --kink:#222; }
.kit-sheets[data-style="outline"] .kit-sheet { border:2px solid #555; border-radius:8px; box-shadow:none; }
.kit-sheets[data-style="outline"] .kit-sheet::before { border:1px dotted #888; border-radius:3px; }
.kit-sheets[data-style="outline"] .ks-name { color:#fff; -webkit-text-stroke:1.5px #333; paint-order:stroke fill; }
.kit-guide { background:#fff; }
.kit-guide-grid { display:grid; gap:28px; }
.kit-guide p { margin-top:16px; color:#5d5269; }
.kit-steps { display:grid; gap:16px; margin:24px 0 0; padding-left:22px; }
.kit-steps li { padding-left:8px; color:#5d5269; }
.kit-steps b { color:#352640; }
.kit-tip { padding:28px; border:1px solid #dfd5e8; border-radius:24px; background:#faf5ff; }
.kit-tip h3 { font-size:24px; }
.kit-character-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.kit-character { display:block; min-width:0; padding:8px 8px 15px; border:2px solid transparent; border-radius:20px; text-decoration:none; transition:border-color .2s,background .2s; }
.kit-character:hover, .kit-character:focus-visible, .kit-character.is-match { border-color:#ad96d5; background:#fff; }
.kit-character > div { position:relative; overflow:hidden; border-radius:13px; }
.kit-character img { width:100%; height:auto; aspect-ratio:1 / 1.1; object-fit:cover; background:#eee9f4; }
.kit-character div span { position:absolute; bottom:8px; left:8px; padding:4px 8px; background:#fff; border-radius:6px; font-size:11px; color:#49345b; }
.kit-character h3 { margin:13px 5px 5px; font-size:20px; }
.kit-character p { margin:0 5px; color:#746383; font-size:12px; }
.kit-booking-note { display:flex; flex-direction:column; gap:22px; margin-top:32px; padding:28px; background:#e9def8; border-radius:22px; }
.kit-booking-note p { max-width:650px; margin-top:10px; color:#5d496f; }
.kit-booking-note .btn { align-self:flex-start; flex-shrink:0; }
.kit-faq { background:#fff; }
.kit-faq-inner { max-width:880px; }
.kit-faq h2 { margin-bottom:24px; }
@media (min-width:1000px) {
  .kit-maker-grid { grid-template-columns:350px minmax(0,1fr); gap:36px; }
  .kit-form { position:sticky; top:96px; }
  .kit-guide-grid { grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); gap:64px; }
  .kit-character-grid { grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; }
  .kit-character h3 { font-size:17px; }
  .kit-booking-note { flex-direction:row; align-items:center; justify-content:space-between; }
}
@media (max-width:600px) {
  .kit-sheets { grid-template-columns:minmax(0,1fr); }
  .kit-invite { padding:26px 24px 20px; }
  .kit-preview-head { align-items:flex-start; flex-direction:column; }
  .kit-preview-head h3 { font-size:20px; }
}
/* This stylesheet is also the only stylesheet in the private print frame. */
html.pcfk-kit-print, .pcfk-kit-print body { margin:0; padding:0; background:#fff; color:#30273d; color-scheme:light; }
.pcfk-kit-print .kit-sheets { display:block; }
@page party-kit { size:auto; margin:10mm; }
@media print {
  /* Direct browser printing also uses real layout isolation, without retained site height. */
  body.kit-page { background:#fff!important; margin:0!important; }
  body.kit-page * { visibility:visible; }
  body.kit-page > :not(main), body.kit-page main > :not(.kit-maker), body.kit-page .kit-intro, body.kit-page .kit-form, body.kit-page .kit-preview-head { display:none!important; }
  body.kit-page main, body.kit-page .kit-maker, body.kit-page .kit-maker-grid, body.kit-page .kit-preview { display:block!important; margin:0!important; padding:0!important; width:100%!important; max-width:none!important; }
  .kit-sheets { page:party-kit; position:static!important; display:block!important; width:100%!important; margin:0!important; }
  .kit-sheet { page:party-kit; display:flex!important; flex-direction:column; align-items:center; justify-content:center; width:100%; height:245mm; min-height:0!important; padding:10mm 15mm; margin:0!important; box-shadow:none; break-inside:avoid; break-after:page; -webkit-print-color-adjust:exact; print-color-adjust:exact; color-scheme:light; }
  .kit-sheet:last-child { break-after:auto; }
  .kit-sheet .ks-art, .kit-door .ks-art, .kit-cert .ks-art { width:55mm; height:45mm; margin:0 auto 3mm; }
  .kit-sheet .ks-top { font-size:12pt; }
  .kit-sheet .ks-name { margin-top:4mm; font-size:44pt; line-height:1.08; }
  .kit-sheet .ks-line { margin-top:3mm; font-size:15pt; }
  .kit-sheet .ks-facts { max-width:135mm; gap:3mm; margin-top:7mm; }
  .kit-sheet .ks-facts div { grid-template-columns:18mm minmax(0,1fr); gap:4mm; padding-top:3mm; }
  .kit-sheet .ks-facts dd { font-size:13pt; }
  .kit-sheet .ks-facts dt { font-size:10pt; }
  .kit-sheet .ks-hand { margin-top:6mm; font-size:23pt; }
  .kit-sheet .ks-blank { width:120mm; height:18mm; margin-top:8mm; }
  .kit-sheet .ks-brand { margin-top:9mm; font-size:8pt; }
  .kit-sheet .ks-arrow { margin-top:6mm; font-size:70pt; }
}
