/* Portfolio taxonomy and an editorial product cover, using live mobile captures. */
.project-group-links{display:flex;align-items:center;gap:18px;font-size:12px;letter-spacing:.05em}
.project-group-links a{color:var(--muted);padding-block:8px;min-height:44px;display:inline-flex;align-items:center}
.project-group-links a:hover{color:#fff}
.work-label{display:flex;align-items:center;gap:30px}
.work-label h2{font-size:12px;letter-spacing:.14em;font-weight:700;margin:0}
.project-kind{display:inline-flex;align-items:center;border:1px solid #ffffff30;border-radius:100px;padding:4px 10px;color:#ddd}
.project-meta{align-items:center;gap:16px;flex-wrap:wrap}
.personal-section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:38px;border-top:1px solid var(--line);padding-top:36px}
.personal-section-head .eyebrow{font-size:10px;letter-spacing:.18em;margin-bottom:12px}
.personal-section-head .section-title{font-size:clamp(32px,4vw,48px)}
.personal-section-head>p{max-width:340px;font-size:14px;color:var(--muted);line-height:1.8}
#personal #carousel{width:min(100%,1100px);container-type:inline-size}
#personal .carousel-prev,#personal .carousel-next{top:31.25cqw}
#personal-panel{aspect-ratio:1.6}
.personal-slide.ensemble-slide:after{display:none}
.ensemble-cover{position:absolute;inset:0;overflow:hidden;background:linear-gradient(118deg,#eeeaf1 0%,#ddd5e9 48%,#bba8d4 100%);color:#352745;isolation:isolate}
.ensemble-cover:before{content:"";position:absolute;left:40%;right:-10%;height:44%;bottom:-28%;border:1px solid #ffffff60;border-radius:50%;transform:rotate(-15deg)}
.ensemble-cover-copy{position:absolute;left:6%;top:10%;width:42%;z-index:2}
.ensemble-edition{display:block;font-size:clamp(7px,.7vw,10px);font-weight:700;letter-spacing:.14em;color:#685672}
.ensemble-wordmark{display:block;font-size:clamp(32px,5.1vw,78px);font-weight:800;letter-spacing:-.07em;line-height:1;margin-top:15%}
.ensemble-wordmark>span{display:block;font-size:clamp(18px,2.2vw,32px);letter-spacing:.12em;margin-top:16px;font-weight:700}
.ensemble-cover-line{display:block;margin-top:13%;font-size:clamp(20px,2.45vw,36px);letter-spacing:-.035em;line-height:1.5;font-weight:600}
.ensemble-cover-caption{display:block;font-size:clamp(9px,1vw,13px);margin-top:18px;color:#685672;letter-spacing:.04em}
.ensemble-devices{position:absolute;left:43%;right:0;top:0;bottom:0;pointer-events:none}
.ensemble-device{position:absolute;aspect-ratio:393/852;container-type:inline-size;padding:4px;border-radius:40px;background:linear-gradient(110deg,#f5f3f0 0%,#aaa6a2 15%,#ebe8e4 33%,#8f8c89 65%,#e3dfda 90%,#fcfaf7);border:1px solid #ffffffd9;box-shadow:inset 0 0 0 1px #6c6766,14px 24px 34px #3d245c38,1px 2px 3px #32203950;transition:transform .65s cubic-bezier(.22,1,.36,1)}
.ensemble-device:before,.ensemble-device:after,.ensemble-volume{content:"";position:absolute;width:3px;background:linear-gradient(90deg,#8f8b87,#e9e5e0,#77736f);border-radius:2px}
.ensemble-device:before{left:-3px;top:17%;height:5%}
.ensemble-volume{left:-3px;top:26%;height:7%;box-shadow:0 10cqw 0 #aaa6a1}
.ensemble-device:after{right:-3px;top:29%;height:12%}
.ensemble-device-screen{position:relative;display:flex;flex-direction:column;height:100%;border:4px solid #121214;border-radius:35px;overflow:hidden;background:#ae8ae6}
.ensemble-ios-status{position:relative;flex:0 0 13cqw;color:#18131e;background:#ae8ae6;display:flex;align-items:center;justify-content:space-between;padding:0 6cqw}
.ensemble-ios-time{font-family:Arial,sans-serif;font-size:4cqw;font-weight:700;letter-spacing:-.02em}
.ensemble-dynamic-island{position:absolute;left:50%;top:2.7cqw;transform:translateX(-50%);width:29%;height:7.3cqw;border-radius:10cqw;background:#08080a;box-shadow:inset 0 0 0 1px #000}
.ensemble-dynamic-island:after{content:"";position:absolute;right:9%;top:30%;width:3cqw;height:3cqw;border-radius:50%;background:radial-gradient(circle at 35% 35%,#1d2942,#090c13 70%);box-shadow:0 0 0 1px #111116}
.ensemble-ios-icons{width:16cqw;height:4cqw}
.ensemble-app-screen{flex:1;min-height:0;overflow:hidden}
.ensemble-device-screen img{width:104.2%;max-width:none;height:100%;object-fit:fill}
.ensemble-ios-home{display:flex;align-items:center;justify-content:center;flex:0 0 5cqw;background:#ae8ae6}
.ensemble-ios-home span{width:34%;height:1.2cqw;border-radius:2cqw;background:#19141f}
.ensemble-device-front{height:81%;top:8%;left:6%;transform:rotate(-7deg);z-index:2}
.ensemble-device-back{height:72%;top:19%;right:8%;transform:rotate(8deg)}
.ensemble-real-screen{position:absolute;bottom:5%;left:6%;font-size:9px;letter-spacing:.14em;color:#796584}
.ensemble-open{position:absolute;right:5%;bottom:4%;border-bottom:1px solid #756283;padding:5px 0;font-size:11px;letter-spacing:.08em}
.ensemble-open>span{margin-left:12px;font-size:18px}
.personal-slide.ensemble-slide .slide-count{background:#35274512;color:#352745;top:auto;bottom:11%;left:6%;font-size:10px}
.personal-project-detail{display:grid;grid-template-columns:1fr 1.5fr;gap:40px;padding:30px 0 0;scroll-margin-top:100px}
.personal-project-detail h3{font-size:24px;letter-spacing:-.04em;margin:8px 0}
.personal-project-detail .personal-role{font-size:13px;color:#c3b2db}
.personal-project-detail .personal-summary{font-size:14px;color:var(--muted);line-height:1.9}
.personal-project-detail .pill{margin-top:18px}
.personal-project-detail .eyebrow{font-size:10px;letter-spacing:.14em;color:#c3b2db}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  .ensemble-slide:hover .ensemble-device-front{transform:translateY(-7px) rotate(-5deg)}
  .ensemble-slide:hover .ensemble-device-back{transform:translateY(-3px) rotate(6deg)}
}
@media(min-width:1024px){#personal{padding-top:110px}.work-label .project-group-links{margin-top:0}}
@media(max-width:1023px){.work-label{top:28px;gap:18px}.project-group-links{gap:12px;font-size:11px}.personal-section-head{align-items:start}.ensemble-wordmark{font-size:6vw}.ensemble-cover-line{font-size:3vw}.ensemble-device{border-radius:26px;padding:4px}.ensemble-device-screen{border-radius:22px;border-width:3px}}
@media(max-width:639px){
  .work-label{flex-wrap:wrap;gap:4px 20px}.project-meta{gap:10px;font-size:11px}
  .personal-section-head{display:block;margin-bottom:24px}.personal-section-head>p{margin-top:16px;font-size:13px}
  #personal-panel{aspect-ratio:.75;border-radius:18px}
  #personal .carousel-prev,#personal .carousel-next{top:66.667cqw}
  .ensemble-cover-copy{top:6%;left:7%;width:86%}
  .ensemble-edition{font-size:7px;letter-spacing:.09em}
  .ensemble-wordmark{font-size:clamp(28px,9.6vw,42px);margin-top:16px;white-space:nowrap}
  .ensemble-wordmark>span{display:inline-block;margin:0 0 0 10px;font-size:12px;letter-spacing:.05em;vertical-align:middle}
  .ensemble-cover-line{font-size:clamp(14px,4vw,17px);line-height:1.4;margin-top:14px}.ensemble-cover-line br{display:none}
  .ensemble-cover-caption{font-size:9px;margin-top:8px}
  .ensemble-devices{left:6%;right:3%;top:37%;bottom:5%}
  .ensemble-device-front{height:91%;left:12%;top:1%}.ensemble-device-back{height:82%;top:12%;right:9%}
  .ensemble-device{border-radius:19px;padding:3px}.ensemble-device-screen{border-radius:15px;border-width:2px}
  .ensemble-real-screen{bottom:3%;left:7%;font-size:7px}.ensemble-open{font-size:9px;bottom:2%;right:7%}.ensemble-open>span{font-size:15px}
  .personal-slide.ensemble-slide .slide-count{top:6%;right:7%;left:auto;bottom:auto;font-size:8px;padding:3px 6px}
  .personal-project-detail{grid-template-columns:1fr;gap:18px;padding-top:24px}.personal-project-detail h3{font-size:23px}
  .personal-project-detail .personal-summary{font-size:14px}.personal-project-detail .pill{min-height:44px}
}
@media(max-width:359px){.ensemble-devices{top:42%}.ensemble-cover-caption{font-size:8px}.ensemble-edition{font-size:6px}}
@media(prefers-reduced-motion:reduce){.ensemble-device{transition:none}}
