: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}}.pf-shader-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:-1;opacity:0;pointer-events:none;transition:opacity .6s ease}.pf-shader-canvas.is-active{opacity:1}.pf-shader-fallback-bg{position:fixed;inset:0;z-index:-2;pointer-events:none}.pf-hero{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);min-height:55vh;max-height:70vh;overflow:hidden;display:flex;align-items:flex-end}.pf-hero .entry-cover{position:absolute;inset:0;margin:0;max-width:none;width:100%;height:100%}.pf-hero .entry-cover img{width:100%;height:100%;display:block;object-fit:cover}.pf-hero .entry-cover figcaption{position:absolute;bottom:.5rem;right:1rem;z-index:3;margin:0;font-size:.8rem;font-style:italic;color:var(--photo-surface-text);opacity:.75;text-shadow:var(--text-shadow-meta)}.pf-hero--fallback{min-height:40vh;background:0 0}.pf-hero--fallback::before,.pf-hero--fallback::after{content:none}[data-theme=light] .pf-hero--fallback .pf-hero-overlay,html:not([data-theme]) .pf-hero--fallback .pf-hero-overlay{background:linear-gradient(to bottom,rgba(250,250,250,0) 0%,rgba(250,250,250,.65) 100%)}[data-theme=light] .pf-hero--fallback .pf-hero-content h1,html:not([data-theme]) .pf-hero--fallback .pf-hero-content h1{color:var(--text);text-shadow:none}[data-theme=light] .pf-hero--fallback .pf-hero-dates,html:not([data-theme]) .pf-hero--fallback .pf-hero-dates{color:var(--text-muted);text-shadow:none;opacity:1}[data-theme=light] .pf-hero--fallback .pf-fallback-year,html:not([data-theme]) .pf-hero--fallback .pf-fallback-year{background-image:linear-gradient(180deg,rgba(30,41,59,.14),rgba(30,41,59,3%))}@media(prefers-color-scheme:dark){html:not([data-theme]) .pf-hero--fallback .pf-hero-overlay{background:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.55) 100%)}html:not([data-theme]) .pf-hero--fallback .pf-hero-content h1{color:var(--photo-surface-text);text-shadow:var(--text-shadow)}html:not([data-theme]) .pf-hero--fallback .pf-hero-dates{color:var(--photo-surface-text);text-shadow:var(--text-shadow-meta);opacity:.85}html:not([data-theme]) .pf-hero--fallback .pf-fallback-year{background-image:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,3%))}}.pf-hero-overlay{position:relative;z-index:2;width:100%;padding:5rem 0 0;background:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.55) 100%)}.pf-hero-content{max-width:1200px;margin:0 auto;padding:0 1.5rem 2rem;animation:fadeInUp .8s ease-out backwards}.pf-hero-content h1{margin:0 0 .5rem;font-size:clamp(2rem,5vw,3.25rem);font-weight:700;line-height:1.15;color:var(--photo-surface-text);text-shadow:var(--text-shadow)}.pf-hero-content .portfolio-single-meta{margin:0}.pf-hero-dates{font-size:1rem;font-style:italic;color:var(--photo-surface-text);opacity:.85;text-shadow:var(--text-shadow-meta)}.main:has(.portfolio-single){max-width:calc(1360px + var(--gap) * 2)}.pf-detail-grid{display:grid;grid-template-columns:minmax(240px,300px)1fr;gap:3rem;align-items:start;padding-top:2.5rem;max-width:1360px}.pf-meta-panel{position:sticky;top:1.5rem;display:flex;flex-direction:column;gap:1.5rem;background:color-mix(in srgb,var(--card-bg) 78%,transparent);-webkit-backdrop-filter:blur(14px)saturate(1.3);backdrop-filter:blur(14px)saturate(1.3);border:1px solid var(--border);border-radius:var(--radius,8px);padding:1.5rem;box-shadow:0 2px 8px var(--shadow);text-align:start;animation:fadeInUp .6s ease-out backwards;animation-delay:.1s}@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.pf-meta-panel{background:var(--card-bg)}}.pf-back{display:inline-block;font-size:.9rem;font-weight:500;color:var(--portfolio-primary);text-decoration:none;transition:transform .2s ease,color .2s ease}.pf-back:hover{text-decoration:underline;transform:translateX(-3px)}.pf-meta-dates{margin:0;font-size:.95rem;font-style:italic;color:var(--text-muted)}.pf-meta-label{display:block;margin-bottom:.6rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.pf-meta-panel .portfolio-company-logos,.pf-meta-panel .portfolio-skill-logos{position:static;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:0;background:0 0}.pf-meta-panel .portfolio-logo{display:flex;align-items:center;color:var(--text);width:auto}.pf-meta-panel .portfolio-company-logos .portfolio-logo{height:40px}.pf-meta-panel .portfolio-skill-logos .portfolio-logo{height:32px}.pf-meta-panel .portfolio-logo svg{height:100%;width:auto}img.portfolio-logo{object-fit:contain}.pf-detail-main{max-width:80ch;margin:0;padding:1.75rem 2rem 2rem;background:color-mix(in srgb,var(--bg) 74%,transparent);-webkit-backdrop-filter:blur(10px)saturate(1.15);backdrop-filter:blur(10px)saturate(1.15);border-radius:var(--radius,8px);animation:fadeInUp .8s ease-out backwards;animation-delay:.2s}@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.pf-detail-main{background:var(--bg)}}.pf-detail-main h2{font-size:1.5rem;font-weight:600;border-bottom:1px solid var(--border);padding-bottom:.5rem;margin:2.75rem 0 1.25rem}.pf-detail-main h3{font-size:1.15rem;font-weight:600;color:var(--text);margin:2rem 0 .75rem}.portfolio-content h3+ul{margin-top:1.5rem}.portfolio-content h3+ul li{margin-bottom:1rem;line-height:1.7;animation:fadeInUp .6s ease-out backwards}.portfolio-content h3+ul li:nth-child(1){animation-delay:.3s}.portfolio-content h3+ul li:nth-child(2){animation-delay:.4s}.portfolio-content h3+ul li:nth-child(3){animation-delay:.5s}.portfolio-content h3+ul li:nth-child(4){animation-delay:.6s}.portfolio-content h3+ul li:nth-child(5){animation-delay:.7s}.portfolio-content li{position:relative;padding-left:1.5rem}.portfolio-content li::before{content:"•";position:absolute;left:0;color:var(--portfolio-primary);font-weight:700}.portfolio-content a{color:var(--portfolio-primary);text-decoration:none}.portfolio-content a:hover{color:var(--portfolio-secondary);text-decoration:underline}.pf-fact-row{margin:0 0 2rem}.portfolio-content .pf-fact-row__list{display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem;margin:0;padding:0;list-style:none}.portfolio-content .pf-fact-row__item{position:static;display:flex;flex-direction:column;gap:.3rem;min-width:5.5rem;margin:0;padding:0}.portfolio-content .pf-fact-row__item::before{content:none}.pf-fact-row__value{font-size:1.5rem;font-weight:600;line-height:1.15;font-variant-numeric:tabular-nums;color:var(--text)}.pf-fact-row__label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.pf-citation-note{margin:0 0 2.5rem;padding:1.25rem 1.5rem;background:color-mix(in srgb,var(--card-bg) 55%,transparent);border-left:3px solid var(--portfolio-primary);border-radius:0 var(--radius,8px)var(--radius,8px)0}.pf-citation-note__badge{display:inline-block;margin:0 0 .75rem;padding:.2em .7em;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--portfolio-primary);background:color-mix(in srgb,var(--portfolio-primary) 12%,transparent);border-radius:999px}.pf-citation-note h2.pf-citation-note__title{margin:0 0 .5rem;padding:0;border:none;font-size:1.2rem;font-weight:700;line-height:1.4;color:var(--text);text-align:start}.pf-citation-note__authors{margin:0 0 .4rem;font-style:italic;color:var(--text-muted)}.pf-citation-note__meta{margin:0 0 .75rem;font-size:.875rem;line-height:1.5;color:var(--text-muted)}.pf-citation-note__link{display:inline-block;font-weight:600;color:var(--portfolio-primary);text-decoration:none;transition:color .2s ease,transform .2s ease}.pf-citation-note__link:hover{color:var(--portfolio-secondary);text-decoration:underline;transform:translateX(2px)}.portfolio-post-nav{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border);display:grid;grid-template-columns:1fr 1fr;gap:1rem;animation:fadeInUp .6s ease-out backwards;animation-delay:.4s}.pf-detail-main .portfolio-post-nav a{display:flex;flex-direction:column;gap:.5rem;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius,8px);padding:1rem 1.25rem;color:var(--text);text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.pf-detail-main .portfolio-post-nav a:hover{transform:translateY(-3px);box-shadow:0 6px 16px var(--shadow);border-color:var(--portfolio-primary);color:var(--portfolio-primary);text-decoration:none}.pf-detail-main .portfolio-post-nav a:hover .nav-label{color:var(--portfolio-primary)}.portfolio-post-nav .prev:hover .nav-arrow{transform:translateX(-3px)}.portfolio-post-nav .next:hover .nav-arrow{transform:translateX(3px)}.portfolio-post-nav .prev{grid-column:1;text-align:start}.portfolio-post-nav .next{grid-column:2;text-align:end}.portfolio-post-nav .nav-label{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.portfolio-post-nav .nav-arrow{display:inline-block;color:var(--portfolio-primary);transition:transform .2s ease}.portfolio-post-nav .nav-title{font-size:1rem;font-weight:600;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:900px){.pf-hero{min-height:40vh}.pf-hero--fallback{min-height:32vh}.pf-detail-grid{grid-template-columns:1fr;gap:1.5rem;padding-top:1.5rem}.pf-meta-panel{position:static;flex-direction:row;flex-wrap:wrap;align-items:flex-start;gap:1rem 2.5rem;padding:1rem 1.25rem}.pf-meta-panel .pf-back{flex-basis:100%}.pf-detail-main{max-width:none}}@media(max-width:600px){.pf-hero-overlay{padding-top:3.5rem}.pf-hero-content{padding:0 1rem 1.25rem}.portfolio-post-nav{grid-template-columns:1fr}.portfolio-post-nav .prev,.portfolio-post-nav .next{grid-column:1;text-align:start}.portfolio-content p{padding-left:0;margin-left:0}.pf-detail-main{padding:1.25rem 1.25rem 1.5rem}.portfolio-content .pf-fact-row__list{gap:1.25rem 1.75rem}}@media(prefers-reduced-motion:reduce){.pf-hero-content,.pf-meta-panel,.pf-detail-main,.portfolio-content h3+ul li,.portfolio-post-nav{animation:none}.pf-back,.pf-detail-main .portfolio-post-nav a,.portfolio-post-nav .nav-arrow,.pf-shader-canvas,.pf-citation-note__link{transition:none}.pf-back:hover,.pf-detail-main .portfolio-post-nav a:hover{transform:none}.portfolio-post-nav .prev:hover .nav-arrow,.portfolio-post-nav .next:hover .nav-arrow{transform:none}.pf-citation-note__link:hover{transform:none}}.pf-single--nightdrive .pf-shader-fallback-bg{background:radial-gradient(120% 60% at 50% 78%,rgba(93,173,226,.28) 0%,rgba(93,173,226,0) 60%),linear-gradient(180deg,#eef3f7 0%,#dbe6ee 100%)}@media(prefers-color-scheme:dark){.pf-single--nightdrive .pf-shader-fallback-bg{background:radial-gradient(120% 60% at 50% 78%,rgba(93,173,226,.4) 0%,rgba(93,173,226,0) 60%),linear-gradient(180deg,#050810 0%,#0d1420 100%)}}[data-theme=dark] .pf-single--nightdrive .pf-shader-fallback-bg{background:radial-gradient(120% 60% at 50% 78%,rgba(93,173,226,.4) 0%,rgba(93,173,226,0) 60%),linear-gradient(180deg,#050810 0%,#0d1420 100%)}[data-theme=light] .pf-single--nightdrive .pf-shader-fallback-bg{background:radial-gradient(120% 60% at 50% 78%,rgba(93,173,226,.28) 0%,rgba(93,173,226,0) 60%),linear-gradient(180deg,#eef3f7 0%,#dbe6ee 100%)}.pf-single--nightdrive .pf-meta-panel{box-shadow:0 2px 8px var(--shadow),0 12px 28px -18px color-mix(in srgb,var(--portfolio-primary) 45%,transparent)}.pf-single--convergence .pf-shader-fallback-bg{background:radial-gradient(90% 70% at 50% 115%,rgba(93,173,226,.22) 0%,rgba(93,173,226,0) 60%),linear-gradient(180deg,#f7f8f9 0%,#eef1f3 100%)}@media(prefers-color-scheme:dark){.pf-single--convergence .pf-shader-fallback-bg{background:radial-gradient(90% 70% at 50% 115%,rgba(93,173,226,.3) 0%,rgba(93,173,226,0) 60%),linear-gradient(180deg,#090d14 0%,#0d131e 100%)}}[data-theme=dark] .pf-single--convergence .pf-shader-fallback-bg{background:radial-gradient(90% 70% at 50% 115%,rgba(93,173,226,.3) 0%,rgba(93,173,226,0) 60%),linear-gradient(180deg,#090d14 0%,#0d131e 100%)}[data-theme=light] .pf-single--convergence .pf-shader-fallback-bg{background:radial-gradient(90% 70% at 50% 115%,rgba(93,173,226,.22) 0%,rgba(93,173,226,0) 60%),linear-gradient(180deg,#f7f8f9 0%,#eef1f3 100%)}.pf-single--convergence .pf-citation-note{position:relative;border-left:none;padding-left:1.5rem}.pf-single--convergence .pf-citation-note::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:3px;background:linear-gradient(180deg,var(--portfolio-primary),var(--portfolio-secondary))}.pf-single--signal .pf-shader-fallback-bg{background:radial-gradient(60% 50% at 25% 20%,rgba(93,173,226,.18) 0%,rgba(93,173,226,0) 65%),radial-gradient(55% 45% at 78% 70%,rgba(23,65,93,.14) 0%,rgba(23,65,93,0) 65%),linear-gradient(180deg,#f7f8f9 0%,#eef1f3 100%)}@media(prefers-color-scheme:dark){.pf-single--signal .pf-shader-fallback-bg{background:radial-gradient(60% 50% at 25% 20%,rgba(93,173,226,.22) 0%,rgba(93,173,226,0) 65%),radial-gradient(55% 45% at 78% 70%,rgba(23,65,93,.28) 0%,rgba(23,65,93,0) 65%),linear-gradient(180deg,#0a0f1a 0%,#0e1420 100%)}}[data-theme=dark] .pf-single--signal .pf-shader-fallback-bg{background:radial-gradient(60% 50% at 25% 20%,rgba(93,173,226,.22) 0%,rgba(93,173,226,0) 65%),radial-gradient(55% 45% at 78% 70%,rgba(23,65,93,.28) 0%,rgba(23,65,93,0) 65%),linear-gradient(180deg,#0a0f1a 0%,#0e1420 100%)}[data-theme=light] .pf-single--signal .pf-shader-fallback-bg{background:radial-gradient(60% 50% at 25% 20%,rgba(93,173,226,.18) 0%,rgba(93,173,226,0) 65%),radial-gradient(55% 45% at 78% 70%,rgba(23,65,93,.14) 0%,rgba(23,65,93,0) 65%),linear-gradient(180deg,#f7f8f9 0%,#eef1f3 100%)}.pf-single--signal .pf-fact-row__list{position:relative;background:radial-gradient(60% 140% at 0% 50%,color-mix(in srgb,var(--portfolio-primary) 6%,transparent) 0%,transparent 70%)}.pf-single--isolines .pf-shader-fallback-bg{background:linear-gradient(180deg,#f7f4ee 0%,#efeadf 100%)}@media(prefers-color-scheme:dark){.pf-single--isolines .pf-shader-fallback-bg{background:linear-gradient(180deg,#090b10 0%,#0d1016 100%)}}[data-theme=dark] .pf-single--isolines .pf-shader-fallback-bg{background:linear-gradient(180deg,#090b10 0%,#0d1016 100%)}[data-theme=light] .pf-single--isolines .pf-shader-fallback-bg{background:linear-gradient(180deg,#f7f4ee 0%,#efeadf 100%)}.pf-single--isolines .pf-citation-note{border-color:color-mix(in srgb,#a8895f 35%,var(--border))}.portfolio-content hr{border:0;height:0;width:64px;margin:2.5rem auto;border-top:2px dotted var(--border);opacity:.7}.portfolio-content .app-card+p,.portfolio-content p+.app-card{margin-top:1.25rem}.app-card{--app-card-pad:clamp(1.25rem, 2.5vw, 1.75rem);--app-icon-size:76px;position:relative;margin:2rem 0;padding:var(--app-card-pad);background:var(--card-bg,var(--bg));border:1px solid var(--border);border-radius:var(--radius,14px);box-shadow:0 1px 2px rgba(0,0,0,4%),0 8px 24px -16px rgba(0,0,0,.18);overflow:hidden;isolation:isolate}.app-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--portfolio-primary),var(--portfolio-secondary));opacity:.85;z-index:1}.app-card--archived::before{background:linear-gradient(90deg,#c98a16,#e0a93a);opacity:.7}@media(prefers-reduced-motion:no-preference){.app-card{transition:transform 220ms ease,box-shadow 220ms ease,border-color 220ms ease}.app-card:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(0,0,0,5%),0 18px 38px -18px rgba(0,0,0,.28);border-color:color-mix(in srgb,var(--portfolio-primary) 30%,var(--border))}}.app-card__head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:1.1rem;row-gap:.85rem;margin-bottom:1rem}.app-card__icon{width:var(--app-icon-size);height:var(--app-icon-size);border-radius:24%;overflow:hidden;background:linear-gradient(135deg,var(--portfolio-primary),var(--portfolio-secondary));box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),0 4px 12px -4px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;flex-shrink:0}.app-card__icon img{width:100%;height:100%;object-fit:cover;display:block}.app-card__icon-fallback{color:#fff;font-weight:700;font-size:calc(var(--app-icon-size) * .45);line-height:1;font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,sans-serif}.app-card__head-body{min-width:0;display:flex;flex-direction:column;gap:.5rem}.portfolio-content .app-card__name,.app-card__name{margin:0;padding:0;font-size:clamp(1.15rem,2.2vw,1.4rem);font-weight:700;color:var(--text);line-height:1.25;text-align:start;border:none;background:0 0}.app-card__chips{display:flex;flex-wrap:wrap;gap:.4rem}.app-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.18rem .55rem .18rem .45rem;font-size:.75rem;font-weight:600;line-height:1.4;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--text) 4%,transparent);color:var(--text-muted);white-space:nowrap}.app-chip__icon{display:block;flex-shrink:0}.app-chip--platform{color:var(--portfolio-primary);border-color:color-mix(in srgb,var(--portfolio-primary) 35%,var(--border));background:color-mix(in srgb,var(--portfolio-primary) 8%,transparent)}.app-card__cta{justify-self:end;display:inline-flex;align-items:center;text-decoration:none!important}.app-card__cta--play{padding:0}.app-card__play-badge{display:block;height:56px;width:auto}.app-card__cta--archived{gap:6px;padding:8px 16px;border-radius:8px;font-weight:500;font-size:.9rem;white-space:nowrap;background:var(--bg);color:var(--portfolio-primary);border:2px solid var(--portfolio-primary)}.app-card__cta--archived:hover,.app-card__cta--archived:focus-visible{background:var(--portfolio-primary);color:var(--photo-surface-text)}@media(prefers-reduced-motion:no-preference){.app-card__cta{transition:transform 180ms ease}.app-card__cta:hover{transform:scale(1.04)}.app-card__cta:active{transform:scale(.98)}}.app-card__description{margin:0 0 1.25rem;color:var(--text-muted);line-height:1.6;font-size:1rem}.app-card__rail{display:flex;gap:1rem;overflow-x:auto;overflow-y:hidden;padding:.5rem .25rem 1rem;margin:0 calc(var(--app-card-pad) * -.5);scroll-snap-type:x mandatory;scroll-padding-inline:.25rem;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--portfolio-primary) 60%,transparent)transparent;-webkit-overflow-scrolling:touch}.app-card__rail:focus-visible{outline:2px solid var(--portfolio-primary);outline-offset:2px;border-radius:6px}.app-card__rail::-webkit-scrollbar{height:8px}.app-card__rail::-webkit-scrollbar-track{background:0 0}.app-card__rail::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--portfolio-primary) 55%,transparent);border-radius:4px}.app-card__rail::-webkit-scrollbar-thumb:hover{background:var(--portfolio-primary)}.app-card__shot{flex:none;height:360px;width:auto;border-radius:12px;border:1px solid var(--border);background:var(--card-bg);scroll-snap-align:start}@media(max-width:768px){.app-card{--app-icon-size:64px}.app-card__head{grid-template-columns:auto 1fr;column-gap:.9rem}.app-card__cta{grid-column:1/-1;justify-self:center}.app-card__shot{height:300px}}@media(max-width:480px){.app-card{--app-icon-size:56px}.app-card__name{font-size:1.05rem}.app-card__description{font-size:.95rem}.app-card__play-badge{height:44px}.app-card__shot{height:250px}}.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}}.pf-stack{margin:1.25rem 0 2rem;padding:0;display:grid;gap:0;border-top:1px solid var(--border)}.pf-stack__row{display:grid;grid-template-columns:minmax(8rem,.28fr)1fr;align-items:baseline;gap:1rem 1.5rem;padding:.7rem 0;border-bottom:1px solid var(--border)}.pf-stack__label{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);line-height:1.4}.pf-stack__values{margin:0;display:flex;flex-wrap:wrap;gap:.4rem .45rem}.pf-stack__chip{display:inline-flex;align-items:center;padding:.18rem .6rem;font-size:.85rem;line-height:1.4;color:var(--text);background:color-mix(in srgb,var(--portfolio-primary) 6%,transparent);border:1px solid color-mix(in srgb,var(--portfolio-primary) 22%,var(--border));border-radius:999px}[data-theme=dark] .pf-stack__chip{background:color-mix(in srgb,var(--portfolio-primary) 12%,transparent);border-color:color-mix(in srgb,var(--portfolio-primary) 35%,var(--border))}.pf-impact{list-style:none;margin:1.25rem 0 2rem;padding:0;display:grid;gap:0}.pf-impact__item{position:relative;margin:0;padding:.65rem 0 .65rem 1.85rem;line-height:1.6;color:var(--text);border-bottom:1px solid var(--border)}.pf-impact__item:last-child{border-bottom:none}.pf-impact__item::before{content:"";position:absolute;left:.25rem;top:1.05rem;width:.6rem;height:.6rem;border-right:2px solid var(--portfolio-primary);border-top:2px solid var(--portfolio-primary);transform:rotate(45deg)}.portfolio-content .pf-impact .pf-impact__item::before{content:""}@media(max-width:600px){.pf-stack__row{grid-template-columns:1fr;gap:.4rem;padding:.75rem 0}}.portfolio-gallery{display:flex;flex-wrap:wrap;width:100%;margin:1rem auto;gap:1rem;justify-content:center}.portfolio-container .portfolio-gallery,.portfolio-content .portfolio-gallery,.post-content .portfolio-gallery{width:100%;margin-left:auto;margin-right:auto}.portfolio-gallery img{object-fit:cover;height:auto;border-radius:.5rem;box-shadow:0 2px 8px var(--shadow);transition:transform .3s ease,box-shadow .3s ease}.grid-w10{width:calc(10% - 1rem);margin:0!important}.grid-w15{width:calc(15% - 1rem);margin:0!important}.grid-w20{width:calc(20% - 1rem);margin:0!important}.grid-w25{width:calc(25% - 1rem);margin:0!important}.grid-w30{width:calc(30% - 1rem);margin:0!important}.grid-w33{width:calc(33% - 1rem);margin:0!important}.grid-w35{width:calc(35% - 1rem);margin:0!important}.grid-w40{width:calc(40% - 1rem);margin:0!important}.grid-w45{width:calc(45% - 1rem);margin:0!important}.grid-w50{width:calc(50% - 1rem);margin:0!important}.grid-w55{width:calc(55% - 1rem);margin:0!important}.grid-w60{width:calc(60% - 1rem);margin:0!important}.grid-w65{width:calc(65% - 1rem);margin:0!important}.grid-w66{width:calc(66% - 1rem);margin:0!important}.grid-w70{width:calc(70% - 1rem);margin:0!important}.grid-w75{width:calc(75% - 1rem);margin:0!important}.grid-w80{width:calc(80% - 1rem);margin:0!important}.grid-w85{width:calc(85% - 1rem);margin:0!important}.grid-w90{width:calc(90% - 1rem);margin:0!important}.grid-w95{width:calc(95% - 1rem);margin:0!important}.grid-w100{width:calc(100% - 1rem);margin:0!important}@media(min-width:640px){.sm\:grid-w10{width:calc(10% - 1rem);margin:0!important}.sm\:grid-w15{width:calc(15% - 1rem);margin:0!important}.sm\:grid-w20{width:calc(20% - 1rem);margin:0!important}.sm\:grid-w25{width:calc(25% - 1rem);margin:0!important}.sm\:grid-w30{width:calc(30% - 1rem);margin:0!important}.sm\:grid-w33{width:calc(33% - 1rem);margin:0!important}.sm\:grid-w35{width:calc(35% - 1rem);margin:0!important}.sm\:grid-w40{width:calc(40% - 1rem);margin:0!important}.sm\:grid-w45{width:calc(45% - 1rem);margin:0!important}.sm\:grid-w50{width:calc(50% - 1rem);margin:0!important}.sm\:grid-w55{width:calc(55% - 1rem);margin:0!important}.sm\:grid-w60{width:calc(60% - 1rem);margin:0!important}.sm\:grid-w65{width:calc(65% - 1rem);margin:0!important}.sm\:grid-w66{width:calc(66% - 1rem);margin:0!important}.sm\:grid-w70{width:calc(70% - 1rem);margin:0!important}.sm\:grid-w75{width:calc(75% - 1rem);margin:0!important}.sm\:grid-w80{width:calc(80% - 1rem);margin:0!important}.sm\:grid-w85{width:calc(85% - 1rem);margin:0!important}.sm\:grid-w90{width:calc(90% - 1rem);margin:0!important}.sm\:grid-w95{width:calc(95% - 1rem);margin:0!important}.sm\:grid-w100{width:calc(100% - 1rem);margin:0!important}}@media(min-width:853px){.md\:grid-w10{width:calc(10% - 1rem);margin:0!important}.md\:grid-w15{width:calc(15% - 1rem);margin:0!important}.md\:grid-w20{width:calc(20% - 1rem);margin:0!important}.md\:grid-w25{width:calc(25% - 1rem);margin:0!important}.md\:grid-w30{width:calc(30% - 1rem);margin:0!important}.md\:grid-w33{width:calc(33% - 1rem);margin:0!important}.md\:grid-w35{width:calc(35% - 1rem);margin:0!important}.md\:grid-w40{width:calc(40% - 1rem);margin:0!important}.md\:grid-w45{width:calc(45% - 1rem);margin:0!important}.md\:grid-w50{width:calc(50% - 1rem);margin:0!important}.md\:grid-w55{width:calc(55% - 1rem);margin:0!important}.md\:grid-w60{width:calc(60% - 1rem);margin:0!important}.md\:grid-w65{width:calc(65% - 1rem);margin:0!important}.md\:grid-w66{width:calc(66% - 1rem);margin:0!important}.md\:grid-w70{width:calc(70% - 1rem);margin:0!important}.md\:grid-w75{width:calc(75% - 1rem);margin:0!important}.md\:grid-w80{width:calc(80% - 1rem);margin:0!important}.md\:grid-w85{width:calc(85% - 1rem);margin:0!important}.md\:grid-w90{width:calc(90% - 1rem);margin:0!important}.md\:grid-w95{width:calc(95% - 1rem);margin:0!important}.md\:grid-w100{width:calc(100% - 1rem);margin:0!important}}@media(min-width:1024px){.lg\:grid-w10{width:calc(10% - 1rem);margin:0!important}.lg\:grid-w15{width:calc(15% - 1rem);margin:0!important}.lg\:grid-w20{width:calc(20% - 1rem);margin:0!important}.lg\:grid-w25{width:calc(25% - 1rem);margin:0!important}.lg\:grid-w30{width:calc(30% - 1rem);margin:0!important}.lg\:grid-w33{width:calc(33% - 1rem);margin:0!important}.lg\:grid-w35{width:calc(35% - 1rem);margin:0!important}.lg\:grid-w40{width:calc(40% - 1rem);margin:0!important}.lg\:grid-w45{width:calc(45% - 1rem);margin:0!important}.lg\:grid-w50{width:calc(50% - 1rem);margin:0!important}.lg\:grid-w55{width:calc(55% - 1rem);margin:0!important}.lg\:grid-w60{width:calc(60% - 1rem);margin:0!important}.lg\:grid-w65{width:calc(65% - 1rem);margin:0!important}.lg\:grid-w66{width:calc(66% - 1rem);margin:0!important}.lg\:grid-w70{width:calc(70% - 1rem);margin:0!important}.lg\:grid-w75{width:calc(75% - 1rem);margin:0!important}.lg\:grid-w80{width:calc(80% - 1rem);margin:0!important}.lg\:grid-w85{width:calc(85% - 1rem);margin:0!important}.lg\:grid-w90{width:calc(90% - 1rem);margin:0!important}.lg\:grid-w95{width:calc(95% - 1rem);margin:0!important}.lg\:grid-w100{width:calc(100% - 1rem);margin:0!important}}@media(min-width:1280px){.xl\:grid-w10{width:calc(10% - 1rem);margin:0!important}.xl\:grid-w15{width:calc(15% - 1rem);margin:0!important}.xl\:grid-w20{width:calc(20% - 1rem);margin:0!important}.xl\:grid-w25{width:calc(25% - 1rem);margin:0!important}.xl\:grid-w30{width:calc(30% - 1rem);margin:0!important}.xl\:grid-w33{width:calc(33% - 1rem);margin:0!important}.xl\:grid-w35{width:calc(35% - 1rem);margin:0!important}.xl\:grid-w40{width:calc(40% - 1rem);margin:0!important}.xl\:grid-w45{width:calc(45% - 1rem);margin:0!important}.xl\:grid-w50{width:calc(50% - 1rem);margin:0!important}.xl\:grid-w55{width:calc(55% - 1rem);margin:0!important}.xl\:grid-w60{width:calc(60% - 1rem);margin:0!important}.xl\:grid-w65{width:calc(65% - 1rem);margin:0!important}.xl\:grid-w66{width:calc(66% - 1rem);margin:0!important}.xl\:grid-w70{width:calc(70% - 1rem);margin:0!important}.xl\:grid-w75{width:calc(75% - 1rem);margin:0!important}.xl\:grid-w80{width:calc(80% - 1rem);margin:0!important}.xl\:grid-w85{width:calc(85% - 1rem);margin:0!important}.xl\:grid-w90{width:calc(90% - 1rem);margin:0!important}.xl\:grid-w95{width:calc(95% - 1rem);margin:0!important}.xl\:grid-w100{width:calc(100% - 1rem);margin:0!important}}.portfolio-gallery[data-gap="1.5rem"]{gap:1.5rem}.portfolio-gallery[data-gap="1.5rem"] .grid-w10{width:calc(10% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w15{width:calc(15% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w20{width:calc(20% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w25{width:calc(25% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w30{width:calc(30% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w33{width:calc(33% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w35{width:calc(35% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w40{width:calc(40% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w45{width:calc(45% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w50{width:calc(50% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w55{width:calc(55% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w60{width:calc(60% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w65{width:calc(65% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w66{width:calc(66% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w70{width:calc(70% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w75{width:calc(75% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w80{width:calc(80% - 1rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w85{width:calc(85% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w90{width:calc(90% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w95{width:calc(95% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .grid-w100{width:calc(100% - 1.5rem)}@media(min-width:640px){.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w10{width:calc(10% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w15{width:calc(15% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w20{width:calc(20% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w25{width:calc(25% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w30{width:calc(30% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w33{width:calc(33% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w35{width:calc(35% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w40{width:calc(40% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w45{width:calc(45% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w50{width:calc(50% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w55{width:calc(55% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w60{width:calc(60% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w65{width:calc(65% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w66{width:calc(66% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w70{width:calc(70% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w75{width:calc(75% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w80{width:calc(80% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w85{width:calc(85% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w90{width:calc(90% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w95{width:calc(95% - 1.5rem)}.portfolio-gallery[data-gap="1.5rem"] .sm\:grid-w100{width:calc(100% - 1.5rem)}}