.hub{--r-hero:64px 64px 14px 14px;--r-card:14px;--r-btn:999px;--bw:1px;--gap:1.4rem;--pad:1.3rem;--align:center;--justify:center;--tilt-a:0deg;--tilt-b:0deg;--hero-fill:var(--ink);--hero-text:var(--paper);--font-display:Constantia, "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;--font-body:"Segoe UI", -apple-system, "Helvetica Neue", Arial, sans-serif;--font-mono:"Cascadia Mono", Consolas, ui-monospace, monospace;--dim:color-mix(in srgb, var(--ink) 80%, var(--paper));--mute:color-mix(in srgb, var(--ink) 73%, var(--paper));--hair:color-mix(in srgb, var(--ink) 16%, transparent);--hair-2:color-mix(in srgb, var(--ink) 8%, transparent);--surface:color-mix(in srgb, var(--paper) 62%, #fff);background:var(--paper);color:var(--ink);font-family:var(--font-body);min-height:100vh}.hub[data-scheme=sticker]{--r-hero:24px;--r-card:20px;--r-btn:999px;--bw:2.5px;--gap:1.6rem;--tilt-a:-1deg;--tilt-b:.8deg;--font-display:"Trebuchet MS", "Segoe UI", Verdana, sans-serif}.hub[data-scheme=pennant]{--r-hero:0;--r-card:0;--r-btn:0;--gap:1.1rem;--align:left;--justify:start;--font-display:"Segoe UI Semibold", "Franklin Gothic Medium", "Arial Narrow", sans-serif}.hub[data-scheme=keepsake]{--r-hero:0;--r-card:0;--r-btn:0;--bw:0px;--gap:2.4rem;--pad:0;--hero-fill:transparent;--hero-text:var(--ink);--surface:transparent;--font-display:"Bodoni MT", Didot, Georgia, "Times New Roman", serif}.hub *{box-sizing:border-box}.hub .wrap{max-width:940px;margin:0 auto;padding:0 1.25rem}.hub .stack{gap:var(--gap);padding:var(--gap) 0 4rem;display:grid}.hub .pair{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1rem;display:grid}.hub .pair>.card:only-child .rows{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));column-gap:2rem}.hub .cards{gap:var(--gap);display:grid}@media (width>=761px){.hub .cards.flow-magazine{columns:2;column-gap:1.1rem;display:block}.hub .cards.flow-magazine>*{break-inside:avoid;margin-bottom:var(--gap)}.hub .cards.flow-magazine .pair{display:contents}.hub .cards.flow-magazine .pair>.card{break-inside:avoid;margin-bottom:var(--gap)}}.hub .cards.flow-line{gap:1.4rem;position:relative}.hub .cards.flow-line:before{content:"";background:repeating-linear-gradient(var(--a2) 0 10px, transparent 10px 20px);opacity:.6;width:3px;position:absolute;top:-.5rem;bottom:-.5rem;left:50%;transform:translate(-50%)}.hub .cards.flow-line .pair{display:contents}@media (width>=761px){.hub .cards.flow-line>.card,.hub .cards.flow-line .pair>.card{width:calc(50% - 1.7rem);position:relative}.hub .cards.flow-line>.card:nth-child(odd),.hub .cards.flow-line .pair>.card:nth-child(odd){justify-self:start}.hub .cards.flow-line>.card:nth-child(2n),.hub .cards.flow-line .pair>.card:nth-child(2n){justify-self:end}.hub .cards.flow-line>.card:after,.hub .cards.flow-line .pair>.card:after{content:"";background:var(--a1);border:3px solid var(--paper);border-radius:50%;width:13px;height:13px;position:absolute;top:1.15rem}.hub .cards.flow-line>.card:nth-child(odd):after,.hub .cards.flow-line .pair>.card:nth-child(odd):after{right:calc(-1.7rem - 8px)}.hub .cards.flow-line>.card:nth-child(2n):after,.hub .cards.flow-line .pair>.card:nth-child(2n):after{background:var(--a3);left:calc(-1.7rem - 8px)}}@media (width<=760px){.hub .cards.flow-line:before{left:6px;transform:none}.hub .cards.flow-line>.card,.hub .cards.flow-line .pair>.card{margin-left:1.4rem}}.hub .cards.flow-chapters{gap:0}.hub .cards.flow-chapters .pair{display:contents}.hub .cards.flow-chapters>.card,.hub .cards.flow-chapters .pair>.card{background:0 0;border:none;border-radius:0;justify-self:center;width:100%;max-width:620px;padding:2rem 1rem}.hub .cards.flow-chapters>:nth-child(2n){background:color-mix(in srgb, var(--surface) 60%, transparent)}.hub .cards.flow-chapters h2{text-align:center;font-size:1.35rem}.hub .cards.flow-chapters .card-sub{text-align:center}@media (width>=761px){.hub .cards.flow-bento{grid-template-columns:repeat(4,1fr);align-items:stretch;gap:.9rem}.hub .cards.flow-bento .pair{display:contents}.hub .cards.flow-bento>*,.hub .cards.flow-bento .pair>.card{grid-column:span 2}.hub .cards.flow-bento .fl-details{grid-row:span 2}.hub .cards.flow-bento .fl-sched{grid-column:span 4}}.hub .card.announce{border-left:6px solid var(--a1);background:color-mix(in srgb, var(--a2) 14%, var(--surface));font-weight:600}.hub h1,.hub h2,.hub h3{font-family:var(--font-display);text-wrap:balance;margin:0;font-weight:600;line-height:1.15}.hub p{margin:0}.hub :focus-visible{outline:3px solid var(--a2);outline-offset:2px}.hub .bunting{height:22px;display:flex;overflow:hidden}.hub .bunting i{clip-path:polygon(0 0,100% 0,50% 100%);flex:1 0 30px}.hub[data-scheme=keepsake] .bunting{display:none}.hub .bunting.swaying i{transform-origin:top;transform:rotate(var(--ft,0deg));animation:8s ease-in-out infinite flag-sway;animation-delay:var(--fd,0s);cursor:pointer;pointer-events:auto;background-image:linear-gradient(105deg,#ffffff2e,#0000001a)}.hub .bunting.swaying i.poked{animation:.55s ease-out flag-wobble,8s ease-in-out .55s infinite flag-sway}@keyframes flag-sway{0%{transform:rotate(calc(var(--ft,0deg) - 3.5deg))}14%{transform:rotate(calc(var(--ft,0deg) + 4deg))}30%{transform:rotate(calc(var(--ft,0deg) - 3deg))}44%{transform:rotate(calc(var(--ft,0deg) + 3.5deg))}56%{transform:rotate(calc(var(--ft,0deg) - 2.5deg))}66%{transform:rotate(calc(var(--ft,0deg) + 12deg))}76%{transform:rotate(calc(var(--ft,0deg) - 8deg))}86%{transform:rotate(calc(var(--ft,0deg) + 4.5deg))}to{transform:rotate(calc(var(--ft,0deg) - 3.5deg))}}@keyframes flag-wobble{0%{transform:rotate(calc(var(--ft,0deg) + 14deg))}40%{transform:rotate(calc(var(--ft,0deg) - 9deg))}70%{transform:rotate(calc(var(--ft,0deg) + 5deg))}to{transform:rotate(var(--ft,0deg))}}@media (prefers-reduced-motion:reduce){.hub .bunting.swaying i{animation:none}}.hub .garland{width:100%;height:78px;display:block}.hub[data-scheme=keepsake] .garland{display:none}.hub .balloons{width:160px;max-width:40%;height:200px;position:absolute;top:0;right:0}.hub .ground{width:100%;height:110px;margin-top:-2rem;display:block}.hub[data-scheme=keepsake] .ground{display:none}.hub h1.marq{background-color:#00000047;border-radius:12px;padding:1.15rem 1.9rem;position:relative}.mqb{pointer-events:none;background:#ffd97a;border-radius:50%;transition:opacity .12s linear;position:absolute;box-shadow:0 0 6px 1px #ffd97a8c}.hub .curtains{z-index:60;pointer-events:none;position:fixed;inset:0;overflow:hidden}.hub .curtains .curt{background:repeating-linear-gradient(90deg,#d62828 0 26px,#a61e20 26px 40px);width:52%;transition:transform 1.6s cubic-bezier(.65,0,.35,1);position:absolute;top:0;bottom:0}.hub .curtains .curt.l{border-right:6px solid #c98a16;left:-2%}.hub .curtains .curt.r{border-left:6px solid #c98a16;right:-2%}.hub .curtains.open .curt.l{transform:translate(-100%)}.hub .curtains.open .curt.r{transform:translate(100%)}.hub .hero{background:var(--hero-fill);color:var(--hero-text);border-radius:var(--r-hero);justify-items:var(--justify);text-align:var(--align);gap:.5rem;padding:2.4rem 1.5rem 2.6rem;display:grid;position:relative;overflow:hidden}.hub[data-scheme=sticker] .hero{border:var(--bw) solid var(--ink)}.hub[data-scheme=keepsake] .hero{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);border-radius:0}.hub .hero canvas{width:100%;height:100%;position:absolute;inset:0}.hub .hero>*{position:relative}.hub .crest{font-size:2.6rem;line-height:1}.hub[data-scheme=pennant] .crest{display:none}.hub .hero h1{font-size:clamp(1.9rem,5.5vw,2.9rem)}.hub .hero .sub{color:color-mix(in srgb, var(--hero-text) 74%, transparent);font-size:1.05rem}.hub .countdown{gap:.5rem;justify-content:var(--justify);flex-wrap:wrap;margin-top:.8rem;display:flex}.hub .cd{background:color-mix(in srgb, var(--hero-text) 9%, transparent);border:1px solid color-mix(in srgb, var(--a2) 42%, transparent);border-radius:calc(var(--r-card) * .7);min-width:72px;padding:.5rem .85rem}.hub .cd b{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--a2);font-size:1.6rem;font-weight:600;line-height:1;display:block}.hub .cd span{letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb, var(--hero-text) 58%, transparent);margin-top:.25rem;font-size:.7rem;display:block}.hub[data-scheme=keepsake] .cd{border-color:color-mix(in srgb, var(--ink) 22%, transparent);background:0 0}.hub[data-scheme=keepsake] .cd b{color:var(--ink)}.hub .quicklinks{grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:.7rem;display:grid}.hub .ql{text-align:center;color:var(--ink);background:var(--surface);border:var(--bw) solid var(--hair);border-bottom:3px solid var(--ql-c,var(--a1));border-radius:var(--r-card);justify-items:center;gap:.25rem;max-width:320px;padding:1rem .6rem;font-size:.92rem;font-weight:600;text-decoration:none;transition:transform .14s;display:grid}.hub .ql:hover{transform:translateY(-2px)}.hub .ql .ico{font-size:1.5rem;line-height:1}.hub .ql small{color:var(--mute);font-size:.74rem;font-weight:400}.hub[data-scheme=sticker] .ql{border:var(--bw) solid var(--ink)}.hub[data-scheme=keepsake] .ql{border:0;border-bottom:1px solid var(--hair);background:0 0}.hub .card{background:var(--surface);border:var(--bw) solid var(--hair);border-radius:var(--r-card);padding:1.15rem 1.25rem}.hub[data-scheme=sticker] .card{border-color:var(--ink)}.hub[data-scheme=sticker] .pair>.card:first-child{transform:rotate(var(--tilt-a))}.hub[data-scheme=sticker] .pair>.card:last-child:not(:only-child){transform:rotate(var(--tilt-b))}.hub[data-scheme=pennant] .card{border-left:4px solid var(--a3)}.hub[data-scheme=keepsake] .card{border:0;border-top:1px solid var(--hair);background:0 0;padding:1.1rem 0 0}.hub .card>h2{font-size:1.2rem}.hub .card .card-sub{color:var(--mute);margin-top:.1rem;font-size:.85rem}.hub .rows{margin-top:.7rem;display:grid}.hub .row{border-bottom:1px dashed var(--hair);gap:.85rem;padding:.6rem 0;display:flex}.hub .row:last-child{border-bottom:0}.hub .row dt{letter-spacing:.1em;text-transform:uppercase;color:var(--mute);flex:none;width:84px;margin:0;padding-top:.2rem;font-size:.7rem}.hub .row dd{margin:0;font-size:.98rem}.hub .row dd small{color:var(--mute);font-size:.84rem;display:block}.hub .wall{flex-wrap:wrap;gap:.4rem;margin-top:.8rem;display:flex}.hub .av{width:38px;height:38px;font-family:var(--font-display);color:#fff;border-radius:50%;place-items:center;font-size:.82rem;font-weight:700;display:grid}.hub .av.pending{border:2px dashed var(--hair);color:var(--mute);background:0 0}.hub .timeline{margin-top:.7rem;display:grid}.hub .tl{grid-template-columns:78px 16px 1fr;gap:.7rem;display:grid}.hub .tl .t{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--mute);padding-top:.4rem;font-size:.82rem}.hub .tl .m{justify-items:center;display:grid}.hub .tl .m i{background:var(--a2);width:11px;height:11px;box-shadow:0 0 0 3px var(--paper);border-radius:50%;margin-top:.55rem}.hub .tl .m:after{content:"";background:var(--hair);width:2px;height:calc(100% - 14px)}.hub .tl:last-child .m:after{display:none}.hub .tl .b{padding:.3rem 0 1rem}.hub .tl .b strong{font-size:.98rem;display:block}.hub .tl .b span{color:var(--mute);font-size:.85rem}.hub .gifts{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.7rem;margin-top:.8rem;display:grid}.hub .gift{background:var(--surface);border:var(--bw) solid var(--hair);border-radius:var(--r-card);flex-direction:column;max-width:280px;display:flex;overflow:hidden}.hub .gift .thumb{background:color-mix(in srgb, var(--a2) 16%, var(--paper));place-items:center;height:84px;font-size:2rem;display:grid}.hub .gift .g{flex:1;gap:.2rem;padding:.6rem .7rem;display:grid}.hub .gift .g b{font-size:.88rem;font-weight:600;line-height:1.3}.hub .gift .g .meta{color:var(--mute);justify-content:space-between;gap:.4rem;font-size:.74rem;display:flex}.hub .gift.taken{opacity:.6}.hub .gift.taken .thumb{filter:grayscale()}.hub .btn{appearance:none;cursor:pointer;font-family:var(--font-body);border-radius:var(--r-btn);background:var(--a1);color:#fff;box-shadow:0 3px 0 0 color-mix(in srgb, var(--a1) 70%, #000);border:0;padding:.6rem 1.15rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:transform .1s;display:inline-block}.hub .btn:active{box-shadow:none;transform:translateY(2px)}.hub .btn.ghost{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--hair);background:0 0}.hub .btn.small{padding:.4rem .85rem;font-size:.84rem}.hub .note{color:var(--dim);background:color-mix(in srgb, var(--a4) 9%, transparent);border:1px solid color-mix(in srgb, var(--a4) 28%, transparent);border-radius:calc(var(--r-card) * .6);align-items:flex-start;gap:.6rem;margin-top:.9rem;padding:.7rem .85rem;font-size:.88rem;display:flex}.hub footer{text-align:var(--align);color:var(--mute);padding:2rem 0 3rem;font-size:.84rem}@media (prefers-reduced-motion:reduce){.hub *,.hub :before,.hub :after{transition:none!important;animation:none!important}}
