#bloom-reveal.revealed {position:relative; top:0; transform:none;}
/* =============================================================
   Engagement Microsite Styles
   Lakshmikanth & Maanya
   ============================================================= */
:root {
  --indigo:#2F4B8A;
  --saffron:#F5B642;
  --green:#4B7F52;
  --off:#FAF7F2;
  --dark:#2B2B2E;
  --petal:#f2d9a6;
  --white:#FFFFFF;
  --terminal-bg:#0d1117;
  --terminal-border:#1f2730;
  --terminal-text:#dfe4ec;
  --intro-accent:#5B7DDC;
  --radius:14px;
  --radius-sm:6px;
  --transition:0.6s cubic-bezier(.16,.8,.27,1);
  --font-sans:'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, 'Helvetica Neue', Arial, sans-serif;
  --font-head:'Poppins','Manrope', var(--font-sans);
  --font-accent:'Playfair Display', var(--font-head);
  --shadow:0 4px 16px -4px rgba(0,0,0,.16),0 2px 4px -2px rgba(0,0,0,.2);
  --gradient-hero:linear-gradient(135deg,#2F4B8A 0%, #5B7DDC 55%, #F5B642 100%);
  --bg-pattern:radial-gradient(circle at 8px 8px, rgba(245,182,66,0.15) 1px, transparent 1px), radial-gradient(circle at 28px 28px, rgba(47,75,138,0.08) 1px, transparent 1px);
  --focus-ring:0 0 0 3px rgba(245,182,66,.5),0 0 0 6px rgba(47,75,138,.4);
}

html {scroll-behavior:smooth;} 
body {
  margin:0; font-family:var(--font-sans); background:var(--off); color:var(--dark); line-height:1.5; -webkit-font-smoothing:antialiased;
  background-image:var(--bg-pattern); background-size:36px 36px, 36px 36px;
  overflow-x:hidden; /* prevent horizontal scroll */
}

body.dark {background:var(--dark); color:var(--off);} /* fallback toggle class (not used yet) */

/* Intro Overlay --------------------------------------------------------- */
.intro-overlay {position:fixed; inset:0; background:radial-gradient(circle at 40% 40%, #101722, #05070b 70%); display:flex; align-items:center; justify-content:center; z-index:1200; font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; color:var(--terminal-text); letter-spacing:.25px;}
.intro-overlay[data-state="finished"] {pointer-events:none;}
.intro-terminal {width:clamp(320px,70vw,760px); background:var(--terminal-bg); border:1px solid var(--terminal-border); border-radius:18px; box-shadow:0 18px 60px -20px rgba(0,0,0,.65),0 4px 18px -4px rgba(0,0,0,.5); display:flex; flex-direction:column; overflow:hidden; position:relative;}
.intro-header {display:flex; align-items:center; gap:.55rem; padding:.55rem .9rem; background:#141c27; border-bottom:1px solid #182330; font-size:.65rem; letter-spacing:.6px; text-transform:uppercase; position:relative;}
.intro-header .dot {width:12px; height:12px; border-radius:50%; display:inline-block; box-shadow:0 0 0 1px #0008 inset, 0 2px 4px -1px #000;}
.intro-header .dot.red {background:#ff5f56;}
.intro-header .dot.amber {background:#ffbd2e;}
.intro-header .dot.green {background:#27c93f;}
.intro-hint {margin-left:auto; font-weight:600; opacity:.65; animation:hintPulse 2.4s ease-in-out infinite;}
@keyframes hintPulse {0%,100%{opacity:.35;} 50%{opacity:1;}}
.intro-skip {background:linear-gradient(135deg,var(--indigo),var(--saffron)); color:#fff; border:none; font-size:.6rem; padding:.35rem .6rem .4rem; border-radius:1rem; cursor:pointer; font-weight:600; letter-spacing:.5px; box-shadow:0 2px 6px -2px rgba(0,0,0,.6); margin-left:.75rem;}
.intro-skip:hover {filter:brightness(1.1);} 
.intro-skip:focus {outline:none; box-shadow:0 0 0 2px #fff,0 0 0 5px var(--saffron);} 
.intro-body {padding:1rem 1.1rem 1.4rem; font-size:.9rem; line-height:1.35; min-height:200px; display:flex; flex-direction:column; gap:.45rem; position:relative;}
.intro-line {margin:0; font-family:inherit; background:transparent; color:var(--terminal-text);}
.intro-line.static {opacity:.85;}
.intro-line.faded {opacity:.4; transition:opacity .55s ease;}
.intro-line.typing {white-space:pre;}
.intro-line .added {color:var(--saffron); filter:drop-shadow(0 0 3px rgba(245,182,66,.6));}
.intro-line.space-shift {display:inline-block;}
.intro-cursor {display:inline-block; width:0.65ch; background:var(--intro-accent); margin-left:2px; animation:blink 1s steps(1) infinite;}
@keyframes blink {0%,50%{opacity:1;} 50.01%,100%{opacity:0;}}
.intro-overlay.fade-out {animation:introFadeOut .65s ease forwards;}
@keyframes introFadeOut {0%{opacity:1;} 100%{opacity:0; visibility:hidden;}}

@media (prefers-reduced-motion: reduce) {
  .intro-overlay, .intro-overlay * {animation:none !important; transition:none !important;}
  .intro-cursor {display:none;}
}

/* End Intro Overlay ----------------------------------------------------- */

h1, h2, h3, h4 {font-family:var(--font-head); line-height:1.15; letter-spacing:.5px;}
.accent-name {font-family:var(--font-accent); font-style:italic; font-weight:600;}

p {max-width:70ch;}
.lead {font-size:1.12rem;}

/* Hero */
#hero {min-height:100dvh; display:grid; place-items:center; text-align:center; position:relative; padding:4rem 1.25rem 3rem; background:var(--gradient-hero); color:var(--off); overflow:hidden;}
#hero:before {content:""; position:absolute; inset:0; background:linear-gradient( rgba(0,0,0,.15), rgba(47,75,138,.5) ); mix-blend-mode:overlay; pointer-events:none;}
.hero-inner {position:relative; z-index:1; max-width:960px;}
.hero-inner.hero-has-bloom {padding-top:5.5rem;}
/* Bloom names now sole heading */
#bloom-reveal {z-index:8; position:absolute; top:8%; left:50%; transform:translateX(-50%); width:100%; pointer-events:none;}
#bloom-reveal .bloom-names {z-index:9; margin:0 auto 1.5rem; position:relative;}
#countdown {position:relative; z-index:3; margin-top:2.5rem;}

/* Decorative linked rings */
.hero-rings {position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:none; z-index:0; opacity:.55;}
.hero-rings .rings-svg {width: clamp(240px,55vw,520px); height:auto; animation:floatRings 16s ease-in-out infinite;}
.ring-pair .ring-a, .ring-pair .ring-b {stroke-linecap:round;}
@keyframes floatRings {0%,100%{transform:translateY(0);} 50%{transform:translateY(14px);} }

@media (max-width:600px){
  .hero-primary-name {font-size:1.9rem;}
  .hero-rings {opacity:.42;}
}
.hero-tagline {font-weight:500; margin-top:.5rem;}

/* Countdown */
#countdown {margin-top:2.25rem;}
.countdown-status {margin-bottom:1rem; font-size:.95rem; font-weight:500; letter-spacing:.5px; opacity:.9;}
.countdown-grid {display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1.25rem; max-width:900px; margin-inline:auto;}
.time-unit {background:rgba(255,255,255,.08); backdrop-filter:blur(6px); padding:1rem .75rem 1.25rem; border-radius:var(--radius); position:relative; box-shadow:0 2px 10px -4px rgba(0,0,0,.4);}
.time-unit .label {display:block; margin-top:.65rem; font-size:.8rem; letter-spacing:1px; text-transform:uppercase; font-weight:600;}

/* Rings */
.ring {width:90px; height:90px; display:block; margin:0 auto .5rem;}
.ring circle {fill:none; stroke-width:8;}
.ring .bg {stroke:rgba(255,255,255,.2);} 
.ring .fg {stroke:var(--saffron); stroke-linecap:round; stroke-dasharray: 282.743; stroke-dashoffset:0; transition:stroke-dashoffset .6s ease, stroke .6s ease;}

/* Digits / Flip */
.digits {display:flex; justify-content:center; gap:.4rem; font-size:2.8rem; font-weight:600; font-variant-numeric:tabular-nums;}
.flip-card {position:relative; width:1.8ch; height:2.4em; perspective:800px;}
.flip-card span {position:absolute; inset:0; display:flex; align-items:center; justify-content:center; backface-visibility:hidden; border-radius:.35rem; background:rgba(255,255,255,.15); box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);}
.flip-card .back {transform:rotateX(180deg);} 
.flip-card.flipping {animation:flip 0.7s ease both;}
@keyframes flip {0%{transform:rotateX(0);} 49%{transform:rotateX(-179deg);} 50%{transform:rotateX(-180deg);} 100%{transform:rotateX(-360deg);} }

/* Glow pulse when unit rolls */
.time-unit.pulse {box-shadow:0 0 0 0 rgba(245,182,66,.8); animation:pulseGlow 1s ease;}
@keyframes pulseGlow {0%{box-shadow:0 0 0 0 rgba(245,182,66,.9);} 100%{box-shadow:0 0 0 20px rgba(245,182,66,0);} }

.no-js {font-size:.9rem; margin-top:1rem;}

/* Post-countdown actions */
.post-actions {margin-top:1.4rem; display:flex; gap:.85rem; flex-wrap:wrap; justify-content:center; opacity:0; transform:translateY(6px); transition:opacity .5s ease, transform .5s ease;}
.post-actions.visible {opacity:1; transform:translateY(0);} 
.action-btn {--btn-accent:var(--saffron); --btn-accent-alt:var(--indigo); position:relative; background:linear-gradient(135deg, rgba(255,255,255,.9), rgba(255,255,255,.75)); border:1px solid rgba(47,75,138,.25); padding:.7rem 1.05rem; border-radius:calc(var(--radius-sm) + 2px); font-size:.78rem; font-weight:600; letter-spacing:.65px; cursor:pointer; display:inline-flex; align-items:center; gap:.45rem; box-shadow:0 3px 10px -4px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.25) inset; color:#1d2940; text-shadow:0 1px 0 rgba(255,255,255,.5); backdrop-filter:blur(4px);}
.action-btn:before {content:""; position:absolute; inset:0; border-radius:inherit; padding:1px; background:linear-gradient(120deg,var(--indigo),var(--saffron)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; opacity:.85; pointer-events:none;}
.action-btn:hover {background:linear-gradient(135deg, rgba(255,255,255,1), rgba(255,255,255,.85)); box-shadow:0 4px 14px -4px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.4) inset;}
.action-btn:focus {outline:none; box-shadow:0 0 0 2px rgba(255,255,255,.9), 0 0 0 5px rgba(245,182,66,.55);} 
.action-btn:active {transform:translateY(1px); box-shadow:0 2px 6px -3px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.4) inset;} 
.action-calendar {--btn-accent:var(--saffron);}
.action-share {--btn-accent:var(--indigo);} 
.action-calendar {background:linear-gradient(135deg,rgba(245,182,66,.18),rgba(245,182,66,.06)), linear-gradient(135deg,#fff,#f4efe3);} 
.action-share {background:linear-gradient(135deg,rgba(47,75,138,.18),rgba(47,75,138,.06)), linear-gradient(135deg,#fff,#eef2fb);} 
.action-calendar:hover {background:linear-gradient(135deg,rgba(245,182,66,.22),rgba(245,182,66,.08)), linear-gradient(135deg,#fff,#f9f4e9);} 
.action-share:hover {background:linear-gradient(135deg,rgba(47,75,138,.22),rgba(47,75,138,.08)), linear-gradient(135deg,#fff,#f2f5fc);} 
.action-btn:active {filter:brightness(.97);} 
@media (prefers-color-scheme: dark){
  .action-btn {color:#f2f6ff; background:linear-gradient(135deg, rgba(31,41,54,.85), rgba(21,28,40,.85)); border:1px solid rgba(255,255,255,.1); text-shadow:none;}
  .action-btn:before {background:linear-gradient(120deg,var(--saffron),var(--indigo)); opacity:.6;}
  .action-calendar {background:linear-gradient(135deg,rgba(245,182,66,.22),rgba(245,182,66,.08)), linear-gradient(135deg,#172132,#101826);} 
  .action-share {background:linear-gradient(135deg,rgba(47,75,138,.28),rgba(47,75,138,.1)), linear-gradient(135deg,#172132,#101826);} 
  .action-calendar:hover {background:linear-gradient(135deg,rgba(245,182,66,.3),rgba(245,182,66,.1)), linear-gradient(135deg,#1c2739,#101826);} 
  .action-share:hover {background:linear-gradient(135deg,rgba(47,75,138,.35),rgba(47,75,138,.12)), linear-gradient(135deg,#1c2739,#101826);} 
}

/* Sections */
section {padding:4.5rem 1.25rem; position:relative;}
.section-inner {max-width:1100px; margin:0 auto;}
#details .event-facts {list-style:none; padding:0; margin:0 0 2rem; display:grid; gap:.65rem;}
#details .event-facts li {background:var(--white); padding:.75rem 1rem; border-radius:var(--radius-sm); box-shadow:var(--shadow); border:1px solid rgba(0,0,0,.05);} 

.map-wrapper {margin-top:1rem;}
.map-ratio {position:relative; width:100%; aspect-ratio:16/9; background:#ddd; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow);} 
.map-ratio iframe {position:absolute; inset:0; width:100%; height:100%; border:0;}

/* Journey commit timeline */
.journey-timeline {position:relative; display:grid; gap:2.4rem; margin:2.2rem 0 0; padding-left:1.2rem;}
.journey-timeline:before {content:""; position:absolute; left:.35rem; top:0; bottom:0; width:3px; background:linear-gradient(var(--indigo), var(--saffron)); border-radius:4px;}
.commit {display:flex; gap:1rem; position:relative; opacity:0; transform:translateY(25px); transition:var(--transition);}
.commit.in-view {opacity:1; transform:none;}
.commit .node {flex:0 0 2.3rem; height:2.3rem; display:flex; align-items:center; justify-content:center; background:var(--indigo); color:#fff; font-weight:600; border-radius:50%; box-shadow:0 0 0 4px #fff,0 0 0 8px rgba(47,75,138,.25); position:relative; z-index:1; font-size:.85rem;}
.commit-body {background:linear-gradient(135deg,rgba(47,75,138,.06),rgba(245,182,66,.18)), #ffffff; border:1px solid rgba(47,75,138,.28); border-radius:18px; padding:1rem 1.1rem 1.2rem; box-shadow:0 6px 18px -8px rgba(47,75,138,.35); position:relative; flex:1;}
.commit-body:before {content:""; position:absolute; inset:0; border-radius:inherit; padding:1px; background:linear-gradient(135deg, var(--indigo), var(--saffron)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude;}
.commit-body h3 {margin:.1rem 0 .5rem; font-size:1.05rem; background:linear-gradient(90deg,var(--indigo),var(--saffron)); -webkit-background-clip:text; background-clip:text; color:transparent;}
.commit-body .muted {margin:0 0 .7rem; font-size:.75rem; letter-spacing:.35px; line-height:1.35; opacity:.85; color:#2b2b2e;}
.code-snippet {margin:0; background:#0f1725; color:#f8faff; font-size:.7rem; padding:.55rem .7rem; border-radius:10px; font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; box-shadow:0 0 0 1px rgba(255,255,255,.08), 0 4px 8px -4px rgba(0,0,0,.4);} 
[data-status="PARALLEL"] .node {background:#8d8d8d;}
[data-status="ACKNOWLEDGED"] .node {background:#4d7cc9;}
[data-status="SYNCHRONIZED"] .node {background:#2f8f68;}
[data-status="MERGING"] .node {background:#d48d23;}
[data-status="DEPLOYED"] .node {background:var(--saffron); color:#583c00;}

@media (min-width:800px){
  .journey-timeline {grid-template-columns:repeat(auto-fit,minmax(360px,1fr)); gap:3rem 2.4rem; padding-left:0;}
  .journey-timeline:before {display:none;}
  .commit {flex-direction:row;}
  .commit .node {box-shadow:0 0 0 4px #fff,0 0 0 8px rgba(245,182,66,.25);}
}

/* Terminal (allow dark background) */
#terminal {background:#111; color:#dfe4ec; font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; border-radius:var(--radius); padding:1rem; min-height:280px; box-shadow:var(--shadow); position:relative; overflow:hidden; border:1px solid #222;}
#terminal .terminal-header {position:absolute; top:0; left:0; right:0; height:30px; display:flex; align-items:center; gap:.5rem; padding:0 .75rem; background:linear-gradient(145deg,#141c27,#10151d); border-bottom:1px solid #1b2531; font-size:.6rem; text-transform:uppercase; letter-spacing:.55px;}
#terminal .terminal-header .dot {width:12px; height:12px; border-radius:50%; box-shadow:0 0 0 1px #0008 inset,0 2px 4px -1px #000;}
#terminal .terminal-header .dot.red {background:#ff5f56;}
#terminal .terminal-header .dot.amber {background:#ffbd2e;}
#terminal .terminal-header .dot.green {background:#27c93f;}
#terminal .terminal-title {margin-left:.5rem; font-weight:600; opacity:.65;}
#terminal-output {margin-top:30px;} /* push below header */
#terminal-output {font-size:.85rem; line-height:1.4; max-height:220px; overflow-y:auto; padding-right:.5rem;}
#terminal-output::-webkit-scrollbar {width:8px;} 
#terminal-output::-webkit-scrollbar-track {background:#161616;} 
#terminal-output::-webkit-scrollbar-thumb {background:#303030; border-radius:4px;} 
.terminal-line {white-space:pre-wrap; word-break:break-word;}
.terminal-input-row {margin-top:.75rem; display:flex; align-items:center; gap:.5rem;}
#terminal-input {flex:1; background:#161616; border:1px solid #333; color:#fff; padding:.55rem .75rem; border-radius:var(--radius-sm); font-size:.85rem; font-family:inherit;}
#terminal-input:focus {outline:none; box-shadow:var(--focus-ring); border-color:var(--saffron);} 
.terminal-send {background:linear-gradient(135deg,var(--indigo),var(--saffron)); border:none; color:#fff; font-weight:600; font-size:.7rem; letter-spacing:.6px; padding:.6rem .85rem; border-radius:var(--radius-sm); cursor:pointer; box-shadow:0 2px 6px -2px rgba(0,0,0,.6); transition:background .35s ease, transform .25s ease;}
.terminal-send:hover {filter:brightness(1.1);} 
.terminal-send:active {transform:translateY(1px);} 
.terminal-send:focus {outline:none; box-shadow:var(--focus-ring);} 
.terminal-hint {font-size:.8rem; opacity:.75; margin-bottom:.75rem;}

/* Modal */
.modal {position:fixed; inset:0; display:none; align-items:center; justify-content:center; z-index:999;}
.modal[aria-hidden="false"] {display:flex;}
.modal-backdrop {position:absolute; inset:0; background:rgba(0,0,0,.55); backdrop-filter:blur(4px);}
.modal-dialog {position:relative; background:var(--off); color:var(--dark); padding:2rem 2.2rem 2.2rem; border-radius:clamp(16px,2vw,24px); box-shadow:0 12px 40px -10px rgba(0,0,0,.35); max-width:480px; width:90%;}
.modal-close {position:absolute; top:.65rem; right:.65rem; background:transparent; border:none; font-size:1.75rem; line-height:1; cursor:pointer; color:var(--indigo);} 
.modal-close:focus {outline:none; box-shadow:var(--focus-ring);} 
.secret-line {font-family:var(--font-accent); font-size:1.4rem; margin-top:.75rem; color:var(--indigo);} 

/* Gallery */
.gallery-grid {display:grid; gap:1.5rem; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
.placeholder-img {background:var(--white); border-radius:var(--radius); padding:.65rem .65rem 1rem; box-shadow:var(--shadow); text-align:center;}
.placeholder-img img {max-width:100%; display:block; border-radius:var(--radius-sm);}
.placeholder-img figcaption {font-size:.75rem; margin-top:.65rem; opacity:.7;}
.gallery-invite {margin:.25rem 0 1.25rem; font-size:.9rem; font-weight:500; letter-spacing:.35px; background:linear-gradient(90deg,rgba(47,75,138,.08),rgba(245,182,66,.15)); padding:.85rem 1rem; border:1px solid rgba(47,75,138,.25); border-radius:var(--radius-sm); box-shadow:0 3px 10px -6px rgba(47,75,138,.35), 0 0 0 1px rgba(255,255,255,.4) inset; position:relative; overflow:hidden;}
.gallery-invite:before {content:""; position:absolute; inset:0; background:radial-gradient(circle at 18% 40%, rgba(245,182,66,.35), transparent 60%); opacity:.55; pointer-events:none; mix-blend-mode:overlay;}
.gallery-invite .gi-accent {font-family:var(--font-accent); font-style:italic; color:var(--indigo); background:linear-gradient(90deg,var(--indigo),var(--saffron)); -webkit-background-clip:text; background-clip:text; color:transparent;}
.gallery-share-link {color:var(--indigo); font-weight:600; text-decoration:none; position:relative; padding:.15rem .5rem .2rem; margin-left:.35rem; border-radius:1rem; background:linear-gradient(135deg,rgba(255,255,255,.6),rgba(255,255,255,.35)); box-shadow:0 2px 6px -3px rgba(0,0,0,.35);}
.gallery-share-link:before {content:""; position:absolute; inset:0; border-radius:inherit; padding:1px; background:linear-gradient(120deg,var(--indigo),var(--saffron)); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; opacity:.85;}
.gallery-share-link:hover {filter:brightness(1.05);} 
.gallery-share-link:focus {outline:none; box-shadow:var(--focus-ring);} 
.gallery-share-link:active {transform:translateY(1px);} 

/* Placeholders removed */

/* Footer */
#footer {background:linear-gradient(135deg,#2F4B8A,#4b69b5 60%,#5b7ddc); color:#e9f1ff; padding:2.75rem 1.25rem 3.5rem; position:relative;}
.footer-inner {max-width:1100px; margin:0 auto; display:flex; flex-wrap:wrap; gap:1.5rem; align-items:center; justify-content:space-between;}
.footer-inner .fineprint {margin:0; font-size:.7rem; letter-spacing:.5px; opacity:.75;}
.replay-btn {background:var(--saffron); border:none; color:#2b240e; font-weight:600; letter-spacing:.5px; padding:.65rem 1rem; border-radius:2rem; cursor:pointer; font-size:.75rem; box-shadow:0 2px 6px -2px rgba(0,0,0,.4);} 
.replay-btn:focus {outline:none; box-shadow:var(--focus-ring);} 
.replay-btn.alt {background:var(--indigo); color:#fff;}
.replay-btn.alt[aria-pressed="false"] {background:#5b7ddc;}
.replay-btn.alt[aria-pressed="true"] {background:var(--indigo);} 

/* Celebrations Layer */
#celebrations-layer {position:fixed; inset:0; pointer-events:none; z-index:40; overflow:hidden; max-width:100%;}
.particle {position:absolute; width:12px; height:12px; top:0; left:0; will-change:transform, opacity;}
.particle.confetti {border-radius:2px;}
.particle.petal {border-radius:50% 50% 45% 55% / 55% 45% 55% 45%; background:var(--petal);}
.particle.spark {border-radius:50%; box-shadow:0 0 0 2px #fff,0 0 10px 2px rgba(255,255,255,.8); background:radial-gradient(circle at 30% 30%, #fff, rgba(255,255,255,.2)); mix-blend-mode:screen;}
.particle.ribbon {width:16px; height:6px; border-radius:3px;}

/* Bloom name reveal */
#bloom-reveal {position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:none; z-index:0;}
#bloom-reveal .bloom-names {position:relative; font-family:var(--font-accent); font-size:clamp(2.2rem,6vw,3.6rem); font-weight:600; letter-spacing:.5px; opacity:0; transition:opacity 1.8s ease 1.2s; background:linear-gradient(90deg,#fff 0%, #ffe7c2 60%, #fff 100%); -webkit-background-clip:text; background-clip:text; color:transparent; filter:drop-shadow(0 4px 14px rgba(0,0,0,.25));}
#bloom-reveal.revealed .bloom-names {opacity:1;}
.bloom-petal {position:absolute; top:50%; left:50%; width:28px; height:40px; margin:-20px -14px; background:radial-gradient(circle at 30% 30%, #fff8, #f7d2aa); border-radius:52% 48% 50% 50% / 60% 55% 45% 40%; opacity:0; transform:scale(.2) translate(var(--dx,0), var(--dy,0)) rotate(var(--rot,0deg)); will-change:transform, opacity; animation:bloomPetal 4.8s ease forwards;}
@keyframes bloomPetal {0%{opacity:0; transform:scale(.2) translate(0,0) rotate(var(--rot));} 12%{opacity:1;} 55%{opacity:1;} 100%{opacity:0; transform:scale(1.15) translate(var(--dx), var(--dy)) rotate(calc(var(--rot) + 120deg));}}

/* Action button playful hover sparkles */
.action-btn{position:relative; overflow:hidden;}
.action-btn .sparkle {position:absolute; width:6px; height:6px; background:radial-gradient(circle,#fff 0%, rgba(255,255,255,0) 70%); top:50%; left:50%; pointer-events:none; opacity:0; transform:translate(-50%,-50%) scale(.2);}
.action-btn.sparkle-active .sparkle {animation:sparklePop .9s ease forwards;}
@keyframes sparklePop {0%{opacity:0; transform:translate(-50%,-50%) scale(.2);} 20%{opacity:1; transform:translate(-50%,-50%) scale(1);} 100%{opacity:0; transform:translate(-50%,-50%) scale(.2);} }

/* Scroll reveal */
.animate {opacity:0; transform:translateY(30px); transition:opacity .9s ease, transform .9s ease;}
.animate.in-view {opacity:1; transform:none;}

/* Utilities */
.visually-hidden, .sr-only {position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap !important; border:0 !important;}

.noscript-box {background:#222; color:#f4f4f4; padding:.75rem 1rem; font-size:.8rem; text-align:center;}

/* Focus visible fallback */
:focus {outline-color:var(--saffron);} 
:focus-visible {outline:2px solid var(--saffron); outline-offset:3px;}

/* Dark Mode */
@media (prefers-color-scheme: dark) {
  body {background:#182234; color:#e5e9ef;}
  #details .event-facts li, .placeholder-img {background:#1f2935; border-color:#2f3d4d;}
  #terminal {background:#0d1117; border-color:#1f2730;}
  .modal-dialog {background:linear-gradient(145deg,#1f2934,#253444); color:#e5e9ef;}
  .secret-line {color:var(--saffron);} 
  .time-unit {background:rgba(255,255,255,.06);} 
  .flip-card span {background:rgba(255,255,255,.1);}
}

/* Responsive tweaks */
@media (min-width:900px) {
  #hero {padding:5rem 2rem 4rem;}
  .digits {font-size:3.4rem;}
}

/* Countdown mobile adjustments */
@media (max-width:520px){
  .countdown-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .time-unit {padding:.85rem .6rem 1rem;}
  .digits {font-size:2.1rem;}
  .ring {width:70px; height:70px;}
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {
  html {scroll-behavior:auto;}
  .animate, .timeline-item {transition:none !important; opacity:1 !important; transform:none !important;}
  .flip-card.flipping {animation:none !important;}
  .time-unit.pulse {animation:none !important;}
  .ring .fg {transition:none !important;}
}

/* Print minimal */
@media print {
  #celebrations-layer, #terminal-section, #gallery, .replay-btn, .countdown-status, svg.ring {display:none !important;}
  #hero {min-height:auto;}
}

/* End of styles */
