﻿.monthly-roundup{--sticky-top:calc(var(--size-header) + var(--space-medium));--color-muted:#546478;--color-faint:#647890;--color-surface:#f0f2f5;background:linear-gradient(180deg,var(--color-background) 0,var(--color-background) 70%,#ffefe6 100%)}.monthly-roundup a:not(.d-button){color:var(--color-dext)}.monthly-roundup .d-button span{color:inherit}.monthly-roundup .roundup-layout{align-items:start;display:grid;gap:0;grid-template-columns:1fr;margin:0 auto;max-width:100%;padding:0 var(--space-screen-gap) var(--space-medium);width:73.75rem}@media(min-width:900px){.monthly-roundup .roundup-layout{gap:var(--space-large);grid-template-columns:13.75rem 1fr}}@media(min-width:1100px){.monthly-roundup .roundup-layout{gap:calc(var(--space-large)*2)}}.monthly-roundup .roundup-doc{min-width:0;padding:var(--space-medium) 0}@media(min-width:900px){.monthly-roundup .roundup-doc{padding:calc(var(--space-large) + var(--space-tiny)) 0 var(--space-medium)}}.monthly-roundup .roundup-sidebar{display:none}@media(min-width:700px){.monthly-roundup .roundup-sidebar{backdrop-filter:saturate(180%) blur(8px);background:rgba(255,255,255,.95);border-bottom:1px solid var(--color-border);display:block;margin:0 calc(var(--space-screen-gap)*-1);position:sticky;top:var(--size-header);z-index:10}.monthly-roundup .toc-group,.monthly-roundup .toc-label,.monthly-roundup .toc-sub{display:none}.monthly-roundup .toc>ul{display:flex;gap:var(--space-tiny);overflow-x:auto;padding:var(--space-tiny) var(--space-screen-gap);scrollbar-width:none}.monthly-roundup .toc>ul::-webkit-scrollbar{display:none}.monthly-roundup .toc>ul ul,.monthly-roundup .toc>ul>li{display:contents}.monthly-roundup .toc a{background:var(--color-surface);border-radius:var(--border-radius-xxl);font-size:var(--fs-caption);padding:var(--space-tiny) var(--space-small);white-space:nowrap}.monthly-roundup .toc a.active{background:var(--color-dext);color:var(--color-white)}.monthly-roundup .toc a.active .toc-star{color:var(--color-white)}}@media(min-width:900px){.monthly-roundup .roundup-sidebar{backdrop-filter:none;background:none;border-bottom:none;margin:0;padding-top:calc(var(--space-large) + var(--space-small));top:var(--sticky-top);z-index:auto}.monthly-roundup .toc-group,.monthly-roundup .toc-label{display:block}.monthly-roundup .toc>ul{display:block;overflow:visible;padding:0}.monthly-roundup .toc>ul ul,.monthly-roundup .toc>ul>li{display:block}.monthly-roundup .toc a{background:none;border-radius:0;font-size:var(--fs-body);padding:calc(var(--space-tiny)*.5) 0 calc(var(--space-tiny)*.5) var(--space-small);white-space:normal}.monthly-roundup .toc a.active{background:none;color:var(--color-text)}.monthly-roundup .toc-sub{display:block;max-height:0;opacity:0;overflow:hidden;transition:max-height var(--speed) ease,opacity var(--speed) ease}.monthly-roundup .toc-sub.expanded{margin:0 0 var(--space-tiny);max-height:12.5rem;opacity:1}.monthly-roundup .toc-sub a{color:var(--color-faint);font-size:var(--fs-caption);font-weight:400;padding-left:var(--space-medium)}.monthly-roundup .toc-sub a:hover{color:var(--color-muted)}.monthly-roundup .toc-sub a.active{color:var(--color-text);font-weight:700}}.monthly-roundup .toc-group,.monthly-roundup .toc-label{color:var(--color-faint);font-size:var(--fs-caption);font-weight:700;letter-spacing:.04em;margin:0 0 var(--space-small);text-transform:uppercase}.monthly-roundup .toc-group{margin:var(--space-large) 0 var(--space-tiny)}.monthly-roundup .toc ul{font-size:inherit;list-style:none;margin:0;padding:0}.monthly-roundup .toc li{margin:0}.monthly-roundup .toc a{border-left:2px solid rgba(0,0,0,0);color:var(--color-muted);display:block;font-weight:500;margin-left:-1px;text-decoration:none;transition:color var(--speed),border-color var(--speed)}.monthly-roundup .toc a:hover{color:var(--color-text)}.monthly-roundup .toc a.active{border-left-color:var(--color-dext)}.monthly-roundup .toc a.active,.monthly-roundup .toc a.toc-spot{color:var(--color-text);font-weight:700}.monthly-roundup .toc-star{color:var(--color-dext)}.monthly-roundup .masthead{border-bottom:1px solid var(--color-border);margin-bottom:var(--space-small);padding-bottom:var(--space-medium)}.monthly-roundup .masthead-row{align-items:flex-start;display:flex;flex-direction:column;gap:var(--space-small);justify-content:space-between}@media(min-width:700px){.monthly-roundup .masthead-row{flex-direction:row}}.monthly-roundup .masthead-title{margin:0}.monthly-roundup .masthead-tagline{color:var(--color-muted);margin:var(--space-small) 0 0}.monthly-roundup .edition-pill{align-items:center;background:var(--color-surface);border-radius:var(--border-radius-xxl);display:inline-flex;flex-shrink:0;margin-top:var(--space-tiny);padding:0 var(--space-small);position:relative}.monthly-roundup .edition-pill:focus-within{outline:2px solid var(--color-dext);outline-offset:2px}.monthly-roundup .edition-pill:after{border-bottom:2px solid var(--color-muted);border-right:2px solid var(--color-muted);content:"";height:.4375rem;pointer-events:none;position:absolute;right:.8125rem;top:50%;transform:translateY(-70%) rotate(45deg);width:.4375rem}.monthly-roundup .edition-pill .edition-pill-icon{font-size:var(--fs-caption);line-height:1;margin-right:var(--space-tiny)}.monthly-roundup .edition-pill select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:rgba(0,0,0,0);border:none;color:var(--color-text);cursor:pointer;font:inherit;font-size:var(--fs-caption);font-weight:700;line-height:1;outline:none;padding:var(--space-tiny) var(--space-medium) var(--space-tiny) 0}.monthly-roundup .builder-blocks{gap:0}.monthly-roundup .builder-block:empty{display:none}.monthly-roundup .block{scroll-margin-top:var(--sticky-top)}.monthly-roundup .prose .builder-text>:first-child{margin-top:0}.monthly-roundup .prose .builder-text>:last-child{margin-bottom:0}.monthly-roundup .prose>div:first-of-type>.builder-text>p:first-child{color:var(--color-muted);margin-bottom:var(--space-small)}.monthly-roundup .prose>.d-button{margin:var(--space-small) var(--space-tiny) 0 0}.monthly-roundup .prose ul{list-style-position:outside;padding-left:var(--space-medium)}.monthly-roundup .prose li{margin:var(--space-tiny) 0}.monthly-roundup .prose li::marker{color:var(--color-dext)}.monthly-roundup .prose a{font-weight:700;text-decoration:none}.monthly-roundup .prose a:hover{text-decoration:underline}.monthly-roundup .prose h4{color:var(--color-dext);margin:var(--space-medium) 0 var(--space-tiny);scroll-margin-top:var(--sticky-top)}.monthly-roundup .prose img{border:1px solid var(--color-border);border-radius:var(--border-radius-m);cursor:zoom-in;display:block;height:auto;margin:var(--space-small) 0;max-width:23.75rem;width:auto}.monthly-roundup .prose blockquote,.monthly-roundup .roundup-note{background:#ffefe6;border-left:3px solid var(--color-dext);border-radius:0 var(--border-radius-s) var(--border-radius-s) 0;color:var(--color-muted);font-size:var(--fs-body);margin:var(--space-tiny) 0 var(--space-small);padding:var(--space-tiny) var(--space-small)}.monthly-roundup .prose blockquote p,.monthly-roundup .roundup-note p{color:var(--color-muted);font-size:var(--fs-body);margin:0 0 var(--space-tiny)}.monthly-roundup .prose blockquote p:last-child,.monthly-roundup .roundup-note p:last-child{margin-bottom:0}.monthly-roundup .spotlight .prose .builder-text>ul{list-style:none;padding:0}.monthly-roundup .spotlight .prose .builder-text>ul>li{padding-left:var(--space-medium);position:relative}.monthly-roundup .spotlight .prose .builder-text>ul>li:before{color:var(--color-dext);content:"✓";font-weight:700;left:0;position:absolute;top:0}.monthly-roundup .spotlight-tags{display:flex;flex-wrap:wrap;gap:var(--space-tiny);margin:0 0 var(--space-small)}.monthly-roundup .tag{border-radius:var(--border-radius-xxl);display:inline-block;font-size:var(--fs-caption);font-weight:700;line-height:1.3;padding:calc(var(--space-tiny)*.5) var(--space-small)}.monthly-roundup .tag-highlight{background:var(--color-dext);color:var(--color-white)}.monthly-roundup .tag-info{background:var(--color-link);color:#e9f1fb}.monthly-roundup .tag-muted{background:var(--color-surface);color:var(--color-muted)}.monthly-roundup button.tag-category{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-muted);border:none;color:var(--color-surface);cursor:pointer;font-family:inherit;line-height:1.3;transition:filter var(--speed) ease}.monthly-roundup button.tag-category:focus-visible,.monthly-roundup button.tag-category:hover{filter:brightness(1.22)}.monthly-roundup .spotlight{background:#ffefe6;border-radius:var(--border-radius-m);margin-bottom:var(--space-large);padding:var(--space-medium)}@media(min-width:700px){.monthly-roundup .spotlight{padding:var(--space-large)}}.monthly-roundup .spotlight-title{margin:0 0 var(--space-tiny)}.monthly-roundup .feature{border-top:1px solid var(--color-border);padding:var(--space-large) 0}.monthly-roundup .feature-title{margin:0 0 var(--space-small)}.monthly-roundup .section-heading{border-top:1px solid var(--color-border);color:var(--color-faint);font-size:var(--fs-h6);letter-spacing:.04em;margin:var(--space-large) 0 var(--space-tiny);padding-top:var(--space-medium);scroll-margin-top:var(--sticky-top);text-transform:uppercase}.monthly-roundup .thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-m);cursor:pointer;display:block;line-height:0;margin:var(--space-medium) 0 0;max-width:23.75rem;overflow:hidden;padding:0;position:relative;width:100%}.monthly-roundup .thumb img{display:block;height:auto;width:100%}.monthly-roundup .thumb .thumb-overlay{align-items:center;background:rgba(12,35,64,0);display:flex;inset:0;justify-content:center;position:absolute;transition:background var(--speed) ease}.monthly-roundup .thumb .thumb-cue{color:var(--color-white);font-size:var(--fs-caption);font-weight:700;opacity:0;transform:translateY(4px);transition:opacity var(--speed) ease,transform var(--speed) ease}.monthly-roundup .thumb:focus-visible .thumb-overlay,.monthly-roundup .thumb:hover .thumb-overlay{background:rgba(12,35,64,.48)}.monthly-roundup .thumb:focus-visible .thumb-cue,.monthly-roundup .thumb:hover .thumb-cue{opacity:1;transform:none}.monthly-roundup .spotlight .thumb{margin:var(--space-medium) 0 0;max-width:100%}.monthly-roundup .editor-marker{background:var(--color-surface);border:1px dashed var(--color-faint);border-radius:var(--border-radius-s);color:var(--color-muted);font-size:var(--fs-caption);margin:var(--space-small) 0;padding:var(--space-tiny) var(--space-small)}.monthly-roundup .lightbox{align-items:center;background:rgba(8,18,32,.86);display:flex;inset:0;justify-content:center;padding:var(--space-large);position:fixed;z-index:calc(var(--z-index-header) + 100)}.monthly-roundup .lightbox .lightbox-img{border-radius:var(--border-radius-s);box-shadow:var(--shadow);height:auto;max-height:88vh;max-width:92vw;width:auto}.monthly-roundup .lightbox .lightbox-close{background:rgba(255,255,255,.16);border:none;border-radius:var(--border-radius-xxl);color:var(--color-white);cursor:pointer;font-size:var(--fs-h6);height:2.625rem;line-height:1;position:absolute;right:var(--space-medium);top:var(--space-medium);transition:background var(--speed);width:2.625rem}.monthly-roundup .lightbox .lightbox-close:hover{background:rgba(255,255,255,.32)}.monthly-roundup .tag-panel-overlay{background:rgba(12,35,64,0);display:flex;inset:0;justify-content:flex-end;pointer-events:none;position:fixed;transition:background var(--speed) ease;z-index:calc(var(--z-index-header) + 200)}.monthly-roundup .tag-panel-overlay.open{background:rgba(12,35,64,.4);pointer-events:auto}.monthly-roundup .tag-panel{background:var(--color-background);box-shadow:var(--shadow);display:flex;flex-direction:column;height:100%;max-width:100%;overflow:hidden;transform:translateX(100%);transition:transform var(--speed) ease;width:100%}@media(min-width:700px){.monthly-roundup .tag-panel{max-width:92vw;width:26.25rem}}.monthly-roundup .tag-panel-overlay.open .tag-panel{transform:translateX(0)}.monthly-roundup .tag-panel-head{align-items:center;border-bottom:1px solid var(--color-border);display:flex;flex:0 0 auto;gap:var(--space-small);justify-content:space-between;padding:var(--space-medium) var(--space-medium) var(--space-small)}.monthly-roundup .tag-panel-title{font-size:var(--fs-h6);font-weight:700}.monthly-roundup .tag-panel-close{background:var(--color-surface);border:none;border-radius:var(--border-radius-xxl);color:var(--color-text);cursor:pointer;flex:0 0 auto;font-size:var(--fs-body);height:var(--space-large);line-height:1;transition:background var(--speed);width:var(--space-large)}.monthly-roundup .tag-panel-close:hover{background:var(--color-border)}.monthly-roundup .tag-panel-body{flex:1 1 auto;overflow-y:auto;padding:var(--space-tiny) 0}.monthly-roundup .tag-panel-empty{color:var(--color-muted);font-size:var(--fs-body);padding:var(--space-medium)}.monthly-roundup .tag-panel-entry{background:none;border:none;border-bottom:1px solid var(--color-border);cursor:pointer;display:block;font-family:inherit;padding:var(--space-small) var(--space-medium);text-align:left;transition:background var(--speed);width:100%}.monthly-roundup .tag-panel-entry:focus-visible,.monthly-roundup .tag-panel-entry:hover{background:var(--color-surface)}.monthly-roundup .tag-panel-entry .tag-panel-month{color:var(--color-dext);display:block;font-size:var(--fs-caption);font-weight:700;letter-spacing:.04em;margin-bottom:calc(var(--space-tiny)*.5)}.monthly-roundup .tag-panel-entry .tag-panel-entry-title{color:var(--color-text);display:block;font-size:var(--fs-body);font-weight:700;margin-bottom:calc(var(--space-tiny)*.5)}.monthly-roundup .tag-panel-entry .tag-panel-entry-excerpt{color:var(--color-muted);display:block;font-size:var(--fs-caption)}.monthly-roundup .end-banner{color:var(--color-text);margin:var(--space-large) 0 0}.monthly-roundup .footer-cta{align-items:center;background:var(--color-surface);border-radius:var(--border-radius-m);display:flex;flex-wrap:wrap;gap:var(--space-medium);justify-content:space-between;margin-top:var(--space-medium);padding:var(--space-medium)}@media(min-width:700px){.monthly-roundup .footer-cta{padding:var(--space-large)}}.monthly-roundup .footer-cta h3{font-size:var(--fs-h4);margin:0 0 var(--space-tiny)}.monthly-roundup .footer-cta p{color:var(--color-muted);margin:0;max-width:32.5rem}@media(prefers-reduced-motion:reduce){.monthly-roundup .tag-panel,.monthly-roundup .tag-panel-overlay,.monthly-roundup .toc-sub{transition:none}}