/* A useful first action leads; the complete illustration supports it. */
#root .app[data-route=catalog] .practice-hub--today {display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start;}
#root .app[data-route=catalog] .practice-hub--today>.practice-head {grid-column:1/-1;min-height:58px;margin:0;}
#root .app[data-route=catalog] .practice-hub--today .practice-welcome {
 display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,.7fr);gap:20px 10px;min-width:0;padding:24px 22px;
 border:1px solid color-mix(in srgb,var(--accent) 16%,var(--line));border-radius:26px;
 background:radial-gradient(ellipse at 100% 0,var(--accent-soft),transparent 75%),var(--surface);color:var(--text);
}
.practice-welcome__copy {grid-column:1;grid-row:1;min-width:0;align-self:center;}
.practice-welcome__copy .practice-eyebrow {color:var(--accent);font:550 10px/1.4 var(--font-ui);letter-spacing:.09em;text-transform:uppercase;}
.practice-welcome__copy h2 {margin:12px 0 10px;font:600 clamp(24px,6vw,30px)/1.15 var(--font-ui);letter-spacing:-.045em;text-wrap:balance;overflow-wrap:anywhere;}
.practice-welcome__copy p {display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:0;color:var(--muted);font:400 12px/1.65 var(--font-ui);overflow-wrap:anywhere;}
.practice-welcome__copy>small {display:block;margin-top:8px;color:var(--accent);font:450 11px/1.5 var(--font-ui);}
.practice-welcome__art {display:block;grid-column:2;grid-row:1;align-self:center;justify-self:center;width:100%;height:auto;max-width:460px;object-fit:contain;pointer-events:none;}
.practice-welcome__actions {display:flex;grid-column:1/-1;grid-row:2;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;}
.welcome-start {display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1;min-width:0;min-height:48px;padding:12px 16px;border:0;border-radius:14px;background:var(--accent);color:var(--on-accent,var(--bg));font:600 13px/1.4 var(--font-ui);cursor:pointer;transition:background-color 140ms ease,box-shadow 140ms ease;}
.welcome-start>svg {flex:none;}
.welcome-start:disabled {opacity:.55;cursor:wait;}
.welcome-start:not(:disabled):hover {background:color-mix(in srgb,var(--accent) 87%,var(--text));}
#root .app .practice-hub--today .welcome-options {display:grid;place-items:center;flex:none;width:48px;height:48px;min-height:48px;padding:0;border:1px solid var(--line);border-radius:14px;color:var(--accent);background:var(--surface-2);}
.welcome-new {flex-basis:100%;min-height:36px;padding:6px 0;border:0;background:transparent;color:var(--accent);text-align:left;font:500 12px/1.4 var(--font-ui);cursor:pointer;}
.practice-welcome__series {display:grid;grid-column:1/-1;grid-row:3;grid-template-columns:auto auto minmax(0,1fr) 15px;align-items:center;gap:8px;min-width:0;min-height:38px;padding:12px 0 0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--muted);text-align:left;cursor:pointer;}
.practice-welcome__series>span {font:400 10px/1.4 var(--font-ui);}
.practice-welcome__series>b {font:500 12px/1.4 var(--font-ui);color:var(--text);}
.practice-welcome__series>small {font:400 10px/1.4 var(--font-ui);text-align:right;}
.practice-welcome__series:not(:disabled):hover>b {color:var(--accent);}
#root .app[data-route=catalog] .practice-hub--today .practice-topics {display:grid;gap:12px;min-width:0;}
#root .app[data-route=catalog] .practice-hub--today .practice-topics>h2 {margin:0;font:600 19px/1.4 var(--font-ui);letter-spacing:-.025em;}
#root .app[data-route=catalog] .practice-hub--today .practice-topic {min-height:76px;padding:14px 16px;border:1px solid transparent;border-radius:18px;background:var(--surface);grid-template-columns:42px minmax(0,1fr) 16px;gap:14px;transition:background-color 140ms ease,border-color 140ms ease;}
#root .app[data-route=catalog] .practice-hub--today .practice-topic b {font:550 17px/1.3 var(--font-ui);letter-spacing:-.02em;}
#root .app[data-route=catalog] .practice-hub--today .practice-topic small {font:400 11px/1.5 var(--font-ui);}
#root .app[data-route=catalog] .practice-hub--today .practice-topic-symbol {width:42px;height:42px;border-radius:13px;color:var(--accent);background:var(--accent-soft);}
#root .app[data-route=catalog] .practice-hub--today .practice-topic:not(:disabled):hover {border-color:var(--line);background:color-mix(in srgb,var(--accent-soft) 35%,var(--surface));}
#root .app .practice-hub--today :is(.welcome-start,.welcome-options,.welcome-new,.practice-welcome__series,.practice-topic):focus-visible {outline:2px solid var(--accent);outline-offset:4px;}
@media(min-width:1100px) {
 #root .app[data-route=catalog] .practice-hub--today {grid-template-columns:minmax(0,1.3fr) minmax(320px,.9fr);gap:28px;}
 #root .app[data-route=catalog] .practice-hub--today>.practice-head {min-height:100px;margin-bottom:4px;}
 #root .app[data-route=catalog] .practice-hub--today .practice-welcome {min-height:378px;padding:32px;grid-template-columns:minmax(0,1fr) minmax(160px,.9fr);gap:24px 18px;}
 #root .app[data-route=catalog] .practice-hub--today .practice-welcome__copy h2 {font-size:clamp(28px,2.5vw,42px);max-width:12ch;}
 #root .app[data-route=catalog] .practice-hub--today .practice-welcome__copy p {font-size:13px;max-width:26ch;}
 #root .app[data-route=catalog] .practice-hub--today .welcome-start {flex:0 1 270px;min-width:200px;min-height:50px;font-size:14px;}
 #root .app[data-route=catalog] .practice-hub--today .practice-welcome__actions {align-self:end;}
 #root .app[data-route=catalog] .practice-hub--today .practice-topics {height:100%;grid-template-rows:auto minmax(0,1fr);gap:16px;}
 #root .app[data-route=catalog] .practice-hub--today .practice-topic-grid {grid-auto-rows:minmax(90px,1fr);gap:12px;}
 #root .app[data-route=catalog] .practice-hub--today .practice-topic {padding:20px;}
 #root .app[data-route=catalog] .practice-hub--today .practice-desktop-library {margin-top:0;gap:16px;}
}

