/* ============================================================
   Happy Birthday Journey - Stylesheet
   Material UI inspired: Roboto + Playfair Display, elevation
   shadows, rounded surfaces, rose/purple palette.
   ============================================================ */

:root{
  --font-body:'Roboto','Segoe UI',Arial,sans-serif;
  --font-display:'Playfair Display',Georgia,'Times New Roman',serif;
  --font-emoji:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji','Segoe UI Symbol',sans-serif;
  --md-primary:#EC407A;
  --md-primary-dark:#AD1457;
  --md-primary-light:#F8BBD0;
  --md-secondary:#7E57C2;
  --md-secondary-dark:#4527A0;
  --md-gold:#FFD54F;
  --md-bg:#121016;
  --md-surface:#1E1B24;
  --md-surface-2:#2A2632;
  --md-on-surface:#F3EEF7;
  --md-on-surface-muted:#B8AFC4;
  --elev-1: 0 2px 4px rgba(0,0,0,.35);
  --elev-2: 0 4px 10px rgba(0,0,0,.4);
  --elev-3: 0 8px 24px rgba(0,0,0,.5);
  --radius:16px;
}

*{box-sizing:border-box;}
html{
  margin:0;
  padding:0;
  min-height:100%;
  -webkit-text-size-adjust:100%;
}
body{margin:0;padding:0;}
body{
  background:
    radial-gradient(circle at 16% 18%, rgba(236,64,122,.16), transparent 28%),
    radial-gradient(circle at 84% 12%, rgba(126,87,194,.18), transparent 30%),
    radial-gradient(circle at 50% 90%, rgba(255,213,79,.08), transparent 32%),
    var(--md-bg);
  background-attachment:fixed;
  color:var(--md-on-surface);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.5;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  min-height:100vh;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle, rgba(255,255,255,.16) 0 1px, transparent 1.5px) 0 0/44px 44px,
    radial-gradient(circle, rgba(248,187,208,.12) 0 1px, transparent 1.5px) 18px 22px/58px 58px;
  opacity:.28;
  animation:bgSparkle 18s linear infinite;
  z-index:-1;
}

h1,h2,h3{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.16;
  letter-spacing:0;
  margin:0;
}

.emoji{
  font-family:var(--font-emoji);
  font-style:normal;
  font-weight:400;
  line-height:1;
  display:inline-block;
  vertical-align:-.12em;
}

.screen{
  min-height:100vh;
  min-height:100svh;
  width:100%;
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:56px 24px max(80px, env(safe-area-inset-bottom));
  position:relative;
  animation:fadeIn .72s cubic-bezier(.2,.8,.2,1);
}
.screen.active{display:flex;}

@keyframes fadeIn{
  from{opacity:0; transform:translateY(18px) scale(.985);}
  to{opacity:1; transform:translateY(0);}
}
@keyframes bgSparkle{
  from{background-position:0 0, 18px 22px;}
  to{background-position:44px 44px, 76px 80px;}
}

/* Material elevated card */
.md-card{
  background:var(--md-surface);
  border-radius:var(--radius);
  box-shadow:var(--elev-2);
  padding:32px 28px;
  max-width:560px;
  width:100%;
  position:relative;
  overflow:hidden;
  animation:cardRise .7s cubic-bezier(.2,.8,.2,1) both;
}
.md-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg, transparent 0 35%, rgba(255,255,255,.055) 48%, transparent 62% 100%);
  transform:translateX(-120%);
  animation:cardSheen 5.5s ease-in-out infinite;
  pointer-events:none;
}
@keyframes cardRise{
  from{opacity:0; transform:translateY(16px) scale(.98);}
  to{opacity:1; transform:translateY(0) scale(1);}
}
@keyframes cardSheen{
  0%,55%{transform:translateX(-120%);}
  75%,100%{transform:translateX(120%);}
}
.md-card.wide{max-width:600px;}
.md-card.narrow-quiz{max-width:520px;}
.md-card.centered{max-width:560px; text-align:center;}

