/* Conversation Workshop v43. Final semantic tokens shared by both courses. */
:root{--accent:#127064;--navy:#183940;--ink:#183940;--ink-soft:#52666d;--ink-light:var(--ink-soft);--honey:#edb75b;--lime:var(--honey);--honey-bg:#fff0ce;--violet:var(--accent);--pink:var(--accent);--pink-dark:#127064;--pink-deep:#094a43;--pink-light:#eaf0e8;--cream:#f1f7fc;--bg:#f1f7fc;--card:#fefcf7;--card-border:#cbdde2;--success:#127064;--success-bg:#e4f3ef;--warning:#b94632;--warning-bg:#fff0e8;--accent-bg:#e4f3ef;--shadow-sm:none;--shadow-md:none;--shadow-lg:0 16px 60px #16372b22;--r-lg:18px;--r-md:12px;--ease-out:cubic-bezier(.2,.8,.2,1);--action:#127064;--action-hover:#0d5c52;--on-action:#fff;--on-accent:#fff;--surface-nav:rgba(254,252,247,.94);--control-border:#718d93;--focus:var(--accent);--ease-arrive:cubic-bezier(.16,1,.3,1);--motion-tap:120ms;--motion-state:180ms;--motion-view:300ms;--motion-chapter:340ms;--motion-result:560ms;--depth-nav:0 10px 32px rgba(24,57,64,.08)}
body.night{--cream:#142c33;--bg:#142c33;--card:#1e3940;--card-border:#405b62;--ink:#e5eff0;--navy:#e5eff0;--ink-soft:#aec2c6;--ink-light:#aec2c6;--violet:#88d8c6;--accent:#88d8c6;--accent-bg:#214c49;--success:#98dec7;--success-bg:#214b40;--warning:#ffc0a9;--warning-bg:#59362f;--honey-bg:#493d25;--pink:#88d8c6;--pink-dark:#71c8b4;--pink-deep:#a8e7d8;--pink-light:#214c49;--action:#267f71;--action-hover:#23766a;--on-accent:#142c33;--surface-nav:rgba(30,57,64,.96);--control-border:#8ba7ad;--depth-nav:0 10px 32px rgba(0,0,0,.18);color-scheme:dark}
body{color-scheme:light;scrollbar-color:var(--control-border) var(--bg)}
body.night{color-scheme:dark}
::selection{background:var(--honey-bg);color:var(--ink)}
input,textarea{caret-color:var(--accent)}
button,input,select,textarea,.spell-key,.quiz-done .score,#modal-card{font-family:"Be Vietnam Pro",system-ui,sans-serif}
button,a,input,select,summary{touch-action:manipulation}
button,a{ -webkit-tap-highlight-color:transparent}
:where(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--focus);outline-offset:4px}
:where(h2,h3,h4)[tabindex="-1"]:focus{outline:none}
button{transition:background-color var(--motion-state),color var(--motion-state),border-color var(--motion-state),transform var(--motion-tap) var(--ease-arrive)}
.primary-btn,body.night .primary-btn,.next-panel .primary-btn,body.night .next-panel .primary-btn{background:var(--action);color:var(--on-action)}
.primary-btn:hover:not(:disabled),body.night .primary-btn:hover:not(:disabled){background:var(--action-hover);transform:translateY(-1px)}
.primary-btn:active:not(:disabled),.secondary-btn:active:not(:disabled){transform:scale(.975)}
.primary-btn:disabled,body.night .primary-btn:disabled{background:var(--card-border);color:var(--ink-soft);transform:none}
.secondary-btn:hover:not(:disabled){background:var(--accent-bg);border-color:var(--accent)}
input:not([type=file]),select,textarea{border-color:var(--control-border)}
select{min-height:44px;border:1px solid var(--control-border);border-radius:12px;padding:8px 12px;color:var(--ink);background:var(--card);max-width:100%}
input[type=file]{display:block;width:100%;max-width:100%;min-width:0;font-size:14px;overflow:hidden}
input[type=file]::file-selector-button{font:inherit;min-height:44px;border:1px solid var(--control-border);border-radius:8px;color:var(--ink);background:var(--card);padding:8px 12px;margin-right:8px;cursor:pointer}
[aria-invalid=true]{border-color:var(--warning)!important}
nav.bottom,body.night nav.bottom{background:var(--surface-nav);box-shadow:var(--depth-nav);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
header.top{backdrop-filter:none;-webkit-backdrop-filter:none}
nav.bottom button{position:relative;isolation:isolate;overflow:hidden;transition:background-color var(--motion-state),color var(--motion-state)}
nav.bottom button .ic{display:grid;place-items:center;flex:none;width:24px;height:24px}
nav.bottom button .ic svg{width:24px;height:24px;stroke-width:1.8}
nav.bottom button>span:last-child{min-width:0}
nav.bottom button.active,body.night nav.bottom button.active{color:var(--on-action);background:var(--action)}
nav.bottom button.active .ic{transform:scale(1.06)}
nav.bottom button .ic{transition:transform var(--motion-state) var(--ease-arrive)}
nav.bottom button:active .ic{transform:scale(.9)}
.ru-vi-route-map .current .ru-vi-route-node,.ru-vi-route-map .complete .ru-vi-route-node,.trail-step.now .trail-node{color:var(--on-accent)}
.trail-step.done .trail-node{color:var(--success)}
.ru-vi-options .secondary-btn[aria-pressed=true],.secondary-btn[aria-pressed=true]{background:var(--accent-bg);color:var(--ink);border-color:var(--accent)}
.answer-option.selected,.ru-vi-study-options button.selected{box-shadow:inset 0 0 0 1px var(--accent)}
.ru-vi-options button,.ru-vi-study-options button,.answer-option{transition:background-color var(--motion-state),border-color var(--motion-state),transform var(--motion-tap)}
.ru-vi-options button:active,.ru-vi-study-options button:active,.answer-option:active{transform:scale(.98)}
.answer-input{line-height:1.65;letter-spacing:0}
.ui-icon{width:22px;height:22px;flex:none;stroke-width:1.8}
.speak-btn{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
details>summary{cursor:pointer;min-height:44px;align-content:center;border-radius:8px;transition:color var(--motion-state),background-color var(--motion-state)}
details>summary:hover{color:var(--accent)}
details[open]>summary{color:var(--accent)}
.ru-vi-draft{margin:12px 0 20px}
.ru-vi-draft summary{font-size:13px;color:var(--ink-soft)}
#ru-vi-status:empty{display:none}
.workshop-art{background-image:url('assets/workshop-atlas-v43.png');background-size:400% 200%;background-position:var(--art-x,0%) var(--art-y,0%);aspect-ratio:1;flex:none;overflow:hidden;border-radius:16px}
.ru-vi-route-art{background-image:url('assets/workshop-atlas-v43.png');background-size:400% 200%;background-position:var(--art-x) 0%;--art-x:0%}
.ru-vi-route-art.art-1{--art-x:33.333333%}.ru-vi-route-art.art-2{--art-x:66.666667%}.ru-vi-route-art.art-3{--art-x:100%}
.ru-vi-route-art.art-0,.ru-vi-route-art.art-1,.ru-vi-route-art.art-2,.ru-vi-route-art.art-3{background-position:var(--art-x) 0%}
.trail-landscape>.workshop-art{width:100%;max-width:420px;margin:auto}
.trail-detail{grid-template-columns:minmax(220px,.85fr) 1.15fr;gap:28px}
.trail-coordinate{display:none}
.trail-destination>.trail-scene{max-height:88px;margin-bottom:10px}
.ru-vi-route-cover .ru-vi-route-art{aspect-ratio:1;align-self:stretch}
.ru-vi-route-cover>div:last-child{padding:28px}
.ru-vi-home>.ru-vi-home-route,.ru-vi-home>.ru-vi-study-entry{grid-column:1/-1;min-width:0}
.ru-vi-route-levels a,.ru-vi-route-map a,.trail-destination,.lesson-node,.library-card,.focus-card{transition:background-color var(--motion-state),border-color var(--motion-state),transform var(--motion-state) var(--ease-arrive)}
@media(hover:hover){.ru-vi-route-levels a:hover,.trail-destination:hover,.library-card:hover{transform:translateY(-2px)}.trail-destination:hover .trail-scene{transform:none}}
.ru-vi-route-levels a:active,.trail-destination:active,.library-card:active{transform:scale(.985)}
#modal{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
#modal:not([hidden]) #modal-card{animation:workshop-dialog 280ms var(--ease-arrive)}
@keyframes workshop-dialog{from{opacity:.4;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
.flash-card{transition:transform 420ms var(--ease-arrive)}
.progress-fill,.lesson-progress i{transition:none;transform-origin:left}
.progress-fill.shimmer::after{display:none;animation:none}
.slovo-bear.motion-paused *{animation-play-state:paused!important}
body[data-reduce-motion=true] *,body[data-reduce-motion=true] *::before,body[data-reduce-motion=true] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
body[data-reduce-motion=true] :where(button,a):is(:hover,:active){transform:none!important}
body[data-reduce-motion=true] .slovo-bear:where(:not(.bear-idle):not(.bear-think):not(.bear-sleep)) .bear-head{transform:var(--head-pose)}
body[data-reduce-motion=true] .slovo-bear .bear-arm-left{transform:var(--left-pose)}
body[data-reduce-motion=true] .slovo-bear .bear-arm-right{transform:var(--right-pose)}
body[data-reduce-motion=true] .slovo-bear .bear-grin{opacity:var(--grin)}
body[data-reduce-motion=true] .slovo-bear .bear-concern{opacity:var(--concern)}
body[data-reduce-motion=true] .slovo-bear .bear-mouth{opacity:calc(1 - var(--grin) - var(--concern))}
body[data-reduce-motion=true] .slovo-bear .bear-eye-smiles{opacity:var(--smile-eyes)}
body[data-reduce-motion=true] .slovo-bear .bear-eyes{opacity:calc(1 - var(--smile-eyes))}
[aria-busy=true]{cursor:progress}
button[aria-busy=true]::after{content:'';width:16px;height:16px;display:inline-block;margin-left:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:workshop-loading .8s linear infinite}
@keyframes workshop-loading{to{transform:rotate(360deg)}}
@media(max-width:900px){nav.bottom{padding:8px 8px max(8px,env(safe-area-inset-bottom));gap:3px}nav.bottom button{padding:8px 3px;min-height:60px;gap:4px;line-height:1.4}nav.bottom button .ic,nav.bottom button .ic svg{width:22px;height:22px}#app{padding-bottom:110px}}
@media(max-width:650px){.trail-detail{grid-template-columns:1fr;gap:16px}.trail-landscape>.workshop-art{max-width:210px}.ru-vi-route-cover .ru-vi-route-art{width:112px;aspect-ratio:1;align-self:auto}.ru-vi-route-cover>div:last-child{padding:20px}.ru-vi-route-levels strong{overflow-wrap:anywhere}}
@media(max-width:420px){.ru-vi-study-audio-row{grid-template-columns:1fr}.ru-vi-study-audio-icon{width:42px;height:42px}.ru-vi-study-audio-icon svg{width:32px;height:32px}.ru-vi-study-audio audio{width:100%;min-width:0}.ru-vi-study-stage{min-width:0}nav.bottom button{font-size:11px}.ru-vi-home-route{min-width:0}.ru-vi-home-route>div:last-child{min-width:0}.ru-vi-home-route h3{overflow-wrap:anywhere}}
@supports not (backdrop-filter:blur(1px)){nav.bottom,body.night nav.bottom{background:var(--card)}}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){nav.bottom,body.night nav.bottom{background:var(--card);backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}button:hover,button:active,a:hover,a:active{transform:none!important}.flash-card{transition:none}.workshop-art{transform:none!important}}
@media(forced-colors:active){nav.bottom{background:Canvas;backdrop-filter:none}nav.bottom button.active{color:HighlightText;background:Highlight}.answer-option.selected,[aria-pressed=true]{outline:2px solid Highlight}.workshop-art{forced-color-adjust:none}}
