/* V4.5: editorial portrait and folded-paper identity, scoped to visual surfaces. */
.ip-v45{width:116px;min-width:116px}.ip-v45.large{width:168px;min-width:168px}.ip-v45 svg{overflow:hidden}.ip-v45 figcaption{font-size:10px;letter-spacing:.8px;margin-top:4px}.ip-person,.ip-spirit{transform-origin:90px 170px}.ip-gesture{transform-origin:133px 150px;transform:rotate(16deg)}.ip-listen,.ip-signal,.ip-voice{opacity:0}.ip-v45[data-agent-state=guiding] .ip-gesture{transform:rotate(-8deg)}.ip-v45[data-agent-state=pointing] .ip-gesture{transform:rotate(-28deg)}.ip-v45[data-agent-state=thinking] .ip-head{transform:rotate(-4deg);transform-origin:90px 90px}.ip-v45[data-agent-state=thinking] .ip-signal{opacity:.8;animation:ip-think 2.6s ease-in-out infinite}.ip-v45[data-agent-state=speaking] .ip-voice{opacity:1;animation:ip-think 1.8s ease-in-out infinite}.ip-v45[data-agent-state=speaking] .ip-mouth{animation:ip-talk .9s ease-in-out infinite;transform-origin:90px 102px}.ip-v45[data-agent-state=listening] .ip-listen{opacity:.7}.ip-v45[data-agent-state=listening] .ip-head{transform:rotate(3deg);transform-origin:90px 90px}.ip-v45[data-agent-state=idle] .ip-badge{animation:ip-think 5s ease-in-out infinite}.stage-bottom .ip-v45{width:102px;min-width:102px;color:#bdcecb}.stage-bottom .ip-v45 figcaption{color:#bdcecb}.yiwen-header .ip-portrait,.yiwen-welcome .ip-portrait{width:52px;height:61px;color:var(--brand);flex-shrink:0}.yiwen-welcome .ip-portrait{width:80px;height:94px}.yiwen-header{padding-top:9px;padding-bottom:9px}.yiwen-header strong{font-size:21px}
#yiwen-float-dock{position:fixed;right:16px;bottom:18px;z-index:30;width:164px}#yiwen-float{display:flex;align-items:center;gap:6px;width:100%;padding:6px 8px 6px 1px;background:var(--paper);color:var(--brand);border:1px solid color-mix(in srgb,var(--brand) 28%,var(--line));border-radius:12px;box-shadow:0 6px 24px #253d4010;text-align:left;transition:box-shadow .2s,border-color .2s}#yiwen-float .ip-portrait{width:54px;height:64px;flex-shrink:0}#yiwen-float>span{display:grid;gap:4px;min-width:0}#yiwen-float strong{font-size:12px;font-weight:650}#yiwen-float small{font-size:9px;color:var(--muted);white-space:nowrap}#yiwen-float .ip-float-arrow{font-size:15px;margin-left:auto;align-self:flex-start}#yiwen-float:hover,#yiwen-float:focus-visible{border-color:var(--brand);box-shadow:0 8px 26px #253d4022;outline:2px solid color-mix(in srgb,var(--brand) 25%,transparent);outline-offset:3px}#yiwen-float:hover .ip-orbit,#yiwen-float:focus-visible .ip-orbit{opacity:.7}
/* A reserved side gutter keeps the floating portrait outside the artwork and controls. */
@media(min-width:1201px){body:not(.yiwen-open) .main-shell{margin-right:188px}body:not(.yiwen-open) .art-layout{grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr)}body:not(.yiwen-open) .current-class{grid-template-columns:1.3fr 1fr}}
@media(min-width:701px) and (max-width:1200px){body:not(.yiwen-open) .main-shell{margin-right:90px}#yiwen-float-dock{width:70px;right:10px}#yiwen-float{padding:4px 7px;flex-direction:column;gap:0}#yiwen-float .ip-portrait{width:48px;height:56px}#yiwen-float strong{font-size:10px}#yiwen-float small,#yiwen-float .ip-float-arrow{display:none}body:not(.yiwen-open) .current-class{grid-template-columns:1fr}body:not(.yiwen-open) .school-visual{display:none}}
@media(max-width:700px){body:not(.yiwen-open){height:100dvh;overflow:hidden}body:not(.yiwen-open) #app{height:calc(100dvh - 70px);overflow-y:auto;overscroll-behavior:contain}#yiwen-float-dock{right:12px;bottom:max(6px,env(safe-area-inset-bottom));width:134px}#yiwen-float{padding:2px 8px 2px 2px;border-radius:10px;box-shadow:none}#yiwen-float .ip-portrait{width:42px;height:50px}#yiwen-float strong{font-size:11px}#yiwen-float small{font-size:9px}#yiwen-float .ip-float-arrow{display:none}body:not(.yiwen-open) #yiwen-host:before{content:'';position:fixed;inset:auto 0 0;height:70px;background:var(--paper);border-top:1px solid var(--line);z-index:29}body:not(.yiwen-open) .sidebar{position:sticky;top:0}.ip-v45{width:100px;min-width:100px}.ip-v45.large{width:140px;min-width:140px}}
@keyframes ip-think{50%{opacity:.3}}@keyframes ip-talk{50%{transform:scaleY(1.4)}}@media(prefers-reduced-motion:reduce){.ip-v45 *{animation:none!important;transition:none!important}#yiwen-float{transition:none}}

.ip-v45[data-agent-state=idle] .ip-gesture{transform:rotate(48deg)}.ip-v45[data-agent-state=thinking] .ip-gesture{transform:rotate(36deg)}.ip-v45[data-agent-state=listening] .ip-gesture{transform:rotate(28deg)}.yiwen-handoff{display:flex;align-items:center;gap:8px}.yiwen-handoff .xiaoyi{width:42px;min-width:42px}.yiwen-handoff figcaption{display:none}.yiwen-handoff p{margin:0;font-size:11px}

.ip-v45 .agent-body{animation:none;transform:none}