/* Initial HTML and route loaders share a calm brand mark and indeterminate
   light track. No fake percentage, added wait or rerender-driven motion. */
.boot-splash {gap:28px;}
.boot-splash__art,.loading:not(.loading--inline) .loading__art {width:92px;height:86px;border-radius:0;background:none;}
.boot-splash__emblem,.loading:not(.loading--inline) .loading__emblem {width:44px;height:48px;background:var(--accent,#49bfb0);animation:none;}
.boot-splash__orbit,.loading:not(.loading--inline) .loading__orbit {inset:auto auto -8px 50%;width:88px;height:2px;border:0;border-radius:4px;overflow:hidden;background:var(--line,#49bfb026);transform:translateX(-50%);}
.boot-splash__orbit::before,.loading:not(.loading--inline) .loading__orbit::before {inset:0 auto 0 0;width:32%;height:100%;border:0;border-radius:inherit;background:var(--accent,#49bfb0);animation:entry-loading-light 1600ms ease-in-out infinite;}
.boot-splash__orbit::after,.loading .loading__orbit::after {display:none;}
.loading .loading__rhythm {display:none;}
.loading .loading__copy {gap:0;}
.loading:not(.loading--inline) .loading__label,.boot-splash>span {font-size:12px;font-weight:450;letter-spacing:.015em;}
.loading:not(.loading--placeholder) {animation:entry-loading-reveal 140ms ease-out both;}
.loading--inline .loading__orbit {inset:8px 0 auto;width:18px;height:2px;border:0;border-radius:3px;overflow:hidden;background:var(--line);}
.loading--inline .loading__orbit::before {inset:0 auto 0 0;width:8px;height:2px;border:0;border-radius:3px;background:currentColor;animation:entry-loading-light 1600ms ease-in-out infinite;}
@keyframes entry-loading-light {0% {transform:translateX(-110%);}100% {transform:translateX(420%);}}
@keyframes entry-loading-reveal {from {opacity:0;}to {opacity:1;}}
html[data-motion=reduced] :is(.practice-hub--today,.loading,.boot-splash) *,html[data-motion=reduced] :is(.loading,.boot-splash) *::before {animation:none!important;transition:none!important;}
@media(prefers-reduced-motion:reduce) {:is(.practice-hub--today,.loading,.boot-splash),:is(.practice-hub--today,.loading,.boot-splash) *,:is(.loading,.boot-splash) *::before {animation:none!important;transition:none!important;}}