/* Material buttons */
.md-btn{
  position:relative;
  overflow:hidden;
  font-family:var(--font-body);
  font-weight:500;
  font-size:15px;
  letter-spacing:.3px;
  border:none;
  border-radius:24px;
  padding:14px 32px;
  min-height:48px;
  touch-action:manipulation;
  cursor:pointer;
  color:#fff;
  background:var(--md-primary);
  box-shadow:var(--elev-1);
  transition:box-shadow .22s ease, transform .18s ease, background .22s ease;
  text-transform:uppercase;
}
.md-btn::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(110deg, transparent, rgba(255,255,255,.22), transparent);
  transform:translateX(-120%);
  transition:transform .55s ease;
}
.md-btn:hover{
  background:var(--md-primary-dark);
  box-shadow:0 8px 22px rgba(236,64,122,.28), var(--elev-2);
  transform:translateY(-2px);
}
.md-btn:hover::before{transform:translateX(120%);}
.md-btn:active{transform:scale(.97);}
.md-btn.secondary{
  background:transparent;
  color:var(--md-primary-light);
  border:1.5px solid var(--md-primary);
  box-shadow:none;
  text-transform:uppercase;
}
.md-btn.secondary:hover{background:rgba(236,64,122,.1);}
.md-btn:disabled{opacity:.4; cursor:not-allowed;}

.ripple{
  position:absolute;
  border-radius:50%;
  background:rgba(255,255,255,.5);
  transform:scale(0);
  animation:ripple-anim .5s linear;
  pointer-events:none;
}
@keyframes ripple-anim{ to{ transform:scale(3); opacity:0; } }

.eyebrow{
  font-size:12px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--md-primary-light);
  font-weight:500;
  margin-bottom:10px;
  display:block;
}

.progress-dots{
  position:fixed;
  top:max(16px, env(safe-area-inset-top)); left:50%;
  transform:translateX(-50%);
  display:flex;
  gap:8px;
  z-index:50;
}
.dot{
  width:8px; height:8px; border-radius:50%;
  background:var(--md-surface-2);
  transition:background .3s ease, transform .3s ease;
}
.dot.done{background:var(--md-primary);}
.dot.current{
  background:var(--md-gold);
  transform:scale(1.3);
  box-shadow:0 0 0 5px rgba(255,213,79,.12);
  animation:dotPulse 1.5s ease-in-out infinite;
}
@keyframes dotPulse{
  0%,100%{box-shadow:0 0 0 4px rgba(255,213,79,.12);}
  50%{box-shadow:0 0 0 9px rgba(255,213,79,0);}
}

/* ---------- Landing ---------- */
#screen-landing .md-card{ text-align:center; }
#screen-landing h1{ font-size:32px; color:#fff; margin-bottom:14px; }
#screen-landing p{ color:var(--md-on-surface-muted); font-size:16px; margin-bottom:28px; }
.heart-icon{
  font-size:42px;
  margin-bottom:18px;
  filter:drop-shadow(0 6px 14px rgba(236,64,122,.28));
  animation:heartBeat 2.2s ease-in-out infinite;
}
@keyframes heartBeat{
  0%,45%,100%{transform:scale(1);}
  18%{transform:scale(1.14);}
  28%{transform:scale(.98);}
}

/* ---------- Chapter 1 ---------- */
.chapter-heading{margin-bottom:16px;}
.chapter-subheading{margin-bottom:6px;}
.chapter-hint{color:var(--md-on-surface-muted); font-size:14px; margin-bottom:4px;}
.chapter-body-text{color:var(--md-on-surface-muted); font-size:15px; line-height:1.7;}

.photo-frame{
  width:100%;
  max-width:320px;
  aspect-ratio:4/5;
  border-radius:12px;
  box-shadow:var(--elev-1);
  margin:0 auto 24px;
  overflow:hidden;
  background:var(--md-surface-2);
  transition:transform .35s ease, box-shadow .35s ease;
}
.photo-frame:hover{
  box-shadow:0 12px 34px rgba(0,0,0,.46);
  transform:translateY(-5px) rotate(-1deg);
}

