.TechnicalPortfolio-module__DvoRRG__root{--bg-canvas:#fff;--text-main:#171717;--text-muted:#737373;--border:#e5e5e5;--card-surface:#f9f9f9;--placeholder-start:#ececec;--placeholder-mid:#f5f5f5;--placeholder-end:#e8e8e8;--radius-pill:999px;--radius-card:16px;--content-max:min(1400px,92vw);--font-sans:var(--font-tech-portfolio-sans),-apple-system,BlinkMacSystemFont,sans-serif;--font-mono:var(--font-tech-portfolio-mono),monospace;--easing:cubic-bezier(.16,1,.3,1);box-sizing:border-box;background-color:var(--bg-canvas);width:100%;color:var(--text-main);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;line-height:1.5}.TechnicalPortfolio-module__DvoRRG__root *,.TechnicalPortfolio-module__DvoRRG__root :before,.TechnicalPortfolio-module__DvoRRG__root :after{box-sizing:border-box}.TechnicalPortfolio-module__DvoRRG__root ::selection{background:var(--text-main);color:var(--bg-canvas)}.TechnicalPortfolio-module__DvoRRG__root h1,.TechnicalPortfolio-module__DvoRRG__root h2,.TechnicalPortfolio-module__DvoRRG__root h3,.TechnicalPortfolio-module__DvoRRG__root h4{font-family:var(--font-sans);letter-spacing:-.02em;font-weight:400}.TechnicalPortfolio-module__DvoRRG__monoLabel{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.7rem}.TechnicalPortfolio-module__DvoRRG__monoLink{color:var(--text-main);opacity:.8;transition:color .2s var(--easing),opacity .2s var(--easing);text-decoration:none}.TechnicalPortfolio-module__DvoRRG__monoLink:hover{color:var(--text-main);opacity:1}.TechnicalPortfolio-module__DvoRRG__introSection{width:100%;max-width:var(--content-max);box-sizing:border-box;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:1.25rem clamp(1.5rem,4vw,3rem);margin-left:auto;margin-right:auto;padding:16vh 4vw 8vh;display:grid}.TechnicalPortfolio-module__DvoRRG__introCopy{min-width:0;max-width:600px}.TechnicalPortfolio-module__DvoRRG__introSocial{flex-wrap:wrap;justify-content:flex-end;align-self:stretch;align-items:flex-end;gap:1rem 1.25rem;padding-bottom:.2em;display:flex}.TechnicalPortfolio-module__DvoRRG__introSocialLink{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);transition:color .2s var(--easing);font-size:.7rem;font-weight:500;line-height:1;text-decoration:none}.TechnicalPortfolio-module__DvoRRG__introSocialLink:hover{color:var(--text-main)}.TechnicalPortfolio-module__DvoRRG__introText{color:var(--text-muted);font-size:1.5rem;font-weight:400;line-height:1.4}.TechnicalPortfolio-module__DvoRRG__introText strong{color:var(--text-main);font-weight:400}.TechnicalPortfolio-module__DvoRRG__introLink{color:var(--text-main);transition:opacity .2s var(--easing);text-decoration:none}.TechnicalPortfolio-module__DvoRRG__introLink:hover{opacity:.75}.TechnicalPortfolio-module__DvoRRG__gallery{width:100%;max-width:var(--content-max);box-sizing:border-box;grid-template-rows:repeat(2,auto);grid-template-columns:repeat(12,1fr);align-items:start;gap:16px;margin-bottom:0;margin-left:auto;margin-right:auto;padding:0 4vw;display:grid}.TechnicalPortfolio-module__DvoRRG__projectCard{background:var(--card-surface);border-radius:var(--radius-card);cursor:pointer;width:100%;height:clamp(280px,32vw,480px);min-height:0;transition:transform .2s ease-out,box-shadow .2s ease-out;position:relative;overflow:hidden}.TechnicalPortfolio-module__DvoRRG__galleryItem{flex-direction:column;min-width:0;display:flex}.TechnicalPortfolio-module__DvoRRG__galleryCaption{font-family:var(--font-sans);color:var(--text-muted);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;align-items:baseline;gap:8px;margin-top:12px;padding:0 4px;font-size:.78rem;display:flex;overflow:hidden}.TechnicalPortfolio-module__DvoRRG__galleryCaptionTitle{color:var(--text-main);flex:none;font-weight:600}.TechnicalPortfolio-module__DvoRRG__galleryCaptionYear{color:var(--text-muted);flex:none;margin-left:auto;font-weight:600}.TechnicalPortfolio-module__DvoRRG__galleryCaptionDash{color:var(--text-muted);flex:none}.TechnicalPortfolio-module__DvoRRG__galleryCaptionDescription{text-overflow:ellipsis;flex:auto;min-width:0;font-weight:500;overflow:hidden}.TechnicalPortfolio-module__DvoRRG__projectCard:hover{transform:scale(1.005);box-shadow:0 10px 24px #0f172a1a,0 0 0 1px #0f172a08}.TechnicalPortfolio-module__DvoRRG__projectCardLink{height:100%;color:inherit;z-index:1;text-decoration:none;display:block;position:relative}.TechnicalPortfolio-module__DvoRRG__projectMeta{z-index:2}.TechnicalPortfolio-module__DvoRRG__writingCard .TechnicalPortfolio-module__DvoRRG__writingTape{display:block}.TechnicalPortfolio-module__DvoRRG__writingTape{pointer-events:none;z-index:3;display:none;position:absolute;inset:0}.TechnicalPortfolio-module__DvoRRG__writingTape:before,.TechnicalPortfolio-module__DvoRRG__writingTape:after{content:"";opacity:.95;background:repeating-linear-gradient(135deg,#f59e0bf2 0 6px,#111827bf 6px 12px);border-radius:3px;width:64px;height:8px;position:absolute}.TechnicalPortfolio-module__DvoRRG__writingTape:before{top:12px;left:12px;transform:rotate(-45deg)}.TechnicalPortfolio-module__DvoRRG__writingTape:after{bottom:12px;right:12px;transform:rotate(45deg)}.TechnicalPortfolio-module__DvoRRG__gallery .TechnicalPortfolio-module__DvoRRG__galleryItem:first-child,.TechnicalPortfolio-module__DvoRRG__gallery .TechnicalPortfolio-module__DvoRRG__galleryItem:nth-child(2){grid-area:1/span 6}.TechnicalPortfolio-module__DvoRRG__gallery .TechnicalPortfolio-module__DvoRRG__galleryItem:nth-child(3),.TechnicalPortfolio-module__DvoRRG__gallery .TechnicalPortfolio-module__DvoRRG__galleryItem:nth-child(4){grid-area:2/span 6}.TechnicalPortfolio-module__DvoRRG__projectImage{object-fit:cover;filter:grayscale(0%)contrast();width:100%;height:100%}.TechnicalPortfolio-module__DvoRRG__projectVideo{object-fit:cover;filter:grayscale(0%)contrast();width:100%;height:100%;position:absolute;inset:0}.TechnicalPortfolio-module__DvoRRG__projectPlaceholder{background:linear-gradient(135deg,var(--placeholder-start)0%,var(--placeholder-mid)50%,var(--placeholder-end)100%);width:100%;height:100%;position:absolute;inset:0}.TechnicalPortfolio-module__DvoRRG__projectMeta{opacity:0;background:linear-gradient(#fff0 74%,#ffffffdb 100%);flex-direction:column;justify-content:flex-end;padding:32px;transition:opacity .22s ease-out,transform .22s ease-out;display:flex;position:absolute;inset:0;transform:translateY(4px)}.TechnicalPortfolio-module__DvoRRG__projectCard:hover .TechnicalPortfolio-module__DvoRRG__projectMeta{opacity:1;transform:translateY(0)}.TechnicalPortfolio-module__DvoRRG__projectTitle{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;align-items:baseline;gap:8px;margin-bottom:0;font-size:1.15rem;font-weight:600;display:flex;overflow:hidden}.TechnicalPortfolio-module__DvoRRG__projectTitleName{flex:0 auto}.TechnicalPortfolio-module__DvoRRG__projectTitleDash{flex:none}.TechnicalPortfolio-module__DvoRRG__projectTitleText{color:var(--text-muted);flex:auto;font-weight:500}.TechnicalPortfolio-module__DvoRRG__techStack{flex-wrap:wrap;gap:8px;display:flex}.TechnicalPortfolio-module__DvoRRG__techPill{border-radius:var(--radius-pill);font-family:var(--font-mono);color:#666;background:#0000000d;border:1px solid #0000000d;padding:4px 10px;font-size:.65rem}.TechnicalPortfolio-module__DvoRRG__siteFooter{width:100%;max-width:var(--content-max);box-sizing:border-box;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px 16px;margin-top:8px;margin-left:auto;margin-right:auto;padding:0 4vw 16px;display:flex}.TechnicalPortfolio-module__DvoRRG__siteFooterLinks{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:14px;font-size:.7rem;line-height:1;display:flex}.TechnicalPortfolio-module__DvoRRG__siteFooterLink{color:var(--text-muted);transition:color .2s var(--easing);text-decoration:none}.TechnicalPortfolio-module__DvoRRG__siteFooterLink:hover{color:var(--text-main)}.TechnicalPortfolio-module__DvoRRG__siteFooterSignature{opacity:.9;width:auto;height:28px;display:block}@media (min-width:768px){.TechnicalPortfolio-module__DvoRRG__siteFooterSignature{height:32px}}@media (max-width:1024px){.TechnicalPortfolio-module__DvoRRG__gallery{grid-template-rows:none;grid-template-columns:repeat(8,1fr);grid-auto-rows:minmax(0,auto)}.TechnicalPortfolio-module__DvoRRG__gallery .TechnicalPortfolio-module__DvoRRG__galleryItem:nth-child(n){grid-area:auto/span 8}.TechnicalPortfolio-module__DvoRRG__gallery .TechnicalPortfolio-module__DvoRRG__projectCard{aspect-ratio:4/3;height:auto}.TechnicalPortfolio-module__DvoRRG__introSection{grid-template-columns:1fr;padding-top:10vh}.TechnicalPortfolio-module__DvoRRG__introSocial{justify-content:flex-start;place-self:start;padding-bottom:0}.TechnicalPortfolio-module__DvoRRG__introText{font-size:1.25rem}}
