:root {
  color-scheme: dark;
  --ground: #0e0e12;
  --ink: #fff;
  --accent: #adfff5;
  --contact: #a9c9c8;
  --art-width: 63.020833%;
}
* { box-sizing: border-box; }
html { margin: 0; width: 100%; background: var(--ground); scroll-behavior: smooth; scrollbar-color: #4c6262 var(--ground); }
body { margin: 0; width: 100%; color: var(--ink); background: var(--ground); font-family: sans-serif; -webkit-font-smoothing: antialiased; }
::selection { color: var(--ground); background: var(--accent); }
.portfolio-home { overflow: clip; }
.cover { position: relative; width: 100%; aspect-ratio: 1920 / 1080; isolation: isolate; }
/* The artwork continues below the 16:9 cover instead of ending at its edge. */
.light-field { position: absolute; inset: 0 0 auto; height: 125.925926%; pointer-events: none; z-index: 0; }
#flow { width: 100%; height: 100%; display: block; }
.lettering { position: absolute; left: 7.55%; top: 38.89%; width: var(--art-width); z-index: 1; }
h1, h2, p, address { margin: 0; padding: 0; }
.title { width: 100%; line-height: 0; }
canvas[data-crop] { display: block; width: 100%; height: auto; }
.subtitle { width: 66.1157%; }
.contacts { display: flex; align-items: center; gap: 1.653%; margin-top: .5785%; padding-left: .8264%; font-style: normal; line-height: 0; }
.identity { width: 32.2314%; flex-shrink: 0; }
.phone { width: 21.0744%; flex-shrink: 0; }
.email { width: 32.6446%; flex-shrink: 0; }
a { color: var(--contact); text-decoration: none; border-radius: 3px; transition: filter 180ms ease; }
a:hover { filter: brightness(1.35); }
a:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.no-script { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: var(--ground); }
/* Reserved only: the user will supply the actual directory composition. */
.directory { position: relative; margin-top: 14.583333vw; padding: 2.5vw 8.333333vw 10vw; min-height: 40vw; }
.directory h2 { color: var(--accent); font-size: 3.333333vw; line-height: 1.2; font-weight: 500; letter-spacing: -.025em; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } a { transition: none; } }
/* Homepage: the supplied framework supersedes the former cover-only layout. */
:root{--green:#41fd7b;--muted:#a7aaa9;--ease:cubic-bezier(.22,1,.36,1)}
body{font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif;background:#050606} html{scroll-padding-top:100px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:6px}button{color:inherit}.topbar{position:fixed;top:14px;left:2.4%;right:2.4%;height:78px;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:12px 22px;background:rgba(59,65,67,.52);backdrop-filter:blur(24px) saturate(135%);-webkit-backdrop-filter:blur(24px) saturate(135%);border:1px solid #ffffff18;border-radius:20px}.avatar-link img{display:block;width:48px;height:48px;border-radius:13px}.topbar nav{display:flex;gap:42px}.topbar nav a{color:#bdc0c2;font-size:17px;transition:color .22s}.topbar nav a:hover,.topbar nav a.active{color:var(--green)}.explore,.pill{display:inline-flex;align-items:center;justify-content:center;gap:30px;color:#080a09;background:#fff;padding:13px 24px;border-radius:40px;font-weight:600}.explore:hover,.pill:hover{background:var(--green);filter:none}.cover{min-height:620px;height:min(100svh,70vw);aspect-ratio:auto}.lettering{top:40%;width:65%;}.hero-caption{font-size:clamp(10px,1.4vw,24px);letter-spacing:.08em;line-height:1.5;color:#a6ccca;padding-left:.8%;margin-top:1%}.light-field{height:125.925926%}.folder-section{position:relative;padding:9vw 0 7vw;text-align:center;margin-top:8vw;isolation:isolate}.section-logo{width:80px;height:48px;object-fit:contain;display:block;margin:0 auto 3vw}.folder-fan{position:relative;height:clamp(300px,31vw,570px);max-width:1580px;margin:auto;isolation:isolate}.folder{position:absolute;left:calc(50% + (var(--slot) - 2)*17%);top:var(--lift);width:25%;aspect-ratio:1;transform:translateX(-50%) rotate(var(--angle));transform-origin:50% 85%;transition:transform .65s var(--ease),opacity .5s;z-index:calc(5 - var(--slot))}.folder img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .35s;pointer-events:none}.folder .opened{opacity:0}.folder:hover,.folder:focus-visible{z-index:20;transform:translateX(-50%) translateY(-25px) rotate(0deg) scale(1.10);filter:none}.folder:hover .opened,.folder:focus-visible .opened{opacity:1}.folder:hover .closed,.folder:focus-visible .closed{opacity:0}.folder-fan:has(.folder:hover) .folder:not(:hover),.folder-fan:has(.folder:focus-visible) .folder:not(:focus-visible){opacity:.8}.folder-section h2{font-size:clamp(26px,3.2vw,56px);font-weight:400;margin:2vw 0 26px}.pill span{display:grid;place-items:center;background:#090b0a;color:#fff;border-radius:50%;width:28px;height:28px}.section{padding:6vw 5vw}.section-title{font-size:clamp(38px,5.5vw,96px);font-weight:500;letter-spacing:.02em;display:block}.section-title span:not(.heading-arrow){color:var(--green)}.heading-arrow{float:right}.bio-copy{text-align:center;padding:7vw 3vw 4vw}.bio-copy h3{font-size:clamp(19px,2vw,32px);font-weight:500;margin-bottom:24px}.bio-copy p{font-size:clamp(15px,1.3vw,22px);line-height:1.9;color:#b7bcb9}.bio-copy h3[lang]{margin-top:44px}.bio-media{position:relative;overflow:hidden;aspect-ratio:3.2;border-radius:28px;background:#151918}.bio-slide{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transform:scale(1.045);transition:opacity 1.1s,transform 1.8s var(--ease);background:#18201c}.bio-slide:nth-child(2){background:#192124}.bio-slide:nth-child(3){background:#201c27}.bio-slide.active{opacity:1;transform:scale(1)}.bio-slide>span{font-size:clamp(36px,8vw,130px);color:#e5eee8;font-weight:600;letter-spacing:-.04em}.bio-slide p{color:#a5baae;margin-top:10px}.bio-slide img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.reveal{transition:opacity .9s,transform 1.2s var(--ease)}.reveal:not(.visible){opacity:.3;transform:translateY(30px)}.gallery-section{padding:8vw 0;overflow:hidden;perspective:1200px}.gallery-stage{width:118%;margin-left:-9%;display:grid;gap:16px;transform:rotateX(8deg)}.gallery-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;will-change:transform}.gallery-tile{height:clamp(140px,16vw,280px);border-radius:24px;background:#202422;display:flex;flex-direction:column;justify-content:space-between;padding:25px;color:#737d76;transition:background .4s,transform .5s var(--ease);overflow:hidden}.gallery-tile:nth-child(even){background:#272b29}.gallery-tile span:first-child{font-size:11px;letter-spacing:.12em}.gallery-tile span:last-child{font-size:14px}.gallery-tile:hover{background:#343e37;transform:scale(.97)}.gallery-tile img{width:100%;height:100%;object-fit:cover}.index-title{font-size:clamp(32px,5.6vw,94px);font-weight:900;font-style:italic;color:var(--green);letter-spacing:-.04em;text-align:center;margin-bottom:5vw}.work-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:22px}.work-card{grid-column:span 2;background:#171b19;border-radius:28px;padding:28px 28px 0;overflow:hidden;color:#fff;transition:transform .55s var(--ease),background .4s;scroll-margin-top:115px}.work-card:nth-child(-n+2){grid-column:span 3}.work-card:hover{transform:translateY(-10px);background:#222b25;filter:none}.card-heading{display:flex;align-items:center;gap:10px;font-size:14px;color:#b6c7bd}.card-heading svg{width:23px;height:23px;fill:none;stroke:var(--green);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.card-arrow{margin-left:auto;font-size:25px;transition:transform .4s}.work-card:hover .card-arrow{transform:rotate(45deg)}.work-card h3{font-size:clamp(21px,2.1vw,36px);margin:24px 0 12px;letter-spacing:-.02em}.work-card>p{color:#afb9b2;line-height:1.7;min-height:54px}.card-media{height:clamp(190px,19vw,340px);margin-top:22px;background:var(--tint);border-radius:20px 20px 0 0;overflow:hidden;display:grid;place-items:center}.card-media img{height:125%;width:95%;object-fit:contain;transform:rotate(-6deg) translateY(18px);transition:transform .7s var(--ease)}.work-card:hover .card-media img{transform:rotate(0deg) translateY(-3px) scale(1.04)}.contact-footer{margin-top:6vw;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px;position:relative;isolation:isolate;overflow:hidden;padding-bottom:24px}.footer-glow{position:absolute;z-index:-1;width:65%;height:160%;left:15%;top:0;background:radial-gradient(ellipse at center,#263d304d,transparent 65%)}.brand-lockup{display:flex;align-items:center;gap:16px}.brand-lockup img{width:54px;height:54px;object-fit:contain;border-radius:14px}.brand-lockup .brand-logo{width:90px}.footer-brand p{font-size:16px;line-height:1.9;color:#9daaa2;margin-top:26px}.contact-footer h2{font-size:16px;font-weight:500;margin-bottom:28px}.contact-footer dt,.footer-contact>span{color:#8c9890;margin-top:22px;display:block;font-size:14px}.contact-footer dd{margin:9px 0 0;font-size:15px}.status-dot{display:inline-block;background:var(--green);width:7px;height:7px;border-radius:50%;margin-right:7px}.footer-contact>a,.footer-contact>button,.footer-contact>p{display:block;margin-top:9px;font-size:15px}.footer-contact>button{background:none;border:0;padding:0;color:#b4d3c0}.footer-contact>a:hover,.footer-contact>button:hover{color:var(--green)}.footer-bottom{grid-column:1/-1;display:flex;justify-content:space-between;margin-top:50px;color:#78877e;font-size:12px}dialog{background:#171e1a;color:white;border:1px solid #ffffff20;border-radius:24px;padding:40px;width:min(90vw,470px)}dialog::backdrop{background:#000b;backdrop-filter:blur(8px)}dialog h2{font-size:28px;margin-bottom:18px}dialog p{color:#aebcb3;line-height:1.8;margin-bottom:20px}dialog strong{font-size:30px}.close-dialog{position:absolute;right:16px;top:12px;font-size:26px;background:none;border:0}.dialog-actions{display:flex;gap:15px;margin-top:24px}.dialog-actions>*{border:0;padding:12px 18px;background:var(--green);color:#07140b;border-radius:30px;font-size:14px}.copy-status{margin-top:15px;margin-bottom:0!important}
@media(max-width:800px){.topbar{height:65px;padding:10px 13px;top:10px;border-radius:16px}.avatar-link img{width:40px;height:40px}.topbar nav{gap:20px}.topbar nav a{font-size:14px}.explore{padding:10px 18px;font-size:13px}.cover{height:78svh;min-height:520px}.lettering{top:42%;width:88%;left:5%}.hero-caption{font-size:clamp(9px,1.9vw,15px);letter-spacing:.025em}.folder-section{margin-top:5vw;padding-top:50px}.section-logo{width:65px;margin-bottom:45px}.folder-fan{height:39vw;min-height:180px}.folder{width:29%;--lift:0px!important;top:calc(abs(var(--slot) - 2)*10px)}.folder-section h2{margin-top:20px}.section{padding:65px 6vw}.bio-copy{padding:45px 0}.bio-copy p br{display:none}.bio-media{aspect-ratio:1.8;border-radius:20px}.gallery-stage{width:170%;margin-left:-35%;gap:10px}.gallery-row{gap:10px}.gallery-tile{border-radius:14px;padding:14px}.gallery-tile span{font-size:10px!important}.work-grid{gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.work-card,.work-card:nth-child(-n+2){grid-column:span 1;padding:20px 18px 0;border-radius:20px}.work-card:last-child{grid-column:span 2}.work-card h3{font-size:21px}.card-heading{font-size:11px;gap:6px}.work-card>p{font-size:13px}.card-media{height:190px;margin-top:16px}.contact-footer{grid-template-columns:1fr 1fr;gap:35px}.footer-brand{grid-column:1/-1}.footer-bottom{gap:16px}.heading-arrow{font-size:40px}}
@media(max-width:440px){.topbar nav{gap:13px}.explore{padding:9px 13px}.avatar-link img{width:34px;height:34px}.topbar{left:3%;right:3%}.cover{min-height:480px}.work-grid{grid-template-columns:1fr}.work-card,.work-card:nth-child(-n+2),.work-card:last-child{grid-column:auto}.card-media{height:230px}.contact-footer{grid-template-columns:1fr}.footer-brand,.footer-bottom{grid-column:auto}.footer-bottom{flex-wrap:wrap}.folder-section h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.gallery-row{transform:none!important}.reveal:not(.visible){opacity:1;transform:none}}
.section-logo,.brand-logo{filter:invert(1);mix-blend-mode:screen}.gallery-stage{touch-action:pan-y;cursor:grab}.gallery-stage.dragging{cursor:grabbing}.gallery-tile{will-change:transform}.work-card{transform-style:preserve-3d;transform:perspective(1400px) translate3d(var(--mx,0px),var(--my,0px),0) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));}.work-card:hover{z-index:2;transform:perspective(1400px) translate3d(var(--mx,0px),var(--my,-8px),0) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) scale(1.045)}.work-grid:has(.work-card:hover) .work-card:not(:hover){filter:saturate(.88) brightness(.9);transform:scale(.97)}.explore{transition:transform .4s var(--ease),background .2s}
body{background:var(--ground)}