.photo-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 38%;
  display:block;
  image-rendering:auto;
  backface-visibility:hidden;
  transition:transform .6s ease, filter .35s ease;
}
.photo-frame:hover img{transform:scale(1.035); filter:saturate(1.08) contrast(1.03);}
.photo-frame span{font-size:13px; margin-top:8px;}
.photo-frame .icon-large{font-size:26px;}

/* ---------- Chapter 2: Polaroids ---------- */
.polaroid-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:22px;
  max-width:560px;
  width:100%;
  margin:24px 0;
  align-items:start;
}

.polaroid .inner img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  image-rendering:auto;
  backface-visibility:hidden;
}
.polaroid{
  background:#fdfbf7;
  border-radius:4px;
  box-shadow:var(--elev-2);
  padding:10px 10px 36px;
  transform:rotate(var(--r,0deg));
  transition:transform .32s ease, box-shadow .32s ease;
  opacity:0;
  animation:polaroidIn .6s ease forwards;
}
.polaroid:nth-child(1){--r:-4deg; animation-delay:.1s;}
.polaroid:nth-child(2){--r:3deg; animation-delay:.3s;}
.polaroid:nth-child(3){--r:2deg; animation-delay:.5s;}
.polaroid:nth-child(4){--r:-3deg; animation-delay:.7s;}
.polaroid:nth-child(1) .inner{aspect-ratio:4/3;}
.polaroid:nth-child(2) .inner{aspect-ratio:4/5;}
.polaroid:nth-child(3) .inner{aspect-ratio:4/5;}
.polaroid:nth-child(4) .inner{aspect-ratio:4/5;}
.polaroid:nth-child(2) .inner img{object-position:center 34%;}
.polaroid:nth-child(3) .inner img{object-position:center 32%;}
.polaroid:nth-child(4) .inner img{object-position:center 34%;}
.polaroid:hover{
  box-shadow:0 12px 28px rgba(0,0,0,.44);
  transform:rotate(0deg) scale(1.025) translateY(-4px);
}
@keyframes polaroidIn{
  from{opacity:0; transform:translateY(20px) rotate(var(--r,0deg));}
  to{opacity:1; transform:translateY(0) rotate(var(--r,0deg));}
}
.polaroid .inner{
  aspect-ratio:4/5;
  background:linear-gradient(135deg,#e8e2f0,#f3d9e4);
  border-radius:2px;
  display:flex; align-items:center; justify-content:center;
  color:#9a8fae; font-size:12px;
  overflow:hidden;
}
.polaroid .inner img{
  transition:transform .5s ease, filter .35s ease;
}
.polaroid:hover .inner img{
  transform:scale(1.035);
  filter:saturate(1.08) contrast(1.04);
}
.polaroid .caption{
  color:#3a3540;
  font-size:12.5px;
  line-height:1.3;
  text-align:center;
  margin-top:8px;
  font-family:var(--font-body);
}

/* ---------- Chapter 3: reasons ---------- */
.reasons-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:18px;
  max-width:560px;
  width:100%;
  margin:28px 0 24px;
  perspective:900px;
}
.reason-box{
  position:relative;
  isolation:isolate;
  background:
    radial-gradient(circle at 20% 18%, rgba(255,213,79,.18), transparent 28%),
    linear-gradient(145deg, rgba(236,64,122,.22), rgba(126,87,194,.2)),
    var(--md-surface-2);
  border:1px solid rgba(248,187,208,.2);
  border-radius:16px;
  box-shadow:var(--elev-1);
  padding:18px 12px;
  text-align:center;
  cursor:pointer;
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease, background .35s ease;
  min-height:118px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.reason-box:nth-child(1){animation:softFloat 5.8s ease-in-out infinite;}
.reason-box:nth-child(2){animation:softFloat 6.2s ease-in-out .35s infinite;}
.reason-box:nth-child(3){animation:softFloat 5.6s ease-in-out .7s infinite;}
.reason-box:nth-child(4){animation:softFloat 6.5s ease-in-out .2s infinite;}
.reason-box:nth-child(5){animation:softFloat 5.9s ease-in-out .55s infinite;}
.reason-box:nth-child(6){animation:softFloat 6.1s ease-in-out .9s infinite;}
@keyframes softFloat{
  0%,100%{translate:0 0;}
  50%{translate:0 -4px;}
}
.reason-box::before{
  content:"";
  position:absolute;
  inset:10px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:12px;
  pointer-events:none;
}
.reason-box::after{
  content:"Tap";
  position:absolute;
  left:50%;
  bottom:14px;
  transform:translateX(-50%);
  color:var(--md-on-surface-muted);
  font-size:10px;
  font-weight:700;
  letter-spacing:1.6px;
  text-transform:uppercase;
  opacity:.72;
  transition:opacity .2s ease, transform .2s ease;
}
.reason-box:hover{
  border-color:rgba(255,213,79,.48);
  box-shadow:var(--elev-3);
  transform:translateY(-6px) rotateX(4deg);
}
.reason-box.opened{
  background:
    radial-gradient(circle at 80% 10%, rgba(255,213,79,.22), transparent 30%),
    linear-gradient(145deg, var(--md-secondary-dark), var(--md-primary-dark));
  border-color:rgba(255,213,79,.55);
  box-shadow:0 10px 28px rgba(236,64,122,.28), var(--elev-2);
  transform:translateY(-2px) scale(1.02);
}
.reason-box.opened::after{
  opacity:0;
  transform:translateX(-50%) translateY(8px);
}
.reason-box .icon,
.reason-box .text{
  position:relative;
  z-index:1;
}
.reason-box .icon{
  width:54px;
  height:54px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.09);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
  font-size:30px;
  transition:transform .32s ease, opacity .22s ease;
}
.reason-box:hover .icon{transform:scale(1.12) rotate(-8deg);}
.reason-box .text{
  color:#fff;
  padding:0 8px;
  font-size:14px;
  font-weight:500;
  line-height:1.45;
  display:none;
  transform:scale(.92) translateY(8px);
  opacity:0;
  transition:opacity .28s ease, transform .28s ease;
}
.reason-box .icon.hidden{
  display:none;
}
.reason-box .text.visible{
  display:block;
  animation:reasonTextIn .38s ease forwards;
}
@keyframes reasonTextIn{
  from{opacity:0; transform:scale(.9) translateY(10px);}
  to{opacity:1; transform:scale(1) translateY(0);}
}

