:root{color:#edf4ff;font-synthesis:none;text-rendering:geometricprecision;background:#0d1020;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,input,a{font:inherit}a{color:inherit;text-decoration:none}.page-shell{--ink:#edf4ff;--paper:#151a2c;--cream:#0d1020;--blue:#4fb3ff;--mauve:#c77dff;--green:#4fd1b7;--gold:#f6c85f;--panel:#12182bd6;--panel-solid:#171d31;--line:#edf4ff2e;--muted:#edf4ffb8;isolation:isolate;background:linear-gradient(90deg, #4fb3ff1f 1px, transparent 1px), linear-gradient(#c77dff1a 1px, transparent 1px), radial-gradient(circle at 18% 12%, #c77dff33, transparent 28rem), radial-gradient(circle at 88% 24%, #4fd1b729, transparent 26rem), var(--cream);background-size:26px 26px,26px 26px,auto,auto,auto;min-height:100vh;padding-bottom:72px;transition:background .42s,color .42s;position:relative}.page-shell:before{content:"";pointer-events:none;mix-blend-mode:screen;z-index:0;background:repeating-linear-gradient(0deg,#0000 0 5px,#edf4ff09 5px 6px),linear-gradient(90deg,#ffffff0a,#0000 28% 72%,#ffffff09);position:fixed;inset:0}.page-shell:after{content:"";z-index:0;pointer-events:none;mix-blend-mode:screen;opacity:.24;background:linear-gradient(115deg,#0000 0 38%,#4fd1b71f 44%,#c77dff1a 49%,#0000 57%) 0 0/140% 100%,linear-gradient(90deg,#0000 0 25px,#4fb3ff1f 26px,#0000 27px) 0 0/52px 52px,linear-gradient(#0000 0 25px,#c77dff1a 26px,#0000 27px) 0 0/52px 52px;animation:9s linear infinite grid-shimmer;position:fixed;inset:0}.topbar,.hero,.marquee,.content-grid{z-index:1;position:relative}.topbar{z-index:6;border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#111627db;justify-content:space-between;align-items:center;gap:14px;width:min(1180px,100% - 28px);min-height:68px;margin:14px auto 0;padding:10px;display:flex;position:sticky;top:14px;box-shadow:7px 7px #4fb3ff24,0 18px 50px #00000047}.brand,.topbar-actions,.card-title,.section-heading h2,.hero-actions{align-items:center;display:flex}.brand{letter-spacing:0;min-width:max-content;font-size:clamp(1.25rem,2vw,1.55rem);font-weight:850}.topbar-actions{gap:12px}.p-selectbutton{border:1px solid var(--line);background:#ffffff0d}.p-togglebutton,.p-button,.p-card,.p-inputtext,.p-chip,.p-selectbutton .p-togglebutton{border-radius:6px}.p-button{box-shadow:4px 4px #4fb3ff33}.hero{grid-template-columns:minmax(310px,410px) minmax(0,1fr);align-items:center;gap:28px;width:min(1180px,100% - 28px);min-height:calc(100vh - 96px);margin:0 auto;padding:62px 0 44px;display:grid}.profile-card,.intro-panel,.section-panel,.sidebar .p-card{border:1px solid var(--line);background:var(--panel);transition:background .46s,border-color .46s,border-radius .46s,box-shadow .46s,clip-path .46s,filter .46s;box-shadow:9px 9px #4fb3ff1f,0 22px 70px #00000047}.p-card{color:var(--ink);background:var(--panel-solid)}.p-card-subtitle{color:var(--muted)}.profile-card{overflow:hidden;transform:rotate(-1deg)}.profile-header{background:linear-gradient(90deg,#e24a5cb8,#ec8e3dad,#efd25b9e,#55ae70a8,#4a8ecdad,#8759aab3);border-bottom:1px solid #ffffff2e;min-height:42px;box-shadow:inset 0 -18px 32px #0d10202e}.photo-slot{color:#edf4ffad;border-bottom:1px solid var(--line);background-color:#080c189e;background-image:linear-gradient(45deg,#4fb3ff1f 25%,#0000 25% 75%,#4fb3ff1f 75%),linear-gradient(45deg,#c77dff1a 25%,#0000 25% 75%,#c77dff1a 75%),none;background-position:0 0,12px 12px;background-repeat:repeat,repeat,repeat;background-size:auto,24px 24px,24px 24px,auto;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;align-content:center;place-items:center;gap:12px;min-height:360px;display:grid}.photo-slot span{background:#0d1020bd;border:1px dashed #edf4ff57;padding:7px 10px;font-family:Courier New,monospace}.profile-copy{padding:22px}.status,.eyebrow,.project-year,.command-row,.details-list dt{font-family:Courier New,monospace}.status{color:var(--paper);background:var(--green);margin:0 0 12px;padding:5px 8px;display:inline-flex}h1,h2,h3,p{letter-spacing:0}h1{margin:0;font-size:clamp(3.1rem,8vw,6.4rem);line-height:.9}.profile-copy p:last-child,.intro-panel p,.project-row p,.bio-panel p{color:var(--muted);line-height:1.58}.intro-panel{align-content:center;min-height:520px;padding:clamp(28px,6vw,70px);display:grid;position:sticky;top:108px}.eyebrow{color:var(--mauve);text-transform:uppercase;align-items:center;gap:8px;margin:0 0 16px;display:inline-flex}.intro-panel h2{max-width:780px;margin:0;font-size:clamp(2.5rem,7vw,6rem);line-height:.92}.intro-panel p{max-width:680px;margin:24px 0 0;font-size:1.13rem}.photo-slot img{object-fit:cover;width:100%;height:100%}.photo-slot picture,.modeling-slot picture,.lightbox-panel picture{width:100%;height:100%;display:block}.lightbox-panel picture{min-height:0}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:30px}.marquee{color:#0d1020;background:linear-gradient(90deg,#e24a5cb8,#ec8e3dad,#efd25b9e,#55ae70a8,#4a8ecdad,#8759aab3);border-block:1px solid #2d2a322e;overflow:hidden}.marquee div{gap:34px;width:max-content;padding:11px 0;font-family:Courier New,monospace;animation:46s linear infinite marquee;display:flex}.marquee span{min-width:max-content}.content-grid{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:22px;width:min(1180px,100% - 28px);margin:34px auto 0;display:grid}.sidebar{gap:16px;display:grid;position:sticky;top:104px}.sidebar .p-card{color:var(--ink)!important}.sidebar .p-card-title{color:var(--ink)}.card-title,.section-heading h2{gap:8px}.details-list{gap:12px;margin:0;display:grid}.details-list div{border-bottom:1px solid #edf4ff1f;grid-template-columns:82px 1fr;gap:12px;padding-bottom:12px;display:grid}.details-list dt{color:var(--mauve)}.details-list dd{color:var(--muted);margin:0}.terminal-card p{min-height:62px;color:var(--green);margin:8px 0 14px;line-height:1.45}.terminal-card small{color:var(--muted);line-height:1.4;display:block}.command-row{grid-template-columns:18px 1fr;align-items:center;gap:8px;display:grid}.command-row .p-inputtext{width:100%}.mini-desktop-card .p-card-content{padding-top:4px}.mini-desktop{background:linear-gradient(135deg,#4fb3ff1f,#0000 42%,#c77dff1a),repeating-linear-gradient(0deg,#ffffff09 0 1px,#0000 1px 4px),#080c189e;border:1px solid #edf4ff24;min-height:132px;padding:12px;transition:min-height .24s,background .24s,box-shadow .24s;box-shadow:inset 0 0 0 1px #ffffff0a,inset 0 -34px 70px #0003}.mini-desktop.expanded{min-height:300px;box-shadow:inset 0 0 0 1px #ffffff0a,inset 0 -34px 70px #0003,5px 5px #4fb3ff1a}.desktop-icons{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.desktop-icons button{min-width:0;min-height:86px;color:var(--ink);cursor:pointer;font:inherit;background:#ffffff09;border:1px solid #0000;align-content:center;place-items:center;gap:7px;padding:8px 4px;transition:background .16s,border-color .16s,transform .16s;display:grid}.desktop-icons button:hover,.desktop-icons button.active{background:#4fd1b71c;border-color:#4fd1b757;transform:translateY(-2px)}.desktop-icons button[data-app=contact]{grid-column:1/-1}.desktop-icons svg{color:var(--green);filter:drop-shadow(2px 2px #0000003d)}.desktop-icons span{color:#edf4ffdb;text-align:center;overflow-wrap:anywhere;width:100%;font-family:Courier New,monospace;font-size:.72rem;line-height:1.1}.desktop-window{background:linear-gradient(135deg,#ffffff14,#0000),#0b0f1deb;border:1px solid #edf4ff38;margin-top:12px;animation:.22s both desktop-window-in;overflow:hidden;box-shadow:5px 5px #4fb3ff24}.desktop-window header{color:#0d1020;background:linear-gradient(90deg, var(--green), #f6c85fdb);justify-content:space-between;align-items:center;gap:8px;min-height:30px;padding:5px 7px 5px 10px;font-family:Courier New,monospace;font-size:.78rem;font-weight:800;display:flex}.desktop-window header button{aspect-ratio:1;color:#0d1020;cursor:pointer;background:#ffffff7a;border:1px solid #0d102070;place-items:center;width:22px;padding:0;display:grid}.desktop-window>div{max-height:360px;padding:12px;overflow-y:auto}.desktop-window>div::-webkit-scrollbar{width:9px}.desktop-window>div::-webkit-scrollbar-track{background:#080c18b8}.desktop-window>div::-webkit-scrollbar-thumb{background:var(--green);border:2px solid #080c18b8}.desktop-window p{color:var(--muted);margin:0 0 10px;font-size:.9rem;line-height:1.45}.desktop-window a{color:var(--green);overflow-wrap:anywhere;font-family:Courier New,monospace;font-size:.86rem}.desktop-tags{flex-wrap:wrap;gap:6px;display:flex}.desktop-tags span{color:var(--paper);background:#4fb3ff29;border:1px solid #4fb3ff3d;padding:4px 6px;font-family:Courier New,monospace;font-size:.72rem}.hobby-list{gap:8px;display:grid}.hobby-list article{background:#ffffff0a;border:1px solid #edf4ff1f;gap:7px;padding:9px;display:grid}.hobby-list h3{color:var(--ink);margin:0 0 3px;font-size:.95rem;line-height:1}.hobby-list p{margin:0;font-size:.78rem}.hobby-links{flex-wrap:wrap;gap:6px;display:flex}.hobby-links a,.hobby-links span{background:#4fd1b714;border:1px solid #4fd1b73d;padding:4px 6px;font-family:Courier New,monospace;font-size:.7rem}.hobby-links span{color:#edf4ff85;border-style:dashed}.reading-panel{gap:10px;display:grid}.book-shelf{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.hobby-list .book-card{cursor:pointer;background:linear-gradient(135deg,#b9975b1a,#0000 58%),#080c1875;border:1px solid #edf4ff1f;min-width:0;padding:0;transition:border-color .16s,box-shadow .16s,transform .16s;display:block;overflow:hidden}.hobby-list .book-card:hover,.hobby-list .book-card.active{border-color:#b9975b6b;transform:translateY(-2px);box-shadow:0 0 0 1px #b9975b38}.book-card img{aspect-ratio:2/3;object-fit:cover;background:#ffffff0f;width:100%;display:block;box-shadow:0 10px 22px #00000047}.book-detail{background:linear-gradient(135deg,#b9975b1f,#0000 58%),#03050c6b;border:1px solid #b9975b33;gap:7px;padding:9px;display:grid}.book-detail span{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;font-family:Courier New,monospace;font-size:.62rem;display:inline-block}.book-detail h4{color:var(--ink);margin:0;font-size:.9rem;line-height:1.1}.book-detail p{color:var(--muted);margin:0;font-size:.74rem;line-height:1.35}.drawing-picker{gap:9px;display:grid}.drawing-icons{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.drawing-icons button{min-width:0;min-height:78px;color:var(--ink);cursor:pointer;font:inherit;background:#ffffff0b;border:1px solid #edf4ff24;align-content:center;place-items:center;gap:6px;padding:7px 4px;display:grid}.drawing-icons button.active,.drawing-icons button:hover{background:#4fd1b71a;border-color:#4fd1b775}.drawing-icons svg{color:var(--green)}.drawing-icons picture{aspect-ratio:1;width:30px;display:block}.drawing-icons img{object-fit:cover;border:1px solid #edf4ff2e;width:100%;height:100%}.drawing-icons span{color:#edf4ffc2;text-align:center;overflow-wrap:anywhere;width:100%;font-family:Courier New,monospace;font-size:.64rem;line-height:1.05}.drawing-preview{width:100%;color:inherit;cursor:pointer;text-align:left;background:#080c186b;border:1px solid #4fd1b73d;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:10px;margin:0;padding:9px;transition:background .16s,border-color .16s,transform .16s;display:grid}.drawing-preview:hover{background:#4fd1b714;border-color:#4fd1b77a;transform:translateY(-2px)}.drawing-preview>picture,.drawing-preview>div{aspect-ratio:1;background:#ffffff0e;border:1px solid #edf4ff24;place-items:center;width:72px;display:grid}.drawing-preview>picture img{object-fit:cover;width:100%;height:100%}.drawing-preview svg{color:var(--green)}.drawing-preview figcaption{gap:4px;display:grid}.drawing-preview strong{color:var(--ink);font-size:.86rem}.drawing-preview span{color:var(--muted);font-size:.74rem;line-height:1.35}.drawing-lightbox{background:radial-gradient(circle at 22% 18%,#4fd1b738,#0000 28%),radial-gradient(circle at 82% 22%,#c77dff33,#0000 30%),#050710d6}.drawing-backdrop{filter:blur(24px)saturate(1.25);background-color:#080c18d6;background-image:linear-gradient(90deg,#4fd1b714 1px,#0000 1px),linear-gradient(#c77dff14 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:34px 34px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}.drawing-lightbox-panel{max-height:min(82vh,820px)}.drawing-lightbox-panel picture{width:100%;height:100%;display:block}.drawing-lightbox-panel picture img{object-fit:contain;background:#03050c8f;width:100%;height:100%}.drawing-placeholder-large{min-height:min(62vh,560px);color:var(--green);background:linear-gradient(135deg,#4fd1b71f,#0000 48%),#03050c8f;place-items:center;display:grid}.spotify-widget{grid-template-columns:118px minmax(0,1fr);align-items:center;gap:12px;display:grid}.music-visual{min-height:122px;position:relative}.album-cover{aspect-ratio:1;background:linear-gradient(135deg,#4fd1b738,#0000 54%),linear-gradient(135deg,#f6c85f2e,#c77dff29),#080c18d6;border:1px solid #edf4ff33;place-items:center;width:78px;display:grid;overflow:hidden;box-shadow:4px 4px #0000003d}.album-cover img{object-fit:cover;width:100%;height:100%}.album-cover span{color:#0d1020;background:var(--green);text-transform:uppercase;padding:3px 5px;font-family:Courier New,monospace;font-size:.68rem;font-weight:800}.record-player{aspect-ratio:1;background:linear-gradient(135deg,#4fb3ff1f,#0000),#ffffff0d;border:1px solid #edf4ff2e;width:86px;margin:-42px 0 0 31px;position:relative;box-shadow:4px 4px #0000003d,inset 0 0 0 7px #080c1861}.record{aspect-ratio:1;background:radial-gradient(circle,#f6c85f 0 8px,#0000 9px),repeating-radial-gradient(circle,#ffffff24 0 1px,#0000 1px 5px),radial-gradient(circle,#12182b,#03050c 70%);border:1px solid #edf4ff29;border-radius:50%;width:60px;animation:4s linear infinite paused record-spin;position:absolute;top:9px;left:9px}.record img,.record span{border-radius:50%;position:absolute;inset:22px}.record img{object-fit:cover;width:calc(100% - 44px);height:calc(100% - 44px)}.record span{background:linear-gradient(135deg, var(--green), var(--mauve));border:2px solid #0d1020bd}.tonearm{transform-origin:top;background:#edf4ffc7;width:4px;height:49px;position:absolute;top:16px;right:13px;transform:rotate(25deg);box-shadow:2px 2px #00000047}.tonearm:before{content:"";aspect-ratio:1;background:var(--green);border-radius:50%;width:14px;position:absolute;top:-7px;left:-5px}.tonearm:after{content:"";background:#f6c85f;width:10px;height:8px;position:absolute;bottom:-5px;left:-3px}.record-player.playing .record{animation-play-state:running}.spotify-widget small{color:var(--green);text-transform:uppercase;margin-bottom:5px;font-family:Courier New,monospace;font-size:.72rem;display:inline-flex}.spotify-widget h3{color:var(--ink);margin:0 0 4px;font-size:1rem;line-height:1.05}.spotify-widget p{margin-bottom:4px}.spotify-widget span{color:#edf4ff8a;margin-bottom:8px;font-family:Courier New,monospace;font-size:.76rem;display:block}.spotify-widget a{color:var(--green);font-family:Courier New,monospace;font-size:.78rem;display:inline-flex}.contact-card-window p{margin-bottom:12px}.contact-card-links{gap:8px;display:grid}.contact-card-links a{color:var(--ink);background:#4fd1b712;border:1px solid #4fd1b74d;align-items:center;gap:8px;padding:8px;font-family:Courier New,monospace;font-size:.78rem;transition:background .16s,transform .16s,border-color .16s;display:flex}.contact-card-links a:hover{background:#4fd1b724;border-color:#4fd1b785;transform:translate(3px)}.contact-card-links svg{color:var(--green);flex:none}.contact-card-links span{overflow-wrap:anywhere;min-width:0}.main-column{gap:24px;display:grid}.section-panel{padding:clamp(18px,4vw,34px);scroll-margin-top:112px}.section-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.section-heading h2{margin:0;font-size:clamp(1.4rem,4vw,2.25rem);font-weight:850;line-height:1}.project-list{gap:12px;display:grid}.project-row{border:1px solid var(--line);background:#ffffff0e;grid-template-columns:minmax(0,1fr) 250px;gap:22px;padding:18px;transition:transform .18s,background .18s,border-color .46s,border-radius .46s,box-shadow .18s,clip-path .46s,filter .46s;display:grid}.project-row:hover{background:#4fb3ff1a;transform:translateY(-4px);box-shadow:5px 5px #c77dff33}.project-year{color:var(--mauve)}.project-row h3{margin:6px 0 8px;font-size:clamp(1.45rem,3vw,2.3rem);line-height:1}.project-row h3 a{color:inherit}.project-row h3 a:hover{color:var(--green)}.repo-name{color:var(--green);background:#4fd1b714;border:1px solid #4fd1b74d;margin:0 0 10px;padding:4px 7px;font-family:Courier New,monospace;display:inline-flex}.project-row p{margin:0}.project-meta{align-content:space-between;gap:16px;display:grid}.project-meta div{flex-wrap:wrap;gap:7px;display:flex}.education-panel{background:linear-gradient(135deg,#00356b52,#0000 46%),linear-gradient(90deg,#f6c85f14,#0000 58%),#12182bdb;position:relative;overflow:hidden}.education-panel:before{content:"";pointer-events:none;opacity:.36;background-color:#0000;background-image:linear-gradient(90deg,#f6c85f1a 1px,#0000 1px),linear-gradient(#4fb3ff14 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:32px 32px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0;-webkit-mask-image:linear-gradient(135deg,#000,#0000 72%);mask-image:linear-gradient(135deg,#000,#0000 72%)}.education-panel>*{position:relative}.yale-banner{background:linear-gradient(90deg,#f6c85f24,#0000 42%),#ffffff0b;border:1px solid #edf4ff2e;margin:0 0 18px;padding:14px 16px;box-shadow:5px 5px #4fb3ff1f}.yale-banner p{color:#f6c85f;margin:0 0 5px;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.35rem,2.4vw,2rem);font-weight:800;line-height:1}.yale-banner h3{max-width:680px;color:var(--muted);text-transform:uppercase;margin:0;font-family:Courier New,monospace;font-size:.82rem;font-weight:700;line-height:1}.modeling-panel{background:linear-gradient(135deg,#4fb3ff1f,#0000 42%),#12182bdb}.modeling-intro{max-width:760px;color:var(--muted);margin:-4px 0 20px;line-height:1.55}.modeling-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.modeling-card{border:1px solid var(--line);background:linear-gradient(135deg, color-mix(in srgb, var(--c1) 18%, transparent), transparent 45%), #ffffff0e;min-width:0;box-shadow:5px 5px 0 color-mix(in srgb, var(--c2) 28%, transparent);transition:background .46s,border-color .46s,border-radius .46s,box-shadow .46s,clip-path .46s,filter .46s;overflow:hidden}.modeling-card.featured{grid-column:1/-1}.modeling-slot{cursor:pointer;border:0;border-bottom:1px solid var(--line);background:#080c18b3;width:100%;height:210px;padding:0;display:block;overflow:hidden}.modeling-card.featured .modeling-slot{height:clamp(280px,42vw,470px)}.modeling-slot img{object-fit:cover;width:100%;height:100%;transition:transform .22s,filter .22s;display:block}.modeling-card:hover .modeling-slot img{filter:saturate(1.08)contrast(1.03);transform:scale(1.025)}.modeling-card h3{margin:16px 16px 8px;font-size:clamp(1.2rem,2vw,1.55rem)}.palette{gap:7px;margin:0 16px 12px;display:flex}.palette span{border:1px solid #ffffff47;width:28px;height:9px;box-shadow:2px 2px #00000038}.modeling-card p{color:var(--muted);margin:0 16px 18px;line-height:1.5}.view-count{color:var(--paper);background:color-mix(in srgb, var(--c2) 48%, #0a0d19e6);margin:0 16px 18px;padding:4px 7px;font-family:Courier New,monospace;display:inline-flex}.model-lightbox{z-index:20;background:radial-gradient(circle at 20% 15%, color-mix(in srgb, var(--c1) 52%, transparent), transparent 32%), radial-gradient(circle at 82% 22%, color-mix(in srgb, var(--c2) 46%, transparent), transparent 30%), radial-gradient(circle at 50% 92%, color-mix(in srgb, var(--c3) 52%, transparent), transparent 34%), #050710d1;place-items:center;padding:clamp(16px,4vw,42px);animation:.18s both lightbox-in;display:grid;position:fixed;inset:0}.lightbox-backdrop{z-index:0;background-image:var(--image);filter:blur(42px)saturate(1.35)brightness(.52);opacity:.7;background-position:50%;background-size:cover;position:absolute;inset:-34px;transform:scale(1.08)}.lightbox-panel{z-index:1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(135deg,#ffffff1a,#0000),#0b0f1dd1;border:1px solid #ffffff42;grid-template-rows:minmax(0,1fr) auto;width:min(1160px,100%);max-height:min(88vh,920px);margin:0;display:grid;position:relative;overflow:hidden;box-shadow:12px 12px #0000004d,0 34px 120px #0000008c}.lightbox-panel img{object-fit:contain;background:#03050c6b;width:100%;height:100%;min-height:0;display:block}.lightbox-panel figcaption{border-top:1px solid #fff3;justify-content:space-between;align-items:end;gap:16px;padding:18px;display:flex}.lightbox-panel figcaption p{color:var(--green);text-transform:uppercase;margin:0 0 5px;font-family:Courier New,monospace}.lightbox-panel figcaption h2{margin:0 0 6px;font-size:clamp(1.8rem,4vw,3.2rem);line-height:.95}.lightbox-panel figcaption span{color:var(--muted)}.lightbox-panel .palette{min-width:max-content;margin:0}.view-switcher{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.view-switcher button{min-height:34px;color:var(--ink);cursor:pointer;background:#ffffff14;border:1px solid #ffffff38;padding:0 10px;font-family:Courier New,monospace}.view-switcher button.active,.view-switcher button:hover{color:#0d1020;background:var(--green)}.lightbox-close{z-index:2;aspect-ratio:1;color:#0d1020;background:var(--green);cursor:pointer;border:1px solid #ffffff47;width:38px;font-family:Courier New,monospace;font-weight:800;position:absolute;top:12px;right:12px;box-shadow:4px 4px #0000003d}.yale-banner small{color:#f6f0dcb8;margin-top:10px;font-family:Courier New,monospace;display:block}.degree-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.degree-card{background:linear-gradient(135deg,#00356b38,#0000 54%),#ffffff0e;min-height:170px;padding:18px;box-shadow:5px 5px #f6c85f1f;color:var(--ink)!important;border:1px solid var(--line)!important}.degree-card h2,.degree-card h3{color:#f8fbff;margin:10px 0 12px;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.35rem,2.6vw,2rem);line-height:1}.degree-card span{color:#0d1020;background:#f6c85f;border:1px solid #f6f0dc2e;padding:5px 8px;font-family:Courier New,monospace;font-weight:800;display:inline-flex}.degree-card p{margin:0;line-height:1.55;color:var(--muted)!important}.bio-panel p{max-width:760px;margin:0 0 18px;font-size:clamp(1.3rem,3vw,2.2rem);line-height:1.18}.bio-actions{flex-wrap:wrap;gap:8px;display:flex}[data-reveal]{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(26px)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}.profile-card[data-reveal]{transform:translateY(26px)rotate(-1deg)}.profile-card[data-reveal].is-visible{transform:translateY(0)rotate(-1deg)}@keyframes marquee{0%{transform:translate(100vw)}to{transform:translate(-100%)}}@keyframes grid-shimmer{0%{background-position:-160% 0,0 0,0 0}to{background-position:160% 0,52px 52px,-52px 52px}}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}@keyframes record-spin{to{transform:rotate(360deg)}}@keyframes desktop-window-in{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important}}@media (width<=960px){.topbar,.topbar-actions{flex-direction:column;align-items:stretch}.hero,.content-grid{grid-template-columns:1fr}.intro-panel,.sidebar{position:static}.project-row,.modeling-grid,.degree-grid{grid-template-columns:1fr}.lightbox-panel figcaption{flex-direction:column;align-items:flex-start}}@media (width<=620px){.topbar,.hero,.content-grid{width:min(100% - 18px,1180px)}h1{font-size:clamp(2.8rem,16vw,4.6rem)}.intro-panel h2{font-size:clamp(2.2rem,13vw,4rem)}.p-selectbutton{grid-template-columns:1fr;display:grid}.details-list div{grid-template-columns:1fr;gap:2px}.section-heading{flex-direction:column;align-items:flex-start}}
