:root{color-scheme:light;--ink: #172232;--muted: #5f6b77;--soft: #eef3f6;--line: #d4dde6;--navy: #0b1f3a;--navy-2: #17314c;--blue: #0a84d6;--blue-2: #25a9f2;--teal: #4f7f8c;--copper: #0b66b3;--rose: #315d7f;--white: #ffffff;--panel: #f5f1e8;--radius: 8px;--shadow: 0 16px 42px rgba(11, 31, 58, .1);font-family:Manrope,Avenir Next,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;color:var(--ink);background:#faf5ee;font-size:16px;line-height:1.55}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}button,input,textarea{font:inherit}.site-shell{min-height:100vh;display:flex;flex-direction:column}.container{width:min(1160px,calc(100% - 40px));margin:0 auto}.section{padding:68px 0;background:#faf5ee}.section--soft{background:var(--soft)}.page-intro{padding:56px 0 42px;border-bottom:1px solid var(--warm-line);background:linear-gradient(105deg,#fffefa00 0 72%,#e8e7e2b8 72% 100%),#faf5ee}.page-intro .eyebrow{color:var(--primary)}.page-intro .section-title{color:var(--navy)}.page-intro .section-lead{color:var(--warm-muted)}.eyebrow{margin:0 0 10px;color:var(--primary-bright);font-size:.78rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.section-title{margin:0;color:var(--navy);font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.75rem,2.3vw,2.7rem);font-weight:400;line-height:1.14;letter-spacing:-.015em}.section-lead{max-width:760px;margin:14px 0 0;color:var(--muted);font-size:1.02rem}.grid{display:grid;gap:18px}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.card{border:1px solid var(--line);border-radius:var(--radius);background:#f5f1e8;box-shadow:var(--shadow)}.button-row{display:flex;flex-wrap:wrap;gap:10px}.button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:12px;padding:10px 18px;font-weight:750;font-size:.95rem;line-height:1;transition:background .3s cubic-bezier(.25,.8,.25,1),border-color .3s cubic-bezier(.25,.8,.25,1),color .3s cubic-bezier(.25,.8,.25,1),transform .3s cubic-bezier(.25,.8,.25,1),box-shadow .3s cubic-bezier(.25,.8,.25,1)}.button:hover{transform:translateY(-2px)}.button svg{transition:transform .25s cubic-bezier(.25,.8,.25,1)}.button--primary{background:linear-gradient(135deg,var(--primary),#084c87);color:var(--white);box-shadow:0 4px 12px #0b66b329,0 1px 2px #0b66b314}.button--primary:hover{background:linear-gradient(135deg,#1294e8,var(--primary));box-shadow:0 8px 20px #0b66b347,0 2px 4px #0b66b31a}.button--primary:hover svg{transform:scale(1.06)}.button--secondary{border:1px solid rgba(11,102,179,.22);color:var(--primary);background:#e8f4fca6;backdrop-filter:blur(4px);box-shadow:0 2px 6px #0b66b305}.button--secondary:hover{border-color:#0b66b373;background:#e8f4fce6;box-shadow:0 6px 14px #0b66b314,0 1px 3px #0b66b30a}.button--secondary svg{transition:transform .25s cubic-bezier(.25,.8,.25,1)}.button--secondary:hover svg{transform:scale(1.06)}.button--light{border-color:var(--line);color:var(--ink);background:var(--panel)}.tags{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.tag{border:1px solid rgba(11,126,208,.22);border-radius:999px;padding:5px 9px;color:var(--navy);background:#0b7ed00f;font-size:.82rem;font-weight:650}.site-header{position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(222,211,199,.9);background:#fbf6eee6;backdrop-filter:blur(14px)}.nav{display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:24px}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--navy);font-weight:800}.brand-mark{width:36px;height:36px;flex:0 0 auto}.brand-mark img{width:36px;height:36px;border-radius:8px}.nav-links{display:flex;align-items:center;gap:2px}.nav-links a{position:relative;padding:8px 12px;color:#4f4740;font-weight:550;font-size:.92rem;transition:color .2s}.nav-links a:after{content:"";position:absolute;bottom:4px;left:12px;right:12px;height:2px;border-radius:2px;background:var(--primary-bright);transform:scaleX(0);transition:transform .25s cubic-bezier(.4,0,.2,1);transform-origin:center}.nav-links a:hover{color:var(--navy)}.nav-links a:hover:after{transform:scaleX(1)}.nav-links a[aria-current=page],.nav-links a.is-active{color:var(--navy);font-weight:650}.nav-links a[aria-current=page]:after,.nav-links a.is-active:after{transform:scaleX(1)}.hero{color:var(--ink);border-bottom:1px solid var(--line);background:radial-gradient(rgba(10,132,214,.12) 1px,transparent 1px),linear-gradient(180deg,#faf5ee,#eef6fb);background-size:30px 30px,auto}.hero-inner{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:48px;align-items:center;padding:82px 0 76px}.hero-copy{max-width:760px;min-width:0}.hero-inner>*{min-width:0}.hero h1{max-width:720px;margin:0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(3rem,5vw,5.8rem);font-weight:500;line-height:.98;letter-spacing:-.015em}.hero h1 span{color:var(--copper);font-style:italic}.hero h1 .accent-blue{color:var(--blue)}.hero .lead{max-width:720px;margin:20px 0 0;color:var(--muted);font-size:clamp(1rem,1.2vw,1.12rem)}.hero .eyebrow{color:var(--copper)}.hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0;padding:0;list-style:none}.hero-meta li{border:1px solid rgba(11,102,179,.24);border-radius:999px;padding:6px 10px;color:#4a3527;background:#fffefaad;font-size:.9rem;font-weight:650}.brand-showcase{border:1px solid var(--line);border-radius:var(--radius);padding:24px;background:#fffefac7;box-shadow:var(--shadow)}.brand-stage{display:grid;place-items:center;gap:18px;min-height:270px;border:1px solid rgba(11,126,208,.2);border-radius:var(--radius);padding:28px;text-align:center;background:linear-gradient(135deg,#ffffffeb,#ebf5fcb3),radial-gradient(circle at top right,rgba(11,126,208,.11),transparent 40%)}.showcase-logo{width:152px;height:auto;border-radius:22px;box-shadow:0 18px 40px #0b263d33}.brand-stage-copy strong,.showcase-note strong{display:block;color:var(--navy);font-size:1.05rem}.brand-stage-copy span,.showcase-note span{display:block;margin-top:3px;color:var(--muted);font-size:.9rem}.showcase-note{display:grid;gap:18px;margin-top:18px;border:1px solid var(--line);border-radius:var(--radius);padding:18px;background:#eef3f6b8}.showcase-note small{color:var(--copper);font-size:.72rem;font-weight:800;text-transform:uppercase}.showcase-note ul{display:grid;gap:8px;margin:0;padding:0;color:var(--muted);list-style:none}.metrics-band{background:radial-gradient(rgba(11,102,179,.08) 1px,transparent 1px),#f6f0e8;background-size:32px 32px;margin:0}.metrics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:72px 0;text-align:center}.metrics-grid strong{display:block;color:var(--primary);font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(3.05rem,4.55vw,4.15rem);font-weight:500;line-height:1.1;letter-spacing:-.01em}.metrics-grid span{display:block;margin-top:8px;color:#5f574f;font-size:.8rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.focus-section{background:#f5f7f7}.focus-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.focus-card{border:1px solid var(--line);border-top:3px solid var(--copper);border-radius:var(--radius);padding:28px;background:var(--panel);box-shadow:var(--shadow)}.focus-icon{display:inline-flex;margin-bottom:20px;color:var(--copper);font-weight:850}.focus-card h2{margin:0;color:var(--ink);font-size:1.35rem}.focus-card p{margin:12px 0 18px;color:var(--muted)}.focus-card ul{display:grid;gap:8px;margin:0;padding:0;color:var(--muted);list-style:none}.focus-card li:before{content:">";margin-right:8px;color:var(--copper)}.project-card{display:flex;flex-direction:column;gap:15px;padding:22px}.project-card h3{margin:0;color:var(--navy);font-size:1.14rem}.project-card .meta{margin:4px 0 0;color:var(--muted);font-size:.9rem;font-weight:650}.project-card p{margin:0;color:var(--muted);font-size:.95rem}.project-links{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:auto}.project-cta{display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(11,102,179,.28);border-radius:999px;padding:8px 12px;color:var(--primary);background:#fffefad1;font-size:.86rem;font-weight:800;line-height:1;box-shadow:0 2px 8px #0b66b309;transition:transform .24s ease,border-color .24s ease,background .24s ease,box-shadow .24s ease,color .24s ease}.project-cta:hover{border-color:#0b66b38f;color:#fff;background:var(--primary);box-shadow:0 8px 18px #0b66b32e;transform:translateY(-1px)}.project-cta svg{flex:0 0 auto}.project-cta--muted{cursor:help;color:var(--warm-muted);border-color:#5f6b7738;background:#fffefa8c}.project-cta--muted:hover{color:var(--primary);border-color:#0b66b352;background:#fffefae0;box-shadow:0 5px 12px #0b66b314}.project-links .icon-link{display:inline-flex;align-items:center;justify-content:center;color:var(--warm-muted);transition:color .25s ease,transform .25s ease}.project-links .icon-link:hover{color:var(--copper);transform:translateY(-1px)}.project-links .evidence-link{cursor:help}.project-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:26px}.skill-card,.cert-card,.teaching-card{padding:18px}.skill-card h3,.cert-card h3,.teaching-card h3{margin:0 0 10px;color:var(--navy);font-size:1rem;line-height:1.25}.skill-card ul,.cert-card ul{margin:0;padding:0;list-style:none}.skill-card li,.cert-card li{padding:6px 0;color:var(--muted);border-top:1px solid rgba(221,230,242,.08);font-size:.92rem}.skill-card h3{display:flex;align-items:center;gap:10px}.skill-icon{display:inline-grid;width:30px;height:30px;place-items:center;border:1px solid rgba(11,126,208,.22);border-radius:var(--radius);color:var(--blue);background:#0b7ed00f}.skill-card li:first-child,.cert-card li:first-child{border-top:0}.teaching-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}.cert-strip,.cert-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px}.cert-card{position:relative;overflow:hidden}.cert-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--blue)}.stat{border:1px solid var(--line);border-radius:var(--radius);padding:15px;background:var(--panel)}.stat strong{display:block;color:var(--navy);font-size:1.28rem;line-height:1.1}.stat span{color:var(--muted);font-size:.9rem}.contact-panel{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;border-radius:var(--radius);padding:28px;color:var(--white);border:1px solid var(--line);background:var(--navy)}.contact-panel h2{margin:0;font-size:clamp(1.45rem,2.45vw,2.05rem);line-height:1.2}.contact-panel p{max-width:700px;margin:10px 0 0;color:#dce8f3}.contact-panel .button--secondary{border-color:#ffffff57;color:var(--white);background:#ffffff0d}.site-footer{margin-top:auto;border-top:1px solid var(--warm-line);min-height:132px;padding:44px 0;color:#4f5b67;background:#fffefa}.footer-inner{display:grid;grid-template-columns:minmax(160px,1fr) auto minmax(220px,1fr);align-items:center;gap:28px}.footer-inner strong{color:#2e2a26;font-family:Cormorant Garamond,Georgia,serif;font-size:1.18rem;font-weight:700;letter-spacing:-.01em}.footer-links{display:flex;align-items:center;justify-content:center;gap:28px}.footer-links a{color:#3e4650;font-size:.68rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;transition:color .2s ease}.footer-links a:hover{color:var(--primary)}.footer-note{justify-self:end;color:#6c7480;font-size:.72rem}@media(max-width:860px){.container{width:min(100% - 28px,1120px)}.nav{align-items:flex-start;flex-direction:column;padding:10px 0;gap:10px}.nav-links{width:100%;flex-wrap:wrap;overflow-x:visible}.hero-inner,.grid--2,.grid--3,.project-feature-grid,.focus-grid,.metrics-grid,.cert-strip,.cert-group,.contact-panel{grid-template-columns:1fr}.hero-inner{min-height:auto;padding:44px 0 46px;gap:28px}.page-intro{padding:40px 0 30px}.hero h1{font-size:clamp(2rem,9vw,3rem)}.metrics-grid{gap:0;text-align:center}.metrics-grid div{padding:22px 0;border-top:1px solid var(--warm-line)}.metrics-grid div:first-child{border-top:0}.brand-stage{min-height:220px}.showcase-logo{width:122px}.teaching-stats{grid-template-columns:1fr}.contact-panel{padding:22px}.footer-inner{grid-template-columns:1fr;justify-items:center;text-align:center;gap:16px}.footer-note{justify-self:center}}@media(max-width:520px){body{font-size:15px}.section{padding:44px 0}.button{width:100%}.brand{font-size:.92rem}.brand-mark,.brand-mark img{width:32px;height:32px}.nav-links a{padding:7px 8px;font-size:.8rem}.hero-meta li,.tag{font-size:.78rem}.project-card,.skill-card,.cert-card,.teaching-card{padding:17px}}:root{--surface: #faf5ee;--surface-low: #fffefa;--surface-mid: #eef3f6;--primary: #0b66b3;--primary-bright: #1294e8;--primary-soft: #e8f4fc;--copper: #c2652a;--warm-line: #d7d2ca;--warm-ink: #172232;--warm-muted: #5f6b77}body{background:var(--surface);color:var(--warm-ink);font-family:Manrope,Avenir Next,ui-sans-serif,system-ui,sans-serif}.site-header{border-bottom:1px solid var(--warm-line);background:#f7f5f0e6}.brand{color:var(--navy)}.nav-links a{color:#403b36}.nav-links a:hover,.nav-links a[aria-current=page],.nav-links a.is-active{color:var(--navy);background:none}#inicio,#proyectos,#docencia,#certificaciones,#contacto{scroll-margin-top:88px}.sahara-hero{position:relative;overflow:hidden;box-shadow:0 1px #3a302a14,0 4px 16px #3a302a0a;background:radial-gradient(rgba(11,102,179,.08) 1px,transparent 1px),linear-gradient(180deg,#faf8f5,#f4f0e6);background-size:32px 32px,auto}.sahara-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.82fr);gap:68px;align-items:center;min-height:calc(78vh - 64px);padding:72px 0 64px}.sahara-copy{min-width:0}.availability-pill{display:inline-flex;align-items:center;gap:9px;width:fit-content;margin:0 0 22px;border:1px solid rgba(11,102,179,.18);border-radius:999px;padding:7px 12px;color:var(--primary);background:#e8f4fcb8;font-size:.74rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.availability-pill span{width:7px;height:7px;border-radius:50%;background:var(--primary-bright)}.sahara-copy h1{max-width:700px;margin:0;color:#2e2a26;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.95rem,5vw,5.45rem);font-weight:500;line-height:1.02;letter-spacing:-.015em}.sahara-copy h1 em{color:var(--primary);font-style:italic}.type-cursor{display:inline-block;width:.075em;height:.78em;margin-left:.08em;border-radius:999px;background:var(--primary);transform:translateY(.1em);animation:cursor-blink 1s steps(1) infinite}@keyframes cursor-blink{0%,48%{opacity:1}49%,to{opacity:0}}.hero-lead{max-width:650px;margin:24px 0 0;color:var(--warm-muted);font-size:clamp(1rem,1.35vw,1.18rem);line-height:1.7}.sahara-copy .button-row{margin-top:28px}.code-editor-window{display:flex;flex-direction:column;min-height:360px;border:1px solid rgba(180,155,120,.25);border-radius:16px;background:#faf5ee;backdrop-filter:blur(12px);box-shadow:0 24px 50px #50371e1a,0 1px 3px #50371e0d;font-family:JetBrains Mono,SFMono-Regular,Consolas,Monaco,monospace;overflow:hidden;transition:transform .4s cubic-bezier(.25,.8,.25,1),box-shadow .4s cubic-bezier(.25,.8,.25,1)}.code-editor-window:hover{transform:translateY(-4px);box-shadow:0 32px 64px #50371e24,0 2px 6px #50371e0f}.editor-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(180,155,120,.2);padding:12px 18px;background:#b49b7814}.window-controls{display:flex;gap:8px}.window-controls .control{width:11px;height:11px;border-radius:50%}.window-controls .close{background:#ff5f56}.window-controls .minimize{background:#ffbd2e}.window-controls .expand{background:#27c93f}.editor-title{color:#64503799;font-size:.78rem;font-weight:500;letter-spacing:.05em;text-transform:lowercase;margin-right:32px}.editor-body{flex:1;padding:24px;margin:0;font-size:.88rem;line-height:1.6;color:#3a2e1e;text-align:left}.editor-body pre{margin:0;padding:0;white-space:pre-wrap;word-break:break-all}.editor-body code{font-family:inherit}.editor-body .line{display:block}.editor-body .keyword{color:#c2652a}.editor-body .variable{color:#0b66b3}.editor-body .string{color:#2e7d4f}.editor-body .boolean{color:#b85c00}.editor-body .comment{color:#9c8b75;font-style:italic}.logo-feature-note{margin-top:22px;border:1px solid var(--warm-line);border-radius:var(--radius);padding:22px;background:#eef3f6ad}.logo-feature-note small{color:var(--primary);font-size:.72rem;font-weight:850;text-transform:uppercase}.logo-feature-note p{margin:7px 0 0;color:var(--navy);font-size:1.08rem;font-weight:800}.stats-bar{border-bottom:1px solid var(--warm-line);background:linear-gradient(180deg,#edf6fb,#f9f7f2);padding:48px 0}.stats-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.stat-card{display:flex;align-items:center;justify-content:center;gap:24px;background:#ffffffbf;border:1px solid rgba(11,102,179,.08);border-radius:16px;padding:24px 36px;box-shadow:0 4px 20px #0b66b308,0 2px 6px #0b66b303;backdrop-filter:blur(8px)}.motion-ready .stat-card.is-visible{transition:transform .3s cubic-bezier(.16,1,.3,1),border-color .3s cubic-bezier(.16,1,.3,1),box-shadow .3s cubic-bezier(.16,1,.3,1),background .3s cubic-bezier(.16,1,.3,1)}.stat-card:hover{transform:translateY(-3px);border-color:#0b66b338;box-shadow:0 10px 25px #0b66b314,0 3px 10px #0b66b308}.stat-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;background:#0b66b312;border:1px solid rgba(11,102,179,.12);border-radius:14px;color:var(--primary);transition:background .35s cubic-bezier(.25,.8,.25,1),color .35s cubic-bezier(.25,.8,.25,1),transform .35s cubic-bezier(.25,.8,.25,1)}.stat-card:hover .stat-icon{background:var(--primary);color:var(--white);transform:scale(1.06)}.stat-info{display:flex;flex-direction:column;align-items:flex-start}.stat-info strong{display:block;color:var(--primary);font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.4rem,3.5vw,3.2rem);font-weight:600;line-height:1}.stat-info span{display:block;margin-top:5px;color:#4a4642;font-size:.78rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.dual-section{background:#faf5ee;padding:96px 0}.dual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.dual-card{display:flex;flex-direction:column;border:1px solid rgba(11,102,179,.12);border-radius:12px;padding:56px;background:#f5f1e8;box-shadow:0 4px 24px #3a302a05}.motion-ready .dual-card.is-visible{transition:transform .3s cubic-bezier(.16,1,.3,1),border-color .3s cubic-bezier(.16,1,.3,1),box-shadow .3s cubic-bezier(.16,1,.3,1),background .3s cubic-bezier(.16,1,.3,1)}.dual-card>svg{margin-bottom:40px}.dual-card--software{border-top:4px solid var(--primary)}.dual-card--software svg{color:var(--primary)}.dual-card--teaching{border-top:4px solid var(--primary-bright)}.dual-card--teaching svg{color:var(--primary-bright)}.dual-card--teaching svg.lucide-graduation-cap{fill:#1294e81a}.dual-card h2{margin:0 0 24px;color:#2e2a26;font-family:Cormorant Garamond,Georgia,serif;font-size:2.25rem;font-weight:500;line-height:1.15}.dual-card p{margin:0 0 40px;color:var(--warm-muted);font-size:1.125rem;line-height:1.625}.dual-card ul{display:grid;gap:16px;margin:0;padding:0;list-style:none}.dual-card li{display:flex;align-items:center;gap:12px;color:#423b35}.dual-card li svg{flex:0 0 auto;margin:0}.projects-section{background:#fff}.projects-section .eyebrow,.projects-section .text-link{color:var(--primary)}.projects-section .text-link:hover{color:var(--primary-bright)}.section-heading-row{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:32px}.text-link{display:inline-flex;align-items:center;gap:6px;color:var(--primary-bright);font-weight:500}.portfolio-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.portfolio-card{display:flex;flex-direction:column;height:100%;overflow:hidden;border:1px solid var(--warm-line);border-radius:16px;background:#f5f1e8;box-shadow:0 4px 18px #3a302a04;transition:transform .35s cubic-bezier(.23,1,.32,1),box-shadow .35s cubic-bezier(.23,1,.32,1)}.portfolio-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px #3a302a0d,0 2px 8px #3a302a05}.portfolio-visual{position:relative;min-height:170px;background-size:cover;background-position:center;background-repeat:no-repeat;overflow:hidden}.portfolio-card .portfolio-visual:after{content:"";position:absolute;inset:0;background-image:inherit;background-size:cover;background-position:center;transition:transform .5s cubic-bezier(.23,1,.32,1);z-index:1}.portfolio-card:hover .portfolio-visual:after{transform:scale(1.05)}.tech-badge{position:absolute;top:14px;right:14px;border-radius:8px;padding:5px 9px;background:#fffefaeb;color:var(--primary-bright);font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;z-index:2;border:1px solid rgba(18,148,232,.2);box-shadow:0 2px 8px #0000000a}.portfolio-body{padding:24px;flex:1;display:flex;flex-direction:column}.portfolio-body h3{margin:0;color:#2e2a26;font-family:Cormorant Garamond,Georgia,serif;font-size:1.5rem;font-weight:600}.portfolio-body p{margin:12px 0 24px;color:var(--warm-muted);font-size:.94rem;line-height:1.6;flex:1}.impact-section{position:relative;overflow:hidden;background:linear-gradient(104deg,#fbf7ef 0 64%,#0b66b30f 64% 100%)}.impact-section .eyebrow{color:var(--primary)}.impact-grid{display:grid;grid-template-columns:minmax(0,.94fr) minmax(360px,.9fr);gap:76px;align-items:center}.quote-card{margin-top:30px;border-left:3px solid var(--primary);border-radius:0 14px 14px 0;padding:38px 42px;background:#ede6d9bd;box-shadow:0 18px 40px #3a302a0f}.quote-card strong{color:var(--primary);font-family:Cormorant Garamond,Georgia,serif;font-size:4.4rem;line-height:.7}.quote-card p{margin:20px 0 0;color:#514a43;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.35rem,2.2vw,1.85rem);font-style:italic;line-height:1.55}.quote-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.quote-meta span{border:1px solid rgba(11,102,179,.16);border-radius:999px;padding:6px 10px;color:var(--primary);background:#fffefa85;font-size:.76rem;font-weight:800;letter-spacing:0}.mini-stats{display:flex;gap:54px;margin-top:34px}.mini-stats strong{display:block;color:var(--primary);font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.4rem,4vw,3.2rem);line-height:1}.mini-stats span{display:block;margin-top:8px;color:#5b554e;font-size:.78rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.impact-visual{position:relative;min-height:420px;border:1px solid var(--warm-line);border-radius:16px;background:radial-gradient(circle at 18% 16%,rgba(18,148,232,.1),transparent 36%),linear-gradient(135deg,#fffefaf0,#edf3f7d1);box-shadow:0 18px 40px #3a302a14;overflow:hidden}.impact-visual:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(11,102,179,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(11,102,179,.055) 1px,transparent 1px);background-size:34px 34px;opacity:.85}.education-screen{position:absolute;inset:32px 32px 118px;border:1px solid rgba(11,102,179,.12);border-radius:12px;background:#fffefab8;box-shadow:inset 0 0 24px #0b66b30a}.screen-toolbar{display:flex;gap:6px;padding:12px;border-bottom:1px solid rgba(11,102,179,.1)}.screen-toolbar span{width:7px;height:7px;border-radius:999px;background:var(--primary)}.lesson-board{position:absolute;inset:58px 34px 32px;display:grid;align-content:start;gap:24px}.lesson-line,.lesson-code span{display:block;height:8px;border-radius:999px;background:#0b66b31f}.lesson-line--short{width:42%}.lesson-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.lesson-flow span{border:1px solid rgba(11,102,179,.16);border-radius:10px;padding:16px 10px;color:var(--navy);background:#edf3f7bd;font-size:.76rem;font-weight:800;text-align:center}.lesson-code{display:grid;gap:12px;width:72%}.lesson-code span:nth-child(2){width:86%}.lesson-code span:nth-child(3){width:58%}.workshop-card{position:absolute;right:32px;bottom:32px;left:32px;border:1px solid rgba(11,102,179,.12);border-radius:12px;padding:22px 24px;background:#fffefaf5;box-shadow:0 14px 30px #3a302a17}.workshop-card strong{display:block;margin-top:6px;color:#2e2a26;font-family:Cormorant Garamond,Georgia,serif;font-size:1.35rem;line-height:1.15}.workshop-card span{display:block;color:var(--primary);font-size:.76rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.ecosystem-section{border-top:1px solid var(--warm-line);background:#f6f0e8}.cert-section{border-top:1px solid var(--warm-line);background:#fff}.ecosystem-section .eyebrow,.cert-section .eyebrow{color:var(--primary)}.cert-section .section-title{color:var(--navy)}.cert-section .section-lead{color:var(--warm-muted)}.cert-section .cert-card{border-color:#0b66b31f;background:#fffefa;box-shadow:0 14px 30px #3a302a0b}.cert-section .cert-card:before{background:var(--primary-bright)}.cert-section .cert-card h3{color:var(--navy)}.cert-section .cert-card li{color:var(--warm-muted);border-top-color:#0b66b314}.centered,.centered-title{text-align:center;margin-left:auto;margin-right:auto}.contact-section{position:relative;overflow:hidden;border-top:1px solid var(--warm-line);background:linear-gradient(76deg,#0b66b30f 0 36%,#fbf7ef 36% 100%)}.contact-shell{max-width:820px}.contact-heading{max-width:720px;margin:0 auto 28px;text-align:center}.contact-heading .eyebrow{color:var(--primary)}.contact-heading h2{margin:0;color:#2e2a26;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.2rem,4vw,3.5rem);font-weight:500;line-height:1.08}.contact-heading p{max-width:610px;margin:14px auto 28px;color:var(--warm-muted)}.contact-form-card{display:grid;gap:22px;max-width:600px;margin:0 auto;border:1px solid rgba(222,211,199,.95);border-radius:10px;padding:34px 38px;background:#fbf6ee;box-shadow:0 24px 54px #3a302a1a,0 1px #fffc inset}.contact-fields-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.contact-field,.contact-message{display:block;color:var(--warm-ink)}.contact-field span,.contact-message span{display:block;margin-bottom:8px;color:#4e5d6b;font-size:.66rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.contact-field strong{display:block;min-height:34px;border-bottom:1px solid rgba(58,48,42,.2);color:#5c655f;font-size:.88rem;font-weight:500;line-height:1.4;overflow-wrap:anywhere;transition:border-color .22s ease,color .22s ease}.contact-field:hover strong,.contact-message:hover p{border-color:#0b66b380;color:var(--primary)}.contact-message p{min-height:74px;margin:0;border-bottom:1px solid rgba(58,48,42,.2);color:#7c746b;font-size:.92rem;transition:border-color .22s ease,color .22s ease}.contact-submit{width:100%;margin-top:2px;border-radius:8px;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem}.centered-row{justify-content:center}.motion-ready .reveal-on-scroll{opacity:0;transform:translate3d(0,10px,0);transition:opacity .46s ease,transform .52s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay, 0ms)}.motion-ready .reveal-on-scroll[data-reveal=fade-down]{transform:translate3d(0,-8px,0)}.motion-ready .reveal-on-scroll[data-reveal=scale-in]{transform:translate3d(0,8px,0) scale(.985)}.motion-ready .reveal-on-scroll.is-visible{opacity:1;transform:translateZ(0) scale(1)}.motion-ready .portfolio-card.is-visible .portfolio-visual,.motion-ready .impact-visual.is-visible img,.motion-ready .logo-feature.is-visible img{animation:soft-scale-in .52s ease both;animation-delay:calc(var(--reveal-delay, 0ms) + .12s)}@keyframes soft-scale-in{0%{opacity:.86;transform:scale(.985)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.motion-ready .reveal-on-scroll,.motion-ready .reveal-on-scroll[data-reveal],.motion-ready .reveal-on-scroll.is-visible{opacity:1;transform:none;transition:none}.motion-ready .portfolio-card.is-visible .portfolio-visual,.motion-ready .impact-visual.is-visible img,.motion-ready .logo-feature.is-visible img,.type-cursor{animation:none}}@media(max-width:1080px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.sahara-hero-grid,.dual-grid,.impact-grid,.stats-row{grid-template-columns:1fr}.sahara-hero-grid{min-height:auto;padding:115px 0 58px;gap:34px}.editor-body{padding:16px;font-size:.8rem}.stats-row{grid-template-columns:1fr;gap:16px;padding:0}.stat-card{padding:18px 24px;justify-content:flex-start}.dual-card{min-height:auto}.section-heading-row{align-items:start;flex-direction:column}.code-editor-window{min-height:260px}}@media(max-width:620px){.portfolio-grid{grid-template-columns:1fr}.sahara-copy h1{font-size:clamp(2.85rem,16vw,4.2rem)}.dual-card,.contact-form-card{padding:28px}.contact-fields-row{grid-template-columns:1fr;gap:18px}.mini-stats{flex-direction:column;gap:10px}.quote-card{padding:30px 26px}.impact-visual{min-height:360px}.education-screen{inset:24px 20px 104px}.lesson-board{inset:54px 24px 28px;gap:18px}.lesson-flow{gap:8px}.lesson-flow span{padding:12px 7px;font-size:.68rem}.workshop-card{right:20px;bottom:24px;left:20px;padding:20px}}.skill-grid-container{gap:20px}.skill-card-v2{display:flex;flex-direction:column;gap:18px;padding:24px;border:1px solid rgba(11,102,179,.1);border-radius:16px;background:#ffffffa6;backdrop-filter:blur(8px);box-shadow:0 4px 20px #0b1f3a05}.motion-ready .skill-card-v2.is-visible{transition:transform .3s cubic-bezier(.16,1,.3,1),border-color .3s cubic-bezier(.16,1,.3,1),box-shadow .3s cubic-bezier(.16,1,.3,1),background .3s cubic-bezier(.16,1,.3,1)}.skill-card-v2:hover{transform:translateY(-4px);border-color:#0b66b33d;background:#ffffffe6;box-shadow:0 16px 32px #0b66b314,0 1px 3px #0b66b305}.skill-card-header{display:flex;align-items:center;gap:12px}.skill-icon-v2{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;color:var(--primary);background:#0b66b312;transition:transform .4s cubic-bezier(.25,.8,.25,1),background .4s ease,color .4s ease}.skill-card-v2:hover .skill-icon-v2{transform:scale(1.06);background:var(--primary);color:var(--white)}.skill-card-v2 h3{margin:0;color:#2e2a26;font-size:1.1rem;font-weight:750;letter-spacing:-.01em}.skill-tags{display:flex;flex-wrap:wrap;gap:8px}.skill-tag{display:inline-flex;align-items:center;border:1px solid rgba(11,102,179,.1);border-radius:8px;padding:6px 10px;color:var(--warm-ink);background:#fffefa99;font-size:.82rem;font-weight:600;transition:background .24s ease,border-color .24s ease,color .24s ease,transform .24s ease}.skill-card-v2:hover .skill-tag{background:#fffefad9}.skill-tag:hover{transform:translateY(-1px);border-color:#0b66b352;color:var(--primary);background:#e8f4fc99!important;box-shadow:0 4px 8px #0b66b30a}
