:root{color-scheme:dark;--bg:#1c1c1c;--surface:#242424;--raised:#2b2b2b;--line:#404040;--text:#f2f2ee;--muted:#aaa;--dim:#888;--radius:14px;font-family:Arial,Helvetica,sans-serif;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-size:var(--type-label);line-height:1.5}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}button:focus-visible,a:focus-visible{outline:2px solid white;outline-offset:5px}button:disabled{cursor:default;opacity:.3}button{color:inherit}h1,h2,h3,p{margin:0}button svg{width:18px;height:18px}svg{vertical-align:middle}header{max-width:1080px;margin:auto;padding:32px 36px;display:flex;align-items:center;justify-content:space-between;gap:20px}.wordmark{font-size:var(--type-body);font-weight:700;letter-spacing:-.6px}.top-links{display:flex;gap:24px;align-items:center;color:var(--muted);font-size:var(--type-label)}.draft-tag{border:1px solid var(--line);border-radius:30px;padding:5px 10px;font-size:var(--type-label);letter-spacing:.04em;color:var(--muted);white-space:nowrap}.home{max-width:940px;margin:auto;padding:66px 36px 0}.hero{max-width:720px}.portrait{height:112px;width:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#303030;border:1px dashed #666;border-radius:24px;transform:rotate(-9deg);margin-bottom:42px;color:#b8b8b8}.portrait strong{font-size:var(--type-section);font-weight:500;letter-spacing:-2px}.portrait span{font-size:var(--type-label)}.hero h1{font-size:var(--type-body);font-weight:600;letter-spacing:-.6px;margin-bottom:14px}.intro{font-size:var(--type-display);line-height:1.25;letter-spacing:-1.4px;font-weight:500}.intro span{color:var(--muted)}.hero-note{color:var(--muted);font-size:var(--type-label);margin-top:22px}.hero-note span{display:block}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:16px}.section-heading h2{font-size:var(--type-label);font-weight:400;color:var(--muted)}.eyebrow{font-size:var(--type-label);letter-spacing:.12em;color:var(--muted);font-weight:500}.selected{margin-top:76px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.project-card{display:block}.project-card:hover{text-decoration:none}.project-card:hover .project-art{background:#303030;border-color:#666}.project-art{aspect-ratio:1.52;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;transition:background .2s,border-color .2s;overflow:hidden;padding:24px}.placeholder-label{font-size:var(--type-label);color:var(--dim);letter-spacing:.02em}.screen-group{display:flex;align-items:center;gap:13px}.phone{height:134px;width:70px;border:1px solid #6c6c6c;border-radius:12px;padding:15px 8px;display:flex;flex-direction:column;gap:7px;background:#2d2d2d}.phone:nth-child(2){transform:translateY(-9px)}.skeleton-line{height:4px;border-radius:2px;background:#626262;width:100%}.skeleton-line.short{width:57%}.skeleton-block{height:38px;background:#454545;border-radius:4px;margin:6px 0}.skeleton-button{height:13px;background:#777;border-radius:4px;margin-top:auto}.desktop-frame{width:220px;max-width:100%;border:1px solid #686868;border-radius:9px;background:#2c2c2c;padding:12px}.desktop-top{border-bottom:1px solid #474747;padding-bottom:9px;display:flex;gap:4px}.desktop-top i{height:4px;width:4px;border-radius:50%;background:#777}.waveform{height:75px;display:flex;align-items:center;justify-content:center;gap:5px}.waveform i{width:4px;background:#999;border-radius:3px;height:var(--h)}.project-title{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:var(--type-body);letter-spacing:-.4px;margin-top:19px}.project-title span:last-child{font-weight:400;color:#999;font-size:var(--type-body)}.project-description{color:var(--muted);font-size:var(--type-label);margin-top:6px}.project-meta{display:flex;gap:14px;color:#909090;font-size:var(--type-label);margin-top:13px}.experience{margin-top:76px;scroll-margin-top:30px}.experience-list{border-bottom:1px solid var(--line)}.experience-row{display:grid;grid-template-columns:130px 165px 1fr;gap:32px;border-top:1px solid var(--line);padding:34px 0;align-items:start}.company-logo{font-size:var(--type-body);font-weight:700;letter-spacing:-.7px;line-height:1}.dropbox-logo{font-weight:600}.edmodo-logo{font-size:var(--type-body);letter-spacing:-1.2px}.ueno-logo{font-size:var(--type-body);letter-spacing:-1.1px;text-transform:lowercase}.experience-role h3{font-size:var(--type-label);font-weight:500;line-height:1.2}.experience-role p{font-size:var(--type-label);color:var(--dim);margin-top:7px}.experience-copy{font-size:var(--type-label);line-height:1.6;color:var(--muted);max-width:540px}.building{margin-top:76px}.build-row{border-top:1px solid var(--line);padding:22px 0;display:flex;justify-content:space-between;align-items:center;gap:20px}.build-row h3{font-size:var(--type-body);font-weight:500}.build-row p{font-size:var(--type-label);color:var(--muted);margin-top:4px}.status{font-size:var(--type-label);border:1px solid var(--line);border-radius:30px;padding:4px 10px;white-space:nowrap;color:var(--muted)}.about{padding:64px 0;margin-top:18px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 2fr;gap:35px;scroll-margin-top:30px}.about h2{font-size:var(--type-label);color:var(--muted);font-weight:400}.about p{font-size:var(--type-body);line-height:1.55;letter-spacing:-.2px}.about .muted{font-size:var(--type-label);margin-top:15px}.footer{max-width:940px;margin:auto;padding:24px 36px 36px;display:flex;justify-content:space-between;gap:20px;color:var(--dim);font-size:var(--type-label);scroll-margin-top:30px}.footer-note{color:#666}.muted{color:var(--muted)}.small{font-size:var(--type-label)}.case-header{max-width:1320px;padding-top:24px;padding-bottom:24px;border-bottom:1px solid #333}.back-link{font-size:var(--type-label);color:var(--muted);display:flex;gap:10px;align-items:center}.case-header-center{font-size:var(--type-label);display:flex;gap:12px;align-items:center}.case-header-center .muted{font-size:var(--type-label)}.case-main{max-width:1200px;margin:auto;padding:32px 36px 40px}.case-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.case-toolbar .eyebrow{font-size:var(--type-label)}.view-tabs{display:flex;border:1px solid var(--line);padding:4px;border-radius:9px;gap:4px}.view-tabs a{font-size:var(--type-label);padding:7px 13px;border-radius:5px;color:var(--muted);white-space:nowrap}.view-tabs a:hover{text-decoration:none;background:#303030}.view-tabs a[aria-current="page"]{background:#444;color:white}.actions{display:flex;gap:18px;align-items:center}.text-button{border:0;background:none;padding:8px 0;font-size:var(--type-label);color:var(--muted)}.text-button:hover{color:white}.slide{border:1px solid var(--line);border-radius:14px;background:#242424;min-height:525px;padding:48px;display:flex;flex-direction:column}.slide-content{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;flex:1;align-items:center;padding:34px 0}.slide h1{font-size:var(--type-display);line-height:1.1;letter-spacing:-1.5px;font-weight:500;margin-bottom:22px;max-width:540px}.slide .description{color:var(--muted);font-size:var(--type-label);line-height:1.6;max-width:480px}.slide .project-art{min-height:245px;aspect-ratio:1.38;background:#2a2a2a;border-style:dashed}.slide-footer{display:flex;gap:30px;border-top:1px solid var(--line);padding-top:21px}.slide-footer dt{font-size:var(--type-label);color:var(--dim);margin-bottom:3px}.slide-footer dd{margin:0;font-size:var(--type-label)}.slide-footer dl{margin:0;flex:1}.slide-navigation{display:flex;justify-content:space-between;align-items:center;margin-top:22px;gap:16px}.slide-caption{font-size:var(--type-label);color:var(--muted)}.slide-controls{display:flex;gap:9px;align-items:center}.icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;border:1px solid var(--line);border-radius:8px;background:transparent;font-size:var(--type-body)}.icon-button:hover:not(:disabled){background:#343434}.slide-count{font-size:var(--type-label);color:var(--muted);margin:0 12px;font-variant-numeric:tabular-nums}.case-bottom{display:flex;justify-content:space-between;margin-top:36px;color:var(--dim);font-size:var(--type-label);gap:20px}.overview-heading{margin:24px 0 30px}.overview-heading h1{font-size:var(--type-section);font-weight:500;letter-spacing:-1px}.overview-heading p{font-size:var(--type-label);color:var(--muted);margin-top:8px}.overview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:27px 22px}.thumb-link:hover{text-decoration:none}.thumb-link:hover .thumb{border-color:#aaa;background:#303030}.thumb{aspect-ratio:1.6;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:23px;display:flex;flex-direction:column;justify-content:space-between;transition:border-color .2s}.thumb .eyebrow{font-size:var(--type-label)}.thumb h2{font-size:var(--type-body);line-height:1.15;font-weight:500;letter-spacing:-.5px;max-width:230px}.thumb-bars{display:flex;gap:5px;margin-top:15px}.thumb-bars i{height:6px;background:#505050;border-radius:3px;flex:1}.thumb-bars i:last-child{flex:.6}.thumb-caption{display:flex;gap:12px;font-size:var(--type-label);color:var(--muted);margin-top:11px}.thumb-caption span:first-child{color:#777}.metric-visual{height:230px;border:1px dashed #555;border-radius:12px;display:flex;flex-direction:column;justify-content:center;padding:30px;background:#292929;gap:16px}.metric-visual strong{font-size:var(--type-display);letter-spacing:-2px;font-weight:500}.metric-visual p{font-size:var(--type-label);color:var(--muted)}.metric-visual .placeholder-label{border-top:1px solid var(--line);padding-top:15px}.two-states{display:flex;gap:20px;align-items:center;justify-content:center}.state-placeholder{background:#303030;border:1px solid #606060;border-radius:8px;height:138px;width:90px;display:flex;align-items:center;justify-content:center;font-size:var(--type-label);color:#aaa}.evidence{border:1px dashed #555;border-radius:12px;background:#292929;min-height:250px;padding:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center}.evidence p{font-size:var(--type-label);color:#aaa;max-width:220px}.evidence .outline-icon{border:1px solid #777;border-radius:8px;width:58px;height:58px;display:grid;place-items:center;color:#bbb;font-size:var(--type-body)}.skip{position:fixed;top:-60px;left:20px;padding:10px;background:white;color:black;z-index:100}.skip:focus{top:10px}dialog{width:min(570px,calc(100% - 32px));border:1px solid #555;background:#252525;color:var(--text);border-radius:16px;padding:28px}dialog::backdrop{background:#000a;backdrop-filter:blur(5px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.video-placeholder{aspect-ratio:16/9;border:1px dashed #666;background:#2d2d2d;border-radius:10px;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;color:#999;font-size:var(--type-label)}.play-large{font-size:var(--type-display);color:#bbb}dialog h2{font-size:var(--type-body);letter-spacing:-.6px;margin:24px 0 12px}dialog p{font-size:var(--type-label);color:#bbb;margin-top:12px}body:has(dialog[open]){overflow:hidden}
@media(min-width:1450px){.home{padding-top:82px}.case-main{padding-top:40px}.slide{min-height:590px}}
@media(max-width:760px){header{padding:24px;gap:14px}.home{padding:35px 24px 0}.hero h1{font-size:var(--type-body)}.intro{letter-spacing:-1px}.portrait{width:88px;height:88px;margin-bottom:32px}.top-links{gap:12px;font-size:var(--type-label)}.top-links .draft-tag{display:none}.hero-note{max-width:270px}.selected{margin-top:52px}.project-grid{gap:30px;grid-template-columns:1fr}.project-art{aspect-ratio:1.55}.experience{margin-top:56px}.experience-row{grid-template-columns:1fr auto;gap:12px 20px;padding:28px 0}.company-logo{grid-column:1}.experience-role{grid-column:1/-1;text-align:left}.experience-copy{grid-column:1/-1;font-size:var(--type-label);margin-top:8px}.building{margin-top:56px}.about{grid-template-columns:1fr;gap:18px;padding:40px 0}.footer{padding:16px 24px 26px}.case-header-center .muted{display:none}.case-header{padding:18px}.case-main{padding:24px 18px}.case-toolbar{align-items:flex-start}.actions{flex-direction:column-reverse;align-items:flex-end;gap:8px}.case-toolbar>.eyebrow{max-width:90px;line-height:1.7;padding-top:10px}.slide{padding:26px;min-height:0}.slide-content{grid-template-columns:1fr;gap:28px;padding:25px 0}.slide h1{font-size:var(--type-section);letter-spacing:-1px}.slide .description{font-size:var(--type-label)}.slide .project-art{min-height:215px;aspect-ratio:1.5}.slide-footer{flex-wrap:wrap;gap:18px}.slide-footer dl{min-width:42%}.slide-caption{max-width:145px;font-size:var(--type-label)}.slide-count{margin:0 2px}.overview-grid{grid-template-columns:repeat(2,1fr);gap:22px 14px}.thumb{aspect-ratio:1.2;padding:15px}.thumb h2{font-size:var(--type-label);letter-spacing:-.3px}.overview-heading h1{font-size:var(--type-section)}.case-bottom .keyboard-hint{display:none}.case-bottom{margin-top:26px}.case-header .draft-tag{font-size:var(--type-label)}.case-header-center{font-size:var(--type-label)}.view-tabs a{padding:6px 9px}.build-row{align-items:flex-start}.build-row p{max-width:260px}}
@media(max-width:430px){.wordmark{font-size:var(--type-label)}.top-links{gap:10px;font-size:var(--type-label)}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

@media(min-width:900px){.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.project-grid .project-art{padding:18px}.project-grid .phone{width:49px;height:105px;padding:12px 6px}.project-grid .screen-group{gap:9px}.project-grid .project-title{font-size:var(--type-body)}.project-grid .project-meta{flex-wrap:wrap;gap:4px 10px}}
.about+.experience{margin-top:0;margin-bottom:48px}
.experience{border-top:1px solid var(--line);padding-top:24px}
.experience-list>.experience-row:first-child{border-top:0;padding-top:8px}
.earlier-experience{padding:40px 0}
.earlier-experience h3{font-size:var(--type-body);font-weight:600;color:var(--text);margin-bottom:24px}
.earlier-experience .experience-copy{max-width:none;margin-bottom:24px}
.earlier-companies{display:flex;flex-wrap:wrap;gap:16px 32px;font-size:18px;font-weight:600;line-height:1.4}
.experience-top .company-logo{overflow:hidden}
.experience-top .company-logo img{display:block;width:100%;height:100%;object-fit:cover}
.work-count{display:inline-flex;align-items:center;gap:10px;font-variant-numeric:tabular-nums;line-height:1}
.count-dash{display:block;width:14px;height:1px;background:currentColor}

.project-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid #ffffff1f;border-radius:16px;background:#242424;transition:border-color .2s,background .2s}
.project-card:hover{border-color:#777;background:#292929}
.project-card .project-art{flex:none;border:0;border-radius:0;background:#242424}
.project-card-body{display:flex;flex-direction:column;flex:1;padding:22px}
.project-card-body .project-title{margin-top:0;align-items:flex-start;gap:12px}
.project-card-body .project-description{margin-top:10px;margin-bottom:20px;line-height:1.5}
.project-card-body .project-meta{margin-top:auto;flex-wrap:wrap;gap:5px 12px}
.project-card-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:auto}
.project-card-footer .project-meta{margin:0;display:flex;flex-direction:column;font-size:var(--type-label)}
.view-cta{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#f5f5f2;color:#161616;font-size:var(--type-label);font-weight:600;padding:10px 20px;flex-shrink:0}
.project-card:hover .view-cta{background:#fff}
.project-grid.case-collection{grid-template-columns:minmax(0,1fr);width:100%;min-width:0}
/* Match the reference's near-square, fluid feature image. */
:root{--feature-image-ratio:100/103;--feature-image-radius:16px}
.case-photo{margin:0 0 24px;width:100%;aspect-ratio:var(--feature-image-ratio);border-radius:var(--feature-image-radius);overflow:hidden}
.case-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
@media(min-width:1000px){.home .selected>.case-photo{grid-column:1;grid-row:2;margin:0}}
.case-collection-card .collection-art{width:100%;height:auto;aspect-ratio:var(--feature-image-ratio);min-height:0;max-height:none;border-radius:var(--feature-image-radius);padding:32px;overflow:hidden}
.case-collection-card .collection-art>img{display:block;width:100%;height:100%;object-fit:cover}
.collection-art .desktop-frame{width:46%;max-width:360px}
.collection-preview{display:flex;flex-direction:column;gap:12px;padding:24px 8px}
.collection-preview .skeleton-block{height:72px}
.case-collection-card .project-card-body{flex-direction:row;align-items:center;justify-content:space-between;gap:24px}
.case-collection-card .project-description{margin-bottom:0}
@media(max-width:760px){.case-collection-card .collection-art{padding:20px}.collection-art .desktop-frame{width:65%}.collection-preview{padding:14px 4px}.collection-preview .skeleton-block{height:36px}.case-collection-card .project-card-body{gap:16px}}
@media(max-width:760px){.project-grid{gap:24px}.project-card-body{padding:24px}}

.experience-detail{min-width:0;grid-column:3}
.experience-media{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:420px;margin-top:22px}
.experience-visual{margin:0;min-width:0}
.experience-thumbnail{aspect-ratio:16/10;border:1px dashed #575757;border-radius:12px;background:#282828;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#939393}
.experience-thumbnail span{font-size:var(--type-label)}
.experience-list .experience-row{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:36px 0 48px;border-color:#ffffff1f}
.experience-list .experience-row:first-child{padding-top:16px}
.experience-top{display:flex;align-items:center;justify-content:space-between;width:100%;gap:24px;margin-bottom:24px}
.experience-top .company-logo{display:flex;align-items:center;justify-content:center;width:68px;height:68px;border-radius:16px;background:#292929;border:0;font-size:var(--type-label);letter-spacing:-.5px;flex-shrink:0}
.experience-dates{font-size:var(--type-label);color:var(--muted);background:#292929;border-radius:999px;padding:6px 12px;white-space:nowrap}
.experience-list .experience-role h3{font-size:var(--type-body);font-weight:600;line-height:1.4}
.experience-list .experience-role p{font-size:var(--type-label);color:var(--text);margin-top:0;line-height:1.2}
.experience-list .experience-detail{width:100%;margin-top:24px}
.experience-list .experience-copy{max-width:none;font-size:var(--type-body);line-height:1.4;color:var(--muted)}
.experience-list{min-width:0;width:100%}
.experience-list .experience-media{width:100%;max-width:none;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row;gap:32px 4px;margin-top:48px}
.experience-list .experience-media:empty{display:none;margin:0}
.experience-list .experience-thumbnail{width:100%;height:auto;aspect-ratio:1;border:0;border-radius:16px;background:#292929;overflow:hidden}
.experience-list .experience-thumbnail>img{display:block;width:100%;height:100%;object-fit:cover}
.experience-list .ueno-experience-media .experience-thumbnail{aspect-ratio:4/3;background:#f0f0f0}
@media(max-width:760px){.experience-list .experience-row{padding:32px 0}.experience-list .experience-copy{font-size:var(--type-label)}.experience-list .experience-media{gap:4px;margin-top:32px}}
@media(max-width:760px){.experience-detail{grid-column:1/-1}.experience-media{gap:12px;margin-top:18px;max-width:420px}}

.portrait{position:relative;overflow:hidden;border:0}
.portfolio-header{max-width:940px;display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:32px 36px 0;align-items:start}
.header-identity p,.header-summary{font-size:var(--type-label);line-height:1.5;color:var(--muted)}
.portfolio-header .wordmark{font-size:var(--type-label);font-weight:500;letter-spacing:-.3px}
.header-identity p{margin-top:4px}
.header-identity{display:flex;align-items:center;gap:16px}
.header-identity .portrait{width:56px;height:56px;flex-shrink:0;margin:0;border-radius:14px;transform:none}
.portfolio-header,.home,.footer{max-width:none}
@media(min-width:1000px){
 .portfolio-header{grid-template-columns:1fr 1fr;gap:32px;padding:32px}
 .portfolio-header+.home{padding:64px 32px 0}
 .portfolio-header+.home .hero{max-width:none;width:calc(50% - 16px);margin-left:calc(50% + 16px)}
 .portfolio-header+.home .selected,.home .building,.home .about,.home .experience{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:32px;align-items:start}
 .home .section-heading{grid-column:1;margin:0;align-items:flex-start}
 .home .section-heading h2,.home .about>h2{font-size:var(--type-body);color:var(--text);font-weight:500}
 .selected .case-collection{grid-column:2}
 .home .selected>.section-heading{grid-column:2;grid-row:1;margin-bottom:24px}
 .home .selected>.case-collection{grid-row:2}
 .home .building{row-gap:0}
 .building>.section-heading{grid-column:1;grid-row:1/7}
 .home .building .build-row{grid-column:2;grid-template-columns:minmax(0,1fr) 120px;padding:24px 0}
 .home .building .build-row-desktop{grid-template-columns:minmax(0,1fr) 203px}
 .home .building .build-row:nth-of-type(3){border-top:1px solid #ffffff1f}
 .home .building .build-row:nth-of-type(2){padding-top:0}
 .home .about{margin-top:64px;padding:40px 0 64px}
 .home .about>div{grid-column:2}
 .home .experience{padding-top:32px}
 .experience-list{grid-column:2}
 .experience>.earlier-experience{grid-column:2}
 .experience-list .experience-row:first-child{padding-top:0}
 .home .contact{grid-template-columns:1fr 1fr;column-gap:32px}
 .footer{padding-left:32px;padding-right:32px}
}
.portfolio-header .top-links{grid-column:1/-1;justify-content:flex-start;gap:24px;padding-top:16px;flex-wrap:wrap;border-top:1px solid #ffffff1f}
.portfolio-header+.home{padding-top:56px}
.portfolio-header+.home .hero{max-width:none}
.portfolio-header+.home .hero h1.intro{font-size:var(--type-display);line-height:1.15;font-weight:1000;letter-spacing:-1.5px;margin:0}
.portfolio-header+.home .selected{margin-top:48px}
.about-identity .portrait{margin:32px 0 0}
@media(max-width:760px){.portfolio-header{padding:24px 24px 0;grid-template-columns:1fr;gap:20px}.portfolio-header .top-links{padding-top:8px;gap:20px}.portfolio-header+.home{padding-top:40px}.portfolio-header+.home .selected{margin-top:32px}.about-identity{display:flex;align-items:center;justify-content:space-between;gap:24px}.about-identity .portrait{margin:0;width:80px;height:80px;border-radius:18px;flex-shrink:0}}
.contact{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:64px;row-gap:10px;align-items:start;border-top:1px solid #ffffff1f;padding:80px 0;margin-top:16px}
.contact-email{grid-column:1;font-size:var(--type-display);line-height:1.25;letter-spacing:-1px;color:var(--dim);text-underline-offset:6px;overflow-wrap:anywhere}
.contact-socials{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;gap:12px;font-size:var(--type-section);line-height:1.2;font-weight:700;letter-spacing:-1px;color:var(--text)}
.contact h2{grid-column:1;font-size:var(--type-section);line-height:1.2;font-weight:400;letter-spacing:-1px}
.contact p{font-size:var(--type-label);color:var(--muted);margin-top:8px}
.contact-cta{min-height:44px;padding:12px 24px;gap:8px;white-space:nowrap}
.contact-cta:hover{text-decoration:none;background:#fff}
@media(max-width:760px){.contact{grid-template-columns:1fr;gap:16px;padding:56px 0}.contact h2{font-size:var(--type-section)}.contact-email{font-size:var(--type-body)}.contact-socials{grid-column:1;grid-row:auto;margin-top:16px;font-size:var(--type-section);gap:12px}}
.portrait img{position:absolute;width:205%;max-width:none;height:auto;left:50%;top:50%;transform:translate(-47%,-34%)}
.building{display:grid;grid-template-columns:1fr;gap:0}
.building .section-heading{grid-column:1/-1;margin-bottom:4px}
.building .build-row{display:grid;grid-template-columns:minmax(0,1fr) 220px;align-items:center;gap:24px;border:0;border-radius:0;padding:24px 0;background:transparent}
.building .build-row+.build-row{border-top:1px solid #ffffff1f}
.build-visual{min-height:190px;display:flex;align-items:center;justify-content:center;padding:12px;color:var(--dim)}
.build-visual .phone{width:82px;height:164px;flex-shrink:0;transform:none}
.building .build-row-desktop{grid-template-columns:minmax(0,1fr) 203px}
.build-visual.build-visual-desktop{min-height:0;padding:0;aspect-ratio:16/10;color:#939393}
.build-visual-desktop .desktop-frame{width:100%;aspect-ratio:16/10;border-color:#ffffff30;padding:10px;display:flex;flex-direction:column}
.desktop-content{display:flex;flex:1;flex-direction:column;gap:7px;padding-top:10px}
.desktop-content .skeleton-block{flex:1;min-height:8px;height:auto;margin:0}
.build-content{min-width:0}
.building .build-row h3{font-size:var(--type-body)}
.building .build-row p{line-height:1.5;margin-top:7px;max-width:390px}
.building .build-content>.status{display:inline-flex;margin-top:16px}
.status.launched{color:var(--text);border-color:#727272;background:#303030}
.status.launched{display:inline-flex;align-items:center;gap:8px}
.status.launched::before{content:'';width:7px;height:7px;border-radius:50%;background:#68dc8b;flex-shrink:0;animation:launched-pulse 2.4s ease-out infinite}
@keyframes launched-pulse{0%,100%{box-shadow:0 0 0 0 #68dc8b00}25%{box-shadow:0 0 0 0 #68dc8b55}75%{box-shadow:0 0 0 5px #68dc8b00}}
@media(prefers-reduced-motion:reduce){.status.launched::before{animation:none}}
@media(max-width:760px){.building{gap:0}.building .section-heading{margin-bottom:6px}.building .build-row{grid-template-columns:minmax(0,1fr) 100px;gap:16px;padding:20px 0}.building .build-row p{max-width:none}.build-visual{min-height:170px;padding:12px 6px}.build-visual .phone{width:70px;height:140px}}
@media(max-width:760px){.building .build-row-desktop{grid-template-columns:minmax(0,1fr) minmax(0,calc((min(100%,420px) - 12px)/2))}}

/* Building projects share two columns on desktop and one on mobile. */
@media(min-width:761px){.building{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}.building .build-row{grid-template-columns:minmax(0,1fr) 90px;gap:16px}.building .build-row-desktop{grid-template-columns:minmax(0,1fr) 150px}.building .build-row:nth-of-type(3){border-top:0}}
.building .build-visual:not(.build-visual-desktop){justify-content:flex-end;padding-right:0}

/* A full-window slide stage with persistent navigation. */
.presentation-mode .case-header{max-width:none;border:0;padding:20px 32px;min-height:76px}
.presentation-mode .case-header .back-link{display:none}
.presentation-close{display:flex;align-items:center;justify-content:center;font-size:var(--type-body);border-radius:50%;text-decoration:none!important}
.case-switch-label{font-size:var(--type-label);color:var(--muted)}
#case-switch{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 12px;max-width:240px}
@media(max-width:480px){.case-switch-label{display:none}#case-switch{max-width:230px}}
.presentation-mode .case-main{max-width:none;padding:0 48px 96px}
.presentation-mode .case-toolbar{margin-bottom:12px}
.presentation-mode .case-toolbar>.eyebrow{display:none}
.presentation-mode .case-toolbar .actions{margin-left:auto}
.presentation-mode .slide{border:0;border-radius:0;background:transparent;padding:24px 0;min-height:calc(100svh - 240px)}
.presentation-mode .slide-content{gap:64px}
.presentation-mode .slide-footer{border:0}
.presentation-mode .case-bottom{display:none}
.presentation-mode .slide-navigation{position:fixed;bottom:0;left:0;right:0;z-index:10;background:var(--bg);padding:16px 32px;margin:0;min-height:76px}
.slide-dots{display:flex;align-items:center;justify-content:center;gap:2px;position:absolute;left:50%;transform:translateX(-50%)}
.slide-dots a{display:flex;align-items:center;justify-content:center;min-width:28px;height:44px}
.slide-dots a span{width:6px;height:6px;background:#656565;border-radius:10px;transition:width .2s,background .2s}
.slide-dots a[aria-current] span{width:24px;background:var(--text)}
.presentation-mode .slide-controls{margin-left:auto}
.portfolio-header .header-identity .wordmark,.portfolio-header .header-identity p,.portfolio-header .header-summary{font-size:22px;line-height:26px;letter-spacing:-.02em;font-weight:400}
:root{--type-display:64px;--type-section:32px;--type-body:18px;--type-label:12px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-section:64px;--space-copy:24px}
body{font-size:var(--type-body);line-height:1.4}
.portfolio-header+.home .hero h1.intro{font-size:var(--type-display);line-height:1.0625;letter-spacing:-.04em;font-weight:1000;max-width:none}
.home .section-heading h2,.home .about>h2,.earlier-experience h3,.contact h2,.contact-socials,.contact-email{font-size:var(--type-section);line-height:1.2;letter-spacing:-.02em}
.home .section-heading h2,.home .about>h2,.earlier-experience h3{font-weight:700;color:var(--text)}
.home .project-title,.home .build-row h3,.experience-list .experience-role h3{font-size:var(--type-body);line-height:1.4;letter-spacing:-.02em;font-weight:600}
.home .project-description,.home .build-row p,.home .about p,.experience-list .experience-copy,.earlier-experience .experience-copy{font-size:var(--type-body);line-height:1.4;letter-spacing:-.02em;font-weight:400}
.header-identity p,.header-summary,.portfolio-header .wordmark,.top-links,.experience-dates,.experience-list .experience-role p,.status,.placeholder-label,.view-cta,.footer{font-size:var(--type-label);line-height:1.2;letter-spacing:0}
.portfolio-header{gap:var(--space-xl);padding:var(--space-xl)}
.portfolio-header .top-links{padding-top:var(--space-md);gap:var(--space-lg)}
.portfolio-header+.home{padding-top:var(--space-section)}
.portfolio-header+.home .selected,.home .building{margin-top:var(--space-section)}
.home .about{margin-top:var(--space-section);padding:var(--space-xl) 0 var(--space-section);gap:var(--space-xl)}
.home .experience{padding-top:var(--space-xl);margin-bottom:var(--space-section)}
.home .section-heading{margin-bottom:var(--space-lg)}
.experience-list .experience-row{padding:var(--space-xl) 0 var(--space-section)}
.experience-top{margin-bottom:var(--space-copy)}
.experience-list .experience-detail{margin-top:var(--space-copy)}
.experience-list .experience-media{margin-top:var(--space-xl);gap:var(--space-xl) var(--space-xs)}
.earlier-experience{padding:var(--space-xl) 0}
.earlier-experience h3,.earlier-experience .experience-copy{margin-bottom:var(--space-copy)}
.home .contact{padding:var(--space-section) 0;margin-top:0;column-gap:var(--space-xl);row-gap:var(--space-sm)}
.contact-socials{gap:var(--space-md)}
.project-card-body{padding:var(--space-lg)}
@media(min-width:1000px){.home .section-heading{margin-bottom:0}.experience-list .experience-row:first-child{padding-top:0}}
@media(max-width:760px){:root{--type-display:40px;--type-section:28px;--space-section:48px}.portfolio-header{padding:24px 24px 0;gap:24px}.portfolio-header+.home .hero h1.intro{line-height:1.1}.home .contact{row-gap:16px}.contact-email{font-size:var(--type-body)}.experience-list .experience-row{padding:32px 0 48px}.home .about .muted{font-size:var(--type-label)}}
@media(max-width:760px){.presentation-mode .case-header{padding:16px 20px}.presentation-mode .case-main{padding:0 20px 140px}.presentation-mode .slide{padding:20px 0}.presentation-mode .slide-content{gap:24px}.presentation-mode .slide-navigation{padding:12px 20px;flex-direction:column;gap:4px}.slide-dots{position:static;transform:none;max-width:100%;overflow:auto}.presentation-mode .slide-controls{margin:0}.presentation-mode .case-header-center .muted{display:none}}

/* Feature previews and personal projects have their own page-wide grids. */
.portfolio-header+.home .selected{display:block}
.home .selected>.section-heading{margin-bottom:24px}
.home .selected>.case-collection{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
.case-preview-title{font-size:var(--type-section);font-weight:600;text-align:center}
.home .building{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
.personal-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 8px;min-width:0}
.home .building>.section-heading{grid-column:1/-1;grid-row:auto;margin:0 0 0}
.home .building .personal-project-grid>.build-row{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;grid-column:auto;gap:16px;padding:0;border:0;min-width:0}
.home .building .personal-project-grid>.build-row:nth-of-type(3){border:0}
.personal-project-art{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;background:var(--surface);border-radius:16px}
.personal-project-art.paige-product-art{position:relative;overflow:hidden;background:#f0f0f0}
.paige-product-art>img{position:absolute;display:block;left:50%;top:11.03%;width:37.56%;height:auto;max-width:none;transform:translateX(-50%);transition:width .38s cubic-bezier(.2,.7,.2,1),top .38s cubic-bezier(.2,.7,.2,1);will-change:width,top}
.paige-product-art:hover>img{width:59.75%;top:-35.19%}
.build-content{width:100%}
.build-title-row{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:wrap;min-height:28px}
.build-title-row .status{display:inline-flex;align-items:center;margin:0;flex-shrink:0}
.home .building .build-content p{max-width:none;width:100%;margin-top:8px}
.footer-banner{width:100%;margin-top:64px;min-height:clamp(520px,48vw,850px);padding:0 32px 48px;background:linear-gradient(to bottom,rgba(0,0,0,.92),rgba(0,0,0,.75) 30%,rgba(0,0,0,.18) 70%,rgba(0,0,0,.4)),url('/assets/al-at-event.jpeg') center top/cover no-repeat}
.footer-banner .contact{padding:48px 0;margin:0;border:0;grid-template-columns:1fr 1fr;gap:16px 32px;color:#fff}
.footer-banner .contact-email,.footer-banner .contact-socials{color:#fff}
@media(min-width:1000px){.home .building{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}.home .building>.section-heading{grid-column:1;grid-row:1}.personal-project-grid{grid-column:2;grid-row:1}}
@media(max-width:760px){.home .selected>.case-collection,.home .building,.personal-project-grid{grid-template-columns:minmax(0,1fr);row-gap:24px}.footer-banner{padding:0 24px 48px;min-height:640px}.footer-banner .contact{grid-template-columns:1fr}.footer-banner .contact-socials{grid-column:1;grid-row:auto}}

@media(min-width:1000px){.home .selected>.section-heading{width:calc(50% - 16px);margin-left:calc(50% + 16px)}}

/* Static product-stage indicators; only Live pulses. */
.status.beta,.status.prototyped,.status.concept{gap:8px}
.status.beta::before,.status.prototyped::before,.status.concept::before{content:'';display:block;width:7px;height:7px;border-radius:50%;flex-shrink:0;animation:none}
.status.beta::before{background:#62a8ff}
.status.prototyped::before{background:#a0a0a0}
.status.concept::before{border:1px solid #a0a0a0;background:transparent}

/* Figma owns the slide canvas; site controls stay outside its viewport. */
body.figma-presentation{overflow:hidden}
.figma-viewer{position:fixed;inset:0;z-index:100;background:#111;display:flex;flex-direction:column;height:100dvh}
.figma-viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:none;padding:12px 24px;border-bottom:1px solid var(--line);font-size:14px;background:var(--bg)}
.figma-viewer-bar>span{color:var(--muted)}
.figma-viewer-actions{display:flex;align-items:center;gap:16px;flex-shrink:0}
.figma-viewer-actions>a:not(.icon-button){display:inline-flex;align-items:center;min-height:44px}
.figma-viewer-bar .icon-button{width:40px;height:40px;display:grid;place-items:center;font-size:24px}
.figma-deck{display:block;border:0;width:100%;flex:1;min-height:0;background:#111}
@media(max-width:600px){.figma-viewer-bar{padding:8px 16px}.figma-viewer-bar>span{display:none}}

/* Supplied selected-work artwork, with a live label in the site typeface. */
.case-collection-card .collection-art.selected-work-cover{position:relative;padding:0;container-type:inline-size;background:#f5faff;aspect-ratio:1553/1600}
.case-collection-card .selected-work-cover>img{display:block;width:100%;height:100%;object-fit:contain}
.selected-cover-cta{position:absolute;left:50%;top:70.5%;transform:translateX(-50%);width:max-content;min-width:31.4%;max-width:calc(100% - 32px);height:7.8%;min-height:56px;padding:0 28px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:#f6f5f1;color:#080808;font-family:inherit;font-size:max(1.125rem,2.5cqw);font-weight:600;line-height:1.2;white-space:nowrap;box-shadow:0 2px 2px #0003}

/* Figma artwork with the site typeface on the action label. */
.case-collection-card .collection-art.live-product-cover{position:relative;container-type:inline-size;aspect-ratio:100/103;padding:0;background:#f6f5f1}
.case-collection-card .live-product-cover>img{display:block;width:100%;height:100%;object-fit:contain}
.live-cover-cta{font-weight:600}

/* Anchor artwork to the ratio-defined canvas, not a flex percentage height.
   Both covers keep their full composition on mobile; CTA sizing is independent. */
.case-collection-card .collection-art.selected-work-cover,
.case-collection-card .collection-art.live-product-cover{display:block;aspect-ratio:1553/1600}
.case-collection-card .selected-work-cover>img,
.case-collection-card .live-product-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}

/* Reveal the full cover only after decoding; reserve its existing space. */
img[data-cover-pending]{visibility:hidden}

/* Clara independent-product cover. */
.personal-project-art.clara-product-art{background:#f0f0f0;overflow:hidden;container-type:inline-size}
.clara-chip{box-sizing:border-box;display:flex;align-items:center;width:65cqw;height:19.6cqw;gap:6.4cqw;padding:0 6.6cqw;border:1cqw solid #5a514c;border-radius:999px;background:rgba(16,16,18,.85);box-shadow:0 4cqw 12cqw rgba(0,0,0,.5),0 0 16cqw rgba(207,199,255,.1)}
.clara-chip>img{display:block;width:10.8cqw;height:10.8cqw;border-radius:1.8cqw;flex:none;transform:scale(1.2047)}
.clara-waves{display:flex;align-items:center;gap:1.6cqw;height:7cqw;flex:none}
.clara-waves i{display:block;width:1.8cqw;height:var(--wave-height);border-radius:99px;background:#fff;transform-origin:center;transform:scaleY(1)}
.clara-waves i:nth-child(1){--wave-height:4cqw;--wave-delay:0ms}
.clara-waves i:nth-child(2){--wave-height:5cqw;--wave-delay:55ms}
.clara-waves i:nth-child(3){--wave-height:6cqw;--wave-delay:110ms}
.clara-waves i:nth-child(4){--wave-height:7cqw;--wave-delay:165ms}
.clara-waves i:nth-child(5){--wave-height:7cqw;--wave-delay:220ms}
.clara-waves i:nth-child(6){--wave-height:6cqw;--wave-delay:275ms}
.clara-waves i:nth-child(7){--wave-height:5cqw;--wave-delay:330ms}
.clara-record-dot{width:4cqw;height:4cqw;border-radius:50%;background:#f23838;flex:none}
.clara-product-art:hover .clara-waves i{animation:clara-wave .72s ease-in-out var(--wave-delay) infinite alternate}
@keyframes clara-wave{0%{transform:scaleY(.42)}50%{transform:scaleY(1.08)}100%{transform:scaleY(.68)}}
@media(prefers-reduced-motion:reduce){.clara-product-art:hover .clara-waves i{animation:none}.paige-product-art>img{transition:none}}
