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