@font-face{font-family:LibreBaskerville;src:url('/_brand/fonts/libre-baskerville.ttf');font-weight:400 700;font-display:swap}
@font-face{font-family:Cormorant;src:url('/_brand/fonts/cormorant.ttf');font-weight:300 700;font-display:swap}
@font-face{font-family:Manrope;src:url('/_brand/fonts/manrope.ttf');font-weight:200 800;font-display:swap}
@font-face{font-family:SourceSans3;src:url('/_brand/fonts/source-sans-3.ttf');font-weight:200 900;font-display:swap}
@font-face{font-family:GreatVibes;src:url('/_brand/fonts/great-vibes.ttf');font-weight:400;font-display:swap}
body[data-font=civic]{--event-display:LibreBaskerville;--event-copy:SourceSans3}body[data-font=executive]{--event-display:Manrope;--event-copy:SourceSans3}body[data-font=signature]{--event-display:Cormorant;--event-copy:Manrope}body[data-font=blacktie]{--event-display:Cormorant;--event-copy:SourceSans3}body[data-font=romantic]{--event-display:GreatVibes;--event-copy:DM}body[data-font=heritage]{--event-display:LibreBaskerville;--event-copy:Manrope}
body[data-pairing=extended]{font-family:var(--event-copy),DM,sans-serif}body[data-pairing=extended] h1,body[data-pairing=extended] h2,body[data-pairing=extended] h3,body[data-pairing=extended] .hero h1,body[data-pairing=extended] .event-identity,body[data-pairing=extended] .portrait-frame figcaption,body[data-pairing=extended] .date-stamp span:first-child,body[data-pairing=extended] .art-note,body[data-pairing=extended] .person-copy h3,body[data-pairing=extended] .puzzle-result{font-family:var(--event-display),Georgia,serif;font-weight:500;letter-spacing:-.025em}body[data-pairing=extended] .intro{font-family:var(--event-copy),DM,sans-serif;font-size:16px}body[data-font=executive] .hero h1{font-weight:700;letter-spacing:-.05em}body[data-font=romantic] .hero h1{font-size:clamp(65px,8vw,106px);line-height:1.2;letter-spacing:0;font-weight:400}body[data-font=romantic] .event-identity{font-size:32px;line-height:1.2}
.palette-grid{max-height:290px;overflow-y:auto;padding:4px;scrollbar-width:thin;overscroll-behavior:contain}.palette-filter{display:flex;gap:18px;align-items:end;justify-content:space-between}.palette-filter label{flex:1}.palette-filter .form-note{flex:1;margin-bottom:12px}.typography-sample{background:var(--soft);border:1px solid var(--line);padding:22px;border-radius:8px}.typography-sample h3{font-size:32px;line-height:1.25;margin-bottom:10px}.typography-sample p{font-size:13px;line-height:1.7;margin-bottom:0}.custom-scope-note{font-size:12px;line-height:1.7;background:var(--soft);padding:16px;border-radius:6px;margin-top:14px}
.wishes{display:block;margin-top:14px;min-width:0}.wish-stream{min-width:0}.wish-stream-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:14px}.wish-stream-toolbar .kicker{margin-bottom:7px}.wish-count{font-size:10px;color:var(--muted);margin:0;line-height:1.5}.wish-stream-actions{display:flex;gap:15px;flex-shrink:0}.wish-stream-actions button{font-size:11px;min-height:40px;padding:5px 0}.wish-viewport{height:470px;overflow:hidden;position:relative;isolation:isolate;padding:16px 9px 0;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 16px,#000 calc(100% - 35px),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 16px,#000 calc(100% - 35px),transparent 100%)}.wish-track{display:flex;flex-direction:column;gap:18px;will-change:transform}.wish-bubble{position:relative;margin:0 22px 0 0;padding:22px 24px;border:1px solid var(--line);background:var(--card);border-radius:22px 22px 22px 5px;box-shadow:0 8px 28px #101b1608;overflow-wrap:anywhere;flex-shrink:0}.wish-bubble.from-right{margin:0 0 0 24px;background:var(--soft);border-radius:22px 22px 5px 22px}.wish-bubble:after{content:'';position:absolute;width:13px;height:13px;left:-6px;bottom:12px;rotate:45deg;background:var(--card);border-left:1px solid var(--line);border-bottom:1px solid var(--line)}.wish-bubble.from-right:after{left:auto;right:-6px;background:var(--soft);border-left:0;border-bottom:0;border-right:1px solid var(--line);border-top:1px solid var(--line)}.wish-bubble-head{display:flex;align-items:center;gap:10px;margin-bottom:13px}.wish-avatar{display:grid;place-content:center;width:29px;height:29px;border-radius:50%;background:var(--ink);color:var(--paper);font-size:9px;letter-spacing:.02em;flex-shrink:0}.wish-sender{font-size:11px;font-weight:600;line-height:1.5}.wish-bubble blockquote{font-family:var(--event-copy,DM),sans-serif;font-size:15px;line-height:1.7;margin:0;white-space:pre-wrap;color:var(--ink)}.wish-read-list{display:flex;flex-direction:column;gap:18px;padding:10px 9px}.wish-feed-note{font-size:10px;line-height:1.7;color:var(--muted);margin-top:18px}.wish-viewport:hover{cursor:default}.wish-stream-actions button[aria-pressed=true]{font-weight:700;text-decoration:underline;text-underline-offset:5px}.wish-read-list .wish-bubble{box-shadow:none}
@media(max-width:700px){body[data-font=romantic] .hero h1{font-size:clamp(58px,15vw,82px)}.palette-grid{max-height:275px}.palette-filter{display:block}.palette-filter .form-note{margin:10px 0}.wish-viewport{height:390px}.wish-stream-toolbar{flex-wrap:wrap;gap:5px}.wish-stream-actions{gap:22px}.wish-bubble{padding:18px 19px;margin-right:12px}.wish-bubble.from-right{margin-left:14px}.wish-bubble blockquote{font-size:14px}.typography-sample h3{font-size:28px}}
body[data-font=romantic] h1,body[data-font=romantic] h2{line-height:1.25;letter-spacing:0}

/* Event colours override template-specific paint; composition stays unchanged. */
body[data-palette=chosen] .portrait-frame{border:1px solid var(--line)}
body[data-palette=chosen] .button.secondary:hover{background:var(--soft);color:var(--ink);border-color:var(--accent)}
body[data-palette=chosen] .puzzle-tile[aria-pressed=true]{outline-color:var(--highlight)}
body[data-palette=chosen] .puzzle-tile.correct:after{background:var(--accent);border-color:var(--paper)}
body[data-palette=chosen] .preview-banner{background:var(--soft);color:var(--ink)}
body[data-palette=chosen] .preview-banner button{color:var(--ink);border-color:var(--accent)}
body[data-palette=chosen] .preview-banner button:hover{background:var(--card)}
.palette-filter{flex-wrap:wrap}.palette-filter label{min-width:180px}.palette-filter .form-note{flex-basis:100%;margin:0}
.palette-choice{min-height:94px}.palette-choice:hover{border-color:var(--accent)}
@media(max-width:700px){.palette-filter label+label{margin-top:12px}}

.home-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;white-space:nowrap;text-decoration:none;font-size:12px;padding:10px 14px;border:1px solid var(--line);border-radius:30px;flex-shrink:0}.home-link:hover{background:var(--soft)}
.strip-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding-bottom:28px;align-items:start}.strip-tile{margin:0;padding:12px;background:var(--card);border:1px solid var(--line);border-radius:9px}.strip-tile button{border:0;background:var(--soft);padding:0;display:block;width:100%;cursor:zoom-in}.strip-tile img{width:100%;height:auto;object-fit:contain}.strip-tile figcaption{font-size:11px;color:var(--muted);margin:12px 0 3px}#strip-dialog-image{max-height:70vh;max-width:100%;width:auto;margin:auto;object-fit:contain}#strip-dialog{max-width:650px}
@media(max-width:1100px){.masthead{gap:14px}.masthead nav{gap:16px}.event-identity{font-size:21px}.strip-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.masthead{justify-content:space-between}.masthead .event-identity{max-width:calc(100% - 95px)}.home-link{padding:8px 12px;font-size:11px}.strip-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.strip-tile{padding:8px}}
