/* Halloween costume party (Premium) — moonlit haunted manor, candlelit windows, ink and plum */
.t-boo { --bg: #1B1622; --surface: #241D2C; --surface-2: #2E2438; --ink: #EDE6D6; --ink-2: #BDB2C6; --accent: #F2A541; --accent-hover: #F6B85F; --accent-ink: #15111C; --accent-text: #F2A541; --tint: #3A2C45; --line: #3D3249; --line-strong: #5A4B68; --display: "Playfair Display", Georgia, serif; --body: "Figtree", system-ui, sans-serif; --radius: 6px; --shadow: rgba(0, 0, 0, .7); color-scheme: dark; }
.t-boo body, body.t-boo { background: var(--bg); color: var(--ink); }
.t-boo h1, .t-boo h2, .t-boo h3 { font-family: var(--display); color: var(--ink); }
.bo-hero { position: relative; overflow: hidden; isolation: isolate; min-height: min(96vh, 860px); display: grid; align-items: start; padding-top: clamp(50px, 9vw, 110px); text-align: center; }
.bo-scene { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; }
.bo-win rect, .bo-win circle { animation: flicker 3.2s steps(1, end) infinite; }
.bo-win rect:nth-child(2n) { animation-delay: -1.3s; } .bo-win rect:nth-child(3n) { animation-delay: -2.1s; }
@keyframes flicker { 0%, 100% { opacity: 1; } 42% { opacity: .55; } 44% { opacity: 1; } 71% { opacity: .75; } }
.bo-bats { animation: flap 6s var(--ease-inout, ease-in-out) infinite alternate; transform-origin: center; }
@keyframes flap { from { transform: translate(0, 0); } to { transform: translate(-30px, -14px); } }
.bo-pre { font: italic 400 20px/1.3 var(--display); color: #BDB2C6; }
.bo-hero h1 { margin-top: 10px; font: 900 clamp(58px, 11vw, 128px)/.9 var(--display); letter-spacing: -.02em; color: #EDE6D6; text-shadow: 0 0 40px rgba(242, 165, 65, .25); }
.bo-hero h1 em { font-weight: 400; color: #F2A541; }
.bo-when { margin-top: 16px; font: 600 14px/1.5 var(--body); letter-spacing: .14em; text-transform: uppercase; color: #D8CDE0; }
.bo-cta { margin-top: 22px; display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.t-boo .btn { border-radius: 4px; }
.t-boo .btn.line { color: #EDE6D6; border-color: rgba(237, 230, 214, .6); }
.bo-count { --count-bg: rgba(21, 17, 28, .7); --count-line: rgba(242, 165, 65, .45); justify-content: center; }
.bo-count b { color: #F2A541; }
.bo-sec { padding-block: clamp(56px, 8vw, 96px); }
.bo-sec h2 { font-size: clamp(36px, 5.5vw, 56px); font-style: italic; }
.bo-lede { margin-top: 6px; color: var(--ink-2); font-size: 17px; }
.bo-cards { margin-top: 26px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.bo-cards article { position: relative; padding: 26px 22px 24px; border-radius: 10px; background: var(--surface); border: 1px solid var(--line-strong); outline: 1px solid var(--line); outline-offset: -10px; text-align: center; }
.bo-num { font: italic 400 46px/1 var(--display); color: #F2A541; }
.bo-cards h3 { margin-top: 10px; font-size: 24px; }
.bo-cards p { color: var(--ink-2); margin-top: 6px; }
.bo-night { background: var(--surface-2); }
.bo-night-in { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(24px, 5vw, 60px); }
.bo-plan { list-style: none; margin: 18px 0 0; padding: 0; }
.bo-plan li { display: grid; grid-template-columns: 70px 1fr; gap: 12px; padding: 13px 0; border-bottom: 1px dashed var(--line-strong); font-size: 17px; }
.bo-plan b { color: #F2A541; font-family: var(--display); font-size: 19px; }
.bo-potion { padding: 26px; border-radius: 50% 50% 14px 14px / 22% 22% 14px 14px; background: #3B2147; text-align: center; }
.bo-potion h3 { font-size: 28px; font-style: italic; color: #F2A541; margin-bottom: 10px; }
.bo-potion p { margin-top: 8px; color: #E8DDF0; }
.bo-potion b { display: block; font-family: var(--display); font-size: 19px; color: #fff; }
.bo-small { font-size: 14px; color: #BDB2C6 !important; }
.bo-map { display: block; margin-top: 26px; padding: 16px 18px; border-radius: 8px; background: var(--bg); color: #F2A541; text-decoration: none; font-weight: 700; text-align: center; }
.bo-rsvp { text-align: center; }
.bo-sub { color: var(--ink-2); margin-top: 6px; }
.bo-rsvp .rsvp { margin-top: 24px; text-align: left; border-radius: 10px; }
.t-boo .rsvp input, .t-boo .rsvp textarea { background: #1B1622; color: var(--ink); }
.bo-foot { padding: 46px 20px 40px; text-align: center; background: #0B0910; color: #BDB2C6; font: italic 400 20px var(--display); }
.bo-foot .made { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; color: inherit; text-decoration: none; font: 500 14px var(--body); }
@media (max-width: 780px) { .bo-cards, .bo-night-in { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { .bo-win rect, .bo-win circle, .bo-bats { animation: none; } }
@media (max-width: 720px) { .bo-scene { left: 50%; width: 1100px; transform: translateX(-50%); } }
