
:root {
  --bg: #fff9fb;
  --paper: rgba(255,255,255,.84);
  --ink: #2f2529;
  --muted: #8c777f;
  --line: #eadce1;
  --accent: #d06c8b;
  --accent-deep: #b94f72;
  --soft: #f7e7ed;
  --shadow: 0 24px 65px rgba(82, 50, 61, .12);
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  background: var(--bg);
}

body {
  margin: 0;
  color: var(--ink);
  font-family: "DM Sans", system-ui, -apple-system, sans-serif;
  background:
    radial-gradient(circle at 12% 7%, #fdeef4 0 15%, transparent 31%),
    radial-gradient(circle at 91% 18%, #f5ecff 0 10%, transparent 28%),
    var(--bg);
  min-height: 100vh;
}

button, a { font: inherit; }

button { cursor: pointer; }

.grain {
  pointer-events: none;
  position: fixed;
  inset: 0;
  opacity: .20;
  z-index: 999;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E");
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  height: 72px;
  padding: 0 clamp(18px, 5vw, 74px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(255,249,251,.78);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(234,220,225,.75);
}

.brand {
  color: var(--ink);
  text-decoration: none;
  display: flex;
  gap: 9px;
  align-items: center;
  font-weight: 700;
  letter-spacing: -.02em;
}

.brand-heart {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--ink);
  color: white;
  font-size: 14px;
}

.nav {
  display: flex;
  gap: 6px;
  padding: 5px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255,255,255,.64);
}

.nav-link {
  border: 0;
  color: var(--muted);
  background: transparent;
  border-radius: 999px;
  padding: 9px 14px;
  font-weight: 600;
  transition: .2s ease;
}

.nav-link.active {
  background: white;
  color: var(--ink);
  box-shadow: 0 4px 14px rgba(75, 52, 60, .09);
}

.hero {
  width: min(1180px, calc(100% - 36px));
  min-height: 650px;
  margin: 0 auto;
  padding: 92px 0 70px;
  display: grid;
  grid-template-columns: 1.02fr .98fr;
  gap: 56px;
  align-items: center;
}

.eyebrow {
  margin: 0 0 14px;
  color: var(--accent-deep);
  text-transform: uppercase;
  letter-spacing: .17em;
  font-size: .72rem;
  font-weight: 700;
}

h1, h2, h3 {
  font-family: "Playfair Display", Georgia, serif;
}

h1 {
  margin: 0;
  font-size: clamp(3.2rem, 7vw, 6.7rem);
  line-height: .94;
  letter-spacing: -.055em;
}

h1 em {
  color: var(--accent-deep);
  font-weight: 600;
}

.hero-subtitle {
  max-width: 570px;
  color: var(--muted);
  line-height: 1.75;
  font-size: 1.05rem;
  margin: 28px 0 0;
}

.hero-actions {
  margin-top: 30px;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.primary-btn,
.ghost-btn {
  border-radius: 999px;
  padding: 13px 18px;
  border: 1px solid transparent;
  font-weight: 700;
  transition: transform .18s ease, box-shadow .18s ease;
}

.primary-btn {
  color: white;
  background: var(--ink);
  box-shadow: 0 10px 22px rgba(47,37,41,.15);
}

.ghost-btn {
  color: var(--ink);
  background: rgba(255,255,255,.72);
  border-color: var(--line);
}

.primary-btn:hover,
.ghost-btn:hover { transform: translateY(-2px); }

.hero-card {
  min-height: 470px;
  position: relative;
}

.hero-polaroid {
  position: absolute;
  width: min(290px, 70%);
  padding: 12px 12px 34px;
  background: white;
  border-radius: 6px;
  box-shadow: var(--shadow);
  border: 1px solid rgba(0,0,0,.04);
}

.hero-polaroid:first-child {
  top: 18px;
  left: 12%;
  z-index: 2;
}

.hero-polaroid:last-child {
  right: 2%;
  bottom: 18px;
}

.hero-polaroid img {
  display: block;
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
  border-radius: 2px;
}

.hero-polaroid span {
  display: block;
  margin-top: 12px;
  font-family: "Playfair Display", Georgia, serif;
  font-style: italic;
  text-align: center;
  color: #765e67;
}

.rotate-left { transform: rotate(-5deg); }
.rotate-right { transform: rotate(6deg); }

.content-section {
  width: min(1180px, calc(100% - 36px));
  margin: 0 auto;
  padding: 80px 0 110px;
  display: none;
}

.visible-section { display: block; }

.section-heading {
  max-width: 670px;
  margin-bottom: 42px;
}

.section-heading h2 {
  font-size: clamp(2.8rem, 5vw, 4.7rem);
  margin: 0 0 14px;
  line-height: 1;
  letter-spacing: -.04em;
}

.section-heading > p:last-child {
  color: var(--muted);
  margin: 0;
}

.photo-grid {
  columns: 3 270px;
  column-gap: 18px;
}

.photo-card {
  break-inside: avoid;
  margin-bottom: 18px;
  background: var(--paper);
  border: 1px solid rgba(234,220,225,.9);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(73, 48, 57, .08);
  transition: transform .22s ease, box-shadow .22s ease;
}

.photo-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(73, 48, 57, .13);
}

.photo-card button {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
}

.photo-card img {
  display: block;
  width: 100%;
  height: auto;
}

.photo-meta {
  padding: 14px 15px 16px;
}

.photo-date {
  display: block;
  margin-bottom: 4px;
  color: var(--accent-deep);
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 700;
}

.photo-caption {
  color: #4a3940;
  font-size: .92rem;
}

.timeline {
  position: relative;
  padding-left: 34px;
}

.timeline::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 10px;
  bottom: 20px;
  width: 1px;
  background: linear-gradient(var(--accent), var(--line));
}