/* ---------- Chapter 4: quiz ---------- */
.quiz-q{font-size:17px; margin-bottom:18px; font-family:var(--font-body); font-weight:500;}
.quiz-options{display:flex; flex-direction:column; gap:10px; margin-bottom:14px;}
.quiz-opt{
  background:var(--md-surface-2);
  border:1.5px solid transparent;
  border-radius:10px;
  padding:12px 16px;
  text-align:left;
  color:var(--md-on-surface);
  cursor:pointer;
  font-size:14px;
  transition:border-color .22s ease, background .22s ease, transform .22s ease, box-shadow .22s ease;
}
.quiz-opt:hover{
  border-color:var(--md-primary);
  box-shadow:0 8px 18px rgba(0,0,0,.22);
  transform:translateX(5px);
}
.quiz-opt.correct{background:rgba(126,87,194,.35); border-color:var(--md-secondary);}
.quiz-opt.wrong{background:rgba(236,64,122,.2); border-color:var(--md-primary); animation:shake .28s ease;}
@keyframes shake{
  0%,100%{transform:translateX(0);}
  35%{transform:translateX(-5px);}
  70%{transform:translateX(5px);}
}
.quiz-feedback{font-size:14px; min-height:20px; color:var(--md-gold); margin-bottom:10px;}
.quiz-hearts{
  display:flex;
  gap:7px;
  font-size:22px;
  margin-bottom:10px;
  align-items:center;
}
.quiz-result-text{font-size:15px; color:var(--md-on-surface-muted);}

