:root{font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;color:#382b36;background:#f8f4ee;font-synthesis:none;--plum:#6c405d;--muted:#8d7e83;--line:#e8ddd9}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b889a0;outline-offset:3px}button{color:inherit}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.topbar{height:88px;max-width:1200px;margin:auto;padding:0 36px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-size:16px;letter-spacing:-.6px;font-weight:600}.brand-mark{font-family:serif;font-size:24px;color:var(--plum);width:36px;height:36px;border:1px solid #cdb7c0;border-radius:50%;display:grid;place-items:center}.header-note{font-size:12px;color:var(--muted)}.layout{max-width:1120px;margin:50px auto;display:grid;grid-template-columns:430px minmax(0,1fr);gap:76px;padding:0 30px}.intro{padding:8px 20px 16px}.eyebrow{font-size:11px;letter-spacing:1.4px;color:#9e747d;font-weight:600}h1,h2{font-family:"Noto Serif KR",Georgia,serif;font-weight:500;letter-spacing:-1.5px}h1{font-size:34px;line-height:1.65;margin:15px 0 12px}.intro p{font-size:13px;color:var(--muted);line-height:1.9}.scene{height:350px;position:relative;border-radius:190px 190px 16px 16px;background:radial-gradient(ellipse at 50% 35%,#fff9ed,#ece1d8);overflow:hidden;border:1px solid #eee0d4}.scene:before{content:"";position:absolute;inset:25px 50px 0;border:1px solid #c6ac943a;border-radius:180px 180px 0 0;background:repeating-linear-gradient(90deg,transparent 0 74px,#c6ac9420 74px 75px)}.scene-label{position:absolute;top:27px;left:0;right:0;text-align:center;color:#a58a7d;font-size:10px;letter-spacing:2px}.actor{position:absolute;inset:43px 0 0;width:100%;border:0;background:none;padding:0;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}.portrait{position:relative;display:block;width:350px;flex-shrink:0;aspect-ratio:1;background:url('/design/counselor-motion/female-expressions-original.png') 0 0/200% 200%;pointer-events:none}.portrait.blink{background-position:100% 0}.portrait.smile{background-position:0 100%}.portrait.thinking{background-position:100% 100%}.mouth-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.actor img{height:100%;width:100%;object-fit:contain;pointer-events:none}.bubble{position:absolute;bottom:13px;left:45px;right:45px;background:#fffaf2ec;padding:11px;border:1px solid #fff;border-radius:12px;text-align:center;font-size:12px;color:#75636e;pointer-events:none}.petal{position:absolute;color:#ba9690;pointer-events:none}.p1{top:86px;left:50px;font-size:26px}.p2{top:130px;right:42px;font-size:13px}.counselor-controls{max-width:330px;margin:18px auto}.segmented{display:flex;padding:4px;background:#eee7e2;border-radius:12px;gap:4px}.segmented button,.segmented label{flex:1;text-align:center;border:0;background:transparent;padding:10px;font-size:12px;border-radius:9px}.segmented button[aria-pressed=true]{background:#fffdf9;box-shadow:0 2px 5px #5e3a4b08;color:var(--plum)}.quiet-controls{display:flex;justify-content:center;gap:16px;margin:12px 0}.quiet-controls button{font-size:10px;border:0;padding:5px 0;background:none;color:var(--muted)}.workspace{min-width:0}.steps{display:flex;align-items:center;gap:10px;font-size:10px;color:#aa9b9d;margin:10px 0 32px;white-space:nowrap}.steps .current{color:var(--plum);font-weight:700}.steps i{height:1px;flex:1;background:var(--line)}.panel{background:#fffdf9;border:1px solid #eee5de;border-radius:20px;padding:32px;box-shadow:0 12px 40px #6b4b3d04}.panel>.eyebrow{font-size:10px}h2{font-size:25px;line-height:1.65;margin:12px 0 10px}h2:focus{outline:none}.description{font-size:12px;line-height:1.9;color:var(--muted);margin:0 0 28px}fieldset{margin:0 0 24px;border:0;padding:0;min-width:0}legend,.field{font-size:12px;font-weight:600;line-height:1.6}.relations{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.relations label{cursor:pointer;position:relative}.relations input,.calendar input{position:absolute;opacity:0;width:1px;height:1px}.relations span{display:flex;flex-direction:column;align-items:center;gap:7px;padding:15px 0;border:1px solid var(--line);border-radius:11px;font-size:12px;color:#8d7e83}.relations b{font-size:21px;font-weight:400;line-height:1}.relations input:checked+span{background:#f8eef3;border-color:#9f728c;color:var(--plum)}.relations input:focus-visible+span,.calendar input:focus-visible+span{outline:3px solid #b889a0;outline-offset:2px}.field{display:block;margin:20px 0 0}.field textarea,.field input,.field select{margin-top:9px}textarea,input:not([type=radio],[type=checkbox]),select{display:block;width:100%;background:#fcfaf7;border:1px solid var(--line);border-radius:10px;padding:14px;color:#44353e;font-size:13px;font-weight:400;line-height:1.7;max-width:100%}textarea{resize:vertical;min-height:100px}textarea::placeholder,input::placeholder{color:#b5a6a8}input[type=checkbox],input[type=radio]{accent-color:var(--plum)}.input-foot{display:flex;justify-content:space-between;gap:8px;font-size:9px;color:#a8999c;margin:9px 0 26px}.primary{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--plum);color:#fff;border:0;padding:17px 20px;border-radius:11px;font-size:13px;letter-spacing:.1px;margin-top:26px}.primary:hover{background:#59334d}.primary span{color:#e8cadb}.small-note{text-align:center;color:#a29195;font-size:10px;line-height:1.9;margin:19px 0 0}.back{display:block;background:none;border:0;font-size:11px;color:#8d7b83;margin:20px auto 0;padding:8px}.optional{font-size:10px;font-weight:400;margin-left:5px;color:#a39098}.context-preview{font-size:12px;line-height:1.9;white-space:pre-wrap;max-height:150px;overflow:auto;background:#f7f0eb;border-left:2px solid #c7a9b8;padding:15px;color:#7c6673}.calendar{margin-top:10px}.calendar label{padding:0;position:relative;cursor:pointer}.calendar span{display:block;padding:8px;border-radius:8px}.calendar input:checked+span{background:#fffdf9;color:var(--plum)}.date-fields{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:9px;margin-top:10px}.date-fields label{position:relative}.date-fields input{padding-right:28px}.date-fields small{position:absolute;right:12px;top:17px;font-size:11px;color:#a28d98}.check{display:flex;align-items:flex-start;gap:8px;font-size:11px;color:#7b6571;line-height:1.8;margin-top:12px}.check input{margin-top:4px;flex-shrink:0}.field small{display:block;color:#9f8d96;font-size:10px;font-weight:400;margin-top:6px}.consent-box{margin-top:25px;background:#f7f2ed;border-radius:11px;padding:15px}.consent-box .check{margin:0}.consent-box p{font-size:10px;line-height:1.9;color:#998790;margin:8px 0 0}.error{padding:15px;margin-bottom:16px;background:#fff0eb;border:1px solid #e1b8aa;border-radius:12px;font-size:12px;line-height:1.8;color:#8d3f32}.loading{text-align:center;padding:65px 20px;min-height:470px}.loading-mark{width:78px;height:78px;border-radius:50%;border:1px solid #dbc6cc;display:grid;place-items:center;font-size:38px;color:#9f748b;font-family:serif;margin:0 auto 30px}.loading p{font-size:12px;line-height:1.9;color:var(--muted)}.loading-dots{display:block;font-size:36px;letter-spacing:10px;color:#b694a6;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{50%{opacity:.3}}.answer-block{margin:22px 0}.answer-block p,.evidence p{font-size:13px;line-height:2;white-space:pre-wrap;color:#66525e;margin:10px 0}.section-label{display:block;color:#9d7588;font-size:10px;font-weight:600;letter-spacing:1px;margin-bottom:7px}details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;margin:23px 0}summary{font-size:12px;font-weight:600;cursor:pointer;color:var(--plum)}.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:18px 0}.pillar{padding:12px 4px;text-align:center;background:#f6f0eb;border-radius:8px;font-size:11px;color:#97848c}.pillar b{display:block;font-family:serif;font-size:21px;color:#624958;font-weight:400;margin-top:6px}.reference{font-size:9px!important;color:#ac969f!important}.advice{margin-top:22px}.advice h3,.uncertainties h3,.questions h3{font-size:12px;font-weight:600;color:var(--plum)}.advice ol{padding-left:22px}.advice li,.uncertainties li,.questions li{font-size:12px;color:#78616d;line-height:1.9;margin:8px 0}.uncertainties{background:#f7f1eb;border-radius:11px;padding:12px 16px;margin-top:22px}.uncertainties ul,.questions ul{padding-left:17px;margin:5px 0}.followup{border-top:1px solid var(--line);margin-top:27px;padding-top:3px}.followup-answer{border-top:1px solid var(--line);margin-top:25px;padding-top:22px}.followup-question{font-size:12px;background:#f7eef3;border-radius:10px;padding:14px;line-height:1.8;white-space:pre-wrap}footer{text-align:center;font-family:"Noto Serif KR",serif;font-size:11px;color:#b4a1a6;margin:28px 0 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:850px){.layout{gap:32px;grid-template-columns:340px minmax(0,1fr);padding:0 22px}.panel{padding:24px}h1{font-size:30px}.scene{height:310px}.portrait{width:310px}.steps{font-size:9px;gap:6px}}@media(max-width:680px){.topbar{height:66px;padding:0 22px}.brand{font-size:14px}.brand-mark{width:30px;height:30px;font-size:20px}.header-note{display:none}.layout{display:block;margin:25px auto;padding:0 20px;max-width:500px}.intro{padding:0;text-align:center}.intro .eyebrow{font-size:9px}h1{font-size:27px;line-height:1.55;margin:9px 0}.intro p{font-size:11px;margin:8px 0 18px}.scene{height:245px;max-width:340px;margin:auto;border-radius:160px 160px 14px 14px}.scene-label{top:19px;font-size:9px}.actor{top:26px}.portrait{width:260px}.bubble{left:35px;right:35px;bottom:10px;font-size:11px;padding:9px}.p1{top:65px;left:35px}.p2{top:90px;right:30px}.counselor-controls{margin:12px auto 28px;max-width:300px}.segmented button{padding:8px;font-size:11px}.quiet-controls{margin:6px 0}.quiet-controls button{font-size:9px}.steps{margin:0 0 19px;font-size:10px;gap:10px}.panel{padding:25px 21px;border-radius:17px}h2{font-size:23px}.description{font-size:11px;margin-bottom:25px}.input-foot{font-size:8px}.primary{font-size:12px}.loading{min-height:400px;padding:55px 15px}.relations span{padding:14px 0}.date-fields input{padding-left:10px}footer{margin-bottom:30px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}

.reference a{text-decoration:underline;text-underline-offset:3px;color:#806071;overflow-wrap:anywhere}

/* Accepted taps acknowledge interaction without moving the character's body. */
.scene.tap-feedback{box-shadow:0 0 0 3px #c79aad70,inset 0 0 28px #d6b3c133}.scene.tap-feedback .bubble{background:#fff7fc;border-color:#af7896;color:#63364f;font-weight:600}.bubble,.scene-label,.petal{pointer-events:none}

/* Mobile WebView comfort: keep the task in view and the counselor close by. */
html{scroll-padding:20px 0 calc(24px + env(safe-area-inset-bottom) + var(--keyboard-inset,0px));-webkit-text-size-adjust:100%}
body{padding-bottom:env(safe-area-inset-bottom)}
button,.brand{min-height:44px;touch-action:manipulation}
button:disabled{cursor:default}
textarea,input:not([type=radio],[type=checkbox]),select{font-size:16px;min-height:48px}
input[type=checkbox]{width:20px;height:20px;flex-shrink:0}
.check{min-height:44px;align-items:center;cursor:pointer}
.check input{margin:0}
.back{min-height:44px}
.quiet-controls{gap:8px;flex-wrap:wrap}
.quiet-controls button{font-size:11px;padding:10px 6px}
.evidence summary{min-height:44px;align-content:center;line-height:1.8}
.reference a{display:inline-flex;align-items:center;min-height:44px}
.panel,.context-preview,.answer-block,.evidence,.followup-answer{overflow-wrap:anywhere}
.mobile-settings{display:none}
@media(max-width:680px){
 .topbar{height:60px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
 .layout{padding:0 max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));margin:16px auto 24px}
 .companion{display:grid;grid-template-columns:108px minmax(0,1fr);grid-template-rows:auto auto;column-gap:16px;align-items:center;margin-bottom:24px}
 .intro{grid-column:2;grid-row:1;text-align:left;padding:0}
 .intro>.eyebrow,.intro p{display:none}
 .intro h1{font-size:18px;line-height:1.65;letter-spacing:-.8px;margin:0}
 .intro h1 br{display:none}
 .scene{grid-column:1;grid-row:1/3;width:108px;height:128px;margin:0;border-radius:60px 60px 13px 13px;min-width:0;max-width:none}
 .scene:before{inset:8px 10px 0;border-radius:60px 60px 0 0}
 .scene-label,.scene .petal{display:none}
 .actor{inset:0;align-items:flex-end}
 .portrait{width:150px;max-width:none}
 .bubble{left:3px;right:3px;bottom:4px;font-size:10px;line-height:1.5;padding:5px 2px;border-radius:8px}
 .counselor-controls{grid-column:2;grid-row:2;max-width:none;width:100%;margin:2px 0 0;align-self:end}
 .mobile-settings{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:0;background:transparent;padding:7px 0;text-align:left;font-size:12px;color:var(--plum)}
 .mobile-settings span{font-size:17px}
 #counselor-settings{display:none}
 .companion.settings-open #counselor-settings{display:block;margin-top:8px}
 .companion.settings-open .counselor-controls{grid-column:1/-1;grid-row:3;margin-top:9px;padding:0 3px}
 .companion.settings-open .mobile-settings span{transform:rotate(180deg)}
 .segmented button{font-size:13px;min-height:44px;padding:10px}
 .quiet-controls{justify-content:space-between;margin:6px 0 0;gap:4px}
 .quiet-controls button{font-size:11px;min-height:44px;padding:10px 4px}
 .companion.character-expanded .intro{grid-column:1/-1;grid-row:1;text-align:center;margin-bottom:12px}
 .companion.character-expanded .scene{grid-column:1/-1;grid-row:2;width:100%;height:320px;max-width:340px;justify-self:center;border-radius:160px 160px 14px 14px}
 .companion.character-expanded .scene .actor{inset:12px 0 0}
 .companion.character-expanded .bubble{left:30px;right:30px;padding:10px;font-size:12px}
 .companion.character-expanded .counselor-controls{grid-column:1/-1;grid-row:3}
 .steps{font-size:10px;margin-bottom:15px;gap:7px}
 .panel{padding:22px 18px}
 h2{font-size:22px;line-height:1.5;letter-spacing:-1px;margin-top:10px}
 .description{font-size:12px;line-height:1.8;margin-bottom:22px}
 .relations{gap:6px}
 .relations span{font-size:13px;padding:12px 0;min-height:67px}
 .field,legend{font-size:13px}
 .field{margin-top:18px}
 .date-fields{grid-template-columns:1.4fr 1fr 1fr;gap:6px}
 .date-fields input{padding-left:9px;padding-right:25px}
 .date-fields small{right:9px;top:18px}
 .input-foot{flex-wrap:wrap;font-size:10px;line-height:1.6;margin-bottom:20px}
 .primary{font-size:14px;min-height:52px;margin-top:22px}
 .check{font-size:12px}
 .back{font-size:12px}
 .consent-box p,.small-note{font-size:11px}
 .answer-block p,.evidence p{font-size:15px;line-height:1.95}
 .advice li,.uncertainties li,.questions li,.followup-question{font-size:14px}
 .section-label{font-size:11px}
 .reference{font-size:11px!important;line-height:1.8!important}
 .error{font-size:13px}
 .context-preview{font-size:14px;line-height:1.85}
 .loading{min-height:380px;padding:42px 18px}
 .loading p{font-size:14px}
}
@media(max-width:340px){
 .companion{column-gap:12px;grid-template-columns:96px minmax(0,1fr)}
 .scene{width:96px;height:120px}
 .intro h1{font-size:17px}
 .steps{font-size:9px;gap:5px}
 .panel{padding:20px 16px}
 .quiet-controls button{font-size:10px}
}
@media(max-width:680px){
 .intro h1{font-size:17px;word-break:keep-all}
 .intro h1 br{display:block}
 .portrait{width:128px}
 .bubble{word-break:keep-all}
 #concern-form>.description{margin-bottom:18px}
 #concern-form fieldset{margin-bottom:18px}
 #concern-form .field{margin-top:14px}
}
@media(max-width:340px){.portrait{width:120px}.intro h1{font-size:16px}}

.pilot-dialog{width:min(90vw,380px);padding:24px;border:1px solid var(--line);border-radius:18px;background:#fffaf7;color:var(--plum)}.pilot-dialog::backdrop{background:#24192380}.pilot-dialog p{font-size:14px;line-height:1.7}.pilot-dialog input{width:100%;font-size:16px;min-height:48px;padding:12px;border:1px solid var(--line);border-radius:10px}
/* Toss supplies its own app title and back navigation. */
html[data-platform=toss] .topbar{display:none}
