@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;450;500;600&display=swap";:root{--sage-deep: #4F735D;--sage-bright: #76947D;--info-deep: #496F8F;--info-bright: #78A0BE;--gold-deep: #9A6B2F;--gold-bright: #C99A5A;--clay-deep: #A94E52;--clay-bright: #D6787C;--plum-deep: #6B4F76;--plum-bright: #9B7EA8;--sage: var(--sage-deep);--info: var(--info-deep);--gold: var(--gold-deep);--clay: var(--clay-deep);--plum: var(--plum-deep);--bg: #F5F7F4;--surface: #FFFFFF;--surface-2: #EEF2EE;--text: #172033;--text-secondary: #56635D;--text-muted: #7B867F;--border: #DCE2DD;--border-strong: #C3CCC5}@media(prefers-color-scheme:dark){:root{--sage: var(--sage-bright);--info: var(--info-bright);--gold: var(--gold-bright);--clay: var(--clay-bright);--plum: var(--plum-bright);--bg: #0B0F13;--surface: #111821;--surface-2: #182029;--text: #F2F5F1;--text-secondary: #AAB4AE;--text-muted: #7E8983;--border: #28322E;--border-strong: #39453F}}html{background:var(--bg);min-height:100%}body{margin:0;font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg);background-attachment:fixed;min-height:100vh;color:var(--text)}#root{min-height:100vh}code{font-family:IBM Plex Mono,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}a{text-decoration:none;color:inherit}.morse-animation-container{display:none}.morse-animation-container svg{width:100%;height:100%}.box{fill:#140f2899;stroke:#76947d;stroke-width:2.5;opacity:.7;filter:drop-shadow(0 0 10px rgba(118,148,125,.5));animation:gentleFloat 7s ease-in-out infinite}.box.energized{animation:boxEnergize .6s ease-out,gentleFloat 7s ease-in-out infinite}.connection{stroke:url(#electricGradient);stroke-width:4;opacity:.9;filter:drop-shadow(0 0 10px #76947D) drop-shadow(0 0 20px rgba(118,148,125,.5));animation:gentleFloat 6s ease-in-out infinite}.connection.jitter{animation:jitterEffect .3s ease-in-out,gentleFloat 6s ease-in-out infinite}.particle{fill:#76947d;opacity:0;filter:drop-shadow(0 0 6px #76947D) drop-shadow(0 0 12px #4F735D)}.particle.active{animation:particleFlow 1.2s ease-in-out forwards}.spark{opacity:0}.box-glow{fill:url(#glowGradient);opacity:0;filter:blur(20px)}.box-glow.active{animation:powerUp .8s ease-out forwards}.arc{opacity:0;filter:brightness(.5) drop-shadow(0 0 4px rgba(118,148,125,.4));pointer-events:none}.arc.active{animation:logoGlow .6s ease-out forwards}@keyframes logoGlow{0%{opacity:0;filter:brightness(.5) drop-shadow(0 0 4px rgba(118,148,125,.4))}20%,40%,60%,80%{opacity:.7;filter:brightness(.5) drop-shadow(0 0 8px rgba(118,148,125,.8)) drop-shadow(0 0 16px rgba(79,115,93,.6))}30%,50%,70%{opacity:.6;filter:brightness(.5) drop-shadow(0 0 6px rgba(118,148,125,.6))}to{opacity:0;filter:brightness(.5) drop-shadow(0 0 4px rgba(118,148,125,.4))}}.ambient-particle{fill:#4f735d;opacity:.3;animation:float 8s ease-in-out infinite}@keyframes gentleFloat{0%,to{transform:translate(0)}25%{transform:translate(calc(var(--tx1, 3px)),calc(var(--ty1, -4px)))}50%{transform:translate(calc(var(--tx2, -2px)),calc(var(--ty2, -6px)))}75%{transform:translate(calc(var(--tx3, -4px)),calc(var(--ty3, -3px)))}}@keyframes jitterEffect{0%,to{transform:translate(0)}10%{transform:translate(-2px,2px)}20%{transform:translate(2px,-2px)}30%{transform:translate(-2px,-1px)}40%{transform:translate(1px,2px)}50%{transform:translate(-1px,-2px)}60%{transform:translate(2px,1px)}70%{transform:translate(-2px,-2px)}80%{transform:translate(1px,-1px)}90%{transform:translate(-1px,1px)}}@keyframes boxEnergize{0%{filter:drop-shadow(0 0 10px rgba(118,148,125,.5));stroke-width:2.5}50%{filter:drop-shadow(0 0 25px rgba(118,148,125,1)) drop-shadow(0 0 40px rgba(79,115,93,.8));stroke-width:3.5}to{filter:drop-shadow(0 0 10px rgba(118,148,125,.5));stroke-width:2.5}}@keyframes particleFlow{0%{opacity:0;offset-distance:0%}20%{opacity:1}80%{opacity:1}to{opacity:0;offset-distance:100%}}@keyframes powerUp{0%{opacity:0}40%{opacity:.6}to{opacity:0}}@keyframes float{0%,to{transform:translate(0);opacity:.2}25%{transform:translate(10px,-15px);opacity:.4}50%{transform:translate(-5px,-30px);opacity:.3}75%{transform:translate(-15px,-15px);opacity:.4}}.claude-usage-section{position:relative}.claude-usage-header{display:flex;align-items:flex-start;justify-content:flex-start;gap:1rem;margin-bottom:1.25rem}.claude-usage-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;margin-bottom:3rem;flex-wrap:wrap}.claude-usage-status{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.5rem;font-size:.75rem;min-height:2.25rem}.range-toggle{display:inline-flex;align-items:stretch;border-radius:9999px;background:color-mix(in srgb,var(--surface) 60%,transparent);border:1px solid color-mix(in srgb,var(--sage-deep) 25%,transparent);overflow:hidden;padding:2px;gap:2px}.range-toggle-btn{appearance:none;background:transparent;border:none;color:var(--text-secondary);font-size:.7rem;text-transform:lowercase;letter-spacing:.04em;padding:.3rem .7rem;cursor:pointer;border-radius:9999px;transition:background .15s ease,color .15s ease}.range-toggle-btn:hover{color:var(--text)}.range-toggle-btn.is-active{background:color-mix(in srgb,var(--sage) 18%,transparent);color:var(--sage);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sage) 45%,transparent)}.status-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .75rem;border-radius:9999px;background:color-mix(in srgb,var(--surface) 60%,transparent);border:1px solid color-mix(in srgb,var(--sage-deep) 25%,transparent);font-size:.7rem;text-transform:lowercase;letter-spacing:.02em;color:var(--text)}.status-dot{width:.5rem;height:.5rem;border-radius:9999px;background:var(--sage);box-shadow:0 0 8px var(--sage);animation:pulse 2s ease-in-out infinite}.status-live{border-color:color-mix(in srgb,var(--sage) 45%,transparent)}.status-demo{border-color:color-mix(in srgb,var(--gold) 55%,transparent);background:color-mix(in srgb,var(--gold) 10%,transparent);color:var(--gold);text-transform:uppercase;letter-spacing:.08em;font-size:.65rem}.status-stale .status-dot{background:var(--gold);box-shadow:0 0 8px var(--gold);animation:none}.status-stale{border-color:color-mix(in srgb,var(--gold) 45%,transparent);color:var(--gold)}.status-error{border-color:color-mix(in srgb,var(--clay) 45%,transparent);color:var(--clay)}.status-loading{border-color:color-mix(in srgb,var(--text-muted) 35%,transparent);color:var(--text-secondary)}.spin{animation:spin 1.4s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.75)}}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:2rem}@media(min-width:1024px){.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1280px){.stat-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.stat-card .stat-card-inner{background:color-mix(in srgb,var(--surface) 70%,transparent);border-radius:.5rem;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.5rem;min-width:0;overflow:hidden}@media(min-width:1280px){.stat-card .stat-card-inner{padding:1.1rem 1rem}.stat-value{font-size:clamp(1.15rem,3.8vw,2.15rem)}}.stat-icon{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:9999px;color:#fff;background:linear-gradient(135deg,var(--sage-deep),var(--sage-bright));margin-bottom:.25rem}.stat-icon[data-accent=cyan]{background:linear-gradient(135deg,var(--sage-deep),var(--sage-bright))}.stat-icon[data-accent=violet]{background:linear-gradient(135deg,var(--info-deep),var(--info-bright))}.stat-icon[data-accent=purple]{background:linear-gradient(135deg,var(--plum-deep),var(--plum-bright))}.stat-icon[data-accent=pink]{background:linear-gradient(135deg,var(--gold-deep),var(--gold-bright))}.stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}.stat-value{font-size:clamp(1.75rem,5vw,2.5rem);font-weight:700;background:linear-gradient(135deg,var(--sage-deep),var(--sage-bright));-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.02em}.chart-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem;margin-bottom:2rem}@media(min-width:1024px){.chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.chart-card .chart-card-inner{background:color-mix(in srgb,var(--surface) 75%,transparent);border-radius:.5rem;padding:1.5rem;display:flex;flex-direction:column;gap:.75rem}.chart-card-header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.chart-card-title{font-size:.9rem;font-weight:600;color:var(--sage);letter-spacing:.02em}.chart-card-caption{font-size:.7rem;color:var(--text-muted);text-transform:lowercase}.chart-svg{width:100%;height:140px;display:block}.chart-legend{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.25rem;font-size:.7rem;color:var(--text-secondary)}.chart-legend-item{display:inline-flex;align-items:center;gap:.4rem}.chart-legend-dot{width:.6rem;height:.6rem;border-radius:2px}.donut-chart{display:grid;grid-template-columns:auto 1fr;gap:1.25rem;align-items:center}.donut-svg{width:140px;height:140px;max-width:40vw}.donut-legend{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem;font-size:.75rem;min-width:0}.donut-legend-row{display:grid;grid-template-columns:.6rem 1fr auto;gap:.5rem;align-items:center;color:var(--text)}.donut-legend-dot{width:.6rem;height:.6rem;border-radius:2px}.donut-legend-label{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.donut-legend-value{color:var(--text-muted);font-variant-numeric:tabular-nums}.bar-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.45rem;font-size:.75rem}.bar-list-row{display:grid;grid-template-columns:12rem 1fr auto;gap:.65rem;align-items:center}.bar-list-label{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-list-track{position:relative;height:.55rem;background:color-mix(in srgb,var(--text-muted) 12%,transparent);border-radius:9999px;overflow:hidden}.bar-list-fill{display:block;height:100%;background:linear-gradient(90deg,var(--sage-deep),var(--sage-bright));border-radius:9999px}.bar-list-value{color:var(--text-secondary);font-variant-numeric:tabular-nums}.hours-chart{display:flex;flex-direction:column;gap:.35rem}.hours-axis{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));color:var(--text-muted);font-size:.65rem;padding:0 2px}.hours-axis-tick{text-align:left;white-space:nowrap}.claude-usage-error{margin-bottom:2rem}.claude-usage-error-inner{background:color-mix(in srgb,var(--surface) 75%,transparent);border-radius:.5rem;padding:1rem 1.25rem;display:flex;gap:.75rem;align-items:flex-start}.link-button{background:none;border:none;color:var(--sage);cursor:pointer;padding:0;font-size:.85rem;text-decoration:underline;text-underline-offset:2px}.link-button:hover{color:var(--info)}.claude-usage-footnote{color:var(--text-muted);font-size:.75rem;text-align:center;margin-top:.5rem}@media(max-width:767px){.claude-usage-toolbar{align-items:stretch}.claude-usage-status{justify-content:flex-start}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:IBM Plex Sans,sans-serif;scroll-behavior:smooth;overflow-x:hidden}.portfolio{min-height:100vh;background:var(--bg);color:var(--text);position:relative}.portfolio>section{position:relative;z-index:10}.whoami-row{display:flex;align-items:center;gap:2rem}.whoami-text{text-align:left}.headshot-container{flex-shrink:0}.headshot{width:150px;height:150px;border-radius:50%;object-fit:cover;border:3px solid var(--sage-deep);box-shadow:0 0 20px color-mix(in srgb,var(--sage-deep) 40%,transparent),0 0 40px color-mix(in srgb,var(--sage-bright) 20%,transparent)}@media(min-width:768px){.headshot{width:180px;height:180px}}@media(max-width:640px){.whoami-row{flex-direction:column;text-align:center}.whoami-text{text-align:center}.whoami-text h1{font-size:3rem!important;margin-bottom:1rem!important;line-height:1.1}.whoami-text p{font-size:1.25rem!important;margin-bottom:1.5rem!important}.hero-grid{gap:1.5rem}.fluent-text{font-size:1.25rem!important}.hero-cta-group{justify-content:center}.hero-cta-btn{padding:.75rem!important}.hero-cta-label{display:none}}.hero-grid{display:flex;flex-direction:column;gap:4rem;align-items:center;text-align:center}.hero-left{display:flex;flex-direction:column;align-items:center}.hero-left .flex.gap-4{justify-content:center}.hero-right{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%}.fluent-content{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%}.morse-scaler{transform-origin:center bottom;will-change:transform}.fluent-text{font-size:1.75rem;font-weight:600;text-align:center}.fluent-static{color:var(--text-secondary)}.fluent-typing{background:linear-gradient(to right,var(--sage-deep),var(--sage-bright));-webkit-background-clip:text;background-clip:text;color:transparent}.typing-cursor{color:var(--sage);animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@media(min-width:768px){.fluent-text{font-size:2.25rem}}.mono{font-family:JetBrains Mono,monospace}.grid-pattern{background-image:linear-gradient(color-mix(in srgb,var(--sage-deep) 3%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--sage-deep) 3%,transparent) 1px,transparent 1px);background-size:50px 50px;animation:gridShift 20s linear infinite}@keyframes gridShift{0%{background-position:0 0}to{background-position:50px 50px}}.glow{filter:drop-shadow(0 0 20px color-mix(in srgb,var(--sage-deep) 30%,transparent))}.text-glow{text-shadow:0 0 30px color-mix(in srgb,var(--sage-deep) 50%,transparent)}.card-hover{transition:all .4s cubic-bezier(.4,0,.2,1)}.card-hover:hover{transform:translateY(-8px) scale(1.02)}.gradient-border{position:relative;background:linear-gradient(135deg,color-mix(in srgb,var(--sage-deep) 10%,transparent),color-mix(in srgb,var(--sage-bright) 10%,transparent));padding:2px}.gradient-border:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;background:linear-gradient(135deg,var(--sage-deep),var(--sage-bright));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:.5}@media(max-width:640px){.gradient-border{background:transparent;padding:0;border:1px solid color-mix(in srgb,var(--sage-deep) 30%,transparent)}.gradient-border:before{display:none}.timeline-card-header{flex-direction:column;gap:.25rem}.timeline-card-meta{text-align:left}}.skill-bar{transition:width 1.5s cubic-bezier(.4,0,.2,1)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes progressive-reveal{0%{opacity:0;transform:translateY(40px) scale(.97);filter:blur(6px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@supports (animation-timeline: view()){.reveal-on-scroll{animation:progressive-reveal linear both;animation-timeline:view();animation-range:entry 0% entry 45%}.reveal-early{animation-range:entry 0% entry 30%}}@media(prefers-reduced-motion:reduce){.reveal-on-scroll{animation:none!important}}.fade-in-up{animation:fadeInUp .8s ease-out forwards}.stagger-1{animation-delay:.1s;opacity:0}.stagger-2{animation-delay:.2s;opacity:0}.stagger-3{animation-delay:.3s;opacity:0}.stagger-4{animation-delay:.4s;opacity:0}.tech-tag{background:linear-gradient(135deg,color-mix(in srgb,var(--sage-deep) 20%,transparent),color-mix(in srgb,var(--sage-bright) 20%,transparent));border:1px solid color-mix(in srgb,var(--sage-deep) 30%,transparent)}.project-card{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:420px}.project-screenshot-wrap{position:relative;overflow:hidden;min-height:100%;background:var(--bg);border-right:1px solid var(--border)}.project-screenshot{width:100%;height:100%;object-fit:cover;object-position:top left;display:block;filter:saturate(1.05);transition:transform .8s cubic-bezier(.22,1,.36,1)}.project-card:hover .project-screenshot{transform:scale(1.03)}.project-screenshot-overlay{position:absolute;inset:0;pointer-events:none;opacity:.6;mix-blend-mode:multiply}.project-card-body{padding:2rem 2.25rem;display:flex;flex-direction:column;justify-content:center}.project-highlights{display:grid;gap:.4rem}@media(max-width:768px){.project-card{grid-template-columns:1fr;min-height:auto}.project-screenshot-wrap{aspect-ratio:16 / 10;border-right:none;border-bottom:1px solid var(--border)}.project-card-body{padding:1.5rem}}.carousel-container{position:relative;overflow:visible}.carousel-viewport{overflow:hidden;border-radius:.5rem}.carousel-track{display:flex;transition:transform .6s cubic-bezier(.4,0,.2,1)}.carousel-slide{min-width:100%;transition:opacity .6s ease}.carousel-nav-button{background:color-mix(in srgb,var(--surface) 90%,transparent);border:1px solid color-mix(in srgb,var(--sage-deep) 40%,transparent);transition:all .3s ease;position:absolute;top:50%;padding:1rem;border-radius:9999px;z-index:50;cursor:pointer;box-shadow:0 4px 20px #0000004d}.carousel-nav-button.prev{left:0;transform:translateY(-50%) translate(-1rem)}.carousel-nav-button.next{right:0;transform:translateY(-50%) translate(1rem)}.carousel-nav-button:hover{background:color-mix(in srgb,var(--sage-deep) 20%,transparent);border-color:color-mix(in srgb,var(--sage-deep) 60%,transparent)}.carousel-indicator{transition:all .3s ease;height:4px;width:32px;background:var(--border-strong)}.carousel-indicator.active{width:2rem;background:linear-gradient(90deg,var(--sage-deep),var(--sage-bright))}.timeline-item{opacity:.3;transform:translate(-20px);transition:all .6s cubic-bezier(.4,0,.2,1)}.timeline-item.expanded{opacity:1;transform:translate(0)}.timeline-content{max-height:0;overflow:hidden;opacity:0;transition:max-height .8s cubic-bezier(.4,0,.2,1),opacity .6s ease}.timeline-item.expanded .timeline-content{max-height:2000px;opacity:1}.timeline-dot{transition:all .4s ease;z-index:10;position:relative;border:2px solid white!important;box-shadow:0 0 0 2px var(--bg)}.timeline-item.expanded .timeline-dot{transform:scale(1.3);box-shadow:0 0 0 2px var(--bg),0 0 15px currentColor}.timeline-dot.from-sage-deep{border-color:var(--sage-bright)}.timeline-dot.from-info-deep{border-color:var(--info-bright)}.timeline-dot.from-gold-deep{border-color:var(--gold-bright)}.timeline-dot.from-clay-deep{border-color:var(--clay-bright)}.timeline-dot.from-plum-deep{border-color:var(--plum-bright)}.timeline-line{position:absolute;left:2.5rem;top:.85rem;width:3.5rem;height:2px;background:linear-gradient(to right,var(--sage-deep),transparent);transform-origin:left;transition:all .6s cubic-bezier(.4,0,.2,1)}.timeline-item.expanded .timeline-line{background:linear-gradient(to right,var(--sage-deep),var(--sage-bright),transparent)}@keyframes slideInFromLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.timeline-highlight{opacity:0;transform:translate(-30px);transition:opacity .4s ease-out,transform .4s ease-out}.timeline-item.expanded .timeline-highlight{opacity:1;transform:translate(0)}.timeline-item.expanded .timeline-highlight:nth-child(1){transition-delay:.1s}.timeline-item.expanded .timeline-highlight:nth-child(2){transition-delay:.2s}.timeline-item.expanded .timeline-highlight:nth-child(3){transition-delay:.3s}.timeline-item.expanded .timeline-highlight:nth-child(4){transition-delay:.4s}.timeline-item.expanded .timeline-highlight:nth-child(5){transition-delay:.5s}.experience-tag{background:linear-gradient(135deg,color-mix(in srgb,var(--sage-deep) 15%,transparent),color-mix(in srgb,var(--sage-bright) 15%,transparent));border:1px solid color-mix(in srgb,var(--sage-deep) 30%,transparent);transition:all .3s ease}.experience-tag:hover{background:linear-gradient(135deg,color-mix(in srgb,var(--sage-deep) 25%,transparent),color-mix(in srgb,var(--sage-bright) 25%,transparent));border-color:color-mix(in srgb,var(--sage-deep) 50%,transparent);transform:translateY(-2px)}.spark-box{transition:all .3s ease;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--sage-deep) 30%,transparent))}.spark-box.active{filter:drop-shadow(0 0 12px color-mix(in srgb,var(--sage-deep) 80%,transparent)) drop-shadow(0 0 20px color-mix(in srgb,var(--sage-deep) 40%,transparent));stroke:var(--sage-deep)}.pulse-glow{animation:pulseGlow 1.5s ease-in-out infinite}@keyframes pulseGlow{0%,to{opacity:.6;filter:drop-shadow(0 0 4px var(--sage-deep))}50%{opacity:1;filter:drop-shadow(0 0 12px var(--sage-deep)) drop-shadow(0 0 20px var(--sage-deep))}}.relative{position:relative}.fixed{position:fixed}.inset-0{inset:0}.flex{display:flex}.grid{display:grid}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-12{gap:3rem}.space-y-2>*+*{margin-top:.5rem}.space-y-4>*+*{margin-top:1rem}.space-y-6>*+*{margin-top:1.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-32{padding-top:8rem;padding-bottom:8rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.pb-16{padding-bottom:4rem}.pl-24{padding-left:6rem}.mb-1{margin-bottom:.25rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.ml-16{margin-left:4rem}.mt-1\.5{margin-top:.375rem}.mt-4{margin-top:1rem}.left-6{left:1.5rem}.left-8{left:2rem}.top-2{top:.5rem}.top-0{top:0}.bottom-0{bottom:0}.w-4{width:1rem}.w-12{width:3rem}.w-24{width:6rem}.w-32{width:8rem}.w-0\.5{width:.125rem}.w-1\.5{width:.375rem}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-2{height:.5rem}.h-4{height:1rem}.h-24{height:6rem}.h-32{height:8rem}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-9xl{font-size:8rem}.md\:text-3xl{font-size:1.875rem}}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-5xl{font-size:3rem}.text-7xl{font-size:4.5rem}.text-9xl{font-size:8rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-semibold{font-weight:600}.font-medium{font-weight:500}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-slate-700{border-color:var(--border-strong)}.border-slate-800{border-color:var(--border)}.border-cyan-500\/30{border-color:color-mix(in srgb,var(--sage-deep) 30%,transparent)}.bg-cyan-500\/10{background-color:color-mix(in srgb,var(--sage-deep) 10%,transparent)}.bg-slate-900\/20{background-color:color-mix(in srgb,var(--surface) 20%,transparent)}.bg-slate-900\/30{background-color:color-mix(in srgb,var(--surface) 30%,transparent)}.bg-slate-900\/50{background-color:color-mix(in srgb,var(--surface) 50%,transparent)}.bg-slate-800\/50{background-color:color-mix(in srgb,var(--surface-2) 50%,transparent)}.bg-slate-700{background-color:var(--border-strong)}.text-slate-200,.text-slate-300{color:var(--text)}.text-slate-400{color:var(--text-secondary)}.text-slate-500{color:var(--text-muted)}.text-cyan-400{color:var(--sage)}.text-white{color:#fff}.text-transparent{color:transparent}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.from-sage-deep{--tw-gradient-from: var(--sage-deep);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, transparent)}.to-sage-bright{--tw-gradient-to: var(--sage-bright)}.from-info-deep{--tw-gradient-from: var(--info-deep);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, transparent)}.to-info-bright{--tw-gradient-to: var(--info-bright)}.from-gold-deep{--tw-gradient-from: var(--gold-deep);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, transparent)}.to-gold-bright{--tw-gradient-to: var(--gold-bright)}.from-clay-deep{--tw-gradient-from: var(--clay-deep);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, transparent)}.to-clay-bright{--tw-gradient-to: var(--clay-bright)}.from-plum-deep{--tw-gradient-from: var(--plum-deep);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, transparent)}.to-plum-bright{--tw-gradient-to: var(--plum-bright)}.from-sage-brand{--tw-gradient-from: var(--sage-deep);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, transparent)}.to-sage-brand{--tw-gradient-to: var(--sage-bright)}.via-sage-brand{--tw-gradient-stops: var(--tw-gradient-from), var(--sage-bright), var(--tw-gradient-to, transparent)}.from-slate-900{--tw-gradient-from: var(--surface);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, transparent)}.to-slate-800{--tw-gradient-to: var(--border-strong)}.text-cyan-300{color:var(--sage)}.text-cyan-300\/80{color:color-mix(in srgb,var(--sage) 80%,transparent)}.tracking-wider{letter-spacing:.05em}.uppercase{text-transform:uppercase}.shadow-lg{box-shadow:0 10px 15px -3px #0000004d,0 4px 6px -2px #00000026}.text-\[10px\]{font-size:10px}.text-white\/95{color:#fffffff2}.text-white\/90{color:#ffffffe6}.leading-tight{line-height:1.15}.w-20{width:5rem}.absolute{position:absolute}.top-4{top:1rem}.left-4{left:1rem}.mt-0\.5{margin-top:.125rem}.mt-2{margin-top:.5rem}.mt-8{margin-top:2rem}.gap-0\.5{gap:.125rem}.gap-3{gap:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-5{margin-bottom:1.25rem}.bg-slate-900\/80{background-color:color-mix(in srgb,var(--surface) 80%,transparent)}.via-slate-900\/30{--tw-gradient-stops: var(--tw-gradient-from), color-mix(in srgb, var(--surface) 30%, transparent), var(--tw-gradient-to, transparent)}.to-transparent{--tw-gradient-to: transparent}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.items-start{align-items:flex-start}.justify-start{justify-content:flex-start}.min-h-screen{min-height:100vh}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.w-full{width:100%}.h-1{height:.25rem}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.flex-shrink-0{flex-shrink:0}.hidden{display:none}.transform{transform:translateZ(0)}.-translate-y-1\/2{transform:translateY(-50%)}.-translate-x-4{transform:translate(-1rem)}.translate-x-4{transform:translate(1rem)}.left-0{left:0}.right-0{right:0}.top-1\/2{top:50%}.rotate-12{transform:rotate(12deg)}.-rotate-12{transform:rotate(-12deg)}@media(min-width:1024px){.lg\:block{display:block}}.text-right{text-align:right}.text-xs{font-size:.75rem}.text-violet-400{color:var(--info)}.border-2{border-width:2px}.rounded-full{border-radius:9999px}.bg-slate-950{background-color:var(--bg)}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-cyan-500\/20{--tw-gradient-from: color-mix(in srgb, var(--sage-deep) 20%, transparent);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, transparent)}.to-violet-500\/20{--tw-gradient-to: color-mix(in srgb, var(--sage-bright) 20%, transparent)}.hover\:text-violet-400:hover{color:var(--info)}.transition-opacity{transition:opacity .3s}.duration-300{transition-duration:.3s}.opacity-0{opacity:0}.opacity-100{opacity:1}.transition-all{transition:all .3s}.hover\:border-cyan-500:hover{border-color:var(--sage)}.hover\:bg-slate-800\/50:hover{background-color:color-mix(in srgb,var(--surface-2) 50%,transparent)}.hover\:bg-slate-700\/50:hover{background-color:color-mix(in srgb,var(--surface-2) 70%,transparent)}.hover\:border-cyan-500\/50:hover{border-color:color-mix(in srgb,var(--sage-deep) 50%,transparent)}.hover\:border-cyan-500\/30:hover{border-color:color-mix(in srgb,var(--sage-deep) 30%,transparent)}.hover\:text-cyan-400:hover{color:var(--sage)}.hover\:opacity-90:hover{opacity:.9}.hover\:bg-slate-600:hover{background-color:var(--border-strong)}.text-center{text-align:center}.block{display:block}.mx-auto{margin-left:auto;margin-right:auto}.p-8{padding:2rem}.leading-relaxed{line-height:1.625}.flex-wrap{flex-wrap:wrap}.pt-4{padding-top:1rem}.flex-1{flex:1}.group:hover .group-hover\:text-cyan-400{color:var(--sage)}.transition-colors{transition:color .3s}.leading-snug{line-height:1.375}.book-card{display:flex;gap:1.25rem;align-items:flex-start;height:100%}.book-cover-wrap{width:92px;aspect-ratio:2 / 3;border-radius:.375rem;overflow:hidden;box-shadow:0 8px 20px #00000073;border:1px solid var(--border)}.book-cover{width:100%;height:100%;object-fit:cover;display:block}.book-cover-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.book-status{display:inline-flex;align-items:center;gap:.375rem;padding:.2rem .65rem;border-radius:9999px;font-size:.7rem;letter-spacing:.03em;border:1px solid}.book-status.in-progress{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 35%,transparent);background:color-mix(in srgb,var(--gold) 8%,transparent)}.book-status.in-progress:before{content:"";width:.4rem;height:.4rem;border-radius:9999px;background:var(--gold);animation:book-status-pulse 1.6s ease-in-out infinite}.book-status.finished{color:var(--sage);border-color:color-mix(in srgb,var(--sage) 35%,transparent);background:color-mix(in srgb,var(--sage) 8%,transparent)}@keyframes book-status-pulse{0%,to{opacity:1}50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.book-status.in-progress:before{animation:none}}@media(max-width:480px){.book-cover-wrap{width:72px}}.book-toggle{cursor:pointer}.certifications-grid{column-count:1;column-gap:1rem}@media(min-width:768px){.certifications-grid{column-count:2}}.certifications-grid .cert-card{break-inside:avoid;-webkit-column-break-inside:avoid;margin-bottom:1rem}.contact-icon-link{color:var(--text-muted);transition:color .2s ease;display:inline-flex;padding:.5rem}.contact-icon-link:hover,.contact-icon-link:focus-visible{color:var(--sage)}
