/* Apple Design: layered materials, typographic hierarchy and native controls.
   Motion lives in motion.js: springs keep current position/velocity. */
:root{--bg:#f6f6f6;--ink:#1d1d1f;--muted:#67696d;--accent:#2d2e30;--accent-hover:#292a2c;--radius:1.4rem;--line:#e7e7e8;--shadow:0 2px 5px #2d2e3003,0 10px 32px #3e3f4107,0 0 0 1px #3b3c3e08}
body{background:radial-gradient(ellipse 75% 32rem at 45% 0,#f0f0f1aa,transparent),var(--bg)}
.site-header{position:sticky;top:.7rem;margin:.7rem auto 0;max-width:1280px;width:calc(100% - 2.5rem);border:1px solid #ffffffce;border-radius:1.45rem;background:#fdfdfee0;backdrop-filter:blur(22px) saturate(1.5);box-shadow:0 2px 8px #4c4e5005,0 9px 30px #4c4e5008;z-index:60}
.header-inner{min-height:4.15rem;padding:.35rem 1.05rem;gap:1rem}
.brand img{border-radius:.68rem;box-shadow:0 1px 3px #2c2d2e22}
.brand>span{display:flex;flex-direction:column;align-items:flex-start;gap:0;line-height:1.3}
.brand strong{font-size:1.15rem;letter-spacing:-.035em}.brand-chinese{font-size:.63rem;color:#686b6f;letter-spacing:.025em}
.main-nav{gap:.12rem;position:relative;background:#ededee99;padding:.2rem;border-radius:1rem}
.main-nav a{padding:.55rem .85rem;border-radius:.8rem;font-size:.79rem;min-height:2.55rem;position:relative;z-index:1;color:#5c5f62}
.main-nav a[aria-current=page]{background:#fff;color:#1d1d1e;box-shadow:0 1px 3px #40424417,0 4px 10px #40424408}
.main-nav a[aria-current=page]:after{display:none}.main-nav a:hover{background:#ffffff99;color:#1d1d1e}
.header-actions{gap:.12rem}.header-subscribe{margin-left:.5rem;border-radius:2rem;background:#f4f4f4;color:#5f6164;box-shadow:inset 0 0 0 1px #e3e4e5;font-size:.75rem}
.header-subscribe:hover{background:#ecedee;color:#232425}.header-actions .icon-button{border-radius:50%}
.page-shell{padding-top:2.2rem}.home-heading{margin-bottom:1.5rem}.home-heading h1{font-size:clamp(2rem,3.1vw,2.65rem);font-weight:700;letter-spacing:-.035em;line-height:1.4}
.home-heading h1+p{font-size:.94rem;line-height:1.85;margin-top:.55rem}.home-heading .eyebrow{font-size:.75rem;color:#6e7175;margin-bottom:.6rem}
.preference-link{border-radius:2rem;padding:.45rem .9rem;background:#ffffffa6;box-shadow:inset 0 0 0 1px #e3e3e4;font-size:.75rem}
.search-hub{padding:.9rem 1.05rem .7rem;border-radius:1.5rem;background:#ffffffeb;border:1px solid #fff;box-shadow:0 3px 9px #393a3c05,0 16px 40px #393a3c09;transition:box-shadow .18s,border-color .18s}
.search-hub:focus-within{border-color:#c7c9cb;box-shadow:0 0 0 4px #33353613,0 16px 40px #393a3c0b}
.hero-search{min-height:3.4rem}.hero-search input{font-size:1.07rem}.hero-search>.icon{color:#65686c;margin-left:.4rem}
.hero-search .button{border-radius:2rem;padding:.75rem 1.25rem;background:#2f3031;box-shadow:inset 0 1px 1px #ffffff33,0 3px 8px #2b2c2d20}
.search-suggestions{font-size:.75rem;border-top:1px solid #f1f1f2;margin-top:.5rem;padding-top:.55rem;gap:.75rem;color:#686a6e}
.search-suggestions a{padding:.15rem .35rem;border-radius:.45rem}.search-suggestions a:hover{background:#f6f6f6;text-decoration:none}
.topic-bar{margin:1.05rem 0 1.85rem;gap:.4rem}.topic-pill{background:#edeeef;border-color:transparent;min-height:2.25rem;color:#5d5f62;font-size:.75rem;padding:.3rem .9rem}
.topic-pill:hover{background:#ebebec;border-color:transparent;color:#28292b}
.section-heading .eyebrow{font-size:.63rem;letter-spacing:.11em;color:#7f8286}.section-heading h2{font-size:1.3rem;font-weight:680;letter-spacing:-.02em}.section-heading .text-link{font-size:.8rem}
.home-columns{gap:2rem;grid-template-columns:minmax(0,1fr) 330px}.feature-stack{border-radius:1.4rem;box-shadow:var(--shadow)}
.feature-row{padding:1.4rem;position:relative;background:#fff;transition:background-color .12s}.feature-row:hover{background:#fcfcfd}
.feature-row.spotlight{background:linear-gradient(120deg,#f3f3f4,#fafafa 75%);padding-block:1.55rem}
.feature-icon{border-radius:.9rem;box-shadow:inset 0 1px 2px #ffffffbf,0 3px 6px #3f41430b;width:3.1rem;height:3.1rem}
.tone-competition{color:#fff;background:linear-gradient(#9ea1a4,#333436)}.tone-grant{color:#fff;background:linear-gradient(#57a891,#34816c)}.tone-news{color:#fff;background:linear-gradient(#b295d3,#8363ac)}
.feature-content h3{font-size:1.125rem;font-weight:650;line-height:1.6}.feature-content p{font-size:.86rem;line-height:1.8;color:#6a6c70}.feature-row .meta-line{margin-bottom:.45rem}
.feature-row>.icon-button{width:2.75rem;min-width:2.75rem;border-radius:50%;margin:-.1rem -.4rem 0 0}
.date-panel{border-radius:1.45rem;padding:1.25rem 1.35rem .85rem}.date-panel h2{font-size:1.02rem}.date-summary strong{font-size:2.25rem;font-weight:600;letter-spacing:-.06em;font-variant-numeric:tabular-nums}.date-summary span{font-size:.72rem}.date-summary{gap:1.8rem}
.date-tile{border-radius:.72rem;background:#f7f7f7;box-shadow:inset 0 0 0 1px #ebebec;min-width:3rem;padding:.2rem .25rem .1rem}.date-tile span{color:#b1433a;font-size:.65rem;margin-top:.15rem}.date-tile strong{font-size:1.45rem;letter-spacing:-.06em;font-variant-numeric:tabular-nums;color:#2a2b2d}
.deadline-item h3{font-size:.86rem;font-weight:600}.deadline-item .small-text.muted{font-size:.7rem}.panel-footnote{font-size:.7rem;line-height:1.7}
.quick-tools{background:#fff;border-radius:1.4rem;box-shadow:var(--shadow);padding:1.1rem 1.3rem;margin-top:1.3rem}.quick-tool:last-child{border-bottom:0}.quick-tool{padding:.85rem 0;font-size:.875rem}.quick-tool small{font-size:.72rem}.quick-tool .tool-icon{background:#f0923e;color:#fff;box-shadow:inset 0 1px 1px #ffffff66,0 3px 5px #393a3c12}
.quick-tool:nth-child(3) .tool-icon{background:#5d9f8b;color:#fff}.quick-tool:nth-child(4) .tool-icon{background:#9ea0a3;color:#fff}.quick-tool:nth-child(5) .tool-icon{background:#3b3d3f;color:#fff}
.resource-art{height:8.2rem;background:linear-gradient(145deg,#f3f8f6,#deeee7)}.resource-art.art-blue{background:linear-gradient(145deg,#f6f6f6,#ececed)}.resource-art.art-peach{background:linear-gradient(145deg,#fcf7f0,#f1e6d8)}
.resource-art>.icon{height:3.2rem;width:3.2rem;stroke-width:1.25;filter:drop-shadow(0 3px 2px #34353720)}.resource-art>span{font-size:.57rem}.resource-body h3{font-size:1rem}.resource-body p{font-size:.8rem}
.catalog-form{margin-bottom:1.6rem}.list-search{border-radius:1.1rem;background:#fff;box-shadow:var(--shadow);padding:.6rem .8rem}.filter-panel{background:#f0f0f0;border-radius:1.15rem;box-shadow:none;margin-top:.75rem;padding:1.2rem}.filter-grid label{font-size:.76rem;color:#5f6265}.filter-grid select,.filter-grid input{background:#fff;border-color:transparent;box-shadow:0 1px 2px #2a2b2d0a;border-radius:.7rem}
.filter-actions .button{border-radius:2rem}.advanced-filters summary{border-radius:.65rem;padding:.6rem .25rem;font-weight:550;min-height:2.75rem}.advanced-filters summary:after{content:'⌄';margin-left:auto;font-size:1rem;transition:rotate .18s}.advanced-filters[open] summary:after{rotate:180deg}
.catalog-list{border-radius:1.35rem;overflow:hidden;box-shadow:var(--shadow);background:#fff}.catalog-row{border-radius:0;box-shadow:none;border-bottom:1px solid #ededee;margin:0;padding:1.4rem 1.5rem}.catalog-row:last-child{border-bottom:0}.catalog-row:hover{background:#fdfdfd}.catalog-symbol{border-radius:.95rem}.catalog-main h2{font-size:1.15rem}.catalog-main>p{font-size:.87rem}
.button{border-radius:.85rem}.icon-button[aria-pressed=true]{background:#f3f3f3;color:#2d2e30}.icon-button[aria-pressed=true] .icon{fill:#2f303133}.button.primary{box-shadow:inset 0 1px 1px #ffffff2e,0 2px 4px #292b2c12}
.segmented{position:relative;isolation:isolate;background:#eaeaeb;border-radius:.85rem;padding:.22rem}.segmented>*{z-index:1;position:relative}.segmented .selection-material{position:absolute;left:0;top:.22rem;height:calc(100% - .44rem);background:#fff;border:1px solid #fff;border-radius:.65rem;box-shadow:0 2px 5px #38393b17;z-index:0;pointer-events:none}
.segmented.has-material [aria-pressed=true],.segmented.has-material [aria-current=true]{background:transparent;box-shadow:none}
.calendar-toolbar{padding:.8rem;background:#ffffffb8;backdrop-filter:blur(14px);border-radius:1.2rem;box-shadow:var(--shadow)}.calendar-day{min-height:8.4rem}.calendar-grid{border-radius:1.3rem}.calendar-event{padding:.35rem .5rem;border-radius:.4rem;font-size:.69rem}
.detail-heading h1{max-width:55rem;letter-spacing:-.03em}.detail-summary{background:#fff;border-radius:1.5rem}.detail-summary h2{font-weight:680}.detail-grid{gap:1.7rem}.action-panel{background:#fefefe;border-radius:1.4rem}.action-grid .button{background:#f4f4f4;box-shadow:none;border-radius:.8rem}.action-grid .button:hover{background:#eeeeef}.article-body{border-radius:1.4rem}.facts-grid>div{padding-bottom:1rem}.facts-grid dt{font-size:.76rem}.facts-grid dd{font-size:.96rem}
.preferences-grid .panel,.public-form,.legal-body,.service-card{border-radius:1.5rem}.choice-chip{border-radius:2rem;background:#f9f9f9}.choice-chip:has(input:checked){background:#f3f3f3;border-color:#dbdcde}.service-strip{background:#edeeef;border-radius:1.5rem}
.compare-tray{border-radius:1.45rem;background:#fffffff0;border:1px solid #fff;box-shadow:0 6px 30px #33343620;backdrop-filter:blur(22px) saturate(1.6)}.compare-tray>.button{border-radius:2rem}.toast{background:#2e2f30ef;border:1px solid #ffffff22;border-radius:2rem;box-shadow:0 8px 30px #33343625;backdrop-filter:blur(20px)}
.sheet{background:#fcfcfceb;backdrop-filter:blur(24px) saturate(1.5);border:1px solid #ffffffef;box-shadow:0 28px 90px #2b2c2d33;overflow:auto;border-radius:1.8rem;padding:1.25rem;transform-origin:top right}
.sheet::backdrop{background:rgb(22 32 52 / var(--scrim,.22));backdrop-filter:blur(3px)}.sheet-header{margin-bottom:.75rem}.sheet-header h2{font-size:1.18rem}.sheet-header .icon-button{order:-1;border-radius:50%;background:#ebeced;width:2rem;min-width:2rem;min-height:2rem;height:2rem;padding:.35rem}.sheet-header{justify-content:flex-start;gap:.75rem}
.sheet-grabber{display:none}.mobile-nav{display:grid;grid-template-columns:1fr 1fr;gap:.3rem}.mobile-nav a{background:#ffffffa8;min-height:3.3rem;font-size:.9rem;border-radius:.9rem;padding:.7rem}.mobile-nav .icon{color:#333436}
/* Keep keyboard focus visible on the handle, not its full-width hit area. */
.sheet-grabber:focus-visible{outline:none}
.sheet-grabber:focus-visible::before{outline:3px solid #303133;outline-offset:5px}
.site-footer{background:#eeeeef;color:#686a6e}.footer-inner nav a{font-size:.75rem}.footer-note{font-size:.69rem}
@media (hover:hover){.resource-card:hover{box-shadow:0 6px 22px #3e3f4111,0 0 0 1px #3b3c3e0d}.resource-card{transition:box-shadow .18s}.feature-row .icon-button:hover{background:#ebeced}}
@media(min-width:981px){.home-heading{align-items:flex-end}.header-inner{padding-inline:1.1rem}.main-nav{margin-left:auto}.sheet{margin:6rem max(2rem,calc((100vw - 1230px)/2)) auto auto}}
@media(max-width:1180px){.main-nav a{padding-inline:.55rem;font-size:.73rem}.brand-chinese{display:block}.header-subscribe{font-size:.7rem;padding:.5rem .7rem}.home-columns{grid-template-columns:minmax(0,1fr) 295px;gap:1.4rem}}
@media(max-width:980px){.site-header{width:calc(100% - 2rem)}.main-nav{display:none}.header-subscribe{font-size:.8rem}.home-columns{grid-template-columns:minmax(0,1fr) 280px}.home-heading h1{font-size:2rem}.feature-row{padding:1.2rem}.feature-content h3{font-size:1.05rem}.quick-tools{padding:1.1rem}.calendar-toolbar{align-items:flex-start}}
@media(max-width:720px){.site-header{top:.45rem;margin-top:.45rem;width:calc(100% - 1.2rem);border-radius:1.3rem}.header-inner{min-height:3.55rem;padding:.35rem .6rem}.brand img{width:30px;height:30px}.brand strong{font-size:1.07rem}.brand-chinese{display:block;font-size:.6rem}.header-actions>.icon-button{min-width:2.75rem;width:2.75rem}.page-shell{padding:1.5rem 1.1rem 2.5rem}.home-heading h1{font-size:1.92rem;letter-spacing:-.035em;line-height:1.5}.home-heading h1+p{font-size:.86rem}.home-heading .eyebrow{font-size:.72rem}.preference-link{background:transparent;box-shadow:none;padding:0}.search-hub{padding:.7rem .8rem}.hero-search{min-height:0}.hero-search input{font-size:1rem}.hero-search .button{padding:.7rem;min-height:2.8rem}.search-suggestions{font-size:.73rem;gap:.15rem .25rem}.search-suggestions a{padding:.25rem}.topic-bar{gap:.35rem;margin-bottom:1.55rem}.topic-pill{font-size:.74rem;min-height:2.4rem;padding:.25rem .75rem}.home-columns{display:flex}.feature-row,.feature-row.spotlight{padding:1.2rem}.feature-content h3{font-size:1.06rem}.feature-content p{font-size:.86rem}.section-heading h2{font-size:1.25rem}.quick-tools{margin:0 0 2rem;padding:1.2rem 1.35rem}.resource-body h3{font-size:.93rem}.resource-body p{font-size:.8rem}.date-panel{padding:1.3rem}.catalog-row{padding:1.2rem}.catalog-main h2{font-size:1.05rem}.catalog-main>p{font-size:.85rem}.filter-panel{padding:1rem}.filter-grid{gap:.7rem}.catalog-side .actions{margin-left:auto}.calendar-toolbar{padding:.7rem}.calendar-toolbar .actions{gap:.65rem}.calendar-toolbar .button{font-size:.75rem}.facts-grid dd{font-size:.9rem}.sheet{width:calc(100% - 1rem);max-height:88dvh;margin:auto auto .5rem;padding:.5rem 1.1rem 1.15rem;border-radius:1.8rem;transform-origin:bottom center}.sheet-grabber{display:flex;align-items:center;justify-content:center;width:100%;height:1.6rem;min-height:1.6rem;background:transparent;border-radius:1rem;touch-action:none;cursor:grab;margin-bottom:.2rem}.sheet-grabber:before{content:'';height:5px;width:36px;border-radius:9px;background:#b6b8ba}.sheet-grabber:active{cursor:grabbing}.mobile-nav{grid-template-columns:1fr 1fr}.mobile-nav a{font-size:.83rem;min-height:3.55rem;padding:.7rem .5rem;gap:.5rem}.mobile-nav .icon{height:1.15rem;width:1.15rem}.compare-tray{border-radius:1.4rem}.calendar-toolbar .segmented{min-width:8rem}.footer-note{font-size:.68rem}}
@media(max-width:375px){.brand-chinese{display:none}.header-inner{gap:.3rem}.header-actions{gap:0}.header-actions>.icon-button{width:2.6rem;min-width:2.6rem}.home-heading h1{font-size:1.75rem}.resource-body h3{font-size:.92rem}.filter-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.sheet{transform:none!important}.selection-material{transform:none!important;display:none}.segmented.has-material [aria-pressed=true]{background:white;box-shadow:0 1px 3px #31333522}}
@media(prefers-reduced-transparency:reduce){.site-header,.sheet,.compare-tray,.calendar-toolbar{background:#fff;backdrop-filter:none}.sheet::backdrop{backdrop-filter:none}.toast{background:#2e2f30;backdrop-filter:none}}
@media(prefers-contrast:more){:root{--muted:#3e4042;--line:#898c90;--shadow:0 0 0 1px #898c90}.site-header,.sheet,.compare-tray,.calendar-toolbar{background:white;backdrop-filter:none;border:1px solid #727579}.filter-grid label,.feature-content p,.search-suggestions,.topic-pill{color:#3d3f41}.topic-pill,.choice-chip,.filter-grid select{border:1px solid #727579}.main-nav a[aria-current=page]{outline:1px solid #727579}}
@media print{body{background:#fff}.site-header,.selection-material,.sheet-grabber{display:none!important}.calendar-toolbar{box-shadow:none;backdrop-filter:none}.catalog-list{box-shadow:none}.catalog-row{padding:10pt}.quick-tools{box-shadow:none}.page-shell{padding:0}.resource-art>.icon{filter:none}}

.display-preferences .checkbox-label{padding:.5rem 0}.display-preferences>p{margin-bottom:.75rem}.text-scale-label{display:flex;align-items:center;gap:1rem;margin-top:1rem}.text-scale-label select{flex:1;min-height:2.75rem;border:1px solid var(--line);border-radius:.6rem;background:#fff;padding:.5rem}.reduceMotion *{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}.reduceMotion .sheet{transform:none!important}.reduceTransparency .site-header,.reduceTransparency .sheet,.reduceTransparency .compare-tray,.reduceTransparency .calendar-toolbar{background:white;backdrop-filter:none}.reduceTransparency .toast{background:#2e2f30;backdrop-filter:none}.highContrast{--muted:#3e4042;--line:#898c90;--shadow:0 0 0 1px #898c90}.highContrast .site-header,.highContrast .sheet,.highContrast .compare-tray{background:#fff;border:1px solid #727579;backdrop-filter:none}.highContrast .badge,.highContrast .topic-pill{border:1px solid currentColor}.largeText .main-nav{display:none}.largeText .mobile-menu-button{display:inline-flex}.largeText .home-columns,.largeText .detail-grid,.largeText .preferences-grid{display:flex;flex-direction:column}.largeText .header-subscribe{display:none}.largeText .filter-grid{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr))}.largeText .resource-grid{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}.largeText .header-inner{gap:.3rem;flex-wrap:wrap}.largeText .header-actions{margin-left:auto}.largeText .header-inner .brand>span{max-width:12rem}.largeText .home-aside{width:100%}.largeText .calendar-list{display:block!important}.largeText .action-panel{display:block}.largeText .catalog-row{flex-wrap:wrap}.largeText .catalog-main{flex-basis:100%}.largeText .catalog-side{width:100%;text-align:left}.largeText .service-grid{grid-template-columns:1fr}
/* Calendar: a complete month is the default, with readable details below. */
.calendar-heading{margin-bottom:1.3rem}.calendar-heading h1{font-size:2.3rem}.calendar-heading .eyebrow{letter-spacing:.035em}.calendar-jumps{display:flex;gap:.75rem;margin:.8rem 0 1rem}.jump-chip{display:flex;align-items:center;gap:.65rem;background:#eeeeef;border:1px solid #e4e5e6;border-radius:.9rem;padding:.7rem .9rem;min-width:0;flex:1}.jump-chip>span{color:#2e2f30;font-size:.78rem;font-weight:600;display:flex;align-items:center;gap:.35rem;white-space:nowrap}.jump-chip>span .icon{width:1rem;height:1rem}.jump-chip>strong{font-size:.82rem;white-space:nowrap}.jump-chip>small{font-size:.75rem;color:#66686c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jump-chip:hover{background:#eaebec;border-color:#cdcecf}.calendar-day{min-height:6.6rem}.calendar-day .day-number{border:0;background:transparent;color:inherit;cursor:pointer;width:2rem;height:2rem;padding:0}.calendar-day.is-today .day-number{background:#2d2e30;color:#fff}.calendar-day .day-number[aria-pressed=true]{box-shadow:0 0 0 3px #a5a8ab44}.calendar-day:has(.day-number[aria-pressed=true]){background:#f6f6f7}.calendar-event>small{font-size:.64rem;display:block;opacity:.85}.calendar-event>span{display:block}.calendar-agenda{margin-top:1.5rem;scroll-margin-top:7rem}.agenda-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem;gap:1rem}.agenda-heading h2{font-size:1.1rem}.calendar-list [data-calendar-focus]{background:#f7f7f7;border-radius:.75rem;box-shadow:0 0 0 1px #dedfe0;padding:.85rem;margin:.4rem -.6rem}.calendar-list [data-calendar-focus] h3{color:#252628}.calendar-grid{scroll-margin-top:6.5rem}.calendar-list [hidden]{display:none!important}.calendar-day .day-number:hover{background:#f0f0f0;color:#292a2c}
@media(max-width:980px){.calendar-jumps{gap:.6rem}.jump-chip{flex-wrap:wrap;gap:.3rem .7rem}.jump-chip>small{flex-basis:100%}.calendar-toolbar{flex-wrap:wrap}.calendar-toolbar .actions{margin-left:auto}}
@media(max-width:720px){.calendar-heading h1{font-size:1.85rem}.calendar-heading{gap:.7rem;margin-bottom:1rem}.calendar-heading>div>p:last-child{font-size:.82rem}.calendar-heading>.button{font-size:.75rem;min-height:2.5rem}.calendar-toolbar{padding:.5rem;gap:.45rem;border-radius:1rem}.month-controls{width:100%;justify-content:center;gap:.4rem}.month-controls h2{font-size:1.15rem;min-width:8rem}.calendar-toolbar .actions{width:100%;justify-content:space-between;gap:.4rem}.calendar-toolbar .segmented{display:inline-flex!important}.calendar-toolbar .actions>.button{padding:.5rem .65rem}.calendar-jumps{gap:.45rem;margin:.65rem 0}.jump-chip{padding:.6rem;gap:.2rem .4rem;align-content:start;border-radius:.75rem}.jump-chip>span{font-size:.71rem}.jump-chip>strong{font-size:.76rem}.jump-chip>small{font-size:.69rem;line-height:1.6;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.calendar-filters{gap:.4rem}.calendar-filters label{min-width:5rem;font-size:.7rem}.calendar-filters select{font-size:.73rem;min-height:2.5rem;padding:.4rem .2rem}.calendar-filters>.button{font-size:.72rem;min-height:2.5rem;padding:.45rem .6rem}.calendar-grid:not([hidden]){display:block!important}.calendar-grid[hidden]{display:none!important}.week-header span{padding:.5rem .1rem;font-size:.72rem}.calendar-day{padding:.15rem .12rem;min-height:4.4rem}.calendar-day .day-number{width:2rem;height:2rem;max-width:100%;font-size:.76rem;margin:0 auto .1rem}.calendar-event{padding:.2rem .13rem;margin-bottom:.2rem;border-left-width:2px;font-size:.58rem;line-height:1.45;border-radius:.25rem;min-height:2.1rem}.calendar-event b{font-size:.52rem;line-height:1.5;font-weight:650}.calendar-event>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.calendar-event>small{font-size:.5rem}.calendar-grid{border-radius:.9rem}.calendar-agenda{margin-top:1.1rem}.agenda-heading h2{font-size:1rem}.calendar-list{padding:0 1rem}.mobile-calendar-note{font-size:.72rem;margin:.65rem 0}.calendar-legend{font-size:.68rem}.calendar-list .deadline-item .small-text{font-size:.72rem}}
@media print{.calendar-jumps,.calendar-filters,.agenda-heading button{display:none!important}.calendar-agenda{display:none}.calendar-day{min-height:4rem}.calendar-event>span{-webkit-line-clamp:unset}.calendar-day .day-number{display:flex!important;font-size:9pt}}

.calendar-week{display:block;position:relative}.week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.week-days{grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-spans{position:absolute;top:2.7rem;left:.5rem;right:.5rem;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.15rem 0;pointer-events:none}.calendar-span{pointer-events:auto;display:flex;align-items:center;gap:1rem;min-height:1.55rem;padding:.12rem .6rem;border-radius:.3rem;background:#f2f2f2;border-left:3px solid #a1a4a7;color:#6f7276;font-size:.65rem;overflow:hidden;line-height:1.5;white-space:nowrap}.calendar-span>span{overflow:hidden;text-overflow:ellipsis}.calendar-span small{font-size:.63rem;font-weight:600}.calendar-week.has-spans .day-number{margin-bottom:calc(var(--span-rows)*1.7rem + .3rem)}.calendar-event>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.calendar-event{font-size:.68rem}.calendar-event b{font-size:.62rem}.calendar-day{min-height:6rem}.calendar-week.has-spans .calendar-day{min-height:6.8rem}
@media(max-width:720px){.calendar-spans{top:2.2rem;left:.2rem;right:.2rem;gap:.1rem}.calendar-span{font-size:.54rem;min-height:1.4rem;padding:.1rem .25rem;gap:.4rem}.calendar-span small{font-size:.5rem;overflow:hidden;text-overflow:ellipsis}.calendar-week.has-spans .day-number{margin-bottom:calc(var(--span-rows)*1.5rem + .25rem)}.calendar-week.has-spans .calendar-day,.calendar-day{min-height:4.6rem}.calendar-event{font-size:.55rem}.calendar-event b{font-size:.51rem}}

.calendar-workspace{display:grid;grid-template-columns:205px minmax(0,1fr);gap:1.25rem;margin-top:1.1rem;align-items:start}.calendar-sidebar{padding:1.05rem;background:#eeeeef;border-radius:1.2rem}.calendar-sidebar>h2{font-size:.85rem;font-weight:650}.calendar-sidebar .calendar-jumps{flex-direction:column;margin:.65rem 0 1.1rem;gap:.55rem}.calendar-sidebar .jump-chip{background:#ffffffcb;box-shadow:0 1px 2px #33353709;border:0;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.75rem}.calendar-sidebar .jump-chip>span{font-size:.74rem}.calendar-sidebar .jump-chip>strong{font-size:1.12rem;letter-spacing:-.025em}.calendar-sidebar .jump-chip>small{white-space:normal;line-height:1.6;font-size:.72rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.calendar-sidebar .calendar-filters{flex-direction:column;margin:0;gap:.7rem}.calendar-sidebar .calendar-filters label{width:100%;min-width:0;font-size:.72rem}.calendar-sidebar .calendar-filters select{width:100%;min-height:2.6rem;font-size:.76rem;padding:.4rem .5rem;background:#fff;border:0;border-radius:.6rem;box-shadow:0 1px 2px #31333508}.calendar-sidebar .calendar-filters>.button{width:100%;font-size:.75rem;background:#e7e8e9;color:#28292b;box-shadow:none}.calendar-month{min-width:0}.calendar-month .calendar-event{padding:.23rem .35rem;min-height:1.95rem}.calendar-month .calendar-event>span{-webkit-line-clamp:1}.calendar-month .calendar-event>b{font-size:.59rem;line-height:1.5}.calendar-month .calendar-event>small{display:none}.calendar-month .calendar-day{min-height:5.8rem}.calendar-month .calendar-week.has-spans .calendar-day{min-height:6.7rem}.calendar-month .calendar-span{font-size:.61rem}.calendar-heading .eyebrow{display:none}.calendar-heading h1{font-size:2rem}.calendar-heading{margin-bottom:1.2rem}.calendar-heading>div>p{margin-top:.35rem}
@media(max-width:980px) and (min-width:721px){.calendar-workspace{grid-template-columns:170px minmax(0,1fr);gap:.8rem}.calendar-sidebar{padding:.8rem}.calendar-month .calendar-event{font-size:.6rem}}
@media(max-width:720px){.calendar-workspace{display:flex;flex-direction:column;gap:1rem;margin-top:.6rem}.calendar-month{order:0;width:100%}.calendar-sidebar{order:1;width:100%;padding:1rem}.calendar-sidebar .calendar-jumps{flex-direction:row;margin-bottom:.9rem}.calendar-sidebar .jump-chip{width:50%;padding:.65rem}.calendar-sidebar .jump-chip>strong{font-size:.95rem}.calendar-sidebar .calendar-filters{flex-direction:row;flex-wrap:wrap;gap:.5rem}.calendar-sidebar .calendar-filters label{flex:1;min-width:4rem}.calendar-sidebar .calendar-filters>.button{width:auto}.calendar-month .calendar-day,.calendar-month .calendar-week.has-spans .calendar-day{min-height:4.4rem}.calendar-month .calendar-event{font-size:.54rem;padding:.16rem .12rem;min-height:1.8rem}.calendar-month .calendar-event>b{font-size:.49rem}.calendar-month .calendar-event>span{-webkit-line-clamp:2}.calendar-month .calendar-span{font-size:.53rem}.calendar-month .calendar-span small{display:none}.calendar-heading h1{font-size:1.8rem}.calendar-heading{flex-direction:row;align-items:center;gap:.5rem}.calendar-heading>div>p{font-size:.75rem}.calendar-heading>.button{font-size:.68rem;flex-shrink:0;padding:.55rem}.mobile-calendar-note{margin:.1rem 0 .6rem}.calendar-agenda{margin-top:1.1rem}}
.largeText .calendar-workspace{display:flex;flex-direction:column}.largeText .calendar-sidebar,.largeText .calendar-month{width:100%}
.calendar-sidebar .jump-chip{min-width:0}.calendar-sidebar .jump-chip>small{min-width:0;max-width:100%;flex-basis:auto;overflow-wrap:anywhere}
.calendar-focus-summary{display:flex;align-items:center;gap:1rem;margin:0 0 1rem;padding:.8rem 1rem;border-radius:1rem;background:#f3f3f3;color:#252627;font-size:.8rem}.calendar-focus-summary>div{flex:1;min-width:0}.calendar-focus-summary strong{display:block;font-size:.9rem}.calendar-focus-summary .button{flex-shrink:0;font-size:.76rem}
@media(min-width:981px){.calendar-month .calendar-day{padding-block:.4rem}}
@media(max-width:720px){.calendar-month .calendar-event>b{display:none}.calendar-month .calendar-event>span{font-size:.6rem;line-height:1.4}.calendar-month .calendar-event{padding:.15rem .12rem}.calendar-focus-summary{flex-wrap:wrap}.calendar-heading>div>p{display:none}.calendar-heading{margin-bottom:.7rem}}
@media print{.calendar-workspace{display:block}.calendar-sidebar{display:none}.calendar-month .calendar-event>span{-webkit-line-clamp:unset}.calendar-heading .button{display:none}}
@media(min-width:981px){body:has(.calendar-workspace) .page-shell{padding-top:1.2rem}.calendar-heading{margin-bottom:.8rem}.calendar-heading h1{font-size:1.8rem}.calendar-heading>div>p{font-size:.82rem}.calendar-toolbar{padding:.45rem .65rem}.calendar-workspace{margin-top:.75rem}.calendar-month .week-header span{padding:.5rem}.calendar-month .calendar-event b{font-size:.63rem}.calendar-month .calendar-event{font-size:.7rem}}

/* Compact phone layout: one light navigation bar, then the month itself. */
.calendar-more{display:none}
.largeText .resource-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr))}
.largeText .filter-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr))}
@media(min-width:721px) and (max-width:980px){
  body:has(.calendar-workspace) .page-shell{padding-top:1.2rem}.calendar-heading h1{font-size:1.6rem}.calendar-heading{margin-bottom:.8rem}.calendar-heading>div>p{font-size:.78rem}
  .calendar-toolbar{padding:.45rem .6rem}.calendar-workspace{display:flex;flex-direction:column;gap:1rem}.calendar-month{order:0;width:100%}.calendar-sidebar{order:1;width:100%;padding:.8rem 1rem}.calendar-sidebar>h2{display:none}.calendar-sidebar .calendar-jumps{flex-direction:row;margin:0 0 .8rem}.calendar-sidebar .jump-chip{width:50%;gap:.15rem}.calendar-sidebar .calendar-filters{flex-direction:row}.calendar-sidebar .calendar-filters>.button{width:auto;flex-shrink:0}
  .calendar-month .calendar-day,.calendar-month .calendar-week.has-spans .calendar-day{min-height:5.5rem;padding:.35rem}.calendar-month .calendar-event{font-size:.67rem;padding:.2rem .25rem}.calendar-month .calendar-span{font-size:.63rem}
}
@media(max-width:720px){
  .site-header{top:0;margin:0;width:100%;border:0;border-bottom:1px solid #e5e6e799;border-radius:0;box-shadow:none;background:#fbfbfce8}
  .header-inner{min-height:3.15rem;padding:.15rem .75rem;gap:.5rem}.brand img{width:26px;height:26px;border-radius:.5rem}.brand strong{font-size:1rem}.brand-chinese{display:none}.header-actions>.icon-button{min-width:2.55rem;width:2.55rem;min-height:2.65rem}.header-actions .icon{width:1.2rem;height:1.2rem}
  .page-shell{padding:1rem .85rem 2rem}.page-heading{margin-bottom:1rem}.page-heading h1{font-size:1.6rem}.home-heading h1{font-size:1.7rem}.home-heading h1+p{line-height:1.7}
  body:has(.calendar-workspace) .page-shell{padding-top:.65rem}
  .calendar-heading{margin-bottom:.6rem;gap:.4rem}.calendar-heading h1{font-size:1.3rem;letter-spacing:-.025em}.calendar-heading>.button{border:0;background:none;box-shadow:none;padding:.35rem 0 .35rem .5rem;min-height:2rem;color:#2b2c2e}
  .calendar-toolbar{background:transparent;backdrop-filter:none;box-shadow:none;border-radius:0;padding:0;gap:.45rem;margin-bottom:.4rem}
  .month-controls{justify-content:flex-start;gap:.15rem}.month-controls h2{order:-1;min-width:0;margin-right:auto;font-size:1.25rem;letter-spacing:-.03em}.month-controls>.icon-button{width:2rem;min-width:2rem;min-height:2rem;height:2rem}.month-controls>.text-link{margin-left:.4rem;font-size:.76rem}
  .calendar-toolbar .actions{gap:.6rem}.calendar-toolbar .actions>.button{background:none;box-shadow:none;border:0;min-height:2rem;font-size:.68rem;padding:.2rem}.calendar-toolbar .actions>.button .icon{width:1rem;height:1rem}
  .calendar-toolbar .segmented{min-width:0;padding:.15rem;border-radius:.6rem}.calendar-toolbar .segmented button{min-height:1.8rem;padding:.2rem .85rem;font-size:.72rem;border-radius:.45rem}.calendar-toolbar .selection-material{top:.15rem;height:calc(100% - .3rem);border-radius:.45rem}
  .calendar-workspace{margin-top:.4rem;gap:.8rem}.mobile-calendar-note{font-size:.66rem;margin:.35rem 0 .4rem}.calendar-grid{border-radius:.6rem;box-shadow:0 0 0 1px #e6e6e7;background:#fff}.week-header span{font-size:.65rem;padding:.35rem .1rem}
  .calendar-month .calendar-day,.calendar-month .calendar-week.has-spans .calendar-day{position:relative;min-height:5rem;padding:.1rem .14rem .3rem}
  .calendar-month .calendar-day .day-number{position:relative;width:100%;height:1.9rem;max-width:none;padding:0;display:flex;align-items:center;justify-content:center;margin:0!important;border-radius:.3rem;box-shadow:none;background:transparent;color:inherit}
  .calendar-month .calendar-week.has-spans .day-number{margin-bottom:calc(var(--span-rows)*1rem)!important}
  .calendar-month .calendar-day .day-number time{display:grid;place-items:center;width:1.45rem;height:1.45rem;border-radius:50%;font-size:.72rem;font-variant-numeric:tabular-nums}
  .calendar-month .calendar-day.is-today .day-number time{background:#323335;color:#fff}.calendar-month .day-number[aria-pressed=true]{box-shadow:inset 0 0 0 2px #b5b7b9}.calendar-month .day-number:hover{background:#f3f3f355}
  .calendar-month .calendar-event{position:relative;z-index:1;padding:.05rem .1rem;margin:0 0 .12rem;min-height:0;border-left-width:2px;border-radius:.18rem}
  .calendar-month .calendar-event>span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.58rem;line-height:1.45}.calendar-month .calendar-event>b,.calendar-month .calendar-event>small,.calendar-month .mobile-event-extra{display:none}
  .calendar-more{display:block;position:relative;z-index:1;background:none;color:#6e7175;padding:0 .12rem;font-size:.6rem;line-height:1.3;min-height:0}
  .calendar-spans{top:1.85rem;left:.14rem;right:.14rem;gap:.1rem 0}.calendar-month .calendar-span{min-height:.92rem;height:.92rem;line-height:1.1;padding:0 .2rem;border-left-width:2px;border-radius:.16rem;font-size:.51rem}
  .calendar-sidebar{padding:.7rem;border-radius:.7rem;background:#edeeef80}.calendar-sidebar>h2{display:none}.calendar-sidebar .calendar-jumps{margin:0 0 .65rem;gap:.5rem}.calendar-sidebar .jump-chip{padding:.55rem .6rem;gap:.1rem;border-radius:.6rem;box-shadow:none}.calendar-sidebar .jump-chip>span{font-size:.65rem}.calendar-sidebar .jump-chip>strong{font-size:.9rem}.calendar-sidebar .jump-chip>small{font-size:.63rem;-webkit-line-clamp:1}.calendar-sidebar .calendar-filters{gap:.45rem}.calendar-sidebar .calendar-filters label{font-size:.65rem}.calendar-sidebar .calendar-filters select{min-height:2rem;font-size:.68rem;padding:.2rem}.calendar-sidebar .calendar-filters>.button{min-height:2rem;padding:.3rem .5rem;font-size:.66rem}
  .calendar-agenda{margin-top:.8rem}.agenda-heading{margin-bottom:.4rem}.agenda-heading h2{font-size:.9rem}.calendar-list{border-radius:.75rem;padding:0 .75rem}.calendar-list .deadline-item{gap:.6rem;padding:.7rem 0}.calendar-list .deadline-item h3{font-size:.8rem;line-height:1.6}.calendar-list .deadline-item .small-text{font-size:.66rem}.calendar-list .deadline-item>.button{padding:.4rem;min-height:2.25rem;font-size:.7rem}.calendar-list .date-tile{min-width:2.5rem}
}
