:root {
  color-scheme: light;
  --ivory: #f5f8fc; --ink: #172c48; --secondary: #526780;
  --groom: #265b91; --groom-hover: #1c4774;
  --bride: #8c4965; --bride-hover: #73374f;
  --white: #fff; --line: #d5e0ed; --outer: #e8eff7;
  --accent: var(--groom); --accent-hover: var(--groom-hover);
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-8: 32px; --space-10: 40px;
  --radius: 16px; --press: 160ms ease; --entry: 240ms ease-out;
  font-family: 'Apple SD Gothic Neo', 'Malgun Gothic', system-ui, sans-serif;
  color: var(--ink); background: var(--outer); font-synthesis: none;
  -webkit-tap-highlight-color: transparent;
}
* { box-sizing: border-box; }
body { margin: 0; }
button, input { font: inherit; }
button { cursor: pointer; touch-action: manipulation; }
button, input { -webkit-appearance: none; appearance: none; }
button:focus-visible, input:focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }
button:disabled { cursor: wait; opacity: .65; }
button:active:not(:disabled) { transform: scale(.98); }
button { transition: transform var(--press), background-color var(--press), opacity var(--press); }
svg { display: block; flex-shrink: 0; }
p, h1, h2 { margin: 0; }
[hidden] { display: none !important; }
::selection { color: var(--white); background: var(--groom); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
