@font-face{font-family:'KY WenKai';src:url('fonts/LXGWWenKai-Regular.ttf') format('truetype');font-weight:400 500;font-display:swap}
@font-face{font-family:'KY Song';src:url('fonts/NotoSerifSC.ttf') format('truetype');font-weight:200 900;font-display:swap}
/* KY mobile visual system. Type roles: 12 metadata, 14 compact text/controls,
   16 reading, 18 card title, 24 page title, 32 editorial headline. */
:root{--font-ui:'KY WenKai','KaiTi','STKaiti',serif;--serif:var(--font-ui);--font-reading:'KY Song','Songti SC','STSong','Noto Serif CJK SC',serif;--text-meta:.75rem;--text-small:.875rem;--text-body:1rem;--text-title:1.125rem;--text-page:1.5rem;--text-hero:2rem;--paper:#f8f9f5;--surface:#ffffff;--card:#e0e8d9;--surface-report:#edf1e7;--surface-hover:#d3dfca;--ink:#24392c;--green:#234b34;--muted:#576750;--line:#c0cdb7;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:radial-gradient(ellipse at 10% 0%,#e6edda88 0%,transparent 32%),var(--paper);background-attachment:fixed;color:var(--ink);font:400 var(--text-body)/1.6 var(--font-ui);-webkit-font-smoothing:antialiased}button,textarea{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;min-height:44px}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-ui);font-weight:500;letter-spacing:0}button{border:0}main{max-width:1056px;padding:50px 32px 30px;margin:auto}header{text-align:center;padding-bottom:32px}header h1{font:400 var(--text-hero)/1.35 var(--serif);letter-spacing:-.5px}header p{font-size:var(--text-small);line-height:1.7;color:var(--muted);margin-top:12px}.seed{display:block;margin:0 auto 20px;width:32px;height:36px}.coaches{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.coach{padding:26px 24px;background:var(--card);border-radius:24px;display:flex;flex-direction:column;align-items:flex-start;transition:background .25s,transform .4s var(--ease)}.coach:hover{background:var(--surface-hover);transform:translateY(-3px)}.portrait{width:90px;height:108px;border-radius:50% 50% 42% 42%;overflow:hidden;margin-bottom:22px;background:#cfddc6;flex-shrink:0}.portrait svg{width:100%;height:100%}.coach:nth-child(2) .portrait{background:#cddccf}.coach:nth-child(3) .portrait{background:#d8e2d1}.coach h2{font-size:var(--text-title);line-height:1.5}.coach p{font-size:var(--text-small);line-height:1.7;color:var(--muted);margin:10px 0 20px}.start,.outline{display:flex;align-items:center;justify-content:space-between;gap:18px;border-radius:99px;padding:11px 19px;min-height:44px;font-size:var(--text-small);font-weight:500;line-height:1.4;transition:background .2s,transform .2s}.start{background:var(--green);color:var(--surface);margin-top:auto}.start:hover,.send:hover{background:#326344}.start:active,.send:active{transform:scale(.97)}.outline{border:1px solid #aabb9f;background:transparent;color:var(--green);margin-top:24px}.outline:hover{background:var(--card)}.wide{width:100%}.ui-icon{width:18px;height:18px;flex-shrink:0;vertical-align:middle;display:inline-block}.start .ui-icon,.outline .ui-icon{transition:transform .3s var(--ease)}.start:hover .ui-icon,.outline:hover .ui-icon{transform:translateX(3px)}.after,.endnote{font-size:var(--text-small);color:var(--muted);text-align:center;line-height:1.7;padding:24px 0}.nav{display:flex;margin:12px auto 0;border-top:1px solid var(--line);padding:12px 0 0;max-width:440px;justify-content:center;gap:8px}.nav button{background:transparent;border-radius:99px;padding:10px 21px;display:flex;gap:8px;align-items:center;font-size:var(--text-small);color:var(--muted)}.nav button.active{background:var(--surface-report);color:var(--green)}.nav svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5}.screen{animation:arrive .45s var(--ease) both}@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.inner-view{max-width:760px;padding:24px 28px 90px}.page{width:100%}.topbar{display:flex;align-items:center;gap:10px;padding:8px 0 22px}.icon-button{background:transparent;min-width:44px;border-radius:50%;display:grid;place-items:center}.icon-button:hover{background:var(--card)}.icon-button .ui-icon{width:21px;height:21px}.top-title{flex:1;min-width:0}.top-title h1{font-size:var(--text-page);line-height:1.35}.top-title p{font-size:var(--text-meta);line-height:1.5;color:var(--muted);margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-button{background:transparent;font-size:var(--text-small);color:var(--green);padding:8px}.topbar>.text-button{display:flex;align-items:center;gap:5px;white-space:nowrap}.new-conversation{display:flex;align-items:center;gap:5px;border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:8px 11px;font-size:var(--text-small);white-space:nowrap}.new-conversation:hover{background:var(--card)}.new-conversation .ui-icon{width:16px;height:16px}.coach-intro{display:flex;align-items:center;gap:20px;padding:15px 0 25px}.coach-intro .portrait{width:72px;height:86px;margin:0}.coach-intro p{font-size:var(--text-small);line-height:1.7;color:var(--muted)}.eyebrow{font-size:var(--text-meta);line-height:1.5;color:var(--muted)}.coach-intro .eyebrow{margin-bottom:8px}.section-label{display:flex;justify-content:space-between;font-size:var(--text-small);color:var(--muted);padding:20px 0 5px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:3px 0 12px}.filters button{border:1px solid var(--line);border-radius:24px;padding:8px 12px;font-size:var(--text-small);line-height:1.4;background:transparent}.filters button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:var(--surface)}.quiet-empty{padding:55px 8px;color:var(--muted);font-size:var(--text-body);line-height:1.8;text-align:center}
/* Records share one hierarchy in both history lists. */
.conversation-item{border:1px solid var(--line);border-radius:18px;overflow:hidden;margin:10px 0 12px;background:var(--surface)}.conversation-main{display:block;background:transparent;text-align:left;width:100%;padding:12px 16px 9px}.conversation-main:hover{background:#eff4e9}.conversation-meta{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:var(--text-meta);line-height:1.5}.conversation-meta time{white-space:nowrap;font-variant-numeric:tabular-nums}.conversation-main h2{font-size:var(--text-title);font-weight:500;line-height:1.5;margin:6px 0 7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-summary{font-size:var(--text-small);line-height:1.5;color:var(--muted)}.conversation-summary>span{display:none}.conversation-summary>p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.conversation-continue{display:flex;align-items:center;justify-content:flex-end;gap:6px;font-size:var(--text-meta);line-height:1.5;color:var(--green);margin-top:6px}.conversation-continue .ui-icon{width:14px;height:14px}.conversation-reports{background:var(--card);border-top:1px solid var(--line);padding:0 16px}.report-entry{background:transparent;display:flex;align-items:center;justify-content:space-between;width:100%;padding:7px 0;min-height:34px;font-size:var(--text-meta);line-height:1.5}.report-count,.report-entry-action{display:flex;align-items:center;gap:5px;color:var(--green)}.report-count strong{font-weight:500}.report-count .ui-icon,.report-entry-action .ui-icon{width:14px;height:14px}.latest-report{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;text-align:left;width:100%;border-top:1px solid var(--line);background:transparent;padding:5px 0 8px;min-height:32px}.latest-report>span{display:none}.latest-report strong{font-size:var(--text-small);font-weight:400;line-height:1.5;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.latest-report time{font-size:var(--text-meta);line-height:1.5;color:var(--muted);white-space:nowrap}.latest-report:hover strong{text-decoration:underline;text-underline-offset:3px}.no-report{display:flex;align-items:center;gap:6px;min-height:36px;font-size:var(--text-meta);line-height:1.5;color:var(--muted)}.no-report .ui-icon{width:14px;height:14px}.no-report small{font-size:inherit;margin-left:auto}
/* Conversation: reading size stays 16px, controls share the 14px role. */
.chat-view{height:100dvh;max-width:760px;padding:0 24px;display:flex;flex-direction:column;overflow:hidden}.chat-view .topbar{padding:12px 0;border-bottom:1px solid var(--line);flex-shrink:0}.chat-view .top-title h1{font-size:var(--text-title)}.chat-scroll{flex:1;overflow-y:auto;min-height:0;padding:20px 0 10px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bccdb2 transparent}.time-label{text-align:center;color:var(--muted);font-size:var(--text-meta);line-height:1.5;margin-bottom:24px}.message{display:flex;align-items:flex-start;gap:9px;margin-bottom:22px}.message>.portrait{width:30px;height:36px;border-radius:50%;margin:0;background:#cfddc6}.message.mine{flex-direction:row-reverse}.my-avatar{width:30px;height:30px;border-radius:50%;background:#cfddc6;color:var(--green);display:grid;place-items:center;font-size:var(--text-meta);flex-shrink:0}.message-body{max-width:calc(100% - 45px);min-width:0}.message-name{font-size:var(--text-meta);line-height:1.5;color:var(--muted);margin:0 0 6px}.mine .message-name{text-align:right}.speech{font-family:var(--font-reading);font-size:var(--text-body);line-height:1.7;padding:12px 14px;background:var(--surface);border-radius:4px 18px 18px 18px;overflow-wrap:anywhere}.mine .speech{background:var(--surface-report);border-radius:18px 4px 18px 18px}.report-marker{text-align:center;margin:0 0 24px}.report-marker button{background:transparent;color:var(--muted);font-size:var(--text-meta);padding:4px 0;line-height:1.5}.report-marker .ui-icon{width:13px;height:13px}.report-marker span{margin-left:5px;text-decoration:underline;text-underline-offset:3px}.opening{text-align:center;padding:14px 0 30px}.opening .seed{width:28px;height:32px;margin-bottom:14px}.opening>p{font:400 var(--text-page)/1.6 var(--serif)}.composer{flex-shrink:0;padding-bottom:max(10px,env(safe-area-inset-bottom));background:var(--paper)}.chat-actions{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:4px;gap:8px}.chat-actions button{display:flex;align-items:center;gap:4px;background:none;color:var(--green);font-size:var(--text-small);padding:0 2px}.chat-actions button:last-child{color:var(--muted)}.chat-actions .ui-icon{width:16px;height:16px}.composer form{display:flex;align-items:flex-end;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:27px;padding:5px 5px 5px 16px}.composer textarea{font:400 var(--text-body)/1.5 var(--font-reading);resize:none;min-height:38px;max-height:110px;width:100%;padding:7px 0;border:0;outline:none;background:none}.composer textarea::placeholder{color:var(--muted);font-size:var(--text-small)}.composer form:focus-within{border-color:#728d63;box-shadow:0 0 0 2px #234b3410}.send{display:grid;place-items:center;border-radius:50%;min-height:42px;height:42px;width:42px;flex-shrink:0;background:var(--green);color:var(--surface);transition:background .2s,transform .2s}.send .ui-icon{width:21px;height:21px}.prototype-note{font-size:var(--text-meta);line-height:1.5;text-align:center;color:var(--muted);margin-top:6px}.feedback{font-size:var(--text-small);line-height:1.5;color:var(--green)}.feedback:not(:empty){padding:5px 2px 10px}
/* Reports use the same surface family; serif is reserved for editorial titles. */
.report-intro{display:flex;align-items:center;gap:16px;padding:16px 0 24px}.spark{color:#68845a}.spark .ui-icon{width:30px;height:30px;stroke-width:1.3}.report-intro p{font-size:var(--text-title);line-height:1.6}.report-intro strong{font-weight:400}.small-copy{font-size:var(--text-small);line-height:1.7;color:var(--muted);margin-bottom:18px}.report-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:20px;text-align:left;width:100%;margin-bottom:12px;transition:background .2s}.report-card:hover{background:var(--surface-hover)}.row-meta{display:flex;justify-content:space-between;gap:10px;font-size:var(--text-meta);line-height:1.5;color:var(--muted)}.report-card h2{font-size:var(--text-title);line-height:1.5;margin:14px 0 10px}.report-card>p{font-size:var(--text-small);line-height:1.6;color:var(--muted)}.row-end{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:var(--text-meta);line-height:1.5;color:var(--muted);border-top:1px solid var(--line);padding-top:12px;margin-top:16px}.row-end>span{display:flex;align-items:center;gap:5px}.row-end>span:last-child{color:var(--green)}.row-end .ui-icon{width:14px;height:14px}.report-heading{padding:18px 0 26px}.report-heading h2{font:400 var(--text-hero)/1.45 var(--serif);letter-spacing:-.5px;margin:16px 0}.report-heading>p{font-size:var(--text-small);line-height:1.7;color:var(--muted)}.scope{background:var(--surface-report);border-radius:16px;padding:16px 18px;margin-bottom:12px}.scope>span{font-size:var(--text-small);color:var(--green)}.scope>p{font-size:var(--text-small);line-height:1.7;color:var(--muted);margin-top:7px}.report-section{padding:24px 0;border-bottom:1px solid var(--line)}.chapter{font-size:var(--text-meta);color:var(--muted);display:flex;align-items:center;gap:12px;margin-bottom:15px}.chapter span{font-size:var(--text-title);font-weight:500;color:var(--ink)}.report-section>p{font-family:var(--font-reading);font-size:var(--text-body);line-height:1.8;color:var(--ink)}.report-section blockquote{font-family:var(--font-reading);margin:12px 0;padding:0 0 0 14px;border-left:2px solid #9db38d;font-size:var(--text-body);line-height:1.8;color:var(--ink);overflow-wrap:anywhere}.report-footnote{font-size:var(--text-small);line-height:1.7;color:var(--muted);margin:22px 0 26px}.all-reports{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;text-align:center;margin-top:10px}.all-reports .ui-icon{width:15px;height:15px}.report-page{padding-bottom:15px}.first-person{text-align:center;padding:20px 0 30px;max-width:440px;margin:auto}.first-person .portrait{width:96px;height:114px;margin:0 auto 22px;display:block;background:#cfddc6}.first-person .eyebrow{margin-bottom:12px}.first-person h2{font:400 var(--text-hero)/1.45 var(--serif)}.first-description{font-size:var(--text-body);line-height:1.7;color:var(--muted);margin-top:18px}.first-invitation{font-size:var(--text-body);line-height:1.8;color:var(--muted);margin-top:22px}.first-person>.start{margin:26px auto 0;padding:13px 23px}.first-footnote{font-size:var(--text-meta);color:var(--muted);margin-top:16px}.demo{position:fixed;bottom:10px;right:14px;font-size:var(--text-meta);color:var(--muted);pointer-events:none}.chat-view~.demo{display:none}dialog{border:0;border-radius:22px;padding:26px;background:var(--surface);color:var(--ink);max-width:340px}dialog::backdrop{background:#24392c55;backdrop-filter:blur(3px)}dialog p{font-size:var(--text-body);line-height:1.7}dialog button{margin-top:20px;background:var(--green);color:var(--surface);padding:10px 22px;border-radius:25px}
@media(max-width:650px){main{padding:28px 20px 88px;max-width:450px}header{padding-bottom:24px}.seed{width:28px;height:31px;margin-bottom:16px}.coaches{display:flex;flex-direction:column;gap:12px}.coach{display:grid;grid-template-columns:64px minmax(0,1fr);gap:0 15px;padding:17px 16px;border-radius:20px}.portrait{grid-column:1;grid-row:1/4;width:64px;height:80px;margin:3px 0 0}.coach p{margin:7px 0 12px}.coach .start{grid-column:2;justify-self:start;padding:10px 14px;gap:14px}.after{padding:20px 0 5px}.nav{position:fixed;bottom:0;left:0;right:0;background:#f8f9f5f5;backdrop-filter:blur(12px);padding:8px 0 max(12px,env(safe-area-inset-bottom));max-width:none;gap:24px}.nav button{padding:9px 17px}.inner-view{padding:14px 20px 88px}.topbar{gap:5px;padding:6px 0 18px}.topbar .icon-button:first-child{margin-left:-10px}.topbar>.text-button .ui-icon{width:16px;height:16px}.coach-history .coach-intro{display:none}.coach-history .section-label{padding-top:15px}.conversation-main{padding:11px 14px 8px}.conversation-reports{padding:0 14px}.conversation-meta{font-size:var(--text-meta)}.latest-report{gap:8px}.no-report small{max-width:60%;text-align:right}.chat-view{padding:0 14px;width:100%;height:100dvh;max-width:none}.chat-view .topbar{padding:10px 0;gap:3px}.chat-view .new-conversation{padding:8px 9px}.chat-view .top-title p{max-width:175px}.new-conversation .ui-icon{display:none}.first-person{padding-top:12px}.first-person .portrait{width:82px;height:98px;margin-bottom:18px}.first-description{font-size:var(--text-small)}.first-invitation{margin-top:18px}.first-person>.start{margin-top:22px}.demo{display:none}}@media(min-width:651px){.inner-view .nav{margin-top:30px}header h1{font-size:2.5rem}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

#account{display:flex;align-items:center;justify-content:space-between;padding:0 16px;color:var(--muted);font-size:14px}
#account[hidden]{display:none}
#account:not([hidden])~.chat-view{height:calc(100dvh - 44px)}
.account-form{display:grid;gap:18px;max-width:360px;margin:auto}
.account-form label{display:grid;gap:6px}
.account-form input,.feedback-box textarea{padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font:inherit;width:100%}
.feedback-box{margin:16px 0;color:var(--muted);font-size:14px}
.feedback-box summary{cursor:pointer;margin-bottom:8px}
.feedback-box textarea{min-height:76px}
