:root{--portfolio-primary:#1e6fa8;--portfolio-secondary:#17415d;--portfolio-success:#047857;--text:#1e293b;--text-muted:#4b5563;--bg:#fafafa;--card-bg:#ffffff;--border:#e2e8f0;--shadow:rgba(0, 0, 0, 0.1);--shadow-hover:rgba(0, 0, 0, 0.15);--text-shadow:0 2px 4px rgba(0, 0, 0, 0.3);--text-shadow-dark:0 2px 4px rgba(0, 0, 0, 0.5);--text-shadow-meta:0 1px 2px rgba(0, 0, 0, 0.2);--photo-surface-text:#ffffff}@media(prefers-color-scheme:dark){:root{--portfolio-primary:#5dade2;--portfolio-secondary:#17415d;--portfolio-success:#34d399;--text:#f1f5f9;--text-muted:#cbd5e1;--bg:#0a0f1a;--card-bg:#1e293b;--border:#334155;--shadow:rgba(0, 0, 0, 0.4);--shadow-hover:rgba(0, 0, 0, 0.6);--text-shadow:0 2px 4px rgba(0, 0, 0, 0.5);--text-shadow-dark:0 2px 4px rgba(0, 0, 0, 0.5);--text-shadow-meta:0 1px 2px rgba(0, 0, 0, 0.3);--photo-surface-text:#ffffff}}[data-theme=dark]{--portfolio-primary:#5dade2;--portfolio-secondary:#17415d;--portfolio-success:#34d399;--text:#f1f5f9;--text-muted:#cbd5e1;--bg:#0a0f1a;--card-bg:#1e293b;--border:#334155;--shadow:rgba(0, 0, 0, 0.4);--shadow-hover:rgba(0, 0, 0, 0.6);--text-shadow:0 2px 4px rgba(0, 0, 0, 0.5);--text-shadow-dark:0 2px 4px rgba(0, 0, 0, 0.5);--text-shadow-meta:0 1px 2px rgba(0, 0, 0, 0.3);--photo-surface-text:#ffffff}[data-theme=light]{--portfolio-primary:#1e6fa8;--portfolio-secondary:#17415d;--portfolio-success:#10b981;--text:#1e293b;--text-muted:#4b5563;--bg:#fafafa;--card-bg:#ffffff;--border:#e2e8f0;--shadow:rgba(0, 0, 0, 0.1);--shadow-hover:rgba(0, 0, 0, 0.15);--text-shadow:0 2px 4px rgba(0, 0, 0, 0.3);--text-shadow-dark:0 2px 4px rgba(0, 0, 0, 0.3);--text-shadow-meta:0 1px 2px rgba(0, 0, 0, 0.2);--photo-surface-text:#ffffff}@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.portfolio-container{max-width:1200px;margin:0 auto;padding:3rem 1.5rem;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,sans-serif;text-align:justify;color:var(--text)}.portfolio-header h1{font-size:3rem;font-weight:700;margin:0 0 1.5rem;background:linear-gradient(135deg,var(--portfolio-primary),var(--portfolio-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.portfolio-content{max-width:800px;margin:0 auto;font-size:1.125rem;line-height:1.7;color:var(--text-muted)}.portfolio-content h2{color:var(--text);font-size:2rem;font-weight:600;text-align:start;margin:3rem 0 1.5rem;padding-bottom:.75rem;border-bottom:3px solid var(--portfolio-primary)}.portfolio-content h3{color:var(--portfolio-primary);font-size:1.5rem;font-weight:600;text-align:start;margin:2rem 0 1rem}.portfolio-content p{margin-bottom:1.25rem}.portfolio-content strong{color:var(--text);font-weight:600}.portfolio-content ul{margin:1.5rem 0;padding:0;list-style:none}.portfolio-content li{margin-bottom:1rem;line-height:1.7;list-style:none}@media(max-width:768px){.portfolio-container{padding:2rem 1rem}.portfolio-header h1{font-size:2.25rem}.portfolio-content{font-size:1rem}.portfolio-content h2{font-size:1.75rem}.portfolio-content h3{font-size:1.25rem}}@media(max-width:480px){.portfolio-header h1{font-size:1.75rem}}.pf-slide-media.pf-slide-media--fallback,.pf-hero--fallback{background:radial-gradient(90% 80% at 82% 12%,rgba(125,195,240,.5) 0%,rgba(125,195,240,0) 60%),radial-gradient(75% 95% at 10% 90%,rgba(8,22,40,.55) 0%,rgba(8,22,40,0) 65%),radial-gradient(55% 55% at 35% 35%,rgba(93,173,226,.35) 0%,rgba(93,173,226,0) 70%),linear-gradient(135deg,var(--portfolio-primary),var(--portfolio-secondary))}.pf-slide-media--fallback::before,.pf-hero--fallback::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,7%) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,7%) 1px,transparent 1px);background-size:52px 52px;-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 88%);mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 88%);pointer-events:none}.pf-slide-media--fallback::after,.pf-hero--fallback::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.08;mix-blend-mode:overlay;pointer-events:none}.pf-fallback-year{position:absolute;z-index:1;line-height:.8;font-weight:800;letter-spacing:.02em;font-variant-numeric:tabular-nums;color:transparent;background-image:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,4%));-webkit-background-clip:text;background-clip:text;user-select:none;pointer-events:none}.pf-slide-media .pf-fallback-year{left:-.06em;bottom:-.08em;font-size:clamp(9rem,20vw,20rem)}.pf-hero--fallback .pf-fallback-year{right:-.05em;top:-.06em;font-size:clamp(7rem,16vw,15rem);background-image:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,3%))}@media(prefers-reduced-motion:no-preference){::view-transition-group(.pf-cover),::view-transition-group(.pf-title){animation-duration:350ms;animation-timing-function:cubic-bezier(.4,0,.2,1)}::view-transition-old(.pf-cover),::view-transition-new(.pf-cover){width:100%;height:100%;object-fit:cover;overflow:hidden}}html{scroll-snap-type:y mandatory;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-snap-type:none;scroll-behavior:auto}}.main{max-width:none;padding:0}.pf-slide{position:relative;display:flex;min-height:100vh;min-height:100svh;scroll-snap-align:start;overflow:hidden}.pf-slide--intro{min-height:calc(100vh - var(--header-height));min-height:calc(100svh - var(--header-height));scroll-snap-align:end;flex-direction:column;align-items:center;justify-content:center;gap:1.75rem;padding:1.5rem 1.5rem 1.25rem}.pf-intro-header{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;margin-top:auto}.pf-slide--intro h1{margin:0;font-size:clamp(2rem,3.5vw,3rem);font-weight:800;line-height:1.1;background:linear-gradient(135deg,var(--portfolio-primary),var(--portfolio-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.pf-intro-summary{margin:0;max-width:52rem;font-size:1rem;line-height:1.6;color:var(--text-muted)}.pf-intro-grid{display:grid;grid-template-columns:1fr;gap:2rem;width:100%;max-width:1080px}.pf-intro-col-title{margin:0 0 1rem;font-size:clamp(1.15rem,1.8vw,1.35rem);font-weight:700;line-height:1.2;color:var(--text)}.pf-intro-col-title::after{content:"";display:block;width:3rem;height:3px;margin-top:.5rem;border-radius:2px;background:var(--portfolio-primary)}.pf-scroll-hint{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:.25rem;color:var(--portfolio-primary);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;text-decoration:none;white-space:nowrap}.pf-scroll-hint:hover{color:var(--text)}.pf-scroll-hint:focus-visible{outline:2px solid var(--portfolio-primary);outline-offset:4px;border-radius:4px}@media(prefers-reduced-motion:no-preference){.pf-scroll-hint svg{animation:pf-bounce 2s ease-in-out infinite}}@keyframes pf-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}.pf-slide-link{display:flex;flex-direction:column;width:100%;color:inherit;text-decoration:none;cursor:pointer}.pf-slide-link:focus-visible{outline:3px solid var(--portfolio-primary);outline-offset:-3px}.pf-slide-media{position:relative;overflow:hidden;flex:none;height:45vh;height:45svh;background:var(--card-bg)}.pf-fallback-year{opacity:.8;transition:opacity .3s ease,transform .5s cubic-bezier(.16,1,.3,1)}.pf-slide-link:hover .pf-fallback-year{opacity:1;transform:translateY(-8px)}.pf-slide-media:not(.pf-slide-media--fallback) .pf-fallback-year{opacity:.55}.pf-slide-link:hover .pf-slide-media:not(.pf-slide-media--fallback) .pf-fallback-year{opacity:.75}.pf-slide-media .entry-cover{width:100%;height:100%;margin:0}.pf-slide-media .entry-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.16,1,.3,1)}.pf-slide-body{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:1rem;flex:auto;padding:2rem 1.5rem 3rem}.pf-kicker{margin:0;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--portfolio-primary)}.pf-slide-title{margin:0;font-size:clamp(1.6rem,3vw,2.5rem);font-weight:700;line-height:1.15;color:var(--text)}.pf-slide-dates{margin:0;font-size:.95rem;font-weight:500;color:var(--text-muted)}.pf-slide-summary{margin:0;max-width:38rem;font-size:1.05rem;line-height:1.7;color:var(--text-muted)}.pf-view-hint{display:inline-flex;align-items:center;gap:.4rem;margin-top:.25rem;font-size:.95rem;font-weight:600;color:var(--portfolio-primary);transition:color .2s ease}.pf-view-hint-arrow{transition:transform .3s ease}.pf-slide-link:hover .entry-cover img{transform:scale(1.03)}.pf-slide-link:hover .pf-slide-title{color:var(--portfolio-primary)}.pf-slide-link:hover .pf-view-hint{color:var(--text)}.pf-slide-link:hover .pf-view-hint-arrow{transform:translateX(4px)}@media(min-width:900px){.pf-slide-link{flex-direction:row;align-items:stretch}.pf-slide-media{width:57%;height:auto;min-height:100%}.pf-slide-body{width:43%;padding:clamp(2.5rem,5vw,5rem);padding-right:clamp(3rem,6vw,6rem);gap:1.1rem}}.portfolio-logo{object-fit:contain;background:0 0;border-radius:0;padding:0;box-shadow:none;transition:transform .2s ease}.svg-logo{display:flex;align-items:center;justify-content:center;color:var(--text)}.svg-logo svg{width:100%;height:100%;transition:fill .2s ease}.portfolio-logo.complex-svg{width:48px;height:48px;object-fit:contain}.portfolio-company-logos.top-left{position:absolute;top:1.25rem;left:1.25rem;z-index:5;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.4rem .6rem;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 12px var(--shadow)}.portfolio-company-logos .portfolio-logo{width:64px;height:auto}.pf-slide-body .portfolio-skill-logos.bottom-right{position:static;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-start;margin-top:.25rem}.portfolio-skill-logos .portfolio-logo{width:48px;height:48px}.pf-slide-link:hover .portfolio-logo{transform:scale(1.08)}@media(max-width:768px){.portfolio-skill-logos .portfolio-logo,.portfolio-logo.complex-svg{width:30px;height:30px}.portfolio-company-logos .portfolio-logo{width:48px;height:auto}.portfolio-company-logos.top-left{top:.75rem;left:.75rem}}@media(prefers-reduced-motion:no-preference){.pf-deck.pf-js .pf-slide .pf-kicker{transition:opacity .6s ease,transform .6s ease}.pf-deck.pf-js .pf-slide .pf-slide-title{transition:opacity .6s ease .08s,transform .6s ease .08s,color .3s ease}.pf-deck.pf-js .pf-slide .pf-slide-dates{transition:opacity .6s ease .16s,transform .6s ease .16s}.pf-deck.pf-js .pf-slide .pf-slide-summary{transition:opacity .6s ease .24s,transform .6s ease .24s}.pf-deck.pf-js .pf-slide .pf-slide-body .portfolio-skill-logos{transition:opacity .6s ease .32s,transform .6s ease .32s}.pf-deck.pf-js .pf-slide .pf-view-hint{transition:opacity .6s ease .4s,transform .6s ease .4s}.pf-deck.pf-js .pf-slide:not(.is-shown) .pf-kicker,.pf-deck.pf-js .pf-slide:not(.is-shown) .pf-slide-title,.pf-deck.pf-js .pf-slide:not(.is-shown) .pf-slide-dates,.pf-deck.pf-js .pf-slide:not(.is-shown) .pf-slide-summary,.pf-deck.pf-js .pf-slide:not(.is-shown) .pf-slide-body .portfolio-skill-logos,.pf-deck.pf-js .pf-slide:not(.is-shown) .pf-view-hint{opacity:0;transform:translateY(24px)}}.pf-deck-nav{position:fixed;right:1.25rem;top:50%;transform:translateY(-50%);z-index:10}.pf-deck-nav ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:flex-end;gap:.6rem}.pf-deck-nav li{display:flex;justify-content:flex-end}.pf-dot-group{position:relative}.pf-dot-group-label{position:absolute;right:calc(100% + .5rem);top:50%;transform:translateY(-50%);max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:.2rem .55rem;border-radius:6px;background:var(--card-bg);border:1px solid var(--border);box-shadow:0 2px 8px var(--shadow);opacity:0;pointer-events:none;transition:opacity .2s ease}.pf-deck-nav:hover .pf-dot-group-label,.pf-deck-nav:focus-within .pf-dot-group-label{opacity:1}.pf-dot{position:relative;display:block;width:10px;height:10px;border-radius:50%;border:2px solid var(--text-muted);background:0 0;transition:transform .2s ease,background-color .2s ease,border-color .2s ease}.pf-dot:hover{border-color:var(--portfolio-primary)}.pf-dot[aria-current=true]{background:var(--portfolio-primary);border-color:var(--portfolio-primary);transform:scale(1.3)}.pf-dot:focus-visible{outline:2px solid var(--portfolio-primary);outline-offset:3px}.pf-dot::after{content:attr(data-title);position:absolute;right:calc(100% + .75rem);top:50%;transform:translateY(-50%);z-index:11;padding:.3rem .6rem;border-radius:6px;background:var(--card-bg);color:var(--text);border:1px solid var(--border);box-shadow:0 4px 12px var(--shadow);font-size:.75rem;font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease}.pf-dot:hover::after,.pf-dot:focus-visible::after{opacity:1}@media(max-width:768px){.pf-deck-nav{right:.4rem}.pf-deck-nav ol{gap:.45rem}.pf-dot{width:8px;height:8px}.pf-dot-group-label,.pf-dot::after{display:none}}.pf-skill-group+.pf-skill-group{margin-top:.85rem}.pf-skill-label{margin:0 0 .4rem;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}.pf-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}.pf-chip{margin:0;padding:.2rem .65rem;border:1px solid var(--border);border-radius:999px;background:var(--card-bg);font-size:.8rem;line-height:1.4;color:var(--text);transition:border-color .2s ease}.pf-chip:hover{border-color:var(--portfolio-primary)}.pf-evolution{list-style:none;margin:0;padding:.25rem 0 0;position:relative}.pf-evolution::before{content:"";position:absolute;top:.35rem;bottom:.35rem;left:4px;width:2px;background:linear-gradient(to bottom,var(--portfolio-primary),transparent)}.pf-evolution-item{position:relative;padding-left:1.75rem}.pf-evolution-item+.pf-evolution-item{margin-top:.9rem}.pf-evolution-item::before{content:"";position:absolute;top:.35rem;left:0;width:10px;height:10px;border-radius:50%;background:var(--portfolio-primary);box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--portfolio-primary)}.pf-evolution-range{display:block;font-size:.85rem;font-weight:700;color:var(--portfolio-primary)}.pf-evolution-text{display:block;margin-top:.1rem;font-size:.9rem;line-height:1.5;color:var(--text-muted)}@media(min-width:900px){.pf-slide--intro{padding-right:4rem;padding-left:4rem}.pf-intro-grid{grid-template-columns:1fr 1fr;gap:3rem}}@media(prefers-reduced-motion:no-preference){.pf-deck.pf-js .pf-slide--intro .pf-intro-col--skills{transition:opacity .6s ease,transform .6s ease}.pf-deck.pf-js .pf-slide--intro .pf-intro-col--evolution{transition:opacity .6s ease .15s,transform .6s ease .15s}.pf-deck.pf-js .pf-slide--intro:not(.is-shown) .pf-intro-col--skills,.pf-deck.pf-js .pf-slide--intro:not(.is-shown) .pf-intro-col--evolution{opacity:0;transform:translateY(24px)}}.challenges-solutions-container{margin:2.5rem 0}.challenges-solutions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));align-items:start;gap:1.25rem;margin:0 auto;max-width:1200px}.cs-card{background-color:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius,8px);box-shadow:0 1px 2px var(--shadow);overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}.cs-card:hover{border-color:var(--portfolio-primary);box-shadow:0 2px 8px var(--shadow)}.cs-card[open]{border-color:var(--portfolio-primary)}.cs-card__summary{list-style:none;cursor:pointer;display:block;padding:1.25rem 1.5rem 0;position:relative}.cs-card__summary::-webkit-details-marker{display:none}.cs-card__summary:focus-visible{outline:2px solid var(--portfolio-primary);outline-offset:-2px}.cs-card--static{padding:1.25rem 1.5rem;display:block}.cs-card__kicker{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--portfolio-primary);margin-bottom:.65rem}.cs-card__challenge{display:block;color:var(--text);font-size:1.02rem;line-height:1.55;font-weight:500}.cs-card__challenge :is(code){font-size:.92em}.cs-card__challenge :is(strong,b){font-weight:700}.cs-card__toggle{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1.1rem;padding:.7rem 0 .9rem;border-top:1px solid var(--border);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.cs-card:hover .cs-card__toggle,.cs-card[open] .cs-card__toggle{color:var(--portfolio-primary)}.cs-card__chevron{width:.5rem;height:.5rem;border-right:1.5px solid;border-bottom:1.5px solid;transform:rotate(-45deg);transform-origin:center;flex-shrink:0;margin-right:.15rem}.cs-card[open] .cs-card__chevron{transform:rotate(45deg)}.cs-card__finding{padding:.25rem 1.5rem 1.4rem;border-left:3px solid var(--portfolio-primary);margin:0 1.5rem 1.25rem;padding-left:1rem}.cs-card__finding-label{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--portfolio-primary);margin-bottom:.6rem}.cs-card__finding-body{color:var(--text);line-height:1.65;font-size:.97rem}.cs-card__finding-body>:first-child{margin-top:0}.cs-card__finding-body>:last-child{margin-bottom:0}.cs-card__finding-body p{margin:0 0 .85rem}.cs-card__finding-body :is(code){font-size:.92em}@media(prefers-reduced-motion:no-preference){.cs-card{transition:border-color .25s ease,box-shadow .25s ease}.cs-card__chevron{transition:transform .25s ease}.cs-card__toggle{transition:color .2s ease}@supports(interpolate-size:allow-keywords){.cs-card{interpolate-size:allow-keywords}.cs-card::details-content{block-size:0;overflow:clip;opacity:0;transform:translateY(-4px);transition:block-size .32s ease,content-visibility .32s ease allow-discrete,opacity .28s ease,transform .28s ease}.cs-card[open]::details-content{block-size:auto;opacity:1;transform:translateY(0)}}}@media(max-width:600px){.cs-card__summary,.cs-card--static{padding-left:1.15rem;padding-right:1.15rem}.cs-card__finding{margin-left:1.15rem;margin-right:1.15rem}}