:root{--bg:#efece7;--app:#fff;--ink:#1e1915;--ink-2:#4a423a;--muted:#7d736a;--line:#e4dfd8;--line-2:#cfc7bd;--accent:#f5731b;--accent-deep:#df6214;--accent-text:#b84e0c;--accent-soft:#fef3ea;--bubble-ai:#f6f3ef;--bubble-me:#fdf0e4;--sans:"IBM Plex Sans KR",-apple-system,"Malgun Gothic",sans-serif;--mono:"IBM Plex Mono",ui-monospace,monospace;--col:560px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#100e0c;--app:#1a1714;--ink:#f2ede6;--ink-2:#d2c9be;--muted:#9e9488;--line:#2e2822;--line-2:#443c33;--accent:#f5731b;--accent-deep:#f08033;--accent-text:#f79246;--accent-soft:#2b1e13;--bubble-ai:#231f1b;--bubble-me:#2e2116}}:root[data-theme=dark]{--bg:#100e0c;--app:#1a1714;--ink:#f2ede6;--ink-2:#d2c9be;--muted:#9e9488;--line:#2e2822;--line-2:#443c33;--accent:#f5731b;--accent-deep:#f08033;--accent-text:#f79246;--accent-soft:#2b1e13;--bubble-ai:#231f1b;--bubble-me:#2e2116}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;font-weight:400;line-height:1.65}button{cursor:pointer;font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell{background:var(--app);max-width:var(--col);border-left:1px solid var(--line);border-right:1px solid var(--line);flex-direction:column;min-height:100dvh;margin:0 auto;display:flex}@media (max-width:600px){.shell{border-left:0;border-right:0}}.topbar{z-index:20;background:var(--app);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 18px;display:flex;position:sticky;top:0}.brand{letter-spacing:.02em;font-size:13px;font-weight:600}.brand b{color:var(--accent-deep)}.dots{align-items:center;gap:5px;display:flex}.dot{background:var(--line-2);border-radius:50%;width:6px;height:6px;transition:all .25s}.dot.on{background:var(--accent)}.dot.now{background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.flow{flex-direction:column;flex:1 0 auto;gap:12px;padding:20px 18px 8px;display:flex}.flow.pad{padding-bottom:110px}.intro{border-left:3px solid var(--accent);margin:0 0 4px;padding:1px 0 1px 13px}.intro p{color:var(--ink-2);margin:0;font-size:14px;line-height:1.65}.msg{overflow-wrap:anywhere;border-radius:14px;max-width:88%;padding:12px 15px;font-size:14.5px;line-height:1.7;animation:.28s ease-out rise}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.msg,.sheet,.mailcard,.choice,.rcard{animation:none}}.msg.ai{background:var(--bubble-ai);color:var(--ink);border-bottom-left-radius:4px;align-self:flex-start}.msg.me{background:var(--bubble-me);color:var(--ink);white-space:pre-wrap;border-bottom-right-radius:4px;align-self:flex-end}.msg.push{border-left:3px solid var(--accent);background:var(--accent-soft)}.msg .tb{color:var(--accent-text);letter-spacing:.03em;margin-bottom:6px;font-size:11.5px;font-weight:600;display:block}.typing{background:var(--bubble-ai);border-radius:14px 14px 14px 4px;align-self:flex-start;gap:4px;padding:14px 16px;display:flex}.typing i{background:var(--line-2);border-radius:50%;width:6px;height:6px;animation:1.1s infinite blink;display:block}.typing i:nth-child(2){animation-delay:.18s}.typing i:nth-child(3){animation-delay:.36s}@keyframes blink{0%,60%,to{opacity:.32}30%{opacity:1}}.thinking{background:var(--bubble-ai);border-radius:14px 14px 14px 4px;align-self:flex-start;max-width:88%;padding:13px 16px 15px;animation:.28s ease-out rise}.thinking .dots{gap:4px;margin:0 0 9px;display:flex}.thinking .dots i{background:var(--line-2);border-radius:50%;width:6px;height:6px;animation:1.1s infinite blink;display:block}.thinking .dots i:nth-child(2){animation-delay:.18s}.thinking .dots i:nth-child(3){animation-delay:.36s}.thinking .what{color:var(--muted);margin:0 0 11px;font-size:13px;line-height:1.6}.thinking .bar{background:var(--line);border-radius:2px;height:2px;overflow:hidden}.thinking .bar span{background:var(--accent);border-radius:2px;width:38%;height:100%;animation:1.6s ease-in-out infinite flow;display:block}@keyframes flow{0%{transform:translate(-100%)}to{transform:translate(300%)}}@media (prefers-reduced-motion:reduce){.thinking .bar span{opacity:.4;width:100%;animation:none}.thinking .dots i{animation:none}}.flow.first{padding-top:30px}.flow.first .intro{border-left-color:var(--line-2);margin:0 0 30px}.flow.first .intro p{color:var(--muted);font-size:12.5px;line-height:1.75}.flow.first .msg.ai{letter-spacing:-.025em;max-width:100%;color:var(--ink);background:0 0;border-radius:0;align-self:stretch;padding:0;font-size:22px;font-weight:600;line-height:1.5}.flow.first .msg.ai strong{color:var(--accent-text)}@media (max-width:380px){.flow.first .msg.ai{font-size:20px}}.hint{border-top:1px solid var(--line);align-self:stretch;margin:26px 0 0;padding:20px 0 0;animation:.5s ease-out rise}.hint p{color:var(--muted);margin:0 0 7px;font-size:13px;line-height:1.75}.hint p:last-child{margin:0}.hint p strong{color:var(--ink-2);font-weight:500}.hint p.voice{color:var(--accent-text);margin-top:12px;font-size:12.5px}.hint p.voice strong{color:var(--accent-text);font-weight:600}.sheet{border:1px solid var(--line-2);border-radius:12px;align-self:stretch;margin:6px 0 2px;animation:.35s ease-out rise;overflow:hidden}.sheet-head{background:var(--accent-soft);border-bottom:1px solid var(--line-2);padding:13px 15px}.sheet-head .k{font-family:var(--mono);letter-spacing:.11em;color:var(--accent-text);margin-bottom:7px;font-size:10px;display:block}.sheet-head p{letter-spacing:-.01em;margin:0;font-size:15.5px;font-weight:600;line-height:1.6}.cell{border-bottom:1px solid var(--line);gap:10px;padding:10px 15px;font-size:13px;display:flex}.cell .no{font-family:var(--mono);color:var(--accent-text);flex:0 0 12px;padding-top:2px;font-size:11px}.cell .k{color:var(--muted);flex:0 0 70px;padding-top:1px;font-size:12px}.cell .v{color:var(--ink);flex:1;line-height:1.6}.cell .v .sm{color:var(--muted);font-size:12px;display:block}.audit{background:var(--bubble-ai);padding:13px 15px;font-size:12.5px}.audit .row{gap:9px;margin-bottom:8px;line-height:1.6;display:flex}.audit .row:last-child{margin-bottom:0}.audit .row .k{color:var(--muted);flex:0 0 84px;font-size:12px}.audit .row .v{color:var(--ink-2);flex:1}.conf{color:var(--accent-text);font-weight:600}.sheet-foot{color:var(--muted);border-top:1px solid var(--line);padding:11px 15px;font-size:11.5px;line-height:1.6}.unset{color:var(--muted)}.choice{border:1px solid var(--line-2);border-radius:12px;align-self:stretch;margin:4px 0 2px;padding:15px;animation:.35s ease-out rise}.choice p{color:var(--ink);margin:0 0 12px;font-size:14.5px;line-height:1.7}.choice .btns{flex-wrap:wrap;gap:8px;display:flex}.choice button{border:1px solid var(--line-2);background:var(--app);color:var(--ink-2);border-radius:9px;flex:1;min-width:130px;padding:11px 15px;font-size:14px;font-weight:500}.choice button.yes{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.choice button:hover{border-color:var(--accent)}.choice button.yes:hover{background:var(--accent-deep)}.rcard{border:1px dashed var(--line-2);border-radius:12px;align-self:stretch;margin:6px 0 2px;animation:.35s ease-out rise;overflow:hidden}.rcard .rhead{border-bottom:1px dashed var(--line-2);background:var(--bubble-ai);padding:12px 15px}.rcard .rhead .k{font-family:var(--mono);letter-spacing:.11em;color:var(--muted);margin-bottom:5px;font-size:10px;display:block}.rcard .rhead p{color:var(--ink-2);margin:0;font-size:12.5px;line-height:1.6}.hyp{border-bottom:1px dashed var(--line);padding:13px 15px;font-size:13px}.hyp:last-child{border-bottom:0}.hyp .ht{color:var(--ink);margin:0 0 8px;font-size:14px;font-weight:600}.hyp .hr{gap:9px;margin-bottom:5px;line-height:1.6;display:flex}.hyp .hr:last-child{margin-bottom:0}.hyp .hr .k{color:var(--muted);flex:0 0 66px;font-size:12px}.hyp .hr .v{color:var(--ink-2);flex:1}.hyp .hr.next .k{color:var(--accent-text);font-weight:500}.hyp .hr.next .v{color:var(--ink)}.mailcard{border:2px solid var(--accent);border-radius:12px;align-self:stretch;margin:4px 0 2px;padding:15px;animation:.35s ease-out rise}.mailcard h3{margin:0 0 6px;font-size:15px;font-weight:600}.mailcard p{color:var(--ink-2);margin:0 0 13px;font-size:13px;line-height:1.6}.field{gap:7px;display:flex}.field input{border:1px solid var(--line-2);background:var(--app);color:var(--ink);border-radius:9px;flex:1;min-width:0;padding:12px 13px;font-family:inherit;font-size:16px}.field button{background:var(--accent);color:#fff;white-space:nowrap;border:0;border-radius:9px;padding:0 16px;font-size:14.5px;font-weight:600}.field button:hover{background:var(--accent-deep)}.optin{color:var(--muted);cursor:pointer;align-items:flex-start;gap:8px;margin:12px 0 0;font-size:12px;line-height:1.6;display:flex}.optin input{accent-color:var(--accent);flex:none;margin:3px 0 0}.optin b{color:var(--ink-2);font-weight:500}.privacy{color:var(--muted);border-top:1px solid var(--line);margin:16px 0 0;padding-top:11px;font-size:11px}.privacy u{-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2);text-underline-offset:2px}.sent{text-align:center;padding:6px 0 2px}.sent .mark{background:var(--accent-soft);border:2px solid var(--accent);width:44px;height:44px;color:var(--accent-deep);border-radius:50%;place-items:center;margin:0 auto 12px;font-size:20px;font-weight:700;display:grid}.sent h3{margin:0 0 6px;font-size:15.5px}.sent p{color:var(--ink-2);margin:0;font-size:13px}.composer{z-index:30;max-width:var(--col);padding:12px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--app);align-items:flex-end;gap:8px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}@media (min-width:601px){.composer{border-left:1px solid var(--line);border-right:1px solid var(--line)}}.composer textarea{border:1.5px solid var(--accent);background:var(--app);color:var(--ink);resize:none;border-radius:10px;flex:1;min-width:0;max-height:140px;padding:12px 14px;font-family:inherit;font-size:16px;line-height:1.5;transition:box-shadow .15s;overflow-y:auto}.composer textarea:focus{box-shadow:0 0 0 3px var(--accent-soft);outline:none}.composer textarea::placeholder{color:var(--muted)}.composer button{background:var(--accent);color:#fff;border:0;border-radius:10px;flex:none;height:46px;padding:0 18px;font-size:14.5px;font-weight:600}.composer button:hover{background:var(--accent-deep)}.composer button:disabled{opacity:.42;cursor:default}.composer button.mic{color:var(--muted);border:1.5px solid var(--line-2);background:0 0;border-radius:10px;flex:none;place-items:center;width:46px;height:46px;padding:0;display:grid}.composer button.mic:hover{border-color:var(--accent);color:var(--accent-text);background:0 0}.composer button.mic.on{background:var(--accent);border-color:var(--accent);color:#fff;animation:1.4s ease-in-out infinite listening}@keyframes listening{0%,to{box-shadow:0 0 #f5731b73}50%{box-shadow:0 0 0 7px #f5731b00}}@media (prefers-reduced-motion:reduce){.composer button.mic.on{animation:none}}.micnote{color:var(--accent-text);margin:10px 0 0;font-size:12.5px;line-height:1.7}.composer.off{display:none}.about{border-top:1px solid var(--line);margin:34px 0 0;padding:6px 0 0}.flow.first .about{margin-top:auto;padding-top:14px}.flow .about{margin-top:auto}.about details{border-bottom:1px solid var(--line)}.about summary{cursor:pointer;color:var(--ink-2);justify-content:space-between;align-items:center;gap:10px;padding:13px 2px;font-size:13.5px;list-style:none;display:flex}.about summary::-webkit-details-marker{display:none}.about summary:after{content:"+";color:var(--muted);font-size:15px;line-height:1}.about details[open] summary:after{content:"−"}.about details[open] summary{color:var(--ink);font-weight:500}.about .body{color:var(--ink-2);padding:0 2px 15px;font-size:13px;line-height:1.75}.about .body p{margin:0 0 9px}.about .body p:last-child{margin:0}.about .body b{color:var(--ink);font-weight:600}.restart{text-align:center;margin:16px 0 30px}.restart button{color:var(--muted);text-underline-offset:3px;background:0 0;border:0;padding:6px;font-size:12px;text-decoration:underline}.restart button:hover{color:var(--accent-text)}
