:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--community-background:#fbf9f1;--community-surface:#fffefb;--community-primary-light:#dce5d8;--community-primary-dark:#082546;--community-secondary-text:#667a8d;--community-border:#dce4ea;--community-placeholder:#e7e4de;--community-confirmed-green:#2e7d5b;--community-alert:#7a1e18;--color-background-page:var(--community-background);--color-surface-card:var(--community-surface);--color-surface-raised:var(--community-surface);--color-surface-sunken:var(--community-surface);--color-surface-sheet:var(--community-surface);--color-surface-highlight:var(--community-primary-light);--color-surface-selected:var(--community-primary-light);--color-surface-placeholder:var(--community-placeholder);--color-text-primary:var(--community-primary-dark);--color-text-secondary:var(--community-secondary-text);--color-text-disabled:var(--community-secondary-text);--color-text-on-primary:var(--community-surface);--color-text-on-highlight:var(--community-primary-dark);--color-text-alert:var(--community-alert);--color-text-error:var(--community-alert);--color-text-placeholder:color-mix(in srgb, var(--community-primary-dark) 55%, transparent);--color-border:var(--community-border);--color-border-subtle:var(--community-border);--color-border-strong:var(--community-primary-dark);--color-border-focus:var(--community-primary-dark);--color-action-primary:var(--community-primary-dark);--color-action-primary-hover:var(--community-primary-dark);--color-action-primary-text:var(--community-surface);--color-action-primary-subtle:var(--community-primary-light);--color-action-secondary:var(--community-surface);--color-action-secondary-text:var(--community-primary-dark);--color-action-destructive:var(--community-alert);--color-action-destructive-text:var(--community-surface);--color-fill-strong:var(--community-primary-dark);--color-fill-quiet:var(--community-secondary-text);--color-action-confirmed:var(--community-confirmed-green);--color-action-confirmed-text:var(--community-surface);--color-status-positive:var(--community-primary-dark);--color-status-positive-surface:var(--community-primary-light);--color-status-caution:var(--community-primary-dark);--color-status-critical:var(--community-primary-dark);--color-status-critical-surface:var(--community-primary-light);--color-focus-ring:var(--community-primary-dark);--color-selection-background:var(--community-primary-light);--color-selection-text:var(--community-primary-dark);--color-overlay-scrim:color-mix(in srgb, var(--community-primary-dark) 44%, transparent);--color-overlay-scrim-soft:color-mix(in srgb, var(--community-primary-dark) 22%, transparent);--color-overlay-media-shade:color-mix(in srgb, var(--community-primary-dark) 62%, transparent);--color-overlay-press:color-mix(in srgb, var(--community-primary-dark) 8%, transparent);--color-shadow-ambient:color-mix(in srgb, var(--community-primary-dark) 10%, transparent);--color-shadow-raised:color-mix(in srgb, var(--community-primary-dark) 14%, transparent);--color-shadow-modal:color-mix(in srgb, var(--community-primary-dark) 18%, transparent);--shadow-soft:0 .5rem 1.5rem var(--color-shadow-ambient);--shadow-raised:0 .75rem 2rem var(--color-shadow-raised);--shadow-modal:0 1rem 2.5rem var(--color-shadow-modal);--color-modal-scrim:var(--color-overlay-scrim-soft);--color-modal-surface:var(--color-surface-sheet);--color-modal-surface-raised:var(--color-surface-raised);--color-modal-ink:var(--color-text-primary);--color-modal-ink-secondary:var(--color-text-secondary);--color-modal-rule:var(--color-border);--color-modal-action:var(--color-action-primary);--color-modal-action-ink:var(--color-action-primary-text);--color-modal-danger:var(--color-action-destructive);--color-modal-focus:var(--color-focus-ring);--color-chart-series-1:var(--community-primary-dark);--color-chart-series-2:color-mix(in srgb, var(--community-primary-dark) 78%, var(--community-primary-light));--color-chart-series-3:color-mix(in srgb, var(--community-primary-dark) 58%, var(--community-primary-light));--color-chart-series-4:color-mix(in srgb, var(--community-primary-dark) 40%, var(--community-primary-light));--color-chart-series-5:color-mix(in srgb, var(--community-primary-dark) 24%, var(--community-primary-light));--color-chart-series-6:color-mix(in srgb, var(--community-primary-dark) 10%, var(--community-primary-light));--color-chart-surface:var(--color-surface-card);--color-chart-primary:var(--community-primary-dark);--color-chart-secondary:var(--community-primary-light);--color-chart-area-fill:var(--community-primary-light);--color-chart-track:var(--community-border);--color-chart-grid:var(--community-border);--color-chart-axis-label:var(--community-secondary-text);--color-chart-marker-fill:var(--community-surface);--color-chart-marker-stroke:var(--community-primary-dark);--palette-category-blue:#1a73e8;--palette-category-sky:#0089e0;--palette-category-cyan:#0097a7;--palette-category-teal:#00897b;--palette-category-green:#1fa14a;--palette-category-lime:#63951a;--palette-category-yellow:#b27f00;--palette-category-amber:#ce6e00;--palette-category-orange:#e8620e;--palette-category-coral:#e5533d;--palette-category-red:#d93025;--palette-category-pink:#e91e63;--palette-category-magenta:#b12fc6;--palette-category-purple:#7a3fe8;--palette-category-indigo:#3f51d6;--palette-category-neutral:var(--community-secondary-text);--color-category-accent:var(--palette-category-neutral);--color-category-ink:var(--community-primary-dark);--color-category-social-mixer:var(--palette-category-pink);--color-category-networking:var(--palette-category-indigo);--color-category-workshop:var(--palette-category-teal);--color-category-panel-talk:var(--palette-category-amber);--color-category-info-session:var(--palette-category-blue);--color-category-competition:var(--palette-category-red);--color-category-hackathon:var(--palette-category-purple);--color-category-performance-showcase:var(--palette-category-magenta);--color-category-games-recreation:var(--palette-category-cyan);--color-category-sports-fitness:var(--palette-category-green);--color-category-volunteer-community:var(--palette-category-lime);--color-category-fundraiser:var(--palette-category-orange);--color-category-general-meeting:var(--palette-category-sky);--color-category-training-practice:var(--palette-category-coral);--color-category-other:var(--palette-category-neutral);--color-category-club-academic-education:var(--palette-category-blue);--color-category-club-business-entrepreneurship:var(--palette-category-amber);--color-category-club-technology-computing:var(--palette-category-purple);--color-category-club-engineering:var(--palette-category-sky);--color-category-club-science-research:var(--palette-category-teal);--color-category-club-health-wellness:var(--palette-category-green);--color-category-club-professional-career:var(--palette-category-indigo);--color-category-club-arts-creative:var(--palette-category-magenta);--color-category-club-media-performance:var(--palette-category-pink);--color-category-club-sports-recreation:var(--palette-category-lime);--color-category-club-gaming-hobbies:var(--palette-category-cyan);--color-category-club-culture-identity:var(--palette-category-orange);--color-category-club-community-service:var(--palette-category-coral);--color-category-club-advocacy-causes:var(--palette-category-red);--color-category-club-faith-spirituality:var(--palette-category-yellow);--color-category-club-social-general-interest:var(--palette-category-neutral);--color-avatar-surface:var(--community-primary-dark);--color-avatar-text:var(--community-surface);--color-atmosphere-primary-default:var(--community-primary-light);--color-atmosphere-secondary-default:var(--community-border);--color-landing-gradient-light:var(--community-primary-light);--color-landing-gradient-dark:var(--community-primary-dark);--color-auth-canvas:var(--color-background-page);--color-auth-corner-start:var(--community-primary-light);--color-auth-corner-end:var(--community-border);--color-auth-dot-strong:var(--community-primary-dark);--color-auth-dot-medium:var(--community-secondary-text);--color-auth-dot-soft:var(--community-primary-light);--color-flow-page:var(--color-background-page);--color-flow-surface:var(--color-surface-card);--gradient-ai-identity:linear-gradient(90deg, var(--community-primary-dark) 0%, var(--community-primary-light) 50%, var(--community-primary-dark) 100%);--gradient-ai-identity-stop-1:var(--community-primary-dark);--gradient-ai-identity-stop-2:var(--community-primary-light);--gradient-ai-identity-stop-3:var(--community-primary-dark);--gradient-emphasis-text:linear-gradient(90deg, var(--community-primary-dark) 0%, var(--community-secondary-text) 50%, var(--community-primary-dark) 100%);--color-reaction-active:var(--community-primary-dark);--color-landing-paper:#faf6ec;--color-landing-paper-tint:#f3eee2;--color-landing-card:#fffdf8;--color-landing-navy:#0b2340;--color-landing-ink:#0f2a4a;--color-landing-ink-muted:#5d6b7b;--color-landing-ink-on-navy:var(--color-landing-paper);--color-landing-ink-muted-on-navy:#b9c3d1;--color-landing-border:#e6e0d2;--color-landing-border-strong:#c9c2b2;--color-landing-sage:#d8e3d6;--color-landing-sage-soft:#dce6da;--color-landing-teal:#7fa7a9;--color-landing-track:#e3dccb;--color-landing-avatar-sand:#c9b79c;--color-landing-avatar-slate:#8fa9b8;--color-landing-cover-start:#28486e;--color-landing-shadow:color-mix(in srgb, var(--color-landing-ink) 10%, transparent);--color-landing-tray-border:#ddd6c4;--color-landing-tray-border-on-navy:color-mix(in srgb, var(--color-landing-paper) 26%, transparent);--color-landing-rule-on-navy:color-mix(in srgb, var(--color-landing-paper) 14%, transparent);--color-landing-teal-ring:color-mix(in srgb, var(--color-landing-teal) 50%, transparent);--color-landing-dot-green:#9dbfa6;--color-landing-white:#fff;--color-landing-border-soft:#eee9dd;--color-landing-kind-opening:#e3e6ec;--color-landing-kind-post:#efe6d2;--color-landing-slate-fill:#5d7a8c;--color-landing-link-hover:#3d6b6e;--color-landing-shadow-8:color-mix(in srgb, var(--color-landing-ink) 8%, transparent);--color-landing-shadow-6:color-mix(in srgb, var(--color-landing-ink) 6%, transparent);--color-landing-shadow-15:color-mix(in srgb, var(--color-landing-ink) 15%, transparent);--color-landing-shadow-14:color-mix(in srgb, var(--color-landing-ink) 14%, transparent);--color-landing-shadow-black-25:#00000040;--color-landing-shadow-black-20:#0003;--color-landing-shadow-black-35:#00000059;--color-landing-shadow-on-navy:color-mix(in srgb, var(--color-landing-navy) 45%, transparent);--color-landing-focus-ring:var(--color-landing-ink);--color-landing-focus-ring-on-navy:var(--color-landing-paper);--glass-control-background:var(--color-surface-card);--glass-control-border:var(--color-border);--glass-control-shadow:none;--glass-control-filter:none}*,:before,:after{--color-category-container:color-mix(in srgb, var(--color-category-accent) 14%, var(--community-surface));--color-category-on-container:color-mix(in oklab, var(--color-category-accent) 68%, var(--community-primary-dark))}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}
@font-face{font-family:Google Sans Flex;font-style:normal;font-display:swap;font-weight:400 700;src:url(../media/google-sans-latin-ext-full-normal.3fpy5lzmh81og.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Google Sans Flex;font-style:normal;font-display:swap;font-weight:400 700;src:url(../media/google-sans-latin-full-normal.2oq42fer3w6ii.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-dashboard-sans:-apple-system, BlinkMacSystemFont, "Google Sans Flex", Arial, sans-serif;--font-dashboard-display:var(--font-dashboard-sans);--font-dashboard-display-weight:var(--fw-700);--font-dashboard-display-tracking:-.025em;--font-dashboard-body:var(--font-dashboard-sans);--font-dashboard-mono:"Google Sans Code", "Google Sans Flex", ui-monospace, monospace;--font-family-display:var(--font-dashboard-display);--font-family-body:var(--font-dashboard-body);--font-family-mono:var(--font-dashboard-mono);--fw-cap:600;--fw-400:400;--fw-450:450;--fw-500:500;--fw-550:550;--fw-600:600;--fw-640:var(--fw-cap);--fw-650:var(--fw-cap);--fw-700:var(--fw-cap);--fw-720:var(--fw-cap);--fw-740:var(--fw-cap);--fw-750:var(--fw-cap);--fw-760:var(--fw-cap);--fw-780:var(--fw-cap);--fw-800:var(--fw-cap);--fw-820:var(--fw-cap);--fw-840:var(--fw-cap);--fw-850:var(--fw-cap);--fw-860:var(--fw-cap);--fw-880:var(--fw-cap);--fw-900:var(--fw-cap);--fw-950:var(--fw-cap);--fw-strong:var(--fw-700);--text-ui-display:1.25rem;--text-ui-page-title:1.25rem;--text-ui-section-title:1.125rem;--text-ui-mobile-page-title:1.25rem;--text-ui-mobile-header-title:1.5rem;--text-ui-mobile-display:1.5125rem;--text-ui-mobile-section-title:1.125rem;--text-ui-mobile-hero:1.25rem;--text-ui-mobile-title-fluid:1.25rem;--text-ui-mobile-section-fluid:1.125rem;--text-ui-mobile-emphasis-fluid:1.125rem;--text-ui-item-title:1.125rem;--text-ui-item-title-compact:1rem;--text-ui-stat:1.125rem;--text-ui-input:.875rem;--text-ui-body:.875rem;--text-ui-body-compact:.75rem;--text-ui-label:.75rem;--text-ui-meta:.625rem;--text-ui-nav:.75rem;--leading-ui-tight:1.15;--leading-ui-title:1.2;--leading-ui-body:1.45;--font-display:var(--text-ui-display);--font-page-title:var(--text-ui-page-title);--font-section-title:var(--text-ui-section-title);--font-card-title:var(--text-ui-item-title);--font-body:var(--text-ui-body);--font-meta:var(--text-ui-meta);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--page-gutter:clamp(1rem, 2.15vw, 2.25rem);--content-max-width:96rem;--wide-content-max-width:132rem;--navbar-height:4.0625rem;--control-height:2.75rem;--control-height-compact:2.5rem;--card-padding-small:.875rem;--card-padding-medium:1.125rem;--card-padding-large:1.5rem;--event-card-small-width:clamp(18rem, 22vw, 22.5rem);--event-card-medium-width:clamp(18.75rem, 23vw, 22.75rem);--carousel-gap:1rem;--section-gap:1.25rem;--hero-height-standard:clamp(16rem, 34svh, 24rem);--hero-height-cinematic:clamp(24rem, 48svh, 42rem);--radius:1.5625rem;--control-radius:1.5625rem;--card-radius:1.5625rem;--panel-radius:1.5625rem;--radius-modal:1.5625rem;--radius-pill:999px;--radius-dashboard-control:1.5625rem;--radius-dashboard-panel:1.5625rem;--radius-dashboard-pill:999px;--flow-radius-control:.875rem;--flow-radius-card:1.25rem;--rule-dashboard:1px;--flow-measure:38rem;--flow-dock-height:5.5rem;--mobile-atmosphere-strength-primary-content:44%;--mobile-atmosphere-strength-secondary-content:34%;--mobile-atmosphere-strength-primary-muted:36%;--mobile-atmosphere-strength-secondary-muted:28%;--mobile-atmosphere-strength-primary-dashboard:72%;--mobile-atmosphere-strength-secondary-dashboard:56%;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.18s;--dur-long:.28s;--dur-route-enter:.28s;--dur-route-exit:.18s;--dur-route-reduced:.12s;--dur-atmosphere-shift:.28s;--dur-popup-enter:.18s;--dur-popup-exit:.12s;--motion-route-distance:.75rem;--motion-route-exit-distance:.375rem;--motion-popup-shift:.5rem;--motion-sheet-shift:1rem;--z-base:1;--z-raised:10;--z-dropdown:100;--z-sticky:200;--z-modal:400;--z-toast:500;--z-tooltip:600;--texture-mobile-film-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='256' viewBox='0 0 256 256'%3E%3Cfilter id='film' x='0' y='0' width='100%25' height='100%25' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.52' numOctaves='4' seed='13' stitchTiles='stitch'/%3E%3CfeColorMatrix values='.68 .18 .04 0 .03 .035 .055 .035 0 0 .04 .18 .7 0 .035 0 0 0 .28 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23film)'/%3E%3C/svg%3E");font-family:var(--font-dashboard-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
*{box-sizing:border-box}html{min-width:320px;color:var(--color-text-primary);background:var(--color-background-page);font-size:87.5%;overflow-x:clip}body{min-width:320px;min-height:100svh;color:var(--color-text-primary);background:var(--color-background-page);font-family:var(--font-dashboard-body);font-weight:var(--fw-400);margin:0;line-height:1.5;overflow-x:clip}h1,h2,h3,h4,h5,h6{min-width:0;font-family:var(--font-dashboard-display);font-style:normal;font-weight:var(--font-dashboard-display-weight);letter-spacing:var(--font-dashboard-display-tracking);overflow-wrap:anywhere}code,kbd,pre,samp{font-family:var(--font-dashboard-mono);font-variant-numeric:tabular-nums}img{display:block}button,input,textarea,select{font:inherit;font-family:var(--font-dashboard-body)}b,strong{font-weight:var(--fw-strong)}a{color:inherit}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:3px}::selection{color:var(--color-selection-text);background:var(--color-selection-background)}@media (max-width:768px){html{font-size:100%}html,body,#root,#root *{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{width:0;height:0;display:none}body::-webkit-scrollbar{width:0;height:0;display:none}#root::-webkit-scrollbar{width:0;height:0;display:none}#root ::-webkit-scrollbar{width:0;height:0;display:none}}:root[data-presentation-demo=true],:root[data-presentation-demo=true] body,:root[data-presentation-demo=true] #root,:root[data-presentation-demo=true] #root *{scrollbar-width:none!important;-ms-overflow-style:none!important}:root[data-presentation-demo=true]::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}:root[data-presentation-demo=true] body::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}:root[data-presentation-demo=true] #root::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}:root[data-presentation-demo=true] #root ::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}:root[data-focus-modality=pointer] :focus-visible{outline:none!important}
.blog-shell{--shell-max:74rem;--shell-gutter:clamp(1.25rem, 4vw, 2.5rem);--rail-gap:clamp(2rem, 5vw, 4.5rem);--measure:40rem;--read-title:clamp(32px, 5vw, 44px);--read-h2:clamp(21px, 2.4vw, 25px);--read-h3:17px;--read-body:17px;--read-lead:19px;--read-small:14px;--read-label:12px;--read-code:14px;--read-leading:1.65;--acc-expand:var(--dur-long);--acc-collapse:var(--dur-short);--acc-ease:var(--ease-out);min-block-size:100svh;color:var(--color-text-primary);background:var(--color-background-page);font-family:var(--font-dashboard-body);flex-direction:column;display:flex}.blog-header{z-index:var(--z-sticky);border-block-end:var(--rule-dashboard) solid var(--color-border);background:var(--color-surface-card);position:sticky;inset-block-start:0}.blog-header__inner{inline-size:min(100%, calc(var(--shell-max) + (2 * var(--shell-gutter))));padding-inline:var(--shell-gutter);justify-content:flex-start;align-items:center;gap:var(--space-3);min-block-size:3.75rem;margin-inline:auto;display:flex}.blog-header__brand{align-items:center;gap:var(--space-2);min-inline-size:0;color:var(--color-text-primary);font-family:var(--font-dashboard-display);font-size:var(--text-ui-item-title);font-weight:var(--fw-800);letter-spacing:var(--font-dashboard-display-tracking);display:inline-flex}.blog-header__brand img{object-fit:contain;block-size:1.75rem;inline-size:1.75rem}.blog-layout{--shell-max:104rem;inline-size:min(100%, calc(var(--shell-max) + (2 * var(--shell-gutter))));padding-inline:var(--shell-gutter);padding-block:var(--space-10) var(--space-12);gap:var(--rail-gap);flex:auto;grid-template-columns:minmax(0,1fr) minmax(0,3fr);align-items:start;margin-inline:auto;display:grid}.blog-layout__rail{min-inline-size:0;position:sticky;inset-block-start:calc(3.75rem + var(--space-6))}.blog-layout__main{min-inline-size:0;container-type:inline-size}.toc__title{margin:0 0 var(--space-4);color:var(--color-text-secondary);font-size:var(--read-label);font-weight:var(--fw-500);letter-spacing:.09em;text-transform:uppercase;line-height:1}.toc__list{margin:0;padding:0;list-style:none}.toc__item{border-block-start:var(--rule-dashboard) solid var(--color-border)}.toc__item:last-child{border-block-end:var(--rule-dashboard) solid var(--color-border)}.toc__row{align-items:center;gap:var(--space-2);display:flex}.toc__link{min-inline-size:0;padding-block:var(--space-3);align-items:baseline;gap:var(--space-3);color:var(--color-text-secondary);transition:color var(--dur-micro) var(--ease-out);flex:auto;text-decoration:none;display:flex}.toc__number{color:var(--color-text-secondary);font-size:var(--read-label);font-variant-numeric:tabular-nums;font-weight:var(--fw-400);transition:color var(--dur-micro) var(--ease-out);flex:none;line-height:1}.toc__label{min-inline-size:0;font-size:var(--read-small);font-weight:var(--fw-500);line-height:var(--leading-ui-tight);overflow-wrap:anywhere;position:relative}.toc__label:after{content:"";block-size:var(--rule-dashboard);transform-origin:0;transition:transform var(--dur-short) var(--ease-out);background:currentColor;position:absolute;inset-block-end:-2px;inset-inline:0;transform:scaleX(0)}.toc__link:hover{color:var(--color-text-primary)}.toc__link:hover .toc__label:after{transform:scaleX(1)}.toc__item[data-current=true] .toc__link,.toc__item[data-current=true] .toc__number{color:var(--color-text-primary)}.toc__item[data-current=true] .toc__label{font-weight:var(--fw-600)}.toc__toggle{border-radius:var(--radius-pill);block-size:1.75rem;inline-size:1.75rem;color:var(--color-text-secondary);cursor:pointer;transition:color var(--dur-micro) var(--ease-out), background-color var(--dur-micro) var(--ease-out);background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.toc__toggle:hover{color:var(--color-text-primary);background:var(--color-surface-highlight)}.toc__toggle:active{background:var(--color-surface-selected)}.toc__plus{fill:none;stroke:currentColor;stroke-width:1.25px;stroke-linecap:round;block-size:1rem;inline-size:1rem;transition:transform var(--dur-long) var(--ease-out);transform:rotate(0)}.toc__item[data-open=true] .toc__plus{transform:rotate(45deg)}.toc__panel{transition:grid-template-rows var(--acc-collapse) var(--acc-ease);grid-template-rows:0fr;display:grid}.toc__item[data-open=true] .toc__panel{transition:grid-template-rows var(--acc-expand) var(--acc-ease);grid-template-rows:1fr}.toc__panel-inner{opacity:0;transition:opacity var(--acc-collapse) var(--acc-ease);overflow:hidden}.toc__item[data-open=true] .toc__panel-inner{opacity:1;transition:opacity var(--acc-expand) var(--acc-ease)}.toc__headings{padding:0 0 var(--space-3) calc(var(--space-3) + 1.5rem);gap:var(--space-2);margin:0;list-style:none;display:grid}.toc__heading-link{color:var(--color-text-secondary);font-size:var(--read-label);font-weight:var(--fw-400);transition:color var(--dur-micro) var(--ease-out);line-height:1.35;text-decoration:none;display:block}.toc__heading-link:hover{color:var(--color-text-primary)}.article{min-inline-size:0;max-inline-size:none}.article__head{border-block-end:var(--rule-dashboard) solid var(--color-border);margin-block-end:var(--space-8);padding-block-end:var(--space-8)}.article__eyebrow{margin:0 0 var(--space-4);color:var(--color-text-secondary);font-size:var(--read-label);font-variant-numeric:tabular-nums;font-weight:var(--fw-500);letter-spacing:.09em;line-height:1}.article__title{font-size:var(--read-title);font-weight:var(--fw-700);letter-spacing:-.03em;overflow-wrap:anywhere;margin:0;line-height:1.05}.article__summary{margin:var(--space-4) 0 0;max-inline-size:34rem;color:var(--color-text-secondary);font-size:var(--read-lead);font-weight:var(--fw-400);line-height:1.45}.article__body>*+*{margin-block-start:var(--space-5)}.article__body>.article__h2{margin-block-start:var(--space-12)}.article__body>.article__h2+*{margin-block-start:var(--space-4)}.article__h2{font-size:var(--read-h2);font-weight:var(--fw-700);letter-spacing:-.02em;margin:0;scroll-margin-block-start:calc(3.75rem + var(--space-6));line-height:1.2}.article__h3{font-size:var(--read-h3);font-weight:var(--fw-600);letter-spacing:-.01em;margin:0;line-height:1.3}.article__body>.article__h3{margin-block-start:var(--space-8)}.article__p{font-size:var(--read-body);font-weight:var(--fw-400);line-height:var(--read-leading);margin:0}.article__list{gap:var(--space-3);font-size:var(--read-body);font-weight:var(--fw-400);line-height:var(--read-leading);margin:0;padding-inline-start:var(--space-5);display:grid}.article__list li::marker{color:var(--color-text-secondary)}.article__list--ordered{font-variant-numeric:tabular-nums}.article__inline-link{color:var(--color-text-primary);text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:var(--rule-dashboard)}.article__figure{margin:0}.article__body>.article__figure{margin-block:var(--space-8)}.article__figure img{border:var(--rule-dashboard) solid var(--color-border);border-radius:var(--flow-radius-card);background:var(--color-surface-card);block-size:auto;inline-size:100%;max-inline-size:100%}.article__figure figcaption{color:var(--color-text-secondary);font-size:var(--read-small);font-weight:var(--fw-400);margin-block-start:var(--space-3);line-height:1.45}.system-map{margin:var(--space-10) 0 var(--space-12);min-inline-size:0;max-inline-size:100%}.system-map__viewport{overscroll-behavior-inline:contain;border:var(--rule-dashboard) solid var(--color-border);border-radius:var(--flow-radius-control);background-color:var(--color-surface-card);background-image:linear-gradient(var(--color-border-subtle) var(--rule-dashboard), transparent var(--rule-dashboard)), linear-gradient(90deg, var(--color-border-subtle) var(--rule-dashboard), transparent var(--rule-dashboard));inline-size:100%;max-inline-size:100%;box-shadow:var(--shadow-raised);background-size:2.75rem 2.75rem;overflow-x:auto}.system-map__svg{block-size:auto;inline-size:100%;min-inline-size:74rem;font-family:var(--font-dashboard-mono);display:block}.system-map__boundary{fill:none;stroke:var(--color-category-competition);stroke-dasharray:5 6;stroke-width:1.4px}.system-map__boundary--runtime{fill:var(--color-background-page);fill-opacity:.72;stroke:var(--color-category-fundraiser)}.system-map__boundary-label,.system-map__node-kind{fill:var(--color-text-secondary);font-size:10px;font-weight:var(--fw-600);letter-spacing:.06em;text-transform:uppercase}.system-map__boundary-label--client{fill:var(--color-category-competition)}.system-map__boundary-label--runtime{fill:var(--color-category-fundraiser)}.system-map__wire{fill:none;stroke:var(--color-category-other);stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.6px}.system-map__wire--emphasis{stroke-width:2.2px}.system-map__wire--dashed{stroke-dasharray:5 5}.system-map__wire-group--primary .system-map__wire{stroke:var(--color-category-sports-fitness)}.system-map__wire-group--operator .system-map__wire{stroke:var(--color-category-hackathon)}.system-map__wire-group--external .system-map__wire{stroke:var(--color-category-competition)}.system-map__arrow--neutral{fill:var(--color-category-other)}.system-map__arrow--primary{fill:var(--color-category-sports-fitness)}.system-map__arrow--operator{fill:var(--color-category-hackathon)}.system-map__arrow--external{fill:var(--color-category-competition)}.system-map__pulse,.system-map__pulse-halo{fill:var(--color-category-other);pointer-events:none}.system-map__wire-group--primary .system-map__pulse,.system-map__wire-group--primary .system-map__pulse-halo{fill:var(--color-category-sports-fitness)}.system-map__wire-group--operator .system-map__pulse,.system-map__wire-group--operator .system-map__pulse-halo{fill:var(--color-category-hackathon)}.system-map__wire-group--external .system-map__pulse,.system-map__wire-group--external .system-map__pulse-halo{fill:var(--color-category-competition)}.system-map__pulse-halo{opacity:.12}.system-map__node{fill:var(--color-category-container);stroke:var(--color-category-accent);stroke-width:1.6px;transition:fill var(--dur-short) var(--ease-out), stroke-width var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);transform-box:fill-box;transform-origin:50%}.system-map__node-link--audience,.system-map__node-link--external{--color-category-accent:var(--color-category-other)}.system-map__node-link--surface{--color-category-accent:var(--color-category-general-meeting)}.system-map__node-link--runtime{--color-category-accent:var(--color-category-sports-fitness)}.system-map__node-link--data{--color-category-accent:var(--color-category-hackathon)}.system-map__node-link--storage{--color-category-accent:var(--color-category-fundraiser)}.system-map__node--data,.system-map__node--storage{stroke-width:1.8px}.system-map__node-link{cursor:pointer;outline:none}.system-map__node-link:hover .system-map__node,.system-map__node-link:focus-visible .system-map__node{stroke-width:2.6px;transform:translateY(-2px)}.system-map__node-link:focus-visible .system-map__node{outline:2px solid var(--color-focus-ring);outline-offset:3px}.system-map__node-label{fill:var(--color-text-primary);font-family:var(--font-dashboard-mono);font-size:14px;font-weight:var(--fw-600);letter-spacing:.015em}.system-map__node-detail{fill:var(--color-text-secondary);font-size:10px;font-weight:var(--fw-400)}.system-map__source rect{fill:var(--color-surface-card);stroke:var(--color-category-accent);stroke-width:1px}.system-map__source text{fill:var(--color-category-on-container);font-size:9px;font-weight:var(--fw-600);letter-spacing:.04em;text-anchor:middle}@media (min-width:1200px){.system-map{inline-size:min(calc(var(--measure) + 36rem), 100cqi);max-inline-size:none}}@media (prefers-reduced-motion:reduce){.system-map__pulse,.system-map__pulse-halo{display:none}.system-map__node{transition:none}}@media (min-width:1200px){.article__figure[data-wide=true]{inline-size:calc(var(--measure) + 8rem);max-inline-size:calc(100vw - (2 * var(--shell-gutter)))}}.article__code{border:var(--rule-dashboard) solid var(--color-border);border-radius:var(--flow-radius-card);background:var(--color-surface-card);overflow:hidden}.article__code-label{padding:var(--space-3) var(--space-4);border-block-end:var(--rule-dashboard) solid var(--color-border);color:var(--color-text-secondary);font-family:var(--font-dashboard-mono);font-size:var(--read-label);font-weight:var(--fw-400);margin:0;line-height:1}.article__code pre{padding:var(--space-4);font-size:var(--read-code);tab-size:2;margin:0;line-height:1.55;overflow-x:auto}.article__callout{padding:var(--space-4) var(--space-5);border:var(--rule-dashboard) solid var(--color-border);border-radius:var(--flow-radius-card);background:var(--color-surface-highlight);color:var(--color-text-on-highlight)}.article__callout-title{margin:0 0 var(--space-2);font-size:var(--read-small);font-weight:var(--fw-600);line-height:1.3}.article__callout-body{font-size:var(--read-small);font-weight:var(--fw-400);margin:0;line-height:1.5}.article__quote{border-inline-start:2px solid var(--color-border-strong);margin:0;padding-inline-start:var(--space-5)}.article__quote p{font-size:var(--read-lead);font-weight:var(--fw-400);margin:0;line-height:1.5}.article__quote cite{color:var(--color-text-secondary);font-size:var(--read-small);margin-block-start:var(--space-3);font-style:normal;display:block}.article__draft{padding:var(--space-4) var(--space-5);border:var(--rule-dashboard) dashed var(--color-border-strong);border-radius:var(--flow-radius-card);background:var(--color-surface-placeholder)}.article__draft-label{margin:0 0 var(--space-2);color:var(--color-text-secondary);font-size:var(--read-label);font-weight:var(--fw-500);letter-spacing:.09em;text-transform:uppercase;line-height:1}.article__draft-note{color:var(--color-text-secondary);font-size:var(--read-small);font-weight:var(--fw-400);margin:0;line-height:1.5}.article__next{border-block-start:var(--rule-dashboard) solid var(--color-border);margin-block-start:var(--space-12);padding-block-start:var(--space-6)}.article__next-link{gap:var(--space-1);color:var(--color-text-primary);text-decoration:none;display:inline-grid}.article__next-label{color:var(--color-text-secondary);font-size:var(--read-label);font-weight:var(--fw-500);letter-spacing:.09em;text-transform:uppercase;line-height:1}.article__next-title{font-size:var(--read-h3);font-weight:var(--fw-600);line-height:1.2;position:relative}.article__next-title:after{content:"";block-size:var(--rule-dashboard);transform-origin:0;transition:transform var(--dur-short) var(--ease-out);background:currentColor;position:absolute;inset-block-end:-3px;inset-inline:0;transform:scaleX(0)}.article__next-link:hover .article__next-title:after{transform:scaleX(1)}@media (max-width:960px){.blog-layout{padding-block:var(--space-6) var(--space-10);gap:var(--space-8);grid-template-columns:minmax(0,1fr)}.blog-layout__rail{padding-block-end:var(--space-2);position:static}.article{max-inline-size:none}}@media (max-width:520px){.blog-shell{--read-title:clamp(28px, 9vw, 34px);--read-lead:17px;--read-body:16px}}@media (prefers-reduced-motion:reduce){.toc__panel,.toc__panel-inner,.toc__plus,.toc__label:after,.article__next-title:after{transition:none!important}}

