:root{color:#f5f3ec;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--accent:#ffb114;--muted:#aaa89a;--panel:#121212;--gutter:clamp(16px, 4vw, 48px);--panel-padding:clamp(16px, 2.4vw, 28px);background:#080808;font-family:Space Grotesk,Arial,sans-serif;font-weight:600}*{box-sizing:border-box}*,:before,:after{font-family:Space Grotesk,Arial,sans-serif}html{scroll-behavior:smooth;scroll-padding-top:24px}body{min-width:0;margin:0}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600}p,h1,h2,h3,a,li{overflow-wrap:anywhere}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::selection{background:var(--accent);color:#080808}img{max-width:100%;height:auto}.container{width:min(1108px, calc(100% - var(--gutter) * 2));padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);margin-inline:auto}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.grupo-logo{z-index:1;width:80px;max-width:100%;display:block;position:absolute;bottom:48px;right:20px}.grupo-logo img{object-fit:contain;width:100%;height:auto;display:block}.reference-hero{grid-template-columns:minmax(0,1fr);grid-template-areas:"profile""portrait""statement";gap:clamp(10px,1.4vw,16px);width:100%;max-width:880px;margin:24px auto;display:grid;position:relative}.profile-panel,.portrait-panel,.reference-statement{background:var(--panel);border:0;border-radius:28px;min-width:0}.profile-panel{flex-direction:column;grid-area:profile;gap:8px;min-height:210px;padding:24px;display:flex}.bio-title,.technologies h2{letter-spacing:.025em;font-size:16px;font-weight:600;line-height:1.2}.profile-panel h1{overflow-wrap:anywhere;font-size:clamp(22px,3vw,32px);line-height:1.15}.profile-panel p{color:#bdb8b0;font-size:16px;font-weight:400;line-height:1.4}.bio-summary{min-width:0}.bio-read{max-width:100%;min-height:44px;color:var(--muted);background:0 0;border:0;justify-content:flex-start;align-items:center;gap:clamp(8px,1.2vw,12px);padding:4px 0;font-size:14px;transition:color .18s;display:inline-flex}.bio-read-arrow{aspect-ratio:1;flex-shrink:0;width:clamp(16px,1.6vw,20px);height:auto;transition:transform .18s;display:block}@media (hover:hover) and (pointer:fine){.bio-read:hover .bio-read-arrow{transform:translate(2px,-2px)}}.bio-read:hover{color:var(--accent)}.bio-summary strong,.bio-full-copy strong{font-weight:700}.portrait-panel{isolation:isolate;aspect-ratio:317/312;grid-area:portrait;position:relative;overflow:hidden}.work-art{z-index:0;object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;inset:0;transform:translateZ(0)}.portrait-panel:after{content:"";pointer-events:none;background:linear-gradient(#0000 45%,#000000ad 100%);position:absolute;inset:0}.round-button{z-index:1;letter-spacing:.025em;background:0 0;border:0;border-radius:50%;place-items:end center;width:min(100%,clamp(170px,20vw,240px));height:clamp(140px,17vw,190px);padding:0 0 20px;font-size:clamp(56px,7vw,80px);font-weight:600;line-height:1;transition:color .18s;display:grid;position:absolute;bottom:0;left:0}.round-button:hover{color:#000}.round-button:focus-visible{outline-offset:-6px}.cv-button{z-index:1;background:0 0;border:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:8px;font-size:14px;font-weight:600;line-height:1;transition:color .18s,background .18s,translate .18s;display:inline-flex;position:absolute;top:12px;right:12px}.cv-button:hover,.cv-button:focus-visible{color:#000;background:#ffb1141a;translate:0 -2px}.reference-statement{flex-direction:column;grid-area:statement;min-height:520px;display:flex;position:relative}.technologies{padding:28px}.technology-logos{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 18px;margin:28px 0 0;padding:0;list-style:none;display:grid}.technology-logos li{justify-content:center;display:flex}.technology-icon{-webkit-mask-source-type:alpha;background:#383e42;width:clamp(24px,3vw,32px);height:clamp(24px,3vw,32px);transition:background .18s,translate .18s;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-source-type:alpha;mask-mode:alpha}.technology-logos li:hover .technology-icon{background:#fff;translate:0 -3px}.blog-section{flex-direction:column;align-items:center;gap:20px;margin-top:auto;padding:32px 24px;display:flex}.brand-button{--brand-accent:#efa60b;color:#e5e2dc;letter-spacing:-.025em;text-align:left;background:#ffffff08;border:1px solid #f5f3ec1a;border-radius:18px;align-items:center;gap:14px;width:100%;max-width:288px;min-height:60px;padding:9px 12px;font:600 clamp(16px,1.4vw,18px)/1.2 Space Grotesk,Arial,sans-serif;transition:color .18s,background .18s,border-color .18s,transform .18s;display:flex}.brand-button:nth-child(2){--brand-accent:#a77af0}.brand-button:nth-child(3){--brand-accent:#6794ff}.brand-button img{flex-shrink:0;width:40px;height:40px}.brand-button:after{content:"↗";color:var(--brand-accent);margin-left:auto;padding-left:4px;font-size:18px;font-weight:400}.brand-button:hover,.brand-button:focus-visible{color:#fff;border-color:var(--brand-accent);background:#ffffff0f}@media (hover:hover) and (prefers-reduced-motion:no-preference){.brand-button:hover{transform:translateY(-2px)}}.featured-project+.brand-links{gap:8px}.featured-project{min-width:0;min-height:0;margin:auto var(--panel-padding) 0;flex-direction:column;flex:164px;padding-top:8px;display:flex;position:relative}.featured-project-description{z-index:2;inset-inline:0;color:#f5f3ec;opacity:0;pointer-events:none;background:#121212;border:1px solid #f5f3ec2e;padding:10px 12px;font-size:13px;font-weight:400;line-height:1.4;transition:opacity .18s,transform .18s;position:absolute;bottom:32px;transform:translateY(3px)}.featured-project:hover .featured-project-description,.featured-project:focus-within .featured-project-description{opacity:1;pointer-events:auto;transform:translateY(0)}.featured-project h2{color:var(--muted);flex-shrink:0;margin-bottom:8px;font-size:12px;font-weight:600;line-height:1.2}.featured-project-window{background:#080808;border:1px solid #f5f3ec24;flex:1;min-height:0;max-height:164px;position:relative;overflow:hidden}.featured-project-link{min-height:32px;color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:13px;transition:color .18s;display:flex}.featured-project-link:hover,.featured-project-link:focus-visible{color:#f5f3ec}.featured-project+.blog-section{gap:4px;margin-top:0;padding-block:8px}@media (width>=600px){.reference-statement{contain:size}.reference-statement>.technologies,.featured-project+.blog-section{flex-shrink:0}}@media (width<=599px){.featured-project{flex:0 0 100px}.reference-statement>.technologies{padding-block:16px}.reference-statement .technology-logos{row-gap:16px;margin-top:16px}}.photo-logo{flex-shrink:0;place-items:center;width:72px;height:72px;padding:4px;transition:transform .18s;display:grid;position:relative}.studio-button{position:relative}.studio-button .studio-wordmark{object-fit:contain;width:24px;height:24px;transition:filter .18s;display:block}.studio-button:hover .studio-wordmark,.studio-button:focus-visible .studio-wordmark,.python-learning-button:hover .python-label-logo,.python-learning-button:focus-visible .python-label-logo{filter:brightness(0)saturate()invert(73%)sepia(87%)saturate(1330%)hue-rotate(348deg)brightness(103%)contrast(101%)}.photo-logo:hover{transform:translateY(-2px)}.photo-logo:active{transform:none}.studio-tooltip{color:#f5f3ec;white-space:nowrap;opacity:0;pointer-events:none;background:#151311;border-radius:8px;padding:8px 12px;font-size:15px;line-height:1.2;transition:opacity .18s,transform .18s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px)}.photo-logo:hover .studio-tooltip,.photo-logo:focus-visible .studio-tooltip{opacity:1;transform:translate(-50%)}.card-blog,.python-learning-button,.studio-button{width:180px;max-width:100%;min-height:48px;color:var(--muted);font:inherit;letter-spacing:.025em;text-align:center;text-transform:uppercase;background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;padding:8px 12px;font-size:16px;font-weight:600;line-height:1.2;transition:color .18s,border-color .18s;display:inline-flex}.studio-button{gap:10px;padding-block:3px}.studio-button:hover,.studio-button:focus-visible,.card-blog:hover,.card-blog:focus-visible,.python-learning-button:hover,.python-learning-button:focus-visible,.python-learning-button:hover,.python-learning-button:focus-visible{color:var(--accent);border-color:var(--accent)}.blog-section .python-learning-button,.blog-section .studio-button{grid-template-columns:24px minmax(0,1fr) 24px;gap:8px;width:240px;padding:8px 0;display:grid}.blog-section .python-learning-button span,.blog-section .studio-button span{text-align:center}.python-label-logo{object-fit:contain;flex-shrink:0;width:24px;height:24px;transition:filter .18s;display:block}.academy-entry-logo{object-fit:contain;flex-shrink:0;width:28px;height:28px;display:block}.card-contact{border-top:0;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:12px;margin:0 28px 28px;padding-top:22px;display:flex}.card-email{letter-spacing:.025em;text-align:center;align-items:center;min-height:44px;font-size:16px;font-weight:600;line-height:1.2;transition:color .18s;display:inline-flex}.card-blog,.card-email{color:#383e42}.card-blog:hover,.card-blog:focus-visible,.card-email:hover,.card-email:focus-visible{color:#fff}.contact-details{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 18px;display:flex}.contact-details .card-blog{width:auto;min-height:44px;padding:0}.portrait-handle{z-index:1;text-align:center;color:#5873d1;width:80px;font-size:16px;font-weight:700;line-height:1.4;position:absolute;bottom:20px;right:20px}.card-socials{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;width:100%;display:flex}.social-link{place-items:center;min-width:44px;min-height:44px;display:grid}.social-icon{opacity:1;background:#383e42;width:18px;height:18px;transition:background .18s,opacity .18s;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.social-link:hover .social-icon,.social-link:focus-visible .social-icon{opacity:1;background:#fff}.work-content,.blog-content{width:100%;min-width:0;padding:68px 24px 28px;position:relative}.work-content{flex-direction:column;flex:1;display:flex}.work-header{justify-content:flex-end;display:flex;position:absolute;top:16px;right:16px}.work-close,.preview-close{background:0 0;border:0;border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;padding:0;font-size:30px;line-height:1;transition:background .18s;display:grid}.work-close:hover{background:#ffffff14}.project-menu{flex-direction:column;flex:1;margin:0;padding:0;list-style:none;display:flex}.project-menu li{flex:1;min-width:0;display:flex}.project-menu li>button{text-align:left;letter-spacing:.025em;background:0 0;border:0;border-bottom:1px solid #f5f3ec26;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:64px;padding:12px 0;font-size:18px;display:flex}.project-menu .project-name{overflow-wrap:anywhere;flex:1;min-width:0}.project-menu li>button:hover,.project-menu li>button:focus-visible{color:var(--accent);background:#ffb1140f}.project-preview{z-index:4;width:var(--preview-width,calc(100% * 317 / 231));background:var(--panel);border:1px solid #f5f3ec29;height:100%;margin:0;position:absolute;inset:0 calc(100% + clamp(10px,1.4vw,16px)) auto auto;overflow:hidden;box-shadow:0 12px 40px #00000059}@media (width<=599px){.project-preview{width:auto;height:70dvh;position:fixed;inset:50% 16px auto;transform:translateY(-50%)}}.work-content:has(.project-preview):before{content:"";width:clamp(10px,1.4vw,16px);height:100%;position:absolute;top:0;right:100%}.project-preview>p{padding:24px 16px;font-size:14px}.featured-project-window,.project-preview{border-radius:20px}.reference-hero .featured-project-description{border-radius:16px}.reference-hero :is(.bio-read,.cv-button,.card-blog,.card-email,.featured-project-link){border-radius:12px}.reference-hero .social-link{border-radius:50%}.reference-hero .brand-button img{background:0 0;border-radius:0}.reference-hero .project-menu li>button{border-radius:16px;padding-inline:12px}.live-preview-viewport{border-radius:inherit;background:var(--panel);position:absolute;inset:0;overflow:hidden}.live-preview-viewport iframe{transform-origin:50%;background:#fff;border:0;max-width:none;display:block;position:absolute;top:50%;left:50%}.preview-close{z-index:1;background:#151311;font-size:25px;position:absolute;top:10px;right:10px}.preview-open{color:#fff;background:#151311;border-radius:20px;align-items:center;min-height:44px;padding:8px 12px;font-size:12px;display:flex;position:absolute;bottom:12px;right:12px}.blog-entry{border-block:1px solid #f5f3ec29;padding:24px 30px 24px 0;display:block;position:relative}.blog-entry-number{color:var(--muted);font-size:12px}.blog-entry h3{margin-top:14px;font-size:clamp(20px,2.4vw,26px);font-weight:600;line-height:1.2}.blog-entry p{color:#bdb8b0;margin-top:12px;font-size:14px;line-height:1.6}.blog-entry-arrow{position:absolute;top:24px;right:0}.blog-entry:hover h3,.blog-entry:hover .blog-entry-arrow{color:var(--accent)}.bio-dialog{color:#f5f3ec;overscroll-behavior:contain;background:#141414;border:0;width:min(620px,100% - 32px);max-height:calc(100dvh - 48px);margin:auto;padding:clamp(24px,5vw,44px);overflow-y:auto}.bio-dialog::backdrop{-webkit-backdrop-filter:blur(8px);background:#000000bf}.bio-dialog-header h2{font-size:28px}.bio-full-copy p{font-size:clamp(18px,2.5vw,20px);font-weight:400;line-height:1.65}.bio-full-copy p+p{margin-top:20px}.bio-dialog{background:var(--panel);width:min(640px,100% - 32px);max-height:calc(100dvh - 32px);color:var(--text,#f5f3ec);border:1px solid #343434;margin:auto;padding:clamp(24px,4vw,40px);position:fixed;inset:0;overflow-y:auto;box-shadow:0 24px 80px #00000073}.bio-dialog::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000bf}.bio-dialog-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.bio-dialog-header h2{font-size:22px;font-weight:600}.bio-dialog-close{width:44px;height:44px;color:inherit;cursor:pointer;background:0 0;border:1px solid #555;flex-shrink:0;place-items:center;font-size:28px;display:grid}.bio-dialog-close:hover{color:var(--accent)}.article-page{width:min(760px,100% - clamp(40px,10vw,96px));padding:clamp(28px, 5vw, 56px) env(safe-area-inset-right) max(28px, env(safe-area-inset-bottom)) env(safe-area-inset-left);margin:0 auto}.article-navigation,.article-footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;font-size:13px;display:flex}.article-navigation a,.article-footer a{align-items:center;min-height:44px;display:inline-flex}.article-page a:hover{color:var(--accent)}.article-header{padding-block:clamp(64px,11vw,120px) 48px}.article-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:12px}.article-header h1{letter-spacing:.025em;margin-top:24px;font-size:clamp(42px,7.5vw,80px);font-weight:600;line-height:1.05}.article-lead{max-width:38ch;color:var(--muted);margin-top:28px;font-size:clamp(18px,2.4vw,23px);line-height:1.6}.post-author{color:var(--muted);margin-top:24px;font-size:16px}.article-body{letter-spacing:.025em;color:#c7c3ba;max-width:62ch;font-size:clamp(16px,1.8vw,18px);font-weight:600;line-height:1.85}.article-body p+p{margin-top:24px}.lesson-cover{object-fit:contain;background:#eeede7;width:100%;max-height:560px;margin-bottom:32px;display:block}.python-cover svg{width:100%;height:auto;display:block}.python-cover.lesson-cover{max-height:none}.python-lesson{padding-bottom:104px}.lesson-scroll-row{left:50%;bottom:max(24px, env(safe-area-inset-bottom));z-index:10;width:min(760px,100% - clamp(40px,10vw,96px));padding-right:env(safe-area-inset-right);pointer-events:none;justify-content:flex-end;gap:12px;font-size:clamp(16px,1.8vw,18px);display:flex;position:fixed;transform:translate(-50%)}.lesson-scroll{width:56px;height:56px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #444;border-radius:0;justify-content:center;align-items:center;padding:0;font-family:Space Grotesk,Arial,sans-serif;font-size:14px;font-weight:500;display:inline-flex}.lesson-scroll:hover,.lesson-scroll:focus-visible{color:var(--accent)}.lesson-scroll{pointer-events:auto;touch-action:manipulation}.lesson-scroll span{font-size:28px;line-height:1}.python-lesson .article-body h3{color:#f5f3ec;margin:32px 0 16px;line-height:1.4}.python-lesson .article-body pre{color:#f5f3ec;letter-spacing:0;background:#151515;max-width:100%;margin:24px 0;padding:20px;line-height:1.6;overflow-x:auto}.python-lesson .article-body code{overflow-wrap:normal;font-size:.9em}.python-lesson .article-body ul,.python-lesson .article-body ol{margin-block:20px;padding-left:24px}.python-lesson .article-body li+li{margin-top:8px}.python-lesson .article-body a{color:var(--accent);text-decoration:underline}.lesson-table{max-width:100%;margin-block:24px;overflow-x:auto}.lesson-table table{border-collapse:collapse;width:100%}.lesson-table th,.lesson-table td{text-align:left;border:1px solid #444;padding:12px}.python-lesson details{margin-block:24px}.python-lesson summary{cursor:pointer;color:var(--accent)}.article-body h2{color:#f5f3ec;margin:48px 0 18px;font-size:clamp(22px,3vw,28px);line-height:1.3}.article-footer{border-top:1px solid #f5f3ec1f;margin-top:80px;padding-top:24px}:is(html:has(.python-lesson),body:has(.python-lesson)){color:#292824;background:#f7f5ef}.python-lesson{--accent:#8a5700;--muted:#666159;color:#292824;background:#f7f5ef}.python-lesson .article-body{letter-spacing:0;color:#35322d;font-family:Space Grotesk,Arial,sans-serif;font-size:clamp(18px,2vw,20px);font-weight:400;line-height:1.8}.python-lesson .article-body h2,.python-lesson .article-body h3{color:#24231f;font-family:Space Grotesk,Arial,sans-serif}.python-lesson .article-body strong{font-weight:700}.python-lesson .article-body blockquote{background:#efebe1;border-left:3px solid #b88a3d;margin:24px 0;padding:12px 20px}.python-lesson .lesson-table th,.python-lesson .lesson-table td{border-color:#d7d1c5}.python-lesson .article-footer{border-top-color:#d7d1c5}.python-lesson .lesson-scroll{border-color:#b6afa2}.lesson-creator{float:right;width:clamp(130px,26vw,180px);max-width:42%;margin:0 0 16px 22px}.lesson-creator img{width:100%;height:auto;display:block}.lesson-creator figcaption{color:#666159;margin-top:6px;font-family:Space Grotesk,Arial,sans-serif;font-size:11px;line-height:1.5}.python-lesson .article-body h2{clear:both}.python-lesson article,.python-lesson .article-body{min-width:0}.python-lesson .article-body :not(pre)>code{overflow-wrap:anywhere}.python-lesson .article-body pre code{white-space:pre}.python-lesson .article-body pre,.python-lesson .lesson-table{overscroll-behavior-x:contain}@media (width<=599px){.python-lesson{width:calc(100% - 32px);padding-top:16px;padding-bottom:calc(112px + env(safe-area-inset-bottom))}.python-lesson .article-header{padding-block:40px 28px}.python-lesson .article-header h1{letter-spacing:-.035em;font-size:clamp(34px,9vw,50px);line-height:1.1}.python-lesson .article-kicker{letter-spacing:.06em;font-size:11px;line-height:1.6}.python-lesson .article-body{font-size:18px;line-height:1.7}.python-lesson .article-body h2{margin-top:36px;font-size:24px}.python-lesson .article-body h3{font-size:21px}.python-lesson .article-body pre{padding:16px;font-size:15px}.python-lesson .article-body blockquote{padding:12px 16px}.python-lesson .lesson-table th,.python-lesson .lesson-table td{padding:10px}.python-lesson .lesson-scroll-row{width:calc(100% - 32px);bottom:calc(16px + env(safe-area-inset-bottom));gap:10px}.python-lesson .lesson-cover{margin-bottom:24px}}@media (width<=480px){.python-lesson .lesson-creator{float:none;width:160px;max-width:100%;margin:0 0 20px}}@media (height<=480px) and (orientation:landscape){.python-lesson .lesson-scroll-row{bottom:calc(8px + env(safe-area-inset-bottom))}.python-lesson .lesson-scroll{width:48px;height:48px}}@media (width>=600px){.reference-hero{grid-template-columns:minmax(0,317fr) minmax(0,231fr);grid-template-areas:"profile statement""portrait statement";margin:clamp(32px,8vh,96px) auto clamp(48px,8vw,112px)}.profile-panel{gap:6px;min-height:160px;padding:16px}.profile-panel p{font-size:14px;line-height:1.35}.technologies{padding:16px}.reference-statement{min-height:0}.technology-logos{gap:16px 18px;margin-top:20px}.blog-section{gap:12px;padding-block:16px}.photo-logo{width:56px;height:56px}.card-contact{gap:8px;margin:0 16px 20px;padding-top:12px}.card-socials{gap:0}}@media (width>=900px){.reference-hero{grid-template-rows:auto auto}.profile-panel,.technologies{padding:var(--panel-padding)}.profile-panel{gap:8px;min-height:0}.profile-panel p{font-size:clamp(14px,1.3vw,16px)}.portrait-panel{aspect-ratio:317/312;min-height:0}.reference-statement.is-work{z-index:3}.card-contact{margin-inline:var(--panel-padding)}.card-socials{gap:12px}.work-content,.blog-content{padding:72px var(--panel-padding) 40px}.project-menu li>button{min-height:64px;padding-block:12px}.blog-entry{padding-block:28px}}@media (width<=374px){.card-contact{margin-inline:20px}.card-socials{gap:2px}}@media (width<=599px){.article-footer{margin-top:56px}}@media (hover:hover) and (pointer:fine){html,body{cursor:url(/cursor.svg) 2 2,auto}a,button{cursor:url(/cursor-link.svg) 2 2,pointer}}@media (hover:none){.round-button:hover{color:#f5f3ec}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@media (hover:none){.cv-button:hover,.technology-logos li:hover .technology-icon{translate:none}}.reference-statement:not(.is-work){background:linear-gradient(155deg,#040404 0%,#080808 60%,#161616 100%)}.bio-summary,.bio-full-copy,.bio-read{font-family:Space Grotesk,Arial,sans-serif}.bio-full-copy p{font-size:clamp(16px,2.2vw,18px)}.profile-panel{box-shadow:none;background:#000}.journal-page,.article-page,.card-blog{font-family:Space Grotesk,Arial,sans-serif}.card-blog{letter-spacing:-.075em;text-transform:none;line-height:1}.journal-page{color:#202020;background:#f3f2ed;width:min(1160px,100% - clamp(24px,4vw,64px));margin:clamp(12px,4vw,64px) auto;font-weight:400}.journal-page a:focus-visible{outline-color:#202020}.journal-header{padding:clamp(20px,3vw,26px) clamp(20px,3vw,36px) 32px}.journal-navigation{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;display:flex}.journal-signature{letter-spacing:-.06em;align-items:center;min-height:44px;font-size:17px;font-weight:700;display:inline-flex}.journal-back{color:#f3f2ed;background:#202020;border-radius:0;align-items:center;gap:18px;min-height:44px;padding:8px 16px;font-size:12px;display:flex}.journal-header h1{letter-spacing:-.075em;margin-top:clamp(22px,4vw,32px);font-size:clamp(64px,12vw,150px);font-weight:600;line-height:1}.journal-intro{flex-direction:column;align-items:flex-start;gap:16px;margin-top:16px;display:flex}.journal-intro p{letter-spacing:-.045em;font-size:clamp(22px,3.2vw,36px);font-weight:500;line-height:1.06}.journal-intro a{align-items:center;gap:16px;min-height:44px;font-size:13px;display:flex}.journal-grid{grid-template-columns:minmax(0,1fr);scroll-margin-top:20px;display:grid}.journal-card{min-width:0}.journal-card>a,.journal-card>div{flex-direction:column;height:100%;display:flex}.journal-image{aspect-ratio:1;background:#c7c9c0;flex-shrink:0;position:relative;overflow:hidden}.journal-image img{object-fit:cover;width:100%;height:100%;transition:transform .35s;display:block}.journal-image-arrow{color:#fff;opacity:0;background:#202020;border-radius:50%;place-items:center;width:42px;height:42px;transition:opacity .2s;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (hover:hover) and (pointer:fine){.journal-card>a:hover img{transform:scale(1.04)}}.journal-card>a:hover .journal-image-arrow,.journal-card>a:focus-visible .journal-image-arrow{opacity:1}.journal-copy{flex:1;min-width:0;padding:clamp(20px,2.5vw,26px) clamp(20px,2.5vw,26px) 30px}.journal-meta{flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:12px;font-size:10px;line-height:1.4;display:flex}.journal-meta span{opacity:.65}.journal-copy h2{letter-spacing:-.045em;max-width:24ch;font-size:clamp(22px,2.25vw,28px);font-weight:600;line-height:1.15}.journal-description{color:#60605c;margin-top:14px;font-size:clamp(14px,1.1vw,15px);line-height:1.6}.learning-videos{color:#60605c;margin:8px 0 0;padding-left:18px;font-size:clamp(14px,1.1vw,15px);line-height:1.6}.journal-card-featured .learning-videos{color:#b6b6ae}.journal-card-featured{color:#f3f2ed;background:#202020}.journal-card-featured .journal-description{color:#b6b6ae}.journal-footer{border-top:1px solid #d7d6d0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:24px clamp(20px,3vw,36px);font-size:12px;display:flex}.journal-footer a{align-items:center;min-height:44px;display:inline-flex}.journal-footer span{color:#70706a}.learning-page .journal-header h1{min-width:0;font-size:clamp(48px,9.5vw,120px)}.learning-heading{flex-direction:column-reverse;align-items:flex-start;gap:0;display:flex}.learning-python-logo{flex-shrink:0;width:min(200px,100%);height:auto;margin-top:32px}.learning-grid .journal-card{border-top:1px solid #d7d6d0}.learning-grid .journal-copy{flex-direction:column;min-height:300px;display:flex}.learning-code{color:#075653;background:#0756530f;margin:28px 0 0;padding:16px;font-size:12px;line-height:1.7;overflow-x:auto}.journal-card-featured .learning-code{color:#54c7ad;background:#54c7ad14}@media (width>=600px){.journal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.journal-intro{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:28px}.learning-heading{flex-direction:row;justify-content:space-between;align-items:center;gap:24px}.learning-python-logo{width:clamp(180px,26vw,320px);margin-top:22px}}@media (width>=1000px){.journal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.python-lab{--lab-accent:var(--accent);--lab-inset:clamp(8px, 1.5vw, 24px);width:calc(100vw - var(--lab-inset) * 2 - env(safe-area-inset-left) - env(safe-area-inset-right));height:calc(100dvh - var(--lab-inset) * 2 - env(safe-area-inset-top) - env(safe-area-inset-bottom));max-width:none;max-height:calc(100dvh - var(--lab-inset) * 2 - env(safe-area-inset-top) - env(safe-area-inset-bottom));color:#f5f3ec;background:#080808;border:0;margin:auto;padding:0;font-family:Space Grotesk,Arial,sans-serif;font-weight:600;overflow:auto}.python-lab[open]{grid-template-rows:auto minmax(300px,1fr) auto;gap:0;display:grid}.python-lab::backdrop{-webkit-backdrop-filter:blur(8px);background:#000000bf}.python-lab :is(button,a,textarea):focus-visible{outline-color:var(--lab-accent)}.lab-header{background:#000;border-bottom:1px solid #f5f3ec1a;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:4px clamp(16px,2vw,28px);display:flex}.lab-header h2{letter-spacing:.025em;align-items:center;gap:9px;min-width:0;font-size:clamp(18px,1.8vw,22px);font-weight:600;display:flex}.lab-header .python-label-logo{width:24px}.lab-window-title{color:var(--muted);font-size:13px}.lab-body{grid-template:"guide"clamp(200px,30dvh,260px)"workspace"max(400px,60dvh)"exercise"max(360px,60dvh)/minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow-y:auto}.lab-column-divider{touch-action:none;-webkit-user-select:none;user-select:none;cursor:col-resize;background:#080808;display:none;position:relative}.lab-column-divider-guide{grid-area:guide-divider}.lab-column-divider-exercise{grid-area:exercise-divider}.lab-column-divider:before{content:"";background:#f5f3ec2e;width:1px;position:absolute;inset:0 auto 0 3px}.lab-column-divider:after{content:"";background:var(--muted);width:3px;height:40px;position:absolute;top:calc(50% - 20px);left:2px}.lab-column-divider:hover:after,.lab-column-divider:focus-visible:after{background:var(--lab-accent)}.lab-column-divider:focus-visible{outline:1px solid var(--lab-accent);outline-offset:-1px}.lab-guide{background:#080808;border-bottom:1px solid #f5f3ec1f;border-right:1px solid #f5f3ec1f;flex-direction:column;grid-area:guide;min-width:0;min-height:0;display:flex}.lab-guide-header{border-bottom:1px solid #f5f3ec1a;flex-shrink:0;justify-content:space-between;align-items:center;min-height:44px;padding-left:14px;display:flex}.lab-guide-header h3{letter-spacing:.025em;font-size:16px;font-weight:600}.lab-guide-scroll{overscroll-behavior:contain;scrollbar-width:thin;flex:1;min-height:0;overflow-y:auto}.lab-guide-intro{padding:18px 14px}.lab-guide-intro p{color:#f5f3ec;font-size:18px;line-height:1.4}.lab-guide-intro>span{color:var(--muted);margin-top:8px;font-size:10px;display:block}.lab-guide-group h4{color:#bdb8b0;letter-spacing:.025em;border-top:1px solid #f5f3ec1a;align-items:baseline;gap:6px;margin:0;padding:12px 12px 8px;font-size:12px;font-weight:600;line-height:1.5;display:flex}.lab-guide-group ol{margin:0;padding:0;list-style:none}.lab-lesson-button{color:#bdb8b0;text-align:left;background:0 0;border:0;border-left:2px solid #0000;align-items:baseline;gap:10px;width:100%;min-height:44px;padding:10px 14px;font:14px/1.5 Space Grotesk,Arial,sans-serif;display:flex}.lab-lesson-button:hover{background:#f5f3ec0a}.lab-lesson-button.is-active{border-left-color:var(--lab-accent);color:#f5f3ec;background:#ffb11412}.lab-lesson-button:focus-visible{outline-offset:-2px}.lab-lesson-number{color:var(--muted);flex-shrink:0;font:10px/1.6 Space Grotesk,Arial,sans-serif}.lab-lesson-button.is-active .lab-lesson-number{color:var(--accent)}.lab-guide-full{min-height:44px;color:var(--accent);justify-content:space-between;align-items:center;gap:8px;margin:12px 14px;font-size:11px;display:flex}.lab-exercise{background:#080808;border-top:1px solid #f5f3ec1f;border-left:1px solid #f5f3ec1f;flex-direction:column;grid-area:exercise;min-width:0;min-height:0;display:flex}.lab-exercise-scroll{overscroll-behavior:contain;scrollbar-width:thin;flex:1;min-height:0;padding:22px 20px;overflow-y:auto}.lab-exercise-heading{border-bottom:1px solid #f5f3ec1a;padding-bottom:20px}.lab-exercise-heading>span{color:var(--muted);letter-spacing:.04em;font-size:10px;line-height:1.6}.lab-exercise-heading h4{color:#f5f3ec;letter-spacing:.025em;overflow-wrap:anywhere;margin:10px 0 0;font-size:clamp(23px,2vw,28px);font-weight:600;line-height:1.2}.lab-exercise-scroll section{margin-top:22px}.lab-exercise-scroll h5{color:var(--accent);letter-spacing:.025em;margin:0 0 10px;font-size:14px;font-weight:600;line-height:1.5}.lab-exercise-scroll p,.lab-exercise-scroll li{color:#bdb8b0;font-family:Space Grotesk,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.75}.lab-exercise-scroll ol{margin:0;padding-left:20px}.lab-exercise-scroll li{padding-left:4px}.lab-exercise-scroll li+li{margin-top:12px}.lab-exercise-scroll li::marker{color:var(--lab-accent);font:11px/1.5 Space Grotesk,Arial,sans-serif}.lab-exercise-result{border-left:2px solid var(--accent);background:#ffb1140a;padding:14px}.lab-exercise-result h5{color:var(--accent)}.lab-exercise-scroll .lab-exercise-note{border-left:2px solid var(--muted);color:var(--muted);margin-top:18px;padding-left:12px;font-size:11px}@media (width>=700px){.lab-body{grid-template-areas:"guide guide-divider workspace""guide guide-divider exercise";grid-template-columns:var(--lab-guide-width,220px) 8px minmax(0, 1fr);grid-template-rows:minmax(380px,1fr) minmax(340px,1fr)}.lab-column-divider-guide{display:block}}@media (width>=1000px){.lab-body{grid-template-areas:"guide guide-divider workspace exercise-divider exercise";grid-template-columns:var(--lab-guide-width,20%) 8px minmax(0, 1fr) 8px var(--lab-exercise-width,25%);grid-template-rows:minmax(0,1fr)}.lab-column-divider-exercise{display:block}.lab-guide,.lab-exercise{border-top:0;border-bottom:0}}.lab-close{color:#c7c3ba;background:0 0;border:0;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:24px;display:grid}.lab-close:hover{color:var(--accent);background:#f5f3ec14}.lab-workspace{grid-area:workspace;min-width:0;min-height:0;display:grid}.lab-stage,.lab-editor{background:var(--panel);flex-direction:column;width:100%;min-width:0;min-height:0;display:flex}.lab-file-tab{color:#c7c3ba;background:#080808;border:0;border-bottom:1px solid #f5f3ec1a;flex-shrink:0;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 12px;font:600 16px/1.4 Space Grotesk,Arial,sans-serif;display:flex}.lab-console-bar{gap:8px}.lab-active-console-tab{border-bottom:1px solid var(--lab-accent);color:#f5f3ec;letter-spacing:.025em;flex-shrink:0;align-self:stretch;align-items:center;padding:0 4px;font-size:11px;display:flex}.lab-console-bar .lab-runtime-status{color:var(--muted);align-items:center;gap:6px;margin-left:auto;font-size:10px;display:flex}.lab-status-dot{background:var(--accent);border-radius:50%;width:6px;height:6px}.lab-status-loading,.lab-status-running{background:var(--muted)}.lab-status-error{background:#dba7a1}.lab-console-bar button,.lab-run{color:#c7c3ba;background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;gap:8px;min-width:44px;min-height:44px;padding:4px 8px;font-size:11px;display:inline-flex}.lab-console-bar button:hover,.lab-run:hover{color:#f5f3ec;background:#f5f3ec1a}.lab-editor-bar{background:#080808;gap:0;padding-left:0}.lab-active-file{border-top:1px solid var(--lab-accent);background:var(--panel);color:#f5f3ec;border-right:1px solid #f5f3ec1a;align-self:stretch;align-items:center;gap:9px;min-width:130px;padding:0 14px;display:inline-flex}.lab-active-file img{object-fit:contain;flex-shrink:0;width:16px;height:16px}.lab-draft-indicator{background:var(--muted);border-radius:50%;width:7px;height:7px;margin-left:12px}.lab-editor-bar .lab-run{color:var(--accent);margin-left:auto}.lab-console-bar button:disabled,.lab-run:disabled,.lab-terminal-prompt button:disabled{opacity:.45;cursor:default}.lab-terminal-output{overscroll-behavior:contain;flex:1;min-height:0;padding:12px 18px;overflow:auto}.lab-terminal-output pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font:13px/1.65 Space Grotesk,Arial,sans-serif}.lab-output-command{color:var(--accent)}.lab-output-system{color:var(--muted)}.lab-output-stderr{color:#dba7a1}.lab-terminal-prompt{flex-shrink:0;align-items:center;gap:9px;min-width:0;padding-left:18px;font:13px/1.65 Space Grotesk,Arial,sans-serif;display:flex}.lab-terminal-prompt>span{color:var(--accent)}.lab-terminal-prompt textarea{resize:none;color:#f5f3ec;width:0;min-width:0;min-height:44px;max-height:90px;font:inherit;caret-color:#f5f3ec;background:0 0;border:0;border-radius:0;flex:1;padding:11px 0}.lab-terminal-prompt textarea:focus-visible{outline:1px solid var(--lab-accent);outline-offset:-2px}.lab-terminal-prompt button{color:#c7c3ba;background:0 0;border:0;flex-shrink:0;width:44px;height:44px;font-size:20px}.lab-splitter{touch-action:none;-webkit-user-select:none;user-select:none;cursor:row-resize;background:#080808;position:relative}.lab-splitter:before{content:"";background:#f5f3ec2e;height:1px;position:absolute;top:7px;left:0;right:0}.lab-splitter:after{content:"";background:var(--muted);width:40px;height:3px;position:absolute;top:6px;left:calc(50% - 20px)}.lab-splitter:hover:after,.lab-splitter:focus-visible:after{background:var(--lab-accent)}.lab-splitter:focus-visible{outline:1px solid var(--lab-accent);outline-offset:-1px}.lab-editing-area{flex:1;min-width:0;min-height:0;display:flex}.lab-gutter{min-width:44px;color:var(--muted);text-align:right;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:12px 8px 12px 16px;overflow:hidden}.lab-gutter pre{margin:0;font:14px/1.7 Space Grotesk,Arial,sans-serif}.lab-code-surface{flex:1;min-width:0;min-height:0;position:relative}.lab-code-highlight,.lab-code-input{white-space:pre;tab-size:4;background:0 0;border:0;border-radius:0;width:100%;min-width:0;height:100%;margin:0;padding:12px 16px 12px 8px;font:14px/1.7 Space Grotesk,Arial,sans-serif;display:block;position:absolute;inset:0}.lab-code-highlight{pointer-events:none;color:#f5f3ec;overflow:hidden}.lab-code-input{resize:none;color:#0000;-webkit-text-fill-color:transparent;caret-color:#f5f3ec;overscroll-behavior:contain;min-height:44px;overflow:auto}.lab-code-input::placeholder{color:var(--muted);-webkit-text-fill-color:var(--muted);opacity:1}.lab-code-input:focus-visible{outline:1px solid var(--lab-accent);outline-offset:-1px}.lab-token-keyword{color:var(--accent)}.lab-token-string{color:#c9c3b5}.lab-token-number{color:#e3d9b4}.lab-token-function{color:#f5f3ec}.lab-token-comment{color:var(--muted)}.lab-footer{min-width:0;color:var(--muted);background:#000;border-top:1px solid #f5f3ec1f;justify-content:space-between;align-items:center;gap:8px;padding:0 8px;font-size:13px;display:flex}.lab-reset{background:0 0;border:0;flex-shrink:0;min-height:44px;padding:4px;font-size:11px}.lab-cursor-status{white-space:nowrap;gap:16px;margin-left:auto;font-size:11px;display:inline-flex}.lab-footer a{flex-shrink:0;align-items:center;gap:8px;min-height:44px;font-size:11px;display:inline-flex}.lab-footer :is(button,a):hover{background:#ffffff1f}.lab-footer :is(button,a):focus-visible{outline-offset:-2px;outline-color:#f5f3ec}@media (width<=600px){.lab-window-title,.lab-cursor-status>span{display:none}}@media (width<=480px){.lab-header{gap:4px}.lab-header h2{gap:6px;font-size:16px}.lab-console-bar .lab-runtime-status{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.lab-active-console-tab{margin-right:auto}.lab-cursor-status,.lab-reset{font-size:10px}}@media (pointer:coarse){.lab-code-input,.lab-code-highlight,.lab-gutter pre,.lab-terminal-prompt textarea{font-size:16px}}@media (forced-colors:active){.lab-code-highlight{display:none}.lab-code-input{color:canvastext;-webkit-text-fill-color:CanvasText}}.bio-dialog{border-radius:28px}.bio-dialog-close{border-radius:50%}@layer theme{:root,:host{--spacing:.25rem}}@layer utilities{.flex{display:flex}.min-w-0{min-width:0}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}}.school-page{--accent:#151515;color:#151515;background:#d8d8d8;min-height:100dvh;padding:24px;font-size:14px;font-weight:400;line-height:1.5}.school-page,.school-page *,.school-page :before,.school-page :after{font-family:Space Grotesk,Arial,sans-serif}.school-page button,.school-page input{font:inherit}.school-page svg{flex-shrink:0}.school-shell{background:#f8f8f8;border-radius:24px;max-width:1800px;margin:0 auto;padding:16px}.school-header{background:#fff;border:1px solid #eaeaea;border-radius:18px;min-height:64px;padding:10px 20px}.school-brand{white-space:nowrap;letter-spacing:-.03em;align-items:center;gap:12px;font-size:15px;display:flex}.school-brand strong{letter-spacing:-.05em;margin-right:5px;font-weight:700}.school-brand>span>span{color:#777;font-weight:400}.school-brand img{object-fit:contain;border-radius:9px;width:32px;height:32px;display:block}.school-search{color:#777;background:#fafafa;border:1px solid #eaeaea;border-radius:10px;align-items:center;gap:10px;width:276px;min-height:38px;padding:0 12px;display:flex}.school-search input{color:#151515;background:0 0;border:0;outline:none;width:100%;min-width:0;font-size:12px}.school-search input::placeholder{color:#888}.school-search:focus-within{border-color:#777}.school-search kbd{color:#888;flex-shrink:0;font-size:10px}.school-icon-button{color:#555;background:#fff;border:1px solid #eaeaea;border-radius:12px;place-items:center;width:38px;height:38px;padding:0;display:grid}.school-icon-button:hover{color:#151515;background:#f3f3f3}.school-profile-button{border-radius:50%}.school-menu-button{display:none}.school-layout{grid-template-columns:280px minmax(0,1fr);gap:16px;margin-top:16px;display:grid}.school-sidebar,.school-content{background:#fff;border:1px solid #eaeaea;border-radius:20px;min-width:0;height:calc(100dvh - 164px);min-height:480px}.school-sidebar{scrollbar-width:thin;scrollbar-color:#ddd transparent;flex-direction:column;padding:24px 12px 16px;display:flex;overflow-y:auto}.school-sidebar-heading{color:#999;letter-spacing:.12em;padding:0 12px 20px;font-size:10px;font-weight:500}.school-roots,.school-branches{margin:0;padding:0;list-style:none}.school-roots>li+li{margin-top:5px}.school-nav-item{color:#626262;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;width:100%;min-height:44px;padding:10px 12px;font-size:12px;font-weight:400;display:flex}.school-nav-item>span:not(.school-nav-dot){flex:1}.school-roots>li>.school-nav-item{color:#383838;font-size:13px;font-weight:500}.school-nav-item:hover{color:#151515;background:#f7f7f7}.school-nav-item.is-selected{color:#151515;background:#f1f1f1}.school-nav-dot{background:#bdbdbd;border-radius:50%;flex-shrink:0;width:4px;height:4px}.school-chevron{color:#999;margin-left:auto}.school-chevron.is-open{transform:rotate(90deg)}.school-portfolio{color:#999;justify-content:space-between;align-items:center;margin:auto 12px 0;padding-top:40px;font-size:11px;display:flex}.school-portfolio:hover{color:#151515}.school-open-lab{color:#fff;text-align:center;background:#151515;border:1px solid #eaeaea;border-radius:12px;flex-shrink:0;width:calc(100% - 24px);min-height:48px;margin:auto 12px 0;padding:14px 12px;font-size:13px;display:block}.school-open-lab:hover{background:#303030}.school-sidebar .school-portfolio{margin-top:0;padding-top:16px}.school-sidebar>nav{min-height:0;margin-bottom:20px;overflow-y:auto}.school-page .school-lab-host{display:contents}.school-drawer .school-open-lab{margin-top:24px}.school-content{overscroll-behavior:contain;overflow:auto}.school-content:focus{outline:none}.school-hero{flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:100%;padding:32px 20px;display:flex}.school-hero h1{letter-spacing:-.04em;font-size:clamp(28px,4vw,44px)}.school-hero img{border-radius:24px;width:min(100%,620px);height:auto;display:block}.school-no-results{color:#777;margin:20px 12px;font-size:12px}.school-loading{color:#777;padding:40px}.school-skip{z-index:60;color:#fff;background:#151515;border-radius:12px;padding:12px 20px;position:fixed;top:-100px;left:24px}.school-skip:focus{top:10px}.school-page :is(button,a):focus-visible{outline-offset:2px;outline:2px solid #777}.school-drawer,.school-profile{color:#151515;background:#fff;border:1px solid #eaeaea;padding:20px}.school-drawer{border-radius:20px;width:min(320px,100% - 32px);height:calc(100dvh - 24px);max-height:none;margin:0;position:fixed;inset:12px auto 12px 12px;overflow-y:auto}.school-drawer::backdrop,.school-profile::backdrop{background:#00000038}.school-drawer-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;display:flex}.school-drawer-heading h2{font-size:15px;font-weight:600}.school-drawer-search{width:100%;margin-bottom:20px}.school-profile{border-radius:20px;width:min(420px,100% - 32px);margin:auto;position:fixed;inset:0}.school-profile p{color:#777;line-height:1.7}.school-profile>a{align-items:center;gap:8px;margin-top:24px;font-size:12px;display:flex}.school-page .school-reading{--lp-bg:#fff;--lp-surface:#fafafa;--lp-editor:#f5f5f5;--lp-border:#eaeaea;--lp-text:#151515;--lp-muted:#777;--lp-amber:#333;color:#151515;background:#fff;min-height:100%;padding:clamp(24px,4vw,64px)}.school-reading>*{max-width:820px;margin-inline:auto}.school-reading .lp-lesson-title{font-size:clamp(28px,3vw,44px)}.school-reading :is(.lp-objectives,.lp-foundations,.lp-vocabulary>div,pre,.lesson-note){border-radius:16px}.school-reading :is(.lp-primary,button){border-radius:12px}.school-reading pre{max-width:100%;overflow-x:auto}.school-reading img{border-radius:16px}.school-page .school-reading .lp-reading{max-width:65ch;font-size:clamp(18px,1.4vw,20px);font-weight:400;line-height:1.85}.school-page .school-reading .lp-reading :is(p,li,blockquote,td,th,figcaption),.school-page .school-reading .lp-reading :is(p,li,blockquote,td,th,figcaption) :is(a,strong,em,span){font-family:Georgia,Times New Roman,serif}.school-page .school-reading .lp-reading p{margin-block:1.2em}.school-page .school-reading .lp-reading :is(pre,code,pre *,code *){font-family:Consolas,monospace}.school-page .school-introduction{padding:clamp(24px,3vw,48px)}.school-introduction>.intro-document-header,.school-introduction>.intro-document-layout{max-width:1100px}.intro-document-header{border-bottom:1px solid #eaeaea;margin-bottom:32px;padding-bottom:32px}.school-introduction .intro-back{color:#777;border:0;min-height:44px;margin-bottom:32px;padding:0}.intro-document-header h1{letter-spacing:-.04em;max-width:24ch;margin:12px 0 16px;font-size:clamp(30px,3.2vw,46px);line-height:1.15}.intro-deck{color:#777;font-size:17px;font-weight:400}.intro-document-layout{grid-template-columns:170px minmax(0,1fr);align-items:start;gap:clamp(28px,3vw,56px);display:grid}.intro-toc{flex-direction:column;gap:8px;display:flex;position:sticky;top:24px}.intro-toc>p{letter-spacing:.1em;color:#888;margin-bottom:8px;font-size:10px}.intro-toc a{color:#777;padding-block:6px;font-size:12px;line-height:1.5}.intro-toc a:hover{color:#151515;text-underline-offset:4px;text-decoration:underline}.intro-document-body{width:100%;min-width:0;max-width:66ch;margin-inline:auto}.school-page .school-introduction .lp-reading{width:100%;max-width:100%;margin:0;font-size:clamp(18px,1.4vw,20px);line-height:1.85}.school-introduction .lp-reading>p:first-child{margin-top:0}.intro-chapter{margin-top:44px;scroll-margin-top:24px}.school-introduction .intro-chapter h2{letter-spacing:-.025em;margin:0 0 20px;font-size:clamp(22px,2vw,28px);line-height:1.3}.school-introduction .lp-reading li{margin-bottom:14px;padding-left:6px}.school-introduction .lp-reading ol{padding-left:24px}.intro-foundations{background:#fafafa;border:1px solid #eaeaea;margin-top:40px;padding:20px;scroll-margin-top:24px}.intro-foundations summary{cursor:pointer;font-weight:500}.intro-foundations-caption{color:#777;margin:12px 0 24px;font-size:13px}.intro-document-actions{border-top:1px solid #eaeaea;flex-wrap:wrap;gap:12px;margin-top:40px;padding-top:28px;display:flex}.intro-document-actions button{font-size:13px}@media (width<=1200px){.intro-document-layout{grid-template-columns:minmax(0,1fr);gap:28px}.intro-toc{border-bottom:1px solid #eaeaea;padding-bottom:24px;position:static}.intro-document-body{margin-inline:0}}@media (width<=1000px){.school-sidebar{display:none}.school-layout{grid-template-columns:minmax(0,1fr)}.school-menu-button{display:grid}}@media (width<=600px){.school-page{padding:8px}.school-shell{border-radius:20px;padding:8px}.school-header{gap:8px;padding:10px}.school-brand{gap:8px;font-size:12px}.school-brand img{width:28px;height:28px}.school-brand strong{line-height:1.2;display:block}.school-header>div{gap:8px}.school-header .school-search{background:0 0;border:0;justify-content:center;width:36px;min-height:36px;padding:0;position:relative}.school-header .school-search input{opacity:0;cursor:text;position:absolute;inset:0}.school-header .school-search kbd{display:none}.school-layout{margin-top:12px}.school-content{border-radius:18px;height:calc(100dvh - 124px);min-height:380px}}
