:root{--ink:#101820;--navy:#0b2f5b;--blue:#174f8a;--blue-soft:#d8e7f3;--cream:#f6f0e6;--paper:#fffaf1;--line:#10182029;--muted:#5f6a74;--gold:#b98a35;--wine:#7d2638;--green:#0f6b5f;--danger:#9f2a2a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}p,h1,h2,h3,span,strong,a{overflow-wrap:break-word}button,input,select,textarea{font:inherit}h1,h2,h3,p{margin-top:0}.portfolio-page{background:radial-gradient(circle at 12% 0,#b98a352e,#0000 28rem),linear-gradient(#f8f2e8 0%,#f2eadf 100%);min-height:100vh}.topbar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);z-index:20;background:#f6f0e6c7;justify-content:space-between;align-items:center;min-height:76px;padding:0 5vw;display:flex;position:sticky;top:0;left:0}.wordmark{background:var(--ink);color:var(--paper);border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;font-size:.9rem;font-weight:900;display:inline-flex}nav{align-items:center;gap:clamp(.8rem,2vw,1.4rem);display:flex}nav a{color:#101820b8;font-size:.9rem;font-weight:800}nav a:hover{color:var(--blue)}.hero{grid-template-columns:.78fr minmax(520px,1.35fr) minmax(260px,.52fr);gap:clamp(1.5rem,4vw,4rem);width:100%;min-height:calc(100vh - 76px);padding:clamp(2rem,5vw,5rem) 5vw;display:grid;overflow:hidden}.pattern-panel{background-color:var(--navy);background-image:linear-gradient(90deg,#0000 0 15px,#ffffff2e 15px 17px,#0000 17px 34px),linear-gradient(0deg,#0000 0 15px,#ffffff29 15px 17px,#0000 17px 34px),linear-gradient(90deg,#0000 0 66px,#b98a35cc 66px 68px,#0000 68px 136px),linear-gradient(0deg,#0000 0 66px,#7d2638bf 66px 68px,#0000 68px 136px),linear-gradient(45deg,#ffffff14 25%,#0000 25% 50%,#ffffff14 50% 75%,#0000 75%);background-size:34px 34px,34px 34px,136px 136px,136px 136px,48px 48px;border:1px solid #fff3;border-radius:8px;align-self:stretch;min-height:520px;box-shadow:0 30px 90px #0b2f5b47}.hero-content{align-self:center;min-width:0;max-width:860px}.kicker{color:var(--wine);letter-spacing:0;text-transform:uppercase;margin-bottom:.9rem;font-size:.78rem;font-weight:900}.hero h1{color:var(--navy);overflow-wrap:normal;max-width:820px;margin-bottom:1.35rem;font-size:5.9rem;line-height:.94}.hero-lede{color:#344352;max-width:720px;font-size:1.35rem;line-height:1.45}.hero-meta{flex-wrap:wrap;gap:.65rem;margin-top:2rem;display:flex}.hero-meta span,.icon-link{border:1px solid var(--line);border-radius:999px;align-items:center;gap:.45rem;min-height:40px;padding:.55rem .8rem;display:inline-flex}.hero-meta span{color:#31404d;background:#fffaf1ad;font-size:.88rem;font-weight:800}.hero-card{background:var(--ink);color:var(--paper);border-radius:8px;align-self:end;min-width:0;padding:1.1rem;overflow:hidden}.card-number{color:var(--gold);margin-bottom:1.2rem;font-size:4.4rem;font-weight:950;line-height:.9;display:block}.hero-card p{color:#fffaf1d1;line-height:1.55}.icon-link{color:#fff;border-color:#ffffff3d;max-width:100%;margin-top:.7rem;font-size:.9rem;font-weight:800}.logo-strip{border-bottom:1px solid var(--line);border-top:1px solid var(--line);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.logo-tile{border-right:1px solid var(--line);background:#fffaf17a;align-content:space-between;gap:1rem;min-height:132px;padding:1.15rem;display:grid}.logo-tile:last-child{border-right:0}.logo-tile img{object-fit:contain;object-position:left center;max-width:100%;height:64px;display:block}.logo-tile span{color:var(--muted);font-size:.86rem;font-weight:750;line-height:1.35;display:block}.section-block,.blue-band,.project-section{padding:clamp(3.5rem,7vw,7rem) 5vw}.section-block.compact{padding-top:clamp(3rem,5vw,5rem)}.section-title{grid-template-columns:minmax(160px,.35fr) minmax(0,1fr);gap:.7rem;margin-bottom:clamp(2rem,4vw,3rem);display:grid}.section-title h2,.project-intro h2{color:var(--navy);max-width:920px;margin-bottom:0;font-size:4.8rem;line-height:.95}.timeline{border-top:1px solid var(--line)}.timeline-item{border-bottom:1px solid var(--line);grid-template-columns:minmax(160px,.35fr) minmax(0,1fr);gap:2rem;padding:2rem 0;display:grid}.timeline-date{color:var(--wine);align-content:start;gap:.8rem;font-size:.9rem;font-weight:900;display:grid}.timeline-date img{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;max-width:180px;padding:.35rem;display:block}.timeline-body{max-width:980px}.item-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.item-heading h3{color:var(--ink);margin-bottom:.4rem;font-size:2.35rem;line-height:1}.item-heading p{color:var(--blue);margin-bottom:0;font-weight:900}.item-heading span{color:var(--muted);flex:none;font-size:.9rem;font-weight:800}.summary{color:#3f4b55;max-width:760px;margin:1.1rem 0;font-size:1.1rem;line-height:1.55}.timeline ul{gap:.72rem;margin:0;padding-left:1.1rem;display:grid}.timeline li{color:#394752;line-height:1.5}.blue-band{background-color:var(--navy);color:#fff;background-image:linear-gradient(90deg,#0000 0 22px,#ffffff1a 22px 24px,#0000 24px 48px),linear-gradient(0deg,#0000 0 22px,#ffffff14 22px 24px,#0000 24px 48px),linear-gradient(90deg,#0000 0 94px,#b98a355c 94px 96px,#0000 96px 192px);background-size:48px 48px,48px 48px,192px 192px}.blue-band .kicker{color:#f0c979}.blue-band h2{color:#fff}.education-grid,.other-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.education-card,.other-card{border-radius:8px;min-height:320px;padding:1.25rem}.education-card{color:var(--ink);background:#fffaf1eb}.card-logo-line{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.2rem;display:flex}.card-logo-line img,.other-card img{border:1px solid var(--line);object-fit:contain;background:#fff;border-radius:8px;max-width:180px;height:62px;padding:.35rem;display:block}.card-logo-line span,.other-card span{color:var(--wine);text-transform:uppercase;font-size:.82rem;font-weight:900;display:block}.education-card h3,.other-card h3{margin-bottom:.8rem;font-size:1.9rem;line-height:1.05}.education-card p,.other-card p{color:#4c5963;line-height:1.55}.education-card strong{color:var(--navy)}.education-card .institution{color:var(--blue);margin-bottom:.25rem;font-weight:900}.meta-line{color:var(--muted);font-size:.92rem;font-weight:800}.other-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.other-card{background:var(--paper);border:1px solid var(--line);align-content:start;gap:.7rem;display:grid}.other-card span{margin-top:.2rem}.skill-cloud{flex-wrap:wrap;gap:.55rem;margin-top:1.2rem;display:flex}.skill-cloud span{background:var(--blue-soft);color:var(--navy);border:1px solid #174f8a2e;border-radius:999px;padding:.55rem .75rem;font-size:.9rem;font-weight:850}.project-section{background:var(--paper);border-top:1px solid var(--line);grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);gap:clamp(2rem,5vw,5rem);display:grid}.project-intro{align-self:start;position:sticky;top:110px}.project-intro p:last-child{color:var(--muted);max-width:420px;font-size:1.05rem;line-height:1.55}.project-list{border-top:1px solid var(--line)}.project-row{border-bottom:1px solid var(--line);grid-template-columns:60px minmax(0,1fr) 42px;align-items:center;gap:1.2rem;min-height:220px;padding:1.8rem 0;display:grid}.project-row:hover h3{color:var(--blue)}.project-row.featured{background:linear-gradient(90deg,#d8e7f3b8,#0000 70%);margin-left:-1rem;padding-left:1rem}.project-index{color:var(--gold);font-size:1.25rem;font-weight:950}.project-row h3{margin-bottom:.75rem;font-size:2.35rem;line-height:1.05;transition:color .16s}.project-row p{color:#48545f;max-width:720px;margin-bottom:.8rem;line-height:1.55}.stack{color:var(--wine);font-size:.88rem;font-weight:900}.featured-label{color:var(--gold);text-transform:uppercase;margin-bottom:.55rem;font-size:.78rem;font-weight:950;display:block}.project-arrow{color:var(--blue)}.footer{background:var(--ink);color:#fff;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:1rem;padding:1.6rem 5vw;display:flex}.footer div{align-items:center;gap:.5rem;margin-right:auto;display:inline-flex}.footer a,.footer span{font-weight:850}.footer a{color:#ffffffc7;align-items:center;gap:.4rem;display:inline-flex}.footer a:hover{color:#fff}.event-page{color:var(--paper);background:#0a2547;min-height:100vh}.event-hero{isolation:isolate;align-items:center;min-height:100vh;padding:clamp(2rem,5vw,4rem);display:grid;position:relative;overflow:hidden}.event-pattern{z-index:-2;background-color:#082a52;background-image:linear-gradient(90deg,#0000 0 13px,#fff3 13px 15px,#0000 15px 30px),linear-gradient(0deg,#0000 0 13px,#ffffff29 13px 15px,#0000 15px 30px),linear-gradient(90deg,#0000 0 58px,#dbab42db 58px 61px,#0000 61px 120px),linear-gradient(0deg,#0000 0 58px,#7d2638c2 58px 61px,#0000 61px 120px),linear-gradient(45deg,#ffffff17 25%,#0000 25% 50%,#ffffff17 50% 75%,#0000 75%);background-size:30px 30px,30px 30px,120px 120px,120px 120px,44px 44px;position:absolute;inset:0}.event-pattern:after{content:"";background:linear-gradient(90deg,#082a52eb 0%,#082a5266 48%,#082a52db 100%),radial-gradient(circle at 70% 28%,#ffd68238,#0000 20rem);position:absolute;inset:0}.golden-glow{filter:blur(8px);z-index:-1;background:radial-gradient(circle,#ffc75c52,#0000 62%);width:42vmax;height:42vmax;position:absolute;top:-10vmax;right:-14vmax}.event-hero-content{max-width:860px}.event-logo-small{object-fit:cover;border-radius:8px;width:74px;height:74px;margin-bottom:2rem;display:block}.event-kicker{color:#f4ca72;letter-spacing:0;text-transform:uppercase;margin-bottom:1rem;font-size:.82rem;font-weight:950}.event-hero h1{color:#fff;max-width:900px;margin-bottom:1.35rem;font-size:6.4rem;line-height:.92}.event-lede{color:#fffaf1db;max-width:680px;font-size:1.35rem;line-height:1.55}.event-info-row{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.event-info-row span{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;background:#fffaf11f;border:1px solid #fffaf142;border-radius:999px;align-items:center;gap:.5rem;min-height:44px;padding:.65rem .9rem;font-weight:850;display:inline-flex}.scroll-invite{color:#fff;text-transform:uppercase;flex-direction:column;justify-self:center;align-items:center;gap:.2rem;font-size:.9rem;font-weight:900;animation:1.8s ease-in-out infinite floatCue;display:inline-flex;position:absolute;bottom:2rem}@keyframes floatCue{0%,to{transform:translateY(0)}50%{transform:translateY(10px)}}.rsvp-section{color:var(--ink);background:radial-gradient(circle at 18% 12%,#ffca633d,#0000 24rem),linear-gradient(#fff6e5 0%,#edf4ee 100%);grid-template-columns:minmax(0,.85fr) minmax(320px,.75fr);gap:clamp(1.5rem,4vw,3rem);min-height:100vh;padding:clamp(3rem,7vw,6rem) 6vw;display:grid}.rsvp-intro{align-self:center;max-width:680px}.rsvp-intro h2{color:var(--navy);margin-bottom:1.2rem;font-size:4.8rem;line-height:.95}.rsvp-intro p{color:#40505e;font-size:1.2rem;line-height:1.6}.party-form{align-self:center}.party-note{color:var(--green);grid-column:1/-1;justify-self:center;align-items:center;gap:.5rem;font-weight:900;display:inline-flex}.site-header{background:var(--cream);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:72px;padding:0 6vw;display:flex}.brand{font-size:1rem;font-weight:900}.event-layout{grid-template-columns:minmax(0,1.05fr) minmax(320px,.75fr);gap:clamp(2rem,5vw,5rem);min-height:100vh;padding:clamp(3rem,7vw,6rem) 6vw;display:grid}.event-copy{align-self:center;max-width:760px}.event-logo{object-fit:cover;border-radius:8px;width:100%;max-width:260px;height:auto;margin-bottom:2rem;display:block}.event-copy h1{color:var(--navy);margin-bottom:1.35rem;font-size:5.8rem;line-height:.92}.lead{color:var(--muted);max-width:680px;font-size:1.25rem;line-height:1.55}.back-link{color:var(--muted);align-items:center;gap:.5rem;margin-bottom:2rem;font-weight:850;display:inline-flex}.event-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:2.5rem;display:grid}.event-details div{border-top:1px solid var(--line);padding-top:1.2rem}.panel-label{color:var(--blue);text-transform:uppercase;align-items:center;gap:.4rem;margin-bottom:.35rem;font-size:.78rem;font-weight:900;display:inline-flex}.event-details strong{font-size:1.12rem;line-height:1.35;display:block}.rsvp-form{background:var(--paper);border:1px solid var(--line);border-radius:8px;align-self:center;gap:1rem;padding:clamp(1rem,3vw,1.5rem);display:grid;box-shadow:0 24px 80px #2327221a}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}label{color:var(--ink);gap:.45rem;font-size:.9rem;font-weight:850;display:grid}input,select,textarea{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;width:100%;min-height:44px;padding:.75rem}input:focus,select:focus,textarea:focus{border-color:var(--blue);outline:3px solid #174f8a29}textarea{resize:vertical}.privacy-note{color:var(--muted);margin-bottom:0;font-size:.86rem;line-height:1.45}.button{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:.55rem;min-height:46px;padding:.75rem 1rem;font-weight:850;display:inline-flex}.button.primary{background:var(--blue);color:#fff}.button.primary:hover{background:var(--navy)}.submit-button{width:100%}.submit-button:disabled{cursor:wait;opacity:.72}.form-message{border-radius:8px;align-items:center;gap:.5rem;margin-bottom:0;padding:.8rem;font-weight:850;display:flex}.form-message.success{color:var(--green);background:#0f6b5f1f}.form-message.error{color:var(--danger);background:#9f2a2a1a}@media (max-width:1080px){.hero h1{font-size:4.9rem}.section-title h2,.project-intro h2{font-size:3.8rem}.event-copy h1{font-size:4.8rem}.event-hero h1{font-size:5rem}.rsvp-intro h2{font-size:3.8rem}.hero{grid-template-columns:minmax(0,.55fr) minmax(0,1fr)}.hero-card{grid-column:1/-1}.logo-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.project-section{grid-template-columns:1fr}.project-intro{position:static}}@media (max-width:820px){.hero h1{overflow-wrap:anywhere;font-size:3.55rem;line-height:.9}.hero-lede,.lead{font-size:1.08rem}.section-title h2,.project-intro h2{font-size:3rem}.item-heading h3,.project-row h3{font-size:1.65rem}.education-card h3,.other-card h3{font-size:1.55rem}.event-copy h1{font-size:3.6rem}.event-hero h1{font-size:3.9rem}.event-lede,.rsvp-intro p{font-size:1.08rem}.rsvp-intro h2{font-size:3rem}.topbar,.site-header{flex-direction:column;align-items:flex-start;gap:.9rem;padding-top:1rem;padding-bottom:1rem}nav{flex-wrap:wrap;row-gap:.55rem}.hero,.event-layout,.rsvp-section,.section-title,.timeline-item{grid-template-columns:1fr}.timeline-date{align-items:center;display:flex}.timeline-date img{max-width:150px}.hero{min-height:auto}.pattern-panel{min-height:260px}.education-grid,.other-grid,.event-details,.form-grid{grid-template-columns:1fr}.item-heading{display:grid}.project-row.featured{margin-left:0;padding-left:0}}@media (max-width:620px){.topbar{position:static}.hero h1{font-size:2.55rem}.hero,.section-block,.blue-band,.project-section{padding-left:1rem;padding-right:1rem}.hero>*{width:100%;min-width:0;max-width:300px;margin-left:auto;margin-right:auto}.hero-card,.pattern-panel{width:100%}.hero-lede{max-width:100%;font-size:1rem}.section-title h2,.project-intro h2{font-size:2.45rem}.card-number{font-size:3.2rem}.event-copy h1{font-size:2.35rem}.event-hero{padding:1.25rem}.event-hero-content{width:100%;max-width:320px}.event-hero h1{font-size:2.42rem;line-height:.98}.event-logo-small{width:58px;height:58px}.event-info-row span{width:100%;min-width:0}.rsvp-section{padding-left:1rem;padding-right:1rem}.rsvp-intro,.party-form{width:100%;max-width:320px;margin-left:auto;margin-right:auto}.rsvp-intro h2{font-size:2.35rem}.logo-strip{grid-template-columns:1fr}.logo-tile img{height:58px}.logo-tile{border-right:0;border-bottom:1px solid var(--line);min-height:112px}.project-row{grid-template-columns:minmax(0,1fr) 36px;min-height:auto;padding:1.5rem 0}.project-index{grid-column:1/-1}.footer{justify-content:flex-start}.footer div{flex-basis:100%}.event-layout{padding-left:1rem;padding-right:1rem}.event-copy,.rsvp-form{width:100%;max-width:320px;margin-left:auto;margin-right:auto}.event-logo{max-width:230px}}
