@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/nunito-400.woff2') format('woff2')}@font-face{font-family:'Nunito';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/nunito-500.woff2') format('woff2')}@font-face{font-family:'Nunito';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/nunito-600.woff2') format('woff2')}@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/nunito-700.woff2') format('woff2')}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/playfair-500.woff2') format('woff2')}@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400;font-display:swap;src:url('/assets/fonts/playfair-400i.woff2') format('woff2')}*,::after,::before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f8f7f5;--surface:#ffffff;--ink:#1a1a1a;--muted:#6b6b6e;--subtle:#7a7a80;--accent:#2563eb;--accent-light:#eff4ff;--accent-mid:rgba(37, 99, 235, 0.15);--brand:#FF2D78;--brand-cyan:#33BDEF;--brand-purple:#9957B3;--brand-light:#FFE4EE;--brand-purple-light:#F3E8FF;--brand-mid:rgba(255, 45, 120, 0.12);--brand-purple-mid:rgba(153, 87, 179, 0.12);--gradient-brand:linear-gradient(135deg, #33BDEF 0%, #9957B3 50%, #FF2D78 100%);--gradient-brand-h:linear-gradient(90deg, #33BDEF 0%, #9957B3 50%, #FF2D78 100%);--gradient-brand-v:linear-gradient(180deg, #33BDEF 0%, #9957B3 50%, #FF2D78 100%);--gradient-brand-r:radial-gradient(circle at center, #33BDEF 0%, #9957B3 50%, #FF2D78 100%);--gradient-brand-text:linear-gradient(135deg, #33BDEF 0%, #9957B3 50%, #FF2D78 100%);--border:#e2e0db;--border-strong:#c8c5bf;--sans:'Nunito',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;--space-xs:0.5rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2.5rem;--space-xl:4rem;--space-2xl:6rem;--radius:12px;--radius-sm:8px;--radius-lg:16px;--nav-h:64px;--max-w:1240px;--prose-w:680px}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--sans);background-color:var(--bg);color:var(--ink);line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto;display:block}a{color:var(--accent);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:text-decoration-color .15s ease}a:hover{text-decoration-color:currentColor}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}.wrap{max-width:var(--max-w);margin:0 auto;padding:0 1.5rem}.prose{max-width:var(--prose-w)}body>nav{position:sticky;top:0;z-index:500;background:rgba(248,247,245,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);height:var(--nav-h)}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h)}.nav-logo{font-size:.9375rem;font-weight:600;letter-spacing:-.01em;color:var(--ink);text-decoration:none}.nav-logo:hover{text-decoration:none;color:var(--accent)}.nav-links{display:flex;align-items:center;gap:.25rem;list-style:none}.nav-links a{color:var(--muted);font-size:.875rem;padding:.5rem .875rem;border-radius:var(--radius-sm);text-decoration:none;transition:color .15s,background .15s}.nav-links a:hover{color:var(--ink);background:var(--accent-light)}.nav-links a.active{color:var(--accent);font-weight:500}.nav-toggle{display:none;background:0 0;border:none;cursor:pointer;padding:.5rem;color:var(--ink)}section{padding:var(--space-2xl) 0}section+section{border-top:1px solid var(--border)}.section-label{font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-md)}h1{font-size:clamp(2rem, 5vw, 3.25rem);font-weight:700;line-height:1.1;letter-spacing:-.03em;color:var(--ink)}h2{font-size:clamp(1.5rem, 3.5vw, 2.25rem);font-weight:700;line-height:1.2;letter-spacing:-.02em;color:var(--ink);margin-bottom:var(--space-md)}h3{font-size:clamp(1.125rem, 2.5vw, 1.5rem);font-weight:600;line-height:1.3;letter-spacing:-.015em;color:var(--ink);margin-bottom:.5rem}h4{font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:var(--space-lg) 0 .75rem}p{color:var(--ink);margin-bottom:var(--space-sm)}p:last-child{margin-bottom:0}ol,ul{padding-left:1.25rem;margin-bottom:var(--space-sm)}li{margin-bottom:.375rem;color:var(--ink)}strong{font-weight:600}em{font-style:italic}.hero{padding:clamp(4rem,10vw,7rem) 0 var(--space-2xl);border-bottom:1px solid var(--border)}.hero-kicker{font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--brand);margin-bottom:var(--space-md)}.hero h1{max-width:820px;margin-bottom:var(--space-md)}.hero h1 em{font-style:italic;color:var(--brand)}.hero-lead{font-size:clamp(1.0625rem, 2vw, 1.25rem);color:var(--muted);max-width:640px;line-height:1.6;margin-bottom:var(--space-lg)}.hero-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:var(--space-lg)}.chip{font-size:.8125rem;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:.375rem .875rem}.chip-available{background:#f0fdf4;border-color:#bbf7d0;color:#15803d;padding-left:1.625rem;position:relative}.chip-available::before{content:'';position:absolute;left:.625rem;top:50%;transform:translateY(-50%);width:7px;height:7px;border-radius:50%;background:#16a34a;animation:pulse-avail 2s ease-in-out infinite}@keyframes pulse-avail{0%,100%{box-shadow:0 0 0 0 rgba(22,163,74,.4)}50%{box-shadow:0 0 0 7px rgba(22,163,74,0)}}@media (prefers-reduced-motion:reduce){.chip-available::before{animation:none}}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem}.btn{display:inline-flex;align-items:center;gap:.375rem;font-size:.9375rem;font-weight:500;padding:.75rem 1.5rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s,color .15s;line-height:1}.btn:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent);text-decoration:none}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);column-gap:1.25rem;row-gap:1.75rem;margin-top:var(--space-lg)}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg);text-decoration:none;color:inherit;transition:border-color .2s,box-shadow .2s,transform .2s;display:grid;grid-template-rows:subgrid;grid-row:span 7;position:relative;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.03)}.project-card:hover{border-color:var(--accent);box-shadow:0 1px 2px rgba(0,0,0,.04),0 4px 16px rgba(0,0,0,.07),0 16px 48px rgba(37,99,235,.11);transform:translateY(-3px);text-decoration:none;color:inherit}.project-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card-type{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:0;align-self:start}.project-card h3{font-size:1.25rem;font-weight:700;letter-spacing:-.02em;margin-bottom:0;color:var(--ink);align-self:start}.project-card p{font-size:.9375rem;color:var(--muted);line-height:1.55;margin-bottom:0;align-self:start}.card-stats{font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-top:0;margin-bottom:0;align-self:start}.card-link{display:inline-flex;align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;color:var(--accent);margin-top:0;text-decoration:none;align-self:end}.card-actions{align-self:end;margin-top:0}.card-link:hover{text-decoration:underline;text-underline-offset:3px}.project-card--dual{cursor:default}.project-card--live{background:linear-gradient(160deg,#fff 0,#f0f4ff 100%);border-color:rgba(37,99,235,.22)}.project-card--live::after{content:"● live";position:absolute;top:var(--space-md);right:var(--space-md);font-size:.6875rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--brand);animation:live-pulse 2.4s ease-in-out infinite}@keyframes live-pulse{0%,100%{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.project-card--live::after{animation:none}}.card-actions{display:flex;gap:var(--space-md);margin-top:var(--space-md);flex-wrap:wrap;align-items:center}.card-actions .card-link{margin-top:0}.card-link--live{background:var(--brand-light);border:1px solid var(--brand-mid);border-radius:99px;padding:.2em .75em;font-size:.8125rem;color:var(--brand)}.card-link--live:hover{background:var(--brand);color:var(--surface);text-decoration:none;border-color:var(--brand)}.card-thumb-wrap{overflow:hidden;width:calc(100% + 2 * var(--space-lg));margin:calc(-1 * var(--space-lg)) calc(-1 * var(--space-lg)) 0;height:280px;flex-shrink:0}.card-thumb{display:block;width:100%;height:100%;margin:0;transition:transform .45s ease}.project-card:hover .card-thumb{transform:scale(1.05)}@media (prefers-reduced-motion:reduce){.card-thumb{transition:none}.project-card:hover .card-thumb{transform:none}}img.card-thumb{object-fit:cover;object-position:center center}.work-list{list-style:none;padding:0;margin-top:var(--space-lg);border-top:1px solid var(--border)}.work-item{display:grid;grid-template-columns:1fr auto;align-items:start;gap:1rem;padding:var(--space-md) 16px;margin:0 -16px;border-bottom:1px solid var(--border)}.work-item-content h3{font-size:1rem;font-weight:600;margin-bottom:.25rem}.work-item-content p{font-size:.875rem;color:var(--muted);margin-bottom:0}.work-item-meta{text-align:right;flex-shrink:0}.work-type{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--subtle)}.work-status{display:inline-block;margin-top:5px;font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--border);color:var(--muted)}.work-status--shipped{background:#dcfce7;color:#166534}.work-status--live{background:#eff4ff;color:#1d4ed8}.work-status--progress{background:#fef9c3;color:#a16207}.card-status{display:inline-block;align-self:flex-start;width:fit-content;margin-bottom:8px;font-size:.625rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--border);color:var(--muted)}.card-status--live{background:#eff4ff;color:#1d4ed8}.card-status--shipped{background:#dcfce7;color:#166534}.card-status--progress{background:#fef9c3;color:#854d0e}.work-list-sub{margin-top:var(--space-xl)}.work-list-sub-label{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:0}.work-list-sub-note{font-size:.8125rem;color:var(--subtle)}.work-list--learning{border-top:1px dashed var(--border)}.work-list--learning .work-item{opacity:.5;transition:opacity .25s}.work-list--learning .work-item:hover{opacity:1}.case-hero{padding:clamp(3rem,8vw,5rem) 0 var(--space-2xl);border-bottom:1px solid var(--border)}.case-back{display:inline-flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--muted);text-decoration:none;margin-bottom:var(--space-lg);transition:color .15s}.case-back:hover{color:var(--accent);text-decoration:none}.case-type{font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem}.case-hero h1{font-size:clamp(1.75rem, 4.5vw, 2.875rem);max-width:820px;margin-bottom:var(--space-sm)}.case-subtitle{font-size:clamp(1rem, 2vw, 1.1875rem);color:var(--muted);max-width:620px;margin-bottom:var(--space-lg);font-style:italic}.case-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:var(--space-lg)}.case-meta-item{font-size:.8125rem;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.375rem .75rem}.pull-quote{font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.0625rem, 2vw, 1.25rem);font-style:italic;color:var(--ink);border-left:3px solid var(--brand);padding:.875rem 0 .875rem 1.5rem;margin:var(--space-lg) 0;max-width:var(--prose-w)}.case-body{padding:var(--space-2xl) 0}.case-body section{padding:0;border:none;margin-bottom:var(--space-2xl)}.case-body h2{font-size:.8125rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--space-sm)}.case-body h3{font-size:1.125rem;font-weight:600;margin-bottom:.5rem;margin-top:var(--space-md);color:var(--ink)}.case-body p{max-width:var(--prose-w);color:#3a3a3c;font-size:1.0625rem;line-height:1.7}.case-body ol,.case-body ul{max-width:var(--prose-w)}.case-body li{color:#3a3a3c;font-size:1.0625rem;line-height:1.7}.insight-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin:var(--space-md) 0}.insight-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-md)}.insight-card .insight-label{font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:.5rem}.insight-card h4{font-size:.9375rem;font-weight:600;color:var(--ink);margin:0 0 .5rem;text-transform:none;letter-spacing:normal}.insight-card p{font-size:.875rem;color:var(--muted);max-width:none;margin:0}.data-callout{background:var(--accent-light);border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:var(--space-md) var(--space-lg);margin:var(--space-md) 0;max-width:var(--prose-w)}.data-callout .number{font-size:2.5rem;font-weight:700;color:var(--accent);line-height:1;margin-bottom:.25rem}.data-callout p{font-size:.9375rem;color:var(--muted);margin:0;max-width:none}.decision-block{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-md) var(--space-lg);margin:var(--space-sm) 0;background:var(--surface);max-width:var(--prose-w)}.decision-block .decision-title{font-weight:600;font-size:.9375rem;color:var(--ink);margin-bottom:.375rem}.decision-block p{font-size:.9375rem;color:var(--muted);margin:0;max-width:none}.lightbox-overlay{position:fixed;inset:0;background:rgba(17,24,39,.94);z-index:999;display:flex;align-items:center;justify-content:center;padding:2rem;opacity:0;pointer-events:none;transition:opacity .22s ease;cursor:zoom-out}.lightbox-overlay.active{opacity:1;pointer-events:all}.lightbox-overlay img{max-width:90vw;max-height:88vh;border-radius:var(--radius);border:none;object-fit:contain;box-shadow:0 32px 80px rgba(0,0,0,.5)}@media (prefers-reduced-motion:reduce){.lightbox-overlay{transition:none}}.case-study-img[data-lightbox]{cursor:zoom-in}.case-study-img{width:100%;height:auto;border-radius:var(--radius);margin:var(--space-md) 0 var(--space-lg);display:block;border:1px solid var(--border)}.case-study-img-contained{max-width:420px;margin-left:auto;margin-right:auto}.case-study-img-pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin:var(--space-md) 0 var(--space-lg)}@media (max-width:600px){.case-study-img-pair{grid-template-columns:1fr}}.img-wrap{position:relative;display:block}.img-wrap::after{content:"© PereX";position:absolute;bottom:.75rem;right:1rem;font-size:.625rem;font-weight:500;letter-spacing:.06em;color:rgba(255,255,255,.55);text-shadow:0 1px 3px rgba(0,0,0,.35);pointer-events:none;user-select:none}.img-placeholder{background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius);padding:var(--space-xl);text-align:center;color:var(--subtle);font-size:.875rem;margin:var(--space-md) 0}.img-placeholder .img-label{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.5rem;color:var(--subtle)}.about-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--space-2xl);align-items:start;margin-top:var(--space-lg)}.skills-group{margin-bottom:var(--space-md)}.skills-group h4{margin-top:0;margin-bottom:.625rem;color:var(--ink);font-size:.6875rem;letter-spacing:.14em;padding-bottom:.3125rem;border-bottom:1.5px solid var(--accent)}.skills-list{list-style:none;padding:0}.skills-list li{font-size:.9375rem;color:var(--muted);padding:.25rem 0;border-bottom:1px solid var(--border)}.skills-list li:last-child{border-bottom:none}.philosophy-block{background:var(--accent-light);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-xl);margin:var(--space-xl) 0}.philosophy-block p{font-size:1.0625rem;color:var(--ink);max-width:640px;line-height:1.7}.contact-hero{padding:clamp(4rem,10vw,6rem) 0;border-bottom:1px solid var(--border)}.contact-hero h1{margin-bottom:var(--space-sm)}.contact-email{font-size:clamp(1.5rem, 4vw, 2.5rem);font-weight:600;letter-spacing:-.02em;color:var(--ink);text-decoration:none;transition:color .15s;display:inline-block;margin:var(--space-md) 0}.contact-email:hover{color:var(--accent);text-decoration:none}.contact-links{display:flex;flex-wrap:wrap;gap:1rem;margin-top:var(--space-lg)}.contact-links a{color:var(--muted);text-decoration:none;font-size:.9375rem;font-weight:500;transition:color .15s}.contact-links a:hover{color:var(--accent)}footer{border-top:1px solid var(--border);padding:var(--space-xl) 0;margin-top:var(--space-2xl)}.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-sm)}.footer-name{font-weight:600;font-size:.9375rem;color:var(--ink)}.footer-links{display:flex;flex-wrap:wrap;gap:.5rem var(--space-md)}.footer-links a{color:var(--muted);font-size:.875rem;text-decoration:none;transition:color .15s}.footer-links a:hover{color:var(--accent)}.placeholder-banner{background:#fffbf0;border:1px solid #f0e6c8;border-radius:var(--radius);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-xl)}.placeholder-banner p{font-size:.9375rem;color:#78650a;margin:0}.phase-list{list-style:none;padding:0;margin:var(--space-md) 0}.phase-item{display:flex;align-items:flex-start;gap:var(--space-sm);padding:.875rem 0;border-bottom:1px solid var(--border)}.phase-item:last-child{border-bottom:none}.phase-num{flex-shrink:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:var(--accent-light);color:var(--accent);border-radius:50%;font-size:.75rem;font-weight:700}.phase-content h4{font-size:.9375rem;font-weight:600;color:var(--ink);margin:0 0 .25rem;text-transform:none;letter-spacing:normal}.phase-content p{font-size:.875rem;color:var(--muted);margin:0;max-width:none}.stats-row{display:flex;flex-wrap:wrap;gap:var(--space-lg);margin:var(--space-lg) 0}.stat{flex:1;min-width:140px}.stat .num{font-size:2.25rem;font-weight:700;color:var(--ink);letter-spacing:-.04em;line-height:1}.stat .label{font-size:.875rem;color:var(--muted);margin-top:.375rem}@media (max-width:960px){.about-grid{grid-template-columns:1fr 1fr;gap:var(--space-xl)}}@media (max-width:720px){:root{--space-xl:3rem;--space-2xl:4.5rem}.project-grid{grid-template-columns:1fr}.about-grid{grid-template-columns:1fr;gap:var(--space-xl)}.nav-links{display:none;position:fixed;top:var(--nav-h);left:0;right:0;z-index:9999;background:var(--bg);border-bottom:1px solid var(--border);box-shadow:0 8px 32px rgba(0,0,0,.1);flex-direction:column;align-items:stretch;padding:var(--space-sm)}.nav-links.open{display:flex}.nav-links a{padding:.75rem 1rem;font-size:1rem}.nav-toggle{display:flex;align-items:center;justify-content:center}.work-item{grid-template-columns:1fr;gap:.5rem}.work-item-meta{text-align:left}.stats-row{gap:var(--space-md)}.footer-inner{flex-direction:column;align-items:flex-start}.contact-links{flex-direction:column;gap:.75rem}}@media (max-width:480px){.wrap{padding:0 1rem}.hero-actions{flex-direction:column}.btn{text-align:center;justify-content:center}.insight-grid{grid-template-columns:1fr}[aria-labelledby=notworking-heading] .wrap>div[style]{grid-template-columns:1fr!important}.case-body div[style*="repeat(2, 1fr)"],.case-body div[style*="repeat(3, 1fr)"]{grid-template-columns:1fr!important}}.text-muted{color:var(--muted)}.text-accent{color:var(--accent)}.text-sm{font-size:.875rem}.text-xs{font-size:.8125rem}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.reveal-ready{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease}.reveal-ready.revealed{opacity:1;transform:translateY(0)}.reveal-ready:nth-child(2){transition-delay:70ms}.reveal-ready:nth-child(3){transition-delay:0.14s}.reveal-ready:nth-child(4){transition-delay:0.21s}.project-grid .reveal-ready:nth-child(2),.project-grid .reveal-ready:nth-child(3),.project-grid .reveal-ready:nth-child(4){transition-delay:0s}@media (prefers-reduced-motion:reduce){.reveal-ready{opacity:1;transform:none;transition:none}}.prototype-embed{border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:2rem 0}.prototype-embed iframe{width:100%;height:620px;border:0;display:block}.prototype-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--surface,#f9f8f6);border-bottom:1px solid var(--border);font-size:.875rem;font-weight:600;color:var(--text-secondary,#6b7280)}.btn-open{font-size:.8125rem;font-weight:600;color:var(--accent,#0b63ce);text-decoration:none}.btn-open:hover{text-decoration:underline}@media (max-width:640px){.prototype-embed iframe{height:480px}}.btn-outline{background:0 0;color:var(--muted);border-color:var(--border)}.btn-outline:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}figure{margin:0}figcaption{font-size:.8125rem;color:var(--muted);margin-top:.5rem;text-align:center;line-height:1.4}.validation-disclaimer{border-left:3px solid var(--accent);background:var(--accent-light)}.validation-disclaimer .decision-title{color:var(--accent)}.case-body .section-label+h2,.case-body div.section-label+h2,.case-body p.section-label+h2,.case-body span.section-label+h2{font-size:clamp(1.125rem, 2.5vw, 1.375rem);font-weight:700;letter-spacing:-.015em;text-transform:none;color:var(--ink);margin-top:.25rem;margin-bottom:var(--space-md)}.logo-x{background:var(--gradient-brand-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:inline}.nav-logo .logo-x{font-weight:700}.nav-logo:hover .logo-x{opacity:.8}html{scroll-padding-top:calc(var(--nav-h) + 16px)}::selection{background:var(--accent-mid);color:var(--ink)}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}.skip-link{position:fixed;top:-60px;left:16px;z-index:1000;background:var(--ink);color:#fff;padding:.625rem 1.125rem;border-radius:0 0 var(--radius-sm) var(--radius-sm);font-size:.875rem;font-weight:600;text-decoration:none;transition:top .2s ease}.skip-link:focus{top:0;outline:2px solid var(--accent);outline-offset:2px}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card-link{transition:gap .2s ease}.project-card:hover .card-link{gap:.45rem}.btn:active{transform:translateY(1px)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card-link,.skip-link{transition:none}}.card-outcome{display:block;font-size:.75rem;font-weight:600;color:var(--accent);margin-top:.25rem;margin-bottom:0;text-transform:none;letter-spacing:.02em}.case-tldr{background:var(--accent-light);border-bottom:1px solid var(--accent-mid);padding:var(--space-md) 0}.tldr-inner{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg)}.tldr-item{display:flex;flex-direction:column;gap:4px}.tldr-label{font-size:.6875rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.tldr-body{font-size:.875rem;color:var(--ink);line-height:1.5}@media (max-width:720px){.tldr-inner{grid-template-columns:1fr;gap:var(--space-md)}}.career-timeline{position:relative;margin:var(--space-lg) 0 var(--space-2xl)}.timeline-rail{position:absolute;top:9px;left:0;right:0;height:2px;background:var(--border);z-index:0}.timeline-nodes{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md);position:relative;z-index:1}.timeline-node{display:flex;flex-direction:column;gap:6px;padding-top:calc(var(--space-md) + 10px)}.tnode-dot{position:absolute;top:0;width:14px;height:14px;border-radius:50%;background:var(--border);border:2px solid var(--surface);box-shadow:0 0 0 2px var(--border)}.timeline-node:first-child .tnode-dot{left:12.5%;transform:translateX(-50%)}.timeline-node:nth-child(2) .tnode-dot{left:37.5%;transform:translateX(-50%)}.timeline-node:nth-child(3) .tnode-dot{left:62.5%;transform:translateX(-50%)}.timeline-node:nth-child(4) .tnode-dot{left:87.5%;transform:translateX(-50%)}.tnode--active .tnode-dot{background:var(--accent);box-shadow:0 0 0 3px rgba(37,99,235,.15)}.tnode-year{font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.tnode-title{font-size:.875rem;font-weight:600;color:var(--ink);line-height:1.3}.tnode--active .tnode-title{color:var(--accent)}.tnode-sub{font-size:.75rem;color:var(--muted);line-height:1.4}@media (max-width:720px){.timeline-rail{display:none}.timeline-nodes{grid-template-columns:1fr 1fr}.tnode-dot{position:static;transform:none;margin-bottom:4px}}
@media (pointer:coarse){.footer-links a,.contact-links a{padding:.375rem 0}.card-link{padding:6px 0}.work-item-content h3 a{display:inline-block;padding:4px 0}}
/* Interactive states for the secondary project rows (.work-item): cursor-following "orb" glow on hover + selected, echoing the hero mesh's pointer orb */
.work-item{position:relative;isolation:isolate;--orb-x:50%;--orb-y:50%;transition:background .18s ease,box-shadow .18s ease}
.work-item::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:var(--radius-sm);opacity:0;transition:opacity .22s ease;background:radial-gradient(260px circle at var(--orb-x) var(--orb-y),rgba(37,99,235,.34),rgba(37,99,235,.12) 48%,transparent 74%);pointer-events:none}
.work-item:hover,.work-item:focus-within{background:rgba(37,99,235,.10);border-radius:var(--radius-sm);box-shadow:inset 4px 0 0 var(--accent),0 6px 20px rgba(37,99,235,.15)}
.work-item:hover::before,.work-item:focus-within::before{opacity:1}
.work-item:hover .work-item-content h3,.work-item:hover .work-item-content h3 a,.work-item:focus-within .work-item-content h3 a{color:var(--accent)}
.work-item-content h3 a{text-decoration:none;color:inherit;transition:color .15s ease}
.work-item-content h3 a::after{content:"";position:absolute;inset:0;z-index:2}
.work-item{cursor:pointer}
.work-item a.card-link--live{position:relative;z-index:3}
.work-item-content h3 a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
.work-item[aria-current="true"],.work-item.is-selected{background:rgba(37,99,235,.10);box-shadow:inset 4px 0 0 var(--accent),0 6px 20px rgba(37,99,235,.15)}
.work-item[aria-current="true"]::before,.work-item.is-selected::before{opacity:1;background:radial-gradient(260px circle at 50% 50%,rgba(37,99,235,.18),transparent 74%)}
.work-list--learning .work-item:hover::before{opacity:1}
@media (prefers-reduced-motion:reduce){.work-item::before{transition:none}}