:root{color-scheme:light;--bg: #f7f7f2;--bg-soft: #ecece6;--ink: #0d0d0b;--ink-soft: #393b36;--muted: #74766f;--line: rgba(13, 13, 11, .16);--line-strong: rgba(13, 13, 11, .34);--accent: #8f9d85;--accent-dark: #617258;--inverse: #f8f8f2;--inverse-muted: rgba(248, 248, 242, .64);--max-width: 1440px;--page-pad: 2.25rem;--nav-height: 72px;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{overflow-x:hidden;background:var(--bg);scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-height) + 1.5rem)}body{min-width:320px;margin:0;overflow-x:hidden;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.5}html.admin-mode,body.admin-mode{background:#070a09;color-scheme:dark}body.admin-mode{color:#edf5ef}button,input,textarea,select{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}:focus-visible{outline:2px solid var(--accent-dark);outline-offset:4px}.skip-link{position:fixed;top:1rem;left:1rem;z-index:100;transform:translateY(-150%);background:var(--ink);color:var(--inverse);padding:.75rem 1rem}.skip-link:focus{transform:translateY(0)}.section-grid{display:grid;width:min(100%,var(--max-width));margin:0 auto;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 2rem;padding:0 var(--page-pad)}.section-kicker,.site-nav,.side-index,.intro-status dt,.project-index-row__category,.project-index-row__summary,.project-card__meta,.project-card__details,.projects-controls,.contact-details,.contact-links,.contact-footer,.project-dialog__details,.project-dialog__tags{font-size:.78rem}.section-kicker{margin:0;color:var(--muted);font-weight:700;text-transform:uppercase}.eyebrow{margin:0 0 1rem;color:var(--muted);font-size:.78rem;font-weight:700;text-transform:uppercase}.site-nav{position:fixed;top:0;left:0;z-index:40;display:grid;width:100%;min-height:var(--nav-height);grid-template-columns:minmax(130px,1fr) auto;align-items:center;padding:0 var(--page-pad);border-bottom:1px solid rgba(13,13,11,.08);background:#f7f7f2db;transition:background-color .22s ease,border-color .22s ease,min-height .22s ease}.site-nav.is-scrolled{min-height:64px;border-color:#0d0d0b24;background:#f7f7f2f5}.brand-lockup,.site-nav__links{display:flex;align-items:center}.brand-lockup{gap:.75rem;font-weight:800}.brand-lockup span:first-child{width:.72rem;height:.72rem;background:var(--ink)}.site-nav__links{gap:2.8rem}.site-nav__links a{position:relative;padding:.65rem 0;color:var(--ink-soft)}.site-nav__links a:after,.contact-email:after,.project-card__action:after{position:absolute;right:0;bottom:.28rem;left:0;height:1px;content:"";background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .22s ease}.site-nav__links a:hover,.site-nav__links a:focus-visible,.site-nav__links a.is-active{color:var(--ink)}.site-nav__links a:hover:after,.site-nav__links a:focus-visible:after,.site-nav__links a.is-active:after,.contact-email:hover:after,.contact-email:focus-visible:after,.project-card__action:hover:after,.project-card__action:focus-visible:after{transform:scaleX(1)}.side-index{position:fixed;top:8.4rem;bottom:2rem;left:var(--page-pad);z-index:20;display:flex;width:56px;flex-direction:column;justify-content:space-between;color:#0d0d0b6b;pointer-events:none}.side-index:before{position:absolute;top:3.1rem;bottom:7.8rem;left:50%;width:1px;content:"";background:#0d0d0b14}.side-index__label{font-weight:700;text-transform:uppercase;writing-mode:vertical-rl}.side-index__nav{display:grid;gap:.72rem;pointer-events:auto}.side-index__nav a{display:block;width:2rem;padding:.28rem 0;color:#0d0d0b6b;font-weight:700;transition:color .18s ease,transform .18s ease}.side-index__nav a:hover,.side-index__nav a:focus-visible{color:var(--ink);transform:translate(.2rem)}.intro-section{min-height:98svh;border-bottom:1px solid var(--line)}.intro-grid{min-height:98svh;align-items:end;padding-top:calc(var(--nav-height) + 5.8rem);padding-bottom:7.2rem}.intro-copy{grid-column:2 / 8}.intro-copy h1{margin:1.7rem 0 0;font-family:Archivo,Inter,sans-serif;font-size:8.55rem;font-weight:900;line-height:.84}.intro-copy__body{max-width:620px;margin-top:3.75rem}.intro-role{max-width:620px;margin:0;font-size:2rem;font-weight:650;line-height:1.08}.intro-text{max-width:570px;margin:2.15rem 0 0;color:var(--ink-soft);font-size:1.04rem;line-height:1.66}.intro-status{grid-column:9 / 13;align-self:end;justify-self:end;width:min(100%,388px)}.intro-status dl{margin:0;padding:0;border-top:1px solid var(--line-strong)}.intro-status__item{display:grid;grid-template-columns:6.8rem minmax(0,1fr);gap:1rem;align-items:baseline;padding:1.08rem 0;border-bottom:1px solid var(--line)}.intro-status dt{margin:0;color:var(--muted);font-weight:700;text-transform:uppercase}.intro-status dt span{display:block;margin-bottom:.3rem;color:var(--accent-dark);font-family:Archivo,Inter,sans-serif;font-size:1.04rem;line-height:1}.intro-status dd{display:grid;gap:.28rem;margin:0;color:var(--ink)}.intro-status dd span{display:flex;align-items:baseline;min-width:0;font-size:.96rem;line-height:1.35}.with-status-dot i{display:inline-block;width:.48rem;height:.48rem;flex:0 0 auto;margin-right:.58rem;border-radius:50%;background:var(--accent);transform-origin:center;animation:status-pulse 2.8s ease-in-out infinite}.projects-section{padding:7.4rem 0 8.5rem;border-bottom:1px solid var(--line)}.projects-section--index{padding:5.2rem 0 7.4rem}.projects-heading{align-items:end;margin-bottom:4.5rem}.projects-heading>.section-kicker{grid-column:2 / 5}.projects-heading>div{grid-column:5 / 13}.projects-heading h2{max-width:720px;margin:0;font-family:Archivo,Inter,sans-serif;font-size:3.8rem;font-weight:700;line-height:.98}.projects-heading--index{min-height:124px;align-items:center;margin-bottom:0;border-bottom:1px solid var(--line)}.projects-heading--index>.section-kicker{grid-column:2 / 5}.projects-heading--index h2{grid-column:5 / 13;max-width:520px;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:1.06rem;font-weight:600;line-height:1.36}.projects-controls{display:grid;max-width:460px;grid-template-columns:auto minmax(120px,1fr) 42px 42px;gap:.9rem;align-items:center;margin-top:2.2rem;color:var(--muted);font-weight:700}.projects-progress{height:1px;overflow:hidden;background:var(--line)}.projects-progress span{display:block;width:100%;height:100%;background:var(--ink);transform-origin:left;transition:transform .22s ease}.projects-controls button{display:grid;width:42px;height:42px;place-items:center;border:1px solid var(--line);background:transparent;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.projects-controls button:hover,.projects-controls button:focus-visible{border-color:var(--ink);background:var(--ink);color:var(--inverse)}.projects-controls button:disabled{color:#0d0d0b42;cursor:default}.projects-controls button:disabled:hover{border-color:var(--line);background:transparent;color:#0d0d0b42}.projects-rail{display:flex;width:100vw;gap:2rem;overflow-x:auto;overscroll-behavior-inline:contain;padding:0 max(var(--page-pad),calc((100vw - var(--max-width)) / 2 + var(--page-pad))) 2rem;cursor:grab;scroll-behavior:smooth;scroll-padding-left:max(var(--page-pad),calc((100vw - var(--max-width)) / 2 + var(--page-pad)));scroll-snap-type:x proximity;scrollbar-width:none;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}.projects-rail::-webkit-scrollbar{display:none}.projects-rail.is-dragging{cursor:grabbing;scroll-snap-type:none;-webkit-user-select:none;user-select:none}.project-index-list{width:min(100%,var(--max-width));margin:0 auto;padding:0 var(--page-pad);border-bottom:1px solid var(--line)}.project-index-shell{scroll-margin-top:96px}.project-index-row{position:relative;display:grid;width:100%;min-height:150px;grid-template-columns:76px minmax(230px,.9fr) minmax(220px,.55fr) minmax(360px,1.15fr) 64px;align-items:stretch;overflow:hidden;padding:0;border:0;border-top:1px solid var(--line);background:transparent;text-align:left;cursor:pointer;isolation:isolate;transition:background-color .26s ease,color .26s ease}.project-index-row__number,.project-index-row__meta,.project-index-row__summary,.project-index-row__arrow{position:relative;z-index:1}.project-index-row__number{display:flex;align-items:center;justify-content:center;color:var(--accent-dark);font-family:Archivo,Inter,sans-serif;font-size:1.58rem;font-weight:700}.project-index-row__meta{display:grid;grid-template-columns:minmax(0,1fr) 148px;gap:1.8rem;align-items:center;min-width:0;padding:1.25rem 1rem 1.25rem 0}.project-index-row__title{display:block;font-family:Archivo,Inter,sans-serif;font-size:3rem;font-weight:700;line-height:.98;transition:transform .26s ease}.project-index-row__category{color:var(--ink-soft);text-transform:uppercase}.project-index-row__summary{display:flex;align-items:center;padding-right:1.4rem;color:var(--ink-soft);line-height:1.45}.project-index-row__cover{position:relative;min-width:0;margin:.75rem 0;overflow:hidden;border-left:1px solid var(--line)}.project-index-row__cover:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:#0d0d0b00;transition:background-color .26s ease}.project-index-row__cover img{width:100%;height:100%;min-height:124px;object-fit:cover;transition:transform .52s ease}.project-index-row__arrow{display:flex;align-items:center;justify-content:center;border-left:1px solid var(--line)}.project-index-row__view{position:absolute;z-index:3;top:var(--cursor-y);left:var(--cursor-x);display:grid;width:72px;height:72px;place-items:center;border-radius:50%;background:var(--accent);color:var(--ink);font-size:.82rem;font-weight:700;opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.88);transition:opacity .16s ease,transform .22s ease}.project-index-row:hover,.project-index-row:focus-visible{background:var(--ink);color:var(--inverse)}.project-index-row:hover .project-index-row__title,.project-index-row:focus-visible .project-index-row__title{transform:translate(.42rem)}.project-index-row:hover .project-index-row__category,.project-index-row:hover .project-index-row__summary,.project-index-row:focus-visible .project-index-row__category,.project-index-row:focus-visible .project-index-row__summary{color:#f8f8f2b8}.project-index-row:hover .project-index-row__cover:after,.project-index-row:focus-visible .project-index-row__cover:after{background:#0d0d0b1f}.project-index-row:hover .project-index-row__cover img,.project-index-row:focus-visible .project-index-row__cover img{transform:scale(1.035)}.project-index-row:hover .project-index-row__view,.project-index-row:focus-visible .project-index-row__view{opacity:1;transform:translate(-50%,-50%) scale(1)}.project-card{position:relative;display:grid;min-height:650px;flex:0 0 min(76vw,1080px);grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto 1fr auto;gap:1.35rem 1.6rem;overflow:hidden;padding:1.35rem 0 0;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line);background:var(--bg);scroll-snap-align:start;isolation:isolate}.project-card__copy{position:relative;z-index:2}.project-card__meta{display:flex;flex-wrap:wrap;gap:.6rem 1rem;margin-bottom:1.8rem;color:var(--muted);font-weight:700;text-transform:uppercase}.project-card__meta span:first-child{color:var(--accent-dark);font-family:Archivo,Inter,sans-serif;font-size:1.28rem}.project-card h3{margin:0;font-family:Archivo,Inter,sans-serif;font-size:4.8rem;font-weight:900;line-height:.88;text-transform:uppercase;transition:transform .36s ease}.project-card__copy p{max-width:410px;margin:1.4rem 0 0;color:var(--ink-soft);line-height:1.58}.project-card__media{min-width:0;overflow:hidden;border-left:1px solid var(--line);background:var(--bg-soft)}.project-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .62s ease,filter .62s ease}.project-card__details{display:grid;gap:1rem;color:var(--muted)}.project-card__details div{border-top:1px solid var(--line);padding-top:.9rem}.project-card__details dt{margin-bottom:.32rem;font-weight:700;text-transform:uppercase}.project-card__details dd{margin:0;color:var(--ink);font-size:.92rem;line-height:1.45}.project-card__action{position:relative;z-index:3;display:inline-flex;width:max-content;align-items:center;gap:.5rem;align-self:end;border:0;border-bottom:1px solid var(--line-strong);background:transparent;padding:0 0 .55rem;color:var(--ink);cursor:pointer;font-weight:700}.project-card__action:after{bottom:-1px}.project-card__action svg{transition:transform .22s ease}.project-card__action:hover svg,.project-card__action:focus-visible svg{transform:translate(.16rem,-.16rem)}.project-card__cursor{position:absolute;top:var(--cursor-y);left:var(--cursor-x);z-index:5;display:grid;width:72px;height:72px;place-items:center;border-radius:50%;background:var(--accent);color:var(--ink);font-size:.82rem;font-weight:700;opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.88);transition:opacity .16s ease,transform .22s ease}.project-card__cursor.is-visible{opacity:1;transform:translate(-50%,-50%) scale(1)}.project-card:hover h3{transform:translate(.32rem)}.project-card:hover .project-card__media img{transform:scale(1.035)}.project-card--split .project-card__copy{grid-column:1 / 5;grid-row:1}.project-card--split .project-card__media{grid-column:6 / 13;grid-row:1 / 4}.project-card--split .project-card__details{grid-column:1 / 5;grid-row:2;align-self:end}.project-card--split .project-card__action{grid-column:1 / 5;grid-row:3}.project-card--overlay .project-card__media{grid-column:1 / 13;grid-row:1 / 4;border-left:0}.project-card--overlay .project-card__copy{grid-column:1 / 7;grid-row:3;align-self:end;max-width:620px;border-top:1px solid var(--line-strong);background:var(--bg);padding:1.35rem 1.4rem 1rem 0}.project-card--overlay .project-card__details{grid-column:8 / 12;grid-row:3;align-self:end;background:var(--bg);padding:1rem 0 0 1.2rem}.project-card--overlay .project-card__action{grid-column:12 / 13;grid-row:3;align-self:end}.project-card--offset .project-card__media{grid-column:1 / 9;grid-row:1 / 3;min-height:410px;border-left:0}.project-card--offset .project-card__copy{grid-column:7 / 13;grid-row:2;align-self:end;background:var(--bg);padding:1.4rem 0 0 1.4rem}.project-card--offset .project-card__details{grid-column:1 / 6;grid-row:3}.project-card--offset .project-card__action{grid-column:7 / 13;grid-row:3}.project-card--type .project-card__copy{grid-column:1 / 8;grid-row:1 / 3;align-self:center}.project-card--type h3{max-width:680px;font-size:6.4rem}.project-card--type .project-card__media{grid-column:8 / 13;grid-row:1 / 4}.project-card--type .project-card__details{grid-column:1 / 6;grid-row:3}.project-card--type .project-card__action{grid-column:6 / 8;grid-row:3}.contact-section{overflow:hidden;background:var(--ink);color:var(--inverse)}.contact-grid{min-height:88svh;align-items:center;padding-top:7rem;padding-bottom:5rem}.contact-copy{grid-column:2 / 8}.contact-copy .section-kicker{color:var(--accent)}.contact-copy h2{display:grid;gap:.12em;margin:1.2rem 0 0;font-family:Archivo,Inter,sans-serif;font-size:6rem;font-weight:900;line-height:.9;text-transform:uppercase}.contact-copy h2 span{display:block}.contact-panel{grid-column:8 / 13;align-self:end;min-width:0}.contact-email{position:relative;display:inline-flex;max-width:100%;align-items:center;gap:1rem;padding-bottom:.78rem;color:var(--inverse);font-family:Archivo,Inter,sans-serif;font-size:2rem;font-weight:700;overflow-wrap:anywhere}.contact-email:after{bottom:0;height:1px;background:#f8f8f2a6;transform:scaleX(1)}.contact-email:hover:after,.contact-email:focus-visible:after{transform:scaleX(.86)}.contact-details{display:grid;width:100%;margin:3rem 0 2rem;padding:0;border-top:1px solid rgba(248,248,242,.22)}.contact-details div{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:1rem;padding:1.05rem 0;border-bottom:1px solid rgba(248,248,242,.14)}.contact-details dt{color:var(--inverse-muted);font-weight:700;text-transform:uppercase}.contact-details dd{margin:0;color:var(--inverse)}.contact-links{display:grid;width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.contact-links a{position:relative;display:grid;min-width:0;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:.7rem;min-height:54px;border:1px solid rgba(248,248,242,.2);color:#f8f8f2d1;padding:.55rem .72rem;transition:border-color .18s ease,background-color .18s ease,color .18s ease}.contact-links__icon{display:grid;width:34px;height:34px;place-items:center;border-right:1px solid rgba(248,248,242,.16)}.contact-links a:hover,.contact-links a:focus-visible{border-color:#f8f8f294;background:#f8f8f20f;color:var(--inverse)}.contact-footer{display:grid;width:min(100%,var(--max-width));margin:0 auto;grid-template-columns:1fr auto auto;gap:1.5rem;padding:1.4rem var(--page-pad) 2rem;border-top:1px solid rgba(248,248,242,.16);color:var(--inverse-muted)}.contact-footer a{color:#f8f8f285;transition:color .18s ease}.contact-footer a:hover,.contact-footer a:focus-visible{color:var(--inverse)}.project-dialog{width:min(980px,calc(100vw - 2rem));padding:0;border:1px solid var(--line-strong);background:var(--bg);color:var(--ink)}.project-dialog::backdrop{background:#0d0d0b94}.project-dialog__inner{position:relative;display:grid;grid-template-columns:minmax(260px,.95fr) minmax(0,1.05fr)}.project-dialog__media{min-height:520px;background:var(--ink)}.project-dialog__media img{width:100%;height:100%;object-fit:cover}.project-dialog__content{padding:2.25rem}.project-dialog__content .section-kicker,.project-dialog__content .eyebrow{color:var(--muted)}.project-dialog__content h2{margin:0 0 1.2rem;font-family:Archivo,Inter,sans-serif;font-size:4rem;line-height:.95}.project-dialog__description{margin:0 0 2rem;color:var(--ink-soft);font-size:1.1rem}.project-dialog__details{display:grid;gap:1rem;margin:0 0 1.6rem}.project-dialog__details div{border-top:1px solid var(--line);padding-top:1rem}.project-dialog__details dt{margin-bottom:.35rem;color:var(--muted);text-transform:uppercase}.project-dialog__details dd{margin:0}.project-dialog__tags{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1.25rem}.project-dialog__tags span{border:1px solid var(--line);padding:.45rem .6rem}.icon-button{position:absolute;top:1rem;right:1rem;z-index:3;display:grid;width:44px;height:44px;place-items:center;border:1px solid var(--line);background:var(--bg);cursor:pointer}.text-link{display:inline-flex;align-items:center;gap:.35rem;min-height:44px;color:inherit;font-weight:700}.admin-shell{--bg: #070a09;--bg-soft: #0b100e;--ink: #edf5ef;--ink-soft: #c7d1ca;--muted: #8d9a91;--line: rgba(222, 255, 230, .14);--line-strong: rgba(222, 255, 230, .29);--accent: #65e6ff;--accent-dark: #b8ff5a;--inverse: #041014;--page-pad: clamp(1.25rem, 4vw, 4.5rem);position:relative;min-height:100svh;background:linear-gradient(90deg,#b8ff5a05 0,#b8ff5a05 50%,#65e6ff06 50%),var(--bg);color:var(--ink)}.admin-shell :focus-visible{outline-color:var(--accent)}.admin-shell--login{display:grid;place-items:center;padding:var(--page-pad)}.admin-header{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:1fr auto;align-items:center;gap:1rem;min-height:72px;padding:0 var(--page-pad);border-bottom:1px solid var(--line);background:#070a09eb;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.admin-brand{display:inline-flex;width:max-content;min-height:44px;align-items:center;gap:.55rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.admin-brand span:last-child{color:var(--accent);font-size:.62rem;font-weight:600}.admin-header__meta,.admin-actions,.admin-button,.admin-list-heading,.admin-project-editor__head,.admin-section__heading--with-action,.admin-file-button{display:flex;align-items:center}.admin-header__meta{gap:1rem;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.admin-hero,.admin-section,.admin-login{width:min(100%,var(--max-width));margin:0 auto;padding-right:var(--page-pad);padding-left:var(--page-pad)}.admin-hero{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1.5rem 2rem;padding-top:5.8rem;padding-bottom:4rem;border-bottom:1px solid var(--line)}.admin-hero .section-kicker{grid-column:1 / 4;color:var(--accent-dark);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.1em}.admin-hero h1{grid-column:4 / 9;margin:0;font-family:Archivo,Inter,sans-serif;font-size:4.8rem;font-weight:900;letter-spacing:-.06em;line-height:.9;text-transform:uppercase}.admin-actions{grid-column:9 / 13;justify-content:flex-end;gap:.75rem;align-self:end;flex-wrap:wrap}.admin-section{display:grid;grid-template-columns:minmax(180px,.28fr) minmax(0,1fr);gap:2rem;padding-top:3.8rem;padding-bottom:3.8rem;border-bottom:1px solid var(--line)}.admin-section__heading{align-self:start}.admin-section__heading p,.admin-project-editor__head p{margin:0 0 .85rem;color:var(--accent-dark);font-family:Archivo,Inter,sans-serif;font-size:1.24rem;font-weight:700}.admin-project-editor__head p{color:var(--accent)}.admin-section__heading h2,.admin-project-editor__head h3{margin:0;font-family:Archivo,Inter,sans-serif;font-size:2rem;line-height:.98}.admin-section__heading--with-action{justify-content:space-between;gap:1rem}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem}.admin-form-grid label,.admin-status-item label,.admin-upload-row label,.admin-login__form label{display:grid;gap:.45rem;min-width:0;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.admin-field--wide{grid-column:1 / -1}.admin-form-grid input,.admin-form-grid textarea,.admin-form-grid select,.admin-status-item input,.admin-status-item textarea,.admin-upload-row input,.admin-inline-fields input,.admin-login input{width:100%;min-height:46px;border:1px solid var(--line);border-radius:0;background:var(--bg-soft);caret-color:var(--accent);color:var(--ink);padding:.78rem .85rem;outline:0;transition:border-color .18s ease,background-color .18s ease}.admin-form-grid textarea,.admin-status-item textarea{resize:vertical}.admin-form-grid input:focus,.admin-form-grid textarea:focus,.admin-form-grid select:focus,.admin-status-item input:focus,.admin-status-item textarea:focus,.admin-upload-row input:focus,.admin-inline-fields input:focus,.admin-login input:focus{border-color:var(--accent);background:#65e6ff0b}.admin-shell input::placeholder,.admin-shell textarea::placeholder{color:var(--muted);opacity:.72}.admin-button,.admin-icon-button,.admin-mini-button,.admin-file-button{border:1px solid var(--line-strong);background:transparent;color:var(--ink);cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.admin-button,.admin-file-button{gap:.45rem;justify-content:center;min-height:42px;padding:.7rem .9rem}.admin-button--dark{border-color:var(--accent);background:var(--accent);color:var(--inverse)}.admin-button:hover,.admin-button:focus-visible,.admin-mini-button:hover,.admin-mini-button:focus-visible,.admin-file-button:hover,.admin-file-button:focus-visible,.admin-icon-button:hover,.admin-icon-button:focus-visible{border-color:var(--accent);background:var(--accent);color:var(--inverse)}.admin-button:disabled,.admin-file-button:has(input:disabled){opacity:.48;cursor:wait}.admin-icon-button:disabled{opacity:.48;cursor:not-allowed}.admin-icon-button{display:grid;width:44px;height:44px;place-items:center}.admin-mini-button{display:inline-flex;gap:.35rem;align-items:center;min-height:44px;padding:.42rem .58rem}.admin-file-button:focus-within{outline:2px solid var(--accent);outline-offset:4px}.admin-message{margin:0;color:var(--accent-dark);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;font-weight:800;text-transform:uppercase}.admin-message--error{color:#ff8f86}.admin-status-list,.admin-project-list{display:grid;gap:1rem}.admin-status-list{grid-column:2;margin-top:1.35rem}.admin-status-item{display:grid;grid-template-columns:minmax(160px,.34fr) minmax(0,1fr) auto;gap:1rem;align-items:end;padding-top:1rem;border-top:1px solid var(--line)}.admin-check{align-self:center}.admin-check input{width:auto}.admin-project-list{grid-column:1 / -1}.admin-project-editor{padding:clamp(1rem,2vw,1.5rem);border:1px solid var(--line);background:#0b100ec7}.admin-project-editor__head{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:1rem;margin-bottom:1.2rem}.admin-project-editor__head p{margin:0}.admin-upload-row{display:grid;grid-template-columns:160px minmax(0,1fr) auto;gap:1rem;align-items:end;margin-top:1rem}.admin-upload-row__preview{display:grid;height:92px;place-items:center;overflow:hidden;border:1px solid var(--line);background:var(--bg-soft)}.admin-upload-row__preview img{width:100%;height:100%;object-fit:cover}.admin-file-button{position:relative;min-width:148px}.admin-file-button input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0}.admin-image-upload{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem;margin-top:1rem}.admin-image-previews{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.7rem}.admin-image-previews.is-empty{grid-template-columns:1fr}.admin-image-preview{position:relative;aspect-ratio:16 / 9;min-height:92px;overflow:hidden;border:1px solid var(--line);background:var(--bg-soft)}.admin-image-preview img{width:100%;height:100%;min-height:92px;object-fit:cover}.admin-image-preview span{position:absolute;right:.4rem;bottom:.4rem;padding:.18rem .3rem;background:var(--accent);color:var(--inverse);font-size:.62rem;font-weight:800}.admin-image-previews.is-empty p{display:flex;min-height:92px;align-items:center;gap:.7rem;margin:0;padding:1rem;border:1px solid var(--line);background:var(--bg-soft);color:var(--muted);font-size:.76rem;font-weight:700}.admin-two-column,.admin-contact-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.admin-contact-editor{grid-template-columns:1fr}.admin-contact-list{display:grid;gap:.7rem;min-width:0}.admin-two-column h3,.admin-contact-list h3{margin:0;color:var(--muted);font-size:.78rem;text-transform:uppercase}.admin-list-heading{justify-content:space-between;gap:1rem;margin-bottom:1rem}.admin-inline-fields{display:grid;grid-template-columns:minmax(120px,.4fr) minmax(0,.8fr) minmax(0,1fr);align-items:stretch;gap:.7rem;margin-bottom:.7rem}.admin-inline-fields--details{grid-template-columns:minmax(130px,.42fr) minmax(180px,.7fr) minmax(220px,1fr) 42px}.admin-inline-fields--links{grid-template-columns:minmax(130px,.42fr) minmax(240px,1fr) 42px}.admin-inline-fields .admin-icon-button{width:42px;min-width:42px;padding:0}.admin-login{position:relative;max-width:720px;padding:clamp(2rem,6vw,4.5rem);border:1px solid var(--line);background:#0b100ef0;box-shadow:0 28px 90px #00000061}.admin-login:before{position:absolute;top:-1px;right:-1px;left:-1px;height:1px;background:linear-gradient(90deg,var(--accent-dark) 0 50%,var(--accent) 50%);content:""}.admin-login h1{margin:1rem 0;font-family:Archivo,Inter,sans-serif;font-size:4.4rem;font-weight:900;letter-spacing:-.06em;line-height:.88;text-transform:uppercase}.admin-login p{max-width:520px;color:var(--ink-soft)}.admin-login__form{display:grid;gap:.9rem;margin-top:2rem}.admin-login__row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.8rem}.admin-back-link{display:inline-flex;margin-bottom:3rem;color:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;font-weight:800;text-transform:uppercase;transition:color .18s ease}.admin-back-link:hover,.admin-back-link:focus-visible{color:var(--accent-dark)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .62s ease,transform .62s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}.intro-copy .section-kicker,.intro-copy h1,.intro-role,.intro-text,.contact-copy .section-kicker,.contact-copy h2 span{opacity:0;transform:translateY(14px);transition:opacity .56s ease,transform .56s ease}.intro-copy.is-visible .section-kicker,.intro-copy.is-visible h1,.intro-copy.is-visible .intro-role,.intro-copy.is-visible .intro-text,.contact-copy.is-visible .section-kicker,.contact-copy.is-visible h2 span{opacity:1;transform:translateY(0)}.intro-copy.is-visible h1{transition-delay:90ms}.intro-copy.is-visible .intro-role{transition-delay:.17s}.intro-copy.is-visible .intro-text{transition-delay:.25s}.contact-copy.is-visible h2 span:first-child{transition-delay:90ms}.contact-copy.is-visible h2 span:last-child{transition-delay:.18s}@keyframes status-pulse{0%,to{opacity:.64;transform:scale(1)}50%{opacity:1;transform:scale(1.32)}}@media(max-width:1180px){:root{--page-pad: 1.65rem}.section-grid{gap:0 1.35rem}.side-index{display:none}.intro-copy{grid-column:1 / 8}.intro-copy h1{font-size:6.9rem}.intro-role{font-size:1.72rem}.intro-status{grid-column:8 / 13}.intro-status__item{grid-template-columns:6.7rem minmax(0,1fr);gap:1rem}.projects-heading>.section-kicker{grid-column:1 / 4}.projects-heading>div{grid-column:4 / 13}.projects-heading h2{font-size:3.2rem}.projects-heading--index h2{font-size:1.02rem}.project-index-row{grid-template-columns:64px minmax(220px,.9fr) minmax(320px,1.1fr) 56px}.project-index-row__summary{display:none}.project-index-row__meta{grid-template-columns:minmax(0,1fr);gap:.75rem}.project-index-row__title{font-size:2.7rem}.project-card{min-height:620px;flex-basis:82vw}.project-card h3{font-size:3.9rem}.project-card--type h3{font-size:5rem}.contact-copy h2{font-size:4.8rem}.contact-email{font-size:1.58rem}.contact-links{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-hero h1{font-size:3.8rem}.admin-section{grid-template-columns:minmax(140px,.24fr) minmax(0,1fr)}.admin-status-item{grid-template-columns:minmax(140px,.32fr) minmax(0,1fr)}.admin-check{grid-column:1 / -1}}@media(max-width:880px){:root{--nav-height: 68px}.site-nav{grid-template-columns:auto 1fr}.site-nav__links{justify-content:flex-end;gap:1.4rem}.intro-section,.intro-grid{min-height:auto}.intro-grid{padding-top:calc(var(--nav-height) + 4rem);padding-bottom:5rem}.intro-copy,.intro-status,.projects-heading>.section-kicker,.projects-heading>div,.contact-copy,.contact-panel{grid-column:1 / -1}.intro-copy h1{font-size:5.7rem}.intro-copy__body{margin-top:2.6rem}.intro-status{margin-top:3.5rem}.projects-section{padding:5.8rem 0 6.5rem}.projects-heading{gap:1.2rem;margin-bottom:3rem}.projects-heading--index{min-height:136px;margin-bottom:0}.projects-heading h2{font-size:2.65rem}.projects-heading--index h2{font-size:1rem}.projects-controls{max-width:none}.projects-rail{gap:1.25rem;padding-bottom:1.5rem;scroll-snap-type:x mandatory}.project-card{min-height:auto;flex-basis:85vw;grid-template-columns:1fr;grid-template-rows:auto;gap:1.2rem;padding-top:1.1rem}.project-card__copy,.project-card__media,.project-card__details,.project-card__action,.project-card--split .project-card__copy,.project-card--split .project-card__media,.project-card--split .project-card__details,.project-card--split .project-card__action,.project-card--overlay .project-card__copy,.project-card--overlay .project-card__media,.project-card--overlay .project-card__details,.project-card--overlay .project-card__action,.project-card--offset .project-card__copy,.project-card--offset .project-card__media,.project-card--offset .project-card__details,.project-card--offset .project-card__action,.project-card--type .project-card__copy,.project-card--type .project-card__media,.project-card--type .project-card__details,.project-card--type .project-card__action{grid-column:1;grid-row:auto}.project-card--overlay .project-card__copy,.project-card--overlay .project-card__details,.project-card--offset .project-card__copy{max-width:none;border-top:0;background:transparent;padding:0}.project-card__media,.project-card--offset .project-card__media{height:360px;min-height:0;border-left:0}.project-card h3,.project-card--type h3{font-size:3.4rem}.project-card__cursor{display:none}.project-index-row{min-height:0;grid-template-columns:58px minmax(0,1fr) 48px}.project-index-row__number{align-items:flex-start;padding-top:1.45rem;font-size:1.28rem}.project-index-row__meta{padding:1.45rem 1rem 1rem 0}.project-index-row__title{font-size:2.3rem}.project-index-row__cover{grid-column:2 / 4;min-height:132px;margin:0 0 1rem;border-left:0}.project-index-row__arrow{grid-column:3;grid-row:1}.project-index-row__view{display:none}.contact-grid{min-height:auto;gap:3rem 0;padding-top:5.6rem}.contact-copy h2{font-size:4.2rem}.contact-panel{align-self:start}.contact-footer,.project-dialog__inner{grid-template-columns:1fr}.project-dialog__media{min-height:260px}.admin-header,.admin-hero,.admin-section,.admin-two-column,.admin-contact-editor,.admin-upload-row,.admin-image-upload,.admin-inline-fields,.admin-inline-fields--details,.admin-inline-fields--links{grid-template-columns:1fr}.admin-header{position:static;align-items:start;padding-top:1rem;padding-bottom:1rem}.admin-header__meta,.admin-actions{justify-content:flex-start}.admin-hero{padding-top:3.6rem}.admin-hero .section-kicker,.admin-hero h1,.admin-actions,.admin-status-list{grid-column:1}.admin-section{gap:1.6rem}.admin-form-grid,.admin-status-item{grid-template-columns:1fr}.admin-project-editor__head{grid-template-columns:54px minmax(0,1fr) auto}.admin-upload-row__preview{height:160px}}@media(max-width:620px){:root{--page-pad: 1rem;--nav-height: 64px}body{font-size:15px}.site-nav{grid-template-columns:24px 1fr;min-height:var(--nav-height)}.brand-lockup span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.site-nav__links{gap:.92rem}.intro-grid{padding-top:calc(var(--nav-height) + 3.1rem);padding-bottom:4.3rem}.intro-copy h1{margin-top:1.3rem;font-size:3.9rem}.intro-copy__body{margin-top:2.25rem}.intro-role{font-size:1.35rem}.intro-text{margin-top:1.7rem;font-size:.98rem}.intro-status__item,.contact-details div{grid-template-columns:1fr;gap:.46rem}.intro-status dt span{display:inline;margin-right:.65rem;margin-bottom:0}.projects-section{padding:4.6rem 0 5rem}.projects-heading h2{font-size:2.2rem}.projects-heading--index h2{font-size:1rem}.projects-controls{grid-template-columns:auto minmax(88px,1fr) 38px 38px;gap:.7rem}.projects-controls button{width:38px;height:38px}.project-card{flex-basis:85vw}.project-card__media,.project-card--offset .project-card__media{height:300px}.project-card h3,.project-card--type h3{font-size:2.55rem}.project-index-row__title{font-size:2.08rem}.project-index-row__category{font-size:.72rem}.project-card__meta{gap:.45rem .75rem;margin-bottom:1.25rem}.project-card__details{gap:.75rem}.contact-grid{padding-top:4.8rem;padding-bottom:4rem}.contact-copy h2{font-size:2.5rem}.contact-email{font-size:1.3rem}.contact-links{grid-template-columns:1fr}.project-dialog{width:calc(100vw - 1rem)}.project-dialog__content{padding:1.35rem}.project-dialog__content h2{font-size:2.7rem}.admin-shell--login{place-items:stretch}.admin-header__meta,.admin-actions,.admin-section__heading--with-action{width:100%;align-items:flex-start;flex-direction:column}.admin-header__meta .admin-button,.admin-actions .admin-button,.admin-section__heading--with-action>.admin-button,.admin-file-button{width:100%}.admin-hero h1,.admin-login h1{font-size:clamp(2.5rem,12vw,3.2rem)}.admin-section{padding-top:2.8rem;padding-bottom:2.8rem}.admin-section__heading h2,.admin-project-editor__head h3{font-size:1.65rem}.admin-login__row{grid-template-columns:1fr}.admin-project-editor__head{grid-template-columns:42px minmax(0,1fr) auto}.admin-project-editor__head h3{overflow-wrap:anywhere}.admin-project-editor,.admin-login{padding:1rem}.admin-upload-row__preview{height:140px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal,.intro-copy .section-kicker,.intro-copy h1,.intro-role,.intro-text,.contact-copy .section-kicker,.contact-copy h2 span{opacity:1;transform:none}.project-card__cursor,.project-index-row__view{display:none}.with-status-dot i{animation:none}}html.portfolio-mode{min-width:0;color-scheme:dark;background:#070a09;scroll-padding-top:5.5rem}body.portfolio-mode{min-width:0;background:#070a09;color:#edf5ef}.portfolio{--portfolio-bg: #070a09;--portfolio-surface: #0b100e;--portfolio-surface-raised: #101713;--portfolio-ink: #edf5ef;--portfolio-muted: #8d9a91;--portfolio-hardware: #b8ff5a;--portfolio-software: #65e6ff;--portfolio-line: rgba(222, 255, 230, .14);--portfolio-line-strong: rgba(222, 255, 230, .29);--portfolio-page: clamp(1.25rem, 4vw, 4.5rem);--portfolio-max: 1440px;min-width:0;min-height:100vh;overflow:clip;background:var(--portfolio-bg);color:var(--portfolio-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.portfolio ::selection{background:var(--portfolio-software);color:#041014}.portfolio :focus-visible{outline:2px solid var(--portfolio-software);outline-offset:5px}.portfolio-skip{position:fixed;z-index:100;top:.75rem;left:.75rem;padding:.7rem .9rem;background:var(--portfolio-ink);color:var(--portfolio-bg);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transform:translateY(-160%);transition:transform .18s ease}.portfolio-skip:focus{transform:translateY(0)}.portfolio-nav{position:fixed;z-index:50;top:0;left:0;display:grid;width:100%;min-height:72px;grid-template-columns:minmax(8rem,1fr) auto;align-items:center;padding:0 var(--portfolio-page);border-bottom:1px solid transparent;background:#070a09b8;transition:min-height .22s ease,border-color .22s ease,background-color .22s ease}.portfolio-nav.is-scrolled{min-height:64px;border-color:var(--portfolio-line);background:#070a09f0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.portfolio-brand,.portfolio-nav__links,.portfolio-kicker,.portfolio-hero__role,.portfolio-project__number,.portfolio-project__meta,.portfolio-project__action,.portfolio-dialog__eyebrow,.portfolio-contact__details,.portfolio-contact__links,.portfolio-footer{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.portfolio-brand{display:inline-flex;width:max-content;min-width:44px;min-height:44px;align-items:center;gap:.55rem;font-size:.76rem;font-weight:800;letter-spacing:.12em}.portfolio-brand span:last-child{color:var(--portfolio-software);font-size:.62rem;font-weight:600}.portfolio-nav__links{display:flex;align-items:center;gap:clamp(1.2rem,3vw,3rem);color:var(--portfolio-muted);font-size:.69rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.portfolio-nav__links a{position:relative;display:flex;min-height:44px;align-items:center;padding:.75rem 0;transition:color .18s ease}.portfolio-nav__links a:after{position:absolute;right:0;bottom:.48rem;left:0;height:1px;background:var(--portfolio-software);content:"";transform:scaleX(0);transform-origin:left;transition:transform .18s ease}.portfolio-nav__links a:hover,.portfolio-nav__links a:focus-visible,.portfolio-nav__links a.is-active{color:var(--portfolio-ink)}.portfolio-nav__links a:hover:after,.portfolio-nav__links a:focus-visible:after,.portfolio-nav__links a.is-active:after{transform:scaleX(1)}.portfolio-hero{position:relative;display:grid;min-height:100svh;place-items:center;overflow:hidden;padding:clamp(7rem,13vh,10rem) var(--portfolio-page) clamp(4rem,8vh,6rem);border-bottom:1px solid var(--portfolio-line);isolation:isolate}.portfolio-hero:before,.portfolio-hero:after{position:absolute;z-index:-2;top:0;bottom:0;width:50%;content:""}.portfolio-hero:before{left:0;background:#b8ff5a05}.portfolio-hero:after{right:0;background:#65e6ff06}.portfolio-hero__divider{position:absolute;z-index:-1;top:72px;bottom:0;left:50%;width:1px;background:var(--portfolio-line)}.portfolio-hero__divider:after{position:absolute;top:-18%;left:0;width:1px;height:16vh;background:var(--portfolio-software);box-shadow:0 0 20px #65e6ff8c;content:"";animation:portfolio-divider-flow 5.5s cubic-bezier(.45,0,.55,1) infinite}.portfolio-hero__inner{display:grid;width:min(100%,var(--portfolio-max));justify-items:center}.portfolio-hero__name{display:grid;width:100%;margin:0;grid-template-columns:1fr 1fr;color:var(--portfolio-ink);font-family:Archivo,Inter,sans-serif;font-size:clamp(3rem,var(--portfolio-name-size, 22.5vw),21rem);font-weight:900;letter-spacing:-.1em;line-height:.72;text-transform:uppercase}.portfolio-hero__name span{display:block;will-change:transform,opacity}.portfolio-hero__name span:first-child{padding-right:.075em;text-align:right;text-shadow:-10px 0 48px rgba(184,255,90,.12);animation:portfolio-name-left .9s .1s cubic-bezier(.16,1,.3,1) both}.portfolio-hero__name span:last-child{padding-left:.025em;color:transparent;-webkit-text-stroke:clamp(1px,.13vw,2.2px) var(--portfolio-ink);text-shadow:10px 0 48px rgba(101,230,255,.12);animation:portfolio-name-right .9s .1s cubic-bezier(.16,1,.3,1) both}.portfolio-hero__intro{position:relative;display:grid;width:min(100%,690px);justify-items:center;margin-top:clamp(3rem,8vh,5rem);padding:1.6rem clamp(1rem,3vw,2.5rem) 0;background:var(--portfolio-bg);text-align:center;animation:portfolio-intro-in .7s .6s ease both}.portfolio-hero__intro:before,.portfolio-hero__intro:after{position:absolute;top:0;width:50%;height:1px;content:""}.portfolio-hero__intro:before{right:50%;background:var(--portfolio-hardware)}.portfolio-hero__intro:after{left:50%;background:var(--portfolio-software)}.portfolio-hero__role{margin:0 0 1rem;color:var(--portfolio-hardware);font-size:.72rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.portfolio-hero__text{max-width:620px;margin:0;color:#c7d1ca;font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.75}.portfolio-hero__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.8rem}.portfolio-button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:1rem;padding:.8rem 1rem;border:1px solid var(--portfolio-line-strong);background:var(--portfolio-bg);color:var(--portfolio-ink);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;transition:border-color .18s ease,background-color .18s ease,color .18s ease,transform .18s ease}.portfolio-button span{transition:transform .18s ease}.portfolio-button:hover,.portfolio-button:focus-visible{border-color:var(--portfolio-ink);background:var(--portfolio-ink);color:var(--portfolio-bg);transform:translateY(-2px)}.portfolio-button:hover span,.portfolio-button:focus-visible span{transform:translate(2px,2px)}.portfolio-button--primary{border-color:var(--portfolio-software);background:var(--portfolio-software);color:#041014}.portfolio-projects{position:relative;padding:clamp(6rem,11vw,10rem) var(--portfolio-page);background:var(--portfolio-surface)}.portfolio-section-head{display:grid;width:min(100%,var(--portfolio-max));margin:0 auto clamp(3.5rem,7vw,6rem);grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);align-items:end;gap:clamp(2rem,6vw,7rem)}.portfolio-kicker{margin:0 0 1rem;color:var(--portfolio-hardware);font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.portfolio-section-head h2{max-width:850px;margin:0;font-family:Archivo,Inter,sans-serif;font-size:clamp(3.5rem,8.5vw,8.5rem);font-weight:900;letter-spacing:-.075em;line-height:.85}.portfolio-section-head>p{margin:0 0 .45rem;color:var(--portfolio-muted);font-size:.96rem;line-height:1.75}.portfolio-project-list{width:min(100%,var(--portfolio-max));margin:0 auto;border-top:1px solid var(--portfolio-line-strong)}.portfolio-project{position:relative;margin:0;border-bottom:1px solid var(--portfolio-line)}.portfolio-project:before{position:absolute;z-index:2;top:0;bottom:0;left:0;width:2px;background:var(--portfolio-software);content:"";transform:scaleY(0);transform-origin:center;transition:transform .26s ease;pointer-events:none}.portfolio-project:has(.portfolio-project__button:hover):before,.portfolio-project:has(.portfolio-project__button:focus-visible):before{transform:scaleY(1)}.portfolio-project__button{display:grid;width:100%;min-height:178px;grid-template-columns:56px minmax(240px,1.25fr) minmax(150px,.55fr) minmax(160px,.55fr) 122px;align-items:center;gap:clamp(1rem,2.5vw,2.5rem);padding:1.4rem clamp(.5rem,1.5vw,1.25rem);border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;transition:background-color .22s ease}.portfolio-project--text-only .portfolio-project__button{grid-template-columns:56px minmax(280px,1.7fr) minmax(150px,.55fr) 122px}.portfolio-project__button:hover,.portfolio-project__button:focus-visible{background:var(--portfolio-surface-raised)}.portfolio-project__number{align-self:start;padding-top:.6rem;color:var(--portfolio-muted);font-size:.68rem;letter-spacing:.08em}.portfolio-project__copy{display:grid;align-content:center;gap:.75rem}.portfolio-project__title{font-family:Archivo,Inter,sans-serif;font-size:clamp(2rem,3.7vw,3.9rem);font-weight:700;letter-spacing:-.055em;line-height:.95;transition:color .22s ease,transform .22s ease}.portfolio-project__summary{max-width:560px;color:var(--portfolio-muted);font-size:.87rem;line-height:1.55}.portfolio-project__meta{display:grid;gap:.45rem;color:var(--portfolio-muted);font-size:.66rem;letter-spacing:.07em;line-height:1.4;text-transform:uppercase}.portfolio-project__meta span:last-child{color:var(--portfolio-ink)}.portfolio-project__cover{position:relative;display:block;aspect-ratio:3 / 1;overflow:hidden;border:1px solid var(--portfolio-line);background:var(--portfolio-bg)}.portfolio-project__cover img{width:100%;height:100%;object-fit:cover;opacity:.72;filter:saturate(.72) contrast(1.08);transform:scale(1.01);transition:filter .32s ease,opacity .32s ease,transform .5s cubic-bezier(.16,1,.3,1)}.portfolio-project__image-count{position:absolute;right:.35rem;bottom:.35rem;padding:.22rem .34rem;background:#070a09e6;color:var(--portfolio-software);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.6rem;font-weight:700}.portfolio-project__action{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;font-size:.65rem;letter-spacing:.06em;text-transform:uppercase}.portfolio-project__arrow{display:grid;width:42px;height:42px;place-items:center;border:1px solid var(--portfolio-line-strong);transition:border-color .22s ease,background-color .22s ease,color .22s ease,transform .22s ease}.portfolio-project__button:hover .portfolio-project__title,.portfolio-project__button:focus-visible .portfolio-project__title{color:var(--portfolio-software);transform:translate(6px)}.portfolio-project__button:hover .portfolio-project__cover img,.portfolio-project__button:focus-visible .portfolio-project__cover img{opacity:1;filter:saturate(1) contrast(1);transform:scale(1.08)}.portfolio-project__button:hover .portfolio-project__arrow,.portfolio-project__button:focus-visible .portfolio-project__arrow{border-color:var(--portfolio-software);background:var(--portfolio-software);color:#041014;transform:rotate(45deg)}.portfolio-dialog{width:min(920px,calc(100vw - 2rem));max-width:none;max-height:min(860px,calc(100dvh - 2rem));margin:auto;padding:0;overflow:auto;border:1px solid var(--portfolio-line-strong);background:var(--portfolio-surface);color:var(--portfolio-ink);box-shadow:0 28px 90px #0000008f}.portfolio-dialog--text-only{width:min(760px,calc(100vw - 2rem))}.portfolio-dialog--gallery{width:min(1040px,calc(100vw - 2rem))}.portfolio-dialog[open]{animation:portfolio-dialog-in .32s cubic-bezier(.16,1,.3,1) both}.portfolio-dialog::backdrop{background:#020504d6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.portfolio-dialog__inner{position:relative}.portfolio-dialog__close{position:absolute;z-index:3;top:1rem;right:1rem;display:grid;width:44px;height:44px;place-items:center;border:1px solid var(--portfolio-line-strong);background:#070a09eb;color:var(--portfolio-ink);cursor:pointer;transition:border-color .18s ease,background-color .18s ease,color .18s ease,transform .18s ease}.portfolio-dialog__close:hover,.portfolio-dialog__close:focus-visible{border-color:var(--portfolio-software);background:var(--portfolio-software);color:#041014;transform:rotate(90deg)}.portfolio-dialog__media{width:100%;height:clamp(130px,21vw,220px);overflow:hidden;border-bottom:1px solid var(--portfolio-line);background:var(--portfolio-bg)}.portfolio-dialog__media img{width:100%;height:100%;object-fit:cover}.portfolio-dialog--gallery .portfolio-dialog__media{display:grid;height:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--portfolio-line)}.portfolio-dialog--gallery .portfolio-dialog__media img{height:clamp(150px,18vw,240px)}.portfolio-dialog--gallery .portfolio-dialog__media img:first-child:nth-last-child(odd){grid-column:1 / -1}.portfolio-dialog__content{padding:clamp(1.6rem,4vw,3.5rem)}.portfolio-dialog--text-only .portfolio-dialog__content{padding-top:clamp(4.8rem,8vw,6rem)}.portfolio-dialog__eyebrow{margin:0 0 1rem;color:var(--portfolio-hardware);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.portfolio-dialog__content h2{margin:0;font-family:Archivo,Inter,sans-serif;font-size:clamp(2.7rem,7vw,5.8rem);font-weight:800;letter-spacing:-.065em;line-height:.9}.portfolio-dialog__description{max-width:700px;margin:1.7rem 0 0;color:#c6d0c9;font-size:clamp(1rem,1.8vw,1.15rem);line-height:1.75}.portfolio-dialog__actions{display:flex;flex-wrap:wrap;gap:1.4rem;margin-top:2rem}.portfolio-dialog__actions a{display:inline-flex;align-items:center;gap:.55rem;border-bottom:1px solid var(--portfolio-line-strong);color:var(--portfolio-ink);font-size:.85rem;font-weight:700;transition:border-color .18s ease,color .18s ease}.portfolio-dialog__actions a:hover,.portfolio-dialog__actions a:focus-visible{border-color:var(--portfolio-software);color:var(--portfolio-software)}.portfolio-contact{position:relative;padding:clamp(6rem,11vw,10rem) var(--portfolio-page) 2rem;border-top:1px solid var(--portfolio-line);background:var(--portfolio-bg)}.portfolio-contact__grid{display:grid;width:min(100%,var(--portfolio-max));margin:0 auto;grid-template-columns:minmax(280px,.8fr) minmax(360px,1.2fr);gap:clamp(3rem,10vw,10rem)}.portfolio-contact__copy h2{display:grid;margin:0;font-family:Archivo,Inter,sans-serif;font-size:clamp(2.7rem,5.5vw,5.5rem);font-weight:800;letter-spacing:-.06em;line-height:.95}.portfolio-contact__copy h2 span:last-child{color:transparent;-webkit-text-stroke:1px var(--portfolio-ink)}.portfolio-contact__intro{max-width:460px;margin:1.6rem 0 0;color:var(--portfolio-muted);line-height:1.7}.portfolio-contact__panel{align-self:start}.portfolio-contact__email{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 0 1rem;border-bottom:1px solid var(--portfolio-software);color:var(--portfolio-ink);font-family:Archivo,Inter,sans-serif;font-size:clamp(1.35rem,3.2vw,3rem);font-weight:700;letter-spacing:-.04em;overflow-wrap:anywhere;transition:color .18s ease}.portfolio-contact__email svg{flex:0 0 auto;transition:transform .18s ease}.portfolio-contact__email:hover,.portfolio-contact__email:focus-visible{color:var(--portfolio-software)}.portfolio-contact__email:hover svg,.portfolio-contact__email:focus-visible svg{transform:translate(6px)}.portfolio-contact__details{display:grid;margin:1.5rem 0 0;gap:.8rem}.portfolio-contact__details div{display:grid;grid-template-columns:130px 1fr;gap:1rem}.portfolio-contact__details dt{color:var(--portfolio-muted);font-size:.65rem;letter-spacing:.08em;text-transform:uppercase}.portfolio-contact__details dd{margin:0;color:#c9d4cc;font-size:.72rem}.portfolio-contact__links{display:grid;margin-top:2.3rem;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--portfolio-line);border-left:1px solid var(--portfolio-line)}.portfolio-contact__links a{display:grid;min-height:96px;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;padding:1rem;border-right:1px solid var(--portfolio-line);border-bottom:1px solid var(--portfolio-line);color:var(--portfolio-muted);font-size:.68rem;letter-spacing:.04em;transition:background-color .18s ease,color .18s ease}.portfolio-contact__link-icon{display:grid;width:32px;height:32px;place-items:center;border:1px solid var(--portfolio-line)}.portfolio-contact__links a:hover,.portfolio-contact__links a:focus-visible{background:var(--portfolio-surface-raised);color:var(--portfolio-software)}.portfolio-footer{display:grid;width:min(100%,var(--portfolio-max));margin:clamp(6rem,10vw,10rem) auto 0;grid-template-columns:1fr auto 1fr;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--portfolio-line);color:var(--portfolio-muted);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase}.portfolio-footer__links{display:flex;justify-content:flex-end;gap:1.2rem}.portfolio-footer a{transition:color .18s ease}.portfolio-footer a:hover,.portfolio-footer a:focus-visible{color:var(--portfolio-software)}.portfolio .reveal{opacity:0;transform:translateY(34px);transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1)}.portfolio .reveal.is-visible{opacity:1;transform:translateY(0)}.portfolio-project:nth-child(2){transition-delay:80ms}.portfolio-project:nth-child(3){transition-delay:.16s}.portfolio-project:nth-child(4){transition-delay:.24s}@keyframes portfolio-name-left{0%{opacity:0;transform:translate(10vw)}to{opacity:1;transform:translate(0)}}@keyframes portfolio-name-right{0%{opacity:0;transform:translate(-10vw)}to{opacity:1;transform:translate(0)}}@keyframes portfolio-intro-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes portfolio-divider-flow{0%{opacity:0;transform:translateY(0)}15%,85%{opacity:1}to{opacity:0;transform:translateY(118vh)}}@keyframes portfolio-dialog-in{0%{opacity:0;transform:translateY(22px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:1100px){.portfolio-project__button{grid-template-columns:44px minmax(220px,1fr) minmax(130px,.52fr) 150px 52px}.portfolio-project--text-only .portfolio-project__button{grid-template-columns:44px minmax(220px,1fr) minmax(130px,.52fr) 52px}.portfolio-project__action>span:first-child{display:none}}@media(max-width:860px){.portfolio-section-head,.portfolio-contact__grid{grid-template-columns:1fr}.portfolio-section-head{gap:1.8rem}.portfolio-section-head>p{max-width:600px}.portfolio-project__button{min-height:160px;grid-template-columns:38px minmax(0,1fr) 150px 48px}.portfolio-project--text-only .portfolio-project__button{grid-template-columns:38px minmax(0,1fr) 48px}.portfolio-project__meta{display:none}.portfolio-contact__grid{gap:3.5rem}.portfolio-contact__copy h2{max-width:580px}}@media(max-width:620px){.portfolio-nav{min-height:64px}.portfolio-brand span:last-child{display:none}.portfolio-nav__links{gap:1rem;font-size:.61rem}.portfolio-hero{min-height:100svh;padding-top:7rem}.portfolio-hero__divider{top:64px}.portfolio-hero__name{font-size:clamp(3rem,var(--portfolio-name-size-mobile, 29vw),9rem);letter-spacing:-.11em}.portfolio-hero__intro{margin-top:3.2rem;padding-right:0;padding-left:0}.portfolio-hero__actions{width:100%}.portfolio-button{flex:1 1 150px}.portfolio-projects{padding-top:5.5rem;padding-bottom:5.5rem}.portfolio-section-head h2{font-size:clamp(3.3rem,18vw,5.5rem)}.portfolio-project__button{min-height:0;grid-template-columns:32px minmax(0,1fr) 44px;gap:.8rem;padding:1.5rem .35rem}.portfolio-project--text-only .portfolio-project__button{grid-template-columns:32px minmax(0,1fr) 44px}.portfolio-project__number{padding-top:.25rem}.portfolio-project__title{font-size:clamp(1.8rem,9vw,2.6rem)}.portfolio-project__summary{font-size:.78rem}.portfolio-project__cover,.portfolio-project__meta{display:none}.portfolio-project__arrow{width:40px;height:40px}.portfolio-dialog{width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem)}.portfolio-dialog__media{height:112px}.portfolio-dialog--gallery .portfolio-dialog__media{grid-template-columns:1fr}.portfolio-dialog--gallery .portfolio-dialog__media img,.portfolio-dialog--gallery .portfolio-dialog__media img:first-child:nth-last-child(odd){height:128px;grid-column:auto}.portfolio-contact{padding-top:5.5rem}.portfolio-contact__copy h2{font-size:clamp(2.8rem,14vw,4.5rem)}.portfolio-contact__links{grid-template-columns:1fr}.portfolio-contact__links a{min-height:72px}.portfolio-footer{grid-template-columns:1fr}.portfolio-footer__links{justify-content:flex-start}}@media(max-width:390px){.portfolio-nav__links{gap:.75rem}.portfolio-nav__links a:first-child{display:none}.portfolio-hero__text{font-size:.95rem}.portfolio-project__button,.portfolio-project--text-only .portfolio-project__button{grid-template-columns:26px minmax(0,1fr) 40px}.portfolio-project__summary{display:none}.portfolio-dialog__content h2{font-size:2.6rem}}@media(prefers-reduced-motion:reduce){html.portfolio-mode{scroll-behavior:auto}.portfolio *,.portfolio *:before,.portfolio *:after,.portfolio-dialog,.portfolio-dialog *{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.portfolio .reveal{opacity:1;transform:none}}
