/* F meets F: a small constellation that leads into a shared day. */
.home-headline { position:relative; padding-bottom:43px; }
.home-choice-doodle { display:flex; align-items:center; gap:5px; width:max-content; max-width:100%; margin:5px 5% -34px auto; color:var(--raspberry); transform:rotate(-8deg); font:700 29px/1.2 Gaegu,cursive; }
.home-choice-doodle svg { width:68px; height:39px; fill:none; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:130; animation:choice-pencil .9s ease-out both; }
@keyframes choice-pencil { from { stroke-dashoffset:130; opacity:0; } to { stroke-dashoffset:0; opacity:1; } }
.hub { grid-template-rows:auto auto minmax(0,1fr) auto auto; }
.hub-together { display:flex; align-items:center; gap:20px; min-height:72px; padding:12px 22px; width:100%; border:1px solid #C9686840; border-radius:20px; background:#fff5e8; color:var(--space); cursor:pointer; text-align:left; font-family:var(--font); }
.hub-together>span:nth-child(2) { flex:1; min-width:0; }
.hub-together strong { display:block; font-size:18px; line-height:1.4; letter-spacing:-.045em; }
.hub-together small { display:block; font-size:11px; margin-top:3px; color:var(--muted); line-height:1.5; }
.together-orbit { display:flex; align-items:center; gap:10px; flex:none; }
.together-orbit i,.together-mark i { display:grid; place-items:center; width:36px; height:36px; border:1px solid #C9686860; border-radius:50%; font:800 24px/1 Syne,var(--font); font-style:normal; color:var(--raspberry); background:var(--paper); }
.together-orbit i:first-child,.together-mark i:first-child { animation:friend-approach 5s ease-in-out infinite; }
.together-orbit i:last-child,.together-mark i:last-child { color:var(--space); animation:friend-approach 5s ease-in-out infinite reverse; }
.together-orbit b { font-size:15px; color:var(--coral); }
@keyframes friend-approach { 0%,100% { transform:rotate(-8deg) translateY(-2px); } 50% { transform:rotate(8deg) translateY(3px); } }
.together-dialog { width:min(660px,calc(100% - 28px)); }
.together-mark { display:flex; align-items:center; justify-content:center; gap:30px; margin:12px auto 25px; color:var(--coral); }
.together-mark i { width:65px; height:65px; font-size:39px; }
.together-dialog #together-loading { color:var(--muted); font-size:12px; line-height:1.8; }
#together-form { display:grid; gap:9px; margin-top:20px; }
#together-form label { font-size:12px; font-weight:650; margin-top:8px; }
#together-form select { width:100%; min-width:0; border:1px solid #01264125; border-radius:12px; background:white; color:var(--space); font:400 16px var(--font); padding:12px; min-height:48px; }
.together-dialog :is(button,select,a):focus-visible,.hub-together:focus-visible { outline:2px solid var(--raspberry); outline-offset:4px; }
.together-dialog button:disabled { opacity:.5; cursor:wait; }
.together-manage { display:block; margin:24px 0 0; padding:10px 0; font-size:12px; color:var(--space); }
#together-error { padding:12px; color:#982340; background:#fff0f4; border-radius:12px; font-size:12px; }
#together-result h3 { font-size:21px; letter-spacing:-.045em; margin:27px 0 10px; overflow-wrap:anywhere; }
.together-explain { color:var(--muted); font-size:11px; line-height:1.7; }
.together-dates { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:18px; }
.together-dates article { min-width:0; display:flex; flex-direction:column; padding:16px; border:1px solid #01264118; border-radius:18px; background:#fff; }
.together-dates article:first-child { border:2px solid var(--coral); background:#fff8ef; }
.together-date-head { display:flex; gap:8px; justify-content:space-between; align-items:center; }
.together-date-head time { font-size:13px; font-weight:650; }
.together-date-head strong { font:800 30px/1.1 Syne,var(--font); color:var(--raspberry); }
.together-date-head small { display:block; font:500 9px/1.5 var(--font); color:var(--muted); }
.together-scores { display:flex; flex-wrap:wrap; align-items:center; gap:5px; margin-top:13px; font-size:10px; }
.together-scores span { padding:5px 7px; border-radius:7px; background:#e9f0ef; overflow-wrap:anywhere; }
.together-scores i { font-style:normal; color:var(--muted); }
.together-dates p { font-size:11px; line-height:1.7; color:var(--muted); overflow-wrap:anywhere; }
.together-dates p.together-caution { color:#923044; }
.together-dates button { margin-top:auto; border:0; border-radius:10px; background:var(--space); color:white; padding:12px 8px; min-height:44px; font:600 11px/1.5 var(--font); cursor:pointer; }
.fortune-cautions { margin:18px 0 28px; padding:22px; background:#fff2ed; border:1px solid #C9686855; border-radius:22px; }
.cautions-heading { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.cautions-stamp { flex:none; display:grid; place-items:center; width:47px; height:47px; font:800 27px/1 var(--hanja),serif; color:var(--raspberry); border:1px solid var(--coral); border-radius:14px 14px 5px 5px; transform:rotate(-5deg); }
.cautions-heading h2 { font-size:22px; letter-spacing:-.05em; margin:0 0 4px; }
.cautions-heading p,.cautions-note { font-size:11px; color:var(--muted); line-height:1.6; margin:0; }
.cautions-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)); gap:12px; }
.cautions-list article { min-width:0; background:#fffdf8; border-radius:14px; padding:16px; border-top:3px solid var(--coral); }
.cautions-list article:first-child { border-top-color:var(--raspberry); }
.cautions-list article>span { font-size:10px; color:#923044; }
.cautions-list h3 { margin:8px 0; font-size:17px; line-height:1.5; letter-spacing:-.04em; }
.cautions-list p { margin:0 0 10px; font-size:12px; line-height:1.8; }
.cautions-list details { font-size:11px; color:var(--muted); line-height:1.7; }
.cautions-list summary { cursor:pointer; padding:6px 0; }
.cautions-note { margin-top:12px; }
.fortune-caution { padding:4cqw; border-radius:4cqw; background:#fff0ed; border:1px solid #C9686866; display:grid; gap:2cqw; }
.fortune-caution>span { font-size:3cqw; color:#982340; font-weight:700; }
.fortune-caution strong { font-size:4cqw; line-height:1.5; }
.fortune-caution p { font-size:3.3cqw; line-height:1.6; margin:0; }
.fortune-back:has(.fortune-caution) { overflow-y:auto; }
@media(max-width:700px){
  .home-choice-doodle { font-size:25px; margin-right:8%; }
  .home-choice-doodle svg { width:51px; height:30px; }
  .hub-together { min-height:65px; padding:10px 14px; gap:12px; border-radius:16px; }
  .hub-together strong { font-size:15px; }
  .hub-together small { font-size:10px; }
  .together-orbit { gap:3px; }
  .together-orbit i { width:25px; height:29px; font-size:19px; }
  .together-orbit b { font-size:11px; }
  .hub-together .hub-arrow { width:23px; height:23px; font-size:16px; }
  .cautions-list { grid-template-columns:minmax(0,1fr); }
  .fortune-cautions { padding:17px; }
  .cautions-heading h2 { font-size:20px; }
}
@media(max-width:440px){ .together-dates { grid-template-columns:minmax(0,1fr); } }
@media(max-height:650px){ .hub { --hub-gap:9px; } .hub-together { min-height:49px; padding-block:7px; } .hub-together small { display:none; } }
@media(prefers-reduced-motion:reduce){ .home-choice-doodle svg,.together-orbit i,.together-mark i { animation:none; } }
body.motion-paused .home-choice-doodle svg,body.motion-paused .together-orbit i,body.motion-paused .together-mark i { animation:none; }
