:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--songi-bg:#f7f6f3;--songi-surface:#fff;--songi-surface-muted:#f1efeb;--songi-border:#e6e3de;--songi-border-strong:#d3cfc8;--songi-text:#1c1b19;--songi-text-muted:#6d6a64;--songi-primary:#1c1b19;--songi-primary-hover:#3b3935;--songi-on-primary:#fff;--songi-accent:#f0532e;--songi-accent-soft:#fff0eb;--songi-accent-text:#c2410c;--songi-danger:#c0362c;--songi-danger-soft:#fdecea;--songi-radius-sm:.625rem;--songi-radius:1rem;--songi-radius-lg:1.5rem;--songi-shadow-sm:0 1px 2px #1c1b190f;--songi-shadow:0 1px 2px #1c1b190a, 0 8px 24px #1c1b190f;--songi-shadow-lg:0 2px 4px #1c1b190a, 0 16px 40px #1c1b191a;--songi-focus:0 0 0 3px #f0532e59;--songi-content-width:44rem}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--songi-bg);color:var(--songi-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;word-break:keep-all;font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,Segoe UI,Roboto,sans-serif;font-size:1rem;line-height:1.55}h1,h2,h3{letter-spacing:-.02em;line-height:1.25}::selection{background:var(--songi-accent-soft);color:var(--songi-text)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}.app{flex-direction:column;min-height:100vh;display:flex}.app__topbar,.app__main,.app__footer{width:min(100%, var(--songi-content-width));margin:0 auto;padding-inline:1.25rem}.app__topbar{justify-content:space-between;align-items:center;gap:1rem;padding-block:1.25rem 0;display:flex}.app__home{color:var(--songi-text-muted);border-radius:999px;align-items:center;gap:.375rem;padding:.375rem .75rem .375rem .5rem;font-size:.9375rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}@media (hover:hover){.app__home:hover{background:var(--songi-surface-muted);color:var(--songi-text)}}.app__home:focus-visible{box-shadow:var(--songi-focus);color:var(--songi-text);outline:none}.app__main{flex-direction:column;flex:1;gap:1.5rem;padding-block:clamp(2rem,6vh,4rem) 2.5rem;display:flex}.app__header{text-align:center;flex-direction:column;align-items:center;gap:.625rem;display:flex}.app__eyebrow{background:var(--songi-accent-soft);color:var(--songi-accent-text);border-radius:999px;align-items:center;gap:.375rem;padding:.3rem .75rem;font-size:.8125rem;font-weight:700;display:inline-flex}.app__title{text-wrap:balance;margin:0;font-size:clamp(1.875rem,5.5vw,2.75rem);font-weight:800}.app__subtitle{text-wrap:balance;max-width:36rem;color:var(--songi-text-muted);margin:0}.app__card{border:1px solid var(--songi-border);border-radius:var(--songi-radius-lg);background:var(--songi-surface);box-shadow:var(--songi-shadow);padding:clamp(1.25rem,4vw,2rem)}.app__footer{color:var(--songi-text-muted);text-align:center;padding-block:0 1.75rem;font-size:.8125rem}.app__footer p{margin:0}.btn{appearance:none;border:1px solid var(--songi-border-strong);background:var(--songi-surface);min-height:2.75rem;color:var(--songi-text);font:inherit;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.9375rem;font-weight:700;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s;display:inline-flex}@media (hover:hover){.btn:not(:disabled):hover{background:var(--songi-surface-muted)}}.btn:not(:disabled):active{transform:scale(.98)}.btn:focus-visible{box-shadow:var(--songi-focus);outline:none}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{border-color:var(--songi-primary);background:var(--songi-primary);color:var(--songi-on-primary)}@media (hover:hover){.btn--primary:not(:disabled):hover{border-color:var(--songi-primary-hover);background:var(--songi-primary-hover)}}.btn--ghost{color:var(--songi-text-muted);background:0 0;border-color:#0000}@media (hover:hover){.btn--ghost:not(:disabled):hover{background:var(--songi-surface-muted);color:var(--songi-text)}}.btn--danger{border-color:var(--songi-danger);background:var(--songi-danger);color:#fff}@media (hover:hover){.btn--danger:not(:disabled):hover{background:#a82d24}}.btn--danger-outline{background:var(--songi-surface);color:var(--songi-danger);border-color:#f1c4bf}@media (hover:hover){.btn--danger-outline:not(:disabled):hover{background:var(--songi-danger-soft)}}.btn--small{min-height:2.25rem;padding:.375rem .875rem;font-size:.875rem}.btn--large{min-width:12rem;min-height:3.5rem;padding:.875rem 2rem;font-size:1.0625rem}kbd{border:1px solid var(--songi-border-strong);background:var(--songi-surface);color:var(--songi-text);font:inherit;border-bottom-width:2px;border-radius:.375rem;padding:.0625rem .4375rem;font-size:.8125rem;font-weight:600;display:inline-block}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.section-title{color:var(--songi-text-muted);letter-spacing:.02em;margin:0 0 .875rem;font-size:.8125rem;font-weight:700}.meeting__dog,.play__dog,.ending__dog,.family__dog{background:radial-gradient(circle at 50% 58%, var(--songi-accent-soft) 0 52%, transparent 53%);border-radius:50%}.start{text-align:center;align-items:center}.start__cast{justify-content:center;align-items:flex-end;gap:.25rem;margin-bottom:-.5rem;display:flex}.start__dog{width:clamp(5.5rem,22vw,8rem);height:auto}.start__dog:nth-child(2){width:clamp(6.5rem,26vw,9.5rem)}.start__actions{flex-direction:column;align-items:center;gap:.625rem;display:flex}.start__note{max-width:22rem;color:var(--songi-text-muted);margin:0;font-size:.8125rem}.lives{text-align:left;width:100%}.lives__list{flex-direction:column;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.lives__item{appearance:none;border-radius:var(--songi-radius);background:var(--songi-surface-muted);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;border:1px solid #0000;grid-template-columns:3rem 1fr auto;align-items:center;gap:.875rem;padding:.625rem .75rem;display:grid}@media (hover:hover){.lives__item:hover{border-color:var(--songi-border-strong)}}.lives__item:focus-visible{box-shadow:var(--songi-focus);outline:none}.lives__face{background:var(--songi-accent-soft);border-radius:50%;width:3rem;height:3rem}.lives__body{flex-direction:column;min-width:0;display:flex}.lives__name{font-weight:700}.lives__meta,.lives__date{color:var(--songi-text-muted);font-size:.8125rem}.lives__date{white-space:nowrap}.lives__note{color:var(--songi-text-muted);margin:.75rem 0 0;font-size:.75rem}@media (width<=30rem){.lives__item{grid-template-columns:3rem 1fr;row-gap:0}.lives__face{grid-row:span 2}}.meeting{text-align:center;flex-direction:column;align-items:center;gap:1rem;display:flex}.meeting__dog{width:min(14rem,60vw);height:auto}.meeting__title{margin:0;font-size:clamp(1.5rem,5vw,2rem)}.meeting__intro p{margin:.25rem 0}.meeting__rarity{border-radius:var(--songi-radius);background:var(--songi-surface-muted);color:var(--songi-text-muted);flex-direction:column;gap:.125rem;margin:0;padding:.625rem 1rem;font-size:.8125rem;display:flex}.meeting__rarity strong{color:var(--songi-accent);font-size:1rem}.meeting__rarity-note{color:var(--songi-text);font-weight:600}.meeting__name{text-align:left;flex-direction:column;align-items:stretch;gap:.625rem;width:100%;max-width:26rem;display:flex}.meeting__name label{color:var(--songi-text-muted);font-size:.8125rem;font-weight:700}.meeting__name input{border:1px solid var(--songi-border-strong);border-radius:var(--songi-radius);background:var(--songi-surface);color:var(--songi-text);font:inherit;padding:.75rem 1rem;font-size:1.0625rem}.meeting__name input:focus-visible{border-color:var(--songi-accent);box-shadow:var(--songi-focus);outline:none}.meeting__hint{color:var(--songi-danger);margin:0;font-size:.8125rem}.meeting__actions{flex-direction:column;align-items:stretch;gap:.375rem;margin-top:.5rem;display:flex}.facts{border-radius:var(--songi-radius);background:var(--songi-surface-muted);text-align:left;grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));gap:.75rem 1rem;width:100%;margin:0;padding:1rem;display:grid}.facts--center{text-align:center}.facts dt{color:var(--songi-text-muted);font-size:.75rem;font-weight:700}.facts dd{margin:0;font-weight:600}.chips{flex-wrap:wrap;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.chip{appearance:none;border:1px solid var(--songi-border-strong);background:var(--songi-surface);color:var(--songi-text);font:inherit;border-radius:999px;padding:.3rem .75rem;font-size:.875rem;font-weight:600}button.chip{cursor:pointer}button.chip[aria-pressed=true]{border-color:var(--songi-primary);background:var(--songi-primary);color:var(--songi-on-primary)}button.chip:focus-visible{box-shadow:var(--songi-focus);outline:none}.chips--static .chip{background:var(--songi-accent-soft);color:var(--songi-accent-text);border-color:#0000;font-size:.8125rem}.chips--static.chips--concern .chip{background:var(--songi-surface-muted);color:var(--songi-text)}.sibling .chips--concern{margin-bottom:.75rem}.siblings{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.sibling{border:1px solid var(--songi-border);border-radius:var(--songi-radius-lg);background:var(--songi-surface);box-shadow:var(--songi-shadow-sm);padding:1rem 1.125rem}.sibling__head{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.sibling__dog{background:var(--songi-accent-soft);border-radius:50%;flex:none;width:3rem;height:3rem}.sibling__name{margin:0;font-size:1.0625rem}.sibling__meta{color:var(--songi-text-muted);margin:0;font-size:.8125rem}.sibling--gone .sibling__head{margin-bottom:0}.sibling--gone .sibling__dog{opacity:.5}.play__clock{color:var(--songi-text-muted);font-variant-numeric:tabular-nums;font-size:.875rem;font-weight:600}.play__hero{align-items:center;gap:1.25rem;display:flex}.play__dog{flex:none;width:clamp(7rem,28vw,10rem);height:auto}.play__who{flex-direction:column;gap:.375rem;min-width:0;display:flex}.play__name{margin:0;font-size:clamp(1.5rem,5vw,2rem)}.play__meta{color:var(--songi-text-muted);margin:0}.play__warning{color:var(--songi-danger);margin:.75rem 0 0;font-size:.8125rem}.controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:.625rem;display:flex}.rush__icon{width:.875rem;height:.875rem}.rush[aria-pressed=true]{border-color:var(--songi-accent);background:var(--songi-accent-soft);color:var(--songi-accent-text)}.segmented{background:var(--songi-surface-muted);border:0;border-radius:999px;gap:.25rem;margin:0;padding:.25rem;display:flex}.segmented__option{position:relative}.segmented__option input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.segmented__option span{color:var(--songi-text-muted);border-radius:999px;padding:.4rem .8rem;font-size:.875rem;font-weight:600;display:block}.segmented__option input:checked+span{background:var(--songi-surface);color:var(--songi-text);box-shadow:var(--songi-shadow-sm), 0 0 0 1px var(--songi-border)}.segmented__option input:focus-visible+span,.toggle input:focus-visible+span{box-shadow:var(--songi-focus)}.toggle{cursor:pointer;align-items:center;font-size:.9375rem;font-weight:600;display:inline-flex;position:relative}.toggle input{opacity:0;position:absolute}.toggle span{border-radius:999px;align-items:center;gap:.5rem;padding:.25rem .375rem .25rem .25rem;display:inline-flex}.toggle span:before{content:"";background:radial-gradient(circle at .625rem 50%, #fff .45rem, transparent .5rem), var(--songi-border-strong);border-radius:999px;width:2.25rem;height:1.25rem;transition:background .15s}.toggle input:checked+span:before{background:radial-gradient(circle at 1.625rem 50%, #fff .45rem, transparent .5rem), var(--songi-accent)}.stats{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.625rem 1.5rem;margin:0;display:grid}.stats__row{grid-template-columns:3.5rem 1fr;align-items:center;display:grid}.stats__row dt{font-size:.875rem;font-weight:700}.stats__row--household dt{color:var(--songi-text-muted)}.stats__row dd{align-items:center;gap:.5rem;margin:0;display:flex}.stats__bar{background:var(--songi-surface-muted);border-radius:999px;flex:1;height:.5rem;overflow:hidden}.stats__fill{border-radius:inherit;background:var(--songi-primary);height:100%;transition:width .4s;display:block}.stats__row--household .stats__fill{background:var(--songi-border-strong)}.stats__row--pair dt{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stats__row--pair .stats__fill{background:var(--songi-accent)}.stats--compact{grid-template-columns:max-content 1fr;gap:.375rem .75rem}.stats--compact .stats__row{display:contents}.stats--compact .stats__row dt{font-size:.8125rem}.stats__value{width:2rem;color:var(--songi-text-muted);font-variant-numeric:tabular-nums;text-align:right;font-size:.8125rem}.lifemap__cells{flex-wrap:wrap;gap:3px;margin:0;padding:0;list-style:none;display:flex}.lifemap__cell{border-radius:3px;width:12px;height:12px}.lifemap__cells--compact .lifemap__cell{border-radius:2px;width:9px;height:9px}.lifemap__cell--great{background:var(--songi-accent)}.lifemap__cell--good{background:#f7b19c}.lifemap__cell--okay{background:var(--songi-border)}.lifemap__cell--low{background:#a8a49d}.lifemap__legend{color:var(--songi-text-muted);flex-wrap:wrap;gap:.375rem .875rem;margin:.75rem 0 0;padding:0;font-size:.75rem;list-style:none;display:flex}.lifemap__legend li{align-items:center;gap:.3rem;display:inline-flex}.lifemap__swatch{border-radius:2px;width:10px;height:10px;display:inline-block}.story{flex-direction:column;gap:.625rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.story__entry{grid-template-columns:6.25rem 1fr;align-items:baseline;gap:.5rem;display:grid}.story__when{color:var(--songi-text-muted);font-variant-numeric:tabular-nums;font-size:.75rem}.story__choice{color:var(--songi-accent-text);margin-bottom:.125rem;font-size:.8125rem;display:block}.story__entry--stage .story__text,.story__entry--birthday .story__text{color:var(--songi-text-muted)}.story__entry--passed .story__text{font-weight:700}.story__epilogue{margin-top:1.5rem}.choice__backdrop{z-index:20;background:#1c1b1959;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.choice{border-radius:var(--songi-radius-lg);background:var(--songi-surface);width:min(100%,28rem);box-shadow:var(--songi-shadow-lg);flex-direction:column;gap:1rem;padding:1.5rem;animation:.22s cubic-bezier(.2,.8,.2,1) both choice-in;display:flex}.choice__kicker{color:var(--songi-accent-text);margin:0;font-size:.8125rem;font-weight:700}.choice__text{margin:0;font-size:1.0625rem;font-weight:700;line-height:1.5}.choice__options{flex-direction:column;gap:.5rem;display:flex}.choice__option{border-radius:var(--songi-radius);text-align:left;justify-content:flex-start;min-height:3rem}.choice__auto{color:var(--songi-text-muted);margin:0;font-size:.8125rem}.newcomer{text-align:center;align-items:center;max-height:calc(100dvh - 2.5rem);overflow-y:auto}.newcomer:focus{outline:none}.newcomer .meeting__dog{flex:none;width:min(9rem,40vw)}@keyframes choice-in{0%{opacity:0;transform:translateY(.5rem)scale(.98)}to{opacity:1;transform:none}}.ending{text-align:center;flex-direction:column;align-items:center;gap:1rem;display:flex}.ending__kicker{background:var(--songi-accent-soft);color:var(--songi-accent-text);border-radius:999px;margin:0;padding:.3rem .75rem;font-size:.8125rem;font-weight:700}.ending__dog{width:min(12rem,52vw);height:auto}.ending__title{margin:0;font-size:clamp(1.75rem,6vw,2.25rem)}.ending__meta{color:var(--songi-text-muted);margin:0}.ending__rarity{color:var(--songi-text-muted);margin:0;font-size:.875rem}.ending__rarity strong{color:var(--songi-accent)}.ending__moments,.ending__map{text-align:left;width:100%}.ending__moments ol{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.ending__moments li{border-radius:var(--songi-radius);background:var(--songi-surface-muted);grid-template-columns:6.25rem 1fr;gap:.5rem;padding:.75rem;display:grid}.ending__actions{flex-direction:column;align-items:center;gap:.375rem;margin-top:.5rem;display:flex}.ending__date{color:var(--songi-text-muted);margin:-.5rem 0 0;font-size:.8125rem}.ending__share{flex-direction:column;align-items:center;gap:.25rem;margin-top:.25rem;display:flex}.ending__share-buttons{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.ending__note{min-height:1.25rem;color:var(--songi-text-muted);margin:0;font-size:.8125rem}.family__cards{flex-direction:column;gap:.75rem;display:flex}.family__card{border-radius:var(--songi-radius);background:var(--songi-surface-muted);grid-template-columns:6rem 1fr;align-items:start;gap:1rem;padding:1rem;display:grid}.family__dog{width:6rem;height:auto}.family__body{flex-direction:column;gap:.375rem;min-width:0;display:flex}.family__badge{background:var(--songi-accent-soft);color:var(--songi-accent-text);border-radius:999px;align-self:flex-start;margin:0;padding:.15rem .6rem;font-size:.75rem;font-weight:700}.family__name{margin:0;font-size:1.125rem}.family__meta,.family__line{color:var(--songi-text-muted);margin:0;font-size:.875rem}.family__moments{flex-direction:column;gap:.25rem;margin:.25rem 0 0;padding-left:1.1rem;font-size:.9375rem;display:flex}.family__farewell{margin:.25rem 0 0;font-weight:700}@media (width<=30rem){.play__hero{text-align:center;flex-direction:column}.play__who{align-items:center}.story__entry,.ending__moments li{grid-template-columns:1fr;gap:.125rem}.family__card{grid-template-columns:1fr;justify-items:center}.family__body{width:100%}}