.memory {
  position: relative;
  margin-bottom: 64px;
}

.memory-dot {
  position: absolute;
  left: -31px;
  top: 8px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--accent-deep);
  border: 4px solid var(--bg);
  box-shadow: 0 0 0 1px var(--accent);
}

.memory-date {
  color: var(--accent-deep);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .72rem;
  font-weight: 700;
}

.memory h3 {
  font-size: clamp(2rem, 4vw, 3rem);
  margin: 7px 0 12px;
  letter-spacing: -.03em;
}

.memory-text {
  color: #65535a;
  line-height: 1.8;
  max-width: 760px;
  white-space: pre-line;
  margin-bottom: 20px;
}

.memory-images {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 12px;
}

.memory-images button {
  grid-column: span 4;
  border: 0;
  padding: 0;
  background: transparent;
  border-radius: 18px;
  overflow: hidden;
  min-height: 250px;
  box-shadow: 0 12px 28px rgba(65,43,51,.09);
}

.memory-images button:first-child:nth-last-child(1) {
  grid-column: span 8;
  max-width: 680px;
}

.memory-images button:first-child:nth-last-child(2),
.memory-images button:first-child:nth-last-child(2) ~ button {
  grid-column: span 6;
}

.memory-images img {
  width: 100%;
  height: 100%;
  min-height: 250px;
  object-fit: cover;
  display: block;
}

.memory-note {
  display: inline-block;
  margin-top: 18px;
  padding: 13px 15px;
  background: #fff2c8;
  color: #665526;
  border-radius: 4px 16px 4px 12px;
  transform: rotate(-1deg);
  box-shadow: 0 8px 18px rgba(77,58,20,.08);
  font-family: "Playfair Display", Georgia, serif;
  font-style: italic;
}

.lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 70px 56px 46px;
  background: rgba(22,16,18,.93);
  backdrop-filter: blur(14px);
}

.lightbox.open { display: flex; }

.lightbox figure {
  margin: 0;
  max-width: min(920px, 88vw);
  max-height: 88vh;
  text-align: center;
}

.lightbox img {
  display: block;
  max-width: 100%;
  max-height: 74vh;
  margin: 0 auto;
  object-fit: contain;
  border-radius: 14px;
  box-shadow: 0 25px 80px rgba(0,0,0,.4);
}

.lightbox figcaption {
  margin-top: 14px;
  color: white;
}

.lightbox figcaption span {
  display: block;
  color: #d7c8cd;
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  margin-bottom: 4px;
}

.lightbox-close,
.lightbox-arrow {
  position: absolute;
  border: 0;
  color: white;
  background: rgba(255,255,255,.10);
  backdrop-filter: blur(10px);
}

.lightbox-close {
  top: 18px;
  right: 22px;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  font-size: 1.8rem;
}

.lightbox-arrow {
  top: 50%;
  width: 52px;
  height: 70px;
  margin-top: -35px;
  border-radius: 999px;
  font-size: 2.2rem;
}

.lightbox-arrow.left { left: 18px; }
.lightbox-arrow.right { right: 18px; }

footer {
  border-top: 1px solid var(--line);
  padding: 30px 20px 40px;
  text-align: center;
  color: var(--muted);
  font-size: .82rem;
}

@media (max-width: 850px) {
  .topbar {
    height: 64px;
    padding-inline: 16px;
  }

  .hero {
    padding-top: 60px;
    grid-template-columns: 1fr;
    gap: 26px;
  }

  .hero-card {
    min-height: 410px;
  }

  .hero-polaroid {
    width: min(250px, 67%);
  }

  .hero-polaroid:first-child { left: 7%; }
  .hero-polaroid:last-child { right: 4%; }

  .content-section {
    padding-top: 60px;
  }
}

