@import url('public-brand.css?v=20260915_1');
/* Shared public-page shell. */
/* The library directory stays in document flow, so open navigation never covers anchors. */
.library-page .library-toc{position:relative;max-width:1440px;margin:0 auto;padding:8px max(24px,calc((100% - 1200px)/2));background:var(--paper)}
.library-page .library-toc>summary{width:160px;min-height:44px;padding:10px 0;font-size:16px;line-height:24px;justify-content:flex-start}
.library-page .library-toc>summary::after{display:none}
.library-page .library-toc[open]>summary{text-decoration:underline;text-underline-offset:5px}
.public-root .motion-control{display:flex;align-items:center;justify-content:center;padding:0}
.public-root .motion-control .material-symbols-outlined{font-size:24px}
.public-root.home-page .public-header .account .btn{color:#fff}
.public-root .reading-theme-toggle{display:block;margin:0 0 24px auto;min-height:44px;padding:8px 20px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--ink);font-size:14px}
.public-root .reading-theme-toggle[aria-pressed=true]{border-color:var(--ink)}
.public-root.article-page[data-theme=dark]{color-scheme:dark}
.library-page .public-footer--full{display:flex;flex-direction:column;justify-content:flex-start;gap:40px;padding:48px max(120px,calc((100% - 1200px)/2))}
.public-footer--full .footer-brand .brand-wordmark{flex-wrap:nowrap;gap:8px;white-space:nowrap}
.public-footer--full .footer-brand .brand-mark{width:32px;height:32px;flex:0 0 32px;object-fit:contain;display:block}
.public-footer--full .footer-brand .brand-name,.public-footer--full .footer-brand .brand-lab{white-space:nowrap}
.public-footer--full .footer-brand p{max-width:none;margin:12px 0 0;line-height:28px}
.library-page .public-footer--full .footer-columns,.library-page .public-footer--full .footer-audio-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.public-footer--full .footer-columns h3{font-size:16px;font-weight:500;line-height:28px;margin:0 0 8px}
.public-footer--full .footer-columns a{display:block;min-height:44px;padding:8px 0;font-size:14px;line-height:24px;text-decoration:none}
.public-footer--full .footer-legal{display:flex;flex-wrap:wrap;gap:0 12px;align-items:center;font-size:12px;line-height:21px}
.public-footer--full .footer-legal p{font-size:12px;max-width:none;margin:0}
.public-footer--full .footer-legal a{min-height:44px;display:inline-flex;align-items:center;text-decoration:none}
.library-page .public-footer--full .footer-audio-links a{font-size:16px;width:auto;min-width:0}
@media(max-width:1100px){.library-page .library-toc{padding-left:48px;padding-right:48px}.library-page .public-footer--full{padding-left:48px;padding-right:48px}}
@media(max-width:768px){.library-page .library-toc{padding-left:24px;padding-right:24px}.library-page .public-footer--full{padding:40px 24px}.library-page .public-footer--full .footer-columns,.library-page .public-footer--full .footer-audio-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}.public-footer--full .footer-brand .brand-wordmark{flex-wrap:wrap;white-space:normal}}
.public-root .material-symbols-outlined{font-family:'Material Symbols Outlined';width:24px;height:24px;display:inline-block;overflow:hidden;white-space:nowrap;line-height:1;font-size:24px;font-weight:400;font-feature-settings:'liga'}
.public-root{--paper:#f5f5f6;--surface:#fff;--ink:#111214;--body:#3a3f47;--line:#dee1e5;--danger:#9f2332;margin:0;background:var(--paper);color:var(--body);font:18px/1.75 NoemaSans,'Noto Sans SC','PingFang SC',sans-serif;overflow-wrap:break-word}
.public-root body.public-shell-body{margin:0}
.public-root *{box-sizing:border-box}
.public-root button,.public-root input{font:inherit}
.public-root button,.public-root a{-webkit-tap-highlight-color:transparent}
.public-root a{color:inherit;text-underline-offset:5px}
.public-root button{cursor:pointer}
.public-root img{max-width:100%;height:auto}
:where(.public-root:not(.home-page)) :where(h1,h2,h3){color:var(--ink);font-weight:400;line-height:1.4;margin:0}
:where(.public-root:not(.home-page)) :where(h1){font-weight:300}
:where(.public-root:not(.home-page)) :where(p){margin:0}
:where(.public-root:not(.home-page)) :where(h2){font-size:36px;letter-spacing:-.03em}
:where(.public-root:not(.home-page)) :where(h3){font-size:24px}
.public-root :focus-visible{outline:2px solid var(--ink);outline-offset:5px;border-radius:3px}
.public-root a,.public-root button{touch-action:manipulation}
.public-root .skip{position:fixed;top:-100px;left:24px;z-index:10000;padding:12px 20px;background:var(--surface)}
.public-root .skip:focus{top:12px}
.public-root [hidden]{display:none!important}
.public-header{height:85px;padding:16px max(24px,calc((100vw - 1248px)/2));display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);background:var(--paper);position:relative;z-index:2}
.public-header .brand{font-size:22px;letter-spacing:-.8px;color:var(--ink);text-decoration:none;white-space:nowrap;display:flex;align-items:center;flex-wrap:nowrap;column-gap:8px;min-height:48px;min-width:0;line-height:1.2}
.public-header nav{display:flex;gap:40px}
.public-header nav a,.account .text-link{font-size:15px;text-decoration:none;display:flex;align-items:center;min-height:48px}
.public-header nav a[aria-current]{font-weight:600;text-decoration:underline;text-decoration-thickness:1px}
.account{display:flex;align-items:center;gap:24px}
.public-header .mobile-menu{display:none}
.public-root .btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 28px;border:1px solid var(--ink);border-radius:99px;background:var(--ink);color:var(--paper);text-decoration:none;font-size:16px;white-space:normal;line-height:1.5}
.public-root .btn.secondary{background:transparent;color:var(--ink)}
.public-root .text-link{display:inline-flex;align-items:center;min-height:44px;padding:6px 0}
.public-root .icon-button{display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--ink);width:44px;height:44px;min-width:44px;padding:0;font-size:24px;line-height:1}
.public-root .eyebrow{font-size:12px;line-height:1.5;font-weight:500;letter-spacing:.06em;color:var(--body)}
.public-hero{position:relative;isolation:isolate;overflow:hidden;padding:64px max(24px,calc((100vw - 1200px)/2));background:var(--paper)}
.hero-content{display:flex;flex-direction:column;align-items:flex-start;gap:30px;position:relative;z-index:1}
.public-hero h1{font-size:96px;line-height:1.16;letter-spacing:-.04em;max-width:1200px}
.public-hero .hero-description{font-size:18px;line-height:1.8;max-width:720px}
.banner-stage{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:#f5f5f6}
.banner-stage canvas{position:absolute;width:100%;height:calc(100vw * .625);top:calc(-100vw * .104167);left:0}
.banner-stage.is-fallback canvas{display:none}
.banner-stage.is-fallback{background:#e8e8e8}
.public-root .motion-control{position:absolute;right:24px;bottom:24px;z-index:2;border:1px solid var(--line);border-radius:50%;background:var(--paper);width:44px;height:44px}
.fallback-guards{position:absolute;inset:0}
.fallback-guards i{position:absolute;background:#f5f5f6;filter:blur(16px)}
.public-root .section{max-width:1440px;margin:0 auto;padding:64px 120px}
.public-root .split{display:grid;grid-template-columns:280px minmax(0,1fr);gap:80px;border-bottom:1px solid var(--line)}
.section-title{display:flex;flex-direction:column;gap:16px}
.section-body{display:flex;flex-direction:column;gap:32px;min-width:0}
.prose-block{display:flex;flex-direction:column;gap:12px}
.tool-rows article{border-top:1px solid var(--line);padding:20px 0}
.tool-rows h3 a{text-decoration:none;display:inline-block;padding:6px 0;min-height:44px}
.tool-rows p{margin-top:12px}
.public-root .faq h2{margin-bottom:32px}
.public-root .faq details{border-top:1px solid var(--line);padding:12px 0}
.public-root summary{cursor:pointer;color:var(--ink);min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;padding:12px 0;font-size:20px}
.public-root summary::after{content:'+';font-size:24px;font-weight:300}
.public-root details[open]>summary::after{content:'−'}
.public-root summary::-webkit-details-marker{display:none}
.public-root .faq details p{padding:10px 0 18px;max-width:880px}
.related h2{margin-bottom:32px}
.related-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;margin-bottom:32px}
.related-columns h3{font-size:18px;margin-bottom:16px}
.row-link{display:block;padding:12px 0;min-height:48px;border-bottom:1px solid var(--line);text-decoration:none}
.public-footer{padding:56px max(24px,calc((100vw - 1200px)/2));border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px 80px;background:var(--paper)}
.public-footer strong{font-size:28px;font-weight:400;color:var(--ink)}
.public-footer p{font-size:16px;max-width:480px;margin-top:8px}
.public-footer nav{display:flex;flex-wrap:wrap;gap:16px 32px;align-content:start}
.public-footer nav>a{font-size:15px;text-decoration:none;min-height:44px;display:flex;align-items:center}
.public-footer .copyright{grid-column:1/-1;font-size:12px}
.public-footer .copyright a{display:inline-block;min-height:44px;padding:12px 0;text-decoration:none}
.series-list{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px 80px;margin-top:36px}
.series-list article:first-child{grid-column:1/-1;border-bottom:1px solid var(--line);padding-bottom:32px}
.series-list article:first-child h3{font-size:36px;max-width:720px}
.series-list article h3 a{display:inline-block;min-height:44px;text-decoration:none}
.series-list p{font-size:17px;max-width:720px;margin-top:12px}
.category-links{display:flex;flex-wrap:wrap;gap:12px 32px;margin-top:24px}
.category-links a{min-height:48px;padding:8px 0;text-decoration:none;border-bottom:1px solid var(--line)}
.article-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 80px;margin-top:32px}
.article-row{border-top:1px solid var(--line);padding:24px 0;display:flex;flex-direction:column;gap:16px;min-width:0}
.article-row h3{font-size:26px;line-height:1.5}
.article-row a{text-decoration:none;display:block;min-height:44px}
.article-row>p:last-child{font-size:17px}
.pagination{display:flex;flex-wrap:wrap;gap:8px;margin-top:40px;align-items:center}
.pager{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px 14px;text-decoration:none;border-radius:99px;font-size:15px}
.pager[aria-current]{background:var(--ink);color:var(--paper)}
.pager[aria-disabled]{opacity:.45}
.reading-head h1{font-size:44px;line-height:1.45;max-width:950px;margin:24px 0;letter-spacing:-.03em;text-wrap:balance}
.reading-head>p{max-width:850px}
.reading-head .eyebrow{margin-top:24px}
.reading-meta{display:flex;align-items:center;justify-content:space-between;margin-top:32px;font-size:12px}
.reading-layout{display:grid;grid-template-columns:344px minmax(0,760px);gap:96px;align-items:start}
.reading-toc{position:sticky;top:24px;min-width:0;max-height:85vh;overflow:auto}
.reading-toc summary{font-size:16px}
.reading-toc nav a{display:block;padding:8px 0;font-size:14px;text-decoration:none;min-height:44px}
.reading-toc nav a[aria-current]{font-weight:600}
.article-prose{min-width:0;font-size:18px;line-height:1.85}
.article-prose h2{font-size:28px;line-height:1.5;margin:44px 0 20px;scroll-margin-top:24px}
.article-prose h3{font-size:22px;margin:32px 0 16px}
.article-prose p,.article-prose ul,.article-prose ol{margin:0 0 22px}
.article-prose li{margin:8px 0}
.horizontal-scroll{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:8px;margin:24px 0}
.horizontal-scroll table{border-collapse:collapse;min-width:720px;font-size:16px}
.horizontal-scroll th,.horizontal-scroll td{border:1px solid var(--line);padding:14px;text-align:left;vertical-align:top}
.horizontal-scroll pre{white-space:pre;margin:0;padding:24px;font:14px/1.7 ui-monospace,monospace}
.article-prose figure{margin:24px 0}
.article-prose figcaption{font-size:14px;padding:12px 0}
.image-error{height:260px;border:1px dashed var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center}
.fixture-block{margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}
.article-ending h2{margin-bottom:32px}
.public-root .closing{display:flex;flex-direction:column;align-items:flex-start}
.public-root .closing>p{margin-top:16px;max-width:720px}
.public-root .closing-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:28px}
.public-root.article-page[data-theme=dark]{--paper:#161616;--surface:#242424;--ink:#fff;--body:#d0d0d0;--line:#424242}
.public-root.article-page[data-theme=dark] .public-header .btn{color:#161616}
.listing{max-width:1200px!important}
.listing .article-row{padding:28px 0}
.public-root dialog{border:1px solid var(--line);border-radius:20px;padding:40px;background:var(--surface);color:var(--body);width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;margin:auto;box-shadow:0 24px 80px #0002}
.public-root dialog::backdrop{background:#1118;backdrop-filter:blur(5px)}
.public-root dialog .close{position:absolute;right:12px;top:12px}
.public-root .menu-dialog{width:min(520px,calc(100vw - 32px));padding-top:64px}
.menu-dialog nav{display:flex;flex-direction:column;gap:12px}
.menu-dialog nav>a{display:block;min-height:48px;padding:8px 0;text-decoration:none}
.public-root .form-stack{display:flex;flex-direction:column;gap:20px}
.form-stack h1,.form-stack h2{font-size:32px;line-height:1.4}
.form-stack .form-description{font-size:16px}
.form-stack label{font-size:14px;color:var(--ink);display:flex;flex-direction:column;gap:8px}
.form-stack input{height:48px;background:var(--surface);border:1px solid #a0a3a8;border-radius:8px;padding:10px 14px;color:var(--ink);min-width:0;width:100%;font-size:16px}
.form-stack .check-label{flex-direction:row;align-items:center;min-height:44px}
.form-stack input[type=checkbox]{width:20px;height:20px}
.form-stack .field-error{font-size:14px;line-height:1.5;color:var(--ink)}
.form-stack input[aria-invalid=true]{border:2px solid var(--ink)}
.form-stack .form-alert{padding:16px;background:var(--paper);border-left:3px solid var(--ink);font-size:14px}
.form-stack .switch{background:transparent;border:0;text-decoration:underline;min-height:44px;font-size:14px;color:var(--ink)}
.form-stack .btn{width:100%}
.form-stack .legal{font-size:13px}
.return-shell,.error-shell{min-height:760px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.return-shell>div{width:min(560px,100%);display:flex;flex-direction:column;gap:24px}
.return-shell h1,.error-shell h1{font-size:44px;line-height:1.4;max-width:800px}
.error-shell{gap:28px}
.payment-actions{display:flex;gap:16px;flex-wrap:wrap}
.order-meta{font-size:14px;padding:16px 0;border-top:1px solid var(--line)}
.state-links{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0 48px}
.state-links a{display:flex;min-height:44px;align-items:center;padding:8px 16px;border:1px solid var(--line);border-radius:8px}
.library-toc nav{display:flex;flex-wrap:wrap;gap:4px 24px;max-height:45vh;overflow:auto;padding:8px 0 20px}
.library-toc a{display:flex;align-items:center;min-height:44px;font-size:14px;text-decoration:none}
.library-page .library-intro .public-hero{padding-top:64px;padding-bottom:64px}
.library-page .section-heading{margin-bottom:32px}
.library-page .eyebrow span{margin-right:24px}
.library-page .lead{font-size:20px;max-width:850px}
.library-page .values{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px 80px;margin-top:40px}
.library-page .value{border-top:1px solid var(--line);padding-top:24px}
.library-page .mini-num{font-size:12px}
.library-page .value h3{margin:12px 0}
.library-page .story p{margin-bottom:24px;max-width:860px}
.library-page .flow-list,.library-page .stages,.library-page .modules-grid,.library-page .workflow-stages{display:flex;flex-direction:column;gap:40px}
.library-page .stage{border-top:1px solid var(--line);padding:32px 0}
.library-page .stage-intro{max-width:800px;margin-bottom:24px}
.library-page .stage h3{margin-bottom:12px}
.library-page .stage-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 48px}
.library-page .stage-tool{display:block;border-top:1px solid var(--line);padding:16px 0;text-decoration:none}
.library-page .stage-tool span,.library-page .stage-tool strong{display:block}
.library-page .stage-tool p{font-size:16px}
.library-page .module{margin-top:40px}
.library-page .module-head{margin-bottom:32px}
.library-page .module-head p{max-width:850px;margin-top:20px}
.library-page .module-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 64px}
.library-page .feature{border-top:1px solid var(--line);padding:24px 0}
.library-page .feature h3{margin-bottom:12px}
.library-page .feature p{font-size:16px}
.library-page .tool-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 48px}
.library-page .tool-card{display:block;padding:20px 0;border-top:1px solid var(--line);text-decoration:none}
.library-page .tool-card h3{font-size:22px}
.library-page .tool-card p{font-size:16px}
.library-page .quick-steps{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 48px;margin-top:32px}
.library-page .quick-step{border-top:1px solid var(--line);padding:24px 0}
.library-page .quick-step p{font-size:16px}
.library-page .public-footer{grid-template-columns:minmax(0,1fr)}
.library-page .public-footer h3{font-size:16px}
.library-page .keyword-links{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:12px 24px}
.library-page .keyword-links a{display:inline-block!important}
.library-page .cta{text-align:left}
@media(min-width:1441px){
.public-hero .hero-content{max-width:1200px;margin:auto}
.public-header{padding-left:max(96px,calc((100vw - 1248px)/2));padding-right:max(96px,calc((100vw - 1248px)/2))}
}
@media(max-width:1100px){
.public-root .section{padding:56px 48px}
.public-root .split{grid-template-columns:220px minmax(0,1fr);gap:40px}
.public-header nav{gap:20px}
.account{gap:16px}
.public-header .brand{font-size:20px}
.public-header .btn{padding:10px 20px}
.reading-layout{grid-template-columns:220px minmax(0,1fr);gap:40px}
.public-hero{padding:64px 48px}
.public-footer{padding:48px}
}
@media(max-width:768px){
.public-root{font-size:16px}
.public-header{height:73px;padding:12px 24px}
.public-header nav,.public-header .account{display:none}
.public-header .mobile-menu{display:flex}
.public-header .brand{font-size:20px}
.public-root .section{padding:48px 24px}
.public-root .split{display:flex;flex-direction:column;gap:28px}
.section-body{gap:28px}
:where(.public-root:not(.home-page)) :where(h2){font-size:30px}
:where(.public-root:not(.home-page)) :where(h3){font-size:22px}
.public-hero{padding:48px 24px}
.public-hero h1{font-size:64px;line-height:1.16;letter-spacing:-.045em}
.public-hero .hero-description{font-size:16px}
.hero-content{gap:28px}
.banner-stage canvas{height:calc(100vw * 2.1641);top:calc(-100vw * .076923)}
.public-root .motion-control{right:16px;bottom:16px}
.public-root .faq summary{font-size:17px}
.related-columns{grid-template-columns:minmax(0,1fr);gap:32px}
.public-footer{padding:48px 24px;grid-template-columns:minmax(0,1fr);gap:28px}
.public-footer nav{flex-direction:column;gap:4px}
.public-footer .copyright{grid-column:auto}
.public-footer .copyright a{padding:0;line-height:1.8}
.series-list,.article-grid{grid-template-columns:minmax(0,1fr);gap:28px}
.series-list article:first-child{grid-column:auto}
.series-list article:first-child h3{font-size:30px}
.article-row h3{font-size:22px}
.article-row>p:last-child{font-size:16px}
.article-grid{gap:0}
.category-links{flex-direction:column;gap:4px}
.reading-head h1{font-size:32px;line-height:1.5;letter-spacing:-.025em}
.reading-layout{display:block}
.reading-toc{position:sticky;top:0;z-index:3;background:var(--paper);border-bottom:1px solid var(--line);margin:-32px -24px 32px;padding:0 24px;max-height:none}
.reading-toc details[open] nav{max-height:50vh;overflow:auto}
.reading-toc nav{padding-bottom:20px}
.article-prose{font-size:16px}
.article-prose h2{font-size:24px;scroll-margin-top:80px}
.article-prose h3{font-size:20px}
.public-root dialog{padding:40px 24px 24px;border-radius:16px}
.form-stack h1,.form-stack h2{font-size:28px}
.return-shell,.error-shell{min-height:650px}
.return-shell h1,.error-shell h1{font-size:32px}
.library-page .values,.library-page .stage-tools,.library-page .module-grid,.library-page .tool-grid,.library-page .quick-steps{grid-template-columns:minmax(0,1fr);gap:24px}
.library-page .lead{font-size:18px}
}
.public-root .public-header .mobile-menu{display:none}
.library-page .library-notice{max-width:1200px;margin:0 auto;padding:0 0 32px;font-size:14px}
.library-page .stage-nav{display:flex;flex-wrap:wrap;gap:12px 24px;margin:32px 0}
.library-page .stage-nav a{display:flex;align-items:center;min-height:44px;text-decoration:none}
.library-page .stage-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 48px}
.library-page .stage-heading{display:flex;align-items:baseline;gap:24px;margin-bottom:20px}
.library-page .stage-num,.library-page .stage-index{font-size:12px}
.library-page .map-card{display:block;border-top:1px solid var(--line);padding:18px 0;text-decoration:none}
.library-page .map-card p{font-size:16px;margin-top:12px}
.library-page .steps{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 48px;margin-top:32px}
.library-page .steps>article,.library-page .steps>div{border-top:1px solid var(--line);padding-top:24px}
.library-page .module{display:grid;grid-template-columns:280px minmax(0,1fr);gap:80px;border-top:1px solid var(--line);padding:40px 0}
.library-page .module-list{padding:0 120px;max-width:1440px;margin:auto}
.library-page .module h2{font-size:32px}
.library-page .module-summary{display:flex;flex-direction:column;gap:20px}
.library-page .detail-card{border-top:1px solid var(--line);padding:24px 0}
.library-page .detail-card h3{margin-bottom:12px}
.library-page .detail-card p{font-size:16px}
.library-page .feature-list{display:flex;flex-direction:column;gap:24px}
.library-page .closing{max-width:1440px;padding:64px 120px;margin:auto}
.library-page .button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 24px;border:1px solid var(--ink);border-radius:99px;text-decoration:none;font-size:16px}
.library-page .button.primary{background:var(--ink);color:var(--paper)}
@media(max-width:1100px){
.library-page .module-list{padding:0 48px}
.library-page .module{grid-template-columns:220px minmax(0,1fr);gap:40px}
.library-page .library-notice{padding:0 48px 32px}
}
@media(max-width:768px){
.public-root .public-header .mobile-menu{display:flex}
.library-page .module-list{padding:0 24px}
.library-page .stage-grid,.library-page .steps,.library-page .module{grid-template-columns:minmax(0,1fr);gap:24px}
.library-page .closing{padding:48px 24px}
.library-page .library-notice{padding:0 24px 24px}
.library-page .stage-heading{align-items:flex-start}
}
.library-page .map-card{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:16px;padding:16px 0}
.library-page .map-card h4{margin:0;font-size:20px;line-height:1.4;font-weight:400;color:var(--ink)}
.library-page .map-card p{margin-top:8px}
.library-page .map-card>a{display:flex;align-items:center;justify-content:center;align-self:center;min-height:44px;font-size:14px}
.library-page .stage-heading{display:block}
.library-page .stage-index{float:left;margin-right:20px;line-height:36px}
.library-page .stage-grid{gap:8px 48px}
.library-page .steps{list-style:none;padding-left:0}
.library-page .steps h3{font-size:22px;margin:8px 0}
.library-page .steps p{font-size:16px}
.library-page .module .section-heading{margin-bottom:0}
.library-page .detail-card{padding:16px 0}
.library-page .feature-list{gap:8px}
@media(min-width:769px){
.library-page .section{padding-top:48px;padding-bottom:48px}
.library-page .stage{padding:24px 0}
.library-page .module.section{padding:24px 0}
.library-page .faq details p{padding-bottom:8px}
.library-page .steps{gap:16px 48px}
}
@media(min-width:769px){
.library-page .section{padding-top:40px;padding-bottom:40px}
.library-page .module.section{padding-top:16px;padding-bottom:16px}
}
.related-item{margin-bottom:20px}
.related-item p{font-size:16px;line-height:1.75;margin-top:8px}
@media(prefers-reduced-motion:reduce){
.public-root *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
.public-root .public-header a.brand-wordmark,.public-root .public-footer a.brand-wordmark{font-family:var(--brand-family);font-weight:var(--brand-weight);font-size:22px;line-height:1.3;letter-spacing:-.03em;white-space:nowrap;text-transform:none;font-synthesis:none;display:inline-flex;align-items:center;flex-wrap:nowrap;column-gap:8px;min-height:44px;min-width:44px;text-decoration:none}
.public-root .public-header a.brand-wordmark span,.public-root .public-footer a.brand-wordmark span{font-family:var(--brand-family);font-weight:var(--brand-weight);letter-spacing:-.03em}
.public-root .public-header .brand-mark,.public-root .public-footer--full .brand-mark{width:32px;height:32px;flex:0 0 32px;object-fit:contain;display:block}
.public-root .public-header .brand-name,.public-root .public-header .brand-lab,.public-root .public-footer--full .brand-name,.public-root .public-footer--full .brand-lab{white-space:nowrap}
@media(max-width:768px){
.public-root .public-footer--full a.brand-wordmark{flex-wrap:wrap;white-space:normal}
}
@media(max-width:1099px){
.public-root .public-header .brand-lab{display:none}
}
@media(max-width:480px){
.public-root .public-header .brand-name,.public-root .public-header .brand-lab{display:none}
}
.public-root .eyebrow{text-transform:none}
.library-page .library-intro .public-hero{padding:64px 120px;background:var(--paper)}
.library-page .library-notice{padding:0;margin:24px 0 0;max-width:850px;font-size:14px;line-height:1.8}
.library-page .map-card{grid-template-columns:minmax(0,1fr);gap:8px}
.library-page .map-card>a{justify-content:flex-start;justify-self:start;min-height:44px;padding:4px 0;font-size:14px;white-space:normal}
.library-page .stage-index{float:none;display:block;margin:0 0 12px;line-height:1.5}
.library-page .stage-grid{column-gap:48px;row-gap:8px}
.library-page .stage-heading p{max-width:800px}
.library-page .stage-nav a{gap:10px}
.library-page .stage-nav small{margin-left:4px}
.library-page .button{margin-top:20px}
.library-page .closing .library-notice{margin-top:20px}
.article-breadcrumb{display:flex;flex-wrap:wrap;gap:8px 12px;font-size:13px;margin-bottom:36px;line-height:1.8}
.article-breadcrumb>*+*::before{content:'/';margin-right:12px;color:var(--muted)}
.article-breadcrumb span{overflow-wrap:anywhere;color:var(--muted)}
.reading-meta>div{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center}
.reading-meta a{min-height:44px;display:inline-flex;align-items:center}
.article-series{border-top:1px solid var(--line);margin-top:24px;padding-top:12px}
.article-series summary{font-size:14px;line-height:1.6;min-height:52px}
.article-series nav{max-height:40vh;overflow:auto}
.article-series nav a[aria-current]{font-weight:600;color:var(--ink);border-left:2px solid var(--ink);padding-left:12px}
.article-practice{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.article-practice h2{margin-bottom:24px}
.article-practice>p{max-width:760px}
.practice-actions{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;margin-top:28px}
.article-prev-next{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 64px;margin-bottom:48px}
.article-prev-next:empty{display:none}
.article-related{border-bottom:1px solid var(--line);padding:12px 0 28px}
.article-related .row-link{border:0;margin:0;padding-bottom:12px}
.article-related p{font-size:16px;max-width:900px}
@media(max-width:1100px){
.library-page .library-intro .public-hero{padding-left:48px;padding-right:48px}
}
@media(max-width:768px){
.library-page .library-intro .public-hero{padding:48px 24px}
.library-page .stage-grid{row-gap:0}
.library-page .stage-nav{gap:4px 20px}
.library-page .map-card>a{font-size:14px}
.article-prev-next{grid-template-columns:minmax(0,1fr);gap:12px}
.article-breadcrumb{margin-bottom:24px}
.article-practice .practice-actions{align-items:flex-start;flex-direction:column}
.reading-toc:has(.article-series){position:relative;top:auto}
.article-related p{font-size:16px}
}
@media(min-width:1101px){
.library-page .stage{display:grid;grid-template-columns:280px minmax(0,1fr);gap:64px}
.library-page .stage-heading{margin-bottom:0}
.library-page .map-card{grid-template-columns:minmax(0,1fr) 64px;column-gap:16px}
.library-page .map-card>a{justify-self:stretch;justify-content:flex-end}
.library-page .stage-grid{column-gap:32px}
}
@media(min-width:769px) and (max-width:1279px){
.public-root.article-page .section{padding-left:48px;padding-right:48px}
.article-page .reading-layout{grid-template-columns:220px minmax(0,760px);gap:40px}
}
.library-page .stage-disclosure{border-top:1px solid var(--line);scroll-margin-top:84px}
.library-page .stage-summary{position:relative;display:block;list-style:none;padding:28px 64px 28px 0;min-height:112px;cursor:pointer}
.library-page .stage-summary::-webkit-details-marker{display:none}
.library-page .stage-summary::after{content:'+';position:absolute;right:8px;top:34px;font:300 26px/1 sans-serif;width:32px;text-align:center}
.library-page .stage-disclosure[open]>.stage-summary::after{content:'−'}
.library-page .stage-summary .stage-heading{display:grid;grid-template-columns:56px minmax(0,1fr);gap:24px;margin:0}
.library-page .stage-summary .stage-index{margin:6px 0 0}
.library-page .stage-summary .stage-heading>div{display:grid;grid-template-columns:240px minmax(0,1fr);column-gap:48px;row-gap:8px}
.library-page .stage-summary small{grid-column:1;font-size:12px;letter-spacing:.06em;color:var(--body)}
.library-page .stage-summary h3{grid-column:1;font-size:30px;margin:0;line-height:1.4}
.library-page .stage-summary p{grid-column:2;grid-row:1/3;align-self:center;font-size:17px;max-width:640px}
.library-page .stage-details{padding:0 0 36px 80px}
.library-page .stage-details .module{padding:32px 0 0;margin:24px 0 0;grid-template-columns:240px minmax(0,1fr);gap:48px}
.library-page .stage-details .module h2{font-size:28px}
.library-page .stage-details .map-card{grid-template-columns:minmax(0,1fr) 64px}
.library-page [id^="source-"]{scroll-margin-top:208px}
.library-page .stage-details [id]{scroll-margin-top:208px}
.library-page .stage-summary:focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-radius:4px}
@media(max-width:1100px){
.library-page .stage-summary .stage-heading>div{grid-template-columns:200px minmax(0,1fr);gap:12px 24px}
.library-page .stage-details .module{grid-template-columns:200px minmax(0,1fr);gap:32px}
}
@media(max-width:768px){
.library-page [id^="source-"],.library-page .stage-details [id]{scroll-margin-top:80px}
}
@media(max-width:768px){
.library-page .stage-summary{padding:24px 36px 24px 0}
.library-page .stage-summary .stage-heading{grid-template-columns:24px minmax(0,1fr);gap:16px}
.library-page .stage-summary .stage-heading>div{display:flex;flex-direction:column;gap:8px}
.library-page .stage-summary h3{font-size:26px}
.library-page .stage-summary p{font-size:16px}
.library-page .stage-summary::after{right:0;top:28px}
.library-page .stage-details{padding:0 0 32px}
.library-page .stage-details .module{grid-template-columns:minmax(0,1fr);gap:24px}
.library-page .stage-details .stage-grid{grid-template-columns:minmax(0,1fr)}
}
.public-root.article-page .reading-head h1{font-size:48px;line-height:1.35;margin:0 0 24px}
.article-page .article-breadcrumb{margin-bottom:28px}
.article-breadcrumb a{display:inline-flex;align-items:center;min-height:44px}
.reading-toc-trigger{display:none;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:52px;padding:12px 0;border:0;background:transparent;color:var(--ink);text-align:left}
.article-series nav a{display:block;padding:10px 12px;border-bottom:1px solid var(--line);text-decoration:none}
.public-root .article-toc-dialog{padding:0;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px)}
.article-toc-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;position:sticky;top:0;padding:20px 24px 12px;background:var(--surface);border-bottom:1px solid var(--line);z-index:1}
.public-root .article-toc-heading h2{font-size:24px;line-height:1.4}
.article-toc-content{padding:12px 24px 24px}
.article-toc-content a{display:block;min-height:44px;padding:12px 0;text-decoration:none;font-size:16px;line-height:1.6;color:var(--ink);border-bottom:1px solid var(--line)}
.article-prose h3{scroll-margin-top:24px}
@media(max-width:768px){
.public-root.article-page .reading-head h1{font-size:32px;line-height:1.5}
.article-prose h3{scroll-margin-top:80px}
.article-page .reading-toc:has(.article-series){position:relative}
.article-page .article-breadcrumb{margin-bottom:24px}
}
@media(max-width:768px){
.article-page .reading-layout>aside .reading-toc{display:none}
.article-page .reading-toc-trigger{display:flex}
.article-page .article-series{margin:0 0 20px}
.article-page .article-series nav{max-height:40vh;overflow:auto}
}
.public-footer--compact .footer-main{display:contents}
.public-footer--compact .footer-actions{display:flex;flex-wrap:wrap;gap:12px;align-self:start}
.public-footer--compact .footer-actions .btn{min-width:160px;min-height:44px}
.public-footer--compact .footer-legal{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:0 4px;font-size:12px}
.public-footer--compact .footer-legal .copyright{font-size:12px;max-width:none}
.public-footer--compact .footer-icp{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
@media(max-width:768px){
.public-footer.public-footer--compact{border:0;padding:32px 24px calc(24px + env(safe-area-inset-bottom,0px));gap:20px;grid-template-columns:minmax(0,1fr)}
.public-footer--compact::before{content:'';display:block;height:1px;background:var(--line)}
.public-footer--compact .footer-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.public-footer--compact .footer-brand .brand-wordmark{color:var(--ink);height:44px}
.public-footer--compact .footer-brand p{font-size:16px;line-height:24px;margin:0}
.public-footer--compact nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.public-footer--compact nav>a{min-height:44px;line-height:24px;color:var(--ink)}
.public-footer--compact .footer-actions{display:grid;grid-template-columns:minmax(0,1.95fr) minmax(0,1fr);gap:12px}
.public-footer--compact .footer-actions .btn{height:48px;padding:10px 16px;min-width:0}
.public-footer--compact .footer-actions .secondary{border-color:var(--line)}
.public-footer--compact .footer-legal{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;line-height:20px}
.public-footer--compact .footer-legal .copyright{line-height:20px;margin:0}
.public-footer--compact .footer-rights{display:block}
.public-footer--compact .footer-icp{min-height:44px;line-height:20px}
}
.public-root .reading-breadcrumb{width:min(1200px,calc(100% - 48px));margin:32px auto 0;display:flex;flex-wrap:wrap;gap:10px;font-size:14px}
.reading-main>.article-breadcrumb,.listing>.article-breadcrumb{width:auto;max-width:none;margin:0 0 24px}
.public-root .reading-layout{width:min(1200px,calc(100% - 48px));margin:48px auto 96px}
.public-root .reading-main,.public-root .reading-layout aside{min-width:0}
.public-root .reading-header h1{font-size:clamp(34px,5vw,56px);line-height:1.3;letter-spacing:-.04em}
.public-root .reading-header .lead{margin-top:24px;font-size:20px;line-height:1.7}
.public-root .reading-meta{margin:20px 0 48px;font-size:14px}
.public-root .reading-series{display:grid;gap:10px;margin-top:32px}
.public-root .reading-series h2{font-size:16px}
.public-root .reading-series a{font-size:14px;line-height:1.5;min-height:44px}
.public-root .reading-prev-next{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:48px 0}
.public-root .reading-prev-next a{display:grid;gap:10px;padding:20px;border-top:1px solid var(--line)}
.public-root .article-prose .horizontal-scroll{overflow-x:auto;max-width:100%;margin:24px 0;scrollbar-gutter:stable}
.public-root .article-prose table{min-width:520px;border-collapse:collapse}
.public-root .article-prose th,.public-root .article-prose td{border:1px solid var(--line);padding:10px;text-align:left}
.public-root .article-prose pre{min-width:max-content}
@media(max-width:900px){
.public-root .reading-layout{grid-template-columns:minmax(0,1fr);gap:36px}
.public-root .reading-toc{position:static;max-height:none}
.public-root .reading-prev-next{grid-template-columns:minmax(0,1fr)}
}
.library-page .library-intro .public-hero{position:relative;isolation:isolate;background:radial-gradient(ellipse 60% 80% at 76% 45%,#8a8f96 0%,#dee1e5 52%,#f5f5f6 100%)}
.library-page .library-intro .public-hero::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('/static/images/public/grain.svg') repeat;opacity:.16}
.library-page .library-intro .hero-content{position:relative;z-index:1}
.mobile-only-break{display:none}
@media(max-width:600px){
.mobile-only-break{display:block}
}
.public-footer .footer-resources{min-width:0}
.public-footer .footer-resources>summary{display:none}
.public-footer .footer-resources nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.public-footer .footer-resources nav>div{display:grid;align-content:start;gap:8px;min-width:0}
.public-footer .footer-resources nav h3{font-size:15px;margin:0 0 8px}
.public-footer .footer-resources nav a{font-size:14px;min-height:32px;line-height:1.4}
@media(max-width:768px){
.public-footer .footer-resources>summary{display:block;min-height:44px;padding:10px 0;border-top:1px solid var(--line);font-size:14px;cursor:pointer}
.public-footer .footer-resources nav{grid-template-columns:minmax(0,1fr);gap:18px;padding:12px 0}
.public-footer .footer-resources nav>div{gap:4px}
.public-footer .footer-resources nav a{min-height:44px}
}
@media(max-width:768px){
.public-footer.public-footer--compact{padding:24px 24px calc(16px + env(safe-area-inset-bottom,0px));gap:16px}
.public-footer--compact .footer-main{gap:12px}
}
.public-root.article-page[data-theme=dark]{--danger:#ff8792}
.library-page .mini-num{font-size:12px}
.public-root.home-page .public-header{position:absolute;top:0;left:96px;right:96px;width:auto;height:85px;padding:16px 0;background:transparent;border:0}
.public-root.home-page .public-header nav{gap:28px}
.public-root.home-page .public-header .btn{font-size:14px;padding:10px 22px}
.public-root.home-page .public-header .brand{font-size:22px}
.public-root.home-page .public-header a{color:#111214}
.public-root.home-page .motion-control{position:fixed}
.public-root.home-page .hero-copy h1.brand-wordmark{font-family:var(--brand-family);font-weight:var(--brand-weight);letter-spacing:-.03em;font-synthesis:none;text-transform:none}
.public-root.home-page .dark-chapter,.public-root.home-page .dark-chapter :where(h2,h3){color:#fff}
.library-page .stage-disclosure,.library-page #features,.library-page #quick,.library-page #philosophy,.library-page #about,.library-page #faq,.library-page #public-tools{scroll-margin-top:72px}
.library-page .library-intro .banner-stage{z-index:-1;opacity:.72;mix-blend-mode:multiply}
.library-page #public-main{position:relative;isolation:isolate}
.library-page .library-banner-stage{top:0;height:430px;z-index:0;opacity:.72;mix-blend-mode:multiply}
.library-page .library-intro{position:relative;z-index:1}
.library-page .library-intro .public-hero{background:transparent}
.library-page .library-motion-control{position:absolute;z-index:2;right:max(24px,calc((100vw - 1200px)/2));top:120px}
@media(max-width:900px){
.article-page .reading-layout>aside .reading-toc{display:none}
.article-page .reading-toc-trigger{display:flex}
.article-page .article-series{margin:0 0 20px}
.article-page .article-series nav{max-height:40vh;overflow:auto}
}
@media(max-width:700px){
.public-root.home-page .public-header{left:24px;right:24px;height:73px}
.public-root.home-page .public-header .mobile-menu{display:flex}
.public-root.home-page .public-header a.brand-wordmark{font-size:20px}
.public-root.home-page .chapter h2{font-size:41px}
.public-root.home-page .statement h2{font-size:47px}
.public-root.home-page .philosophy-title h2{font-size:42px}
.public-root.home-page .start-grid h2{font-size:37px}
.public-root.home-page .closing-v4 h2{font-size:41px}
.public-root.home-page .cap-copy h3{font-size:23px}
.public-root.home-page .principles h3{font-size:19px}
}
@media(max-width:360px){
.public-root:not(.home-page) .public-hero h1{font-size:48px;text-wrap:balance}
}
