/* Shared interaction refinements; preserves the site's visual identity. */
:root { --ui-ease:cubic-bezier(.22,.72,.18,1); }
button, a, label { -webkit-tap-highlight-color:transparent; }
button, a, label[for], .photo-pick, .profile-upload-row label { touch-action:manipulation; }
button:focus-visible,a:focus-visible,[tabindex]:focus-visible {
  outline:2px solid rgba(190,211,255,.95)!important; outline-offset:3px;
}
input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:2px solid rgba(190,211,255,.7)!important; outline-offset:2px;
}
button:disabled { cursor:default; opacity:.4; }
button,.sf-tab,.photo-pick,.profile-upload-row label {
  min-height:44px; min-width:44px; box-sizing:border-box;
}
/* Keep the explicitly requested compact calendar and decorative avatar sizes. */
.s6-cal-grid .s6-cal-day { min-width:0; min-height:30px; }
.top-author-btn { min-width:0; }
.top { grid-template-columns:44px 1fr 44px; }
.actions { gap:12px; }
.more { padding:8px!important; }
.profile-upload-row { flex-wrap:wrap; gap:8px 16px; align-items:center; }
.profile-upload-row label,.photo-pick { display:inline-flex;align-items:center; }
.profile-edit { line-height:1.5; }
.sheet-close,.photo-remove,#profileClose { display:grid;place-items:center; }
.photo-remove { width:44px;height:44px; }
.sf-tab { display:inline-flex;align-items:center;justify-content:center; }
.sf-tab,.s5-menu-btn { touch-action:manipulation;min-width:44px!important; }
body .site-footer .sf-tab,body .site-footer .sf-tab:is(.active,:hover,:focus,:focus-visible) { width:44px!important;min-width:44px!important;min-height:44px!important; }
body #s5MemoryMenu .s5-menu-btn { min-width:44px!important; }
body .site-footer .sf-tab:focus-visible { outline:2px solid rgba(190,211,255,.95)!important;outline-offset:3px; }
.press-pop,.ui-press { animation:none!important;opacity:.7!important; }
.pop-release,.ui-release { animation:none!important;transition:opacity .16s ease,transform .2s var(--ui-ease)!important; }
.page,.post { filter:none!important;transition:opacity .24s ease,transform .28s var(--ui-ease)!important; }
.diary-shell,.chat-shell { transition:opacity .28s ease,visibility 0s linear .32s!important; }
.diary-shell.open,.chat-shell.open { transition-delay:0s!important; }
.diary-shell iframe { transition:transform .32s var(--ui-ease),opacity .24s ease!important; }
.sheet { transition:opacity .22s ease,visibility 0s linear .32s!important; }
.sheet.open { transition-delay:0s!important; }
.sheet-box { transition:transform .32s var(--ui-ease)!important; }
.sheet,.profile-dialog { top:var(--ui-viewport-top,0px);bottom:auto;height:var(--ui-viewport-height,100dvh); }
.sheet-box { max-height:calc(var(--ui-viewport-height,100dvh) - env(safe-area-inset-top) - 12px); }
.profile-editor-box { max-height:calc(var(--ui-viewport-height,100dvh) - 24px);overscroll-behavior:contain; }
.profile-dialog:not([hidden]) .profile-editor-box { animation:ui-sheet-enter .24s var(--ui-ease); }
@keyframes ui-sheet-enter { from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:none} }
.s6-chat-list { overscroll-behavior-y:contain;overflow-anchor:none; }
.s6-cal-panel { overscroll-behavior:contain; }
#musicDrawer { transition:transform .62s cubic-bezier(.32,.72,0,1)!important; }
#musicDrawerToggle {
  min-width:0!important;
  transform:translateY(-50%)!important;
  transition:opacity .38s ease,transform .62s cubic-bezier(.32,.72,0,1)!important;
}
#musicDrawer .music-drawer-panel {
  transition-duration:.62s!important;
  transition-timing-function:cubic-bezier(.32,.72,0,1)!important;
}
#profileCoverButton { width:calc(100% + 48px);margin-left:-24px;margin-right:-24px;aspect-ratio:16 / 9;border-radius:0; }
.page { padding-top:calc(env(safe-area-inset-top) + 58px)!important; }
.diary-profile { margin-top:0; }
.profile-draft-cover { aspect-ratio:16 / 9; }
.profile-note-box { width:100%;margin:18px 0 0;padding:0 0 20px;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.08);border-radius:0;backdrop-filter:none;text-align:left;display:block; }
.profile-note-title { font-size:10px;letter-spacing:.14em;color:rgba(224,224,218,.45); }
.profile-note { display:block;margin-top:9px;line-height:1.9;color:rgba(240,240,234,.72); }
.profile-status-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 22px}
.profile-status-choice{min-height:48px;border:1px solid rgba(255,255,255,.1);border-radius:13px;background:rgba(255,255,255,.025);color:rgba(238,238,232,.58);padding:10px 12px;text-align:left;font-size:13px}
.profile-status-choice.active{border-color:rgba(225,207,242,.38);background:rgba(205,177,230,.1);color:rgba(248,245,250,.94)}
.profile-direct-input{display:none!important}
.profile-status-editor{max-width:360px;padding-bottom:18px}
.todo-filters{display:flex;gap:8px;margin:0 0 16px;flex-wrap:wrap}
.todo-filters button{border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:8px 12px;background:transparent;color:rgba(235,235,230,.55);font-size:12px}
.todo-filters button.active{background:rgba(255,255,255,.08);color:rgba(245,245,240,.95)}
.todo-state{font-size:11px;margin-top:8px;color:rgba(230,230,225,.5)}
.todo-state.overdue{color:#e4a08d}
.tool-item-actions{display:flex;gap:12px;justify-content:flex-end}
.todo-item{gap:16px;flex-wrap:wrap}
.todo-item>div:first-child{min-width:0;flex:1 1 140px}
.todo-title{overflow-wrap:anywhere}
#musicDrawer .music-drawer-panel.pop-in { animation:none!important; }

/* Enlarged photos sit directly on the viewer overlay without a card frame. */
.memory-viewer-box {
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  overflow:visible!important;
}
.memory-viewer-img {
  max-height:78vh!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:transparent!important;
}
@media(max-width:700px) {
  .memory-viewer-box { padding:0!important; }
  .memory-viewer-img { max-height:72vh!important; }
}

/* Quiet, borderless proportions for the couple question area. */
#coupleQa {
  margin-top:2px!important;
  padding-top:8px!important;
  border:0!important;
}
#coupleQa button,
#coupleQa input,
#coupleQa .couple-qa-draw,
#coupleQa .couple-qa-current,
#coupleQa .couple-qa-answer-block,
#coupleQa .couple-qa-archive-item,
#coupleQa .couple-qa-wish-item {
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#coupleQa .couple-qa-head { min-height:32px; }
#coupleQa .couple-qa-title { font-size:12.5px;letter-spacing:.12em; }
#coupleQa .couple-qa-ask {
  min-height:32px!important;
  min-width:44px!important;
  padding:3px 4px!important;
  font-size:10px!important;
}
#coupleQa .couple-qa-tier-row { margin-top:4px;gap:6px; }
#coupleQa .couple-qa-picker.open { margin-top:5px; }
#coupleQa .couple-qa-picker-inner { gap:3px; }
#coupleQa .couple-qa-draw {
  min-height:0;
  padding:7px 2px!important;
  font-size:12.5px;
  line-height:1.55;
}
#coupleQa .couple-qa-draw-row {
  justify-content:center;
  gap:26px;
  margin-top:2px;
}
#coupleQa .couple-qa-shuffle,
#coupleQa .couple-qa-confirm {
  flex:0 0 auto;
  min-width:64px!important;
  min-height:36px!important;
  padding:3px 6px!important;
  font-size:10.5px!important;
  letter-spacing:.1em!important;
}
#coupleQa .couple-qa-custom-row {
  margin-top:5px;
  padding-top:4px;
  border:0!important;
}
#coupleQa .couple-qa-custom-input,
#coupleQa .couple-qa-reply-input,
#coupleQa .couple-qa-wish-input {
  min-height:34px!important;
  padding:4px 0!important;
  font-size:12px!important;
}
#coupleQa .couple-qa-custom-send,
#coupleQa .couple-qa-reply-send,
#coupleQa .couple-qa-wish-send {
  min-height:34px!important;
  min-width:44px!important;
  padding:3px 0!important;
  font-size:10px!important;
}
#coupleQa .couple-qa-current {
  margin-top:7px;
  padding:8px 2px!important;
}
#coupleQa .couple-qa-asker { margin-bottom:5px;gap:6px;font-size:9.5px; }
#coupleQa .couple-qa-avatar { width:20px;height:20px; }
#coupleQa .couple-qa-text { margin-bottom:5px;font-size:13.5px;line-height:1.65; }
#coupleQa .couple-qa-answer-block { padding:5px 0!important; }
#coupleQa .couple-qa-stats { margin-top:6px;padding-top:4px;border:0!important;gap:12px; }
#coupleQa .couple-qa-stat-btn { min-height:32px!important;padding:2px 0!important;font-size:9.5px!important; }
#coupleQa .couple-qa-panel.open { margin-top:5px; }
#coupleQa .couple-qa-archive-item,
#coupleQa .couple-qa-wish-item { padding:6px 0!important; }

/* Feed-style content stays quiet when there is nothing actionable to show. */
.couple-react,
.couple-qa-waiting,
.couple-qa-locked,
.couple-qa-panel-empty,
.notice-empty,
.s6-chat-empty,
.hundred-empty,
.tool-empty {
  display:none!important;
}
#coupleQa .couple-qa-current {
  display:grid;
  grid-template-columns:1fr;
  gap:0;
}
#coupleQa .couple-qa-asker { order:1; }
#coupleQa .couple-qa-text { order:2; }
#coupleQa .couple-qa-answer-block,
#coupleQa .couple-qa-reply-row { order:3; }
#coupleQa .couple-qa-stats { justify-content:flex-start; }
@media(pointer:coarse),(max-width:600px) {
  input:not([type="range"]):not([type="checkbox"]):not([type="radio"]),textarea,select { font-size:16px!important; }
  .post-text,.profile-note { font-size:14px; }
  .time { font-size:11px;color:rgba(224,224,218,.6); }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto!important; }
  *,*::before,*::after { animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important;scroll-behavior:auto!important; }
  #snowCanvas,#snowFgCanvas,#fogCanvas { visibility:hidden!important; }
  .page,.post { transform:none!important;filter:none!important; }
}
