.auth-page{background:#f4f2e9;min-height:720px;padding:84px 24px 110px}.system-page{background:#f4f2e9;place-items:center;min-height:100vh;padding:80px 22px;display:grid}.system-page section{border:1px solid var(--ink);background:#fff;width:min(720px,100%);padding:50px;box-shadow:9px 9px #dce8af}.system-page section>svg{color:#718814;width:36px;height:36px}.system-page h1{letter-spacing:-.06em;margin:16px 0;font-size:clamp(42px,7vw,74px);line-height:.96}.system-page p{color:var(--muted);line-height:1.7}.system-page section>div{align-items:center;gap:24px;margin-top:26px;display:flex}.system-page section>div>a:not(.button){font-size:12px;font-weight:800;text-decoration:underline}.loading-page{background:#f7f6f0;min-height:100vh}.loading-line{background:var(--lime);transform-origin:0;height:5px;animation:1.2s ease-in-out infinite alternate loading-slide}.loading-shell{width:min(1000px,100% - 44px);margin:110px auto}.loading-kicker,.loading-title,.loading-copy,.loading-grid span{background:#e1e4dc;animation:1.2s ease-in-out infinite alternate loading-pulse}.loading-kicker{width:120px;height:12px}.loading-title{width:min(680px,90%);height:72px;margin-top:24px}.loading-copy{width:min(540px,75%);height:22px;margin-top:22px}.loading-grid{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:70px;display:grid}.loading-grid span{height:190px}@keyframes loading-pulse{to{opacity:.45}}@keyframes loading-slide{0%{transform:scaleX(.12)}to{transform:scaleX(.88)}}.auth-shell{border:1px solid var(--ink);background:#fff;border-radius:14px;grid-template-columns:1fr 480px;width:min(1060px,100%);margin:0 auto;display:grid;overflow:hidden;box-shadow:12px 12px #dce8af}.auth-intro{background:var(--navy);color:#fff;padding:62px}.auth-intro h1{letter-spacing:-.06em;max-width:520px;margin:18px 0;font-size:clamp(44px,6vw,72px);line-height:.96}.auth-intro>p{color:#b7c5c0;font-size:16px;line-height:1.7}.auth-intro ul{border-top:1px solid #36524c;gap:12px;margin:34px 0 0;padding:26px 0 0;list-style:none;display:grid}.auth-intro li:before{color:var(--lime);content:"✓";margin-right:9px}.auth-panel{padding:58px 48px}.auth-panel h2{letter-spacing:-.04em;margin:0;font-size:30px}.auth-panel>p{color:var(--muted);margin:10px 0 30px;line-height:1.6}.auth-form{gap:21px;display:grid}.google-auth-button{border-radius:var(--radius-sm);min-height:50px;color:var(--ink);background:#fff;border:1px solid #9ca8a3;justify-content:center;align-items:center;gap:11px;padding:0 16px;font-size:12px;font-weight:800;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.google-auth-button:hover{border-color:var(--ink);transform:translate(-1px,-1px);box-shadow:4px 4px #dce8af}.google-auth-button:focus-visible{outline-offset:2px;outline:3px solid #dce8af}.google-auth-button svg{flex:none;width:20px;height:20px}.auth-divider{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:12px;font-size:9px;font-weight:750;display:flex}.auth-divider:before,.auth-divider:after{background:var(--line);content:"";flex:1;height:1px}.auth-field{gap:7px;display:grid}.auth-field label,.project-notes label{letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:850}.auth-field input{width:100%;min-height:48px;color:var(--ink);background:#fbfcf8;border:1px solid #9ca8a3;border-radius:8px;outline:0;padding:0 14px}.auth-field input:focus{border-color:var(--ink);box-shadow:0 0 0 3px #e6f1b8}.auth-field>p{color:var(--muted);margin:0;font-size:10px;line-height:1.5}.auth-field-errors{color:#a33d2e;margin:0;padding-left:18px;font-size:10px;line-height:1.5}.auth-form-message{color:#7f3023;background:#fff0ed;border-left:4px solid #c6533d;margin:0;padding:12px 14px;font-size:11px;line-height:1.5}.auth-submit{cursor:pointer;border:0;justify-content:center;width:100%}.auth-submit:disabled{cursor:wait;opacity:.65}.auth-switch{text-align:center;color:var(--muted);margin:0;font-size:11px}.auth-switch a{color:#637812;font-weight:800;text-decoration:underline}.dashboard-page{background:#f4f3ec;min-height:100vh}.dashboard-welcome{background:var(--navy);color:#fff;padding:42px 0 66px}.dashboard-welcome-row{justify-content:space-between;align-items:center;gap:50px;display:flex}.dashboard-welcome h1{letter-spacing:-.055em;margin:11px 0 8px;font-size:clamp(36px,5vw,56px);line-height:1}.dashboard-welcome p{color:#aebdb8;margin:0;font-size:14px}.dashboard-profile{background:#19332e;border:1px solid #3c5751;grid-template-columns:44px minmax(0,1fr) 38px;align-items:center;gap:12px;min-width:300px;padding:10px;display:grid}.dashboard-avatar{background:var(--lime);width:44px;height:44px;color:var(--ink);letter-spacing:.04em;place-items:center;font-size:12px;font-weight:900;display:grid}.dashboard-profile strong,.dashboard-profile span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.dashboard-profile strong{font-size:12px}.dashboard-profile div>span{color:#91a39e;margin-top:3px;font-size:9px}.dashboard-profile form{display:contents}.dashboard-profile button{color:#c1ceca;cursor:pointer;background:0 0;border:1px solid #4b655f;place-items:center;width:38px;height:38px;display:grid}.dashboard-profile button:hover{border-color:var(--lime);color:var(--lime)}.dashboard-content{z-index:2;margin-top:-28px;padding-bottom:110px;position:relative}.dashboard-focus-grid{grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);gap:18px;display:grid}.dashboard-resume-card,.dashboard-mastery-card{border:1px solid var(--ink);min-height:292px;padding:32px}.dashboard-resume-card{background:var(--lime);box-shadow:7px 7px 0 var(--ink);flex-direction:column;display:flex}.dashboard-card-label{letter-spacing:.1em;align-items:center;gap:8px;font-size:9px;font-weight:900;display:flex}.dashboard-course-chip{background:#ffffff61;border:1px solid #11231f59;align-items:center;gap:7px;width:fit-content;margin-top:29px;padding:7px 10px;font-size:10px;font-weight:800;display:flex}.dashboard-resume-card h2{letter-spacing:-.05em;max-width:690px;margin:13px 0 8px;font-size:clamp(30px,4vw,46px);line-height:1}.dashboard-resume-card>p{color:#33443f;max-width:650px;margin:0;font-size:12px;line-height:1.6}.dashboard-resume-footer{align-items:center;gap:20px;margin-top:auto;padding-top:25px;display:flex}.dashboard-resume-footer>span{color:#40534c;font-size:9px;font-weight:750}.dashboard-primary-action{background:var(--navy);color:#fff;box-shadow:4px 4px #fff}.dashboard-mastery-card{background:#fff;flex-direction:column;display:flex}.dashboard-mastery-card.is-passed{background:#f3f8df}.dashboard-mastery-score{justify-content:space-between;align-items:end;gap:16px;margin-top:33px;display:flex}.dashboard-mastery-score strong{letter-spacing:-.06em;font-size:54px;line-height:.9}.dashboard-mastery-score span{max-width:100px;color:var(--muted);text-align:right;text-transform:uppercase;font-size:9px;line-height:1.4}.dashboard-mastery-track{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:27px;display:grid}.dashboard-mastery-track span{background:#dfe3dc;height:9px}.dashboard-mastery-track span.complete{background:#728817}.dashboard-mastery-card>p{color:var(--muted);margin:8px 0 24px;font-size:9px}.dashboard-mastery-card>a{color:#637812;justify-content:space-between;align-items:center;margin-top:auto;font-size:11px;font-weight:850;display:flex}.dashboard-stats{border:1px solid var(--ink);background:#fff;grid-template-columns:repeat(4,1fr);margin-top:22px;display:grid}.dashboard-stats article{border-right:1px solid var(--line);align-items:center;gap:14px;min-height:98px;padding:20px;display:flex}.dashboard-stats article:last-child{border-right:0}.dashboard-stats article>svg{color:#657814;background:#eef2dc;width:34px;height:34px;padding:8px}.dashboard-stats strong,.dashboard-stats small{display:block}.dashboard-stats strong{font-size:24px;line-height:1}.dashboard-stats strong span{color:#a0aaa5;font-size:12px}.dashboard-stats small{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-top:5px;font-size:8px;font-weight:750}.dashboard-main-grid{grid-template-columns:minmax(0,1fr) 350px;align-items:start;gap:46px;margin-top:54px;display:grid}.dashboard-section-heading{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:end;gap:20px;min-height:70px;display:flex}.dashboard-section-heading h2{letter-spacing:-.04em;margin:6px 0 14px;font-size:30px}.dashboard-section-heading>a{color:#637812;align-items:center;gap:6px;margin-bottom:16px;font-size:10px;font-weight:850;display:flex}.dashboard-course-list{background:#fff}.dashboard-course-list>a{border:1px solid var(--line);border-top:0;grid-template-columns:50px minmax(0,1fr) 48px 20px;align-items:center;gap:18px;min-height:138px;padding:20px 17px;transition:background .15s,transform .15s;display:grid}.dashboard-course-list>a:hover{background:#fbfdf2;position:relative;transform:translate(3px)}.dashboard-course-icon{border:1px solid var(--ink);background:var(--lime);place-items:center;width:50px;height:50px;font-size:11px;font-weight:900;display:grid}.dashboard-course-icon.tone-1{background:#cee7ef}.dashboard-course-icon.tone-2{background:#f7d7c6}.dashboard-course-icon.tone-3{background:#e0d7f2}.dashboard-course-copy>div{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.dashboard-course-copy strong{font-size:15px}.dashboard-course-copy>div>span{color:var(--muted);text-transform:uppercase;font-size:8px}.dashboard-course-copy p{color:#62706b;text-overflow:ellipsis;white-space:nowrap;max-width:610px;margin:7px 0 13px;font-size:10px;line-height:1.45;overflow:hidden}.dashboard-course-progress{background:#e2e5dd;height:6px;overflow:hidden}.dashboard-course-progress span{background:#728817;height:100%;display:block}.dashboard-course-list>a>b{text-align:right;font-size:11px}.dashboard-course-list>a>svg{width:17px}.dashboard-sidebar{gap:22px;display:grid}.dashboard-plan-card,.dashboard-projects-card{border:1px solid var(--ink);background:#fff}.dashboard-plan-card{padding:25px;box-shadow:6px 6px #dce8af}.dashboard-plan-card ol{margin:23px 0 0;padding:0;list-style:none}.dashboard-plan-card li{border-top:1px solid var(--line);grid-template-columns:32px 1fr;gap:12px;padding:16px 0;display:grid}.dashboard-plan-card li>span{width:29px;height:29px;color:var(--muted);border:1px solid #9ca8a3;place-items:center;font-size:9px;font-weight:850;display:grid}.dashboard-plan-card li.complete>span{border-color:var(--ink);background:var(--lime);color:var(--ink)}.dashboard-plan-card li svg{width:14px}.dashboard-plan-card strong{font-size:11px}.dashboard-plan-card p{color:var(--muted);margin:4px 0 0;font-size:9px;line-height:1.4}.dashboard-projects-heading{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:end;padding:22px;display:flex}.dashboard-projects-heading h2{letter-spacing:-.04em;margin:6px 0 0;font-size:23px}.dashboard-projects-heading>a{border:1px solid var(--ink);place-items:center;width:34px;height:34px;display:grid}.dashboard-projects-heading>a svg{width:15px}.dashboard-project-list>a{border-bottom:1px solid var(--line);grid-template-columns:30px 1fr 18px;align-items:center;gap:12px;min-height:88px;padding:15px 18px;display:grid}.dashboard-project-list>a:last-child{border-bottom:0}.dashboard-project-list>a>svg:first-child{color:#718814}.dashboard-project-list>a>svg:last-child{width:15px}.dashboard-project-list span,.dashboard-project-list strong,.dashboard-project-list small{display:block}.dashboard-project-list span{color:#718814;text-transform:uppercase;font-size:7px;font-weight:900}.dashboard-project-list strong{margin:4px 0;font-size:11px}.dashboard-project-list small{color:var(--muted);font-size:8px}.dashboard-project-empty{padding:27px 22px}.dashboard-project-empty>svg{color:#718814}.dashboard-project-empty p{color:var(--muted);margin:11px 0 15px;font-size:11px}.dashboard-project-empty a{color:#637812;align-items:center;gap:6px;font-size:10px;font-weight:850;display:flex}.workspace-progress-track{background:#e2e5dd;height:8px;overflow:hidden}.workspace-progress-track span{background:#718814;height:100%;transition:width .2s;display:block}.workspace-page{background:#f7f6f0;min-height:100vh;padding-bottom:110px}.workspace-header{background:var(--navy);color:#fff;padding:32px 0 55px}.workspace-header .shell{grid-template-columns:180px 1fr 200px;align-items:start;gap:50px;display:grid}.workspace-header a{color:#c7d3cf;align-items:center;gap:7px;font-size:11px;font-weight:750;display:flex}.workspace-header a:last-child{justify-self:end}.workspace-header span{color:var(--lime);letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:850}.workspace-header h1{letter-spacing:-.055em;margin:10px 0;font-size:clamp(38px,5vw,58px)}.workspace-header p{color:#aebdb8;max-width:680px;margin:0;line-height:1.65}.project-workspace-grid{grid-template-columns:1fr 340px;align-items:start;gap:50px;display:grid}.project-milestones{margin-top:36px}.workspace-progress{border:1px solid var(--ink);background:#fff;padding:24px}.workspace-progress>div:first-child{justify-content:space-between;align-items:center;display:flex}.workspace-progress span{color:#728817;letter-spacing:.08em;font-size:9px;font-weight:850}.workspace-progress strong{font-size:18px}.workspace-progress-track{height:12px;margin:16px 0 10px}.workspace-progress small{color:var(--muted);text-transform:capitalize;font-size:10px}.project-milestones ol{border:1px solid var(--ink);background:#fff;margin:25px 0 0;padding:0;list-style:none}.project-milestones li{border-bottom:1px solid var(--line);grid-template-columns:58px 1fr;gap:22px;padding:28px;display:grid}.project-milestones li:last-child{border-bottom:0}.project-milestones li.complete{background:#f3f8df}.project-milestones li>button{border:1px solid var(--ink);cursor:pointer;background:#fff;grid-template-columns:1fr;place-items:center;width:52px;height:52px;display:grid}.project-milestones li>button svg{width:18px;height:18px}.project-milestones li>button span{color:var(--muted);font-size:8px}.project-milestones li.complete>button{background:var(--lime)}.project-milestones h2{letter-spacing:-.035em;margin:0;font-size:24px}.project-milestones p{color:#58655f;line-height:1.65}.project-milestones aside{background:#f5f6f0;border-left:4px solid #718814;margin-top:18px;padding:14px 16px}.project-milestones aside strong,.project-milestones aside span{display:block}.project-milestones aside strong{color:#728817;letter-spacing:.08em;text-transform:uppercase;font-size:9px}.project-milestones aside span{margin-top:5px;font-size:11px;line-height:1.5}.project-notes{border:1px solid var(--ink);background:#fff;margin-top:36px;padding:26px;position:sticky;top:30px;box-shadow:6px 6px #dce8af}.project-notes h2{margin:12px 0;font-size:24px}.project-notes>p{color:var(--muted);font-size:11px;line-height:1.55}.project-notes label{margin-top:24px;display:block}.project-notes textarea{resize:vertical;width:100%;min-height:260px;font:12px/1.6 var(--font-geist-sans);background:#fbfcf8;border:1px solid #9ca8a3;margin:8px 0 14px;padding:14px}.project-notes .button{cursor:pointer;border:0;justify-content:center;width:100%}.workspace-save-message{color:var(--muted);align-items:center;gap:6px;margin-top:12px;font-size:9px;display:flex}@media (max-width:920px){.auth-shell,.dashboard-main-grid,.project-workspace-grid{grid-template-columns:1fr}.auth-intro{padding:48px}.dashboard-welcome-row{align-items:flex-start}.dashboard-focus-grid{grid-template-columns:minmax(0,1.5fr) minmax(250px,1fr)}.dashboard-sidebar{grid-template-columns:1fr 1fr}.workspace-header .shell{grid-template-columns:1fr;gap:26px}.workspace-header a:last-child{justify-self:start}.project-notes{margin-top:0;position:static}}@media (max-width:620px){.auth-page{padding:24px 14px 70px}.auth-intro,.auth-panel{padding:32px 24px}.dashboard-welcome{padding:34px 0 58px}.dashboard-welcome-row{display:grid}.dashboard-profile{width:100%;min-width:0}.dashboard-focus-grid,.dashboard-sidebar{grid-template-columns:1fr}.dashboard-resume-card,.dashboard-mastery-card{min-height:270px;padding:25px}.dashboard-resume-footer{flex-direction:column;align-items:flex-start}.dashboard-stats{grid-template-columns:1fr 1fr}.dashboard-stats article{min-height:86px;padding:15px}.dashboard-stats article:nth-child(2){border-right:0}.dashboard-stats article:nth-child(-n+2){border-bottom:1px solid var(--line)}.dashboard-main-grid{margin-top:42px}.dashboard-course-list>a{grid-template-columns:42px minmax(0,1fr) 36px;gap:12px}.dashboard-course-icon{width:42px;height:42px}.dashboard-course-list>a>svg{display:none}.dashboard-course-copy>div{flex-direction:column;align-items:flex-start;gap:3px}.dashboard-course-copy p{max-width:45vw}.project-milestones li{grid-template-columns:44px 1fr;gap:14px;padding:22px 16px}.project-milestones li>button{width:42px;height:48px}}
.featured-post-illustrated{background:#f0f4e1;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:36px;min-height:440px;position:relative;overflow:hidden}.featured-post-illustrated>div{z-index:1;position:relative}.featured-post-illustrated h2{font-size:clamp(37px,4.4vw,58px)}.featured-post-illustrated>figure{background:#f7f5ec;align-self:stretch;min-height:310px;margin:-42px -42px -42px 0;position:relative}.featured-post-illustrated>figure img{object-fit:cover;object-position:48% center}.featured-post-illustrated>strong{z-index:1;background:#f0f4e1;padding:3px 7px;position:absolute;top:22px;right:24px}.blog-post>header{padding:34px 0 58px}.blog-post>header .shell{max-width:1180px}.blog-hero-topline{border-bottom:1px solid #38524b;justify-content:space-between;align-items:center;gap:20px;padding-bottom:25px;display:flex}.blog-hero-topline>span{color:#9fb0a8;letter-spacing:.14em;font-size:10px;font-weight:800}.blog-hero-topline>span span{color:var(--lime);margin:0 9px}.blog-hero-grid{grid-template-columns:minmax(0,1.7fr) minmax(270px,.68fr);align-items:end;gap:clamp(36px,7vw,100px);padding-top:44px;display:grid}.blog-post>header .post-meta{color:var(--lime);row-gap:10px;margin:0 0 22px}.blog-post>header h1{text-wrap:balance;max-width:850px;margin:0;font-size:clamp(48px,5.6vw,76px);line-height:1}.blog-hero-summary{border-left:2px solid var(--lime);padding:25px 0 4px 25px}.blog-hero-summary>span{color:var(--lime);letter-spacing:.13em;font-size:10px;font-weight:850}.blog-hero-summary>p{color:#d0dbd5;text-wrap:pretty;margin:15px 0 24px;font-size:17px;line-height:1.6}.blog-hero-summary>div{color:#aebdb8;border-top:1px solid #38524b;flex-wrap:wrap;gap:8px 16px;padding-top:15px;font-size:11px;display:flex}.blog-hero-summary>div strong{color:#f2f7f0}.blog-hero-diagram{color:#10231f;background:#f4f4e9;margin:52px 0 0;padding:22px}.blog-diagram-rail{color:#536b22;letter-spacing:.11em;border-bottom:1px solid #c5cfc0;justify-content:space-between;gap:20px;padding-bottom:16px;font-size:10px;font-weight:850;display:flex}.blog-hero-diagram figcaption{color:#57665d;padding-top:16px;font-size:12px;line-height:1.5}.blog-semantic-map{gap:8px;padding-top:16px;display:grid}.blog-semantic-map>div,.blog-semantic-center>div,.blog-semantic-article{border:1px solid #9aab9d}.blog-semantic-map span{color:#56741a;font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:11px;font-weight:750}.blog-semantic-map strong{letter-spacing:-.02em;font-size:13px}.blog-semantic-map small{color:#6b7d70;margin-left:auto;font-size:10px}.blog-semantic-site,.blog-semantic-nav,.blog-semantic-footer{background:#e9efdf;align-items:center;gap:22px;padding:12px 16px;display:flex}.blog-semantic-nav{background:#f6f8f0}.blog-semantic-footer{background:#eff3e6}.blog-semantic-center{grid-template-columns:minmax(0,3fr) minmax(170px,.78fr);gap:8px;display:grid}.blog-semantic-main{background:#e0eacc;grid-template-columns:82px minmax(0,1fr);align-items:start;gap:8px 18px;padding:14px 16px;display:grid}.blog-semantic-main>strong{align-self:center}.blog-semantic-article{background:#f8f9ef;grid-column:1/-1;grid-template-columns:90px minmax(0,1fr);gap:8px;padding:14px;display:grid}.blog-semantic-article>strong{align-self:center}.blog-semantic-article>div{border-left:3px solid var(--lime);background:#fff;grid-column:1/-1;padding:8px 12px;font-size:12px}.blog-semantic-article>div span{min-width:88px;display:inline-block}.blog-semantic-toc{background:#edf2e5;flex-direction:column;gap:12px;padding:16px;display:flex}.blog-semantic-toc small{margin:auto 0 0}.blog-practice-track{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;padding-top:18px;display:grid}.blog-practice-track>div{background:#fffef7;border:1px solid #95a997;flex-direction:column;min-height:143px;padding:17px;display:flex;position:relative}.blog-practice-track>div:after{content:"→";z-index:1;color:#52701c;background:#f4f4e9;place-items:center;width:20px;height:20px;font-size:17px;font-weight:700;display:grid;position:absolute;top:48%;right:-15px}.blog-practice-track>div:last-child:after{display:none}.blog-practice-track>div:nth-child(3){background:var(--lime);border-color:#172b22}.blog-practice-track>div span{color:#607d23;font-family:var(--font-geist-mono),ui-monospace,monospace;font-size:12px;font-weight:800}.blog-practice-track>div strong{letter-spacing:-.04em;margin-top:auto;font-size:22px}.blog-practice-track>div small{color:#637567;font-size:11px}.blog-practice-output{color:#fff;background:#17372b;flex-wrap:wrap;align-items:center;gap:10px 24px;margin-top:10px;padding:17px 20px;display:flex}.blog-practice-output span:first-child{color:var(--lime);letter-spacing:.09em;font-size:9px;font-weight:850}.blog-practice-output strong{font-size:15px;font-weight:650}.blog-practice-output span:last-child{color:#b7c8ba;margin-left:auto;font-size:11px}.blog-postgres-flow{grid-template-columns:1.35fr repeat(3,1fr);gap:9px;padding-top:18px;display:grid}.blog-postgres-flow>div{background:#fffef7;border:1px solid #9aab9d;flex-direction:column;gap:9px;min-height:150px;padding:17px;display:flex}.blog-postgres-flow>.blog-postgres-query{background:#d9fc51;border-color:#19291f}.blog-postgres-flow small,.blog-postgres-result>span{color:#56741a;font:800 10px var(--font-geist-mono),ui-monospace,monospace;letter-spacing:.08em}.blog-postgres-flow strong{letter-spacing:-.04em;margin-top:auto;font-size:19px}.blog-postgres-flow span{color:#607069;font-size:11px}.blog-postgres-result{color:#fff;background:#17372b;flex-wrap:wrap;align-items:center;gap:9px 20px;margin-top:10px;padding:17px 20px;display:flex}.blog-postgres-result>span{color:#d9fc51}.blog-postgres-result strong{font-size:15px}.blog-postgres-result small{color:#b7c8ba;margin-left:auto;font-size:11px}.blog-updated{color:#aebdb8;margin-top:14px;font-size:12px;display:block}.blog-post .post-layout{grid-template-columns:minmax(0,720px) minmax(190px,240px);gap:clamp(36px,5vw,80px)}.blog-post .post-body{min-width:0}.blog-post .post-body .post-intro{margin-bottom:32px}.blog-post .post-body .post-intro p{color:var(--ink);letter-spacing:-.02em;margin:0;font-size:clamp(20px,2.1vw,24px);line-height:1.62}.blog-post .post-body section{border-top:1px solid var(--line);margin-top:24px;padding-top:36px;scroll-margin-top:108px}.blog-post .post-body section:first-of-type{border-top:0;margin-top:0}.blog-section-heading{grid-template-columns:66px minmax(0,1fr);align-items:start;gap:12px;display:grid}.blog-section-heading>span{color:#82943c;letter-spacing:.08em;white-space:nowrap;padding-top:17px;font-size:10px;font-weight:850}.blog-post .post-body section h2{text-wrap:balance;margin:8px 0 22px;font-size:clamp(30px,3.6vw,42px);line-height:1.15}.blog-post .post-body section h3{letter-spacing:-.035em;margin:32px 0 12px;font-size:24px}.blog-post .post-body section p,.blog-post .post-body section li{color:var(--muted);font-size:17px;line-height:1.82}.blog-post .post-body section p{margin:0 0 22px}.blog-post .post-body section a{color:#526e0d;text-underline-offset:4px;font-weight:750;text-decoration:underline;text-decoration-thickness:1px}.blog-post .post-body section a:hover{color:#314808;text-decoration-thickness:2px}.blog-post .post-body blockquote{border-left:5px solid var(--lime);margin:36px 0;padding:16px 0 16px 27px}.blog-post .post-body blockquote p{color:var(--ink);letter-spacing:-.035em;margin:0;font-size:clamp(22px,2.5vw,28px);font-weight:750;line-height:1.45}.blog-post .post-body .blog-principle-list{border-top:1px solid var(--line);margin:26px 0 0;padding:0;list-style:none}.blog-post .post-body .blog-principle-list li{border-bottom:1px solid var(--line);background:linear-gradient(var(--lime),var(--lime)) 1px 26px/9px 9px no-repeat;padding:12px 0 12px 27px;font-weight:650}.blog-editorial-figure{border:1px solid var(--line);background:var(--surface-soft);margin:40px 0 50px;padding:8px}.blog-editorial-figure img{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto;display:block}.blog-editorial-figure figcaption{color:var(--muted);padding:12px 5px 5px;font-size:12px;line-height:1.5}.blog-post>header .blog-editorial-figure{background:0 0;border:0;margin:54px 0 0;padding:0}.blog-post>header .blog-editorial-figure figcaption{color:#aebdb8;padding:12px 0 0}.blog-buyer-checklist{color:#f6f8f0;box-shadow:6px 6px 0 var(--lime);background:#0f2922;border:1px solid #223c32;grid-template-columns:minmax(175px,.72fr) minmax(0,1.28fr);gap:28px;margin:42px 0 50px;padding:32px;display:grid}.blog-buyer-checklist>div>span{color:var(--lime);letter-spacing:.12em;font-size:10px;font-weight:850}.blog-post .post-body .blog-buyer-checklist h3{margin:12px 0;font-size:clamp(25px,2.6vw,34px);line-height:1.1}.blog-post .post-body .blog-buyer-checklist p{color:#aabbb0;margin:0;font-size:13px;line-height:1.6}.blog-buyer-checklist ol{counter-reset:none;margin:0;padding:0;list-style:none}.blog-post .post-body .blog-buyer-checklist li{color:#e7efe5;border-bottom:1px solid #385248;align-items:baseline;gap:16px;padding:11px 0;font-size:14px;line-height:1.45;display:flex}.blog-buyer-checklist li:first-child{padding-top:0}.blog-buyer-checklist li:last-child{border:0;padding-bottom:0}.blog-buyer-checklist li span{color:var(--lime);font-size:11px;font-weight:850}.blog-code-example{color:#eff5ed;background:#0d241e;border:1px solid #25463b;max-width:100%;margin:30px 0 38px;overflow:hidden}.blog-code-example figcaption{border-bottom:1px solid #2b483e;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:14px 18px;display:flex}.blog-code-example figcaption span{color:var(--lime);letter-spacing:.12em;font-size:9px;font-weight:850}.blog-code-example figcaption strong{font-size:13px;font-weight:700}.blog-code-example figcaption small{color:#a8bcb0;text-transform:uppercase;margin-left:auto;font-size:10px}.blog-code-example pre{tab-size:2;margin:0;padding:22px;font-size:13px;line-height:1.65;overflow-x:auto}.blog-code-example code{font-family:var(--font-geist-mono),ui-monospace,SFMono-Regular,monospace}.blog-code-note{background:#173228;border-top:1px solid #2b483e;padding:12px 18px}.blog-post .post-body .blog-code-note p{color:#c9d8cb;margin:0;font-size:12px;line-height:1.6}.blog-worked-example{color:#10231f;background:#f3f7e8;border:1px solid #10231f;margin:38px 0 46px;box-shadow:6px 6px #10231f}.blog-worked-header{padding:26px 28px 22px}.blog-worked-header>span,.blog-worked-code-grid>div>span{color:#5f781d;letter-spacing:.12em;font-size:10px;font-weight:850}.blog-post .post-body .blog-worked-header h3{margin:9px 0 8px;font-size:clamp(25px,2.7vw,34px)}.blog-post .post-body .blog-worked-header p{color:#10231f;margin:0;font-size:14px;line-height:1.65}.blog-worked-code-grid{border-top:1px solid #c8d0ba;border-bottom:1px solid #c8d0ba;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.blog-worked-code-grid>div{min-width:0;padding:18px}.blog-worked-code-grid>div+div{background:#e6efce;border-left:1px solid #c8d0ba}.blog-worked-code-grid pre{color:#10231f;tab-size:2;margin:12px 0 0;font-size:12px;line-height:1.65;overflow-x:auto}.blog-worked-code-grid code{font-family:var(--font-geist-mono),ui-monospace,SFMono-Regular,monospace}.blog-post .post-body .blog-worked-explanation{color:#10231f;margin:0;padding:17px 28px;font-size:13px;line-height:1.65}.blog-case-file{color:#10231f;background:#eef4df;border:1px solid #9cac92;grid-template-columns:minmax(155px,.7fr) minmax(0,1.3fr);gap:24px;margin:34px 0 40px;padding:27px;display:grid}.blog-case-file>div>span{color:#5b7620;letter-spacing:.11em;font-size:10px;font-weight:850}.blog-post .post-body .blog-case-file h3{margin:10px 0 0;font-size:clamp(23px,2.5vw,31px);line-height:1.14}.blog-case-file dl{border-top:1px solid #aebda8;margin:0}.blog-case-file dl>div{border-bottom:1px solid #aebda8;grid-template-columns:95px minmax(0,1fr);gap:15px;padding:11px 0;display:grid}.blog-case-file dt{color:#557326;letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-weight:850}.blog-case-file dd{color:#10231f;margin:0;font-size:13px;font-weight:650;line-height:1.45}.blog-comparison-scroll{border:1px solid var(--line);max-width:100%;margin:30px 0;overflow-x:auto}.blog-comparison-scroll table{border-collapse:collapse;background:var(--white);width:100%;min-width:620px}.blog-comparison-scroll caption{color:var(--muted);text-align:left;caption-side:top;padding:12px 16px;font-size:12px;font-weight:800}.blog-comparison-scroll th,.blog-comparison-scroll td{border-top:1px solid var(--line);vertical-align:top;text-align:left;padding:15px;font-size:13px;line-height:1.55}.blog-comparison-scroll thead th{background:var(--surface-soft);color:var(--ink);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.blog-comparison-scroll tbody th{color:var(--ink);font-size:14px}.blog-post .post-layout>.blog-reading-nav{border:1px solid var(--line);background:var(--white);box-shadow:5px 5px 0 var(--surface-soft);padding:22px;top:110px}.blog-reading-nav-label{color:#68851a;letter-spacing:.12em;font-size:10px;font-weight:850}.blog-post .post-layout>aside nav{counter-reset:blog-toc;gap:0;margin-top:10px;display:grid}.blog-post .post-layout>aside nav a{border-bottom:1px solid var(--line);color:var(--muted);grid-template-columns:22px 1fr;gap:7px;padding:9px 0;font-size:11px;line-height:1.45;display:grid}.blog-post .post-layout>aside nav a:before{counter-increment:blog-toc;content:counter(blog-toc,decimal-leading-zero);color:#82943c;font-size:10px;font-weight:800}.blog-post .post-layout>aside nav a:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.blog-reading-nav-footer{color:var(--muted);justify-content:space-between;padding-top:12px;font-size:10px;display:flex}.blog-mobile-toc{display:none}.blog-template-cta{border:1px solid var(--ink);background:var(--navy);color:#f4faf3;box-shadow:8px 8px 0 var(--lime);margin-bottom:74px;padding:44px}.blog-template-cta .kicker{color:var(--lime)}.blog-template-cta h2{letter-spacing:-.05em;max-width:670px;margin:12px 0;font-size:clamp(34px,4vw,52px);line-height:1.05}.blog-template-cta p{color:#b9c9c0;max-width:710px;line-height:1.7}.blog-template-cta .button{color:#10231f;border-color:#10231f;margin-top:16px;box-shadow:4px 4px #72876a}.blog-related-templates,.blog-related-reading{padding-bottom:90px}.blog-related-templates h2,.blog-related-reading h2{letter-spacing:-.04em;margin:0 0 24px;font-size:clamp(28px,3vw,38px)}.blog-related-templates>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.blog-related-templates>div>a{border:1px solid var(--line);background:var(--white);min-width:0;padding:16px;transition:transform .18s,box-shadow .18s}.blog-related-templates>div>a:hover{box-shadow:5px 5px 0 var(--lime);transform:translateY(-3px)}.blog-related-templates .template-artwork{height:170px;min-height:170px;box-shadow:none}.blog-related-templates>div>a>span,.blog-related-reading>div>a>span{color:#6f8619;letter-spacing:.08em;text-transform:uppercase;margin-top:18px;font-size:10px;font-weight:850;display:block}.blog-related-templates h3{letter-spacing:-.035em;margin:10px 0;font-size:19px}.blog-related-templates p{color:var(--muted);margin:0;font-size:12px;line-height:1.65}.blog-related-templates>div>a>strong{align-items:center;gap:5px;margin-top:17px;font-size:12px;display:inline-flex}.blog-related-reading>div{border:1px solid var(--line);background:var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid}.blog-related-reading>div>a{background:var(--white);flex-direction:column;align-items:flex-start;min-height:135px;padding:20px;display:flex}.blog-related-reading>div>a:hover{background:var(--surface-hover)}.blog-related-reading>div>a>span{margin:0 0 14px}.blog-related-reading>div>a>strong{letter-spacing:-.025em;font-size:16px;line-height:1.3}.blog-related-reading>div>a>svg{align-self:flex-end;margin-top:auto}.blog-post a:focus-visible{outline:3px solid var(--lime);outline-offset:3px}html[data-theme=dark] .blog-post .post-body section a{color:#d8ff3e}html[data-theme=dark] .blog-post .post-body section a:hover{color:#f0ffa8}@media (max-width:1080px){.blog-hero-grid{grid-template-columns:minmax(0,1fr) 280px;gap:35px}.blog-post .post-layout{grid-template-columns:minmax(0,1fr);gap:25px}.blog-post .post-layout>.blog-reading-nav{display:none}.blog-mobile-toc{border:1px solid var(--line);background:var(--white);display:block}.blog-mobile-toc summary{color:var(--ink);cursor:pointer;justify-content:space-between;gap:16px;padding:16px 18px;font-size:13px;font-weight:800;display:flex}.blog-mobile-toc summary span{color:var(--muted);font-size:11px;font-weight:500}.blog-mobile-toc nav{gap:0;padding:0 18px 12px;display:grid}.blog-mobile-toc nav a{border-top:1px solid var(--line);color:var(--muted);padding:8px 0;font-size:12px}}@media (max-width:700px){.featured-post-illustrated{grid-template-columns:1fr;gap:25px;min-height:0;padding:27px}.featured-post-illustrated>figure{min-height:230px;margin:0 -27px -27px}.featured-post-illustrated>strong{top:auto;bottom:10px}.blog-post>header{padding-block:25px 40px}.blog-hero-topline{padding-bottom:18px}.blog-hero-topline>span{display:none}.blog-hero-grid{grid-template-columns:1fr;gap:23px;padding-top:31px}.blog-post>header .post-meta{gap:9px 16px}.blog-post h1{letter-spacing:-.055em;overflow-wrap:break-word;font-size:clamp(39px,10.5vw,58px);line-height:1.02}.blog-hero-summary{padding:0 0 0 17px}.blog-hero-summary>p{margin:10px 0 16px;font-size:15px}.blog-post>header .blog-editorial-figure{margin-top:31px}.blog-hero-diagram{margin-top:30px;padding:16px}.blog-diagram-rail{font-size:8px}.blog-semantic-center{grid-template-columns:1fr}.blog-semantic-toc{flex-direction:row;align-items:center;gap:10px;padding:11px}.blog-semantic-toc small{margin:0 0 0 auto}.blog-semantic-map strong{font-size:11px}.blog-semantic-site,.blog-semantic-nav,.blog-semantic-footer{gap:10px;padding:10px}.blog-semantic-main{grid-template-columns:55px 1fr;gap:8px;padding:11px}.blog-semantic-article{grid-template-columns:64px 1fr;padding:10px}.blog-semantic-article>div span{min-width:76px}.blog-practice-track{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-practice-track>div{min-height:116px;padding:12px}.blog-practice-track>div:after{display:none}.blog-practice-track>div:last-child{grid-column:1/-1;min-height:82px}.blog-practice-track>div strong{font-size:19px}.blog-practice-output{padding:15px;display:block}.blog-practice-output strong{margin:8px 0;font-size:13px;display:block}.blog-postgres-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-postgres-flow>div{min-height:115px;padding:12px}.blog-postgres-flow strong{font-size:17px}.blog-postgres-result{padding:15px;display:block}.blog-postgres-result strong{margin:7px 0;font-size:13px;display:block}.blog-post .post-layout{padding-block:35px 70px}.blog-post .post-layout>aside nav{grid-template-columns:minmax(0,1fr)}.blog-section-heading{grid-template-columns:1fr;gap:0}.blog-section-heading>span{padding-top:0}.blog-post .post-body section{margin-top:18px;padding-top:26px}.blog-post .post-body section p,.blog-post .post-body section li{font-size:16px}.blog-post .post-body .post-intro p{font-size:19px}.blog-buyer-checklist{grid-template-columns:1fr;gap:21px;padding:23px}.blog-worked-code-grid{grid-template-columns:1fr}.blog-worked-code-grid>div+div{border-top:1px solid #c8d0ba;border-left:0}.blog-case-file{grid-template-columns:1fr;gap:17px;padding:22px}.blog-template-cta{margin-bottom:65px;padding:26px}.blog-related-templates>div,.blog-related-reading>div{grid-template-columns:minmax(0,1fr)}.blog-related-templates>div>a{grid-template-columns:118px minmax(0,1fr);column-gap:16px;display:grid}.blog-related-templates .template-artwork{grid-row:span 4;height:118px;min-height:118px}.blog-related-templates>div>a>span{margin-top:0}.blog-related-templates h3{margin:5px 0;font-size:17px}.blog-related-templates p{display:none}.blog-related-templates>div>a>strong{margin-top:7px}}@media (prefers-reduced-motion:reduce){.blog-related-templates>div>a{transition:none}.blog-related-templates>div>a:hover{transform:none}}