@media (max-width: 620px) {
  .brand #brandText { display: none; }

  .nav {
    gap: 3px;
    padding: 4px;
  }

  .nav-link {
    padding: 8px 9px;
    font-size: .80rem;
  }

  .hero {
    min-height: auto;
    width: min(100% - 28px, 1180px);
    padding: 50px 0 55px;
  }

  h1 {
    font-size: clamp(3.1rem, 16vw, 5.3rem);
  }

  .hero-subtitle {
    font-size: .98rem;
  }

  .hero-card {
    min-height: 375px;
    margin-top: 6px;
  }

  .photo-grid {
    columns: 2 150px;
    column-gap: 10px;
  }

  .photo-card {
    margin-bottom: 10px;
    border-radius: 15px;
  }

  .photo-meta {
    padding: 10px 11px 12px;
  }

  .photo-caption {
    font-size: .78rem;
  }

  .photo-date {
    font-size: .62rem;
  }

  .timeline {
    padding-left: 27px;
  }

  .timeline::before {
    left: 7px;
  }

  .memory-dot {
    left: -26px;
  }

  .memory {
    margin-bottom: 48px;
  }

  .memory-images {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .memory-images button,
  .memory-images button:first-child:nth-last-child(1),
  .memory-images button:first-child:nth-last-child(2),
  .memory-images button:first-child:nth-last-child(2) ~ button {
    grid-column: auto;
    min-height: 175px;
  }

  .memory-images button:only-child {
    grid-column: 1 / -1 !important;
  }

  .memory-images img { min-height: 175px; }

  .lightbox {
    padding: 66px 16px 86px;
  }

  .lightbox-arrow {
    top: auto;
    bottom: 18px;
    width: 46px;
    height: 46px;
    margin: 0;
  }

  .lightbox-arrow.left { left: calc(50% - 56px); }
  .lightbox-arrow.right { right: calc(50% - 56px); }

  .content-section {
    width: min(100% - 28px, 1180px);
  }
}


/* 100 Things I Love */
.love-things-list{max-width:900px;margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.love-thing{display:flex;align-items:flex-start;gap:14px;background:rgba(255,255,255,.78);border:1px solid var(--line);border-radius:20px;padding:18px 20px;box-shadow:0 10px 30px rgba(75,48,58,.05)}
.love-number{flex:0 0 38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--soft);font-weight:700;color:var(--accent-deep)}
.love-thing p{margin:7px 0 0;line-height:1.55}
.love-empty{grid-column:1/-1;text-align:center;color:var(--muted);padding:40px}
@media(max-width:700px){.love-things-list{grid-template-columns:1fr}.love-thing{padding:15px 16px}}

.photo-card video{
  display:block;
  width:100%;
  height:auto;
  max-height:70vh;
  background:#171214;
}
.memory-images video{
  display:block;
  width:100%;
  height:100%;
  min-height:220px;
  max-height:520px;
  object-fit:contain;
  background:#171214;
  border-radius:16px;
}
.memory-media{overflow:hidden;border-radius:16px;background:#171214}


html.gate-locked body > *:not(.password-gate){visibility:hidden!important}
.password-gate{
  position:fixed;inset:0;z-index:999999;display:grid;place-items:center;
  padding:24px;background:
  radial-gradient(circle at 18% 15%,rgba(255,211,225,.8),transparent 34%),
  radial-gradient(circle at 82% 20%,rgba(225,216,255,.7),transparent 36%),
  linear-gradient(135deg,#fff8fb,#fffdfc);
  font-family:inherit;color:#34272c
}
.password-card{
  width:min(430px,100%);padding:42px 30px 34px;text-align:center;
  background:rgba(255,255,255,.88);border:1px solid #eadce1;border-radius:28px;
  box-shadow:0 24px 70px rgba(83,48,61,.14);backdrop-filter:blur(14px)
}
.password-heart{font-size:42px;color:#c45f80;margin-bottom:4px}
.password-card h1{margin:0 0 8px;font-size:clamp(34px,8vw,52px)}
.password-hint{margin:0 0 24px;color:#8c777f;font-size:15px}
.password-card form{display:grid;gap:12px}
.password-card input{
  width:100%;box-sizing:border-box;padding:15px 17px;border-radius:15px;
  border:1px solid #dfcbd2;background:#fff;font:inherit;font-size:16px;outline:none
}
.password-card input:focus{border-color:#c96c8a;box-shadow:0 0 0 3px rgba(201,108,138,.12)}
.password-card button{
  border:0;border-radius:15px;padding:14px 18px;background:#382b30;color:white;
  font:inherit;font-weight:700;cursor:pointer
}
.password-error{min-height:20px;margin:1px 0 0;color:#b94f72;font-size:14px}

/* Social features */
.photo-card{position:relative}
.favorite-btn{position:absolute;top:10px;left:10px;z-index:8;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.9);box-shadow:0 5px 16px rgba(50,30,38,.16);font-size:20px;cursor:pointer;display:grid;place-items:center}
.favorite-btn.loved{background:#fff0f4;transform:scale(1.04)}
.photo-comments{padding:10px 12px 13px;background:#fff}
.comment-list{display:grid;gap:7px;margin-bottom:8px}
.comment{font-size:.82rem;line-height:1.35;background:#faf3f5;border-radius:10px;padding:7px 9px}
.comment strong{margin-right:5px}
.comment-time{display:block;color:#aa939b;font-size:.68rem;margin-top:2px}
.comment-form{display:flex;gap:6px}
.comment-form input{min-width:0;flex:1;border:1px solid #eadce1;border-radius:999px;padding:8px 10px;font:inherit;font-size:.78rem}
.comment-form button{border:0;border-radius:999px;background:#382b30;color:#fff;padding:7px 10px;cursor:pointer}
.chat-shell{width:min(760px,100%);height:min(720px,calc(100svh - 170px));min-height:420px;margin:0 auto;background:#fff;border:1px solid #eadce1;border-radius:24px;overflow:hidden;box-shadow:0 16px 44px rgba(73,48,57,.08);display:flex;flex-direction:column}
.chat-topbar{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid #f0e4e8}
.online-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#64b47a;margin-left:7px}
.tiny-btn{border:1px solid #eadce1;background:#fff;border-radius:999px;padding:7px 10px;cursor:pointer;color:#806a72}
.chat-messages{flex:1;min-height:0;height:auto;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:18px;display:flex;flex-direction:column;gap:9px;background:linear-gradient(#fffafd,#fff)}
.chat-row{display:flex;flex-direction:column;max-width:78%;align-self:flex-start}
.chat-row.mine{align-self:flex-end;align-items:flex-end}
.chat-name{font-size:.7rem;color:#9a858d;margin:0 7px 3px}
.chat-bubble{padding:9px 12px;border-radius:16px 16px 16px 5px;background:#f2e8ec;line-height:1.4;white-space:pre-wrap;word-break:break-word}
.chat-row.mine .chat-bubble{background:#382b30;color:#fff;border-radius:16px 16px 5px 16px}
.chat-bubble img,.chat-bubble video{display:block;max-width:100%;max-height:360px;border-radius:12px;margin-top:6px}
.chat-time{font-size:.64rem;color:#ad9ba1;margin:3px 6px 0}
.typing-line{min-height:25px;padding:2px 18px 5px;color:#a07f8a;font-size:.78rem;font-style:italic}
.chat-compose{display:flex;align-items:end;gap:8px;padding:11px;border-top:1px solid #f0e4e8;background:#fff;position:relative;flex-shrink:0}
.chat-compose textarea{flex:1;resize:none;max-height:120px;border:1px solid #e5d8dd;border-radius:18px;padding:10px 12px;font:inherit;outline:none}
.chat-upload,.chat-send{border:0;border-radius:999px;background:#f3e4e9;color:#7e4055;font-weight:800;cursor:pointer}
.chat-upload{width:40px;height:40px;display:grid;place-items:center;font-size:22px}
.chat-send{padding:11px 15px;background:#382b30;color:#fff}
.chat-file-preview{position:absolute;left:55px;bottom:61px;background:#fff;border:1px solid #eadce1;border-radius:12px;padding:6px;box-shadow:0 8px 25px rgba(0,0,0,.1);display:none}
.chat-file-preview.show{display:block}
.chat-file-preview img,.chat-file-preview video{width:90px;height:90px;object-fit:cover;border-radius:8px}
.identity-gate{position:fixed;inset:0;z-index:999998;background:rgba(255,249,251,.96);display:grid;place-items:center;padding:20px}
.identity-card{width:min(390px,100%);background:#fff;border:1px solid #eadce1;border-radius:24px;padding:30px;text-align:center;box-shadow:0 22px 60px rgba(60,35,44,.12)}
.identity-card h2{font-family:"Playfair Display",Georgia,serif;font-size:2rem;margin:0 0 8px}
.identity-card p{color:#8c777f}
.identity-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
.identity-choices button{border:0;border-radius:14px;padding:14px;background:#382b30;color:#fff;font:inherit;font-weight:700;cursor:pointer}
@media(max-width:620px){
  .content-section#chat{padding:10px 8px 24px;min-height:calc(100svh - 72px)}
  .content-section#chat .section-heading{margin:4px 0 10px;text-align:left}
  .content-section#chat .section-heading h2{font-size:1.55rem;margin:2px 0}
  .content-section#chat .section-heading p{font-size:.78rem;margin:2px 0}
  .chat-shell{width:100%;height:calc(100svh - 154px);min-height:390px;border-radius:16px}
  .chat-topbar{padding:10px 11px;gap:8px}
  .chat-top-actions{flex-direction:row;flex-wrap:wrap;justify-content:flex-end;gap:4px}
  .chat-top-actions .tiny-btn{padding:5px 6px;font-size:.64rem}
  .chat-messages{padding:12px 9px;gap:7px}
  .chat-row{max-width:92%;min-width:0}
  .chat-bubble{max-width:100%;padding:8px 10px;font-size:.9rem}
  .chat-compose{gap:5px;padding:8px 7px;padding-bottom:max(8px,env(safe-area-inset-bottom))}
  .chat-compose textarea{min-width:0;font-size:16px;padding:9px 10px;max-height:96px}
  .chat-upload,.chat-send,.chat-camera,.chat-voice{flex:0 0 auto}
  .chat-upload{width:36px;height:36px;font-size:20px}
  .chat-camera,.chat-voice{width:36px;height:36px;min-width:36px;padding:7px;font-size:18px}
  .chat-send{padding:9px 11px;font-size:.82rem}
  .chat-file-preview{left:7px;bottom:58px}
  .favorite-btn{width:34px;height:34px;font-size:18px}
}

.about-me-card{width:min(760px,100%);margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:24px;padding:26px;box-shadow:0 14px 40px rgba(70,45,55,.06)}
.about-me-card p{margin:0;padding:13px 4px;border-bottom:1px solid #f3e8ec;font-size:1.02rem;line-height:1.6}
.about-me-card p:last-child{border-bottom:0}.about-empty{color:var(--muted);text-align:center}

.online-label{margin-left:8px;color:#9b858d;font-size:.72rem}
.chat-date{align-self:center;font-size:.7rem;color:#aa969d;background:#f7eef1;padding:5px 10px;border-radius:999px;margin:8px 0}
.reply-preview{font-size:.74rem;opacity:.72;border-left:3px solid currentColor;padding:4px 7px;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}
.msg-actions{display:flex;gap:5px;opacity:0;transition:.15s;margin-top:3px}.chat-row:hover .msg-actions{opacity:1}
.msg-actions button,.reaction-picker button,.reaction-chip{border:1px solid #eadde2;background:#fff;border-radius:999px;padding:4px 7px;font-size:.67rem;cursor:pointer;color:#806b73}
.reaction-row{display:flex;gap:4px;flex-wrap:wrap;margin-top:-3px;z-index:2}.reaction-chip{font-size:.75rem;background:#fff9fb}.reaction-chip.mine{border-color:#d9a8b8}
.reaction-picker{display:flex;gap:3px;background:#fff;padding:5px;border:1px solid #eadde2;border-radius:999px;box-shadow:0 8px 22px rgba(0,0,0,.1);margin-top:4px}
.reaction-picker button{font-size:1rem;border:0;padding:3px 5px}
.reply-bar{display:none;margin:0 11px;padding:8px 11px;background:#faf1f4;border-left:3px solid #c56c8a;border-radius:8px;font-size:.75rem;color:#806b73}
.reply-bar.show{display:flex;justify-content:space-between;gap:10px}.reply-bar button{border:0;background:none;font-size:18px;cursor:pointer}
.deleted-msg{opacity:.65}.chat-row.mine .deleted-msg{color:#eee}
@media(max-width:620px){.msg-actions{opacity:1}.msg-actions button{font-size:.64rem}.reply-preview{max-width:220px}}

.about-prompts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.about-prompts label:nth-last-child(-n+7){grid-column:1/-1}
.about-prompts textarea{min-height:95px}
.about-me-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;background:transparent;border:0;box-shadow:none;padding:0}
.about-prompt-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;display:flex;gap:12px;box-shadow:0 10px 28px rgba(70,45,55,.05)}
.about-prompt-card strong{display:block;margin-bottom:6px}.about-prompt-card p{border:0;padding:0;margin:0;white-space:pre-wrap}
.about-prompt-icon{font-size:1.45rem}
.favorite-btn{opacity:1!important;visibility:visible!important}
.photo-comments{display:block!important;border-top:1px solid #f3e8ec}
.memory-images>button,.memory-media{position:relative}
.memory-images .photo-comments,.memory-media .photo-comments{width:100%;box-sizing:border-box}
@media(max-width:700px){.about-prompts,.about-me-card{grid-template-columns:1fr}.about-prompts label{grid-column:1/-1}}

.chat-upload-status{min-height:18px;padding:0 18px 5px;color:#9b7583;font-size:.75rem}.chat-send:disabled{opacity:.55;cursor:wait}
.music-player{position:fixed;left:18px;bottom:18px;z-index:9999;display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border:1px solid #eadce1;border-radius:999px;padding:8px 10px;box-shadow:0 10px 30px rgba(70,45,55,.14)}.music-player[hidden]{display:none}.music-player button{width:36px;height:36px;border:0;border-radius:50%;background:#382b30;color:#fff;cursor:pointer}.music-info{display:flex;flex-direction:column;min-width:130px;max-width:210px}.music-info small{font-size:.62rem;color:#a08a92;text-transform:uppercase;letter-spacing:.08em}.music-info strong{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-editor{margin:18px 0;padding:16px;border:1px solid #eadce1;border-radius:16px}.music-editor h3{margin-top:0}@media(max-width:620px){.music-player{left:10px;bottom:10px}.music-info{min-width:100px;max-width:145px}}

.chat-top-actions{display:flex;gap:8px;align-items:center}.danger-btn{color:#a3485f;border-color:#edcbd5;background:#fff8fa}.danger-btn:hover{background:#fcecf1}.danger-btn:disabled{opacity:.55;cursor:wait}@media(max-width:520px){.chat-topbar{align-items:flex-start}.chat-top-actions{flex-direction:column;align-items:flex-end;gap:5px}.chat-top-actions .tiny-btn{padding:6px 8px;font-size:.72rem}}

.photo-card{overflow:visible!important}
.photo-card .favorite-btn{position:static!important;display:inline-flex!important;align-items:center!important;gap:5px!important;opacity:1!important;visibility:visible!important;margin:10px 12px 4px!important;padding:7px 11px!important;width:auto!important;height:auto!important;border:1px solid #edcbd5!important;border-radius:999px!important;background:#fff7fa!important;color:#a94766!important;font:inherit!important;font-size:.82rem!important;cursor:pointer!important;z-index:5!important}
.photo-card .heart-icon{font-size:1.15rem;line-height:1}
.photo-card .heart-label{font-size:.78rem}
.photo-card .photo-comments{display:block!important;opacity:1!important;visibility:visible!important;position:static!important;margin:4px 12px 12px!important;padding-top:7px!important;border-top:1px solid #f1e2e7!important}
.photo-card .comment-list{display:grid!important;gap:5px!important;margin-bottom:7px!important}
.photo-card .comment-form{display:flex!important;gap:6px!important}
.photo-card .comment-form input{display:block!important;flex:1!important;min-width:0!important;border:1px solid #ead5dc!important;border-radius:999px!important;padding:8px 10px!important;background:white!important}
.photo-card .comment-form button{display:block!important;border:0!important;border-radius:999px!important;padding:7px 10px!important;background:#3b2a30!important;color:white!important;cursor:pointer!important}

.favorite-btn.julia-favorite{background:#ffe9f0!important;border-color:#e99bb3!important;color:#b72e5b!important;font-weight:700!important}
.julia-favorites-section{max-width:1100px;margin:70px auto;padding:0 24px}
.julia-favorites-section h2{font-family:Georgia,serif;font-size:clamp(2rem,5vw,3.5rem);margin:.15em 0}
.julia-favorites-section .eyebrow{font-size:.72rem;letter-spacing:.18em;color:#bb526f;font-weight:700}
.julia-favorites-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;margin-top:24px}
.julia-favorite-card{background:#fff;border:1px solid #efdce2;border-radius:18px;padding:10px;box-shadow:0 10px 28px rgba(70,35,45,.06)}
.julia-favorite-card img,.julia-favorite-card video{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;display:block}
.julia-favorite-card div{padding:9px 3px 2px;color:#b72e5b;font-size:.82rem;font-weight:700}

.favorite-btn.ash-favorite:not(.julia-favorite){background:#f3eef0!important;border-color:#cbbbc1!important;color:#4a343c!important;font-weight:700!important}
.favorite-btn.ash-favorite.julia-favorite{background:#ffe5ee!important;border-color:#db86a2!important;color:#9f3154!important;font-weight:700!important}
.ash-favorites-section .eyebrow{color:#59444b}
.ash-favorites-section .julia-favorite-card div{color:#59444b}

.lightbox-close,.lightbox-arrow{z-index:1002!important;pointer-events:auto!important;cursor:pointer!important}
.lightbox figure{z-index:1001;position:relative}

/* Good Morning messages */
.good-morning-section{background:linear-gradient(180deg,#fff8df 0%,#fff3ec 48%,#fff9fb 100%);min-height:78vh}
.goodmorning-hero{text-align:center;max-width:760px;margin:0 auto 28px;padding-top:24px}
.goodmorning-hero .gm-sun{font-size:3.2rem;filter:drop-shadow(0 8px 14px rgba(230,174,45,.22));animation:gmFloat 3s ease-in-out infinite}
.goodmorning-hero h2{font-family:Georgia,serif;font-size:clamp(2.2rem,6vw,4.4rem);margin:.12em 0;color:#51352d}
.goodmorning-hero p{color:#8b6559}
.goodmorning-shell{max-width:820px;margin:auto;padding:0 20px 70px}
.goodmorning-form{background:rgba(255,255,255,.82);border:1px solid #f0d9ba;border-radius:24px;padding:20px;box-shadow:0 16px 40px rgba(104,70,42,.08);margin-bottom:28px}
.goodmorning-form label{display:block;font-weight:800;color:#7a4f40;margin-bottom:9px}
.goodmorning-form textarea{width:100%;box-sizing:border-box;resize:vertical;border:1px solid #efd9ca;border-radius:16px;background:#fffdf8;padding:14px;font:inherit;line-height:1.55;outline:none}
.goodmorning-form textarea:focus{border-color:#dda978;box-shadow:0 0 0 3px rgba(221,169,120,.14)}
.gm-send{margin-top:12px;border:0;border-radius:999px;background:#6d493d;color:white;padding:11px 17px;font:inherit;font-weight:800;cursor:pointer}
#goodMorningStatus{margin-left:10px;color:#a36b59}
.gm-log-head{display:flex;align-items:end;justify-content:space-between;margin:22px 4px 12px;color:#65483e}
.gm-log-head h3{font-family:Georgia,serif;font-size:1.55rem;margin:0}.gm-log-head span{font-size:.8rem;opacity:.65}
.goodmorning-log{display:grid;gap:14px}
.gm-card{background:#fff;border:1px solid #f0dfcf;border-radius:20px;padding:18px 20px;box-shadow:0 10px 25px rgba(91,61,43,.055);position:relative;overflow:hidden}
.gm-card:after{content:"♡";position:absolute;right:14px;top:9px;font-size:1.7rem;color:#efc6bd;transform:rotate(9deg)}
.gm-date{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:#b37a55;font-weight:800;padding-right:35px}
.gm-card p{font-family:Georgia,serif;font-size:1.05rem;line-height:1.65;color:#4c3932;margin:12px 0}
.gm-from{text-align:right;font-style:italic;color:#b35f6f}.gm-empty{text-align:center;padding:38px;color:#a98778}
@keyframes gmFloat{50%{transform:translateY(-5px) rotate(3deg)}}
@media(max-width:700px){.goodmorning-form{padding:15px}.gm-card{padding:16px}.goodmorning-hero h2{font-size:2.35rem}}

.gm-delete{display:block;margin:10px 0 0 auto;border:0;background:transparent;color:#b58b80;font:inherit;font-size:.78rem;text-decoration:underline;cursor:pointer;padding:4px 2px}
.gm-delete:hover{color:#8d4f4f}

/* Couples arcade */
.games-section{min-height:82vh;background:radial-gradient(circle at 50% 0,#fff0f5 0,#fffaf8 46%,#f9f1ed 100%)}
.games-hero{text-align:center;padding:25px 15px 8px}.games-hero h2{font:700 clamp(2.4rem,6vw,4.5rem) Georgia,serif;margin:.1em;color:#553a3d}
.game-picker{display:flex;justify-content:center;gap:10px;margin:16px auto 22px}.game-pick,.game-top button,#unoDraw{border:1px solid #e6cfd2;background:#fff;border-radius:999px;padding:10px 16px;font:inherit;font-weight:800;cursor:pointer;color:#65464b}.game-pick.active{background:#65464b;color:#fff}
.game-panel{display:none;max-width:900px;margin:auto;padding:0 18px 60px}.game-panel.active{display:block}.game-top{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#fff;border:1px solid #eddcdf;border-radius:18px;padding:12px 15px}.game-help{text-align:center;color:#92767a;font-size:.88rem}
#poolCanvas{display:block;width:100%;height:auto;max-height:62vh;border-radius:22px;box-shadow:0 18px 45px rgba(63,43,38,.16);touch-action:none}
.uno-table{min-height:520px;border-radius:28px;background:#7d4d56;padding:24px;display:flex;flex-direction:column;justify-content:space-between;align-items:center;color:white;box-shadow:0 18px 45px rgba(63,43,38,.16)}
.uno-opponent,.uno-you{text-align:center;width:100%;font-weight:800}.uno-center{text-align:center}.uno-hand,.uno-card-backs{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:10px}.uno-card{width:62px;height:92px;border:4px solid white;border-radius:10px;color:white;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:5px;font-size:20px;box-shadow:0 5px 12px #0003;cursor:pointer}.uno-card span{font-size:30px;font-weight:900}.uno-card.red{background:#dc5149}.uno-card.yellow{background:#d5a92f}.uno-card.green{background:#4c9a67}.uno-card.blue{background:#4e78b9}.uno-card-backs i{display:block;width:34px;height:54px;border:3px solid white;border-radius:7px;background:#2d2830;transform:rotate(-2deg)}#unoPile{margin:10px auto 14px;width:62px}#unoStatus{min-height:22px;margin-top:10px;font-weight:800}
@media(max-width:600px){.uno-card{width:49px;height:75px;font-size:15px}.uno-card span{font-size:23px}.uno-table{min-height:440px;padding:15px}}

/* Games v2 polish */
#poolCanvas{background:#173f31;border:10px solid #7a4a2e;box-sizing:border-box;filter:drop-shadow(0 18px 24px rgba(50,30,22,.22))}
.uno-card{position:relative;overflow:hidden;transition:transform .16s ease,filter .16s ease}.uno-card:not(:disabled):hover{transform:translateY(-10px) rotate(-2deg);filter:brightness(1.08)}.uno-card:disabled{cursor:default;opacity:.9}
.uno-card.wild{background:conic-gradient(#d94c45 0 25%,#e0bd38 0 50%,#4b9a63 0 75%,#4c72b8 0);color:#fff}.uno-card b,.uno-card span{text-shadow:0 1px 2px #0005}
.uno-color-picker{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);z-index:20;background:#fff;color:#4f3c3f;padding:18px;border-radius:20px;box-shadow:0 20px 60px #0006;text-align:center}.uno-color-picker div{display:flex;gap:8px;margin-top:12px}.uno-color-picker button{width:46px;height:46px;border:4px solid #fff;border-radius:50%;box-shadow:0 2px 8px #0004;cursor:pointer}.uno-color-picker .red{background:#dc5149}.uno-color-picker .yellow{background:#d5a92f}.uno-color-picker .green{background:#4c9a67}.uno-color-picker .blue{background:#4e78b9}.uno-table{position:relative}

.emergency-toggle{border:1px solid #d9b9ba;background:#fff2f2;color:#9a494b;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:700;cursor:pointer;margin:6px 10px;white-space:nowrap}.emergency-active #emergencyScreen{display:flex!important;min-height:calc(100vh - 70px);align-items:center;justify-content:center;padding:35px 16px;background:#fff7f6;position:relative;z-index:1000}.emergency-active #home,.emergency-active .hero,.emergency-active footer,.emergency-active .music-player{display:none!important}.emergency-active .nav,.emergency-active .brand{visibility:hidden}.emergency-card{max-width:460px;text-align:center;background:white;padding:44px 28px;border-radius:24px;box-shadow:0 14px 40px #60333315}.emergency-card h1{font-family:Georgia,serif;font-size:30px}.emergency-card p{color:#866f74}.emergency-symbol{font-size:38px;color:#d79aa7}.emergency-card button{margin-top:18px;border:0;border-radius:30px;padding:12px 20px;background:#ab737c;color:white;cursor:pointer}#emergencyScreen[hidden]{display:none!important}

html.emergency-ready body.emergency-active{background:#000!important;color:#fff!important;overflow:hidden!important}
body.emergency-active > *:not(#emergencyScreen){display:none!important}
body.emergency-active #emergencyScreen{position:fixed!important;inset:0!important;z-index:2147483647!important;display:flex!important;align-items:center!important;justify-content:center!important;background:#000!important;color:#fff!important;font:500 28px Arial,sans-serif!important;padding:0!important;min-height:100vh!important;text-align:center!important}

/* Chat voice messages */
.chat-voice{border:0;border-radius:50%;width:42px;height:42px;min-width:42px;background:#ffe0e9;color:#8a3655;cursor:pointer;font-size:21px;align-self:end}.chat-voice.recording{background:#ed526e;color:white;animation:voice-pulse 1s infinite}.chat-voice:disabled{opacity:.5;cursor:wait}@keyframes voice-pulse{50%{box-shadow:0 0 0 8px #ed526e33}}.voice-message{display:flex;flex-direction:column;gap:7px;min-width:210px;max-width:100%}.voice-message span{font-size:12px;opacity:.8}.voice-message audio{display:block;width:min(270px,100%);height:40px}

/* In-chat camera */
.chat-camera{border:0;border-radius:50%;padding:9px;background:#fff0f4;cursor:pointer;font-size:20px}
.camera-modal[hidden]{display:none!important}.camera-modal{position:fixed;inset:0;z-index:999999;background:rgba(20,12,18,.87);display:grid;place-items:center;padding:16px}
.camera-panel{width:min(94vw,580px);background:#fff8fa;border-radius:20px;padding:16px;box-shadow:0 12px 55px #0008;color:#5e3349}
.camera-head,.camera-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.camera-head button,.camera-actions button{border:0;border-radius:12px;background:#f6d9e6;color:#60384a;padding:10px 15px;cursor:pointer}
#cameraVideo{display:block;width:100%;max-height:65vh;aspect-ratio:4/3;object-fit:contain;background:#130f12;border-radius:14px;margin-top:12px}#cameraStatus{font-size:13px;text-align:center;margin:10px 0}
.camera-actions button:last-child{background:#ef8eb6;color:white;font-weight:700}
.chat-tabs{display:flex;gap:8px;margin:0 auto 10px;max-width:1000px}.chat-tab{position:relative;border:1px solid #e2a7c3;background:#fff1f7;color:#7c3158;border-radius:999px;padding:10px 16px;font-weight:700;cursor:pointer}.chat-tab.active{background:#d978a7;color:white}.chat-unread{display:inline-block;width:9px;height:9px;border-radius:50%;background:#ef426f;margin-left:5px}.chat-shell.night-mode{background:#171522;color:#eee}.night-mode .chat-messages{background:#201d2d}.night-mode .chat-bubble{background:#302b43;color:#fff}.night-mode .chat-row.mine .chat-bubble{background:#713c67}
