/* Semantic surfaces and the one shared motion language. */
:root{--motion-fast:120ms;--motion-normal:180ms;--motion-panel:240ms;--motion-ease:cubic-bezier(.2,.7,.2,1);--surface-control:var(--card);--surface-active:var(--mint);--text-secondary:color-mix(in srgb,var(--ink) 72%,var(--card));--border-control:color-mix(in srgb,var(--ink) 28%,var(--card));--focus-ring:var(--green);--text-on-accent:var(--paper)}
button,input,textarea,select,a{transition:color var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease),opacity var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease)}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,canvas:focus-visible,summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
button:disabled,input:disabled{opacity:.55;cursor:not-allowed}button[aria-busy=true]{cursor:progress}.button:active:not(:disabled){filter:brightness(.95)}
.muted,.lede,.chart-note,.chart-summary,.word-row-def,.empty-state,.setting-row p,.functional-panel p,.task-copy p{color:var(--text-secondary)}
input,textarea,select,.select-trigger{background:var(--surface-control);color:var(--ink);border-color:var(--border-control)}
.select-options{background:var(--surface-control);border-color:var(--border-control);box-shadow:0 8px 22px #0002;animation:rc-enter var(--motion-normal) var(--motion-ease)}.custom-select.closing .select-options{animation:rc-exit var(--motion-fast) var(--motion-ease)}
.select-options [aria-selected=true],.select-options button:hover{color:var(--ink);background:var(--surface-active)}
.nav-group-links,.nav-group summary::after{transition:all var(--motion-panel) var(--motion-ease)}
.density-tabs,.leaderboard-mode-tabs,.explorer-modes{display:flex;flex-wrap:wrap;gap:4px;padding:4px;border:1px solid var(--border-control);border-radius:8px;background:var(--paper);width:fit-content;max-width:100%}
.density-tabs button,.leaderboard-mode-tabs button,.explorer-modes button{appearance:none;border:1px solid transparent;border-radius:5px;padding:7px 12px;background:transparent;color:var(--text-secondary);font:600 12px var(--sans);cursor:pointer}
.density-tabs button[aria-pressed=true],.leaderboard-mode-tabs button[aria-pressed=true],.explorer-modes button[aria-pressed=true],.progress-view-tabs button[aria-pressed=true]{background:var(--surface-active);border-color:var(--border-control);color:var(--ink)}
.theme-preview,.theme-swatch,.theme-card .theme-preview,.theme-choice .theme-preview{border-radius:6px!important;aspect-ratio:1.6!important;min-height:28px;max-height:42px}.theme-card,.theme-choice{min-width:0}
.rc-dialog{width:min(480px,calc(100vw - 28px));max-height:calc(100dvh - 40px);overflow:auto;margin:auto;padding:20px;border:1px solid var(--border-control);border-radius:12px;background:var(--card);color:var(--ink);box-shadow:0 20px 80px #0004;animation:rc-enter var(--motion-panel) var(--motion-ease)}
.rc-dialog-wide{width:min(820px,calc(100vw - 28px))}.rc-dialog::backdrop{background:#141c1970}.rc-dialog h2{font:600 24px var(--serif);margin:0}.rc-dialog label{display:grid;gap:5px;margin-block:12px}.rc-dialog input,.rc-dialog textarea,.rc-dialog select{width:100%;min-width:0}.rc-dialog-body{margin-top:14px}.rc-operation-status{color:var(--text-secondary)}
.avatar-crop{width:min(320px,100%);aspect-ratio:1;margin:18px auto;background:var(--paper);border:2px solid var(--gold);border-radius:50%;overflow:hidden}.avatar-crop canvas{display:block;width:100%;touch-action:none;cursor:grab}
.rc-study-tasks{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px;padding:10px 12px;background:var(--card);border:1px solid var(--line);border-radius:8px;font-size:12px}.rc-study-tasks>div{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.rc-study-tasks strong{font-weight:500}.rc-account-locked{opacity:.7}.rc-lock-note{font-size:12px;color:var(--text-secondary)}
.rc-shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--density-gap)}.rc-shop-item{display:flex;flex-direction:column;gap:8px}.rc-shop-item h2{font-size:20px;margin:0}.rc-shop-item p{margin:0}.rc-shop-item .functional-actions{margin-top:auto}.rc-item-art{height:88px;display:grid;place-items:center;border:1px solid var(--line);background:var(--paper);border-radius:8px}.rc-item-art svg{width:56px;height:56px;stroke:var(--green);fill:none;stroke-width:1.5}.rc-avatar-preview{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--mint);color:var(--green);font-size:28px;overflow:hidden}.rc-avatar-preview img{width:100%;height:100%;object-fit:cover}.rc-avatar-preview.frame-gold{outline:3px solid var(--gold);outline-offset:2px}.rc-avatar-preview.frame-lavender{outline:3px solid #a48cc4;outline-offset:2px}.rc-avatar-preview.accent-forest{background:var(--mint);border:3px solid var(--green)}
.rc-set-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rc-set-entry{padding:12px;border:1px solid var(--border-control);border-radius:8px;margin:10px 0}.rc-set-entry legend{font:600 16px var(--serif)}.rc-set-entry textarea{min-height:80px}.rc-set-entry label{display:grid;gap:5px;font-size:12px}.rc-set-entry input,.rc-set-fields input,.rc-set-fields select{width:100%;padding:9px;border:1px solid var(--border-control);border-radius:6px}.rc-set-fields .rc-full{grid-column:1/-1}
.rc-drill-list{display:grid;gap:10px}.rc-drill-row{border-block-end:1px solid var(--line);padding:10px 0}.rc-drill-row h3{font:600 21px var(--serif);margin:0;text-transform:capitalize}.rc-drill-row p{margin:5px 0}.rc-drill-row small{color:var(--text-secondary)}
.functional-toast,.task-row.ready,.task-row.claim-settled,.page.active,.progress-view.active,.detail-card{animation:rc-enter var(--motion-normal) var(--motion-ease)}.functional-toast{color:var(--ink);background:var(--card);border-color:var(--border-control);max-width:calc(100vw - 28px)}
@keyframes rc-enter{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes rc-exit{from{opacity:1}to{opacity:0;transform:translateY(2px)}}
@media(max-width:900px){.rc-shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.rc-shop-grid,.rc-set-fields{grid-template-columns:1fr}.rc-dialog{padding:16px}.rc-set-fields .rc-full{grid-column:auto}}
@media(prefers-reduced-motion:reduce){:root{--motion-fast:0ms;--motion-normal:0ms;--motion-panel:0ms}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.atlas-toolbar{margin-bottom:14px}.atlas-toolbar form{display:flex;align-items:end;flex-wrap:wrap;gap:9px;margin-bottom:14px}.atlas-toolbar form label{font-size:12px}.atlas-toolbar input{padding:9px;border:1px solid var(--border-control);border-radius:6px;max-width:100%;min-width:0}.atlas-filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.atlas-filters label{display:grid;gap:5px;font-size:12px;flex:1;min-width:145px}.atlas-filters select{width:100%;padding:8px;border:1px solid var(--border-control);border-radius:6px}.atlas-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(250px,1fr);gap:14px}.atlas-layout>*{min-width:0}.atlas-canvas-card h2{font-size:21px}.atlas-canvas-card #atlas-graph{width:100%;overflow:hidden;background:var(--paper);border:1px solid var(--line);border-radius:9px}.atlas-canvas-card svg{display:block;width:100%;min-height:280px;max-height:580px;touch-action:none}.atlas-edge{stroke:var(--border-control);stroke-width:2;fill:none}.atlas-node{cursor:pointer;outline:none}.atlas-node rect{fill:var(--card);stroke:var(--border-control);stroke-width:1.5}.atlas-node text{fill:var(--ink);font:600 18px var(--serif)}.atlas-node .atlas-node-state{font:10px var(--sans);fill:var(--text-secondary)}.atlas-node.discoverable rect{stroke-dasharray:4 3}.atlas-node.saved rect{stroke:var(--gold)}.atlas-node.stage-mature rect{stroke:var(--gold);stroke-width:2.5;fill:var(--surface-active)}.atlas-node.stage-strong rect,.atlas-node.stage-very_strong rect{stroke:var(--green);stroke-width:2}.atlas-node.selected rect,.atlas-node:focus rect{stroke:var(--green);stroke-width:3}.atlas-legend{font-size:11px;line-height:1.5}.atlas-detail h2{font:600 34px var(--serif);text-transform:capitalize;margin:8px 0}.atlas-detail dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:12px;padding-block:12px;border-block:1px solid var(--line)}.atlas-detail dt{color:var(--text-secondary)}.atlas-detail dd{margin:0}.atlas-detail ul{padding-left:18px;font-size:12px}.atlas-detail li p{color:var(--text-secondary);line-height:1.5}.atlas-list-row{border-top:1px solid var(--line);padding:10px 0}.atlas-list-row small{display:block;color:var(--text-secondary);margin-block:5px}.atlas-list-row ul{padding-left:20px;font-size:12px;color:var(--text-secondary)}.atlas-empty{padding:32px 20px}.atlas-word-link{text-align:left;padding:4px 15px 10px;font-size:11px}.atlas-accessible summary{cursor:pointer;font-size:12px;padding:10px 0}
@media(max-width:1050px){.atlas-layout{grid-template-columns:1fr}.atlas-detail dl{grid-template-columns:1fr 2fr}}
@media(max-width:540px){.atlas-toolbar form input{width:100%;flex-basis:100%}.atlas-toolbar .density-tabs{width:100%}.atlas-toolbar .density-tabs button{flex:1;padding:7px 8px}.atlas-filters label{min-width:100%;}.atlas-canvas-card svg{min-height:240px}.atlas-canvas-card .compact-heading{flex-wrap:wrap}.atlas-detail h2{font-size:30px}}
.atlas-toolbar form{display:grid;grid-template-columns:auto minmax(150px,1fr) auto;max-width:640px;align-items:center}.atlas-toolbar form input{width:100%}.theme-preview{width:64px!important;height:40px!important;justify-self:center;overflow:hidden}.theme-preview .preview-word{font-size:6px}.theme-preview .preview-top{height:9px}.theme-preview .preview-line{margin:2px 9px}.theme-preview .preview-button{height:4px;margin:3px 15px}
@media(max-width:540px){.atlas-toolbar form{grid-template-columns:1fr auto}.atlas-toolbar form label{grid-column:1/-1}.atlas-toolbar form input{width:100%;flex-basis:auto}}

/* Override legacy motion exceptions with the shared tiers. */
.custom-select.open .select-options{animation:rc-enter var(--motion-normal) var(--motion-ease) both!important}
.custom-select.closing .select-options{display:grid;animation:rc-exit var(--motion-fast) var(--motion-ease) both!important}
.custom-select .select-trigger>span:last-child{transition:transform var(--motion-fast) var(--motion-ease)!important}
.theme-preview{display:block;background:linear-gradient(135deg,var(--swatch-a) 50%,var(--swatch-b) 50%);padding:0!important}
.theme-preview>*{display:none}.theme-preview::after{content:"";display:block;width:36px;height:6px;margin:25px 6px 0;border-radius:2px;background:linear-gradient(90deg,var(--swatch-c) 50%,var(--swatch-d) 50%)}
@media(prefers-reduced-motion:reduce){.custom-select.open .select-options,.custom-select.closing .select-options{animation:none!important}.custom-select .select-trigger>span:last-child{transition:none!important}}
/* Secondary copy inherits one theme-aware contrast policy across the shell. */
.app-shell .setting-row p,.app-shell .muted,.app-shell .lede,.app-shell .chart-note,.app-shell .chart-summary,.app-shell .word-row-def,.app-shell .empty-state,.app-shell .functional-panel p,.app-shell .task-copy p{color:var(--text-secondary)!important}
@media(max-width:1050px){.settings-layout{grid-template-columns:minmax(0,1fr)}.settings-categories{position:static;display:flex;flex-wrap:wrap}.settings-category{flex:1 1 auto}.mnemonic-workspace{grid-template-columns:minmax(0,1fr)}.mnemonic-workspace>*{min-width:0}.setting-row{min-width:0}.setting-row>div{min-width:0}}
@media(max-width:520px){.atlas-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.atlas-filters label:last-child{grid-column:1/-1}}
@media(max-width:1050px){.settings-panel .setting-row{flex-wrap:wrap}.settings-panel .setting-control{min-width:0;max-width:100%;flex:0 1 220px}.settings-panel .custom-select{min-width:0;width:100%}.settings-panel .select-trigger{min-width:0}.settings-panel .select-trigger [data-select-value]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
.app-shell button,.app-shell input,.app-shell textarea,.app-shell select,.app-shell .task-row,.app-shell .achievement-row,.app-shell .settings-category{transition-duration:var(--motion-fast)!important;transition-timing-function:var(--motion-ease)!important}
.app-shell .task-progress>i>b,.app-shell .rank-track>i,.app-shell .achievement-track i{transition:width var(--motion-panel) var(--motion-ease)!important}
.task-list.task-list-entering,#page-achievements .achievement-list.achievement-list-entering,.leaderboard-list.leaderboard-list-entering{animation:rc-enter var(--motion-normal) var(--motion-ease) both!important}
.functional-toast.rc-toast-closing{animation:rc-exit var(--motion-fast) var(--motion-ease) both}
@media(prefers-reduced-motion:reduce){.task-list.task-list-entering,#page-achievements .achievement-list.achievement-list-entering,.leaderboard-list.leaderboard-list-entering{animation:none!important}}

.rc-lock-note{display:flex;align-items:center;gap:6px}.rc-lock-note svg{flex:none}
.rc-lock-note[hidden],.rc-study-tasks[hidden]{display:none!important}

.atlas-arrow{fill:none;stroke:var(--border-control);stroke-width:1.5}

.rc-item-art:has(.rc-curious-art){display:flex;justify-content:center;gap:12px}.rc-item-art .rc-curious-art{width:40px;height:40px}[data-profile-user]{position:relative}.rc-equipped-badge{position:absolute;right:0;bottom:0;width:22px;height:22px;border-radius:50%;background:var(--paper);border:1px solid var(--green);display:grid;place-items:center}.rc-equipped-badge svg{width:18px;height:18px;fill:none;stroke:var(--green);stroke-width:4}

/* Profile/shop repair: keep settings identity row compact and shop sections full width. */
#shop-content{display:block}#page-shop{max-width:1100px;margin-inline:auto}#shop-content>.compact-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 12px}#shop-content>h2{margin:24px 0 12px}#shop-content>.rc-shop-grid{margin-bottom:24px}#shop-content>.rc-shop-grid>.rc-shop-item{min-width:0}
.rc-profile-controls{margin:12px 0;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.rc-cosmetic-selects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.settings-profile{min-height:0;align-items:center}.rc-profile-controls p{margin:8px 0}.rc-cosmetic-selects label{min-width:0}.rc-cosmetic-selects select{max-width:100%}
.resolved-avatar{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;position:relative;overflow:visible}.resolved-avatar.accent-forest{box-shadow:0 0 0 5px #44785e99;background:#44785e}.rc-equipped-badge{z-index:2;right:-4px;bottom:-3px;flex:none}.profile-avatar:has(.rc-equipped-badge),.settings-profile-avatar:has(.rc-equipped-badge){overflow:visible}.rc-avatar-preview{flex:none}.rc-avatar-preview .resolved-avatar{outline:none;box-shadow:none}.rc-avatar-preview.accent-forest{box-shadow:0 0 0 4px #44785e99}.rc-item-art .status-tag{white-space:normal;font-size:11px}
@media(max-width:650px){.rc-cosmetic-selects{grid-template-columns:1fr}#shop-content>.compact-heading{flex-wrap:wrap}.settings-profile{flex-wrap:wrap}}
