:root {
  --color-bg:#FFFFFF;
  --color-surface:#FFFFFF;
  --color-surface-alt:#F2F5F7;
  --color-surface-hover:#EDF2F5;
  --color-text:#1F272A;
  --color-text-secondary:#657078;
  --color-text-tertiary:#69747B;
  --color-accent:#174A65;
  --color-accent-light:#0D3952;
  --color-accent-bg:#E8F0F5;
  --color-border:#DDE3E7;
  --color-border-light:#EDF0F2;
  --hub-sidebar-width:212px;
  --hub-preview-bg:#F3F6F8;
  --hub-on-accent:#FFFFFF;
  --glass-bg:#FFFFFF;
  --glass-border:#DDE3E7;
  --font-sans:'Science Hub Sans','Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif
}
[data-theme="dark"] {
  --color-bg:#171F24;
  --color-surface:#202A31;
  --color-surface-alt:#2A353E;
  --color-surface-hover:#303F49;
  --color-text:#F0F4F6;
  --color-text-secondary:#B7C4CC;
  --color-text-tertiary:#ACBAC3;
  --color-accent:#A5CDDF;
  --color-accent-light:#C7E3EF;
  --color-accent-bg:#2B414E;
  --color-border:#3D4B55;
  --color-border-light:#34414A;
  --hub-preview-bg:#2A353E;
  --hub-on-accent:#193341;
  --glass-bg:#202A31;
  --glass-border:#3D4B55
}
body {
  font-family:var(--font-sans);
  font-size:15px;
  line-height:1.7;
  letter-spacing:0
}
h1,h2,h3,h4 {
  font-family:var(--font-sans);
  letter-spacing:0
}
::selection {
  background:#DCECF5;
  color:#153E54
}
html {
  scrollbar-color:var(--color-border) var(--color-bg)
}
input,textarea {
  caret-color:var(--color-accent)
}
.main-content :is(input,textarea)::placeholder {
  color:var(--color-text-secondary);
  opacity:1
}
.view.active {
  animation:none
}
.main-content {
  padding:36px 36px 52px
}
.header .header-inner {
  padding:30px 15px 20px
}
.header .header-logo {
  font-size:15px;
  font-weight:600;
  letter-spacing:0;
  gap:8px
}
.header .hub-brand {
  color:var(--color-accent)
}
.header .header-nav {
  margin-top:46px;
  gap:8px
}
.header .header-nav a {
  min-height:47px;
  font-weight:400
}
.header .header-nav a.active {
  background:var(--color-accent-bg);
  color:var(--color-accent);
  font-weight:600
}
.header .theme-toggle,.header .notification-bell {
  border:0;
  background:var(--color-surface-alt)
}
.header .header-user {
  padding-top:16px
}
.header .xp-bar-mini {
  padding:8px 4px;
  background:transparent
}
.header .xp-badge {
  display:none
}
.header .xp-text {
  color:var(--color-text);
  font-weight:500
}
.header .xp-diff {
  font-size:12px;
  color:var(--color-text-secondary)
}
.hub-sidebar-note:empty {
  display:none
}
.hub-sidebar-note {
  padding:16px 10px;
  font-size:12px
}
.hub-local-note {
  margin:0;
  color:var(--color-text-secondary);
  font-size:12px
}
.hub-local-note summary {
  cursor:pointer
}
.hub-local-note>span {
  display:block;
  margin:8px 0
}
.gallery-source-switch {
  display:flex;
  gap:12px
}
.gallery-source-switch a.active {
  text-decoration:underline;
  text-underline-offset:4px
}
.btn-primary {
  background:var(--color-accent);
  border-color:var(--color-accent);
  color:var(--hub-on-accent);
  box-shadow:none
}
.btn-primary:hover {
  background:var(--color-accent-light);
  box-shadow:none
}
.btn-secondary {
  background:var(--color-surface);
  border:1px solid var(--color-border);
  box-shadow:none
}
.btn-secondary:hover {
  background:var(--color-surface-alt);
  border-color:var(--color-border)
}
.main-content .btn {
  min-height:40px;
  border-radius:6px
}
.main-content .btn-sm {
  font-size:13px
}
button .hub-icon {
  width:16px;
  height:16px;
  flex-shrink:0
}
[data-ui-icon] {
  gap:8px
}
.main-content :is(button,a,select,input,textarea,summary):focus-visible {
  outline:2px solid var(--color-accent);
  outline-offset:4px
}
.hub-home-intro {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin:0 0 25px
}
.hub-home-intro h1 {
  font-size:30px;
  line-height:1.4;
  font-weight:600;
  letter-spacing:0
}
.hub-text-action {
  font:inherit;
  font-size:13px;
  min-height:40px;
  padding:5px 0;
  color:var(--color-accent);
  border:0;
  background:none;
  cursor:pointer;
  text-underline-offset:5px
}
.hub-text-action:hover {
  text-decoration:underline
}
.home-featured-grid {
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);
  gap:28px 30px;
  align-items:start
}
.home-featured-grid>.is-lead {
  grid-row:1 / span 2
}
.home-featured-grid>.is-lead .gallery-cover {
  aspect-ratio:1.65
}
.home-featured-grid>.gallery-card:not(.is-lead) .gallery-cover {
  aspect-ratio:2.3
}
.home-featured-grid .is-lead h3 {
  font-size:25px;
  line-height:1.5
}
.home-recent-section {
  margin-top:46px;
  padding-top:27px;
  border-top:1px solid var(--color-border)
}
#homeRecentSection[hidden] {
  display:none
}
.hub-section-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:22px
}
.hub-section-heading h2 {
  font-size:23px;
  font-weight:600;
  line-height:1.5
}
.home-grade-links {
  display:flex;
  gap:18px
}
.home-grade-links button {
  font:inherit;
  font-size:13px;
  min-height:40px;
  color:var(--color-accent);
  padding:4px 0;
  border:0;
  background:none;
  cursor:pointer;
  text-underline-offset:5px
}
.home-grade-links button:hover {
  text-decoration:underline
}
.hub-explore-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px 23px
}
.gallery-card {
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  overflow:visible
}
.gallery-card:hover {
  border:0;
  box-shadow:none
}
.gallery-cover {
  position:relative;
  aspect-ratio:1.65;
  overflow:hidden;
  background:var(--hub-preview-bg);
  border:0;
  border-radius:7px;
  isolation:isolate
}
.gallery-cover-hit {
  display:block;
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  border-radius:inherit;
  background:none;
  cursor:pointer;
  overflow:hidden
}
.gallery-cover-hit:focus-visible {
  outline:3px solid var(--color-accent);
  outline-offset:-4px
}
.gallery-cover-image {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  transition:transform .45s cubic-bezier(.16,1,.3,1)
}
.gallery-cover-image.gallery-editorial-image {
  object-fit:cover
}
.gallery-cover-hit:hover .gallery-cover-image,.gallery-cover-hit:focus-visible .gallery-cover-image {
  transform:scale(1.012)
}
.gallery-play {
  position:absolute;
  top:12px;
  right:12px;
  display:flex;
  gap:7px;
  align-items:center;
  min-height:38px;
  background:#FFFFFFF2;
  color:#153E54;
  border:1px solid #D8E3E9;
  border-radius:6px;
  padding:8px 12px;
  font-size:12px;
  opacity:0;
  transition:opacity .16s
}
.gallery-play svg {
  width:15px;
  height:15px
}
.gallery-cover-hit:hover .gallery-play,.gallery-cover-hit:focus-visible .gallery-play {
  opacity:1
}
.gallery-text-cover {
  display:flex;
  height:100%;
  align-items:center;
  justify-content:center;
  max-width:18em;
  padding:28px;
  margin:auto;
  font-size:23px;
  font-weight:600;
  line-height:1.7;
  color:var(--color-accent);
  text-wrap:balance
}
.gallery-card .hub-project-copy {
  padding:13px 0 0
}
.gallery-card h3 {
  font-size:18px;
  font-weight:600;
  line-height:1.5;
  margin:0
}
.hub-title-button {
  font:inherit;
  line-height:inherit;
  letter-spacing:0;
  color:var(--color-text);
  text-align:left
}
.gallery-card .gallery-project-description {
  font-size:14px;
  line-height:1.8;
  color:var(--color-text-secondary);
  margin:8px 0 0;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden
}
.gallery-project-meta {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  color:var(--color-text-secondary);
  font-size:12px;
  line-height:1.8;
  margin-top:8px
}
.gallery-project-meta .gallery-author {
  margin-left:auto
}
.hub-continue-strip {
  margin-top:34px;
  border-radius:7px;
  background:var(--color-surface-alt);
  font-size:13px
}
.hub-personal-details {
  margin-top:26px;
  background:transparent;
  border:0;
  border-top:1px solid var(--color-border);
  border-radius:0
}
.hub-personal-details>summary {
  padding:20px 0;
  font-size:13px
}
.main-content>.view>.section-header {
  margin-bottom:27px
}
.main-content>.view>.section-header .section-title {
  font-size:30px;
  font-weight:600;
  line-height:1.4;
  letter-spacing:0
}
.community-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 236px;
  gap:30px;
  align-items:start
}
.community-directory {
  min-width:0
}
.community-header {
  gap:18px
}
.community-tabs {
  gap:21px
}
.community-tab {
  font-size:14px;
  font-weight:400
}
.community-tab.active {
  color:var(--color-text);
  font-weight:600
}
.community-search {
  background:var(--color-surface);
  border-radius:6px;
  min-height:40px
}
.community-search .search-icon {
  display:flex;
  color:var(--color-text-secondary)
}
.community-search .search-icon svg {
  width:17px;
  height:17px
}
.filter-chip {
  min-height:36px;
  padding:5px 10px;
  border-color:transparent;
  border-radius:5px;
  background:transparent;
  font-size:13px;
  color:var(--color-text-secondary)
}
.filter-chip.active {
  border-color:transparent;
  box-shadow:none;
  background:var(--color-accent-bg);
  color:var(--color-text)
}
.filter-chip:hover {
  border-color:transparent;
  background:var(--color-surface-alt)
}
#gradeFilterBar,#subjectFilterBar {
  margin-bottom:0
}
#view-community .project-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:27px 22px
}
#view-community .project-card {
  border:0;
  border-radius:0;
  box-shadow:none;
  background:transparent;
  overflow:visible
}
#view-community .project-card .gallery-cover {
  margin-bottom:13px
}
#view-community .project-card-header {
  margin:0 0 9px
}
#view-community .project-card-meta h4 {
  font-size:18px;
  font-weight:600;
  line-height:1.5
}
#view-community .project-card-meta .author {
  font-size:12px;
  color:var(--color-text-secondary);
  margin-top:4px
}
#view-community .project-card-desc {
  font-size:14px;
  line-height:1.8;
  margin-bottom:12px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:0
}
#view-community .project-card-tags {
  gap:11px;
  margin:0 0 12px;
  line-height:1.7
}
#view-community .project-card :is(.badge,.tag,.multifile-badge) {
  font-size:12px!important;
  font-weight:400;
  color:var(--color-text-secondary);
  background:none!important;
  border:0;
  padding:0
}
#view-community .project-card-footer {
  margin:0;
  padding-top:12px;
  border-top:1px solid var(--color-border)
}
#view-community .stat-btn {
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:36px;
  color:var(--color-text-secondary);
  font-size:12px
}
#view-community .stat-btn .hub-icon {
  width:15px;
  height:15px
}
#view-community .stat-btn.liked,#view-community .stat-btn.starred {
  color:var(--color-accent)
}
.community-progress {
  position:sticky;
  top:34px
}
.community-progress-loading {
  font-size:12px;
  color:var(--color-text-secondary)
}
.community-growth {
  background:var(--color-surface-alt);
  border-radius:9px;
  padding:0 17px
}
.community-growth>summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  min-height:55px;
  font-size:14px;
  font-weight:600;
  cursor:pointer;
  list-style:none
}
.community-growth>summary::-webkit-details-marker {
  display:none
}
.growth-level {
  font-size:12px;
  color:var(--color-accent);
  font-weight:600
}
.growth-body {
  padding:2px 0 18px
}
.growth-name {
  font-size:18px;
  font-weight:600;
  margin:0 0 9px
}
.growth-xp {
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-size:11px;
  color:var(--color-text-secondary);
  margin-bottom:8px
}
.community-growth progress {
  display:block;
  appearance:none;
  width:100%;
  height:5px;
  border:0;
  border-radius:4px;
  background:var(--color-border);
  color:var(--color-accent)
}
.community-growth progress::-webkit-progress-bar {
  background:var(--color-border);
  border-radius:4px
}
.community-growth progress::-webkit-progress-value {
  background:var(--color-accent);
  border-radius:4px
}
.community-growth progress::-moz-progress-bar {
  background:var(--color-accent);
  border-radius:4px
}
.growth-badges {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:4px;
  margin:23px -6px 16px
}
.growth-badge {
  font:inherit;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  background:none;
  border:0;
  min-width:0;
  padding:3px 1px;
  color:var(--color-text-secondary);
  cursor:pointer
}
.growth-badge>.hub-icon {
  width:29px;
  height:29px;
  color:#7D8C95
}
.growth-badge span {
  font-size:12px;
  white-space:nowrap
}
.growth-badge small {
  font-size:12px
}
.growth-badge.earned>.hub-icon {
  color:#A96E1B
}
.growth-badge.earned small {
  color:#87601F
}
.growth-links {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px
}
.growth-links button,.growth-collection-title {
  font:inherit;
  font-size:12px;
  color:var(--color-accent);
  border:0;
  background:none;
  min-height:36px;
  padding:4px 0;
  cursor:pointer;
  text-align:left
}
.growth-links button:hover {
  text-decoration:underline;
  text-underline-offset:4px
}
.growth-collection {
  margin-top:16px;
  padding-top:12px;
  border-top:1px solid var(--color-border)
}
.growth-collection-title {
  display:flex;
  justify-content:space-between;
  gap:10px;
  width:100%;
  font-weight:600;
  color:var(--color-text)
}
.growth-collection>p {
  font-size:12px;
  color:var(--color-text-secondary);
  margin:4px 0
}
.growth-favorites {
  display:flex;
  gap:7px;
  margin-top:5px
}
.growth-favorites button {
  border:0;
  background:none;
  padding:0;
  cursor:pointer;
  width:calc((100% - 14px)/3)
}
.growth-favorites .works-card-cover {
  width:100%;
  height:43px;
  border-radius:4px
}
.studio-ai-panel,.studio-preview {
  border-radius:10px;
  background:var(--color-surface);
  border-color:var(--color-border)
}
.studio-session-bar {
  position:relative;
  background:var(--color-surface);
  border-bottom:1px solid var(--color-border);
  gap:8px
}
.studio-preview-header {
  background:var(--color-surface)
}
.studio-preview-canvas {
  background:var(--hub-preview-bg)
}
.studio-view-tabs {
  background:var(--color-surface-alt)
}
.studio-ai-messages .ai-msg {
  font-size:15px;
  line-height:1.85;
  letter-spacing:0
}
.studio-ai-messages .ai-label {
  font-size:12px;
  font-weight:500;
  color:var(--color-text-secondary)
}
.studio-ai-input-area textarea {
  font-size:14px;
  line-height:1.8
}
.btn-send .hub-icon {
  width:19px;
  height:19px;
  transform:rotate(-90deg)
}
.studio-examples {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
  padding:6px 0
}
.studio-examples button {
  font:inherit;
  font-size:14px;
  text-align:left;
  min-height:42px;
  padding:7px 12px;
  border:1px solid var(--color-border);
  border-radius:6px;
  background:var(--color-surface);
  color:var(--color-text-secondary);
  cursor:pointer
}
.studio-examples button:hover {
  color:var(--color-accent);
  border-color:var(--color-accent)
}
.studio-settings {
  position:relative;
  margin-left:auto
}
.studio-settings>summary {
  display:flex;
  align-items:center;
  gap:6px;
  cursor:pointer;
  font-size:12px;
  min-height:32px;
  list-style:none
}
.studio-settings>summary::-webkit-details-marker {
  display:none
}
.studio-settings>summary .hub-icon {
  width:16px;
  height:16px
}
.studio-settings>div {
  position:absolute;
  z-index:20;
  right:0;
  top:37px;
  width:205px;
  padding:16px;
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:7px;
  box-shadow:0 10px 24px #162E3B15
}
.studio-settings label {
  font-size:12px;
  color:var(--color-text-secondary);
  margin-right:10px
}
.studio-settings .studio-ai-subtitle {
  font-size:12px;
  margin-top:10px
}
.ai-model-select {
  background:var(--color-surface);
  border-color:var(--color-border);
  color:var(--color-text);
  font-size:13px
}
.studio-availability {
  font-size:12px;
  color:var(--color-text-secondary);
  margin:0;
  padding:8px 12px 0
}
.studio-availability:empty {
  display:none
}
#studioActions[hidden],.hub-studio-toolbar.is-empty {
  display:none
}
#studioSaveStatus[data-state="saved"] {
  color:#34765C
}
#studioSaveStatus[data-state="dirty"] {
  color:#8D6A25
}
#studioSaveStatus[data-state="error"] {
  color:var(--color-error)
}
.works-card {
  border:1px solid var(--color-border);
  border-radius:9px;
  background:var(--color-surface);
  box-shadow:none
}
.works-card-cover {
  display:block;
  width:82px;
  height:62px;
  object-fit:contain;
  background:var(--hub-preview-bg);
  border-radius:5px;
  flex-shrink:0
}
.works-cover-empty {
  display:grid;
  place-items:center;
  color:var(--color-text-secondary)
}
.works-cover-empty .hub-icon {
  width:25px;
  height:25px
}
.works-card-header {
  align-items:center;
  gap:14px
}
.works-card-title h4,.draft-card-name {
  font-size:18px;
  font-weight:600;
  line-height:1.5;
  letter-spacing:0
}
.works-card-title .badge {
  font-size:12px!important;
  font-weight:400;
  background:none!important;
  color:var(--color-text-secondary)!important
}
.works-card-desc,.draft-card-desc {
  font-size:14px;
  line-height:1.8;
  color:var(--color-text-secondary)
}
.works-card-tags :is(.badge,.tag) {
  font-size:12px!important;
  font-weight:400;
  background:none!important;
  color:var(--color-text-secondary);
  border:0;
  padding:0 5px 0 0
}
.works-card-status .status-badge {
  font-size:12px;
  background:none;
  color:var(--color-text-secondary);
  padding:0;
  font-weight:400
}
.works-card-date,.works-card-stats {
  font-size:12px;
  color:var(--color-text-secondary)
}
.works-card-actions {
  border-left:1px solid var(--color-border)
}
.works-card-actions .btn {
  font-size:13px;
  font-weight:400;
  min-height:36px;
  background:transparent;
  border-color:var(--color-border)
}
.works-manage-toolbar {
  background:transparent;
  border:0;
  border-bottom:1px solid var(--color-border);
  border-radius:0;
  padding-left:0;
  padding-right:0
}
.works-manage-search {
  background:var(--color-surface)
}
.works-manage-search svg {
  width:17px;
  height:17px
}
.works-more-menu button {
  font-size:13px
}
.empty-icon svg {
  width:30px;
  height:30px
}
.gallery-preview-dialog {
  width:min(1180px,calc(100vw - 44px));
  height:min(850px,calc(100dvh - 44px));
  max-width:none;
  max-height:none;
  margin:auto;
  border:0;
  border-radius:12px;
  padding:0;
  background:var(--color-surface);
  color:var(--color-text);
  box-shadow:0 24px 72px #162E3B40;
  overflow:hidden
}
.gallery-preview-dialog[open] {
  display:flex;
  flex-direction:column;
  animation:previewReveal .2s cubic-bezier(.16,1,.3,1)
}
.gallery-preview-dialog::backdrop {
  background:#10232D8C
}
.gallery-dialog-header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:17px 21px;
  border-bottom:1px solid var(--color-border)
}
.gallery-dialog-header h2 {
  font-size:20px;
  font-weight:600;
  line-height:1.5;
  color:var(--color-text)
}
.gallery-dialog-header p {
  font-size:12px;
  color:var(--color-text-secondary);
  margin-top:3px
}
.gallery-dialog-close {
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border:0;
  background:var(--color-surface-alt);
  color:var(--color-text-secondary);
  border-radius:6px;
  cursor:pointer;
  flex-shrink:0
}
.gallery-dialog-close .hub-icon {
  width:19px;
  height:19px
}
.gallery-dialog-stage {
  position:relative;
  flex:1;
  min-height:0;
  background:#FFF
}
.gallery-dialog-frame {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  background:#FFF
}
.gallery-preview-loading {
  position:absolute;
  z-index:1;
  inset:0;
  display:grid;
  place-items:center;
  background:var(--color-surface);
  color:var(--color-text-secondary);
  font-size:14px;
  pointer-events:none
}
.gallery-dialog-footer {
  display:flex;
  justify-content:flex-end;
  gap:10px;
  padding:12px 20px;
  border-top:1px solid var(--color-border)
}
.gallery-dialog-footer .btn {
  font-size:13px;
  min-height:40px
}
.gallery-dialog-footer button:first-child:not(:last-child) {
  margin-right:auto
}
@keyframes previewReveal {
  from {
    clip-path:inset(3% 1% 0 round 12px);
    opacity:.7
  }
  to {
    clip-path:inset(0 round 12px);
    opacity:1
  }
}
.growth-overview {
  margin-bottom:25px
}
.growth-overview h2 {
  font-size:23px;
  line-height:1.5;
  color:var(--color-text);
  font-weight:600
}
.growth-overview p {
  font-size:13px;
  color:var(--color-text-secondary);
  margin:5px 0 13px
}
.growth-overview progress {
  width:100%;
  height:6px;
  accent-color:var(--color-accent)
}
.growth-section-title {
  font-size:17px;
  font-weight:600;
  margin:24px 0 15px
}
.growth-achievements {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px
}
.growth-achievement {
  display:flex;
  align-items:center;
  gap:13px;
  padding:14px 12px;
  border:1px solid var(--color-border);
  border-radius:7px
}
.growth-achievement>.hub-icon {
  width:28px;
  height:28px;
  flex-shrink:0;
  color:#82939D
}
.growth-achievement.earned>.hub-icon {
  color:#A96E1B
}
.growth-achievement h3 {
  font-size:14px;
  font-weight:600;
  margin:0 0 3px
}
.growth-achievement p {
  font-size:12px;
  color:var(--color-text-secondary);
  line-height:1.7;
  margin:0
}
.growth-achievement small {
  display:block;
  font-size:11px;
  color:var(--color-text-secondary);
  margin-top:4px
}
.growth-rules {
  margin-top:24px;
  border-top:1px solid var(--color-border);
  padding-top:16px
}
.growth-rules summary {
  cursor:pointer;
  font-size:14px;
  font-weight:600
}
.growth-rules table {
  width:100%;
  border-collapse:collapse;
  font-size:12px;
  margin-top:10px
}
.growth-rules td {
  padding:9px 0;
  border-bottom:1px solid var(--color-border-light)
}
.growth-rules td:last-child {
  text-align:right;
  white-space:nowrap
}
.ach-toast-icon .hub-icon {
  width:30px;
  height:30px
}
.ach-toast-title {
  letter-spacing:0
}
.ach-toast {
  box-shadow:0 10px 25px #162E3B20;
  background:var(--color-surface);
  border-color:var(--color-border)
}
@media(min-width:1600px) {
  .main-content {
    padding-left:50px;
    padding-right:50px
  }
  .community-layout {
    grid-template-columns:minmax(0,1fr) 256px;
    gap:36px
  }
  .home-featured-grid {
    gap:32px 36px
  }
}
@media(max-width:1150px) {
  .main-content {
    padding:28px
  }
  .community-layout {
    display:block
  }
  .community-progress {
    position:static;
    margin-bottom:22px;
    grid-row:1
  }
  .community-layout {
    display:flex;
    flex-direction:column
  }
  .community-directory {
    width:100%;
    order:2
  }
  .community-progress {
    width:100%;
    order:1
  }
  .community-growth {
    padding:0 17px
  }
  .community-growth>summary {
    min-height:47px
  }
  .growth-body {
    max-width:620px
  }
  .growth-badges {
    max-width:330px
  }
  .growth-links {
    justify-content:flex-start;
    gap:25px
  }
  .growth-collection {
    max-width:330px
  }
  .home-featured-grid {
    gap:25px 23px
  }
  .home-featured-grid .is-lead h3 {
    font-size:23px
  }
}
@media(max-width:760px) {
  .main-content {
    padding:87px 22px calc(30px + var(--hub-bottom-nav-height) + env(safe-area-inset-bottom))
  }
  .hub-home-intro h1,.main-content>.view>.section-header .section-title {
    font-size:28px
  }
  .community-progress {
    margin-bottom:18px
  }
  .home-featured-grid {
    gap:24px 18px
  }
  .home-featured-grid .is-lead h3 {
    font-size:21px
  }
  .gallery-project-meta {
    gap:10px
  }
  .gallery-project-meta .gallery-author {
    margin-left:0
  }
  .studio-ai-messages .ai-msg {
    font-size:15px
  }
  .gallery-preview-dialog {
    width:calc(100vw - 22px);
    height:calc(100dvh - 30px)
  }
  .gallery-dialog-header {
    padding:13px 15px
  }
  .gallery-dialog-header h2 {
    font-size:18px
  }
  .gallery-dialog-footer {
    padding:10px 14px
  }
  .gallery-dialog-footer .btn {
    min-height:42px
  }
  .growth-achievements {
    grid-template-columns:1fr
  }
}
@media(max-width:480px) {
  .main-content {
    padding-left:16px;
    padding-right:16px
  }
  .hub-home-intro {
    margin-bottom:19px
  }
  .hub-home-intro h1 {
    font-size:25px
  }
  .home-featured-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:23px 16px
  }
  .home-featured-grid>.is-lead {
    grid-row:auto;
    grid-column:1/-1
  }
  .home-featured-grid>.is-lead .gallery-cover {
    aspect-ratio:1.8
  }
  .home-featured-grid>.gallery-card:not(.is-lead) .gallery-cover {
    aspect-ratio:1.35
  }
  .home-featured-grid .is-lead h3 {
    font-size:23px
  }
  .home-featured-grid>.gallery-card:not(.is-lead) h3 {
    font-size:16px;
    line-height:1.6;
    min-height:51px
  }
  .home-featured-grid>.gallery-card:not(.is-lead) .gallery-author {
    flex-basis:100%
  }
  .home-featured-grid .gallery-project-description {
    font-size:14px;
    line-height:1.8
  }
  .gallery-project-meta {
    font-size:12px;
    gap:7px 10px;
    margin-top:6px
  }
  .gallery-card .hub-project-copy {
    padding-top:11px
  }
  .gallery-play {
    right:9px;
    top:9px;
    min-height:35px;
    padding:7px 9px;
    font-size:11px;
    opacity:1
  }
  .home-featured-grid>.gallery-card:not(.is-lead) .gallery-play {
    display:none
  }
  .gallery-text-cover {
    font-size:18px;
    padding:16px
  }
  .home-recent-section {
    margin-top:29px;
    padding-top:23px
  }
  .hub-section-heading {
    gap:12px;
    margin-bottom:18px
  }
  .hub-section-heading h2 {
    font-size:22px
  }
  .home-grade-links {
    gap:17px
  }
  .home-grade-links button {
    font-size:13px
  }
  .hub-explore-grid,#view-community .project-grid {
    grid-template-columns:1fr;
    gap:26px
  }
  .gallery-card h3,#view-community .project-card-meta h4 {
    font-size:18px
  }
  .community-tabs {
    gap:20px
  }
  .community-tab {
    font-size:13px
  }
  .filter-chip {
    min-height:38px
  }
  #subjectFilterBar {
    flex:1;
    width:0;
    flex-wrap:nowrap;
    overflow-x:auto;
    white-space:nowrap;
    padding-bottom:4px;
    scrollbar-width:thin
  }
  #subjectFilterBar .filter-chip {
    flex-shrink:0
  }
  .community-header {
    margin-bottom:22px
  }
  .community-growth>summary {
    font-size:13px
  }
  .growth-xp {
    font-size:12px
  }
  .growth-badge span,.growth-badge small {
    font-size:12px
  }
  .growth-badges {
    gap:12px;
    max-width:330px
  }
  .studio-settings>div {
    right:-5px
  }
  .studio-session-bar .btn {
    font-size:11px;
    padding:5px
  }
  .works-card-cover {
    width:65px;
    height:52px
  }
  .works-card-title h4 {
    font-size:17px
  }
  .works-card-status {
    flex-wrap:wrap
  }
  .growth-achievement {
    padding:13px 10px
  }
  .gallery-dialog-close {
    width:38px;
    height:38px
  }
}
@media(prefers-reduced-motion:reduce) {
  .gallery-cover-image,.gallery-play {
    transition:none!important;
    transform:none!important
  }
  .gallery-preview-dialog[open] {
    animation:none
  }
}
.growth-question {
  margin-top:20px;
  padding-top:17px;
  border-top:1px solid var(--color-border)
}
.growth-question h3 {
  font-size:16px;
  line-height:1.7;
  font-weight:600;
  margin:0 0 7px;
  text-wrap:balance
}
.growth-question p {
  font-size:12px;
  line-height:1.8;
  color:var(--color-text-secondary);
  margin:0 0 12px
}
.growth-question .btn {
  font-size:12px;
  min-height:38px
}
.lu-badge .hub-icon,#luBadgeOld .hub-icon,#luBadgeNew .hub-icon {
  width:42px;
  height:42px
}
.frame-preview-avatar .hub-icon {
  width:36px;
  height:36px
}
.lu-unlock:empty {
  display:none
}
