:root{font-family:Arial,"Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;font-size:.694445vw;color:#1a1a1a;background:#f6f6f6;--bg:#f6f6f6;--muted:#9f9f9f;--ease:cubic-bezier(.32,0,0,1);--out:cubic-bezier(.22,1,.36,1);--scene:1.2s}*{box-sizing:border-box}body{margin:0;line-height:1;overflow:hidden;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:0;padding:0;background:none;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid #777;outline-offset:4px}svg{display:block;width:1.4rem;height:1.4rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon-defs{position:absolute;width:0;height:0;overflow:hidden}.identity{position:absolute;left:25.7rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:5rem;z-index:30}.identity-copy{width:40rem;transition:transform var(--scene) var(--ease);transform-origin:left center}.line-mask{overflow:hidden;padding-bottom:.2rem}h1,.identity-copy p{font-size:3.2rem;line-height:1;font-weight:400;margin:0;white-space:nowrap}.identity-copy p{color:var(--muted)}.controls{display:flex;gap:.4rem;height:5.4rem;position:relative}.magnetic{position:relative;will-change:transform}.control{width:5.4rem;height:5.4rem;min-width:5.4rem;border-radius:1.5rem;background:#fff;display:flex;align-items:center;justify-content:center;transition:scale .3s cubic-bezier(.075,.82,.165,1),background-color .3s cubic-bezier(.785,.135,.15,.86),border-radius .28s cubic-bezier(.785,.135,.15,.86);position:relative}.control:hover{scale:1.037}.control:active{scale:.97}.control svg{flex:none}.person-slot{transition:opacity .3s,scale .45s var(--out);z-index:2}.social-slot{position:relative;display:flex;transition:transform .45s var(--out);z-index:3}.social-toggle{transition:rotate .45s var(--out),border-radius .28s,background-color .3s,scale .3s}.toggle-icon{position:relative;width:2rem;height:2rem;display:grid;place-items:center}.toggle-icon svg{position:absolute;transition:opacity .25s,transform .35s var(--out)}.close-icon,.back-icon{opacity:0;transform:scale(.5)}.social-links{position:absolute;left:100%;margin-left:.4rem;display:flex;gap:.4rem;pointer-events:none}.social-links>.magnetic{opacity:0;transform:perspective(500px) translateX(-10px) rotateY(80deg) scale(.8);filter:blur(2px);transition:opacity .25s,transform .45s var(--out),filter .3s;transition-delay:calc((2 - var(--i))* .05s)}.social-open .social-links,.about-state .social-links{pointer-events:auto}.social-open .social-links>.magnetic,.about-state .social-links>.magnetic{opacity:1;transform:perspective(500px) translateX(0) rotateY(0) scale(1);filter:none;transition-delay:calc(var(--i)*.05s)}.social-open .social-toggle,.about-state .social-toggle{background:#000;color:#f6f6f6;border-radius:50%;rotate:-90deg}.social-open .chat-icon,.about-state .chat-icon{opacity:0;transform:scale(.5)}.social-open .close-icon{opacity:1;transform:scale(1)}.tooltip{position:absolute;top:calc(100% + .8rem);left:50%;transform:translateX(-50%);font-size:1.2rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}.tooltip-target:hover .tooltip,.tooltip-target:focus-visible .tooltip{opacity:1}.slider{position:absolute;right:25.7rem;top:0;height:100dvh;width:33.5rem;touch-action:none;cursor:grab;transition:transform var(--scene) var(--ease),opacity .4s;outline:none!important}.slider:active{cursor:grabbing}.cards{height:100%;perspective:1500px;transform-style:preserve-3d}.card-shell{position:absolute;top:50%;left:0;width:33.5rem;height:34.4rem;transform-style:preserve-3d;will-change:transform;transition:transform 1.2s var(--ease);backface-visibility:visible}.card-magnet{height:100%;width:100%;transform-style:preserve-3d}.project-card{height:100%;width:100%;border-radius:32px;overflow:hidden;display:block;position:relative;background:var(--card-bg);text-align:left;isolation:isolate}.card-art{position:absolute;inset:0;overflow:hidden;display:grid;place-items:center}.placeholder-sheet{width:76%;height:47%;background:var(--paper);box-shadow:0 .7rem 2.5rem #00000008;display:flex;flex-direction:column;padding:2rem;transform:rotate(var(--angle,0deg));transition:transform 1.2s var(--out)}.sheet-bar{display:flex;justify-content:space-between;font-size:.65rem;color:#555;border-bottom:1px solid #0000000a;padding-bottom:1rem;letter-spacing:.04em}.sheet-body{flex:1;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:.6rem}.sheet-body strong{font-size:2.1rem;font-weight:400;letter-spacing:-.08rem}.sheet-body span{font-size:.8rem;color:#a4a4a4;letter-spacing:.08em}.sheet-lines{display:flex;gap:.4rem;margin-top:.6rem}.sheet-lines i{display:block;height:.2rem;width:2.2rem;background:#d9d9d9}.card-title{position:absolute;bottom:2.3rem;left:3.2rem;font-size:1.4rem;color:#444;display:block}.card-number{position:absolute;top:2.5rem;right:2.7rem;font-size:.9rem;letter-spacing:.04em;color:#777;opacity:.65}.fade{position:absolute;height:12.8rem;left:-8rem;right:-8rem;pointer-events:none;z-index:25}.fade-top{top:0;background:linear-gradient(var(--bg),transparent)}.fade-bottom{bottom:0;background:linear-gradient(0deg,var(--bg),transparent)}.pagination{position:absolute;right:8.1rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:.8rem;transition:transform var(--scene) var(--ease),opacity .4s}.pagination button{position:relative;width:3px;height:3px;flex:none;background:#1a1a1a;border-radius:50%;opacity:.2;transition:opacity .25s}.pagination button:before{content:'';position:absolute;inset:-7px}.pagination button.active{opacity:1}.about-page{position:fixed;inset:0;overflow-y:auto;overscroll-behavior:contain;z-index:10;opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .8s;scrollbar-width:none}.about-content{padding:calc(50dvh + 26.8rem) 0 21.2rem 25.7rem;width:82.8rem;color:var(--muted)}.text-block{margin-bottom:10rem;display:flex;flex-direction:column;gap:2.4rem}.text-block p{font-size:2.4rem;line-height:1.24;font-weight:400;margin:0}.text-block h2{font-size:1.4rem;font-weight:400;color:#1a1a1a;margin:0 0 -1rem}.ink{color:#1a1a1a}.about-email{font-size:1.6rem;color:#1a1a1a;display:block;overflow-wrap:anywhere}.about-email:hover{opacity:.6}.credit{font-size:1.2rem;line-height:1.5}.reveal{opacity:0;transform:translateY(1.15em);transition:opacity .55s,transform .55s var(--out);transition-delay:var(--delay,0s)}.reveal.shown{opacity:1;transform:none}.about-state .about-page{opacity:1;visibility:visible;transition-delay:0s}.about-state .slider{transform:translateX(max(60vw,420px))}.about-state .pagination{transform:translate(max(60vw,420px),-50%)}.about-state .person-slot{opacity:0;scale:.92;pointer-events:none}.about-state .social-slot{transform:translateX(-5.8rem)}.about-state .close-icon{opacity:0;transform:scale(.5)}.about-state .back-icon{opacity:1;transform:rotate(90deg) scale(1)}.eyebrow{font-size:1rem;letter-spacing:.1em;color:var(--muted)}.toast{position:fixed;bottom:3rem;left:50%;transform:translate(-50%,15px);background:#1a1a1a;color:white;border-radius:3rem;padding:1.4rem 2rem;font-size:1.3rem;opacity:0;z-index:100;pointer-events:none;transition:.3s var(--out);white-space:nowrap}.toast.visible{transform:translate(-50%,0);opacity:1}.project-page{position:fixed;inset:0;z-index:12;overflow-y:auto;visibility:hidden;opacity:0;scrollbar-width:none;transition:opacity .4s,visibility 0s .6s;padding:2rem 0 10rem 72.8rem}.project-hero-slot{width:69rem;height:70.85rem;border-radius:32px}.project-body{width:57rem;padding:8rem 0}.project-body h2{font-size:3.2rem;font-weight:400;margin:3rem 0}.project-body>p:not(.eyebrow){font-size:2.4rem;line-height:1.3;color:var(--muted)}.text-button{font-size:1.4rem;display:flex;gap:1rem;align-items:center;margin-top:5rem}.project-return{position:fixed;left:65.6rem;top:50%;transform:translateY(-50%) translateX(150%);z-index:40;opacity:0;visibility:hidden;transition:transform var(--scene) var(--ease),opacity .5s}.project-info{display:none}.project-state .project-page{visibility:visible;opacity:1;transition-delay:0s}.project-state .identity{pointer-events:none}.project-state .identity-copy{transform:translateY(-6.5rem)}.project-state .controls{transform:translateY(6.5rem);transition:transform var(--scene) var(--ease);pointer-events:auto}.project-state .project-return{opacity:1;visibility:visible;transform:translateY(-50%)}.project-state .slider{pointer-events:none}.project-state .pagination{opacity:0}.project-state .person svg{transition:rotate .4s}.project-state.info-open .person{background:#1a1a1a;color:white;border-radius:50%}.transition-card{position:fixed;border-radius:32px;overflow:hidden;z-index:25;pointer-events:none;transform-origin:0 0}.about-state:after{content:'';position:fixed;left:0;bottom:0;width:100%;height:8rem;background:linear-gradient(transparent,#f6f6f6aa);pointer-events:none;z-index:20}.boot .identity-copy{opacity:0;scale:.5;transform-origin:right bottom}.boot .controls{opacity:0;translate:0 28px}.boot .pagination{opacity:0}.identity-copy,.controls{transition:opacity .72s,scale 1.08s var(--ease),translate .72s var(--ease),transform var(--scene) var(--ease)}
@media(min-width:769px){.project-card:hover .placeholder-sheet{transform:rotate(var(--angle)) scale(1.01)}}
@media(max-width:768px){:root{font-size:2.66667vw;--scene:.8s}.identity{top:2rem;left:0;width:100%;transform:none;align-items:center;gap:0;pointer-events:none}.identity-copy{width:auto;text-align:center;pointer-events:auto}.identity-copy h1,.identity-copy p{font-size:1.8rem}.controls{position:fixed;left:50%;bottom:4rem;transform:translateX(-50%);pointer-events:auto}.control svg{width:1.4rem;height:1.4rem}.slider{left:50%;right:auto;width:26.9rem;transform:translateX(-50%)}.card-shell{width:26.9rem;height:26.9rem}.project-card{border-radius:32px}.card-title{left:3rem;bottom:2.8rem;font-size:1.4rem}.placeholder-sheet{padding:1.4rem}.sheet-body strong{font-size:1.7rem}.sheet-bar{font-size:.55rem}.pagination{right:2.5rem}.fade{height:12.8rem}.social-open .controls{transform:translateX(calc(-50% - 8.7rem))}.about-state .controls{left:4rem;transform:none}.about-state .social-slot{transform:translateX(-5.8rem)}.about-state .person-slot{pointer-events:none}.about-state .slider{transform:translateX(calc(-50% + 100vw))}.about-state .identity{position:absolute}.about-page{z-index:10}.about-content{padding:24.4rem 4.4rem 13rem;width:100%}.text-block{margin-bottom:6rem}.text-block p{font-size:1.8rem;line-height:1.24}.text-block h2{font-size:1.4rem}.about-email{font-size:1.35rem}.credit{font-size:1rem}.about-state .about-content{padding-bottom:29rem}.project-page{padding:8rem 2rem 14rem}.project-hero-slot{width:33.5rem;height:33.5rem;max-width:100%}.project-body{padding:5rem 2.4rem;width:100%}.project-body h2{font-size:2.4rem}.project-body>p:not(.eyebrow){font-size:1.8rem}.project-state .identity-copy{transform:none}.project-state .controls{left:4rem;transform:none}.project-state .identity{pointer-events:none}.project-state .identity-copy{pointer-events:auto}.project-state .person-slot{opacity:0;pointer-events:none}.project-state .social-slot{transform:translateX(-5.8rem)}.project-state .controls{translate:0 0}.project-state .project-return{left:auto;right:4rem;top:auto;bottom:4rem;transform:none}.project-state .slider{opacity:0}.toast{font-size:1.1rem;bottom:1.5rem}.about-state:after{height:10rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important;scroll-behavior:auto!important}}
.card-shell[data-active="false"] .project-card{background:#eaeaea}.card-shell[data-active="false"] .card-art{opacity:0}
html{width:100%;overflow:hidden}body{position:fixed;inset:0;width:100%;max-width:100vw;overflow:hidden}.about-page,.project-page{overflow-x:hidden}.reveal.has-lines{opacity:1;transform:none}.reveal-line-clip{display:block;overflow:hidden}.reveal-line{display:block;transform:translateY(1.15em);transition:transform .55s var(--out);transition-delay:calc(var(--delay,0s) + var(--line,0)*.055s)}.shown .reveal-line{transform:none}
@media(max-width:768px){.about-state .about-content{padding-bottom:0}}

.portrait-video{position:fixed;right:9.5rem;top:50%;width:40rem;margin:0;z-index:15;opacity:0;transform:translateY(-50%) translateX(60vw);transition:transform var(--scene) var(--ease),opacity .65s;pointer-events:none}.portrait-video video{display:block;width:100%;height:auto;background:transparent}.about-state .portrait-video{transform:translateY(-50%);opacity:1}
@media(max-width:768px){.about-page .portrait-video{position:relative;inset:auto;width:calc(100% - 4rem);max-width:40rem;margin:7rem auto 6rem;transform:translateX(100vw)}.about-state .about-page .portrait-video{transform:none}.about-state .about-content{padding-bottom:0}}

.about-content strong{font-weight:700;color:#1a1a1a}.wander-cover img{width:100%;height:100%;object-fit:cover;display:block}.wander-cover~.card-title{color:#fff;text-shadow:0 1px 6px #0009}.wander-cover~.card-number{color:#fff}.project-state .wander-cover img{object-fit:contain}.project-images{width:69rem;display:flex;flex-direction:column;gap:2rem;margin-top:2rem}.project-images:empty{display:none}.project-images img{display:block;width:100%;height:auto;border-radius:32px}.project-state #identityRole{white-space:normal;line-height:1.24}.project-state .identity-copy{max-width:40rem}
@media(max-width:768px){.project-images{width:33.5rem;max-width:100%}.project-state .identity-copy{max-width:calc(100vw - 4rem)}.project-state #identityRole{font-size:1.4rem}.project-state .identity-copy h1{font-size:1.8rem}}

/* Project-specific controls and the description card. */
.details-icon{display:none}.project-state .person .person-icon{display:none}.project-state .person .details-icon{display:block}.project-state .person{cursor:pointer}.project-state .fade{display:none}.project-state .slider{visibility:hidden}.project-page .card-title,.transition-card .card-title{display:none}.project-state .social-open .social-links{display:flex}.project-state .social-links{display:flex}.project-state .project-hero-slot .project-card{background:transparent}.project-info-panel{position:fixed;top:2rem;right:2rem;bottom:2rem;width:69rem;z-index:26;background:#fff;border-radius:32px;padding:6rem;display:flex;flex-direction:column;justify-content:space-between;visibility:hidden;opacity:0;transform:translateY(3rem);transition:opacity .45s,transform .7s var(--ease),visibility 0s .7s;overflow-y:auto;scrollbar-width:none}.project-info-panel h2{font-size:1.4rem;line-height:1.2;font-weight:400;margin:0}.project-info-copy{margin-top:14rem}.project-info-copy p{font-size:2.4rem;line-height:1.24;margin:0 0 2.4rem}.project-info-copy p:last-child{margin-bottom:0}.project-state.info-open .project-info-panel{opacity:1;visibility:visible;transform:none;transition-delay:0s}.project-state.info-open .project-page{opacity:0;pointer-events:none}.project-state.info-open .person svg{rotate:0deg}.project-state .social-toggle .chat-icon{display:block}
@media(max-width:768px){.project-state .person-slot{opacity:1;pointer-events:auto}.project-state .social-slot{transform:none}.project-state.social-open .controls{left:50%;transform:translateX(calc(-50% - 8.7rem))}.project-info-panel{inset:8rem 2rem 12rem;width:auto;padding:3.2rem}.project-info-copy{margin-top:10rem}.project-info-copy p{font-size:1.8rem}.project-state .controls{z-index:40}}
@media(max-width:768px){.project-state.social-open .project-return{bottom:10.5rem}.project-info-panel{scroll-padding:3.2rem}.project-info-copy{margin-top:6rem}}

/* Remove only the transparent canvas padding around City Musician page 2. */
.project-images .city-music-second{position:relative;width:100%;aspect-ratio:2864 / 2860;overflow:hidden;border-radius:32px;flex:none}.project-images .city-music-second img{position:absolute;width:141.201117%;max-width:none;height:auto;left:-9.357542%;top:-3.216783%;border-radius:0}
