/* VI23 · Generated effective reading layer; numerical values remain observed. */

html {font-size:16px; font-family:var(--font-reading); font-synthesis:none; overflow-y:scroll; scrollbar-gutter:stable;}
.masthead {width:var(--rail); padding-top:32px; min-height:94px; gap:48px;}
.identity {gap:16px;}
.identity img {width:39px;}
.identity b,.identity span span {font-size:12px;}
.nav {gap:36px;}
.nav a {min-width:64px; padding:8px 0 12px;}
.nav-cn {font-size:16px; line-height:1.5; font-weight:600;}
.nav-en {font-size:11px; line-height:1.5; letter-spacing:.08em; margin-top:4px;}
.nav a[aria-current=page]:after {width:24px;}
.masthead .audio {margin-left:8px;}
.functional #main,.news #main,body.contact #main:has(.excited-contact.cm-r4) {
  width:var(--rail); max-width:none; padding-top:48px; margin:0 auto; container-type:normal;
}
.functional .heading,.news .heading,body.contact #main:has(.excited-contact.cm-r4) .heading {
  width:100%; margin:0 0 32px; gap:20px; align-items:baseline;
}
.functional .heading h1,.news .heading h1,.calendar .heading h1 {font-size:var(--type-page); line-height:1.3; font-weight:600; letter-spacing:-.02em;}
.functional .heading p,.news .heading p {font-size:var(--type-meta); line-height:1.6; color:var(--secondary);}
.filters,.news .filters {font-size:var(--type-meta); line-height:1.6; gap:24px;}
.filters .filter,.news .filters .filter {height:44px; min-height:44px; margin:0; padding:0 0 8px;}
.filters .filter.active:after {bottom:4px;}
.filters .count,.news .filters .count {font-size:var(--type-meta); font-weight:400; margin-left:6px;}
.news .filters {width:min(var(--reading-width),calc(100% - var(--editor-start) - 64px)); margin:0 0 24px var(--editor-start); flex-wrap:wrap; gap:4px 24px;}
.news .entry {width:min(var(--reading-width),calc(100% - var(--editor-start) - 64px)); margin:0 0 0 var(--editor-start); padding:24px 0;}
.news .entry:first-child {padding-top:0;}
.news .news-copy h2 {font-size:var(--type-title); line-height:1.5; font-weight:600; letter-spacing:-.01em;}
.news .summary {font-size:var(--type-body); line-height:1.75; margin-top:8px; color:var(--summary);}
.news .source {font-size:var(--type-meta); line-height:1.6; margin-top:12px;}
.news .news-meta {right:calc(100% + var(--editor-gap)); width:var(--editor-label); top:24px; padding-top:4px; font-size:var(--type-meta); line-height:1.6;}
.news .news-meta strong {font-size:inherit; font-weight:600; margin-bottom:4px;}
.news .news-meta .category {margin-bottom:8px;}
.news .expand {top:24px; left:calc(100% + 24px); width:44px; height:44px; margin:0;}
.news .expand svg {width:18px; height:18px;}
.news .entry:first-child .news-meta,.news .entry:first-child .expand {top:0;}
.news .entry:not(:first-child):before {left:calc(-1 * var(--editor-start)); right:-68px;}
.news .entry[data-expanded=true] .read-section p {font-size:var(--type-body); line-height:1.8;}
.news .reading-body {margin-top:12px;}
.news .read-section + .read-section {margin-top:16px;}
.news .read-section h3 {font-size:var(--type-meta); line-height:1.6; margin-bottom:8px;}
.news .reading,.news .entry[data-expanded=true] .reading {font-size:var(--type-body); margin-top:16px; line-height:1.8;}
.news .reading a {font-size:var(--type-control); line-height:1.5; min-height:44px; margin-top:12px;}
.news .reading .read-label {font-size:var(--type-meta); line-height:1.6;}
.news #news-list>.news-empty,.news #news-list>.empty-day,.news #news-list>.news-error,.news #news-list>.news-loading {
  width:min(var(--reading-width),calc(100% - var(--editor-start) - 64px));
  margin:0 0 0 var(--editor-start); font-size:var(--type-body); line-height:1.75;
}
.news #config-error {display:none;}
.masthead .audio-status,.audio .tip {font-size:var(--type-meta); line-height:1.6;}
.masthead .audio-status {width:240px; white-space:normal; overflow-wrap:anywhere;}
.news #news-filters:empty {min-height:44px;}
.news:has(#news-list>.news-loading) .edge {visibility:hidden;}
.calendar-layout {grid-template-columns:minmax(0,1fr) minmax(320px,26%); gap:var(--editor-gap);}
.month-bar {margin-bottom:12px;}
.month-caption {gap:20px;}
.month-caption h2 {font-size:var(--type-title); line-height:1.5; font-weight:400; letter-spacing:-.01em;}
.month-caption span,.month-controls button,.weekdays {font-size:var(--type-meta); line-height:1.6;}
.calendar .filters {gap:24px; margin-bottom:12px;}
.weekdays {padding-bottom:12px;}
.calendar .grid-month-4 {--row:clamp(112px,calc((100vh - 420px)/4),180px);}
.calendar .grid-month-5 {--row:clamp(100px,calc((100vh - 420px)/5),160px);}
.calendar .grid-month-6 {--row:clamp(84px,calc((100vh - 420px)/6),136px);}
.day {font-size:var(--type-control); line-height:1.5;}
.cell-event {font-size:var(--type-control); line-height:1.5; margin-top:4px; min-height:28px;}
.sidebar {padding-top:0;}
.side-caption {font-size:var(--type-meta); line-height:1.6; margin-bottom:16px;}
.side-caption span:last-child {font-size:var(--type-meta);}
.event-date {font-size:var(--type-title); line-height:1.5; margin-bottom:4px; letter-spacing:-.01em;}
.upcoming-primary .queue-title {font-size:var(--type-title); line-height:1.5; letter-spacing:-.01em;}
.upcoming-primary {margin-bottom:16px;}
#calendar-agenda {display:grid; grid-template-columns:minmax(72px,max-content) minmax(0,1fr); column-gap:16px;}
#calendar-agenda > * {grid-column:1 / -1;}
#calendar-agenda > .upcoming-primary {margin-bottom:0;}
.upcoming-next {grid-template-columns:subgrid; gap:16px; margin-top:16px;}
#calendar-agenda .queue-day-events,#calendar-agenda .queue-event,#calendar-agenda .queue-title {min-width:0; max-width:100%;}
#calendar-agenda .queue-title {overflow-wrap:anywhere;}
.upcoming-next time,.upcoming-next .queue-title {font-size:var(--type-control); line-height:1.5;}
.event-type,.upcoming-next .event-type {font-size:var(--type-meta); line-height:1.6; margin-top:4px;}
.calendar .event-meta-status {display:inline-block; white-space:nowrap;}
.selected-detail {margin-top:32px; padding-top:24px;}
.selected-caption {font-size:var(--type-meta); line-height:1.6; margin-bottom:12px;}
.selected-date {font-size:var(--type-control); line-height:1.5; font-weight:600; margin-bottom:12px;}
.selected-detail h3 {font-size:var(--type-title); line-height:1.5; margin-bottom:8px;}
body.calendar .selected-detail .same-day-official h3,
body.calendar .selected-detail .same-day-guild h3,
body.calendar .selected-detail .detail-event-title {font-size:var(--type-title); font-weight:600; line-height:1.5; letter-spacing:-.01em;}
body.calendar .selected-detail .event-kind,.cell-event .event-kind {font-size:var(--type-meta); font-weight:400; line-height:1.6;}
body.calendar .selected-detail .registration-note {font-size:var(--type-body); line-height:1.75; margin-top:12px;}
.selected-detail h3:focus-visible,.selected-date:focus-visible {outline:2px solid var(--ink); outline-offset:6px;}
.selected-caption {position:sticky; top:16px; z-index:3; background:var(--paper); min-height:44px; gap:12px;}
.detail-return {margin-left:auto; min-height:44px; font-size:var(--type-control); line-height:1.5; text-decoration:underline; text-underline-offset:5px;}
.calendar .date>.day {height:auto; width:auto; min-height:44px; min-width:44px; background:none; text-align:left;}
.calendar .date>.day .day-label {display:inline-block; line-height:1.75; min-width:1.75em; min-height:1.75em;}
.calendar .date.today>.day {color:var(--ink); background:none; width:auto; height:auto; text-align:left;}
.calendar .date.today>.day .day-label {background:var(--ink); color:var(--paper); padding-inline:.15em; text-align:center;}
.calendar .date.selected>.day {background:none; box-shadow:none;}
.calendar .date.selected>.day .day-label {text-decoration:underline; text-underline-offset:.3em; text-decoration-thickness:1px;}
.selected-detail p,.empty-day {font-size:var(--type-body); line-height:1.75;}
.selected-detail .detail-time {font-size:var(--type-meta); line-height:1.6; margin-bottom:8px;}
.selected-detail .detail-source {font-size:var(--type-control); line-height:1.5; min-height:44px; margin-top:12px;}
/* TP01.07: the normal PC month and its reading column share a visible workspace.
   Intrinsic week heights preserve text; exceptional density scrolls within the month. */
.calendar .month-bar {flex-wrap:wrap; gap:8px 16px; margin-bottom:8px;}
.calendar .month-bar .filters {margin:0; gap:16px;}
.calendar .month-caption {gap:12px;}
.calendar .month-controls {margin-left:auto;}
.calendar .calendar-layout[data-workspace=panes] {height:var(--calendar-panel-height); align-items:stretch;}
.calendar-layout[data-workspace=panes] > .month-grid {display:flex; flex-direction:column; min-height:0;}
.calendar-layout[data-workspace=panes] .month-bar,.calendar-layout[data-workspace=panes] .weekdays {flex:none;}
.calendar .calendar-layout[data-workspace=panes] #calendar-days {display:flex; flex-direction:column; flex:1; min-height:0; overflow:auto; scrollbar-gutter:stable;}
.calendar-layout[data-workspace=panes] #calendar-days .week {flex:1 0 auto; min-height:0;}
.calendar-layout[data-workspace=panes] .weekdays {padding-bottom:8px;}
.calendar-layout[data-workspace=panes] .date {min-height:54px; padding:5px 9px;}
.calendar-layout[data-workspace=panes] .date>.day {display:flex; align-items:flex-start; padding:0; margin:0 0 -1em; min-height:2.75em;}
.calendar .cell-label-action {display:inline-block;}
.calendar-layout[data-workspace=panes] .sidebar {min-height:0; overflow:auto; scrollbar-gutter:stable; padding:0 8px 16px 0;}
.calendar-layout[data-workspace=panes] .selected-caption {top:0;}
.calendar .edge {margin-top:20px; min-height:44px; padding:4px 0 12px;}
.excited-contact.cm-r4 {width:min(var(--reading-width),calc(100% - var(--editor-start))); margin:0 0 0 var(--editor-start); padding-bottom:24px; container-type:inline-size;}
.excited-contact.cm-r4 .cm-directory-caption {font-size:var(--type-meta); line-height:1.6; margin-bottom:8px;}
.excited-contact.cm-r4 .cm-summary {min-height:76px; padding:8px 0 12px;}
.excited-contact.cm-r4 .cm-entry-heading {font-size:var(--type-body); line-height:1.5;}
.excited-contact.cm-r4 .cm-entry-caption {font-size:var(--type-meta); line-height:1.6; margin-top:8px;}
.excited-contact.cm-r4 .cm-panel-content {padding:32px 0 16px;}
.excited-contact.cm-r4 .cm-reading-title {font-size:var(--type-title); line-height:1.5;}
.excited-contact.cm-r4 .cm-platform {font-size:var(--type-meta); line-height:1.6;}
.excited-contact.cm-r4 .cm-return,.excited-contact.cm-r4 .cm-copy,.excited-contact.cm-r4 .cm-external-note,.excited-contact.cm-r4 .cm-id-label,.excited-contact.cm-r4 .cm-status {font-size:var(--type-meta); line-height:1.6;}
.excited-contact.cm-r4 .cm-join {font-size:var(--type-title); line-height:1.5;}
.excited-contact.cm-r4 .cm-guide,.excited-contact.cm-r4 .cm-id {font-size:var(--type-body); line-height:1.75;}
.excited-contact.cm-r4 .cm-guide {margin-top:16px;}
.excited-contact.cm-r4 .cm-guide > p {margin-top:8px;}
.excited-contact.cm-r4 .cm-link,.excited-contact.cm-r4 .cm-help {font-size:var(--type-control); line-height:1.5;}
.excited-contact.cm-r4 .cm-help>p {font-size:var(--type-body); line-height:1.75; margin:8px 0 0;}
.excited-contact.cm-r4 .cm-link.cm-join {font-size:var(--type-title);}
.excited-contact.cm-r4 .cm-id-row {margin-top:16px;}
.excited-contact.cm-r4 .cm-login {display:flex; gap:0 24px; flex-wrap:wrap; align-items:baseline;}
.home .hero-panel {min-height:calc(100vh - 94px); padding:40px 0 72px;}
.home .hero {width:min(50%,1138px); padding:0;}
.home .eyebrow {font-size:var(--type-micro); line-height:1.5; letter-spacing:.1em; margin-bottom:20px;}
.home .hero-rule {max-width:min(100%,746px); width:75%; margin-bottom:32px;}
.home .wordmark {width:min(100%,clamp(560px,38.888889vw,996px)); margin-bottom:24px;}
.home #home-title {font-size:var(--type-display); line-height:1.4; font-weight:400; letter-spacing:-.02em;}
.home .description {font-size:var(--type-body); line-height:1.75; margin-top:24px;}
.home .text-action,.text-action {font-size:var(--type-control); line-height:1.5; gap:48px; margin-top:24px; padding-bottom:8px; min-height:44px;}
.home .text-action .arrow {width:23px; height:23px;}
.home .next-home {font-size:var(--type-control); line-height:1.6; margin-top:24px; min-height:84px;}
.home .next-home .tag {font-size:var(--type-meta); line-height:1.6;}
.home .next-home .inline-arrow {font-size:20px; margin-left:12px;}
.home-browse {bottom:40px; font-size:var(--type-meta);}
.home .home-secondary {width:var(--rail); margin:0 auto; padding:64px 0 96px;}
.home .home-copy-section {display:grid; grid-template-columns:var(--editor-label) minmax(0,1fr); column-gap:var(--editor-gap); row-gap:16px; margin:0; padding:48px 0 64px; border-top:1px solid var(--hairline); scroll-margin-top:48px;}
.home-copy-section .reading-eyebrow {grid-column:1; grid-row:1; font-size:var(--type-meta); line-height:1.6; margin:8px 0 0; color:var(--secondary);}
.home .home-copy-section h2 {grid-column:2; font-size:var(--type-section); line-height:1.5; font-weight:600; letter-spacing:-.01em; margin:0; width:min(100%,var(--reading-width));}
.home .home-copy-section h2 strong {display:inline; font-weight:600;}
.home-copy-section > :not(.reading-eyebrow):not(h2) {grid-column:2; width:100%;}
.home .about-paragraphs {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 48px; align-items:start;}
.home .about-paragraphs p {max-width:var(--reading-width); margin:0;}
.home .about-paragraphs .original-intro {margin:0;}
.about-paragraphs p {font-size:var(--type-body); line-height:1.8; margin-bottom:16px;}
.about-paragraphs p:last-child {margin-bottom:0;}
.about-paragraphs .original-intro {font-size:var(--type-body); line-height:1.8; margin-top:24px; color:var(--secondary);}
.values-description,.vision-description {font-size:var(--type-body); line-height:1.8;}
.home .values-reading {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin-top:8px; align-items:start;}
.values-reading section {padding:16px 0;}
.values-reading h3 {font-size:var(--type-title); line-height:1.5; margin-bottom:0;}
.home-secondary .value-toggle>span:first-child {font-size:var(--type-title); font-weight:600; line-height:1.5; letter-spacing:-.01em;}
.home-secondary .value-toggle>.value-sign {font-size:var(--type-control); font-weight:400; line-height:1.5; letter-spacing:0;}
.values-reading p {font-size:var(--type-body); line-height:1.8; padding-top:8px;}
.home .home-secondary .text-action {width:fit-content; margin-top:8px;}
.home #vision {grid-template-columns:var(--editor-label) minmax(0,1fr) auto;}
.home #vision h2 {grid-column:2; grid-row:1;}
.home #vision .vision-description {grid-column:2; grid-row:2; max-width:var(--reading-width);}
.home #vision .text-action {grid-column:3; grid-row:1/3; margin:0; align-self:center;}
.home .edge,.functional .edge,.edge {position:static; top:auto; bottom:auto; left:auto; transform:none; width:var(--rail); margin:32px auto 0; min-height:64px; padding:16px 0 28px; font-size:var(--type-micro); line-height:1.5;}
.functional.calendar .edge {margin-top:12px; min-height:44px; padding:4px 0;}
.build-stamp {font-size:var(--type-micro);}
.build-stamp time {font-size:11px;}
.proposal-notice {position:absolute; z-index:5; right:var(--outer-inset); top:8px; color:var(--secondary); padding:0; font-size:12px; line-height:1.5; letter-spacing:0;}
@media(max-height:820px) {
  .masthead {padding-top:24px; min-height:86px;}
  .functional #main,.news #main,body.contact #main:has(.excited-contact.cm-r4) {padding-top:32px;}
  .home .hero-panel {min-height:calc(100vh - 86px); padding:32px 0 48px;}
  .home .hero-rule {margin-bottom:24px;}
  .home .wordmark {width:min(100%,560px);}
  .home #home-title {font-size:2.75rem;}
}
@media(max-width:1200px) {
  :root {--editor-label:160px; --editor-gap:32px;}
  .masthead {gap:32px;}
  .nav {gap:24px;}
  .calendar-layout {grid-template-columns:minmax(0,1fr) 300px; gap:32px;}
  .home .about-paragraphs,.home .values-reading {grid-template-columns:minmax(0,1fr);}
}
/* PC zoom/reflow support; mobile product work remains paused. */
@media(max-width:1000px) {
  :root {--editor-label:120px; --editor-gap:24px;}
  .calendar-layout {grid-template-columns:minmax(0,1fr);}
  .sidebar {padding-top:24px; max-width:38ic;}
  .month-caption {flex-wrap:wrap; gap:4px 16px;}
  .news .news-meta {font-size:var(--type-meta);}
}
@media(max-width:800px) {
  :root {--outer-inset:24px; --editor-start:0px;}
  .functional .heading {flex-wrap:wrap; gap:8px 16px;}
  .news .news-meta {position:static; display:flex; gap:8px 16px; flex-wrap:wrap; width:auto; margin-bottom:8px;}
  .news .entry,.news .filters {width:calc(100% - 64px); margin-left:0;}
  .news #news-list>.news-empty,.news #news-list>.empty-day,.news #news-list>.news-error,.news #news-list>.news-loading {width:calc(100% - 64px); margin-left:0;}
  .news .entry:not(:first-child):before {left:0; right:-64px;}
  .news .expand {left:calc(100% + 20px);}
  .excited-contact.cm-r4 {margin-left:0; width:100%;}
  .home .home-copy-section {grid-template-columns:minmax(0,1fr); padding:32px 0 48px;}
  .home #vision {grid-template-columns:minmax(0,1fr);}
  .home #vision h2,.home #vision .vision-description,.home #vision .text-action {grid-column:1; grid-row:auto;}
  .home-copy-section .reading-eyebrow,.home .home-copy-section h2,.home-copy-section > :not(.reading-eyebrow):not(h2) {grid-column:1; grid-row:auto;}
  .home .hero {width:100%;}
  .home .description span {display:inline;}
  .edge {flex-wrap:wrap; gap:12px;}
}
