:root{color-scheme:dark;--bg:#100910;--panel:#1a101b;--rose:#ff789b;--pink:#ffc1d0;--cream:#fff0e8;--muted:#c7b5c4;--line:#ffffff1b}
*{box-sizing:border-box}html{min-height:100%;background:var(--bg);scroll-behavior:smooth}body{margin:0;min-height:100vh;min-height:100dvh;overflow-x:hidden;background:radial-gradient(ellipse at 50% 0%,#35172c 0%,#180d1b 40%,#100910 75%);color:var(--cream);font-family:ui-serif,Georgia,"Times New Roman",serif;display:flex;flex-direction:column;align-items:center;position:relative}
button{font:inherit}.starfield{position:fixed;inset:0;pointer-events:none;opacity:.5;background-image:radial-gradient(1px 1px at 8% 14%,#fff 98%,transparent),radial-gradient(1px 1px at 78% 22%,#ffd5e2 98%,transparent),radial-gradient(1.5px 1.5px at 25% 68%,#fff 98%,transparent),radial-gradient(1px 1px at 87% 78%,#fff 98%,transparent),radial-gradient(1px 1px at 52% 42%,#ffd5e2 98%,transparent),radial-gradient(1px 1px at 64% 90%,#fff 98%,transparent);background-size:350px 320px;animation:twinkle 5s ease-in-out infinite alternate}
.ambient-glow{position:fixed;width:240px;height:240px;border-radius:50%;filter:blur(90px);opacity:.16;pointer-events:none}.glow-one{background:#ff3978;top:20%;left:-150px}.glow-two{background:#a45bff;right:-160px;bottom:10%}
.topbar{width:min(100%,760px);padding:calc(18px + env(safe-area-inset-top)) 22px 14px;display:flex;align-items:center;justify-content:space-between;z-index:1;font-family:system-ui,sans-serif}.brand{font-size:11px;letter-spacing:.17em;text-transform:uppercase;color:#e8cad6}.brand-heart{color:var(--rose);font-size:16px;margin-right:7px}.sound-toggle{display:flex;gap:7px;align-items:center;border:1px solid var(--line);border-radius:99px;background:#ffffff08;color:#f7dbe4;padding:9px 12px;font-size:11px;letter-spacing:.03em;cursor:pointer}.sound-toggle span:first-child{font-size:15px;color:var(--pink)}
.app-shell{width:min(100%,620px);padding:8px 22px 12px;flex:1;display:flex;flex-direction:column;z-index:1}.progress{height:2px;background:#ffffff14;border-radius:10px;overflow:hidden;margin:4px 0 14px}.progress span{display:block;height:100%;width:20%;background:linear-gradient(90deg,#ff7196,#ffd1dc);transition:width .5s ease}
.scene{min-height:590px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:15px 0 22px;animation:arrive .55s ease both}.scene[hidden]{display:none}.eyebrow{font:10px/1.4 system-ui,sans-serif;letter-spacing:.19em;text-transform:uppercase;color:#e8a9bd;margin-bottom:25px}.sparkle{color:#ff9eb7;font-size:15px}.dot{display:inline-block;width:3px;height:3px;background:var(--rose);border-radius:50%;vertical-align:middle;margin:0 9px}
h1,h2{font-weight:400;letter-spacing:-.045em;line-height:1.08;margin:0;color:#fff4f0}h1{font-size:clamp(39px,10vw,62px)}h2{font-size:clamp(34px,8vw,48px)}h1 em,h2 em{font-weight:400;color:var(--pink);font-style:italic}.lede{font:14px/1.8 system-ui,sans-serif;color:var(--muted);max-width:290px;margin:22px auto 27px}.body-copy{font:13px/1.9 system-ui,sans-serif;color:#d1bdcd;max-width:360px;margin:17px auto 24px}
.hero-heart{width:110px;height:100px;position:relative;display:grid;place-items:center;margin:0 auto 22px;color:#ff6d96;filter:drop-shadow(0 5px 12px #ff4e8b45);animation:heartBeat 2.8s ease-in-out infinite;transform-origin:center}
.hero-heart .puffy-heart-art{width:82px;height:76px;position:relative;z-index:1;overflow:visible;filter:drop-shadow(0 3px 3px #a9225840)}
.hero-heart i,.hero-heart b{position:absolute;border:1px solid #ff9bb827;border-radius:50%;width:105px;height:105px;animation:ripple 4s ease-out infinite;pointer-events:none}
.hero-heart b{animation-delay:2s}
.final-heart{font-size:83px;color:#ff7299;text-shadow:0 0 45px #ff4e8b77;animation:heartBeat 2.4s ease-in-out infinite;margin:4px 0 24px}.final-message{font:14px/1.9 system-ui,sans-serif;color:#d8c3d2;max-width:330px;margin:20px auto 25px}.final-actions{display:flex;flex-direction:column;gap:12px;width:min(100%,280px)}.final-actions .primary-btn{width:100%}.text-btn{background:transparent;border:0;color:#f5b8cb;padding:12px;font:12px system-ui,sans-serif;cursor:pointer}.story-nav{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ffffff10;padding:15px 0 7px;font:10px system-ui,sans-serif;color:#a993a5;letter-spacing:.08em}.nav-btn{background:transparent;border:0;color:#e7b8ca;font:11px system-ui,sans-serif;padding:9px 0;cursor:pointer}.nav-btn:disabled{opacity:.25;cursor:default}.footer{font:10px system-ui,sans-serif;letter-spacing:.04em;color:#8d778b;text-align:center;padding:10px 18px calc(18px + env(safe-area-inset-bottom));z-index:1}.footer span{color:#ff779b;margin-left:5px}.toast{position:fixed;left:50%;bottom:35px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#2a1627;border:1px solid #ff9fba55;color:#ffe7ef;padding:12px 16px;border-radius:99px;font:12px system-ui,sans-serif;transition:.25s;z-index:5;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}
.particle{position:fixed;pointer-events:none;z-index:4;color:#ff83a7;animation:particleFly 1.7s ease-out forwards;font-size:17px}
@keyframes arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes twinkle{from{opacity:.28}to{opacity:.65}}@keyframes heartBeat{0%,100%{transform:scale(1)}10%{transform:scale(1.08)}18%{transform:scale(1)}28%{transform:scale(1.055)}40%{transform:scale(1)}}@keyframes ripple{0%{transform:scale(.7);opacity:.7}100%{transform:scale(1.65);opacity:0}}@keyframes halo{0%,100%{transform:scale(1);opacity:.7}50%{transform:scale(1.06);opacity:1}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes particleFly{0%{opacity:1;transform:translate(0,0) scale(.7)}100%{opacity:0;transform:translate(var(--dx),-150px) rotate(35deg) scale(1.4)}}
@media(min-width:650px){.app-shell{padding-left:35px;padding-right:35px}.scene{min-height:650px}.topbar{padding-left:35px;padding-right:35px}}
@media(max-height:740px){.scene{min-height:510px}.hero-heart{margin-bottom:12px}.eyebrow{margin-bottom:18px}.letter{padding:15px 18px}.letter p{line-height:1.65;margin-bottom:8px}.letter-wrap{margin-bottom:15px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* JUST_FOR_YOU_CINEMATIC_POLISH_V1 */
button, .secret-lock {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

button:focus-visible, .secret-lock:focus-visible {
  outline: 2px solid var(--pink);
  outline-offset: 4px;
  box-shadow: 0 0 0 5px #ff789b20;
}

.primary-btn {
  border-color: #ffb2c98a;
  background: linear-gradient(125deg, #a8325c, #7b2852 55%, #602044);
  box-shadow: inset 0 1px 0 #ffffff20, 0 8px 28px #a72b5630;
  transition: transform 220ms ease, filter 220ms ease, box-shadow 220ms ease;
}

.primary-btn:active {
  transform: scale(.975);
  box-shadow: inset 0 2px 8px #280b1c55;
}

.sound-toggle {
  transition: background 220ms ease, border-color 220ms ease;
}

.sound-toggle:active { background: #ff789b18; }
.progress span { box-shadow: 0 0 10px #ff789b55; }

.memory-card {
  border-color: #ffb1ca45;
  box-shadow: inset 0 0 45px #ff5d8c10, 0 18px 55px #00000030;
}

.letter-wrap {
  box-shadow: 0 20px 55px #00000035, 0 0 28px #ff789b0b;
}

.secret-message { box-shadow: inset 0 0 28px #ff789b08; }
.story-nav { border-top-color: #ffcfdf18; }

.nav-btn, .text-btn {
  -webkit-tap-highlight-color: transparent;
  transition: color 180ms ease, opacity 180ms ease;
}

.nav-btn:active, .text-btn:active { opacity: .72; }

@media (hover: hover) {
  .sound-toggle:hover {
    background: #ffffff10;
    border-color: #ffb1ca55;
  }

  .primary-btn:hover {
    filter: brightness(1.12);
    box-shadow: inset 0 1px 0 #ffffff25, 0 10px 34px #a72b5640;
  }

  .nav-btn:hover, .text-btn:hover { color: #fff0f5; }
}

@media (max-width: 380px) {
  .topbar { padding-left: 16px; padding-right: 16px; }
  .app-shell { padding-left: 17px; padding-right: 17px; }
  .letter { padding-left: 16px; padding-right: 16px; }
  .primary-btn { padding-left: 18px; padding-right: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .primary-btn, .sound-toggle, .nav-btn, .text-btn { transition: none; }
}
