.arch-page{background:var(--home-bg);color:var(--home-ink)}.arch-page *{box-sizing:border-box}.arch-page h1,.arch-page h2,.arch-page h3,.arch-page h4,.arch-page p,.arch-page figure{margin:0}.arch-page a{color:inherit;text-decoration:none}.arch-page a:focus-visible,.arch-page summary:focus-visible,.arch-diagram-scroll:focus-visible{outline:3px solid var(--home-accent);outline-offset:4px}.arch-page main:focus{outline:none}.arch-page code{font-family:Cascadia Code,Consolas,monospace}.arch-page section[id],#architecture-main{scroll-margin-top:calc(var(--site-header-height) + 24px)}.arch-container{width:calc(100% - 112px);max-width:1240px;margin-inline:auto}.arch-skip{z-index:100;background:var(--home-primary);border-radius:8px;padding:10px 16px;position:fixed;top:12px;left:16px;transform:translateY(-150%);color:var(--home-on-primary)!important}.arch-skip:focus{transform:none}.arch-eyebrow{color:var(--home-accent);letter-spacing:1.6px;align-items:center;gap:12px;font-size:10px;font-weight:650;display:flex}.arch-status{background:var(--home-accent);width:6px;height:6px;box-shadow:0 0 0 4px var(--home-soft);border-radius:50%}.arch-hero{grid-template-columns:1.4fr 1fr;align-items:center;gap:70px;padding-block:68px 56px;display:grid}.arch-hero h1{letter-spacing:-2px;margin-top:25px;font-size:clamp(36px,3.7vw,54px);font-weight:700;line-height:1.4}.arch-hero h1 span{color:var(--home-accent)}.arch-lead{max-width:620px;color:var(--home-muted);font-size:15px;line-height:1.95;margin-top:23px!important}.arch-hero-actions{flex-wrap:wrap;gap:12px;margin-top:29px;display:flex}.arch-button{border:1px solid var(--home-line);border-radius:9px;justify-content:center;align-items:center;gap:12px;min-height:45px;padding:11px 19px;font-size:12px;font-weight:600;transition:background-color .2s;display:inline-flex}.arch-button:hover{background:var(--home-soft)}.arch-button-primary{background:var(--home-primary);border-color:var(--home-primary);color:var(--home-on-primary)!important}.arch-button-primary:hover{background:var(--home-primary-hover)}.arch-hero-note{border:1px solid var(--home-line);background:radial-gradient(ellipse at top right, var(--home-glow-center), var(--home-panel) 75%);border-radius:20px;padding:32px;position:relative}.arch-hero-note>svg{color:var(--home-accent);margin-bottom:19px}.arch-detail-label{color:var(--home-accent);letter-spacing:.8px;font-size:10px;font-weight:600}.arch-hero-note h2{letter-spacing:-.5px;margin-top:10px;font-size:24px;font-weight:650}.arch-hero-note>p:not(.arch-detail-label){color:var(--home-muted);margin-top:14px;font-size:12px;line-height:1.9}.arch-stack-tags{flex-wrap:wrap;gap:7px;margin-top:20px;display:flex}.arch-stack-tags span{border:1px solid var(--home-line);background:var(--home-bg);border-radius:6px;padding:5px 10px;font-size:10px}.arch-hero-note>a{color:var(--home-muted);align-items:center;gap:10px;margin-top:25px;font-size:11px;display:flex}.arch-hero-note>a:hover{color:var(--home-accent)}.arch-toc{border:1px solid var(--home-line);border-radius:12px;grid-template-columns:repeat(4,1fr);display:grid;overflow:hidden}.arch-toc a{align-items:center;gap:15px;padding:18px 22px;font-size:12px;transition:background-color .2s;display:flex}.arch-toc a:hover{background:var(--home-panel);color:var(--home-accent)}.arch-toc a span{color:var(--home-accent);font-family:Consolas,monospace;font-size:10px}.arch-toc a:not(:nth-child(4n+1)){border-left:1px solid var(--home-line)}.arch-toc a:nth-child(n+5){border-top:1px solid var(--home-line)}.arch-section{border-bottom:1px solid var(--home-line);padding-block:64px}.arch-section-heading{grid-template-columns:1.15fr 1fr;align-items:end;gap:50px;margin-bottom:30px;display:grid}.arch-section-heading h2{letter-spacing:-1px;margin-top:14px;font-size:clamp(25px,2.5vw,34px);font-weight:650;line-height:1.5}.arch-section-heading>p{color:var(--home-muted);font-size:13px;line-height:1.95}.arch-diagram{background:linear-gradient(90deg, var(--home-bg), transparent 8%, transparent 92%, var(--home-bg)), linear-gradient(180deg, var(--home-bg), var(--home-panel) 12%, var(--home-panel) 70%, var(--home-bg) 95%);overflow:hidden}.arch-diagram-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:21px 25px 0;display:flex}.arch-diagram-title{font-size:14px;font-weight:650}.arch-diagram-hint{color:var(--home-muted);align-items:center;gap:7px;font-size:10px;display:flex}.arch-diagram-legend{flex-wrap:wrap;gap:18px;padding:14px 25px 9px;display:flex}.arch-diagram-legend>span{color:var(--home-muted);align-items:center;gap:7px;font-size:10px;display:flex}.arch-diagram-legend i{background:var(--arch-node-color);border-radius:2px;width:7px;height:7px;display:block}.arch-kind-app{--arch-node-color:var(--home-accent)}.arch-kind-service{--arch-node-color:#777ad0}.arch-kind-storage{--arch-node-color:#b08033}.arch-kind-external{--arch-node-color:#568b72}:root[data-theme=dark] .arch-kind-service{--arch-node-color:#aaa9ed}:root[data-theme=dark] .arch-kind-storage{--arch-node-color:#ddbb76}:root[data-theme=dark] .arch-kind-external{--arch-node-color:#8dc9a6}.arch-diagram-scroll{padding-inline:8px;overflow-x:auto}.arch-diagram-svg{width:100%;min-width:780px;max-width:1150px;margin-inline:auto;display:block}.arch-arrowhead{fill:var(--home-muted)}.arch-edge path{stroke:var(--home-muted);stroke-width:1.2px;opacity:.5}.arch-edge text{fill:var(--home-muted);paint-order:stroke;stroke:var(--home-panel);stroke-width:5px;stroke-linejoin:round;font-size:10px}.arch-edge-active path{stroke:var(--home-accent);opacity:1;stroke-width:1.8px}.arch-node{cursor:pointer;-webkit-user-select:none;user-select:none}.arch-node>rect:first-child{fill:var(--home-bg);stroke:var(--home-line);stroke-width:1.2px;transition:stroke .2s}.arch-node:hover>rect:first-child,.arch-node-selected>rect:first-child{stroke:var(--arch-node-color);stroke-width:2px}.arch-node:focus{outline:none}.arch-node:focus-visible>rect:first-child{stroke:var(--home-accent);stroke-width:3px;stroke-dasharray:4 3}.arch-node-stripe,.arch-node-dot{fill:var(--arch-node-color)}.arch-node-title{fill:var(--home-ink);font-size:14px;font-weight:600}.arch-node-subtitle{fill:var(--home-muted);font-size:10px}.arch-diagram figcaption{color:var(--home-muted);padding:3px 25px 22px;font-size:11px;line-height:1.85}.arch-scroll-hint{display:none}.arch-node-detail{grid-template-columns:1.2fr 1fr;gap:28px;min-height:165px;padding:24px 25px;display:grid}.arch-node-detail h3{margin-top:7px;font-size:16px;font-weight:600}.arch-node-detail p{color:var(--home-muted);margin-top:10px;font-size:12px;line-height:1.9}.arch-node-files{min-width:0}.arch-node-files>span{margin-bottom:12px;display:block}.arch-node-files a,.arch-test-references a,.arch-foundation-files a{color:var(--home-muted);align-items:flex-start;gap:9px;margin-top:7px;font-size:10px;display:flex}.arch-node-files code,.arch-test-references code,.arch-foundation-files code{overflow-wrap:anywhere}.arch-node-files svg,.arch-test-references a svg,.arch-foundation-files a svg{flex-shrink:0;margin-top:2px}.arch-node-files a:hover,.arch-test-references a:hover,.arch-foundation-files a:hover{color:var(--home-accent)}.arch-scope-note{color:var(--home-muted);align-items:flex-start;gap:10px;font-size:11px;line-height:1.85;display:flex;margin-top:18px!important}.arch-scope-note svg{color:var(--home-accent);flex-shrink:0;margin-top:2px}.arch-startup{background:var(--home-panel);border:1px solid var(--home-line);border-radius:14px;grid-template-columns:repeat(4,1fr);gap:22px;padding:28px;display:grid}.arch-startup article{position:relative}.arch-step-number{background:var(--home-soft);width:31px;height:31px;color:var(--home-accent);border-radius:50%;justify-content:center;align-items:center;font-size:10px;font-weight:600;display:inline-flex}.arch-startup h3{margin-top:18px;font-size:14px;font-weight:600}.arch-startup p{color:var(--home-muted);margin-top:10px;font-size:12px;line-height:1.95}.arch-step-arrow{color:var(--home-accent);position:absolute;top:7px;right:3px}.arch-source-line{color:var(--home-muted);flex-wrap:wrap;align-items:center;gap:14px;margin-block:20px 28px;font-size:11px;display:flex}.arch-source-line a{color:var(--home-accent)}.arch-source-line a:hover{text-decoration:underline}.arch-table-wrap{border:1px solid var(--home-line);border-radius:12px;overflow-x:auto}.arch-directory-table{border-collapse:collapse;text-align:left;width:100%;font-size:12px}.arch-directory-table caption{text-align:left;border-bottom:1px solid var(--home-line);padding:17px 22px;font-size:13px;font-weight:600}.arch-directory-table th,.arch-directory-table td{border-bottom:1px solid var(--home-line);padding:16px 22px}.arch-directory-table thead th{background:var(--home-panel);color:var(--home-muted);font-size:11px;font-weight:500}.arch-directory-table tbody th{white-space:nowrap;font-weight:500}.arch-directory-table td:last-child{color:var(--home-muted);line-height:1.9}.arch-directory-table tr:last-child>*{border-bottom:0}.arch-directory-table td a{color:var(--home-accent);white-space:nowrap;align-items:center;gap:10px;display:flex}.arch-logic-grid{grid-template-columns:repeat(3,1fr);gap:27px;margin-top:30px;display:grid}.arch-logic-grid-four{grid-template-columns:repeat(2,1fr)}.arch-point-index{color:var(--home-accent);font-family:Consolas,monospace;font-size:10px}.arch-logic-grid h3{margin-top:10px;font-size:15px;font-weight:600}.arch-logic-grid p{color:var(--home-muted);margin-top:12px;font-size:12px;line-height:1.95}.arch-test-references{border:1px solid var(--home-line);border-radius:10px;margin-top:28px}.arch-test-references summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:10px;padding:15px 18px;font-size:12px;list-style:none;display:flex}.arch-test-references summary::-webkit-details-marker{display:none}.arch-test-references summary>svg:first-child{color:var(--home-accent)}.arch-test-references summary span{color:var(--home-muted);margin-left:auto;font-size:10px}.arch-details-arrow{transform:rotate(90deg)}.arch-test-references[open] .arch-details-arrow{transform:rotate(-90deg)}.arch-test-references>div{border-top:1px solid var(--home-line);grid-template-columns:repeat(2,1fr);gap:6px 25px;padding:14px 18px 20px;display:grid}.arch-foundation-grid{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.arch-foundation-grid article{border:1px solid var(--home-line);border-radius:15px;padding:29px}.arch-foundation-icon{background:var(--home-soft);width:45px;height:45px;color:var(--home-accent);border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.arch-foundation-grid h3{margin-top:20px;font-size:18px;font-weight:600}.arch-foundation-grid p{color:var(--home-muted);margin-top:13px;font-size:12px;line-height:1.95}.arch-foundation-files{margin-top:18px}.arch-foundation-files summary{cursor:pointer;color:var(--home-accent);font-size:11px}.arch-foundation-files a:first-of-type{margin-top:14px}.arch-decisions{grid-template-columns:repeat(2,1fr);gap:28px 42px;display:grid}.arch-decisions article{gap:18px;display:flex}.arch-decisions article>span{color:var(--home-accent);padding-top:3px;font-family:Consolas,monospace;font-size:11px}.arch-decisions h3{font-size:16px;font-weight:600}.arch-decisions p{color:var(--home-muted);margin-top:11px;font-size:12px;line-height:1.95}.arch-closing{border:1px solid var(--home-line);background:var(--home-panel);border-radius:18px;justify-content:space-between;align-items:center;gap:30px;margin-top:46px;padding:36px;display:flex}.arch-closing h2{letter-spacing:-.8px;margin-top:12px;font-size:28px;font-weight:650}.arch-closing p:not(.arch-eyebrow){color:var(--home-muted);margin-top:12px;font-size:12px}.arch-closing a{flex-shrink:0}.arch-back-top{width:fit-content;margin:28px auto 45px;font-size:11px;display:block;color:var(--home-muted)!important}.arch-back-top:hover{color:var(--home-accent)!important}@media (width<=1100px){.arch-container{width:calc(100% - 64px)}.arch-hero{gap:35px}.arch-hero-note{padding:25px}.arch-section-heading{gap:30px}.arch-startup{gap:18px;padding:23px}.arch-toc a{padding-inline:17px}}@media (width<=850px){.arch-container{width:calc(100% - 48px)}.arch-hero{grid-template-columns:1fr;gap:30px;padding-block:42px 35px}.arch-hero h1{font-size:44px}.arch-hero-note{padding:25px}.arch-hero-note>svg{float:right}.arch-toc a{gap:9px;padding:15px 12px}.arch-section{padding-block:43px}.arch-section-heading{grid-template-columns:1fr;gap:16px;margin-bottom:24px}.arch-scroll-hint{color:var(--home-accent);margin-top:7px;display:block}.arch-startup{grid-template-columns:repeat(2,1fr);gap:28px}.arch-node-detail{grid-template-columns:1fr;gap:20px}.arch-logic-grid{gap:23px}.arch-logic-grid:not(.arch-logic-grid-four){grid-template-columns:1fr}.arch-closing{padding:28px}}@media (width<=600px){.arch-container{width:calc(100% - 40px)}.arch-hero h1{letter-spacing:-1.5px;font-size:clamp(29px,8.2vw,42px)}.arch-hero{padding-top:35px}.arch-eyebrow{letter-spacing:1.1px;font-size:9px}.arch-lead{font-size:13px}.arch-hero-note h2{font-size:22px}.arch-toc{grid-template-columns:repeat(2,1fr)}.arch-toc a:not(:nth-child(4n+1)){border-left:0}.arch-toc a:nth-child(2n){border-left:1px solid var(--home-line)}.arch-toc a:nth-child(n+3){border-top:1px solid var(--home-line)}.arch-toc a{gap:12px;padding:16px 13px}.arch-section{padding-block:34px}.arch-section-heading h2{letter-spacing:-.7px;font-size:25px}.arch-section-heading>p{font-size:12px}.arch-diagram-heading{padding:18px 17px 0}.arch-diagram-title{font-size:13px}.arch-diagram-legend{gap:12px;padding-inline:17px}.arch-diagram-legend>span{font-size:9px}.arch-diagram figcaption{padding:5px 17px 18px}.arch-node-detail{padding:19px 17px}.arch-startup{grid-template-columns:1fr;gap:25px;padding:22px}.arch-step-arrow{transform:rotate(90deg)}.arch-startup h3{margin-top:12px}.arch-source-line{gap:9px;font-size:10px}.arch-directory-table{min-width:580px}.arch-directory-table th,.arch-directory-table td{padding:13px 17px}.arch-logic-grid,.arch-foundation-grid,.arch-decisions{grid-template-columns:1fr}.arch-test-references summary{gap:7px;padding-inline:13px}.arch-test-references>div{grid-template-columns:1fr;padding-inline:13px}.arch-foundation-grid article{padding:25px}.arch-closing{margin-top:33px;padding:25px;display:block}.arch-closing a{margin-top:23px}}@media (prefers-reduced-motion:reduce){.arch-page *{transition:none!important}}