/* ---------- Chapter 5: letter ---------- */
.envelope{
  width:220px; height:150px;
  margin:20px auto 30px;
  position:relative;
  cursor:pointer;
  animation:envelopeFloat 3.2s ease-in-out infinite;
  transition:transform .3s ease;
}
.envelope:hover{transform:translateY(-4px) scale(1.03);}
@keyframes envelopeFloat{
  0%,100%{translate:0 0;}
  50%{translate:0 -7px;}
}
.envelope-body{
  position:absolute; inset:0;
  background:var(--md-primary-light);
  border-radius:8px;
  box-shadow:var(--elev-2);
}
.envelope-flap{
  position:absolute; top:0; left:0; right:0;
  height:0; width:0;
  border-left:110px solid transparent;
  border-right:110px solid transparent;
  border-top:75px solid var(--md-primary);
  border-radius:8px 8px 0 0;
  transform-origin:top;
  transition:transform .5s ease;
}
.envelope.opened .envelope-flap{transform:rotateX(180deg);}
.envelope-seal{
  position:absolute; top:60px; left:50%; transform:translateX(-50%);
  font-size:24px; z-index:2;
  filter:drop-shadow(0 4px 8px rgba(0,0,0,.22));
}
.letter-paper{
  background:#fdfaf3;
  color:#2a2530;
  border-radius:8px;
  box-shadow:var(--elev-2);
  padding:28px 26px;
  max-width:480px;
  width:100%;
  font-family:var(--font-display);
  font-size:16px;
  line-height:1.7;
  min-height:220px;
  display:none;
}
.letter-paper.show{display:block; animation:letterOpen .55s cubic-bezier(.2,.8,.2,1);}
#letter-text::after{content:'|'; animation:blink 1s step-start infinite;}
@keyframes blink{50%{opacity:0;}}
@keyframes letterOpen{
  from{opacity:0; transform:translateY(18px) scale(.96);}
  to{opacity:1; transform:translateY(0) scale(1);}
}
.letter-continue-btn{display:none;}
.letter-continue-btn.visible{display:inline-block;}

/* ---------- Final ---------- */
#screen-final{overflow:hidden;}
#confetti-canvas{position:fixed; inset:0; pointer-events:none; z-index:5;}
.balloon{
  position:absolute;
  bottom:-160px;
  width:50px; height:66px;
  border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;
  animation:floatUp linear infinite;
  opacity:.9;
}
.balloon::after{
  content:'';
  position:absolute; bottom:-14px; left:50%;
  width:2px; height:20px; background:rgba(255,255,255,.4);
  transform:translateX(-50%);
}
@keyframes floatUp{
  from{transform:translateY(0) translateX(0);}
  to{transform:translateY(-115vh) translateX(20px);}
}
#screen-final h1{font-size:36px; color:#fff; text-align:center; margin-bottom:18px;}
#screen-final .final-msg{
  font-family:var(--font-display);
  font-style:italic;
  font-size:18px;
  text-align:center;
  color:var(--md-on-surface);
  max-width:480px;
  line-height:1.7;
  margin-bottom:20px;
}

#screen-final .final-photo{
  width:180px;
  height:180px;
  border-radius:50%;
  overflow:hidden;
  padding:0;
  margin-bottom:20px;
  border:3px solid var(--md-primary);
  box-shadow:var(--elev-3);
  position:relative;
  z-index:10;
  flex-shrink:0;
  animation:finalPhotoGlow 2.6s ease-in-out infinite;
}
@keyframes finalPhotoGlow{
  0%,100%{box-shadow:0 8px 24px rgba(0,0,0,.5), 0 0 0 0 rgba(236,64,122,.24);}
  50%{box-shadow:0 12px 32px rgba(0,0,0,.55), 0 0 0 10px rgba(236,64,122,0);}
}

.final-photo-inner{
  width:100%;
  height:100%;
  border-radius:50%;
  overflow:hidden;
}

.final-photo-inner img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  border-radius:50%;
  display:block;
  animation:photoDrift 8s ease-in-out infinite;
}
@keyframes photoDrift{
  0%,100%{transform:scale(1);}
  50%{transform:scale(1.05);}
}
.final-photo-inner .icon-large{font-size:26px;}
.signature{color:var(--md-primary-light); font-family:var(--font-display); font-style:italic; font-size:17px; margin-top:6px;}

.nav-row{display:flex; gap:12px; margin-top:28px; justify-content:center; flex-wrap:wrap;}

audio{display:none;}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.001ms !important;
  }
}

