:root{color-scheme:light;--peace-background: #faf8f1;--peace-surface: #fffdf8;--peace-surface-subtle: #fdfbf6;--peace-background-disabled: #e0dacb;--peace-ink: #14345f;--peace-text-secondary: #6e695d;--peace-text-disabled: #5f5a4e;--peace-on-accent: #ffffff;--peace-text-selected: #3c5a82;--peace-text-error: #a84747;--peace-icon: #14345f;--peace-border: #e9e3d5;--peace-border-strong: #c9c2b2;--peace-separator: #ece6d9;--peace-border-selected: #14345f;--peace-border-error: #a84747;--peace-action-primary: #14345f;--peace-action-pressed: #3c5a82;--peace-action-disabled: #e0dacb;--peace-indicator-inactive: #d3cdbe;--peace-indicator-active: #14345f;--peace-pink: #f6dddc;--peace-blue: #d9e6f7;--peace-yellow: #f9e7b0;--peace-lavender: #e1daf4;--peace-mint: #cfe9d9;--peace-wisdom-background: var(--peace-pink);--peace-place-background: var(--peace-mint);--peace-walking-background: var(--peace-blue);--peace-moment-background: var(--peace-lavender);--space-xxs: 4px;--space-xs: 8px;--space-sm: 12px;--space-md: 16px;--space-screen: 20px;--space-lg: 24px;--space-xl: 32px;--radius-sm: 4px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 999px;--stroke-hairline: 1px;--stroke-emphasis: 2px;--nav-height: 58px;--touch: 44px;--indicator-dot: 8px;--font-display: "Gaegu", "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", "Segoe UI", Roboto, sans-serif}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem}}@layer base,components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.bg-peace-surface{background-color:var(--peace-surface)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@font-face{font-family:Gaegu;src:url(/fonts/Gaegu-Bold.woff2) format("woff2");font-weight:700;font-display:swap}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%}body{background:var(--peace-background);color:var(--peace-ink);font-family:var(--font-body);font-size:15px;line-height:1.5;overscroll-behavior-y:none}#root{min-height:100%}button{font:inherit;color:inherit;cursor:pointer}h1,h2,h3{font-family:var(--font-display);font-weight:700;margin:0;line-height:1.3}.shell{display:flex;flex-direction:column;min-height:100dvh;max-width:480px;margin:0 auto}.shell__body{flex:1;display:flex;flex-direction:column;min-height:0;padding:0 var(--space-screen) var(--space-screen);padding-top:calc(env(safe-area-inset-top) + 10px)}.screen{display:flex;flex-direction:column;gap:var(--space-md);flex:1;min-height:0}.screen__header{display:flex;align-items:flex-end;gap:0;padding-bottom:var(--space-md)}.screen__panel{flex:1;border:1px solid var(--peace-separator);border-radius:var(--radius-xl);padding:var(--space-md);overflow-y:auto;-webkit-overflow-scrolling:touch}.bubble{position:relative;flex:1;background:var(--peace-surface);border:1px solid var(--peace-border);border-radius:var(--radius-lg);padding:10px var(--space-md);font-family:var(--font-display);font-size:17px;white-space:pre-line}.bubble:after{content:"";position:absolute;right:-7px;bottom:14px;width:12px;height:12px;background:var(--peace-surface);border-right:1px solid var(--peace-border);border-bottom:1px solid var(--peace-border);transform:rotate(-45deg)}.screen__character{width:110px;height:82px;flex:none;margin-left:-8px}.nav{display:flex;align-items:stretch;min-height:var(--nav-height);background:var(--peace-surface-subtle);border-top:1px solid var(--peace-separator);padding-bottom:env(safe-area-inset-bottom)}.nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-xxs);padding:var(--space-xxs) 0 5px;background:none;border:0;min-height:var(--nav-height)}.nav__tab--character{flex:0 0 80px;justify-content:center}.nav__marker{width:24px;height:3px;border-radius:2px;background:var(--peace-action-primary);opacity:0}.nav__tab[aria-current=page] .nav__marker{opacity:1}.nav__icon{width:22px;height:22px;opacity:.55}.nav__tab[aria-current=page] .nav__icon{opacity:1}.nav__label{font-size:12px;color:var(--peace-text-secondary)}.nav__tab[aria-current=page] .nav__label{color:var(--peace-ink)}.nav__character{width:40px;height:28px;object-fit:contain}.nav__divider{flex:0 0 22px;display:flex;align-items:center;justify-content:center}.nav__divider span{width:1px;height:20px;background:var(--peace-separator)}.button{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:var(--touch);padding:0 var(--space-md);border:0;border-radius:var(--radius-md);background:var(--peace-action-primary);color:var(--peace-on-accent);font-family:var(--font-display);font-size:17px}.button:active:not(:disabled){background:var(--peace-action-pressed)}.button:disabled{background:var(--peace-action-disabled);color:var(--peace-text-secondary);cursor:default}.button--quiet{background:none;color:var(--peace-text-selected);text-decoration:underline;min-height:36px;width:auto;font-size:15px}.button--outline{background:var(--peace-surface);color:var(--peace-ink);border:1px solid var(--peace-border-strong)}.button--danger{background:var(--peace-surface);color:var(--peace-text-error);border:1px solid var(--peace-border-error)}.field{width:100%;min-height:var(--touch);padding:0 var(--space-md);background:var(--peace-surface);border:1px solid var(--peace-border);border-radius:var(--radius-md);font-family:var(--font-display);font-size:17px;color:var(--peace-ink)}.field--invalid{border-color:var(--peace-border-error);border-width:2px}.shake{animation:shake .3s ease}@keyframes shake{0%{transform:translate(0)}17%{transform:translate(8px)}38%{transform:translate(-8px)}58%{transform:translate(5px)}79%{transform:translate(-3px)}to{transform:translate(0)}}.hint{font-size:13px;color:var(--peace-text-secondary)}.hint--error{color:var(--peace-text-error)}.notice{background:var(--peace-surface);border:1px solid var(--peace-border);border-radius:var(--radius-md);padding:var(--space-md);font-size:13px;color:var(--peace-text-secondary)}.alert{border:1px solid var(--peace-border-error);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-md);color:var(--peace-text-error);font-size:13px}.stack{display:flex;flex-direction:column;gap:var(--space-xs)}.stack--md{gap:var(--space-md)}.row{display:flex;align-items:center;gap:var(--space-xs)}.section-title{font-family:var(--font-display);font-size:22px}.onboarding{display:flex;flex-direction:column;flex:1;min-height:0;gap:var(--space-md)}.onboarding__title{font-family:var(--font-display);font-size:30px;white-space:pre-line;padding-top:32px}.onboarding__stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:160px}.dots{display:flex;gap:var(--space-xs);justify-content:center}.dots span{width:8px;height:8px;border-radius:50%;background:var(--peace-indicator-inactive)}.dots span[data-active=true]{background:var(--peace-action-primary)}.heart{width:120px;height:120px;display:grid;place-items:center;font-size:64px;animation:heartbeat 1.1s ease-in-out infinite}@keyframes heartbeat{0%,to{transform:scale(1)}28%{transform:scale(1.14)}55%{transform:scale(.97)}}.birth-progress{width:160px;height:6px;border-radius:3px;background:var(--peace-action-disabled);overflow:hidden}.birth-progress span{display:block;height:100%;background:var(--peace-action-primary);transition:width .1s linear}.choice{display:flex;align-items:center;gap:12px;width:100%;min-height:72px;padding:12px;text-align:left;background:var(--peace-surface);border:1px solid var(--peace-border);border-radius:var(--radius-lg)}.choice[aria-pressed=true]{background:var(--choice-color);border:2px solid var(--peace-action-primary)}.choice__title{font-family:var(--font-display);font-size:17px;color:var(--peace-text-secondary)}.choice[aria-pressed=true] .choice__title{color:var(--peace-text-selected)}.choice__prompt{font-size:13px}.choice__marker{flex:none;width:22px;height:22px;border-radius:50%;border:1px solid var(--peace-border-strong);background:var(--peace-surface);display:grid;place-items:center;color:var(--peace-on-accent);font-size:12px}.choice[aria-pressed=true] .choice__marker{background:var(--peace-action-primary);border-color:var(--peace-action-primary)}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-xs)}.card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-xs);padding:18px;min-height:116px;border:0;border-radius:var(--radius-xl);background:var(--card-color);color:var(--peace-ink);text-align:left}.card--wide{width:100%;min-height:122px}.card__title{font-family:var(--font-display);font-size:20px}.card__detail{font-size:14px}.card--soon{cursor:default}.card--soon .card__detail{font-size:13px;color:var(--peace-text-secondary)}.badge{font-size:11px;padding:2px var(--space-xs);border-radius:999px;background:var(--peace-surface);border:1px solid var(--peace-border-strong);color:var(--peace-text-secondary)}.book{position:relative;width:100%;max-width:300px;aspect-ratio:3 / 4;margin:0 auto;perspective:1200px}.book__page,.book__cover{position:absolute;inset:0;border-radius:var(--radius-lg);border:1px solid var(--peace-border);display:flex;flex-direction:column;justify-content:center;gap:var(--space-md);padding:var(--space-lg);text-align:center}.book__page{background:var(--peace-surface)}.book__cover{background:var(--peace-pink);transform-origin:left center;transition:transform 1.8s cubic-bezier(.33,0,.1,1),opacity 1.8s ease;align-items:center;border:0}.book__cover[data-open=true]{transform:rotateY(-155deg);opacity:.1}.book__cover[data-instant=true]{transition:none}.quote{font-family:var(--font-display);font-size:20px;line-height:1.6}.quote__source{font-size:12px;color:var(--peace-text-secondary)}.collection__summary{margin:0;font-size:15px}.collection{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.collection__row{display:flex;align-items:flex-start;gap:12px;min-height:64px;padding:20px var(--space-md);border-radius:var(--radius-xl);background:var(--peace-surface-subtle);border:1px solid var(--peace-separator)}.collection__row--open{background:var(--row-color);border-color:transparent}.collection__marker{flex:none;width:16px;font-size:12px;color:var(--peace-text-secondary);line-height:22px}.collection__row--open .collection__marker{font-size:16px;color:var(--peace-ink)}.collection__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-xxs)}.collection__title{font-family:var(--font-display);font-size:17px}.collection__quote{font-size:13px}.collection__count{flex:none;font-size:12px;color:var(--peace-text-secondary);line-height:22px}.calendar{background:var(--peace-surface-subtle);border-radius:var(--radius-xl);padding:13px}.calendar__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-xs)}.calendar__nav{width:var(--touch);height:var(--touch);border:0;background:none;font-size:22px;display:grid;place-items:center}.calendar__picker{display:flex;gap:var(--space-xxs)}.calendar__picker select{font-family:var(--font-display);font-size:18px;padding:var(--space-xxs) var(--space-xs);border:0;border-radius:var(--radius-md);background:none;color:var(--peace-ink);min-height:36px}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-top:var(--space-xs)}.calendar__weekday{text-align:center;font-size:11px;color:var(--peace-text-secondary);padding-bottom:var(--space-xxs)}.calendar__cell{height:38px;border:1px solid transparent;border-radius:50%;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:13px;color:var(--peace-ink);padding:0}.calendar__cell--empty{visibility:hidden}.calendar__cell--future{color:var(--peace-text-secondary)}.calendar__cell--today{border-color:var(--peace-border-strong)}.calendar__cell[aria-pressed=true]{background:var(--peace-blue);border-color:var(--peace-action-primary)}.calendar__dot{width:5px;height:5px;border-radius:50%;background:var(--peace-action-primary)}.calendar__help{margin:var(--space-xs) 0 0;font-size:13px;color:var(--peace-text-secondary)}.moment-card{border:1px solid var(--peace-border);border-radius:var(--radius-xl);background:var(--peace-surface);overflow:hidden}.moment-card__photos{position:relative}.moment-card__track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.moment-card__track::-webkit-scrollbar{display:none}.moment-card__track img{flex:0 0 100%;width:100%;height:200px;object-fit:cover;scroll-snap-align:start;background:var(--peace-action-disabled)}.moment-card__tag{position:absolute;top:12px;left:12px;padding:4px 10px;border-radius:999px;background:var(--peace-surface);font-size:12px}.moment-card__tag--count{left:auto;right:12px}.moment-card__caption{display:flex;align-items:flex-start;gap:var(--space-xs);width:100%;padding:13px 15px 0;border:0;background:none;text-align:left}.moment-card__caption--editing{flex-direction:column;align-items:stretch}.moment-card__text{flex:1;min-width:0;font-size:14px;line-height:20px;white-space:pre-line;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.moment-card__text--empty{color:var(--peace-text-secondary)}.moment-card__edit{flex:none;color:var(--peace-text-secondary)}.moment-card__meta{display:flex;align-items:center;justify-content:space-between;padding:0 15px}.moment-card__dots{display:flex;gap:4px}.moment-card__dots span{width:6px;height:6px;border-radius:50%;background:var(--peace-indicator-inactive)}.moment-card__dots span[data-active=true]{background:var(--peace-action-primary)}.caption{width:100%;resize:none;overflow:hidden;padding:var(--space-xs) 12px;border:1px solid var(--peace-border-selected, var(--peace-action-primary));border-radius:var(--radius-md);background:var(--peace-surface);font-family:var(--font-body);font-size:14px;line-height:20px;color:var(--peace-ink)}.button--cta{min-height:47px;border-radius:var(--radius-xl)}.file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.stat-row{display:flex;align-items:center;gap:var(--space-xs)}.stat-row__bar{flex:1;height:10px;border-radius:5px;background:var(--peace-action-disabled);overflow:hidden}.stat-row__bar span{display:block;height:100%;border-radius:5px;background:var(--stat-color, var(--peace-action-primary))}.stat-row__label{width:78px;font-size:13px}.stat-row__count{width:36px;text-align:right;font-size:13px;color:var(--peace-text-secondary)}.totals{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-xs)}.totals div{border:1px solid var(--peace-border);border-radius:var(--radius-lg);padding:var(--space-xs) 12px}.totals strong{display:block;font-family:var(--font-display);font-size:22px}.totals span{font-size:12px;color:var(--peace-text-secondary)}.character-page__title{font-size:24px;padding-top:24px}.character-stage{flex:1;min-height:260px;display:grid;place-items:center;padding:48px 40px;touch-action:none;-webkit-user-select:none;user-select:none}.character-stage svg,.character-stage img{width:100%;max-width:260px;height:auto;pointer-events:none}.consent{position:fixed;inset:0;z-index:10;background:#14345f52;display:flex;align-items:flex-end;justify-content:center;padding:var(--space-md)}.consent__sheet{width:100%;max-width:440px;background:var(--peace-surface);border-radius:var(--radius-xl);padding:var(--space-lg) var(--space-md) var(--space-md);display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:env(safe-area-inset-bottom)}.consent__sheet p{margin:0;font-size:14px;color:var(--peace-text-secondary)}@media(prefers-reduced-motion:reduce){.heart,.shake{animation:none}.book__cover{transition-duration:.01s}}
