:root{--ink:#130B21;--ink-2:#1C1230;--slate:#241A38;--lilac:#EAE4FB;--lilac-2:#DFD6F5;--violet:#8348FC;--azure:#287FFC;--ivory:#F7F4FD;--muted:#9C93B5;--line:rgba(234,228,251,.1);--gradient:linear-gradient(135deg,var(--violet),var(--azure))}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;background:var(--ink);color:var(--ivory);font-family:Inter,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3,.logo-lockup{font-family:Fredoka,sans-serif;line-height:1.08;letter-spacing:-.01em}.eyebrow{font:600 .72rem 'JetBrains Mono',monospace;letter-spacing:.14em;text-transform:uppercase;background:var(--gradient);background-clip:text;color:transparent}.site-header{height:72px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;background:rgba(19,11,33,.9);backdrop-filter:blur(18px)}.logo-lockup{display:flex;gap:10px;align-items:center;color:var(--ivory);text-decoration:none;font-size:1.2rem;font-weight:600}.logo-lockup img{width:32px;height:32px;border-radius:8px}.reminder-link{color:var(--muted);text-decoration:none;font-size:.88rem}.calendar-hero{padding:90px 6vw 76px;max-width:1500px;margin:auto;display:grid;grid-template-columns:1fr minmax(310px,430px);align-items:end;gap:65px}.hero h1{font-size:clamp(3rem,6vw,6.6rem);margin:18px 0 24px}.hero h1 span{background:var(--gradient);background-clip:text;color:transparent}.intro{max-width:650px;color:var(--muted);font-size:1.08rem}.next-event{background:var(--slate);border:1px solid var(--line);border-radius:22px;padding:26px;display:flex;align-items:end;justify-content:space-between;gap:24px;box-shadow:0 24px 70px rgba(0,0,0,.22)}.next-event>div:first-child{display:grid;gap:7px}.next-event>div>strong{font:600 1.35rem Fredoka}.next-event small{color:var(--muted)}.hero-days{text-align:right}.hero-days strong{display:block;font:700 3.5rem Fredoka;background:var(--gradient);background-clip:text;color:transparent;line-height:.9}.hero-days span{font:.7rem 'JetBrains Mono';color:var(--muted);text-transform:uppercase}.calendar-shell{background:var(--lilac);color:var(--ink);padding:90px 6vw 110px}.calendar-heading{max-width:1250px;margin:auto;display:flex;align-items:end;justify-content:space-between;gap:40px}.calendar-heading h2,.library-intro h2,.reminder-panel h2{font-size:clamp(2.2rem,4vw,4rem);margin:10px 0}.filters{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.filters button{font:600 .78rem Inter;border:1px solid rgba(19,11,33,.15);color:#625873;background:transparent;border-radius:999px;padding:10px 14px;cursor:pointer}.filters button.active{background:var(--ink);color:var(--ivory)}.calendar{max-width:1120px;margin:55px auto 0}.month-section{margin-bottom:52px}.month-divider{display:flex;align-items:center;gap:18px;margin:0 0 20px 71px}.month-divider span{font:600 .78rem 'JetBrains Mono';letter-spacing:.13em;text-transform:uppercase;color:var(--violet);white-space:nowrap}.month-divider i{height:1px;background:rgba(19,11,33,.14);width:100%}.month-events{position:relative}.month-events:before{content:'';position:absolute;left:27px;top:0;bottom:-52px;width:2px;background:linear-gradient(var(--violet),rgba(40,127,252,.18))}.timeline-event{display:grid;grid-template-columns:56px 1fr;gap:15px;position:relative;margin-bottom:14px}.timeline-marker{padding-top:24px;position:relative;z-index:2}.timeline-marker span{width:56px;height:56px;border-radius:18px;background:var(--gradient);display:grid;place-items:center;color:#fff;font-size:1.35rem;border:5px solid var(--lilac)}.event-card{background:var(--ivory);border:1px solid rgba(19,11,33,.1);border-radius:18px;padding:24px;display:grid;grid-template-columns:1fr auto;gap:20px;box-shadow:0 10px 30px rgba(42,26,66,.06)}.event-date{font:500 .7rem 'JetBrains Mono';text-transform:uppercase;letter-spacing:.08em;color:var(--violet);margin:0}.event-main h3{font-size:1.5rem;margin:5px 0}.event-main>p:not(.event-date){margin:0;color:#5b5268}.event-main small{display:block;color:#786e88;margin-top:9px}.days{text-align:right;align-self:center;min-width:95px}.days strong{display:block;font:700 2.35rem Fredoka;color:var(--violet);line-height:.9}.days span{font:.65rem 'JetBrains Mono';text-transform:uppercase;color:#786e88}.card-directions{grid-column:1/-1;border-top:1px solid rgba(19,11,33,.1);padding-top:14px}.card-directions summary,.personal-set summary{cursor:pointer;display:flex;justify-content:space-between;gap:15px;list-style:none;color:#493d59}.card-directions summary span,.personal-set summary span{font:600 1rem Fredoka}.card-directions summary b,.personal-set summary b{font:500 .65rem 'JetBrains Mono';text-transform:uppercase;color:var(--azure)}.card-directions ol{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;padding:16px 0 4px;margin:0;list-style:none}.card-directions li{font-size:.8rem;color:#60556e}.card-directions li span{font:500 .65rem 'JetBrains Mono';color:var(--violet);margin-right:8px}.card-directions>p{font-size:.7rem;color:#8b8296;margin:10px 0 0}.card-library{padding:100px 6vw;max-width:1500px;margin:auto}.library-intro{display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:end;margin-bottom:45px}.library-intro .eyebrow{grid-column:1/-1}.library-intro h2{margin:0}.library-intro p{color:var(--muted);max-width:55ch}.personal-set{background:var(--slate);border:1px solid var(--line);border-radius:16px;padding:22px;margin:12px 0}.personal-set summary{color:var(--ivory)}.personal-set>div{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 20px;padding-top:18px}.personal-set article{background:var(--ink-2);border-radius:10px;padding:12px;display:flex;gap:12px}.personal-set article span{font:.65rem 'JetBrains Mono';color:var(--azure)}.personal-set article strong{font-size:.82rem}.reminder-panel{background:var(--lilac-2);color:var(--ink);padding:100px 6vw;display:grid;grid-template-columns:1fr 1fr;gap:70px}.reminder-panel p{color:#5b5268;max-width:52ch}.reminder-panel form{display:flex;gap:8px;margin-top:25px}.reminder-panel input{flex:1;min-width:0;border:1px solid rgba(19,11,33,.14);background:var(--ivory);border-radius:10px;padding:14px;font:inherit}.reminder-panel button{border:0;border-radius:10px;background:var(--gradient);color:#fff;padding:14px 18px;font:600 1rem Fredoka}.form-status{font-size:.82rem}.date-note{max-width:1200px;margin:55px auto;padding:18px;color:var(--muted);font-size:.78rem;border:1px solid var(--line);border-radius:14px}footer{border-top:1px solid var(--line);padding:34px 6vw;color:var(--muted);font-size:.8rem;display:flex;justify-content:space-between}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:850px){.calendar-hero,.reminder-panel,.library-intro{grid-template-columns:1fr}.calendar-heading{display:block}.filters{justify-content:flex-start;margin-top:25px}.library-intro .eyebrow{grid-column:auto}.personal-set>div{grid-template-columns:1fr}}
@media(max-width:560px){.site-header{padding:0 18px}.calendar-hero{padding:60px 20px}.hero h1{font-size:3.25rem}.next-event{padding:20px}.calendar-shell,.card-library,.reminder-panel{padding:65px 18px}.month-divider{margin-left:47px}.month-events:before{left:19px}.timeline-event{grid-template-columns:40px 1fr;gap:9px}.timeline-marker{padding-top:22px}.timeline-marker span{width:40px;height:40px;border-radius:13px;border-width:4px}.event-card{padding:17px;grid-template-columns:1fr}.days{text-align:left}.days strong{display:inline;font-size:1.3rem;margin-right:5px}.card-directions ol{grid-template-columns:1fr}.reminder-panel form{display:grid}footer{display:grid;gap:8px}}

/* Compact calendar interaction */
.calendar-hero{padding-top:54px;padding-bottom:46px;grid-template-columns:1fr 390px}.hero h1{font-size:clamp(2.8rem,5vw,5rem);margin:13px 0 16px}.compact-shell{padding-top:48px;padding-bottom:58px;min-height:calc(100vh - 72px)}.compact-shell .calendar-heading{align-items:center}.compact-shell .calendar-heading h2{font-size:clamp(2rem,3vw,3rem);margin-bottom:0}.birthday-button{border:0;border-radius:12px;background:var(--gradient);color:#fff;padding:13px 19px;font:600 1rem Fredoka;cursor:pointer;box-shadow:0 8px 24px rgba(131,72,252,.22)}.unified-timeline{max-width:1250px;margin-top:30px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.compact-month{background:rgba(247,244,253,.7);border:1px solid rgba(19,11,33,.1);border-radius:14px;padding:13px;min-height:116px}.compact-month header{display:flex;align-items:baseline;gap:6px;margin-bottom:8px}.compact-month header strong{font:600 1rem Fredoka;color:var(--ink)}.compact-month header span{font:500 .6rem 'JetBrains Mono';color:#887d96}.compact-month>div{display:grid;gap:5px}.date-chip{display:grid;grid-template-columns:25px 1fr 18px;align-items:center;text-align:left;width:100%;border:0;background:#fff;border-radius:9px;padding:7px;color:var(--ink);cursor:pointer;transition:.15s}.date-chip:hover,.date-chip:focus-visible{transform:translateY(-1px);box-shadow:0 5px 16px rgba(19,11,33,.1);outline:2px solid var(--violet)}.chip-day{font:600 .75rem 'JetBrains Mono';color:var(--violet)}.chip-copy{min-width:0}.chip-copy b,.chip-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-copy b{font:600 .73rem Fredoka}.chip-copy small{font-size:.6rem;color:#81768f}.date-chip i{font-style:normal;color:var(--azure);font-weight:700}.drawer-backdrop{position:fixed;inset:0;background:rgba(19,11,33,.55);z-index:30;backdrop-filter:blur(3px)}.reminder-drawer{position:fixed;z-index:31;right:0;top:0;height:100vh;width:min(540px,100%);background:var(--ivory);color:var(--ink);padding:42px;overflow:auto;transform:translateX(102%);transition:transform .25s ease;box-shadow:-20px 0 70px rgba(0,0,0,.25)}.reminder-drawer[aria-hidden=false]{transform:translateX(0)}.drawer-close{position:absolute;right:22px;top:18px;border:0;background:transparent;font-size:2rem;color:#786e88;cursor:pointer}.reminder-drawer h2{font:600 2.5rem Fredoka;margin:10px 0}.drawer-copy{color:#675d74}.reminder-types{display:grid;grid-template-columns:1fr;gap:8px;margin:26px 0}.reminder-types button{border:1px solid rgba(19,11,33,.12);background:#fff;border-radius:11px;padding:13px;text-align:left;font:600 .9rem Fredoka;color:var(--ink);cursor:pointer}.reminder-types button.active{border-color:var(--violet);background:rgba(131,72,252,.08);box-shadow:inset 3px 0 var(--violet)}.person-row{display:grid;grid-template-columns:1fr 1fr 32px;gap:8px;align-items:end;margin:9px 0}.person-row label span{display:block;font-size:.67rem;color:#746a80;margin-bottom:4px}.person-row input{width:100%;border:1px solid rgba(19,11,33,.14);border-radius:9px;padding:11px;background:#fff;font:inherit}.person-row button{height:42px;border:0;background:transparent;color:#8b8196;font-size:1.2rem}.add-another{border:0;background:transparent;color:var(--violet);padding:10px 0;font-weight:600;cursor:pointer}.save-reminders{display:block;width:100%;border:0;border-radius:11px;background:var(--gradient);color:#fff;padding:14px;margin-top:18px;font:600 1rem Fredoka}.drawer-status{color:var(--violet);font-size:.85rem}.drawer-open{overflow:hidden}
.brand{display:flex;align-items:center;height:54px}.brand img{display:block;width:220px;max-width:42vw;max-height:50px;object-fit:contain;object-position:left center}
.calendar-hero{grid-template-columns:1fr minmax(390px,520px)}.next-events{display:grid;grid-template-columns:1fr 1fr;gap:10px}.next-events .next-event{width:100%;color:inherit;text-align:left;cursor:pointer;font:inherit;padding:18px;gap:10px;transition:.15s}.next-events .next-event:hover{border-color:var(--violet);transform:translateY(-2px)}.next-events .next-event>div:first-child strong{font-size:1rem}.next-events .hero-days strong{font-size:2.3rem}
@media(max-width:1050px){.unified-timeline{grid-template-columns:repeat(3,1fr)}}
@media(max-width:780px){.calendar-hero{grid-template-columns:1fr}.unified-timeline{grid-template-columns:repeat(2,1fr)}.birthday-button{margin-top:18px}.compact-shell .calendar-heading{display:block}}
@media(max-width:480px){.calendar-hero{padding:42px 18px}.hero h1{font-size:2.75rem}.compact-shell{padding:42px 14px}.unified-timeline{grid-template-columns:1fr 1fr;gap:7px}.compact-month{padding:9px}.date-chip{grid-template-columns:21px 1fr 12px;padding:6px}.chip-copy b{font-size:.68rem}.reminder-drawer{padding:36px 20px}.person-row{grid-template-columns:1fr 32px}.person-row label:nth-child(2){grid-column:1}.person-row button{grid-column:2;grid-row:1}}
.nav-actions{display:flex;align-items:center;gap:20px}.drawer-cards{margin:4px 0 22px}.drawer-cards h3{font-size:1rem;margin:0 0 10px}.drawer-cards>div{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.drawer-card-choice{border:2px solid transparent;background:#fff;border-radius:10px;padding:6px;cursor:pointer;color:var(--ink)}.drawer-card-choice.active{border-color:var(--violet)}.drawer-card-choice img{display:block;width:100%;height:110px;object-fit:cover;border-radius:7px}.drawer-card-choice span{display:block;font:600 .65rem Fredoka;margin:6px 2px 2px}.cards-hero{padding:90px 6vw 75px;max-width:1500px;margin:auto}.cards-hero h1{font-size:clamp(3.2rem,6vw,6rem);margin:16px 0}.cards-hero h1 span{background:var(--gradient);background-clip:text;color:transparent}.cards-hero p{color:var(--muted);max-width:620px;font-size:1.08rem}.cards-shop{background:var(--lilac);color:var(--ink);padding:70px 6vw 100px}.shop-heading{max-width:1400px;margin:0 auto 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}.shop-heading h2{font-size:2.6rem;margin:0}.card-filters{display:flex;gap:7px;flex-wrap:wrap}.card-filters button{border:1px solid rgba(19,11,33,.15);background:transparent;border-radius:999px;padding:9px 13px;color:#655b72;cursor:pointer}.card-filters button.active{background:var(--ink);color:#fff}.public-card-grid{max-width:1400px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.shop-card{background:var(--ivory);border:1px solid rgba(19,11,33,.1);border-radius:16px;padding:12px}.shop-image{height:410px;background:#ddd4ed;border-radius:11px;overflow:hidden}.shop-image img{width:100%;height:100%;object-fit:cover}.shop-image.square img{object-fit:contain;background:#eee7f6}.shop-card>div:last-child{padding:14px 6px 5px}.shop-card span{font:500 .65rem 'JetBrains Mono';text-transform:uppercase;color:var(--violet)}.shop-card h3{font-size:1.25rem;margin:5px 0 12px}.shop-card button{border:0;background:var(--ink);color:#fff;border-radius:9px;padding:10px 13px;font-weight:600;cursor:pointer}@media(max-width:900px){.public-card-grid{grid-template-columns:repeat(2,1fr)}.shop-image{height:340px}}@media(max-width:560px){.nav-actions{gap:10px}.nav-actions .reminder-link:last-child{display:none}.cards-hero{padding:60px 20px}.cards-shop{padding:50px 15px}.shop-heading{display:block}.card-filters{margin-top:18px}.public-card-grid{grid-template-columns:1fr 1fr;gap:8px}.shop-card{padding:7px}.shop-image{height:230px}.drawer-cards>div{grid-template-columns:repeat(2,1fr)}}