@media (hover:none){
  .md-btn:hover,
  .photo-frame:hover,
  .polaroid:hover,
  .reason-box:hover,
  .quiz-opt:hover,
  .envelope:hover{
    transform:none;
  }
  .polaroid:hover .inner img,
  .photo-frame:hover img{
    transform:none;
    filter:none;
  }
  .reason-box:hover .icon{transform:none;}
}

@media (max-width:640px){
  body{
    background:
      radial-gradient(circle at 50% -8%, rgba(236,64,122,.2), transparent 32%),
      radial-gradient(circle at 100% 24%, rgba(126,87,194,.18), transparent 30%),
      var(--md-bg);
  }
  body::before{opacity:.2; background-size:56px 56px, 72px 72px;}
  .screen{
    justify-content:center;
    padding:58px 16px max(34px, env(safe-area-inset-bottom));
  }
  .md-card{
    border-radius:14px;
    padding:24px 18px;
    box-shadow:0 10px 28px rgba(0,0,0,.42);
  }
  .md-card.wide,
  .md-card.narrow-quiz,
  .md-card.centered{
    max-width:100%;
  }
  .progress-dots{
    gap:7px;
    padding:8px 10px;
    border-radius:999px;
    background:rgba(18,16,22,.62);
    backdrop-filter:blur(10px);
  }
  .dot{width:7px; height:7px;}
  .eyebrow{font-size:11px; letter-spacing:1.7px;}
  #screen-landing h1,
  .chapter-heading,
  .chapter-subheading{
    font-size:clamp(25px, 8vw, 32px);
  }
  #screen-landing p,
  .chapter-body-text,
  .final-msg{
    font-size:15px;
  }
  .heart-icon{font-size:38px;}
  .photo-frame{
    max-width:min(300px, 82vw);
    margin-bottom:20px;
  }
  .nav-row{
    width:100%;
    gap:10px;
    margin-top:22px;
  }
  .md-btn{
    flex:1 1 145px;
    padding:13px 18px;
    font-size:13px;
  }
}

@media (max-width:480px){
  .screen{padding-left:12px; padding-right:12px;}
  .md-card{padding:22px 14px;}
  #screen-landing h1{font-size:26px;}
  .polaroid-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin:20px 0;
  }
  .polaroid{
    padding:7px 7px 30px;
    border-radius:5px;
  }
  .polaroid .caption{
    font-size:10.5px;
    line-height:1.25;
    margin-top:7px;
  }
  .reasons-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin:20px 0;
  }
  .reason-box{
    min-height:112px;
    padding:16px 8px;
    border-radius:14px;
  }
  .reason-box::before{inset:8px;}
  .reason-box .icon{
    width:48px;
    height:48px;
    font-size:27px;
  }
  .reason-box .text{
    font-size:12px;
    line-height:1.35;
    padding:0 4px;
  }
  .quiz-q{font-size:16px; line-height:1.45;}
  .quiz-opt{
    min-height:46px;
    padding:12px 13px;
    font-size:13.5px;
  }
  .envelope{
    width:190px;
    height:130px;
    margin:18px auto 24px;
  }
  .envelope-flap{
    border-left-width:95px;
    border-right-width:95px;
    border-top-width:65px;
  }
  .envelope-seal{top:52px;}
  .letter-paper{
    padding:22px 18px;
    font-size:15px;
    line-height:1.65;
    max-height:48svh;
    overflow:auto;
  }
  #screen-final .final-photo{
    width:150px;
    height:150px;
  }
  #screen-final h1{font-size:31px;}
  #screen-final .final-msg{
    font-size:16px;
    line-height:1.55;
    margin:0 4px 16px;
  }
  .signature{
    font-size:16px;
    text-align:center;
  }
}

@media (max-width:360px){
  .md-card{padding:20px 12px;}
  .polaroid-grid{gap:10px;}
  .polaroid{padding-bottom:28px;}
  .reason-box{min-height:104px;}
  .reason-box .text{font-size:11.5px;}
  .md-btn{flex-basis:100%; width:100%;}
  #screen-final .final-photo{width:132px; height:132px;}
}
