@font-face{font-family:Inter;src:url('vendor/brand/fonts/web/Inter-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url('vendor/brand/fonts/web/Inter-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Inter;src:url('vendor/brand/fonts/web/Inter-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('vendor/brand/fonts/web/IBMPlexMono-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
*{box-sizing:border-box}html{font-size:100%}body{overflow-wrap:anywhere;margin:0;background:var(--c-bg);color:var(--c-text);font-family:var(--c-type-body-font-family),sans-serif;font-size:var(--c-type-body-font-size);line-height:var(--c-type-body-line-height)}h1,h2,h3,p,figure{margin:0}a{color:var(--c-link);text-underline-offset:.25em}a:hover{color:var(--c-link-hover)}:focus-visible{outline:var(--c-layout-focus-width) solid var(--c-focus);outline-offset:var(--c-layout-focus-offset)}.review-top{max-width:calc(var(--c-layout-max-content) + 2 * var(--c-layout-gutter));margin:auto;padding:var(--c-space-8) var(--c-layout-gutter);display:flex;justify-content:space-between;align-items:center;gap:var(--c-space-4)}.review-top p{font-size:var(--c-type-control-font-size);color:var(--c-muted)}.label{font-family:var(--c-type-label-font-family),monospace;font-size:var(--c-type-label-font-size);line-height:var(--c-type-label-line-height);letter-spacing:var(--c-type-label-letter-spacing);text-transform:uppercase}.draft{border:1px solid var(--c-border);padding:var(--c-space-2) var(--c-space-4);border-radius:var(--c-layout-radius);white-space:normal}.board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:var(--c-layout-max-content);margin:auto}.theme{background:var(--c-bg);color:var(--c-text);min-width:0;padding:var(--c-space-8)}.modebar{display:flex;justify-content:space-between;gap:var(--c-space-4);padding-bottom:var(--c-space-6);border-bottom:1px solid var(--c-divider);color:var(--c-muted)}.hero{padding:var(--c-space-12) 0}.identity{font-family:var(--c-type-display-font-family),sans-serif;font-size:var(--c-type-display-font-size);font-weight:var(--c-type-display-font-weight);line-height:var(--c-type-display-line-height);letter-spacing:var(--c-type-display-letter-spacing)}.family{color:var(--c-muted);margin-top:var(--c-space-4);font-size:0.875rem}h2{font-size:var(--c-type-display-small-font-size);font-weight:var(--c-type-display-small-font-weight);line-height:var(--c-type-display-small-line-height);margin-top:var(--c-space-12);max-width:17ch}h3{font-size:var(--c-type-card-font-size);font-weight:var(--c-type-card-font-weight);line-height:var(--c-type-card-line-height)}.intro{color:var(--c-muted);margin-top:var(--c-space-6);max-width:40ch}.diagram{background:var(--c-surface);border-radius:var(--c-layout-radius);padding:var(--c-space-6)}.diagram-title{display:flex;justify-content:space-between;gap:var(--c-space-4);color:var(--c-muted);margin-bottom:var(--c-space-6)}svg{display:block;width:100%;height:auto;overflow:visible}.structure{stroke:var(--c-muted);stroke-width:1.5;fill:none}.relationship{stroke:var(--c-action-primary);stroke-width:2;fill:none}.relation-dash{stroke-dasharray:4 6}.node{fill:var(--c-surface);stroke:var(--c-action-primary);stroke-width:2}.plane{fill:var(--c-raised);stroke:var(--c-border);stroke-width:1}figcaption{border-top:1px solid var(--c-divider);padding-top:var(--c-space-4);color:var(--c-muted);font-size:var(--c-type-control-font-size)}.section{margin-top:var(--c-space-12)}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:var(--c-space-4);padding-bottom:var(--c-space-6)}.section-title>.label{color:var(--c-muted)}.palette{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--c-space-4)}.swatch{height:4rem;border-radius:var(--c-layout-radius);border:1px solid var(--c-border);margin-bottom:var(--c-space-2)}.swatch-item p{font-size:var(--c-type-control-font-size)}.swatch-item small{font-family:var(--c-type-label-font-family),monospace;font-size:var(--c-type-label-font-size);color:var(--c-muted)}.surface{background:var(--c-surface);padding:var(--c-space-6);border-radius:var(--c-layout-radius)}.panel-row{display:flex;justify-content:space-between;gap:var(--c-space-4);align-items:center;padding-bottom:var(--c-space-6);border-bottom:1px solid var(--c-divider)}.status{font-size:var(--c-type-label-font-size);font-family:var(--c-type-label-font-family),monospace;color:var(--c-status-fg);background:var(--c-status-bg);border:1px solid var(--c-status-border);padding:.25rem .5rem;border-radius:var(--c-layout-radius)}.relation-row{padding:var(--c-space-4) 0;display:flex;justify-content:space-between;gap:var(--c-space-4);border-bottom:1px solid var(--c-divider);font-size:var(--c-type-control-font-size)}.relation-row span:last-child{color:var(--c-muted)}.actions{display:flex;gap:var(--c-space-4);flex-wrap:wrap;margin-top:var(--c-space-6)}.control{display:inline-flex;align-items:center;justify-content:center;min-height:var(--c-layout-control-min);padding:.5rem 1rem;font:var(--c-type-control-font-weight) var(--c-type-control-font-size)/var(--c-type-control-line-height) var(--c-type-control-font-family),sans-serif;border-radius:var(--c-layout-radius);text-decoration:none;transition:background-color var(--c-motion-duration) var(--c-motion-easing)}.primary{background:var(--c-action-primary);color:var(--c-action-primary-fg);border:1px solid var(--c-action-primary)}.primary:hover{background:var(--c-action-primary-hover);color:var(--c-action-primary-fg)}.secondary{background:var(--c-action-secondary);color:var(--c-action-secondary-fg);border:1px solid var(--c-border)}.secondary:hover{background:var(--c-action-secondary-hover);color:var(--c-action-secondary-fg)}.small-note{color:var(--c-muted);font-size:var(--c-type-control-font-size);margin-top:var(--c-space-4)}.doc{border-top:1px solid var(--c-divider);padding-top:var(--c-space-6)}.doc h3{margin-top:var(--c-space-4);margin-bottom:var(--c-space-4)}.doc p{color:var(--c-muted)}.doc .callout{border-left:2px solid var(--c-action-primary);padding-left:var(--c-space-4);margin-top:var(--c-space-6)}.footer{padding:var(--c-space-12) var(--c-layout-gutter);max-width:var(--c-layout-max-content);margin:auto;color:var(--c-muted);font-size:var(--c-type-control-font-size)}@media(min-width:1500px){.theme{padding:var(--c-space-12)}}@media(max-width:720px){.board{grid-template-columns:1fr}.theme{padding:var(--c-space-8) var(--c-layout-gutter)}.identity{font-size:var(--c-type-display-font-size)}}@media(max-width:380px){.review-top{align-items:flex-start;flex-direction:column}.modebar,.panel-row{flex-wrap:wrap}.palette{grid-template-columns:repeat(2,minmax(0,1fr))}.section-title{align-items:flex-start;flex-direction:column}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media print{.board{display:block}.theme{break-before:page}.review-top,.footer{display:none}.theme{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* Accessibility refinements: content can grow with user text settings. */
.review-top,.modebar,.diagram-title,.panel-row,.relation-row,.section-title{flex-wrap:wrap}
.review-top>*,.modebar>*,.diagram-title>*,.panel-row>*,.relation-row>*,.section-title>*{min-width:0;max-width:100%}
.control{min-width:var(--c-layout-control-min);max-width:100%;text-align:center}
.primary:active{background:var(--c-action-primary-active);color:var(--c-action-primary-fg)}
.secondary:active{background:var(--c-action-secondary-active);color:var(--c-action-secondary-fg)}
.diagram-legend{margin:var(--c-space-4) 0;padding-left:var(--c-space-6);color:var(--c-muted);font-size:var(--c-type-label-font-size);line-height:var(--c-type-label-line-height)}
.diagram path,.diagram circle{vector-effect:non-scaling-stroke}
.footer p,.doc p,.small-note{max-width:var(--c-layout-line)}
.skip-link{position:absolute;top:var(--c-space-4);left:var(--c-space-4);transform:translateY(-200%);padding:var(--c-space-4);background:var(--c-bg);color:var(--c-text);z-index:2}
.skip-link:focus{transform:none}
@media(forced-colors:active){
 .theme,.surface,.diagram{background:Canvas;color:CanvasText}
 .plane{fill:Canvas;stroke:CanvasText}.structure{stroke:CanvasText}.relationship,.node{stroke:LinkText}.node{fill:Canvas}
 .control,.status,.draft{border:1px solid ButtonText}
 .control{background:ButtonFace;color:ButtonText}
 :focus-visible{outline-color:Highlight}
}
