*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:#f6f5ef;color:#20352e;font-family:system-ui,-apple-system,sans-serif;line-height:1.75}a{color:inherit;text-decoration:none}header{padding:22px 5vw;display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #dbe1d6;align-items:center;background:#faf9f4}.brand{font-size:12px;font-weight:800;letter-spacing:1.5px;display:flex;gap:12px;align-items:center}.brand-mark{background:#225d45;color:#fff;padding:8px 11px;border-radius:6px;font-size:17px}header nav{display:flex;gap:25px;align-items:center;font-size:13px}.badge{color:#597661;font-size:10px;letter-spacing:1px;border:1px solid #d6dfcf;padding:5px 9px;border-radius:30px}main{max-width:1340px;margin:auto;padding:45px 5vw}h1{font-size:clamp(36px,5vw,72px);line-height:1.12;letter-spacing:-2.4px;font-weight:650;margin:20px 0 25px}h2{font-size:29px;line-height:1.25;letter-spacing:-.7px}h3{font-size:19px;line-height:1.4}em{font-style:normal;color:#2a7854}.eyebrow,.section-label{font-size:10px;letter-spacing:1.8px;font-weight:750;color:#5b795e}.lead{font-size:19px;color:#647067;max-width:740px}.hero{display:grid;grid-template-columns:2fr 1fr;gap:75px;align-items:center;padding:15px 0 55px}.hero-actions{display:flex;gap:24px;align-items:center;margin:30px 0}.primary{display:inline-flex;align-items:center;justify-content:center;gap:30px;background:#225d45;color:#fff;padding:13px 21px;border-radius:6px;border:1px solid #225d45;font-weight:600;font-size:14px}.secondary{font-size:14px;border-bottom:1px solid #96ab97}.meta{display:flex;flex-wrap:wrap;gap:20px;font-size:11px;color:#6d7c70}.progress-panel{background:#e6eddf;padding:32px;border-radius:12px}.progress-panel strong{font-size:65px;font-weight:500;display:block;line-height:1.5}.progress-panel a{display:block;font-size:14px;font-weight:650;color:#225d45}.progress-panel small{display:block;margin-top:20px;font-size:11px;color:#73816e}progress{width:100%;height:8px;accent-color:#225d45}.project{display:grid;grid-template-columns:1fr 1.2fr;gap:50px;background:#fff;border:1px solid #dce3d5;border-radius:12px;padding:35px;margin:15px 0 65px}.project p{color:#68776c;font-size:14px}.project h2{font-size:36px;margin:10px 0}.project-map{display:grid;grid-template-columns:1fr 1fr;gap:15px}.project-map div{padding:15px 20px;border:1px solid #e4e8dc;border-radius:8px}.project-map span{font-size:11px;color:#7a8d78;display:block}.project-map b{display:block;font-size:16px}.project-map small{font-size:11px;color:#71806f}.section-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.search-form{display:flex;gap:8px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 30px}.filters a{padding:7px 13px;font-size:11px;border:1px solid #d4ddce;border-radius:30px;color:#6c7c6d}.filters a.selected{background:#225d45;color:white;border-color:#225d45}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:#fff;padding:24px;display:flex;flex-direction:column;border:1px solid #dce3d5;border-radius:10px;transition:transform .15s,border .15s}.card:hover{transform:translateY(-3px);border-color:#47855d}.card-top{display:flex;justify-content:space-between;align-items:center}.card-top small{font-size:9px;color:#6e8a6c;letter-spacing:1.5px;font-weight:700}.lesson-number{font-family:monospace;color:#9baa96;font-size:15px}.card p{font-size:13px;color:#6d7b70;margin-top:0}.card-bottom{margin-top:auto;color:#2e7850;font-size:12px;font-weight:650;padding-top:15px}.notice{padding:25px 30px;border-left:4px solid #91b082;background:#eaf0e3;border-radius:7px;margin:35px 0}.notice h2{font-size:22px;margin-top:0}.notice p{font-size:14px;margin-bottom:0}.breadcrumbs{display:flex;flex-wrap:wrap;gap:12px;font-size:11px;color:#819080}.lesson-heading{padding:20px 0 35px}.lesson-heading h1{font-size:clamp(34px,4vw,54px);max-width:850px}.lesson-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(245px,1fr);gap:65px}.lesson-layout article>section{margin-bottom:45px;scroll-margin-top:25px}.lesson-layout article p,.lesson-layout article li{font-size:15px;color:#54685b}.lesson-layout aside{align-self:start;position:sticky;top:20px;background:#eef1e6;border:1px solid #dce3d5;padding:24px;border-radius:10px}.lesson-sidebar nav{display:flex;flex-direction:column;gap:7px;font-size:12px}.lesson-sidebar nav a{padding:3px 0;color:#6c7b69}.lesson-sidebar nav a.current{color:#245e43;font-weight:750}.lesson-sidebar small{font-size:10px;display:block;margin-top:10px;color:#74806c}hr{border:0;border-top:1px solid #d4decf;margin:23px 0}input,textarea,select{font:inherit;padding:11px;border:1px solid #ced9c6;border-radius:6px;background:#fff;color:#284035;max-width:100%}textarea{width:100%;display:block;margin:8px 0 14px;font-size:13px}label{font-size:12px;display:block}button{font:inherit;font-size:12px;cursor:pointer;padding:10px 15px;background:#fff;border:1px solid #cad7c4;border-radius:6px;color:#2c563f}.lesson-sidebar button{width:100%;margin-bottom:8px}.code-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}pre{padding:25px;background:#18362b;color:#e3eddf;border-radius:9px;overflow:auto;font-size:12px;line-height:1.8}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.steps{padding-left:28px}.steps li{padding-left:8px;margin:16px 0}.exercise,.role-lab{background:#fff;border:1px solid #dce3d5;padding:25px 30px;border-radius:10px}.exercise details{margin-top:20px;padding-top:12px;border-top:1px solid #e0e5db}summary{cursor:pointer;font-size:13px;font-weight:650;color:#32634a}.checks{list-style:'✓  ';padding-left:22px}.checks li{padding-left:5px;margin-bottom:10px}.pager{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #d8e0d1;padding:30px 0;font-size:13px}.table-wrap{overflow:auto;margin-top:20px}table{width:100%;border-collapse:collapse;font-size:12px}th,td{border-bottom:1px solid #dce3d5;text-align:left;padding:12px}thead{background:#eff3e8}.role-lab select{width:100%}#role-output{padding:15px 0}.capability{display:flex;justify-content:space-between;border-bottom:1px solid #e3eadc;padding:8px 0;font-size:13px}.capability b{color:#26704a}.capability.denied b{color:#8e644f}footer{padding:25px 5vw;border-top:1px solid #dce3d5;font-size:11px;color:#85917e;display:flex;justify-content:space-between;gap:20px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:3px solid #7d9f6c;outline-offset:3px}@media(max-width:1000px){.hero{gap:30px}.grid{grid-template-columns:repeat(2,1fr)}.lesson-layout{gap:30px}.project{gap:25px}}@media(max-width:760px){.hero,.project,.lesson-layout{grid-template-columns:1fr}.lesson-layout aside{position:static}.grid{grid-template-columns:repeat(2,1fr)}header{flex-direction:column;align-items:start}.section-head{flex-direction:column;align-items:start}.project{padding:24px}.hero{padding-bottom:20px}.progress-panel strong{font-size:45px}.badge{display:none}.hero-actions{gap:15px}h1{letter-spacing:-1.5px}}@media(max-width:480px){.grid,.project-map{grid-template-columns:1fr}main{padding:25px 5vw}.search-form{width:100%}.search-form input{min-width:0;width:100%}.hero-actions{flex-direction:column;align-items:start}.code-heading{align-items:start}.copy-code{white-space:nowrap}footer{flex-direction:column}.exercise,.notice{padding:20px}}/* Taller de arquitectura: vocabulario editorial original del curso. */
figure{margin:0}figcaption{font-size:12px;color:#64756b;line-height:1.6}.architecture-atlas{background:#fffdf8;border:1px solid #d9dfd3;border-radius:20px;padding:30px;margin:20px 0 55px}.architecture-atlas .section-head p,.unit-atlas .section-head>p{max-width:310px;font-size:13px;color:#64756b}.architecture-atlas img{display:block;width:100%;height:auto;margin:20px 0 12px}.atlas-legend{display:flex;flex-wrap:wrap;gap:24px;margin-top:22px;font-size:11px;color:#66786b;align-items:center}.atlas-legend span{display:flex;gap:8px;align-items:center}.atlas-legend a{margin-left:auto;font-weight:700;color:#225d45}.legend-line{display:inline-block;width:22px;height:2px;background:#437e69}.legend-dot{display:inline-block;width:9px;height:9px;background:#d48554;border-radius:50%}.unit-atlas{margin-bottom:55px}.unit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:22px}.unit-tile{display:flex;flex-direction:column;background:#eeefe4;border:1px solid #d8dfd1;border-radius:15px;padding:17px;transition:background .18s,transform .18s}.unit-tile:hover{background:#fffdf8;transform:translateY(-3px)}.unit-tile img{width:100%;height:auto;max-height:145px;object-fit:contain}.unit-tile>span{font-size:9px;letter-spacing:1.4px;color:#607a68;font-weight:750}.unit-tile h3{font-size:16px;margin:8px 0}.unit-tile p{font-size:11px;line-height:1.6;color:#6a796f;margin:0 0 15px}.unit-tile b{margin-top:auto;font-size:11px;color:#225d45}.card{overflow:hidden}.card-art{margin:-24px -24px 20px;background:#eeefe5;border-bottom:1px solid #dce3d5}.card-art img{display:block;width:100%;height:175px;object-fit:contain}.illustrated-heading{display:grid;grid-template-columns:1.6fr 1fr;gap:30px;align-items:center}.topic-illustration img{width:100%;height:auto;max-height:270px;object-fit:contain}.topic-illustration figcaption{text-align:center;font-size:12px;font-weight:600;color:#6b7868}.visual-lab{background:#fffdf8;border:1px solid #d8e0d1;border-radius:18px;padding:25px;overflow:hidden}.visual-lab h2{font-size:27px;margin-top:12px}.map-canvas{overflow:auto;border-radius:15px}.map-canvas svg{display:block;width:100%;height:auto;min-width:500px}.map-canvas .visual-node{transition:opacity .2s}.map-canvas .visual-node.is-muted{opacity:.3}.map-canvas .visual-node.is-active>rect{stroke:var(--topic-color);stroke-width:3}.map-caption{font-size:12px!important;line-height:1.65}.map-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:20px}.map-controls[hidden]{display:none}.map-step{display:flex;gap:10px;text-align:left;align-items:center;padding:10px;line-height:1.45;font-size:12px;background:#faf9f2}.map-step span{display:flex;align-items:center;justify-content:center;width:25px;height:25px;border-radius:50%;background:#e9eddf;color:#41664d;flex-shrink:0;font-weight:700}.map-step[aria-pressed=true]{border-color:var(--topic-color);background:#edf1e7}.map-step[aria-pressed=true] span{background:var(--topic-color);color:white}.map-reset{grid-column:1/-1;border:0;background:transparent;text-decoration:underline;color:#647767}.map-feedback{min-height:46px;font-size:13px!important;background:#eef0e6;border-radius:8px;padding:12px 15px}.map-text{font-size:12px;border-top:1px solid #dce1d5;padding-top:12px}.map-text li{font-size:13px!important}.map-download{display:inline-block;font-size:11px;font-weight:700;color:#32634a;margin-top:15px}.visual-steps{list-style:none;padding:0;counter-reset:build}.visual-steps li{position:relative;padding:17px 18px 17px 63px;margin:10px 0;border:1px solid #dce3d5;border-radius:10px;background:#fffdf8;counter-increment:build}.visual-steps li:before{content:counter(build,decimal-leading-zero);position:absolute;top:19px;left:17px;width:29px;height:29px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:750;color:#fff;background:#437e69;border-radius:7px}.lesson-sidebar a[href="#mapa"]{color:#235d43;font-weight:700}.lesson-layout article>section:not(.visual-lab) h2{display:flex;gap:12px;align-items:center}.lesson-layout article>section:not(.visual-lab) h2:before{content:'';display:inline-block;width:10px;height:20px;border:2px solid #7e9d73;border-radius:5px;flex-shrink:0;transform:rotate(-12deg)}
@media(max-width:1000px){.unit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.illustrated-heading{grid-template-columns:1.4fr 1fr}.visual-lab{padding:18px}.card-art img{height:155px}}
@media(max-width:760px){.unit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.illustrated-heading{grid-template-columns:1fr}.topic-illustration img{max-height:210px}.architecture-atlas{padding:20px}.architecture-atlas figure{overflow:auto}.architecture-atlas img{min-width:690px}.atlas-legend a{margin-left:0}.visual-lab h2{font-size:23px}.map-canvas svg{min-width:570px}.card-art img{height:150px}.topic-illustration{order:-1}.illustrated-heading h1{margin-top:10px}}
@media(max-width:480px){.unit-tile{padding:13px}.unit-tile img{max-height:115px}.unit-tile h3{font-size:14px}.map-controls{grid-template-columns:1fr}.map-canvas svg{min-width:530px}.card-art img{height:190px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.visual-node,.card,.unit-tile{transition:none}.card:hover,.unit-tile:hover{transform:none}}

.game-portal{margin:25px 0 60px}.game-portal-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.game-portal-heading h2{margin:8px 0}.game-portal-heading p{font-size:13px;color:#64776a}.game-portal-heading a{font-size:12px;font-weight:700;color:#35684e;border-bottom:1px solid #9cb19c;white-space:nowrap}.game-frame{display:block;width:100%;height:800px;border:0;border-radius:24px;background:#9ccdd1;box-shadow:0 12px 35px #255b3d18}.game-portal-note{font-size:11px;color:#718074}@media(max-width:700px){.game-portal-heading{flex-direction:column;align-items:start}.game-frame{height:840px;border-radius:17px}}

/* Miniaturas renderizadas con la geometría y paleta de Isla Django. */
.unit-tile,.card{background:#fffaf0;border-color:#d8dfce;overflow:hidden}.unit-art{margin:-17px -17px 18px;background:#dceae1}.unit-tile .unit-art img,.card-art img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:640/420;object-fit:contain}.card-art{background:#dceae1;border-bottom:1px solid #dce3d5}.unit-tile:hover{background:#fffdf7}.topic-illustration img{border-radius:20px}.unit-tile h3{line-height:1.45}.unit-tile b{padding-top:5px}@media(max-width:480px){.unit-art{margin:-13px -13px 15px}.unit-tile .unit-art img{max-height:none}}
/* Keep large diagrams scrollable within narrow lesson columns. */
.lesson-layout>article{min-width:0}.map-canvas{max-width:100%}
.deploy-lab{margin:30px 0;padding:26px;background:#eef1e5;border:1px solid #cbd7c5;border-radius:20px}.deploy-lab-heading{display:flex;align-items:center;gap:20px}.deploy-lab-heading>div{flex:1}.deploy-lab-heading img{width:28%;height:auto;border-radius:18px}.deploy-lab h2{font-size:26px}.deploy-selectors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.deploy-selectors label{font-size:12px;font-weight:650}.deploy-selectors select{width:100%;margin-top:5px;min-width:0}.deploy-lab dl{margin:20px 0 0}.deploy-lab dl>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid #d5decd}.deploy-lab dt{font-weight:700;font-size:12px}.deploy-lab dd{margin:0;font-size:13px;overflow-wrap:anywhere}.prerequisites{padding:15px 20px;border-left:3px solid #437e69;background:#eef1e7;margin-bottom:20px;font-size:13px}.prerequisites a{text-decoration:underline;margin-right:16px}.azure-route{margin:10px 0 28px;padding:22px;border:1px solid #d5decd;border-radius:16px;background:#fffdf8}.azure-route nav{display:flex;flex-wrap:wrap;gap:12px}.azure-route a{padding:9px 13px;background:#eef1e5;border-radius:8px;font-size:13px}.azure-route p{font-size:14px;color:#607466}
@media(max-width:600px){.deploy-selectors{grid-template-columns:1fr}.deploy-lab{padding:18px}.deploy-lab-heading img{display:none}.deploy-lab dl>div{grid-template-columns:1fr;gap:3px}}
.lesson-layout p,.lesson-layout li,.lesson-layout a,.lesson-heading h1{overflow-wrap:anywhere}.lesson-layout .table-wrap{max-width:100%;overflow-x:auto}

.security-control{padding:20px 0;border-bottom:1px solid #d8e0d1}.security-control h3{overflow-wrap:anywhere;color:#235d43}.security-control pre{margin:12px 0}.security-control p{font-size:14px}.security-controls>h2{margin-bottom:5px}

/* Narrative route: semantic, keyboard accessible, no motion required. */
.story-origin{margin:3rem 0;padding:clamp(1.2rem,4vw,3rem);background:#f4f1e9;border:1px solid #d8d4c8;border-radius:24px;color:#233a3b;scroll-margin-top:5rem}.story-origin blockquote{margin:1.5rem 0;padding:0 0 0 1.5rem;border-left:4px solid #b86b46;max-width:850px;font-size:1.15rem;line-height:1.8}.story-route-heading{margin-top:2.5rem}.story-chapters{display:grid;gap:12px;margin-top:1.5rem}.story-chapter{background:#fffdfa;border:1px solid #dedbd2;border-radius:14px;overflow:hidden}.story-chapter summary{display:flex;gap:1rem;align-items:center;padding:1.1rem;cursor:pointer;list-style:none}.story-chapter summary:after{content:'+';margin-left:auto;font-size:1.6rem}.story-chapter[open] summary:after{content:'−'}.story-chapter summary small{display:block;margin-top:.3rem;color:#586c6d}.story-index{font-size:1.25rem;background:#e2eee7;padding:.6rem;border-radius:10px;font-weight:700}.story-chapter-body{padding:0 1.2rem 1.2rem}.story-chapter-body ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.story-chapter-body a{display:block;padding:.65rem;background:#f4f6f2;border-radius:8px;color:#254c49;text-decoration:none}.story-chapter-body a span{font-variant-numeric:tabular-nums;color:#7d6550;margin-right:.4rem}.story-scene{border:1px solid #d4dfd6;border-radius:18px;padding:clamp(1rem,3vw,2rem);background:#f1f6ef;margin-bottom:2rem;color:#233a3b}.story-decision{border-left:3px solid #b86b46;padding-left:1rem}.story-bridge{background:#f5efe5;border-radius:16px;padding:1.5rem;margin:2rem 0;color:#233a3b}.story-bridge .primary{display:inline-block;white-space:normal;max-width:100%}.story-chapter a:focus-visible,.story-chapter summary:focus-visible{outline:3px solid #b86b46;outline-offset:-3px}@media(max-width:650px){.story-chapter-body ol{grid-template-columns:1fr}.story-origin blockquote{font-size:1rem;padding-left:1rem}.story-chapter summary{padding:.8rem}}

.repo-code-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.repo-code-pair>div{min-width:0}.repo-code-pair h4{padding:.8rem;border-radius:10px;background:#e6eee5;color:#244b45}.repo-code-pair pre{max-width:100%;overflow:auto;font-size:.8rem}.repo-comparisons section{margin:2rem 0}@media(max-width:1050px){.repo-code-pair{grid-template-columns:1fr}}

/* Continuous narrative: long-form reading with a separate technical path. */
.narrative-scene p,.narrative-intro{font-size:1.08rem;line-height:1.9}.narrative-scene h2{max-width:26ch}.narrative-to-practice{border-top:1px solid #d4dfd6;padding:1rem 0;margin-bottom:1rem}.narrative-reading-link{display:block;margin-top:1rem}.book-cover{display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:2rem;padding:3rem 0}.book-cover h1{font-size:clamp(2.2rem,4vw,3.8rem);line-height:1.12;max-width:20ch}.book-cover img{width:100%;height:auto;border-radius:24px}.book-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:start}.book-index{position:sticky;top:1.5rem;padding:1.25rem;border:1px solid #d4dfd6;border-radius:16px;background:#eef2e8;max-height:90vh;overflow:auto;font-size:.88rem}.book-index nav{display:grid;gap:.7rem}.book-index a{color:#315d51;text-decoration:none}.book-index a:hover{text-decoration:underline}.book-prose{max-width:760px;min-width:0}.book-prose p{font-size:1.12rem;line-height:1.95;color:#304841}.book-prose h2{font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.25}.book-prose h3{font-size:clamp(1.4rem,2.5vw,2rem);line-height:1.3;margin-top:.5rem}.book-prologue{padding-bottom:3rem;border-bottom:1px solid #cfd7cc}.book-chapter{margin-top:5rem}.book-chapter>header{position:relative;padding:2rem 180px 2rem 1.5rem;min-height:180px;background:#edf1e7;border-radius:18px}.book-chapter>header img{position:absolute;right:10px;top:20px;width:160px;height:auto;border-radius:12px}.book-scene{padding:2.5rem 0;border-bottom:1px solid #dde2d8;scroll-margin-top:2rem}.book-scene .book-scene-number{font-size:.8rem;letter-spacing:.12em;color:#926b4b;margin-bottom:0}.book-practice{display:block;background:#f0eee5;border-radius:9px;padding:.85rem 1rem;line-height:1.6;color:#315d51;font-size:.9rem}.book-back-index{display:inline-block;margin-top:1.5rem}.book-ending{margin:4rem 0;padding:2rem;background:#eef2e8;border-radius:18px}.book-chapter,.book-prologue{scroll-margin-top:2rem}.book-index p{line-height:1.6}.book-prose a:focus-visible,.book-index a:focus-visible{outline:3px solid #b86b46;outline-offset:3px}@media(max-width:900px){.book-layout{grid-template-columns:1fr;gap:2rem}.book-index{position:static;max-height:none}.book-index nav{grid-template-columns:repeat(2,minmax(0,1fr))}.book-cover{grid-template-columns:1fr}.book-cover img{max-width:340px}.book-prose{max-width:100%}}@media(max-width:500px){.book-index nav{grid-template-columns:1fr}.book-chapter>header{padding:1.2rem}.book-chapter>header img{position:static;width:140px}.book-prose p{font-size:1.03rem;line-height:1.85}.book-ending{padding:1.2rem}}@media print{.book-index,.book-cover .hero-actions,.book-practice,.book-back-index{display:none}.book-layout{display:block}.book-prose{max-width:100%}.book-chapter{break-before:page}.book-scene h3{break-after:avoid}}

/* Presentación del autor y propósito de la comunidad. */
.hero{grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:clamp(30px,5vw,65px)}
.course-title{font-size:clamp(40px,5.3vw,70px);letter-spacing:-2px;margin-bottom:20px}
.hero-motto{font-size:clamp(23px,2.6vw,34px);line-height:1.3;font-weight:550;letter-spacing:-.6px;margin:0 0 22px}
.author-panel{background:#e8eee2;border:1px solid #d6e0cc;border-radius:18px;padding:30px;position:relative;overflow:hidden}
.author-photo{display:block;width:112px;height:112px;object-fit:cover;border-radius:50%;border:5px solid #f6f5ef;margin:20px 0}
.author-panel h2{font-size:27px;margin:0 0 10px;line-height:1.2}
.author-panel p{font-size:14px;line-height:1.75;color:#4f6355}
.author-panel .eyebrow{font-size:10px;margin:0}
.author-panel .author-role{font-size:12px;font-weight:650;color:#37694c}
.author-purpose{border-top:1px solid #cbd8c2;margin-top:20px;padding-top:18px}
.author-purpose h3{font-size:17px;margin:0}
.author-purpose p{margin-bottom:20px}
.author-link{display:inline-flex;gap:10px;font-size:12px;font-weight:700;color:#225d45;text-decoration:underline;text-underline-offset:4px}
@media(max-width:760px){.hero{grid-template-columns:1fr}.author-panel{padding:25px}.course-title{font-size:clamp(38px,8vw,60px)}}

.author-email{display:block;margin-top:14px;overflow-wrap:anywhere}
