:root{--bg:#080f1d;--bg-soft:#0d1729;--text:#f1f5f9;--muted:#94a3b8;--muted-2:#64748b;--line:#94a3b824;--line-strong:#94a3b840;--accent:#7dd3fc;--accent-soft:#38bdf81a;--accent-dim:#38bdf83d;--warm:#bae6fd;--surface:#0d1729db;--surface-strong:#111e34f5;--surface-line:#94a3b833;--focus-ring:#7dd3fc8c;--ease-premium:cubic-bezier(.19, 1, .22, 1);--ease-ui:cubic-bezier(.22, 1, .36, 1);--duration-fast:.18s;--duration-medium:.26s;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--font-2xs:.6875rem;--font-xs:.825rem;--font-sm:.9625rem;--font-m:1.1rem;--font-md:var(--font-m);--font-lg:1.2375rem;--font-xl:1.375rem;--font-2xl:1.7875rem;--font-3xl:2.0625rem;--font-4xl:2.3375rem;--font-display-sm:2.8875rem;--font-display-md:3.3rem;--font-display-lg:3.575rem;--font-section-title:clamp(3.3rem, 3.74vw, 4.015rem);--font-hero:4.25rem;--font-hero-ko:4.45rem;--type-2xs:var(--font-2xs);--type-xs:var(--font-xs);--type-sm:var(--font-sm);--type-base:var(--font-m);--type-lg:var(--font-lg);--type-xl:var(--font-xl);--type-2xl:var(--font-2xl);--type-3xl:var(--font-3xl);--type-4xl:var(--font-4xl);--type-display-sm:var(--font-display-sm);--type-display-md:var(--font-display-md);--type-display-lg:var(--font-display-lg);--type-section-title:var(--font-section-title);--type-hero:var(--font-hero);--type-hero-ko:var(--font-hero-ko);color:var(--text);background:var(--bg);font-family:Manrope,Apple SD Gothic Neo,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:100%}@font-face{font-family:Manrope;src:url(../../../fonts/manrope-latin.woff2)format("woff2");font-style:normal;font-weight:400 800;font-display:swap}@font-face{font-family:Instrument Serif;src:url(../../../fonts/instrument-serif-italic-latin.woff2)format("woff2");font-style:italic;font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(../../../fonts/ibm-plex-mono-latin.woff2)format("woff2");font-weight:400;font-display:swap}*{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:is(html:has(.portfolio-app),body:has(.portfolio-app)){overscroll-behavior:none;height:100%;overflow:hidden}body{background:var(--bg);min-width:320px;color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Manrope,Apple SD Gothic Neo,Malgun Gothic,sans-serif}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:disabled{opacity:.3;cursor:default}button,a,input{touch-action:manipulation;-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::selection{color:var(--bg);background:var(--accent)}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:500}em{color:var(--accent);font-style:normal;font-weight:600}svg{vertical-align:middle;flex-shrink:0}img{max-width:100%}.mono,.eyebrow{letter-spacing:.07em;font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:400;line-height:1.6}.eyebrow{letter-spacing:.1em}.skip-link{z-index:200;background:var(--accent);color:#0b1424;padding:14px;position:fixed;top:-60px;left:20px}.skip-link:focus{top:15px}.portfolio-app{width:100%;height:var(--app-height,100dvh);grid-template-columns:var(--sidebar) minmax(0, 1fr);font-size:13px;display:grid;overflow:hidden}.app-sidebar{border-right:1px solid var(--line);z-index:5;flex-direction:column;min-height:0;display:flex}.brand{text-align:left;align-items:center;display:flex}.brand-wordmark{letter-spacing:.08em;white-space:nowrap;font-weight:800}.brand-wordmark small{letter-spacing:.11em;font:9px IBM Plex Mono,monospace;display:block}.sidebar-rule{justify-content:space-between;align-items:center;padding:32px 9px 13px;display:flex}.sidebar-rule>span:last-child{font-size:11px}.app-sidebar nav{flex-direction:column;display:flex}.nav-item{text-align:left;border:1px solid #0000;align-items:center;gap:11px;transition:background .2s,color .2s;display:flex;position:relative}.nav-item:hover{color:var(--text)}.nav-item>small{margin-left:auto;font:9px IBM Plex Mono,monospace}.nav-item.active small{color:#b5becb}.nav-item>i{background:var(--accent);width:2px;height:15px;position:absolute;left:-18px;box-shadow:0 0 15px #38bdf850}.sidebar-bottom{margin-top:auto}.sidebar-note{gap:8px;padding:18px 8px;display:flex}.sidebar-note small{color:#8a98ac;margin-top:8px;font:9px IBM Plex Mono,monospace;display:block}.status-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block;box-shadow:0 0 9px #38bdf829}.sidebar-note .status-dot{margin-top:5px}.sidebar-socials{border-top:1px solid var(--line);color:#8c9aad;gap:22px;padding:17px 8px 0;display:flex}.sidebar-socials a:hover{color:var(--accent)}.app-body{min-width:0;min-height:0;display:grid}.app-topbar{padding:0 var(--gutter);border-bottom:1px solid var(--line);z-index:5;justify-content:space-between;align-items:center;display:flex}.breadcrumb{flex:1;align-items:center;min-width:0;font-size:10px;display:flex}.breadcrumb>i{font-style:normal;line-height:1}.breadcrumb>strong{font-weight:600;line-height:1.2}.topbar-right{flex:1;justify-content:flex-end;align-items:center;display:flex}.location{letter-spacing:.04em;align-items:center;gap:7px;font:9px IBM Plex Mono,monospace;display:flex}.topbar-divider{background:var(--line);width:1px;height:13px}.language-button{color:#8492a7;justify-content:center;align-items:center;gap:6px;padding:8px 0;font:9px/1 IBM Plex Mono,monospace;display:inline-flex}.language-button i{color:#4c5665;font-style:normal}.language-button .chosen{color:var(--text)}.topbar-contact{align-items:center;gap:10px;display:flex}.topbar-resume{color:#bae6fd;white-space:nowrap;background:#38bdf812;border:1px solid #7dd3fc45;border-radius:7px;align-items:center;gap:5px;padding:5px 9px;font-size:11px;font-weight:600;transition:border-color .2s,background .2s;display:inline-flex}.topbar-resume:hover{border-color:var(--accent);background:#38bdf824}.workspace{isolation:isolate;outline:none;min-height:0;position:relative;overflow:hidden}.workspace-grid{pointer-events:none;z-index:-1;background-image:linear-gradient(#63718416 1px,#0000 1px),linear-gradient(90deg,#63718416 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 0%,#0000 74%);mask-image:radial-gradient(#000 0%,#0000 74%)}.workspace:before{content:"";pointer-events:none;z-index:-1;position:absolute;inset:0}.workspace-coordinates{left:var(--gutter);right:var(--gutter);pointer-events:none;justify-content:space-between;font:9px IBM Plex Mono,monospace;display:flex;position:absolute}.page-panels{grid-template-columns:var(--rail) minmax(0, 1fr) var(--right);pointer-events:none;align-items:center;display:grid;position:absolute}.page-panel{pointer-events:auto;min-width:0;max-height:100%;position:relative}.panel-left{grid-column:1}.panel-right{grid-column:3}.page-panel>h1{margin-top:23px;margin-bottom:20px;font-weight:500}.page-panel>h1>em,.page-panel>h1>span{display:block}.page-panel>h1>em{letter-spacing:-.04em;font-size:1em;line-height:1.05}.panel-intro{color:#a4afbf;max-width:340px;font-size:12px;line-height:1.85}.primary-button{border:1px solid var(--accent);justify-content:space-between;align-items:center;gap:24px;font-weight:600;transition:background .2s,transform .2s;display:inline-flex}.overview-actions{align-items:center;gap:8px;display:flex}.overview-actions .primary-button{white-space:nowrap;gap:10px;padding-inline:14px}.secondary-cta{color:#bae6fd;white-space:nowrap;background:#38bdf810;border:1px solid #7dd3fc4d;align-items:center;gap:6px;padding:13px 12px;font-size:12px;font-weight:600;transition:border-color .2s,background .2s;display:inline-flex}.secondary-cta:hover{border-color:var(--accent);background:#38bdf822}.outline-button{width:100%}.text-link{align-items:center;gap:10px;display:inline-flex}.text-link:hover{color:var(--accent)}.icon-button{color:#a2adbd;place-items:center;width:32px;height:32px;display:grid}.icon-button:hover{color:var(--accent);background:#38bdf812}.icon-button.active{color:var(--accent)}.central-study{pointer-events:none;position:absolute}.central-study:before{content:"";background:linear-gradient(90deg,#0000,#8594a812,#0000);height:1px;position:absolute;top:50%;left:4%;right:4%}.signal-sculpture{pointer-events:auto;position:absolute}.signal-sculpture canvas{opacity:0;width:100%;height:100%;transition:opacity .38s ease-out;display:block}.signal-sculpture.ready canvas{opacity:1}.signal-sculpture:not(.ready) .constellation-nodes{opacity:0;pointer-events:none}.study-top{justify-content:space-between;align-items:center;gap:12px;display:flex;position:absolute}.study-top .eyebrow{color:#8190a6;font-size:9px}.study-live{color:#929fb1;white-space:nowrap;align-items:center;gap:6px;font:9px IBM Plex Mono,monospace;display:flex}.study-live i{background:#7dd3fc;border-radius:50%;width:3px;height:3px}.study-caption{justify-content:space-between;align-items:center;gap:8px;display:flex;position:absolute}.study-caption p{margin-top:5px}.motion-button{pointer-events:auto;border:1px solid #a1adbd2b;border-radius:50%;flex-shrink:0}.study-cross{color:#4e58676b;font:13px IBM Plex Mono,monospace;position:absolute}.cross-top{top:24%;left:8%}.cross-bottom{bottom:24%;right:10%}.intro-kicker{white-space:nowrap;align-items:center;display:flex}.overview-title{letter-spacing:-.068em!important;line-height:1.14!important}.overview-intro{color:#a6b1c0;max-width:330px;font-size:12px;line-height:1.95}.overview-intro a{color:#e2e8f0;border-bottom:1px solid #6e7d9185;padding-bottom:2px}.overview-disciplines{letter-spacing:.055em;grid-template-columns:1fr 1fr;margin-top:27px;font:9px IBM Plex Mono,monospace;display:grid}.overview-disciplines>span:before{content:"+";color:#a0abbb;margin-right:6px}.overview-foot{border-top:1px solid var(--line)}.overview-foot>.eyebrow{margin-bottom:13px;display:block}.overview-foot>button{text-align:left;align-items:center;gap:8px;width:100%;display:flex}.overview-foot>button>span{color:#94a1b3;margin-left:auto}.overview-foot>button>svg{color:#a3aebe}.overview-foot>button:hover{color:var(--accent)}.panel-card-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px;display:flex}.panel-card-heading>.eyebrow{font-size:9px}.panel-card-heading>.mono{color:#9ca8b9;font-size:9px}.now-card{border:1px solid #b6bfcb1e;border-radius:5px}.now-card h2{line-height:1.2}.now-card h2 em{font-size:1em}.now-card>p{color:#a0acbc;margin-top:17px}.penn-status{border-top:1px solid var(--line);align-items:center;display:flex}.penn-status>img{object-fit:contain}.penn-status>span{letter-spacing:.025em;font:9px IBM Plex Mono,monospace}.penn-status strong{margin-top:4px;font:9px Manrope,sans-serif;display:block}.penn-status>svg{margin-left:auto}.release-feature{text-align:left;background:#18273b;width:100%;margin-top:16px;display:block;position:relative;overflow:hidden}.release-feature>img{object-fit:cover;width:100%;height:100%}.release-feature:after{content:"";pointer-events:none;background:linear-gradient(#0007,#0000 35%,#000b);position:absolute;inset:0}.release-feature-top{z-index:1;color:#f1f5f9;letter-spacing:.045em;justify-content:space-between;font:9px IBM Plex Mono,monospace;display:flex;position:absolute;top:17px;left:17px;right:17px}.release-feature-bottom{z-index:1;color:#f8fafc;justify-content:space-between;align-items:center;gap:10px;display:flex;position:absolute;bottom:17px;left:17px;right:17px}.release-feature-bottom small{letter-spacing:.07em;font:9px IBM Plex Mono,monospace}.release-feature-bottom strong{letter-spacing:-.025em;margin-top:6px;font-weight:500;display:block}.release-play{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#132031;border-radius:50%;flex-shrink:0;place-items:center;width:33px;height:33px;display:grid}.right-foot-link{align-items:center;gap:7px;width:100%;padding-top:20px;display:flex}.right-foot-link>span{color:#929fb2;letter-spacing:.04em;margin-left:auto;font:9px IBM Plex Mono,monospace}.right-foot-link svg{color:#a3aebd}.selection-list{flex-direction:column;margin-top:25px}.selection-list>button{text-align:left;border-bottom:1px solid var(--line);align-items:center;display:flex}.selection-number{flex-shrink:0;width:20px;font:9px IBM Plex Mono,monospace}.selection-list>button>span:nth-child(2){flex:1;min-width:0}.selection-list strong{line-height:1.4;display:block}.selection-list small{margin-top:5px;display:block}.selection-list>button>svg{color:#96a2b4;opacity:.5}.selection-list>button.selected .selection-number{color:var(--accent)}.selection-list>button.selected>svg{color:var(--accent);opacity:1}.selection-list>button:hover{color:var(--accent)}.list-pagination{color:#9aa6b7;justify-content:space-between;align-items:center;margin-top:15px;font:9px IBM Plex Mono,monospace;display:flex}.list-pagination>div,.small-pager{gap:6px;display:flex}.list-pagination button,.small-pager button{border:1px solid var(--line);color:#9ca8b8;place-items:center;display:grid}.list-pagination button:hover:not(:disabled),.small-pager button:hover:not(:disabled){color:var(--accent);border-color:#b4bdc990}.project-type{color:#9eaaba;text-align:right;margin-left:auto}.panel-card-heading .small-pager button{width:26px;height:26px}.project-preview{width:100%;display:block;position:relative}.project-preview img{aspect-ratio:1.65;object-fit:cover;width:100%;display:block}.project-preview>span{color:#7dd3fc;background:#090f18ea;border:1px solid #aeb8c540;border-radius:50%;place-items:center;width:31px;height:31px;display:grid;position:absolute;bottom:10px;right:10px}.project-role-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.project-role{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-bottom:0;display:block;overflow:hidden}.project-direct-link{letter-spacing:.04em;color:#7dd3fc;white-space:nowrap;flex-shrink:0;align-items:center;gap:3px;font:9px IBM Plex Mono,monospace;display:inline-flex}.project-direct-link:hover{text-decoration:underline}.project-inspector h2{letter-spacing:-.04em;margin-bottom:15px;font-size:33px}.tags{flex-wrap:wrap;gap:5px;margin-top:17px;display:flex}.tags>span{border:1px solid #a1adbd29;font:9px/1.4 IBM Plex Mono,monospace}.project-inspector>.primary-button{margin-top:27px}.project-inspector,.research-inspector{animation:page-enter .45s var(--ease-ui)}.source-filters{grid-template-columns:1fr 1fr;gap:7px;margin:28px 0;display:grid}.source-filters>button{border:1px solid var(--line);color:#afb9c6;border-radius:4px;justify-content:space-between;align-items:center;display:flex}.source-filters>button>span{color:#94a1b3;font:9px IBM Plex Mono,monospace}.source-note{color:#bae6fd;gap:13px;padding:20px 0 23px;display:flex}.source-note span{color:#95a2b4;margin-top:7px;display:block}.repository-list{flex-direction:column;gap:9px;display:flex}.repository-row{border:1px solid var(--line);background:#adb7c503;border-radius:4px;transition:border-color .2s,background .2s;display:block}.repository-row:hover{background:#38bdf80d;border-color:#7dd3fc55}.repository-row>div{align-items:center;gap:8px;margin-bottom:12px;display:flex}.repository-row>div>span{font:9px IBM Plex Mono,monospace}.repository-row>div>svg:last-child{margin-left:auto}.repository-row h2{letter-spacing:-.04em}.repository-row p{margin-top:8px}.repository-row>small{color:#afb9c6;align-items:center;gap:6px;margin-top:14px;font:9px IBM Plex Mono,monospace;display:flex}.repository-row>small>i{border-radius:50%;width:4px;height:4px}.experience-card{padding-top:20px}.experience-top{justify-content:space-between;align-items:center;display:flex}.experience-top>span{color:#9eaabb;font:9px IBM Plex Mono,monospace}.experience-period{color:#aeb8c5;font:9px IBM Plex Mono,monospace}.experience-card h2{letter-spacing:-.025em;margin-top:10px}.experience-role{margin-top:7px}.experience-card ul{margin:18px 0;padding-left:14px}.experience-card li{padding-left:3px}.experience-bottom{justify-content:space-between;align-items:center;gap:10px;margin-top:20px;display:flex}.education-list{border-top:1px solid var(--line)}.education-card{border-bottom:1px solid var(--line);align-items:center;display:flex}.education-card>img{object-fit:contain;flex-shrink:0}.education-card .eyebrow{color:#a6b1c0}.education-card h2{font-weight:500}.education-card p{color:#9eaabb}.resume-download{color:#bae6fd;border:1px solid #7dd3fc33;align-items:center;margin:27px 0 17px;display:flex}.resume-download>div{flex:1;min-width:0}.resume-download strong{color:#f1f5f9;font-weight:500;display:block}.resume-download span{color:#9eaaba;margin-top:6px;display:block}.resume-download>button{width:28px;height:30px;color:var(--accent);place-items:center;display:grid}.research-list>button{padding-block:16px}.research-inspector>h2{letter-spacing:-.035em;margin:12px 0 18px}.research-context{margin-top:19px;font:9px IBM Plex Mono,monospace;display:block}.research-diagram{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:radial-gradient(#38bdf80d,#0000 70%);align-items:center;width:100%;margin:8px 0 25px;display:flex}.research-diagram>span{color:#9da9b9;font:9px IBM Plex Mono,monospace}.research-diagram>i{background:#a9b3c250;flex:1;height:1px;margin:0 8px}.research-diagram>div{border:1px solid #7dd3fc3b;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:relative;box-shadow:inset 0 0 30px #38bdf808}.research-diagram>div:before,.research-diagram>div:after{content:"";border:1px solid #7dd3fc1a;border-radius:4px;position:absolute;inset:5px}.research-diagram>div:after{border-color:#7dd3fc0d;inset:10px}.research-diagram b{letter-spacing:.12em;color:#e0f2fe;font:20px IBM Plex Mono,monospace}.research-diagram small{color:#a7b1c0;font:9px IBM Plex Mono,monospace}.document-links{flex-direction:column;display:flex}.document-links>button{border:1px solid var(--line);text-align:left;color:#bae6fd;align-items:center;gap:10px;display:flex}.document-links>button>span{flex:1}.document-links>button:hover{color:var(--accent);border-color:#7dd3fc66}.segmented{border:1px solid var(--line);background:#05080d66;border-radius:4px;gap:3px;padding:3px;display:flex}.segmented>button{color:#9aa7b8;white-space:nowrap;border-radius:3px;flex:1;padding:7px 9px;font-size:9px}.sound-tabs{margin-top:22px;margin-bottom:10px}.sound-tabs>button>span{color:#9fabbb;margin-left:6px;font:9px IBM Plex Mono,monospace}.release-list{flex-direction:column;display:flex}.release-list>button{text-align:left;border-bottom:1px solid var(--line);align-items:center;padding:12px 0;display:flex}.release-list>button>img{object-fit:cover}.release-list>button>span{flex:1;min-width:0}.release-list strong{white-space:nowrap;text-overflow:ellipsis;font-weight:500;display:block;overflow:hidden}.release-list small{color:#9eaabb;margin-top:6px;font:9px IBM Plex Mono,monospace;display:block}.release-list>button>small{margin:0 1px 0 0}.release-list>button>svg{color:#a8b3c2}.release-list>button.current{color:var(--accent)}.release-list>button.current>img{outline-offset:2px;outline:1px solid #38bdf870}.artist-link{margin-top:23px}.credit-card{padding:24px 0}.credit-card h2{letter-spacing:-.025em;margin-top:15px;line-height:1.5}.credit-card>p{color:#afb9c6;margin-top:15px}.contact-card{border-top:1px solid #b8c1cd33;padding-top:26px}.contact-card>.eyebrow{font-size:9px}.contact-email{letter-spacing:-.04em;justify-content:space-between;align-items:center;gap:10px;margin-top:19px;display:flex}.contact-card>.text-link{color:#a6b1c0;margin-top:19px}.contact-links{border-top:1px solid var(--line);margin-top:33px}.contact-links>a{border-bottom:1px solid var(--line);color:#b9c1cd;align-items:center;gap:15px;padding:21px 0;display:flex}.contact-links>a>span{color:#f1f5f9;flex:1}.contact-links small{color:#9fabbb;margin-top:5px;display:block}.contact-links>a:hover{color:var(--accent)}.contact-location{color:#b0bac7;align-items:center;gap:12px;margin-top:29px;line-height:1.8;display:flex}.contact-location small{letter-spacing:.04em;color:#94a1b3;font:9px IBM Plex Mono,monospace}.workspace-status{padding:0 var(--gutter);border-top:1px solid var(--line);z-index:3;justify-content:space-between;align-items:center;font:9px IBM Plex Mono,monospace;display:flex}.workspace-hint{align-items:center;gap:7px;display:flex}.workspace-hint>i{background:#a0abbb;border-radius:50%;width:3px;height:3px}.keyboard-hint{letter-spacing:.03em;margin-left:12px}.page-navigation{align-items:center;gap:12px;display:flex}.page-navigation button{color:#bae6fd;place-items:center;width:23px;height:25px;display:grid}.page-navigation i{color:#8b99ad;margin:0 7px;font-style:normal}.music-player{padding:9px var(--gutter);z-index:6;border-top:1px solid #aab4c225;align-items:center;display:grid;position:relative}.playing-track{text-align:left;align-items:center;gap:11px;min-width:0;display:flex}.playing-track>img{object-fit:cover;flex-shrink:0;width:42px;height:42px;box-shadow:0 3px 15px #0004}.playing-track>span{min-width:0}.playing-track strong{white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.02em;display:block;overflow:hidden}.playing-track small{margin-top:5px;font:9px IBM Plex Mono,monospace;display:block}.playing-track small>i{margin:0 4px;font-style:normal}.transport{display:contents}.transport-controls{flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.transport-controls .icon-button{width:30px;height:30px}.player-play{border-radius:50%;place-items:center;width:36px;height:36px;display:grid}.player-play:hover{background:var(--accent)}.seek-control{align-items:center;gap:10px;min-width:0;font:9px IBM Plex Mono,monospace;display:flex}.seek-time{flex-shrink:0;min-width:26px}.seek-track{flex:1;min-width:0;height:46px;position:relative}.seek-track:after{content:"";top:2px;bottom:2px;left:var(--progress,0%);pointer-events:none;background:#e0f2fe;width:1.5px;position:absolute;box-shadow:0 0 8px #38bdf8}.player-waveform{pointer-events:none;align-items:flex-end;gap:1px;height:100%;padding-bottom:13px;display:flex;position:relative}.player-waveform:before{content:"";background:#94a3b826;height:1px;position:absolute;bottom:12px;left:0;right:0}.player-waveform>i{flex:1 1 0;min-width:1px;display:block;position:relative}.player-waveform>i:after{content:"";background:inherit;opacity:.36;height:40%;position:absolute;top:calc(100% + 1.5px);left:0;right:0}.seek-track>input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.seek-track:focus-within{outline:1px solid var(--accent);outline-offset:4px;border-radius:2px}.player-options{flex-shrink:0;justify-content:flex-end;align-items:center;gap:4px;display:flex}.player-options .icon-button{width:28px;height:28px}.volume-slider{cursor:pointer;width:60px;height:12px;margin:0 4px 0 0}.player-error{color:#f1f5f9;background:#131f30;border:1px solid #9ca8b850;border-radius:4px;max-width:calc(100% - 40px);padding:12px 17px;font-size:11px;position:absolute;bottom:calc(100% + 8px);right:20px}.loading-icon{animation:1s linear infinite spin}.toast{color:#bae6fd;z-index:110;background:#162438;border:1px solid #a4afbf66;border-radius:4px;padding:14px 22px;font-size:12px;position:fixed;bottom:105px;left:50%;transform:translate(-50%)}@keyframes page-enter{0%{opacity:0;transform:translateX(calc(var(--page-direction,1) * 12px))}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{to{opacity:0}}@keyframes panel-in{0%{opacity:0;transform:translateY(15px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}[data-locale=ko] .page-panel>h1{letter-spacing:-.065em;line-height:1.2}[data-locale=ko] .page-panel>h1>em{letter-spacing:-.065em;font-family:inherit;font-size:1em;font-style:normal;font-weight:400;line-height:1.3}[data-locale=ko] .overview-title,[data-locale=ko] .contact-title{font-size:43px!important}[data-locale=ko] .research-inspector>h2{line-height:1.55}.project-inspector>p,.research-inspector>p{font-size:12px}.resume-save{width:26px;height:32px;color:var(--accent);flex-shrink:0;place-items:center;display:grid}.resume-download{gap:9px}.resume-download>button{flex-shrink:0}.portfolio-app[data-page=sound] .panel-left>h1{line-height:1.12}.portfolio-app[data-page=sound] .panel-left>h1>em{font-size:1em}.portfolio-app{--sidebar:230px;--rail:344px;--right:340px;--gutter:30px}.portfolio-app[data-page=sound]{--rail:344px;--right:340px}.portfolio-app[data-page=lab]{--rail:344px;--right:346px}.app-body{grid-template-rows:68px minmax(0,1fr) 36px 92px}.app-sidebar{padding:29px 18px 22px}.brand{padding:0 4px}.brand-wordmark{letter-spacing:.08em;font-size:20px;line-height:1.15}.brand-wordmark small{margin-top:8px}.nav-item{padding:0 12px;font-size:13px}.nav-item>small{font-size:9px}.sidebar-note{font-size:10px}.sidebar-note small{font-size:8px}.app-sidebar nav{gap:7px}.breadcrumb{gap:10px}.breadcrumb>span{letter-spacing:.08em;text-transform:uppercase;font-size:15px;font-weight:800;line-height:1}.breadcrumb>strong{font-size:12.5px}.breadcrumb>i,.topbar-contact{font-size:12px}.language-button{font-size:10px}.location{color:var(--muted);font-size:9px}.shortcut-button{border:1px solid var(--line);color:var(--muted);width:31px;height:29px}.page-panels{inset:54px var(--gutter) 32px}.workspace-coordinates{top:20px}.workspace-coordinates>span:last-child{color:#91a0b9}.workspace-grid{opacity:.23}.workspace:before{background:radial-gradient(at 50% 45%,#809fd01a,#0000 57%)}.page-panel>h1{margin:20px 0;font-size:46px;line-height:1.08}.page-panel>h1>em{color:#bae6fd}.panel-intro,.overview-intro{color:#b0bdd0;max-width:none;font-size:14px;line-height:1.85}.panel-intro{margin-bottom:24px}.intro-kicker{letter-spacing:.05em;gap:9px;font:600 11px IBM Plex Mono,monospace}.intro-kicker .status-dot{background:var(--accent);width:6px;height:6px}.overview-title{margin-top:25px!important;font-size:48px!important}.overview-intro{margin:24px 0}.overview-disciplines{gap:10px 6px;font-size:9px}.overview-foot{margin-top:34px;padding-top:20px}.overview-foot>.eyebrow{font-size:9px}.overview-foot>button{padding:10px 0;font-size:13px}.overview-foot>button>span{font-size:11px}.primary-button{color:#15243b;padding:13px 17px;font-size:13px}.outline-button{color:var(--accent);background:0 0;border-color:#7dd3fc50}.outline-button:hover{background:#38bdf812}.text-link{color:#bae6fd;font-size:12px}.eyebrow{color:#a8b6cb;font-size:10px}.panel-card-heading>.eyebrow,.panel-card-heading>.mono{font-size:9px}.tags>span{padding:6px 8px;font-size:9px}.now-card{background:linear-gradient(135deg,#9db9df09,#0000);border-color:#b1c2dc29;padding:21px}.now-card h2{font-size:32px}.now-card h2 em{color:#7dd3fc}.now-card>p{font-size:12px;line-height:1.85}.penn-status{gap:13px;margin-top:21px;padding-top:18px}.penn-status>img{opacity:1}.penn-status>span{line-height:1.7}.penn-status strong{font-size:11px}.penn-status>svg{color:var(--accent)}.release-feature{aspect-ratio:1.55}.release-feature-top,.release-feature-bottom small{font-size:9px}.release-feature-bottom strong{font-size:17px}.right-foot-link{font-size:11px}.right-foot-link>span{display:none}.selection-list strong{font-size:14px}.selection-list small{font-size:10px;line-height:1.6}.selection-number{font-size:10px}.selection-list>button{gap:11px;padding-block:15px}.selection-list>button.selected{color:var(--accent)}.list-pagination{font-size:10px}.list-pagination button,.small-pager button{width:32px;height:32px}.project-preview{margin-bottom:21px}.project-inspector>h2{font-size:31px}.project-inspector>p{color:#b4c1d3;font-size:13px;line-height:1.9}.project-role{font-size:9px!important}.project-type{font-size:9px}.source-filters>button{padding:14px;font-size:13px}.source-filters>button>span{font-size:10px}.source-filters>button.active{color:var(--accent);background:#38bdf814;border-color:#38bdf870}.source-note>p{font-size:13px}.source-note span{font-size:11px;line-height:1.7}.repository-row h2{font-size:18px}.repository-row p{font-size:12px;line-height:1.8}.repository-row>div>span,.repository-row>small{font-size:9px}.repository-row>small>i{background:#38bdf8}.repository-row{padding:18px}.experience-top>span,.experience-period{font-size:10px}.experience-card h2{font-size:21px;line-height:1.45}.experience-role{font-size:13px;line-height:1.6}.experience-card ul{color:#b6c3d6;font-size:13px;line-height:1.85}.experience-card li{margin-bottom:10px}.experience-card li::marker{color:var(--accent)}.experience-top{margin-bottom:20px}.education-card{gap:18px;padding:21px 0;transition:background .25s,border-color .25s}.education-card>img{opacity:.95;width:50px;height:56px}.education-card .eyebrow{font-size:9px}.education-card h2{margin-top:3px;font-size:14px;line-height:1.5}.education-card p{margin-top:5px;font-size:12px;line-height:1.7}.school-period{color:#9fb0c8;margin-top:9px;font:10px/1.5 IBM Plex Mono,monospace;display:block}.school-selected{background:linear-gradient(90deg,#38bdf810,#0000);border-bottom-color:#38bdf850}.resume-download{margin-top:25px;padding:17px 13px}.resume-download strong{font-size:13px}.resume-download span{font-size:10px;line-height:1.6}.research-list strong{font-size:13px;line-height:1.6}.research-list small{font-size:10px}.research-inspector>h2{font-size:27px;line-height:1.35}.research-inspector>p{color:#b8c5d9;font-size:13px;line-height:1.85}.research-context{font-size:10px;line-height:1.8}.research-diagram{height:101px}.research-diagram>span{font-size:8px}.research-diagram>div{width:126px;height:68px}.research-diagram small{font-size:7px}.document-links>button{padding:12px;font-size:12px}.document-links{gap:8px;margin-top:22px}.portfolio-app[data-page=sound] .panel-left>h1{font-size:39px}.release-list>button{gap:13px;padding-block:13px}.release-list>button>img{width:45px;height:45px}.release-list strong{font-size:13px}.release-list small{font-size:9px;line-height:1.6}.release-list>button>small{font-size:10px}.sound-tabs>button{padding:8px;font-size:11px}.segmented>button.active{color:#e0f2fe;background:#38bdf81f}.credit-card>p{font-size:13px;line-height:1.9}.credit-card h2{font-size:24px}.credit-card{min-height:260px}.release-art{aspect-ratio:1;position:relative}.release-art>img{object-fit:cover;width:100%;height:100%;display:block}.release-art>button{color:#08111f;background:linear-gradient(135deg,#f1f5f9,#7dd3fc);border-radius:50%;place-items:center;width:48px;height:48px;display:grid;position:absolute;bottom:20px;right:20px;box-shadow:0 7px 30px #0008}.release-inspector h2{margin:23px 0 10px;font-size:29px}.release-inspector>p{color:#b6c4d8;align-items:center;gap:13px;font-size:12px;display:flex}.release-inspector>p>span{color:#8d9ab1}.release-waveform{--wf-base:16px;height:58px;padding-bottom:var(--wf-base);align-items:flex-end;gap:1px;margin:22px 0;display:flex;position:relative}.release-waveform:before{content:"";left:0;right:0;bottom:calc(var(--wf-base) - 1px);background:#94a3b826;height:1px;position:absolute}.release-waveform>i{background:linear-gradient(#94a3b888,#47556966);border-radius:1px 1px 0 0;flex:1 1 0;min-width:1px;position:relative}.release-waveform>i:after{content:"";background:inherit;opacity:.36;height:40%;position:absolute;top:calc(100% + 1.5px);left:0;right:0}.release-waveform>i.played{background:linear-gradient(#e0f2fe 0%,#38bdf8 55%,#0284c7 100%)}.release-actions{border-top:1px solid var(--line);justify-content:space-between;gap:10px;padding-top:18px;display:flex}.release-actions .text-link{font-size:11px}.lab-project-selector{margin:25px 0}.lab-project-selector>button{padding:10px;font-size:12px}.audio-project-story>h2{letter-spacing:-.035em;margin:13px 0 19px;font-size:25px;line-height:1.3}.audio-project-story>p{color:#b8c5d7;font-size:13px;line-height:1.9}.audio-project-story>.text-link{margin-top:23px}.signal-chain{border-top:1px solid var(--line);color:#bdc9db;justify-content:space-between;align-items:center;gap:9px;margin-top:27px;padding-top:23px;font:9px IBM Plex Mono,monospace;display:flex}.signal-chain>span{border:1px solid #7dd3fc33;padding:8px 7px}.signal-chain>i{color:var(--accent);font-style:normal}.contact-email{overflow-wrap:anywhere;font-size:18px;line-height:1.65}.contact-card>.text-link{font-size:12px}.contact-links>a>span{font-size:14px}.contact-links small{font-size:11px}.contact-location{font-size:12px}.contact-location small{font-size:9px}.contact-title{font-size:47px!important}.music-player{grid-template-columns:minmax(150px,195px) auto minmax(260px,1fr) auto;gap:14px}.playing-track strong{max-width:155px;font-size:13px}.playing-track small{font-size:8px}.playing-track small>i{color:#64748b}.player-play{color:#14223a}.seek-control{font-size:9px}.volume-slider{accent-color:var(--accent)}.player-options .repeat-button{display:grid}.player-more{display:none}.workspace-status{color:#aebdd2;font-size:10px}.workspace-hint{font-size:9px}.keyboard-hint{font-size:8px}.page-navigation{font-size:10px}.central-study{top:52px;bottom:30px;left:calc(var(--gutter) + var(--rail) + 12px);right:calc(var(--gutter) + var(--right) + 12px)}.signal-sculpture{touch-action:none;inset:0}.signal-sculpture canvas{cursor:grab;touch-action:none}.study-top{top:calc(50% - 216px);left:4%;right:4%}.study-top .eyebrow,.study-live{color:#a6b6cd}.study-caption{top:calc(50% + 214px);left:4%;right:4%}.study-caption p{font-size:10px;line-height:1.7}.study-controls{pointer-events:auto;display:flex}.motion-button{color:#bae6fd;border-color:#7dd3fc3b;width:29px;height:29px}.constellation-nodes{pointer-events:none;position:absolute;inset:0}.orbit-node{will-change:transform;color:#bae6fd;pointer-events:auto;z-index:3;background:#0c172ce8;border:1px solid #7dd3fc80;border-radius:50%;place-items:center;width:28px;height:28px;transition:background .18s,border-color .18s;display:grid;position:absolute;box-shadow:0 0 0 5px #08132745}.orbit-node>span{font:9px IBM Plex Mono,monospace}.orbit-node>em{white-space:nowrap;color:#f1f5f9;opacity:0;pointer-events:none;text-overflow:ellipsis;background:#0b1424e8;border:1px solid #bfcde326;border-radius:3px;max-width:170px;padding:5px 8px;font:10px Manrope,sans-serif;transition:opacity .2s;position:absolute;top:50%;left:calc(100% + 9px);overflow:hidden;transform:translateY(-50%)}.orbit-node[data-side=left]>em{left:auto;right:calc(100% + 9px)}.orbit-node.node-selected{color:#08111f;background:#7dd3fc;border-color:#e0f2fe;box-shadow:0 0 0 5px #38bdf814,0 0 25px #38bdf824}.orbit-node:hover>em,.orbit-node:focus-visible>em,.orbit-node.node-selected>em{opacity:1}.orbit-node:hover{color:#08111f;background:#38bdf8;border-color:#e0f2fe}.orbit-node:focus-visible{outline-offset:5px}.signal-sculpture:not(.ready) .orbit-node{transform:translate(-50%,-50%)}kbd{color:#bae6fd;background:#17283f;border:1px solid #b7c5db40;border-bottom-width:2px;border-radius:4px;place-items:center;min-width:26px;min-height:26px;padding:4px 7px;font:11px IBM Plex Mono,monospace;display:inline-grid}.shortcuts-panel{width:480px;max-width:100%;max-height:calc(var(--app-height,100dvh) - 40px);background:#101e33;border:1px solid #b0bfd540;border-radius:10px;padding:34px;position:relative;overflow:auto;box-shadow:0 35px 100px #0008}.shortcuts-heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.shortcuts-heading h2{letter-spacing:-.04em;margin-top:12px;font-size:27px}.shortcuts-heading .eyebrow{font-size:9px}.shortcut-pages{grid-template-columns:1fr 1fr;gap:19px 18px;margin:28px 0;display:grid}.shortcut-pages>div{color:#d3dcec;align-items:center;gap:13px;font-size:13px;display:flex}.shortcut-utilities{border-top:1px solid var(--line);flex-direction:column;gap:14px;padding-top:21px;display:flex}.shortcut-utilities>div{align-items:center;gap:20px;display:flex}.shortcut-utilities>div>span{gap:5px;min-width:86px;display:flex}.shortcut-utilities>div>kbd{min-width:86px}.shortcut-utilities p{color:#d3ddeb;font-size:12px}.shortcut-note{color:#a7b7ce;margin-top:25px;font-size:11px;line-height:1.85}.mobile-panel-switch{display:none}@media (width>=1700px){.portfolio-app{--sidebar:246px;--rail:392px;--right:384px;--gutter:40px}.portfolio-app[data-page=sound],.portfolio-app[data-page=lab]{--rail:392px;--right:390px}.page-panel>h1{font-size:55px}.overview-title{font-size:65px!important}.panel-intro,.overview-intro{font-size:15px}.now-card h2{font-size:38px}.study-top{top:calc(50% - 260px)}.study-caption{top:calc(50% + 258px)}}@media (width<=1320px) and (width>=851px){.portfolio-app{--sidebar:104px;--rail:304px;--right:304px;--gutter:26px}.portfolio-app[data-page=sound],.portfolio-app[data-page=lab]{--rail:304px;--right:310px}.app-sidebar{align-items:center;padding:25px 12px}.brand{padding:0}.brand-wordmark{letter-spacing:.1em;white-space:normal;text-align:center;font-size:13px}.brand-wordmark small{margin-top:8px;line-height:1.5}.brand-wordmark small>span{display:block}.sidebar-rule,.nav-item>span,.nav-item>small,.sidebar-note{display:none}.app-sidebar nav{align-items:center;gap:9px;width:100%;margin-top:36px}.nav-item{justify-content:center;height:46px;padding:0}.nav-item.active>i{left:-27px}.sidebar-socials{flex-direction:column;align-items:center;gap:25px;padding:22px 0 0}.topbar-right{gap:15px}.location,.topbar-divider{display:none}.page-panel>h1{font-size:38px}.overview-title{font-size:44px!important}.overview-disciplines{font-size:8px}.intro-kicker{letter-spacing:.03em;font-size:9.5px}.music-player{grid-template-columns:minmax(135px,170px) auto minmax(220px,1fr) auto;gap:11px}.playing-track strong{font-size:12px}.player-options{gap:3px}.volume-slider{width:51px;margin-right:0}}@media (width>=851px) and (height<=850px){.app-body{grid-template-rows:60px minmax(0,1fr) 32px 84px}.page-panels{inset:43px var(--gutter) 22px}.workspace-coordinates{top:15px}.page-panel>h1{margin:14px 0 16px;font-size:36px}.overview-title{margin-top:18px!important;font-size:42px!important}.intro-kicker{letter-spacing:.03em;font-size:9.5px}.overview-intro,.panel-intro{margin-block:18px;font-size:13px;line-height:1.75}.overview-foot{margin-top:24px;padding-top:14px}.overview-foot>button{padding:7px 0;font-size:12px}.overview-foot>.eyebrow{margin-bottom:9px;font-size:8px}.overview-disciplines{gap:9px;margin-top:18px;font-size:8px}.now-card{padding:17px}.now-card h2{font-size:27px}.now-card>p{margin-top:13px;font-size:11px}.penn-status{gap:10px;margin-top:14px;padding-top:13px}.penn-status>img{width:38px;height:42px}.penn-status>span{font-size:7px}.penn-status strong{font-size:10px}.release-feature{aspect-ratio:1.9;margin-top:13px}.right-foot-link{padding-top:14px}.release-feature-top,.release-feature-bottom small{font-size:8px}.release-feature-bottom strong{font-size:15px}.selection-list{margin-top:20px}.selection-list strong{font-size:13px}.selection-list small{font-size:9px}.project-preview{max-height:145px;margin-bottom:17px}.project-preview img{object-fit:cover;max-height:145px}.project-inspector h2{margin-bottom:13px;font-size:27px}.project-inspector>p{font-size:12px;line-height:1.85}.project-inspector>.primary-button{margin-top:20px}.tags{margin-top:15px}.tags>span{padding:5px 7px;font-size:8px}.repository-row{padding:15px}.repository-row h2{font-size:16px}.repository-row p{font-size:11px;line-height:1.75}.repository-row>div{margin-bottom:9px}.repository-row>small{margin-top:11px;font-size:8px}.experience-top{margin-bottom:14px}.experience-card{padding-top:17px}.experience-top>span,.experience-period{font-size:9px}.experience-card h2{margin-top:9px;font-size:19px}.experience-role{font-size:12px}.experience-card ul{margin-block:15px;font-size:12px;line-height:1.85}.experience-card li{margin-bottom:9px}.education-card{gap:15px;padding-block:17px}.education-card>img{width:45px;height:50px}.education-card h2{font-size:13px}.education-card p{font-size:11px}.school-period{margin-top:7px;font-size:9px}.resume-download{margin-top:20px;padding:14px 12px}.resume-download strong{font-size:12px}.resume-download span{font-size:9px}.research-list strong{font-size:12px;line-height:1.6}.research-inspector>h2{margin:11px 0 15px;font-size:24px}.research-inspector>p{font-size:12px;line-height:1.8}.research-diagram{height:76px;margin-bottom:20px}.research-diagram>div{height:57px}.research-context{margin-top:14px;font-size:9px}.document-links{margin-top:18px}.document-links>button{padding:10px;font-size:11px}.release-list>button{padding-block:10px}.release-list>button>img{width:38px;height:38px}.release-list strong{font-size:12px}.sound-tabs{margin-top:17px}.artist-link{margin-top:18px}.release-art{aspect-ratio:1.1;max-height:240px}.release-inspector h2{margin-top:20px;font-size:26px}.release-waveform{--wf-base:11px;height:40px;margin-block:19px}.audio-project-story>h2{font-size:23px}.audio-project-story>p{font-size:12px}.lab-project-selector{margin-block:20px}.lab-project-selector>button{padding:8px;font-size:11px}.signal-chain{margin-top:22px;padding-top:18px;font-size:8px}.signal-chain>span{padding:7px 6px}.central-study{top:44px;bottom:25px}.study-top{top:calc(50% - 192px)}.study-caption{top:calc(50% + 185px)}.study-top .eyebrow,.study-live{font-size:7px}.study-caption .eyebrow{font-size:8px}.study-caption p{font-size:9px}.orbit-node{width:26px;height:26px}.orbit-node>em{max-width:145px;font-size:9px}.contact-title{font-size:41px!important}}@media (width>=851px) and (height<=740px){.portfolio-app[data-page=resume] .panel-intro,.portfolio-app[data-page=research] .panel-intro,.portfolio-app[data-page=sound] .panel-intro,.portfolio-app[data-page=lab] .panel-intro{display:none}.page-panel>h1{flex-wrap:wrap;gap:0 8px;font-size:35px;display:flex}.page-panel>h1.overview-title{display:block}.page-panel>h1>em{font-size:1em}.overview-intro{font-size:12px}.overview-foot{margin-top:20px;padding-top:12px}.overview-foot>button{padding-block:6px}.now-card h2{font-size:25px}.now-card>p{font-size:10px}.penn-status{margin-top:12px;padding-top:11px}.penn-status>img{width:35px;height:39px}.release-feature{aspect-ratio:2.1}.research-diagram{display:none}.experience-card ul,.experience-role{font-size:11px}.experience-card h2{font-size:18px}.education-card{padding-block:15px}.education-card h2{font-size:12px}.education-card p{font-size:11px}.project-preview{max-height:115px}.project-preview img{height:115px}.project-inspector h2{margin-bottom:10px;font-size:22px;line-height:1.2}.source-note{padding-block:12px 17px}.source-filters{margin-block:20px}.contact-links>a{padding-block:17px}.contact-location{margin-top:22px}.release-art{max-height:205px}.release-inspector h2{font-size:24px}.release-waveform{--wf-base:9px;height:34px;margin-block:16px}.signal-chain{margin-top:18px;padding-top:15px}.study-top{top:calc(50% - 164px)}.study-caption{top:calc(50% + 156px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.page-panel{filter:none!important}}.now-card h2>span{display:block}.education-selector{display:none}.penn-status>img{flex-shrink:0;width:48px;height:54px}.penn-status>span{min-width:0;font-size:8px}.signal-sculpture[data-mode=overview] .orbit-node>em{opacity:1}@media (width>=851px) and (height<=680px){.app-sidebar{padding-block:18px}.app-sidebar nav{gap:4px}.sidebar-note{display:none}.sidebar-rule{padding-block:18px 10px}.overview-foot{display:none}.now-card{padding:14px}.now-card h2{font-size:23px}.now-card>p{margin-top:12px;font-size:11px}.penn-status{margin-top:13px;padding-top:11px}.release-feature{height:84px;margin-top:12px}.release-feature-top{display:none}.release-feature-bottom{bottom:14px}.release-feature-bottom strong{font-size:15px}.right-foot-link{padding-top:12px}}.portfolio-app{inset:var(--app-top,0px) 0 auto;isolation:isolate;position:fixed}.ambient-stars{z-index:-1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.scene-back{color:#bae6fd;white-space:nowrap;border:1px solid #7dd3fc45;border-radius:15px;justify-content:center;align-items:center;gap:4px;height:29px;padding:0 9px 0 5px;font-size:10px;display:inline-flex}.scene-back:hover:not(:disabled){border-color:var(--accent);background:#38bdf818}.scene-back:disabled{opacity:.25;cursor:default}.signal-sculpture:focus{outline:none}.orbit-node[data-occluded=true]{visibility:hidden;opacity:0;pointer-events:none}.portfolio-app:lang(ko){word-break:keep-all;overflow-wrap:anywhere}.mobile-page-cue{display:none}.modal-backdrop{inset:var(--app-top,0px) 0 auto;height:var(--app-height,100dvh);z-index:100;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#05080dcf;grid-template-columns:minmax(0,1fr);place-items:center;padding:30px;animation:.25s ease-out fade-in;display:grid;position:fixed}.modal-dismiss{cursor:default;position:absolute;inset:0}.close-button{border:1px solid var(--line-strong);color:#cbd5e1;z-index:2;background:#111e32;border-radius:50%;place-items:center;width:36px;height:36px;display:grid}.close-button:hover{color:var(--accent);border-color:var(--accent)}.modal-closing{animation:.26s ease-in forwards fade-out}@media (width<=767px){.modal-backdrop{padding:12px}}.portfolio-app{--panel:linear-gradient(140deg, #111e33bd, #081120bd);--hairline:#94a3b824;--ice:#7dd3fc;background:radial-gradient(ellipse at 55% 45%, #162a4526, transparent 62%), var(--bg)}.app-sidebar{background:linear-gradient(165deg,#0d1829ed,#070e1bf5 55%);border-right-color:#94a3b822}.brand-wordmark{color:#f8fafc}.brand-wordmark small{letter-spacing:.14em;color:#7dd3fc;font-size:9.5px}.sidebar-rule{color:#94a3b8;background:0 0;padding-top:36px}.sidebar-rule .eyebrow{letter-spacing:.11em;font-size:8px}.nav-item{color:#94a3b8;border-radius:10px;height:48px}.nav-item.active{color:#f1f5f9;background:linear-gradient(110deg,#38bdf818,#0ea5e908);border-color:#38bdf842;box-shadow:inset 0 1px #bae6fd12}.nav-item.active>i{border-radius:2px;width:2px;height:23px}.nav-item:hover{background:#cbd5e10a}.nav-item>small{color:#64748b}.nav-item>svg{opacity:.9}.sidebar-bottom{border-top:1px solid #0000}.sidebar-note{color:#94a3b8;line-height:1.8}.sidebar-socials{border-top-color:#94a3b820}.app-topbar{background:linear-gradient(90deg,#0a1322f7,#08101ef2);border-bottom-color:#94a3b824;gap:18px;position:relative}.breadcrumb>span{color:#e2e8f0}.breadcrumb>strong{color:#7dd3fc}.breadcrumb>i{color:#64748b}.topbar-contact{color:#bae6fd}.topbar-right{gap:14px}.icon-button{border-radius:8px}.workspace{background:radial-gradient(at 52% 48%,#1e3a5f18,#0000 70%)}.workspace-frame{pointer-events:none;z-index:0;background:linear-gradient(#7dd3fc38,#7dd3fc38) 18px 0/32px 1px no-repeat,linear-gradient(#7dd3fc38,#7dd3fc38) calc(100% - 18px) 100%/32px 1px no-repeat;border:1px solid #94a3b814;border-radius:18px;position:absolute;inset:14px 10px}.workspace-coordinates{letter-spacing:.09em;color:#94a3b8;font-size:8px}.page-panel{animation:page-enter .4s var(--ease-ui) backwards}.panel-right{animation-delay:45ms}.page-panel>h1{letter-spacing:-.045em}.intro-kicker{color:#7dd3fc;font-size:11px}.overview-title{letter-spacing:-.05em}.overview-intro,.panel-intro{color:#cbd5e1}.primary-button{color:#080f1d;background:linear-gradient(110deg,#f1f5f9,#bae6fd);border-color:#7dd3fc80;border-radius:9px;min-height:46px;box-shadow:inset 0 1px #ffffff60,0 5px 18px #01081340}.primary-button:hover{background:linear-gradient(110deg,#fff,#7dd3fc);transform:translateY(-1px)}.overview-disciplines{color:#94a3b8}.overview-foot{border-color:#94a3b825}.module-launcher{display:none}.now-card,.repository-row{background:var(--panel);border:1px solid var(--hairline);border-radius:14px;box-shadow:inset 0 1px #e2e8f008}.now-card h2{letter-spacing:-.04em}.now-card p{color:#cbd5e1}.penn-status{border-color:#94a3b826}.penn-status>span{color:#94a3b8}.penn-status strong{color:#f1f5f9}.release-feature{border:1px solid #94a3b828;border-radius:14px}.release-feature>img{transition:transform .55s var(--ease-ui)}.release-feature:hover>img{transform:scale(1.025)}.release-play{background:#e2e8f0;box-shadow:0 0 0 5px #7dd3fc18}.right-foot-link{color:#cbd5e1}.selection-list{border-top:0;gap:7px;display:grid}.selection-list>button{background:#0f1d3245;border:1px solid #94a3b818;border-radius:10px;padding:13px 10px;transition:background .2s,border-color .2s}.selection-list>button:hover{background:#16284285;border-color:#7dd3fc40}.selection-list>button.selected{background:linear-gradient(110deg,#38bdf814,#0f1f3696);border-color:#38bdf866;box-shadow:inset 2px 0 #38bdf8}.selection-list strong{color:#f1f5f9;font-weight:500}.selection-list>button.selected strong{color:#bae6fd}.selection-list small{color:#94a3b8}.selection-number{color:#64748b}.list-pagination button,.small-pager button{border-color:#94a3b830;border-radius:8px}.project-preview{background:#060e1a;border:1px solid #94a3b830;border-radius:14px;overflow:hidden}.project-preview>img{border:0}.project-inspector h2,.research-inspector h2,.audio-project-story h2{letter-spacing:-.04em}.project-inspector>p,.research-inspector>p,.audio-project-story>p{color:#cbd5e1}.tags>span{color:#cbd5e1;background:#13253c48;border-color:#94a3b828;border-radius:5px}.source-filters>button,.segmented{background:#081322b8;border-color:#94a3b82d;border-radius:9px}.source-filters>button.active,.segmented>button.active{color:#bae6fd;background:#38bdf818;border-color:#38bdf855}.repository-row>div{color:#7dd3fc}.repository-row h2{color:#f1f5f9}.repository-row p{color:#cbd5e1}.experience-card{border-top:1px solid #94a3b828}.experience-card h2{color:#f1f5f9}.experience-role{color:#7dd3fc}.experience-card li{color:#cbd5e1}.education-selector>button{background:#0b1628;border-color:#94a3b824;border-radius:11px}.education-selector>button.school-selected{background:linear-gradient(145deg,#38bdf814,#0f1e35);border-color:#38bdf866}.education-card{border-color:#94a3b82b}.resume-download{background:#0f1e34b0;border-color:#94a3b835;border-radius:11px}.research-diagram{border-color:#94a3b828}.research-context{color:#94a3b8}.document-links>button{background:#0f1d3385;border-color:#94a3b833;border-radius:9px}.release-list>button{border-color:#94a3b824;border-radius:10px;padding-inline:10px}.release-list>button.current{background:linear-gradient(100deg,#38bdf814,#0000);box-shadow:inset 2px 0 #38bdf8}.release-list>button>img{border:1px solid #94a3b838;border-radius:8px}.release-list strong{color:#f1f5f9}.release-list>button.current strong{color:#bae6fd}.release-art{border:1px solid #94a3b832;border-radius:14px;overflow:hidden}.release-inspector h2{letter-spacing:-.04em}.signal-chain>span{background:#11223655;border-color:#94a3b834;border-radius:7px}.contact-links>a{border-color:#94a3b826}.contact-links>a>svg:first-child{color:#7dd3fc}.contact-email{color:#bae6fd}.study-top{color:#cbd5e1}.study-top .eyebrow,.study-live{letter-spacing:.075em;font-size:9px}.study-caption .eyebrow{color:#7dd3fc;letter-spacing:.075em;font-size:9px}.study-caption p{color:#94a3b8}.study-controls{background:#091324cc;border:1px solid #94a3b829;border-radius:22px;gap:7px;padding:4px}.study-controls .motion-button{border-color:#94a3b82b}.scene-back{background:0 0;border-color:#7dd3fc45}.music-player{background:linear-gradient(110deg,#0f1e33ed,#0a1426fa);border-top-color:#94a3b82e;box-shadow:0 -12px 40px #02071230,inset 0 1px #e2e8f006}.playing-track>img{border:1px solid #94a3b840;border-radius:9px}.playing-track strong{color:#f1f5f9;font-weight:600}.playing-track small{color:#94a3b8;letter-spacing:.055em}.player-play{background:linear-gradient(130deg,#f1f5f9,#7dd3fc);border:1px solid #bae6fd80;box-shadow:0 0 0 4px #38bdf810}.player-waveform>i{background:linear-gradient(#94a3b888,#47556966);border-radius:1px 1px 0 0}.player-waveform>i.played{background:linear-gradient(#e0f2fe 0%,#38bdf8 55%,#0284c7 100%)}.player-waveform>i.played:after{opacity:.52;background:linear-gradient(#38bdf8aa,#0284c720)}.seek-control{font-variant-numeric:tabular-nums;color:#94a3b8}.workspace-status{background:#091322f2;border-top-color:#94a3b824}.workspace-hint{color:#94a3b8}.keyboard-hint{color:#64748b}.detail-panel,.pdf-panel,.shortcuts-panel{background:linear-gradient(130deg,#111f34,#091322);border-color:#94a3b840;border-radius:18px}.detail-header h2{letter-spacing:-.04em}.work-media,.work-media img{border-radius:10px}.work-media{overflow:hidden}.close-button{background:#0e1b2f;width:44px;height:44px}.case-study-section p,.detail-description{color:#cbd5e1}.stack>span{border-radius:5px}.modal-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:#030711e8}@keyframes deck-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (width>=851px) and (height<=850px){.page-panels{grid-template-rows:minmax(0,1fr)}.page-panel{scrollbar-width:thin;scrollbar-color:#64748b44 transparent;overscroll-behavior:contain;overflow-y:auto}.nav-item{height:44px}.selection-list{gap:5px}.selection-list>button{padding-block:10px}}@media (width>=851px) and (height<=680px){.nav-item{height:38px}.selection-list>button{padding-block:7px}}@media (width<=1320px) and (width>=851px){.brand-wordmark small{letter-spacing:0;font-size:9px}.app-topbar{gap:12px}.workspace-frame{inset:12px 8px}.nav-item{width:52px}}@media (prefers-reduced-motion:reduce){.page-panel,.project-inspector,.research-inspector{animation:none}.release-feature>img{transition:none}}@media (width<=850px){.portfolio-app,.portfolio-app[data-page=sound],.portfolio-app[data-page=lab]{--sidebar:0px;--rail:0px;--right:0px;--gutter:max(12px, env(safe-area-inset-left,0px));--mobile-player-height:52px;--mobile-nav-height:46px;grid-template-columns:minmax(0,1fr);padding-bottom:0}.app-body{grid-template-areas:"header""workspace""navigation""player";grid-template-rows:calc(46px + env(safe-area-inset-top,0px)) minmax(0, 1fr) var(--mobile-nav-height) calc(var(--mobile-player-height) + env(safe-area-inset-bottom,0px))}.app-sidebar,.workspace-status,.workspace-coordinates,.topbar-contact,.location,.topbar-divider,.shortcut-button{display:none}.app-topbar{padding:env(safe-area-inset-top,0px) max(12px, env(safe-area-inset-right,0px)) 0 var(--gutter);z-index:30;grid-area:header;justify-content:space-between;align-items:center;gap:8px;display:flex}.breadcrumb{flex:1;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.breadcrumb>span{font-family:var(--font-ui,Manrope, sans-serif);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;color:#fff;font-size:16px;font-weight:800;line-height:1}.breadcrumb>i{color:#64748b;font-size:13px;line-height:1}.breadcrumb>strong{color:#7dd3fc;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;line-height:1.2;overflow:hidden}.topbar-right{flex:none;align-items:center;gap:6px;display:flex}.language-button{background:linear-gradient(120deg,#16263b99,#0c172899);border:1px solid #94a3b82e;border-radius:9px;justify-content:center;align-items:center;gap:4px;min-width:52px;height:34px;min-height:34px;padding:0 9px;font-size:10px;line-height:1;display:inline-flex}.topbar-resume{border-radius:9px;gap:3px;height:34px;min-height:34px;padding:0 8px;font-size:10px}.workspace{touch-action:pan-y pinch-zoom;grid-area:workspace}.workspace button:not([data-no-swipe]),.workspace a:not([data-no-swipe]){touch-action:pan-y pinch-zoom;-webkit-user-drag:none}.workspace img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.workspace-frame{opacity:.55;border-radius:14px;inset:6px 4px}.central-study{z-index:-1;opacity:.72;width:134%;height:100%;max-height:680px;inset:50% auto auto 50%;transform:translate(-50%,-50%);-webkit-mask-image:radial-gradient(#000 34%,#000d 64%,#0000 90%);mask-image:radial-gradient(#000 34%,#000d 64%,#0000 90%)}.central-study:before,.study-cross,.study-top,.study-caption{display:none}.signal-sculpture,.signal-sculpture canvas{pointer-events:none;touch-action:pan-y pinch-zoom;cursor:default;inset:0}.page-panels{pointer-events:auto;touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#7088a044 transparent;flex-direction:column;gap:6px;transition:transform .16s cubic-bezier(.22,1,.36,1);display:flex;inset:6px;overflow:hidden auto;transform:none}.workspace[data-swiping=true] .page-panels{transform:translate3d(var(--swipe-offset,0px), 0, 0);will-change:transform;transition:none}.page-panel{touch-action:pan-y pinch-zoom;background:linear-gradient(155deg,#0e1d3054,#09132245 55%,#07101d61);border:1px solid #bae6fd29;border-radius:12px;flex-direction:column;flex:1 0 auto;width:100%;height:auto;min-height:0;max-height:none;padding:10px 12px;animation:.18s cubic-bezier(.22,1,.36,1) backwards mobile-page-enter;display:flex;box-shadow:inset 0 1px #e0f2fe1a}.portfolio-app[data-page=source] .panel-left,.portfolio-app[data-page=research] .panel-left,.portfolio-app[data-page=lab] .panel-left,.portfolio-app[data-page=sound] .panel-right{flex:none}.page-panel>.eyebrow{letter-spacing:.08em;color:#a7bfd0;margin-bottom:6px;font-size:9px;line-height:1.4}.page-panel>h1:not(.overview-title):not(.contact-title){display:none}.page-panel>h1.overview-title{letter-spacing:-.05em;line-height:1.06;display:block;margin:2px 0 6px!important;font-size:clamp(23px,6.4vw,27px)!important}.page-panel>h1>em{line-height:1.04}.intro-kicker{letter-spacing:.03em;color:#bae6fd;white-space:nowrap;gap:5px;margin-bottom:6px;font:600 8.5px IBM Plex Mono,monospace}.overview-intro,.panel-intro{color:#beccdb;max-width:none;margin:0 0 8px;font-size:12px;line-height:1.45}.portfolio-app[data-page=work] .panel-left>.panel-intro,.portfolio-app[data-page=resume] .panel-left>.panel-intro,.portfolio-app[data-page=research] .panel-left>.panel-intro,.portfolio-app[data-page=sound] .panel-left>.panel-intro,.portfolio-app[data-page=lab] .panel-left>.panel-intro{display:none}.primary-button{border-radius:8px;gap:10px;min-height:34px;padding:6px 12px;font-size:11.5px}.overview-actions{gap:6px}.overview-actions .primary-button{gap:6px;padding:6px 10px}.secondary-cta{border-radius:8px;gap:4px;min-height:34px;padding:6px 10px;font-size:11px}.panel-left>.primary-button,.panel-left>.text-link,.right-foot-link,.list-pagination,.experience-bottom,.resume-download,.document-links,.release-actions,.contact-location{margin-top:auto}.overview-disciplines{color:#acc1d1;gap:4px 8px;margin-top:8px;font-size:8.5px;line-height:1.35}.overview-foot{display:none}.module-launcher{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:auto;padding-top:8px;display:grid}.module-launcher>button{color:#7dd3fc;text-align:left;background:linear-gradient(145deg,#15314945,#0c1b3059);border:1px solid #b5c7d532;border-radius:9px;gap:2px;min-height:52px;padding:7px 8px;display:grid}.module-launcher>button>svg{width:14px;height:14px}.module-launcher strong{color:#f1f5f9;font-size:11.5px;font-weight:600;line-height:1.2}.module-launcher small{color:#91adc2;font:8.5px/1.2 IBM Plex Mono,monospace}.panel-card-heading{margin-bottom:6px}.panel-card-heading>.eyebrow,.panel-card-heading>.mono{font-size:8.5px}.now-card{background:#0b182947;border-radius:10px;padding:10px 12px}.now-card h2{flex-wrap:wrap;gap:0 6px;font-size:18px;line-height:1.18;display:flex}.now-card p{margin:5px 0 0;font-size:11.5px;line-height:1.45}.penn-status{gap:9px;margin-top:7px;padding-top:7px}.penn-status>img{width:26px;height:30px}.penn-status>span{font-size:8px;line-height:1.35}.penn-status strong{margin-top:2px;font-size:11px;line-height:1.25}.release-feature{aspect-ratio:auto;border-radius:10px;flex:1 0 58px;height:auto;min-height:58px;margin:7px 0}.release-feature>img{object-position:50% 39%}.release-feature-top{display:none}.release-feature-bottom{bottom:9px;left:12px;right:12px}.release-feature-bottom small{font-size:8px}.release-feature-bottom strong{margin-top:2px;font-size:13px}.release-play{width:26px;height:26px}.right-foot-link{padding-top:7px;font-size:11px}.selection-list{flex:1;align-content:stretch;gap:4px;margin-top:0}.project-inspector,.experience-card,.education-list,.research-inspector,.credit-card,.audio-project-story,.audio-workbench,.contact-card{flex-direction:column;flex:1;display:flex}.selection-list>button{background:#0b18294d;border-color:#bae6fd24;border-radius:8px;gap:8px;min-height:34px;padding:4px 8px}.selection-list strong{font-size:12px;line-height:1.25}.selection-list small{letter-spacing:.01em;color:#9cb3c7;margin-top:1px;font-size:9px;line-height:1.25}.selection-number{width:16px;font-size:9px}.selection-list>button>svg{width:13px}.list-pagination{color:#adc0d1;margin-top:auto;padding-top:6px;font-size:9px}.list-pagination button,.small-pager button{width:26px;height:26px}.project-preview{border-radius:9px;flex:1 0 104px;min-height:104px;max-height:164px;margin-bottom:6px;display:flex}.project-preview>img{aspect-ratio:2.2;object-fit:cover;object-position:top center;flex:1;width:100%;height:100%;min-height:104px;max-height:164px;display:block}.project-preview>span{width:26px;height:26px;bottom:8px;right:8px}.project-inspector h2{margin:2px 0 5px;font-size:16.5px;line-height:1.2}.project-inspector>p,.research-inspector>p,.audio-project-story>p{color:#b9cbdc;font-size:11.5px;line-height:1.45}.project-type{text-align:right;text-overflow:ellipsis;white-space:nowrap;max-width:48%;font-size:8px;line-height:1.3;overflow:hidden}.project-role{font-size:8.5px!important;line-height:1.3!important}.project-inspector>.primary-button{margin-top:auto}.tags{gap:4px;margin:7px 0 8px}.tags>span{padding:3px 6px;font-size:8.5px}.source-filters{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:6px 0 8px}.source-filters>button{min-height:32px;padding:5px 6px;font-size:11px}.source-filters>button>span{font-size:9px}.source-note{display:none}.text-link{min-height:24px;font-size:11.5px}.repository-list{flex:1;align-content:stretch;gap:5px}.repository-row{background:#0b18294d;border-radius:8px;padding:6px 10px}.repository-row>div{margin-bottom:2px}.repository-row h2{font-size:13px;line-height:1.2}.repository-row p{margin-top:1px;font-size:10.5px;line-height:1.3}.repository-row>small{margin-top:3px;font-size:8px}.experience-card{padding:6px 0 0}.experience-top{margin-bottom:6px}.experience-top>span,.experience-period{font-size:8.5px;line-height:1.35}.experience-card h2{margin-top:4px;font-size:16.5px;line-height:1.22}.experience-role{margin-top:2px;font-size:11px;line-height:1.35}.experience-card ul{margin:7px 0;padding-left:14px;font-size:11.5px;line-height:1.45}.experience-card li{margin-bottom:4px}.experience-bottom{gap:8px;margin-top:7px}.education-selector{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 8px;display:grid}.education-selector>button{color:#c9d7e3;background:#0b18294d;border:1px solid #b5c6d333;align-content:center;justify-items:center;gap:3px;min-height:54px;padding:5px 4px;display:grid}.education-selector img{object-fit:contain;width:26px;height:30px}.education-selector span{font-size:9.5px}.education-card:not(.school-selected){display:none}.education-card{align-items:flex-start;gap:10px;padding:8px 0;display:flex}.education-card>img{object-fit:contain;width:34px;height:40px}.education-card h2{font-size:14px;line-height:1.25}.education-card p{margin-top:2px;font-size:11px;line-height:1.35}.education-card small{font-size:9.5px;line-height:1.35}.resume-download{background:#0b18294d;gap:8px;margin:7px 0 0;padding:8px 10px}.resume-download>svg{width:18px;height:18px}.resume-download strong{font-size:11.5px}.resume-download span{font-size:9.5px;line-height:1.35}.resume-save{width:32px;height:32px}.research-list strong{font-size:12px;line-height:1.25}.research-list small{font-size:9px}.research-list>button{min-height:36px}.research-diagram{background:#0b18294d;border-radius:10px;flex:1 0 76px;justify-content:space-between;align-items:center;height:auto;min-height:76px;margin:4px 0 8px;padding:10px 14px;display:flex}.research-diagram>div{width:auto;min-width:132px;height:auto;min-height:48px;padding:6px 12px}.research-inspector>h2{margin:4px 0 5px;font-size:16px;line-height:1.22}.research-context{margin-top:6px;font-size:9.5px;line-height:1.4}.document-links{gap:5px;margin-top:7px}.document-links>button{min-height:32px;padding:6px 9px;font-size:11px}.sound-tabs{margin:0 0 6px}.sound-tabs>button{min-height:30px;padding:5px 8px;font-size:11px}.release-list{flex:1;align-content:stretch;gap:4px}.release-list>button{background:#0b18294d;gap:9px;min-height:42px;padding:5px 8px}.release-list>button>img{width:32px;height:32px}.release-list strong{font-size:12px;line-height:1.25}.release-list small,.release-list>button>small{font-size:9px}.release-list small{margin-top:1px}.artist-link{margin-top:8px;font-size:11.5px}.release-inspector{grid-template-columns:64px minmax(0,1fr);align-items:center;gap:2px 12px;display:grid}.release-inspector>.panel-card-heading{grid-column:1/-1;margin-bottom:4px}.release-art{aspect-ratio:1;border-radius:10px;grid-row:2/4;width:64px;height:64px}.release-art>img{object-position:50% 39%}.release-art>button{width:26px;height:26px;bottom:4px;right:4px}.release-art>button>svg{width:13px;height:13px}.release-inspector h2{grid-column:2;align-self:end;margin:0;font-size:17px;line-height:1.2}.release-inspector>p{grid-column:2;align-self:start;margin-top:3px;font-size:11px}.release-waveform{display:none}.release-actions{grid-column:1/-1;margin-top:8px;padding-top:7px}.release-actions .text-link{font-size:11.5px}.credit-card{min-height:0;padding:6px 0 0}.credit-card h2{margin-top:4px;font-size:16.5px}.credit-card>p{margin-top:5px;font-size:11.5px;line-height:1.45}.credit-card .experience-bottom{justify-content:flex-end}.audio-project-story>h2{margin:4px 0 5px;font-size:16.5px;line-height:1.22}.lab-project-selector{margin:4px 0 7px}.lab-project-selector>button{min-height:30px;padding:5px 8px;font-size:11px}.audio-project-story>.text-link{margin-top:auto;padding-top:7px}.signal-chain{display:none}.contact-title{line-height:1.08;display:block;margin:2px 0 6px!important;font-size:24px!important}.contact-card{border-top:0;padding-top:2px}.contact-email{overflow-wrap:anywhere;margin:5px 0;font-size:16px;line-height:1.3}.contact-card>.text-link{margin-top:4px;font-size:11.5px}.contact-links{margin-block:auto;padding-top:6px}.contact-links>a{gap:10px;min-height:46px;padding:8px 0}.contact-links>a>span{font-size:13px}.contact-links small{margin-top:1px;font-size:10px;line-height:1.3}.contact-location{margin-top:8px;font-size:11px;line-height:1.4}.contact-location small{font-size:8.5px;line-height:1.35}.mobile-nav-slot{z-index:25;grid-area:navigation;min-height:0;position:relative}.music-player{min-height:0;padding:5px max(12px, env(safe-area-inset-right,0px)) calc(5px + env(safe-area-inset-bottom,0px)) var(--gutter);z-index:34;grid-area:player;grid-template-rows:1fr;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.playing-track{align-self:center;gap:8px;min-width:0;min-height:36px}.playing-track>img{border-radius:7px;flex:none;width:32px;height:32px}.playing-track>span{min-width:0}.playing-track strong{text-overflow:ellipsis;white-space:nowrap;max-width:none;font-size:12px;overflow:hidden}.playing-track small{letter-spacing:.02em;white-space:nowrap;margin-top:2px;font-size:8.5px;line-height:1.25}.transport{display:contents}.transport-controls{align-self:center;gap:0}.transport-controls .icon-button{width:32px;height:34px}.transport-controls .icon-button>svg{width:14px;height:14px}.player-play{width:32px;height:32px;margin-inline:2px}.player-play>svg{width:13px;height:13px}.player-more{display:grid!important}.seek-control{gap:0;height:3px;position:absolute;top:0;left:0;right:0}.seek-time,.player-waveform{display:none}.seek-track{background:#94a3b822;width:100%;height:3px;min-height:3px;overflow:hidden}.seek-track:before{content:"";width:var(--progress,0%);background:linear-gradient(90deg,#38bdf8,#bae6fd);position:absolute;inset:0 auto 0 0}.seek-track:after{display:none}.seek-track>input{height:100%;min-height:3px}.player-options{right:var(--gutter);bottom:calc(100% + var(--mobile-nav-height) + 6px);background:#14253cf7;border:1px solid #b9cbd741;border-radius:12px;gap:8px;padding:12px;display:none;position:absolute;box-shadow:0 15px 35px #0006}.player-options.options-open{display:flex}.player-options .icon-button{width:38px;height:40px}.player-options .volume-slider{width:90px;min-height:28px;margin:0}.player-options .repeat-button{display:grid}.player-options .library-button{display:none}.player-error{bottom:calc(100% + var(--mobile-nav-height) + 6px);right:var(--gutter);border-radius:10px;max-width:calc(100% - 28px);padding:12px;font-size:11.5px;line-height:1.5}.toast{bottom:calc(150px + env(safe-area-inset-bottom,0px));border-radius:10px;max-width:calc(100% - 28px);font-size:12px}.shortcuts-panel{max-height:calc(var(--app-height,100dvh) - 24px);padding:20px 18px;overflow:auto}.shortcuts-heading h2{font-size:22px}.shortcut-pages{gap:12px 10px}.shortcut-pages>div{font-size:12px}.shortcut-utilities{gap:12px}.shortcut-note{font-size:11px;line-height:1.6}.detail-panel{touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch;padding:36px 16px 18px}.detail-hero{gap:14px;margin-top:4px}.detail-header h2{margin-top:8px;font-size:22px}.detail-header .eyebrow{font-size:9px}.detail-description,.case-study-section p{margin-top:8px;font-size:12.5px;line-height:1.6}.case-study-section h3,.detail-notes h3{font-size:11px}.detail-notes ul{font-size:12px;line-height:1.65}.stack>span{padding:5px 7px;font-size:9px}.work-media-caption,.detail-meta{font-size:10px}.pdf-title,.pdf-panel>.external-link{font-size:12px}@keyframes mobile-page-enter{0%{opacity:0;transform:translateX(calc(var(--page-direction,1) * 18px))}to{opacity:1;transform:none}}}@media (width<=850px) and (height<=700px){.portfolio-app,.portfolio-app[data-page=sound],.portfolio-app[data-page=lab]{--mobile-player-height:48px}.app-body{grid-template-rows:calc(42px + env(safe-area-inset-top,0px)) minmax(0, 1fr) var(--mobile-nav-height) calc(var(--mobile-player-height) + env(safe-area-inset-bottom,0px))}.page-panels{top:4px;bottom:4px}.music-player{padding-top:4px;padding-bottom:calc(4px + env(safe-area-inset-bottom,0px))}.page-panel{padding-top:9px}.page-panel>h1.overview-title{font-size:clamp(21px,6vw,24px)!important}}@media (width<=360px){.portfolio-app,.portfolio-app[data-page=sound],.portfolio-app[data-page=lab]{--gutter:max(10px, env(safe-area-inset-left,0px))}.app-topbar{gap:5px;padding-right:10px}.breadcrumb>strong,.breadcrumb>i{display:none}.playing-track>img{width:30px;height:30px}.playing-track{gap:6px}.playing-track strong{font-size:11px}.playing-track small{font-size:7.5px}.transport-controls .icon-button{width:30px}.player-play{width:30px;height:30px;margin-inline:0}.contact-email{font-size:15px}}@media (prefers-reduced-motion:reduce){.page-panels{transition:none}.page-panel{animation:none}}.portfolio-app{--font-ui:Manrope, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;--ui-copy:#c8d4e2;--ui-secondary:#afc0d2;font-synthesis:none;font-kerning:normal}.portfolio-app .nav-item,.portfolio-app .primary-button,.portfolio-app .mobile-panel-switch>button,.portfolio-app .mobile-nav-label,.portfolio-app .module-launcher strong{letter-spacing:-.01em;font-weight:600}.portfolio-app .page-panel>h1{font-weight:650}.portfolio-app .page-panel>h1>em{letter-spacing:-.04em;color:#bae6fd;font-weight:650}.portfolio-app .overview-intro,.portfolio-app .panel-intro{color:var(--ui-copy);letter-spacing:-.005em;font-weight:450}.portfolio-app .selection-list strong{letter-spacing:-.01em;font-weight:600}.portfolio-app .selection-list small{font-family:var(--font-ui);color:var(--ui-secondary);letter-spacing:0}.portfolio-app .eyebrow{letter-spacing:.065em}.portfolio-app .playing-track small{letter-spacing:.025em}.portfolio-app .seek-control,.portfolio-app .peek-count,.portfolio-app .selection-number{font-variant-numeric:tabular-nums}@media (width<=850px){.portfolio-app .page-panel{background:linear-gradient(155deg,#122237ed,#0c1926e6 65%,#091421d9)}.portfolio-app .page-panel>.eyebrow{letter-spacing:.06em;color:#b6c9da;font-size:9px;line-height:14px}.portfolio-app .page-panel>h1.overview-title{letter-spacing:-.04em;line-height:1.06}.portfolio-app .intro-kicker{letter-spacing:.065em;font-size:9px;line-height:14px}.portfolio-app .overview-intro{font-size:12px;line-height:18px}.portfolio-app .panel-intro{font-size:11.5px;line-height:17px}.portfolio-app .overview-disciplines{letter-spacing:.025em;color:var(--ui-secondary);font-size:8.5px;line-height:13px}.portfolio-app .selection-list strong{font-size:12px;line-height:16px}.portfolio-app .selection-list small{margin-top:2px;font-size:9.5px;line-height:13px}.portfolio-app .selection-number,.portfolio-app .module-launcher small,.portfolio-app .tags>span,.portfolio-app .peek-count{font-size:9px;line-height:13px}.portfolio-app .project-inspector>p:not(.project-role),.portfolio-app .research-inspector>p,.portfolio-app .audio-project-story>p{color:var(--ui-copy);font-size:11.5px;font-weight:450;line-height:17px}.portfolio-app .mobile-nav-label{font-size:12.5px;line-height:16px}.portfolio-app .playing-track strong{font-size:12px;line-height:15px}.portfolio-app .playing-track small{color:var(--ui-secondary);font-size:8.5px;line-height:12px}.portfolio-app .mobile-menu-item>span{font-weight:600}}.portfolio-app:lang(ko) .page-panel h1,.portfolio-app:lang(ko) .page-panel h2,.portfolio-app:lang(ko) .overview-intro,.portfolio-app:lang(ko) .panel-intro,.portfolio-app:lang(ko) .selection-list strong,.portfolio-app:lang(ko) .mobile-panel-switch>button,.portfolio-app:lang(ko) .mobile-nav-label{letter-spacing:0;word-break:keep-all;overflow-wrap:anywhere}@media (hover:none){.portfolio-app .primary-button:hover{transform:none}}.portfolio-app .project-inspector h2,.portfolio-app .audio-project-story h2,.portfolio-app .repository-row h2,.portfolio-app .selection-list strong{overflow-wrap:anywhere}.portfolio-app .selection-list>button>span:nth-child(2){min-width:0}.portfolio-app .contact-location>span{white-space:normal}@media (width>=851px) and (width<=1450px){.portfolio-app .location{display:none}}@media (width<=850px){.portfolio-app .project-inspector h2{font-size:17px;line-height:1.22}.portfolio-app .overview-foot button{white-space:normal}}
