:root{--bg-primary:#050505;--bg-secondary:#0d0d0f;--bg-elevated:#141416;--text-primary:#f5f5f2;--text-secondary:#9a9995;--accent:#f5f5f2;--accent-alt:#d6c7b7;--accent-warm:#b89573;--success:#66c98b;--danger:#e77c7c;--font-display:"Fraunces", serif;--font-body:"Outfit", sans-serif;--border:1px solid #ffffff17;--border-strong:1px solid #ffffff29;--radius-leaf:22px 5px 22px 5px;--radius-soft:16px;--shadow:0 18px 50px #0000006b;--transition:.18s ease}*{box-sizing:border-box;margin:0;padding:0}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-behavior:smooth}body{background:var(--bg-primary);min-width:320px;min-height:100vh;color:var(--text-primary);font-family:var(--font-body);line-height:1.6;overflow-x:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}:focus-visible{outline:2px solid var(--accent-alt);outline-offset:4px}.bg-overlay{z-index:-1;pointer-events:none;background:radial-gradient(circle at 12% 8%,#d6c7b714,#0000 28rem),radial-gradient(circle at 88% 48%,#b895730b,#0000 34rem),linear-gradient(#050505,#020202 70%);position:fixed;inset:0}.container{width:min(1100px,100%);margin:0 auto;padding:3rem 1.5rem 5rem;animation:.5s both page-in}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}header{border-bottom:var(--border);margin-bottom:4rem;padding-bottom:2.5rem}.header-top,.header-nav-row,.project-card-title-row,.project-card-footer,.activity-card-header,.modal-footer-actions{justify-content:space-between;align-items:center;gap:1rem;display:flex}.header-top{align-items:flex-start;margin-bottom:1.25rem}.portfolio-title{color:var(--text-primary);font-family:var(--font-display);letter-spacing:-.04em;font-size:clamp(2.7rem,8vw,4.2rem);font-style:italic;font-weight:500;line-height:1}.header-actions{align-items:center;gap:1rem;display:flex}.portfolio-subtitle{color:var(--accent-alt);font-family:var(--font-display);margin-bottom:1rem;font-size:1.25rem;font-style:italic}.portfolio-bio{max-width:760px;color:var(--text-secondary);font-size:clamp(1rem,2.2vw,1.15rem);font-weight:300}.contact-bar{flex-wrap:wrap;gap:.8rem 1.5rem;margin-top:1.5rem;display:flex}.contact-item{color:var(--text-secondary);transition:color var(--transition);align-items:center;gap:.4rem;font-size:.88rem;text-decoration:none;display:inline-flex}a.contact-item:hover{color:var(--accent-alt)}.contact-location{cursor:default}.contact-item svg,.education-note svg,.resume-button svg{fill:currentColor;flex:none;width:16px;height:16px}.header-nav-row{align-items:flex-start;margin-top:2rem}.project-navigation{gap:1.25rem;display:flex}.nav-link{color:var(--text-secondary);cursor:pointer;font-family:var(--font-display);transition:color var(--transition), border-color var(--transition);background:0 0;border:0;border-bottom:2px solid #0000;padding:.35rem .15rem;font-size:.96rem;font-style:italic}.nav-link:hover,.nav-link.active{border-color:var(--accent-alt);color:var(--text-primary)}.education-note{max-width:470px;color:var(--text-secondary);text-align:right;font-size:.82rem;font-style:italic;line-height:1.45}.education-note svg{vertical-align:-.15em;margin-right:.35rem;display:inline-block}section{margin-bottom:5rem}.section-title{color:var(--text-primary);font-family:var(--font-display);align-items:center;gap:.75rem;margin-bottom:2.4rem;font-size:1.65rem;font-style:italic;font-weight:500;display:flex}.section-title:after{content:"";background:#ffffff1f;flex:1;height:1px}.projects-grid{flex-direction:column;gap:2.25rem;display:flex}.project-card{border:var(--border);border-radius:var(--radius-leaf);background:linear-gradient(145deg, #ffffff06, transparent 55%), var(--bg-secondary);box-shadow:var(--shadow);transition:transform var(--transition), border-color var(--transition), background var(--transition);flex-direction:column;gap:1.15rem;padding:2.25rem;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";background:linear-gradient(transparent, var(--accent-alt), transparent);opacity:0;width:2px;transition:opacity var(--transition);position:absolute;inset:0 auto 0 0}.project-card:hover{border-color:#ffffff29;transform:translateY(-3px)}.project-card:hover:before{opacity:.8}.project-card-header{flex-direction:column;gap:.5rem;display:flex}.project-card-title-row{align-items:flex-start}.project-title{color:var(--text-primary);font-family:var(--font-display);font-size:1.6rem;font-style:italic;font-weight:500;line-height:1.2}.project-meta-badges,.project-tags,.modal-tags{flex-wrap:wrap;gap:.45rem;display:flex}.project-meta-badges{justify-content:flex-end}.badge{color:var(--text-secondary);letter-spacing:.035em;background:#ffffff0b;border:1px solid #ffffff0f;border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .7rem;font-size:.7rem;font-weight:500;display:inline-flex}.platform-badge{color:var(--text-primary)}.platform-dot{background:#9bb9d4;border-radius:50%;width:7px;height:7px}.platform-dot.other{background:#8fc6a5}.project-desc{color:var(--text-secondary);font-size:.98rem;font-weight:300;line-height:1.68}.project-subtitle{color:var(--text-primary);font-weight:400}.project-tags{margin-top:.2rem}.project-card-footer{align-items:center;margin-top:.35rem}.cta-button,.secondary-button{border-radius:var(--radius-leaf);cursor:pointer;min-height:42px;font-family:var(--font-display);transition:transform var(--transition), background var(--transition), color var(--transition), border-color var(--transition);justify-content:center;align-items:center;padding:.66rem 1.3rem;font-size:.86rem;font-style:italic;font-weight:500;text-decoration:none;display:inline-flex}.cta-button{border:1px solid var(--accent-alt);background:var(--accent-alt);color:#090909}.cta-button:hover,.secondary-button:hover{transform:translateY(-2px)}.secondary-button{border:var(--border-strong);color:var(--text-primary);background:0 0}.secondary-button:hover{border-color:var(--accent-alt);color:var(--accent-alt)}.resume-button{align-items:center;gap:.5rem;min-height:38px;padding:.5rem 1rem;display:inline-flex}.repo-links{flex-wrap:wrap;justify-content:flex-end;gap:.7rem 1.2rem;display:flex}.repo-link{color:var(--text-secondary);font-family:var(--font-display);transition:color var(--transition);font-size:.86rem;font-style:italic;text-decoration:none}a.repo-link:hover{color:var(--accent-alt)}.repo-link-disabled{cursor:default;opacity:.62}.empty-state{border:var(--border);border-radius:var(--radius-soft);color:var(--text-secondary);text-align:center;padding:2rem}.modal-overlay{z-index:2000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#000000d1;place-items:center;width:100vw;height:100dvh;padding:1.25rem;animation:.18s both overlay-in;display:grid;position:fixed;inset:0}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal-content{border:var(--border-strong);background:#0b0b0d;border-radius:26px 7px;flex-direction:column;width:min(980px,100%);max-height:min(940px,100dvh - 2.5rem);animation:.24s both dialog-in;display:flex;position:relative;overflow:hidden;box-shadow:0 30px 90px #000000b3}@keyframes dialog-in{0%{opacity:0;transform:translateY(14px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-hero{z-index:2;border-bottom:var(--border);background:#0d0d0ff7;padding:1.9rem 2.2rem 1.25rem;position:relative}.close-btn{z-index:3;border:var(--border);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;transition:color var(--transition), border-color var(--transition), background var(--transition);background:#ffffff09;border-radius:50%;place-items:center;font-size:1.65rem;line-height:1;display:grid;position:absolute;top:1rem;right:1rem}.close-btn:hover{color:var(--text-primary);background:#ffffff12;border-color:#fff3}.modal-title-copy{max-width:700px;padding-right:3.5rem}.modal-title-copy .project-meta-badges{justify-content:flex-start;margin-bottom:.75rem}.case-study-title{color:var(--text-primary);font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(2rem,5vw,3.1rem);font-style:italic;font-weight:500;line-height:1.05}.case-study-subtitle{max-width:720px;color:var(--text-secondary);margin-top:.5rem;font-size:1rem;line-height:1.5}.modal-tags{margin-top:1rem}.modal-scroll-area{overscroll-behavior:contain;overflow-y:auto}.story-view{padding:2rem 2.2rem 2.4rem}.project-media-placeholder{border:var(--border);border-radius:var(--radius-leaf);background:radial-gradient(circle at 30% 40%,#d6c7b724,#0000 16rem),linear-gradient(140deg,#171518,#0e0e11 62%,#151311);grid-template-columns:minmax(220px,.85fr) 1.15fr;align-items:center;gap:2rem;min-height:360px;padding:clamp(2rem,5vw,4rem);display:grid;position:relative;overflow:hidden}.placeholder-grid{opacity:.12;background-image:linear-gradient(#ffffff1f 1px,#0000 1px),linear-gradient(90deg,#ffffff1f 1px,#0000 1px);background-size:36px 36px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#000,#0000 80%);mask-image:linear-gradient(90deg,#000,#0000 80%)}.placeholder-screen{z-index:1;background:#050506b8;border:1px solid #ffffff2e;border-radius:18px;flex-direction:column;gap:.8rem;min-height:230px;padding:1.5rem;display:flex;position:relative;transform:rotate(-2deg);box-shadow:0 25px 50px #0000006b}.mobile-project .placeholder-screen{border-radius:28px;justify-self:center;width:min(190px,100%);min-height:290px}.placeholder-screen-bar,.placeholder-screen-feature,.placeholder-screen-line{background:#ffffff1a;border-radius:999px;display:block}.placeholder-screen-bar{width:38%;height:8px}.placeholder-screen-feature{background:#d6c7b721;border-radius:12px;height:110px;margin:.25rem 0}.placeholder-screen-line{width:82%;height:7px}.placeholder-screen-line.short{width:56%}.placeholder-copy{z-index:1;flex-direction:column;align-items:flex-start;gap:.45rem;display:flex;position:relative}.placeholder-copy strong{font-family:var(--font-display);letter-spacing:-.025em;font-size:clamp(1.8rem,4vw,2.8rem);font-style:italic;font-weight:500;line-height:1.08}.placeholder-copy>span:last-child{max-width:330px;color:var(--text-secondary);font-size:.9rem}.placeholder-kicker,.story-eyebrow{color:var(--accent-alt);letter-spacing:.12em;text-transform:uppercase;font-size:.7rem;font-weight:600}.project-showcase{border:var(--border);border-radius:var(--radius-leaf);background:radial-gradient(circle at 20% 30%,#d6c7b714,#0000 20rem),linear-gradient(150deg,#161518,#0e0e11 60%,#131215);flex-direction:column;gap:1.25rem;padding:1.5rem;display:flex;box-shadow:0 15px 40px #00000059}.showcase-nav-bar{border-bottom:1px solid #ffffff12;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-bottom:1rem;display:flex}.showcase-tabs{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.showcase-tab{color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background:#ffffff08;border:1px solid #ffffff14;border-radius:999px;align-items:center;gap:.45rem;padding:.45rem .85rem;font-size:.82rem;font-weight:500;display:inline-flex}.showcase-tab:hover{color:var(--text-primary);background:#ffffff14;border-color:#ffffff29}.showcase-tab.active{color:var(--accent-alt);background:#d6c7b724;border-color:#d6c7b759}.showcase-tab .tab-index{font-family:var(--font-display);opacity:.75;font-size:.75rem}.showcase-controls{align-items:center;gap:.5rem;display:flex}.showcase-ctrl-btn{width:32px;height:32px;color:var(--text-primary);cursor:pointer;transition:all var(--transition);background:#ffffff0a;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;font-size:.95rem;display:inline-flex}.showcase-ctrl-btn:hover{background:#ffffff1f;border-color:#ffffff40;transform:translateY(-1px)}.showcase-counter{font-variant-numeric:tabular-nums;color:var(--text-secondary);font-size:.8rem;font-weight:500}.showcase-main{grid-template-columns:minmax(260px,320px) 1fr;align-items:center;gap:2rem;display:grid}.showcase-device-stage{justify-content:center;align-items:center;padding:.5rem;display:flex}.device-frame{background:#19181c;transition:transform .25s,box-shadow .25s;position:relative;box-shadow:0 20px 45px #0009,0 0 0 1px #ffffff1f,inset 0 1px #ffffff26}.device-frame:hover{transform:translateY(-3px);box-shadow:0 26px 55px #000000b3,0 0 0 1px #d6c7b740}.mobile-phone-frame{background:linear-gradient(165deg,#252327,#131215);border-radius:36px;width:260px;padding:10px 10px 14px}.phone-notch{justify-content:center;align-items:center;gap:8px;height:18px;margin-bottom:6px;display:flex}.notch-camera{background:#09090b;border-radius:50%;width:8px;height:8px;box-shadow:inset 0 0 2px #fff3}.notch-speaker{background:#09090b;border-radius:3px;width:40px;height:4px}.device-screen-wrapper{cursor:zoom-in;background:#000;border-radius:26px;position:relative;overflow:hidden}.device-screenshot-img{aspect-ratio:266/576;object-fit:cover;width:100%;height:auto;transition:transform .3s;display:block}.device-screen-wrapper:hover .device-screenshot-img{transform:scale(1.02)}.screenshot-zoom-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;cursor:pointer;opacity:0;transition:all var(--transition);background:#000000ad;border:1px solid #fff3;border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .65rem;font-size:.72rem;font-weight:500;display:inline-flex;position:absolute;bottom:12px;right:12px;transform:translateY(4px)}.device-screen-wrapper:hover .screenshot-zoom-badge{opacity:1;transform:translateY(0)}.showcase-info-panel{flex-direction:column;gap:1.25rem;display:flex}.showcase-page-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--accent-alt);margin-bottom:.3rem;font-size:.76rem;font-weight:600;display:inline-block}.showcase-screen-title{font-family:var(--font-display);color:var(--text-primary);font-size:1.6rem;font-weight:400;line-height:1.2}.showcase-screen-subtitle{color:var(--text-secondary);margin-top:.2rem;font-size:.95rem}.showcase-screen-caption{color:#c7c5c0;font-size:.96rem;line-height:1.65}.showcase-thumbnails{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem;margin-top:.5rem;display:grid}.showcase-thumb-btn{color:var(--text-secondary);cursor:pointer;text-align:left;transition:all var(--transition);background:#ffffff08;border:1px solid #ffffff14;border-radius:12px;align-items:center;gap:.6rem;padding:.45rem .6rem;display:flex}.showcase-thumb-btn:hover{background:#ffffff12;border-color:#ffffff2e;transform:translateY(-1px)}.showcase-thumb-btn.active{color:var(--text-primary);background:#d6c7b71a;border-color:#d6c7b766}.thumb-img-box{background:#000;border-radius:6px;flex-shrink:0;width:28px;height:48px;overflow:hidden}.thumb-img-box img{object-fit:cover;width:100%;height:100%}.thumb-text-box{flex-direction:column;min-width:0;display:flex}.thumb-index{font-family:var(--font-display);opacity:.6;font-size:.68rem}.thumb-caption{white-space:nowrap;text-overflow:ellipsis;font-size:.76rem;font-weight:500;overflow:hidden}.lightbox-overlay{z-index:1200;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#000000eb;justify-content:center;align-items:center;padding:1rem;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.lightbox-container{background:#111013;border:1px solid #ffffff29;border-radius:24px;flex-direction:column;align-items:center;max-width:95vw;max-height:96vh;padding:1.25rem clamp(1.5rem,4vw,3rem);display:flex;position:relative;box-shadow:0 30px 80px #000000d9}.lightbox-close-btn{color:#fff;cursor:pointer;width:38px;height:38px;transition:all var(--transition);z-index:10;background:#ffffff14;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;line-height:1;display:flex;position:absolute;top:12px;right:14px}.lightbox-close-btn:hover{background:#ffffff38;transform:scale(1.05)}.lightbox-nav-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;cursor:pointer;width:44px;height:44px;transition:all var(--transition);z-index:10;background:#141418bf;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;font-size:1.6rem;line-height:1;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav-btn:hover{background:#ffffff2e;border-color:#ffffff59;transform:translateY(-50%)scale(1.08)}.lightbox-prev-btn{left:12px}.lightbox-next-btn{right:12px}.lightbox-img-wrapper{background:#000;border-radius:18px;justify-content:center;align-items:center;max-height:min(80vh,600px);display:flex;overflow:hidden;box-shadow:0 15px 40px #000000b3}.lightbox-img{aspect-ratio:266/576;object-fit:contain;border-radius:18px;width:auto;max-width:100%;max-height:min(80vh,576px)}.lightbox-footer{text-align:center;max-width:550px;margin-top:.85rem}.lightbox-title-row{justify-content:center;align-items:center;gap:.5rem;margin-bottom:.2rem;display:flex}.lightbox-index{font-family:var(--font-display);color:var(--accent-alt);font-size:.82rem}.lightbox-footer strong{font-family:var(--font-display);color:var(--text-primary);font-size:1.2rem}.lightbox-footer p{color:var(--text-secondary);font-size:.9rem;line-height:1.45}@media (width<=768px){.showcase-main{grid-template-columns:1fr;gap:1.5rem}.mobile-phone-frame{width:220px}.showcase-thumbnails{grid-template-columns:repeat(2,1fr)}}.project-action-banner{border:var(--border);border-radius:var(--radius-leaf);transition:border-color var(--transition);background:linear-gradient(145deg,#161518,#0e0e11 70%,#131215);padding:clamp(1.75rem,3.5vw,2.5rem);position:relative;overflow:hidden;box-shadow:0 15px 40px #00000059}.web-action-banner{background:radial-gradient(circle at 10% 20%,#66c98b14,#0000 18rem),linear-gradient(145deg,#151816,#0e110f 70%,#121513);border-color:#66c98b33}.video-action-banner{background:radial-gradient(circle at 10% 20%,#e77c7c14,#0000 18rem),linear-gradient(145deg,#191415,#110e0f 70%,#151112);border-color:#e77c7c33}.desktop-action-banner{background:radial-gradient(circle at 10% 20%,#d6c7b714,#0000 18rem),linear-gradient(145deg,#171518,#0e0e11 70%,#151311);border-color:#d6c7b733}.action-banner-content{z-index:1;flex-direction:column;gap:1.15rem;display:flex;position:relative}.action-banner-badge-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.live-status-pill{color:var(--success);letter-spacing:.04em;text-transform:uppercase;background:#66c98b1f;border:1px solid #66c98b4d;border-radius:999px;align-items:center;gap:.45rem;padding:.32rem .75rem;font-size:.76rem;font-weight:600;display:inline-flex}.video-status-pill{color:#f09a9a;letter-spacing:.04em;text-transform:uppercase;background:#e77c7c1f;border:1px solid #e77c7c4d;border-radius:999px;align-items:center;gap:.45rem;padding:.32rem .75rem;font-size:.76rem;font-weight:600;display:inline-flex}.pulse-dot{background:var(--success);width:7px;height:7px;box-shadow:0 0 8px var(--success);border-radius:50%;animation:2s ease-in-out infinite pulseDot}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}.domain-pill{color:var(--text-secondary);font-size:.82rem;font-family:var(--font-body);letter-spacing:.02em;display:inline-block}.action-banner-title{font-family:var(--font-display);color:var(--text-primary);font-size:clamp(1.4rem,2.5vw,1.85rem);font-weight:400;line-height:1.25}.action-banner-desc{color:#b3b1ad;max-width:680px;font-size:.95rem;font-weight:300;line-height:1.6}.action-banner-cta-row{flex-wrap:wrap;align-items:center;gap:.85rem;margin-top:.35rem;display:flex}.banner-cta-btn{align-items:center;gap:.5rem;display:inline-flex}.cta-arrow{font-size:1.1rem;line-height:1;transition:transform .18s}.banner-cta-btn:hover .cta-arrow{transform:translate(2px,-2px)}.story-introduction{text-align:center;max-width:780px;margin:3rem auto 2rem}.story-introduction h3,.story-section h3{color:var(--text-primary);font-family:var(--font-display);margin-top:.35rem;font-size:clamp(1.55rem,3.2vw,2.25rem);font-style:italic;font-weight:500;line-height:1.2}.story-introduction p{color:var(--text-secondary);margin-top:1rem;font-size:1.06rem;font-weight:300;line-height:1.8}.audience-callout{border-radius:var(--radius-soft);background:#d6c7b70b;border:1px solid #d6c7b726;grid-template-columns:130px 1fr;gap:1.25rem;margin:0 auto 3.5rem;padding:1.25rem 1.4rem;display:grid}.audience-callout>span{color:var(--accent-alt);font-family:var(--font-display);font-style:italic}.audience-callout p{color:var(--text-primary);font-weight:300}.story-section{margin-bottom:3.5rem}.story-section-heading{align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.story-index{min-width:38px;color:var(--accent-warm);font-family:var(--font-display);padding-top:.2rem;font-size:.82rem;font-style:italic}.feature-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;list-style:none;display:grid}.feature-list li{border:var(--border);min-height:92px;color:var(--text-primary);background:#ffffff05;border-radius:14px;padding:1.15rem 1.15rem 1.15rem 2.4rem;font-size:.93rem;font-weight:300;position:relative}.feature-list li:before{content:"";border:1px solid var(--accent-alt);border-radius:50%;width:8px;height:8px;position:absolute;top:1.45rem;left:1.1rem;box-shadow:0 0 0 4px #d6c7b70d}.journey-list{grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;display:grid}.journey-list li{border-top:1px solid #d6c7b74d;padding:1.25rem;position:relative}.journey-list li:not(:last-child):after{content:"";background:var(--accent-alt);border-radius:50%;width:7px;height:7px;position:absolute;top:-4px;right:-4px}.journey-list li>span{color:var(--accent-warm);font-family:var(--font-display);font-size:.75rem;font-style:italic}.journey-list p{color:var(--text-secondary);margin-top:.5rem;font-size:.9rem;font-weight:300}.engineering-notes{gap:.8rem;display:grid}.engineering-notes article{border-top:var(--border);grid-template-columns:180px 1fr;gap:1.4rem;padding:1.2rem 0;display:grid}.engineering-notes h4{color:var(--accent-alt);font-family:var(--font-display);font-size:.98rem;font-style:italic;font-weight:500}.engineering-notes p{color:var(--text-secondary);font-size:.93rem;font-weight:300;line-height:1.72}.modal-footer-actions{border-top:var(--border);flex-wrap:wrap;justify-content:flex-start;margin-top:2.5rem;padding-top:1.5rem}.project-status-note{color:var(--text-secondary);font-size:.88rem;font-style:italic}.activity-section{margin-top:4rem}.activity-grid-layout{flex-direction:column;gap:2rem;width:100%;display:flex}.activity-card{border:var(--border);border-radius:var(--radius-leaf);background:var(--bg-secondary);box-shadow:var(--shadow);flex-direction:column;gap:1.4rem;padding:1.8rem;display:flex}.activity-card-header{border-bottom:var(--border);align-items:flex-start;padding-bottom:1rem}.activity-card-title{color:var(--text-primary);font-family:var(--font-display);font-size:1.2rem;font-style:italic;font-weight:500}.activity-card-subtitle,.contribution-count{color:var(--text-secondary);font-size:.8rem}.contribution-count{text-align:right}.count-num{color:var(--accent-alt);font-family:var(--font-display);font-weight:500}.feed-status-badge{color:var(--text-secondary);white-space:nowrap;background:#ffffff0b;border-radius:999px;align-items:center;gap:.4rem;padding:.25rem .65rem;font-size:.72rem;display:flex}.status-dot{background:#d4ad5d;border-radius:50%;width:6px;height:6px}.feed-status-badge.live .status-dot{background:var(--success);box-shadow:0 0 0 4px #66c98b14}.feed-status-badge.local .status-dot{background:var(--text-secondary)}.commit-list{flex-direction:column;gap:1rem;max-height:340px;display:flex;overflow-y:auto}.commit-item{border-bottom:var(--border);justify-content:space-between;align-items:center;gap:1.5rem;padding-bottom:.8rem;display:flex}.commit-item:last-child{border-bottom:0;padding-bottom:0}.commit-item-left{flex:none;align-items:center;gap:.5rem;width:180px;display:flex}.commit-item-right{flex:1;justify-content:space-between;align-items:center;gap:1rem;min-width:0;display:flex}.commit-hash,.commit-repo-badge{border-radius:4px;padding:.12rem .4rem;font-size:.69rem}.commit-hash{color:var(--text-secondary);background:#ffffff0d;font-weight:600}.commit-repo-badge{color:var(--accent-alt);font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;font-style:italic;overflow:hidden}.commit-message{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;font-weight:300;overflow:hidden}.commit-time{color:var(--text-secondary);white-space:nowrap;flex:none;font-size:.71rem}.activity-empty-state{min-height:130px;color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;padding:1.5rem;font-size:.86rem;display:flex}.contribution-unavailable{border:1px dashed #ffffff1f;border-radius:12px}.contribution-unavailable strong{color:var(--text-primary);font-family:var(--font-display);font-style:italic;font-weight:500}.contribution-unavailable a{color:var(--accent-alt);margin-top:.4rem}.contribution-grid-scroll-wrapper{width:100%;padding-bottom:.5rem;overflow-x:auto}.contribution-grid-wrapper{flex-direction:column;gap:.5rem;width:max-content;min-width:670px;margin:0 auto;display:flex}.contribution-months{color:var(--text-secondary);grid-template-columns:repeat(12,1fr);padding-left:12px;font-size:.68rem;display:grid}.contribution-grid{gap:3px;display:flex}.contribution-column{flex-direction:column;gap:3px;display:flex}.contrib-cell{border-radius:2px;width:10px;height:10px;transition:transform .1s;display:block}.contrib-cell:hover{transform:scale(1.25)}.level-0{background:#19191b}.level-1{background:#193c2b}.level-2{background:#216e45}.level-3{background:#2f9d5c}.level-4{background:#4ac777}.contribution-legend{color:var(--text-secondary);justify-content:flex-end;align-items:center;gap:4px;margin-top:.35rem;font-size:.72rem;display:flex}@media (width<=767px){.container{padding:2rem 1rem 4rem}header{margin-bottom:2.75rem;padding-bottom:1.75rem}.header-top,.header-nav-row,.project-card-title-row,.project-card-footer,.activity-card-header{flex-direction:column;align-items:stretch}.header-actions,.resume-button{width:100%}.contact-bar{flex-direction:column}.project-navigation{width:100%}.nav-link{text-align:left;flex:1}.education-note{text-align:left;max-width:none}.project-card{padding:1.5rem}.project-meta-badges{justify-content:flex-start}.project-card-footer .cta-button{width:100%}.repo-links{justify-content:flex-start}.modal-overlay{place-items:center;padding:.75rem}.modal-content{border:var(--border-strong);border-radius:22px 6px;width:100%;max-height:calc(100dvh - 1.5rem)}.modal-hero,.story-view{padding-left:1.2rem;padding-right:1.2rem}.modal-title-copy{padding-right:2.8rem}.project-media-placeholder{grid-template-columns:1fr;gap:1.25rem;min-height:430px;padding:2rem}.placeholder-screen{min-height:190px}.mobile-project .placeholder-screen{min-height:245px}.story-introduction{text-align:left;margin-top:2.5rem}.audience-callout,.engineering-notes article{grid-template-columns:1fr;gap:.45rem}.feature-list,.journey-list{grid-template-columns:1fr}.journey-list li:not(:last-child):after{display:none}.modal-footer-actions{flex-direction:column;align-items:stretch}.modal-footer-actions .cta-button,.modal-footer-actions .secondary-button{width:100%}.activity-card{padding:1.3rem}.contribution-count{text-align:left}.commit-item,.commit-item-right{flex-direction:column;align-items:flex-start;gap:.35rem}.commit-item-left{width:auto}.commit-message{white-space:normal}}@media (width<=440px){.portfolio-title{font-size:2.45rem}.project-navigation{flex-direction:column;gap:.45rem}.nav-link{width:100%}.project-card{padding:1.3rem}.modal-hero{padding-top:1.4rem}.case-study-title{font-size:2rem}.project-media-placeholder{min-height:380px;padding:1.4rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
