/* A shared editorial layer across the portfolio. */
:root{--ink:#173858;--muted:#587189;--accent:#225ee0}
html{scroll-padding-top:76px}body{color:var(--ink);font-family:"Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif}
.desktop-wallpaper{inset:0;background:linear-gradient(#ffffff30,#ffffff30),#d9f1ff url('./assets/portfolio-background-reference.png') center / 100% 100% no-repeat;transform:none;will-change:auto}
.desktop-wallpaper::after{display:none}.desktop-light{display:none}
.desktop-menubar{height:58px;padding:0 max(5vw,22px);background:#f8fcffb8;border-bottom:1px solid #c9ddeb66;font-size:12px;gap:36px}
.desktop-menubar nav{display:flex;gap:26px}.desktop-menubar nav a{color:var(--muted);transition:color .2s}.desktop-menubar nav a:hover,.desktop-menubar nav a[aria-current]{color:var(--accent)}
.hero{min-height:720px;height:100svh}.portfolio-kicker{top:21%;left:8%;font-size:10px}.portfolio-wordmark{top:29%;width:80%;left:8%}
.portfolio-smile{width:16%;top:20%;right:2%}.portfolio-hand{width:12%;top:53%;left:10%}
.hero-intro{position:absolute;left:50%;bottom:145px;transform:translateX(-50%);text-align:center;pointer-events:auto;white-space:nowrap}
.hero-intro p{font-size:17px;font-weight:500;letter-spacing:.06em;margin:0 0 24px}.hero-intro>div{display:flex;gap:22px;align-items:center;justify-content:center}.hero-intro a{font-size:12px;text-decoration:none;color:var(--ink);padding:12px 4px}.hero-intro a span{margin-left:14px}.hero-intro .hero-primary{background:#225ee0;color:white;padding:13px 22px;border-radius:24px;box-shadow:0 5px 18px #225ee020;transition:transform .2s}.hero-primary:hover{transform:translateY(-2px)}
.about-section,#folderScene{padding:100px max(6vw,24px) 110px;scroll-margin-top:0}
.about-heading,.about-layout,.works-heading,.works-grid,.works-filters{max-width:1160px}
.about-heading{margin-bottom:46px}.about-title{width:min(48%,430px)}.about-position>span{background:none;padding:0;font-size:11px;letter-spacing:.1em;font-weight:500;color:var(--muted)}.about-position p{font-size:12px}
.about-layout{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:8%;align-items:start}.portrait-stage{padding:28px 24px 60px;max-width:420px;width:100%;margin:auto}.portrait-card{transform:rotate(-3deg);box-shadow:0 14px 36px #244c7114}.portrait-placeholder{border:0}.about-tag{font-size:15px;padding:13px 19px;border-radius:10px}
.about-details{padding:28px 32px;background:#ffffff8c;border:1px solid #ffffffd9;border-radius:20px}.about-bio h3{font-size:38px;font-weight:700;letter-spacing:-.04em}.about-role{font-size:14px}.about-summary{font-size:13px;color:var(--muted);max-width:34em}.about-details .about-experience h4{font-size:15px}.about-details .about-experience p{color:var(--muted);font-size:12px}.about-details .about-next{margin-top:22px}
#folderScene{border-top:1px solid #9ab8d024}.works-heading{text-align:left;margin-bottom:28px}.works-heading .works-title-art{width:min(65%,520px);margin:0}.works-heading>p:first-child{font-size:10px;letter-spacing:.16em;margin-bottom:20px}#worksDescription{font-size:13px;margin-top:22px;color:var(--muted)}
.works-filters{justify-content:flex-start;margin-bottom:28px;gap:6px}.works-filters button{font-size:12px;min-height:40px;padding:10px 17px}.works-grid{gap:28px 24px}.work-tile{border-width:2px;border-radius:18px;box-shadow:0 5px 18px #244c7109}.work-cover{border-radius:16px 16px 0 0}.work-description{min-height:88px;padding-left:18px}.work-description h3{font-size:14px}.work-description p{font-size:11px}.work-like{width:40px;height:40px;right:12px;bottom:23px}.is-placeholder{background:#ffffff75;border-color:#ffffff8a;box-shadow:none}.is-placeholder .work-description{background:#ffffff75}.is-placeholder .work-empty{background:#e8f1f84d}.work-tile:nth-child(3n+2) .work-empty{background:#e8f1f84d}.work-empty-number{color:#92a9bf70}.is-placeholder .work-ribbon{background:#9aafc0}
.portfolio-footer{position:relative;max-width:1160px;margin:auto;padding:52px 0 140px;border-top:1px solid #9ab8d044}.portfolio-footer>p{font-size:clamp(20px,3vw,32px);letter-spacing:-.035em;margin:0 0 20px}.portfolio-footer>a{font-size:13px;color:var(--accent);text-decoration:none}.portfolio-footer>div{display:flex;justify-content:space-between;margin-top:55px;font-size:10px;letter-spacing:.06em;color:var(--muted)}.portfolio-footer>div a{color:inherit;text-decoration:none}
.work-like svg{transform-origin:center;transition:fill .18s,color .18s}
.like-ring{position:absolute;inset:5px;border:1px solid #e897b6;border-radius:50%;pointer-events:none}
.like-particle{position:absolute;left:calc(50% - 2px);top:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:#ed91b6;pointer-events:none}
.like-particle:nth-of-type(even){background:#82b6ee}
body.modal-open .dock{visibility:hidden}.project-modal{padding-bottom:30px}.project-modal__window{height:min(880px,calc(100svh - 90px))}.project-modal.is-maximized{padding:66px 12px 12px}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.works-filters{position:relative;isolation:isolate;width:max-content;max-width:100%;padding:5px;gap:0;margin-left:max(0px,calc((100% - 1160px)/2));margin-right:0;border:1px solid #ffffffa8;border-radius:999px;background:#daeaf4a6;box-shadow:inset 0 1px 0 #ffffff99;backdrop-filter:blur(16px)}
.works-filters button{z-index:1;min-height:42px;padding:11px 21px;font-size:13px;white-space:nowrap;border-radius:999px;background:transparent!important;box-shadow:none!important;transition:color .25s}
.works-filters button[aria-pressed="true"]{color:#1758ca}.works-filters button:hover{color:#1758ca}.works-filters button::after{display:none!important}
.filter-active-pill{position:absolute;top:5px;bottom:5px;left:0;z-index:0;border-radius:999px;background:#fff;box-shadow:0 3px 10px #2d60851a,inset 0 0 0 1px #ffffffc9;pointer-events:none}
@media(max-width:420px){.works-filters button{padding-inline:15px;font-size:12px}}
.work-tile:not(.is-placeholder):hover{transform:perspective(900px) translateY(-4px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg))}
.work-tile:not(.is-placeholder):focus-within{box-shadow:0 12px 28px #224f8320}
.hero-intro a span,.about-next span{display:inline-block;transition:transform .25s}
.hero-intro a:hover span{transform:translate(3px,-2px)}.about-next:hover span{transform:translateY(4px)}
.portfolio-smile:hover .object-motion{filter:drop-shadow(0 10px 8px #2365d326)}
.desktop-menubar nav a{position:relative}.desktop-menubar nav a::after{content:'';position:absolute;bottom:-8px;left:0;right:0;height:2px;background:#225ee0;transform:scaleX(0);transition:transform .25s}.desktop-menubar nav a:hover::after,.desktop-menubar nav a[aria-current]::after{transform:scaleX(1)}
@media(prefers-reduced-motion:reduce){.work-tile:not(.is-placeholder):hover{transform:none}}
@media(max-width:900px){.about-layout{gap:32px}.about-details{padding:24px}.portfolio-footer{margin:0 6%}.desktop-menubar{gap:22px}.desktop-menubar nav{gap:18px}}
@media(max-width:760px){.about-layout{grid-template-columns:1fr}.about-heading{margin-bottom:30px}.about-title{width:65%}.portrait-stage{max-width:340px}.about-details{max-width:600px;width:100%;margin:auto}.about-section,#folderScene{padding-top:70px;padding-bottom:70px}.hero{min-height:640px}.hero-intro{bottom:130px}.hero-intro p{font-size:14px}.portfolio-art .portfolio-wordmark{top:33%}.portfolio-art .portfolio-smile{top:19%;width:23%}.portfolio-hand{top:49%;width:19%}.works-heading .works-title-art{width:85%}}
@media(max-width:480px){.desktop-menubar{padding:0 18px;justify-content:space-between;gap:10px}.desktop-menubar nav{gap:15px;font-size:11px}.portfolio-discipline{display:none}.about-position{display:none}.about-title{width:85%}.about-details{padding:23px 20px}.about-contact{flex-wrap:wrap}.hero-intro p{font-size:13px}.hero-intro>div{gap:16px}.works-heading .works-title-art{width:100%}.work-description h3{font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
