/* ===== 포트폴리오 홈 = jessicawells.co 구성 그대로 (2026-10-15) ===== */
.pfs-ee .ee-main.jw-main{animation:none!important;transform:none!important}
.jw{--jw-vh:calc(100vh - var(--pfs-top,0px) - var(--jw-bot,0px));--jw-t:clamp(20px,2.28vw,34px);--jw-big:22vw;--jw-ez:cubic-bezier(.19,1,.22,1);--jw-f:"Inter Tight","Pretendard YH","Pretendard","Helvetica Neue",Arial,sans-serif;
  position:relative;background:#fff linear-gradient(90deg,transparent calc(25% - 1px),#d9d9d9 calc(25% - 1px),#d9d9d9 25%,transparent 25%,transparent calc(50% - 1px),#d9d9d9 calc(50% - 1px),#d9d9d9 50%,transparent 50%,transparent calc(75% - 1px),#d9d9d9 calc(75% - 1px),#d9d9d9 75%,transparent 75%);color:#000;font-family:var(--jw-f);font-weight:400;letter-spacing:.01em;-webkit-font-smoothing:antialiased;overflow-x:clip}
@supports (height:100svh){.jw{--jw-vh:calc(100svh - var(--pfs-top,0px) - var(--jw-bot,0px))}}
.jw :where(*),.jw :where(*)::before,.jw :where(*)::after{box-sizing:border-box}
.jw :where(button){font:inherit;color:inherit;background:none;border:0;border-radius:0;padding:0;margin:0;cursor:pointer;letter-spacing:inherit;text-align:inherit;-webkit-tap-highlight-color:transparent}
.jw :where(a){color:inherit;text-decoration:none}
.jw :where(img){display:block;width:100%;height:100%;object-fit:cover}
.jw :where(h1,h2,p){margin:0;font-weight:400}
.jw :focus-visible{outline:1px solid currentColor;outline-offset:4px}

/* 헤더: (YH) (P) (A) (ME) — 네 칸마다 20px 안쪽, 색 반전 */
.jw-hdr{position:sticky;top:var(--pfs-top,0px);z-index:60;height:48px;margin-bottom:-48px;display:grid;grid-template-columns:repeat(4,1fr);align-items:start;padding-top:12px;mix-blend-mode:difference;color:#fff;pointer-events:none}
.jw-hi{pointer-events:auto;justify-self:start;margin-left:20px;display:inline-flex;align-items:baseline;font-size:var(--jw-t)!important;line-height:1.1!important;text-transform:uppercase;white-space:nowrap}
.jw-hi .jw-a{padding:0 .04em}
.jw-b{display:inline-grid;grid-template-columns:0fr;transition:grid-template-columns .7s var(--jw-ez)}
.jw-b>span{overflow:hidden;min-width:0}
.jw-hi:hover .jw-b,.jw-hi:focus-visible .jw-b{grid-template-columns:1fr}
.jw-menu{display:none!important}

/* 괄호 버튼: 마우스를 올리면 괄호가 둥근 테두리로 바뀜 */
.jw-pill{position:relative;display:inline-flex;align-items:center;height:1.37em;font-size:var(--jw-t)!important;line-height:1.1!important;text-transform:uppercase;white-space:nowrap}
.jw-pill::before{content:"";position:absolute;inset:0 -.12em;border:1px solid currentColor;border-radius:999px;opacity:0;transform:scaleX(.7);transition:opacity .3s,transform .7s var(--jw-ez)}
.jw-pt{padding:0 .06em}
.jw-pl,.jw-pr{display:inline-block;transition:opacity .25s,transform .7s var(--jw-ez)}
.jw-pill:hover::before,.jw-pill:focus-visible::before{opacity:1;transform:none}
.jw-pill:hover .jw-pl,.jw-pill:focus-visible .jw-pl{opacity:0;transform:translateX(-.3em)}
.jw-pill:hover .jw-pr,.jw-pill:focus-visible .jw-pr{opacity:0;transform:translateX(.3em)}

/* 큰 글자: 칸마다 가려 두었다가 아래에서 솟고, 지나가면 위로 빠짐 */
.jw-let{display:inline-flex;white-space:nowrap}
.jw-l{display:inline-block;overflow:hidden;line-height:.84;padding:0 .04em;margin:0 -.04em}
.jw-l>span{display:inline-block;transform:translateY(104%);transition:transform 1.15s var(--jw-ez);transition-delay:calc(var(--i)*70ms)}
.in .jw-l>span{transform:none}
.out .jw-l>span{transform:translateY(-104%);transition-delay:calc(var(--i)*35ms)}

/* 1. 타이틀 */
.jw-sec{position:relative}
.jw-title{height:var(--jw-vh);min-height:440px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5vw}
.jw-title h1{font-size:var(--jw-big)!important;line-height:.84!important;letter-spacing:-.02em;color:#000}
.jw-meet{opacity:0;transform:translateY(12px);transition:opacity .8s .5s,transform 1s .5s var(--jw-ez)}
.jw-title.in .jw-meet{opacity:1;transform:none}

/* 2. 소개 */
.jw-intro{height:var(--jw-vh);min-height:480px;display:flex;align-items:center;justify-content:center;padding:0 20px}
.jw-intro p{width:min(43.6vw,640px);font-size:var(--jw-t)!important;line-height:1.1!important;text-transform:uppercase;text-align:center;opacity:0;transform:translateY(28px);transition:opacity 1s,transform 1.3s var(--jw-ez)}
.jw-intro.in p{opacity:1;transform:none}

/* 3. 커지는 고정 화면 */
.jw-case{position:relative;height:calc(var(--jw-vh)*2)}
.jw-case-stick{position:sticky;top:var(--pfs-top,0px);height:var(--jw-vh);overflow:hidden}
.jw-case-frame{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:hidden;background:#111;transform:scale(var(--s,.834));transform-origin:50% 50%;will-change:transform}
.jw-case-frame img{position:absolute;inset:0;opacity:0;transition:opacity 1s ease}
.jw-case-frame img.on{opacity:1}

/* 4. 프로젝트: 가로로 흐르는 카드 (칸마다 위·아래·가운데) */
.jw-proj{position:relative}
.jw-proj-lab{display:flex;justify-content:center;padding-top:72px;height:113px}
.jw-proj-pin{position:relative}
.jw-proj-stick{position:sticky;top:var(--pfs-top,0px);height:var(--jw-vh);overflow:hidden}
.jw-track{position:absolute;left:0;top:0;height:100%;display:flex;will-change:transform}
.jw-col{position:relative;flex:0 0 25vw;width:25vw;height:100%}
.jw-card{position:absolute;left:20px;width:calc(25vw - 40px);display:block}
.jw-card.pos0{top:10%}
.jw-card.pos1{top:37%}
.jw-card.pos2{top:min(66%,calc(100% - (25vw - 40px)*.6667 - 44px))}
.jw-card-img{display:block;aspect-ratio:3/2;overflow:hidden;background:#efefef}
.jw-card-img img{transition:transform 1.2s var(--jw-ez)}
.jw-card:hover .jw-card-img img{transform:scale(1.035)}
.jw-cap{display:flex;justify-content:space-between;gap:14px;margin-top:10px;font-size:12px!important;line-height:1.12!important;letter-spacing:.02em;text-transform:uppercase}
.jw-cap>span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jw-cap>span:first-child{flex:1 1 auto}
.jw-cap>span:last-child:not(:first-child){flex:0 0 auto;max-width:45%}
.jw-all-n{display:flex;align-items:flex-end;aspect-ratio:3/2;padding:14px;background:#000;color:#fff;font-size:clamp(56px,7.4vw,108px);line-height:.8;letter-spacing:-.03em}

/* 5. EXPLORE: 큰 글자 위로 대표작이 한 장씩 겹쳐 올라옴 */
.jw-exp{position:relative;height:calc(var(--jw-vh)*4)}
.jw-exp-word{position:sticky;top:var(--pfs-top,0px);height:var(--jw-vh);display:flex;align-items:center;justify-content:center;z-index:0}
.jw-exp-word h2{font-size:var(--jw-big)!important;line-height:.84!important;letter-spacing:-.02em;color:#000}
.jw-exp-items{position:relative;z-index:1;height:calc(var(--jw-vh)*3)}
.jw-exp-item{position:sticky;top:var(--pfs-top,0px);height:var(--jw-vh);display:flex;align-items:center;justify-content:center;pointer-events:none}
.jw-exp-card{pointer-events:auto;display:block;width:calc(50vw - 40px);max-height:calc(var(--jw-vh) - 96px);background:#fff;padding-bottom:4px;margin-top:22px}
.jw-exp-img{display:block;aspect-ratio:618/400;max-height:calc(var(--jw-vh) - 130px);overflow:hidden;background:#eee}
.jw-exp-card .jw-cap{margin-top:8px}

/* 6. 검은 원이 화면을 덮음 */
.jw-circ{position:relative;height:calc(var(--jw-vh)*2);background:#fff}
.jw-circ-stick{position:sticky;top:var(--pfs-top,0px);height:var(--jw-vh);overflow:hidden;display:flex;align-items:center;justify-content:center}
.jw-circ-dot{position:absolute;left:50%;top:50%;width:150vmax;height:150vmax;margin:-75vmax 0 0 -75vmax;border-radius:50%;background:#000;transform:scale(var(--c,.035));will-change:transform}
.jw-circ-yh{position:relative;color:#fff;font-size:var(--jw-big);line-height:.84;letter-spacing:-.02em}
.jw-circ::after,.jw-blk::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(90deg,transparent calc(25% - 1px),#262626 calc(25% - 1px),#262626 25%,transparent 25%,transparent calc(50% - 1px),#262626 calc(50% - 1px),#262626 50%,transparent 50%,transparent calc(75% - 1px),#262626 calc(75% - 1px),#262626 75%,transparent 75%);mix-blend-mode:difference}

/* 7. 검은 화면: 양옆에서 모이는 두 줄 + 큰 사진 + 푸터 */
.jw-blk{position:relative;background:#000;color:#fff}
.jw-blk-lines{height:var(--jw-vh);min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:40px;overflow:hidden;padding:0 20px}
.jw-blk-lines p{display:flex;flex-direction:column;align-items:center;font-size:var(--jw-t)!important;line-height:1.1!important;text-transform:uppercase;text-align:center}
.jw-blk-lines p span{display:block;white-space:nowrap;will-change:transform}
.jw-blk-lines p span:first-child{transform:translateX(calc(var(--x,1)*-38vw))}
.jw-blk-lines p span:last-child{transform:translateX(calc(var(--x,1)*38vw))}
.jw-disc{opacity:0;transform:translateY(14px);transition:opacity .8s,transform 1s var(--jw-ez)}
.jw-blk-lines.in .jw-disc{opacity:1;transform:none}
.jw-blk-img{position:relative;z-index:4;height:var(--jw-vh);overflow:hidden;background:#111}
.jw-foot{padding:40px 20px;display:flex;flex-direction:column;align-items:center;gap:80px}
.jw-foot-links{display:flex;justify-content:center;gap:clamp(40px,14vw,208px)}
.jw-foot-yh{font-size:var(--jw-big);line-height:.84;letter-spacing:-.02em}

/* 커서: 흰 원(색 반전) → 카드 위에서는 VIEW ↘ */
html.jw-nocur .jw,html.jw-nocur .jw *{cursor:none!important}
.jw-cursor{position:fixed;left:0;top:0;z-index:5000;pointer-events:none;opacity:0;mix-blend-mode:difference;transition:opacity .25s;font:400 12px/1 "Inter Tight","Helvetica Neue",Arial,sans-serif;letter-spacing:.04em}
.jw-cursor.on{opacity:1}
.jw-cursor.view{mix-blend-mode:normal}
.jw-cd{position:absolute;left:-14px;top:-14px;width:28px;height:28px;border-radius:50%;background:#fff;transition:transform .4s var(--jw-ez,cubic-bezier(.19,1,.22,1))}
.jw-cursor.link .jw-cd{transform:scale(.45)}
.jw-cursor.view .jw-cd{transform:scale(0)}
.jw-cvw{position:absolute;left:0;top:0;display:flex;align-items:center;gap:4px;transform:translate(-50%,-50%) scale(.3);opacity:0;transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}
.jw-cursor.view .jw-cvw{opacity:1;transform:translate(-50%,-50%)}
.jw-cv{height:32px;padding:0 15px;border-radius:999px;background:#fff;color:#000;display:flex;align-items:center;text-transform:uppercase}
.jw-ca{width:32px;height:32px;border-radius:50%;background:#fff;color:#000;display:flex;align-items:center;justify-content:center;font-size:15px}

/* 모바일 메뉴 */
.jw-mnu{position:fixed;inset:0;z-index:4500;background:#fff;color:#000;font-family:"Inter Tight","Pretendard YH","Helvetica Neue",Arial,sans-serif;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:jwMnu .45s cubic-bezier(.19,1,.22,1) both}
.jw-mnu nav{display:flex;flex-direction:column;align-items:center;gap:22px}
.jw-mnu .jw-pill{font-size:26px!important}
.jw-mnu-x{position:absolute!important;top:calc(var(--pfs-top,0px) + 12px);right:20px;margin:0!important;font-size:20px!important}
@keyframes jwMnu{from{opacity:0}to{opacity:1}}

@media (max-width:767px){
  .jw{--jw-t:20px;--jw-big:32vw;background-image:linear-gradient(90deg,transparent calc(50% - .5px),#d9d9d9 calc(50% - .5px),#d9d9d9 calc(50% + .5px),transparent calc(50% + .5px))}
  .jw-circ::after,.jw-blk::after{background:linear-gradient(90deg,transparent calc(50% - .5px),#262626 calc(50% - .5px),#262626 calc(50% + .5px),transparent calc(50% + .5px))}
  .jw-hdr{grid-template-columns:1fr auto;height:52px;margin-bottom:-52px;padding-top:14px}
  .jw-hi1,.jw-hi2,.jw-hi3{display:none!important}
  .jw-menu{display:inline-flex!important;margin:0 20px 0 0}
  .jw-hi:hover .jw-b{grid-template-columns:0fr}
  .jw-title{gap:28px}
  .jw-intro p{width:100%;max-width:420px}
  .jw-proj-lab{padding-top:76px;height:120px}
  .jw-col{flex-basis:66vw;width:66vw}
  .jw-card{width:72vw}
  .jw-card.pos0{top:9%}
  .jw-card.pos1{top:37%}
  .jw-card.pos2{top:min(65%,calc(100% - 72vw*.6667 - 44px))}
  .jw-exp-word h2{font-size:22vw!important}
  .jw-exp-card{width:calc(100vw - 40px)}
  .jw-blk-lines p{font-size:17px!important}
  .jw-blk-lines p span{white-space:normal}
  .jw-blk-lines p span:first-child{transform:translateX(calc(var(--x,1)*-60vw))}
  .jw-blk-lines p span:last-child{transform:translateX(calc(var(--x,1)*60vw))}
  .jw-foot{gap:56px}
}
@media (prefers-reduced-motion:reduce){
  .jw-l>span,.jw-intro p,.jw-meet,.jw-disc{transition:none!important}
}

/* ===== 프로젝트 상세 = ashcamp.co 구성 그대로 (2026-10-15) ===== */
html.ac-open,html.ac-open body{overflow:hidden!important}
html.ac-open .jw-cursor,html.ac-open body>.eesite.has-cursor{display:none!important}
html.ac-open .page{animation:none!important;transform:none!important;opacity:1!important}
.ac{--ac-g:#787878;--ac-ln:rgba(255,255,255,.08);--ac-mono:"Martian Mono","Pretendard YH",ui-monospace,monospace;--ac-type:"Fragment Mono","Pretendard YH",ui-monospace,monospace;--ac-sans:"Inter Tight","Pretendard YH","Pretendard","Helvetica Neue",Arial,sans-serif;--ac-pad:40px;--ac-pr:80px;--ac-c1:calc((100% - var(--ac-pad) - var(--ac-pr) - 80px)*.32258);
  position:fixed;inset:0;z-index:3600;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:#0a0a0a;color:#fff;font-family:var(--ac-sans);font-weight:400;letter-spacing:0;text-align:left;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.ac :where(*),.ac :where(*)::before,.ac :where(*)::after{box-sizing:border-box}
.ac :where(button){font:inherit;color:inherit;background:none;border:0;border-radius:0;padding:0;margin:0;cursor:pointer;letter-spacing:inherit;text-align:inherit;-webkit-tap-highlight-color:transparent}
.ac :where(a){color:inherit;text-decoration:none}
.ac :where(h1,h2,p,figure){margin:0;font-weight:400}
.ac :focus-visible{outline:1px solid #fff;outline-offset:3px}
.ac-dots{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.ac-lines{position:fixed;inset:0;z-index:1;pointer-events:none;
  background-image:linear-gradient(var(--ac-ln) 50%,transparent 0),linear-gradient(var(--ac-ln) 50%,transparent 0),linear-gradient(var(--ac-ln) 50%,transparent 0);
  background-size:1px 8px;background-repeat:repeat-y;background-position:20px 0,calc(var(--ac-pad) + var(--ac-c1) + 20px) 0,calc(100% - 20px) 0}

/* 위 고정 메뉴 */
.ac-nav{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:46px 40px 0 40px;pointer-events:none;font:400 11px/13.2px var(--ac-mono);text-transform:uppercase;color:#fff}
.ac-nav>*{pointer-events:auto}
.ac-nav-l{display:flex;gap:40px}
.ac-nav-l button{transition:opacity .2s}
.ac-nav-l button:hover{opacity:.55}
.ac-nav-r{display:flex;align-items:center;gap:5px}
.ac-clock{display:inline-flex;align-items:center;gap:12px;margin-right:60px;letter-spacing:-.04em;font-variant-numeric:tabular-nums;white-space:nowrap}
.ac-clock i{width:6px;height:6px;border-radius:50%;background:#e5484d;box-shadow:0 0 8px rgba(229,72,77,.6)}
.ac-clock i.on{background:#3dd68c;box-shadow:0 0 8px rgba(61,214,140,.6)}
.ac-chat{height:30px;padding:0 19px;border-radius:999px;background:#d4d4d4;color:#0a0a0a;display:inline-flex;align-items:center;letter-spacing:.06em;transition:background .25s}
.ac-chat:hover{background:#fff}
.ac-chat-go{width:30px;height:30px;border-radius:50%;background:#d4d4d4;color:#0a0a0a;display:inline-flex;align-items:center;justify-content:center;font-size:13px;transition:transform .45s cubic-bezier(.2,.7,.2,1),background .25s}
.ac-chat-go:hover{transform:rotate(-45deg);background:#fff}
.ac-menu{display:none!important}
.ac-mnu{display:none}

/* 첫 화면: 가운데 4줄 + 아래 세 칸 */
.ac-hero{position:relative;z-index:2;height:100vh;height:100dvh;min-height:540px}
.ac-hero-in{position:absolute;left:calc(var(--ac-pad) + var(--ac-c1) + 80px);right:var(--ac-pr);top:50%;transform:translateY(-50%)}
.ac-type{font:400 14px/23px var(--ac-type);text-transform:uppercase;letter-spacing:0;max-width:640px;word-break:keep-all}
.ac-tl{display:block}
.ac-type .w{color:#fff}
.ac-type .g{color:#666}
.ac-type .h{visibility:hidden}
.ac-hero-foot{position:absolute;left:40px;right:40px;bottom:53px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;font:400 11px/1.5 var(--ac-mono);text-transform:uppercase;color:#fff;white-space:nowrap}
.ac-hero-foot span{overflow:hidden;text-overflow:ellipsis}
.ac-hero-foot span:nth-child(2){text-align:center}
.ac-hero-foot span:nth-child(3){text-align:right}

/* 작업 블록: 왼쪽 고정 글 + 오른쪽 둥근 이미지 */
.ac-work,.ac-info{position:relative;z-index:2}
.ac-blk{display:grid;grid-template-columns:minmax(0,360fr) minmax(0,756fr);column-gap:80px;padding:60px var(--ac-pr) 60px var(--ac-pad);border-top:1px dashed var(--ac-ln)}
.ac-work>.ac-blk:first-of-type{border-top:0}
.ac-l{min-width:0}
.ac-r{min-width:0}
.ac-stick{position:sticky;top:72px;padding-top:40px}
.ac-l h2{font-size:20px;line-height:24px;color:#fff;letter-spacing:-.005em;word-break:keep-all}
.ac-l p{margin-top:10px;font-size:14px;line-height:16.8px;color:var(--ac-g);max-width:360px;word-break:keep-all}
.ac-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}
.ac-tags span{height:21px;padding:0 9px;border-radius:100px;background:#222;color:#b8b8b8;font-size:11.5px;display:inline-flex;align-items:center;white-space:nowrap}
.ac-media{display:flex;flex-direction:column;gap:10px}
.ac-row{display:flex;gap:10px}
.ac-fig{flex:1 1 0;min-width:0;border-radius:10px;overflow:hidden;background:#141414}
.ac-fig img{display:block;width:100%;height:auto;max-height:min(86vh,1100px);object-fit:contain}
.ac-row.pair .ac-fig{aspect-ratio:3/4}
.ac-row.pair .ac-fig img{height:100%;max-height:none}
.ac-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ac-stats>div{border-radius:10px;background:#141414;padding:26px 24px 22px;min-height:178px;display:flex;flex-direction:column;justify-content:space-between}
.ac-stats b{font-weight:400;font-size:clamp(40px,4.4vw,64px);line-height:1;letter-spacing:-.03em;color:#fff}
.ac-stats b small{font-size:.38em;margin-left:5px;color:#9a9a9a;letter-spacing:0}
.ac-stats span{margin-top:22px;font:400 11px/1.55 var(--ac-mono);color:#8a8a8a;text-transform:uppercase;word-break:keep-all}
.ac-note{border-radius:10px;background:#141414;padding:40px 40px 44px}
.ac-note p{font-size:22px;line-height:1.5;color:#d6d6d6;letter-spacing:-.01em;word-break:keep-all}
.ac-loading,.ac-err{padding:40px 0;font:400 11px/1.6 var(--ac-mono);color:#7a7a7a;text-transform:uppercase}
.ac-err{padding:20px var(--ac-pr) 0 var(--ac-pad)}
.ac-err button{margin-left:10px;text-decoration:underline;text-underline-offset:3px}

/* 정보: About · What I did · In numbers · Links */
.ac-info .ac-blk{padding-top:100px;padding-bottom:100px}
.ac-about-img{margin-bottom:60px}
.ac-h1{font-size:40px;line-height:48px;letter-spacing:-.02em;color:#fff;max-width:640px;word-break:keep-all}
.ac-para{margin-top:24px;max-width:640px;display:flex;flex-direction:column;gap:20px}
.ac-para p{font-size:16px;line-height:19.2px;color:var(--ac-g);word-break:keep-all}
.ac-cap{margin-top:60px}
.ac-cap small{display:block;margin-bottom:20px;font:400 11px/13px var(--ac-mono);letter-spacing:.02em;text-transform:uppercase;color:#fff}
.ac-cap p{font-size:16px;line-height:19.2px;color:var(--ac-g);margin-bottom:10px}
.ac-logos{display:flex;flex-wrap:wrap;gap:14px 40px}
.ac-logos span{font-size:19px;line-height:1.2;color:#bdbdbd;letter-spacing:-.01em}
.ac-rows{display:flex;flex-direction:column}
.ac-xp{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:0 0 32px;margin-bottom:32px;border-bottom:1px dashed var(--ac-ln)}
.ac-xp:last-child{border-bottom:0;margin-bottom:0}
.ac-xp>div{max-width:400px}
.ac-xp b{display:block;font-weight:400;font-size:16px;line-height:19.2px;color:#fff;word-break:keep-all}
.ac-xp p{margin-top:8px;font-size:16px;line-height:19.2px;color:var(--ac-g);word-break:keep-all}
.ac-xp>span{flex:0 0 auto;font-size:14px;line-height:22px;letter-spacing:-.5px;color:var(--ac-g)}
.ac-xp>span.big{font-size:30px;line-height:1;letter-spacing:-.02em;color:#fff}
.ac-press{display:flex;flex-direction:column}
.ac-press>a,.ac-press>button{width:100%;display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:40px 0;border-top:1px dashed var(--ac-ln);font-size:16px;line-height:19.2px;text-align:left}
.ac-press>:first-child{border-top:0;padding-top:20px}
.ac-press .k{color:var(--ac-g);flex:0 0 auto}
.ac-press .t{color:#fff;text-align:right;transition:opacity .2s;word-break:keep-all}
.ac-press small{margin-left:6px;font-size:13px;color:var(--ac-g)}
.ac-press>a:hover .t,.ac-press>button:hover .t{opacity:.55}

/* 마지막: 다음 프로젝트 + 점선 원 */
.ac-foot{position:relative;z-index:2;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:120px 40px 110px;border-top:1px dashed var(--ac-ln)}
.ac-foot-in{display:flex;flex-direction:column;align-items:center;text-align:center}
.ac-foot h2{font-size:40px;line-height:48px;letter-spacing:-.02em;color:#fff}
.ac-foot-in>p{margin-top:10px;max-width:400px;font-size:16px;line-height:19.2px;color:var(--ac-g);word-break:keep-all}
.ac-hi{position:relative;margin-top:40px;width:200px;height:200px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;color:#fff}
.ac-hi::before{content:"";position:absolute;inset:0;border-radius:50%;border:1.5px dotted rgba(255,255,255,.75);transition:transform 1.4s cubic-bezier(.2,.7,.2,1),border-color .3s}
.ac-hi span{position:relative;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.ac-hi:hover::before{transform:rotate(120deg) scale(1.08);border-color:#fff}
.ac-hi:hover span{transform:scale(1.06)}
.ac-foot-bar{position:absolute;left:40px;right:40px;bottom:28px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;font:400 11px/1.5 var(--ac-mono);text-transform:uppercase;color:#fff}
.ac-foot-bar>:first-child{justify-self:start}
.ac-foot-bar>:last-child{justify-self:end}
.ac-foot-bar>*{transition:opacity .2s}
.ac-foot-bar>*:hover{opacity:.6}

/* 스크롤하면 살짝 떠오르며 나타남 */
.ac [data-ac-rv]{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform 1.1s cubic-bezier(.2,.7,.2,1)}
.ac [data-ac-rv].in{opacity:1;transform:none}

@media (max-width:767px){
  .ac{--ac-pad:20px;--ac-pr:20px}
  .ac-lines{background-image:linear-gradient(var(--ac-ln) 50%,transparent 0),linear-gradient(var(--ac-ln) 50%,transparent 0);background-position:10px 0,calc(100% - 10px) 0}
  .ac-nav{padding:22px 20px 0}
  .ac-nav-l,.ac-chat,.ac-chat-go{display:none!important}
  .ac-clock{margin:0}
  .ac-nav-r{flex:1;justify-content:space-between}
  .ac-menu{display:inline-flex!important;align-items:center;gap:8px}
  .ac-menu i{width:8px;height:8px;border-radius:50%;background:#fff}
  .ac-mnu{position:fixed;top:56px;left:12px;right:12px;z-index:21;display:flex;flex-direction:column;padding:8px;border-radius:12px;background:#161616;border:1px solid #232323;font:400 12px/1 var(--ac-mono);text-transform:uppercase;animation:acMnu .3s cubic-bezier(.2,.7,.2,1) both}
  .ac-mnu>*{padding:16px 12px;text-align:left}
  .ac-mnu>*+*{border-top:1px dashed var(--ac-ln)}
  .ac-hero-in{left:20px;right:20px}
  .ac-type{font-size:13px;line-height:21px}
  .ac-hero-foot{left:20px;right:20px;bottom:40px;grid-template-columns:1fr auto;font-size:10.5px}
  .ac-hero-foot span:nth-child(2){display:none}
  .ac-blk{grid-template-columns:minmax(0,1fr);row-gap:36px;padding:56px 20px}
  .ac-stick{position:static;padding-top:0}
  .ac-row.pair{gap:8px}
  .ac-media{gap:8px}
  .ac-fig{border-radius:8px}
  .ac-stats{gap:8px}
  .ac-stats>div{min-height:140px;padding:20px 16px 16px}
  .ac-stats b{font-size:34px}
  .ac-note{padding:26px 22px 28px}
  .ac-note p{font-size:18px}
  .ac-info .ac-blk{padding-top:64px;padding-bottom:64px}
  .ac-h1{font-size:28px;line-height:34px}
  .ac-cap{margin-top:44px}
  .ac-xp>span.big{font-size:24px}
  .ac-press>a,.ac-press>button{padding:28px 0}
  .ac-foot{padding:100px 20px 110px}
  .ac-foot h2{font-size:30px;line-height:36px}
  .ac-hi{width:170px;height:170px}
  .ac-foot-bar{left:16px;right:16px;bottom:24px;font-size:9.5px;gap:8px}
}
@keyframes acMnu{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.ac [data-ac-rv]{opacity:1;transform:none;transition:none}}

/* ===== 포트폴리오 하나로 통일 (2026-10-15 2차): 첫 화면 정보 · 프로필 · 아카이브 · 연락 ===== */
html.pf-jw .chat-dock,html.pf-jw .hp-music-dock,html.pf-jw .fx-orbit,html.pf-jw footer.site-foot{display:none!important}
.pfs-jw{background:#fff}
.jw-main{display:block;animation:jwIn .7s cubic-bezier(.19,1,.22,1)}
@keyframes jwIn{from{opacity:0}to{opacity:1}}
.jw .ko,.jw-ic p.ko{font-family:"Pretendard YH","Pretendard","Inter Tight",sans-serif;word-break:keep-all;letter-spacing:-.005em}
/* 작은 괄호 버튼 + 선택됨 */
.jw-pill>span{position:relative;z-index:1}
.jw-pill::before{z-index:0}
.jw-pill.sm{font-size:12px!important;height:26px;letter-spacing:.04em}
.jw-pill.sm .jw-pt{padding:0 .35em}
.jw-pill.sm::before{inset:0 -.3em}
.jw-pill i{font-style:normal;opacity:.45;margin-left:.35em}
.jw-pill.on{color:#fff}
.jw-pill.on::before{opacity:1;transform:none;background:#000;border-color:#000}
.jw-pill.on .jw-pl,.jw-pill.on .jw-pr{opacity:0}

/* 홈 첫 화면: 큰 YH + 정보 4칸 */
.jw-hero{position:relative;min-height:var(--jw-vh);display:flex;flex-direction:column;padding:60px 0 30px}
.jw-hero-yh{flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-height:0}
.jw-hero h1{margin:0;font-weight:400;font-size:max(110px,min(22vw,calc((var(--jw-vh) - 480px)*1.19)))!important;line-height:.84!important;letter-spacing:-.02em;color:#000}
.jw-info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:30px}
.jw-ic{padding:0 20px;min-width:0;font-size:13px;line-height:1.5;opacity:0;transform:translateY(16px);transition:opacity .9s ease,transform 1.1s var(--jw-ez)}
.jw-ic:nth-child(2){transition-delay:.08s}.jw-ic:nth-child(3){transition-delay:.16s}.jw-ic:nth-child(4){transition-delay:.24s}
.jw-hero.in .jw-ic{opacity:1;transform:none}
.jw-ic small{display:block;margin-bottom:14px;font-size:12px;letter-spacing:.02em;text-transform:uppercase;color:#000}
.jw-nm{display:block;margin-bottom:10px;font-weight:400;font-size:20px;line-height:1.15;text-transform:uppercase;letter-spacing:.005em}
.jw-nm span{margin-left:6px;font-size:14px;color:#666;font-family:"Pretendard YH","Pretendard",sans-serif}
.jw-ic p{margin:0 0 3px;color:#111}
.jw-ic p.ko{margin-bottom:9px;font-size:13.5px;line-height:1.6;color:#222}
.jw-ic-act{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px}
.jw-xp{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.jw-xp li{display:grid;grid-template-columns:104px minmax(0,1fr);column-gap:10px;font-size:12px;line-height:1.35}
.jw-xp li span{grid-row:span 2;color:#777;font-size:11px;letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap}
.jw-xp li b{font-weight:500;font-size:12.5px;font-family:"Pretendard YH","Pretendard",sans-serif}
.jw-xp li i{font-style:normal;color:#777;font-size:11.5px;font-family:"Pretendard YH","Pretendard",sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jw-sk{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:13px;text-transform:uppercase;letter-spacing:.01em}
.jw-sk i{font-style:normal;margin-left:6px;color:#777}
.jw-ic small.jw-ic-sub{margin-top:20px}
/* 커지는 대표 화면 캡션 */
.jw-case-cap{position:absolute;left:20px;right:20px;bottom:16px;z-index:2;display:flex;justify-content:space-between;gap:20px;color:#fff;font-size:12px;letter-spacing:.02em;text-transform:uppercase;text-shadow:0 1px 10px rgba(0,0,0,.35)}
.jw-noimg{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:12px;background:#efefef;font-size:12px;text-transform:uppercase;text-align:center}

/* 다른 화면 제목: 큰 글자 + 4칸 설명 */
.jw-ptitle{padding:110px 0 40px;min-height:min(var(--jw-vh),780px);display:flex;flex-direction:column;justify-content:center}
.jw-ptitle h1{margin:0;display:flex;flex-direction:column;align-items:center;font-weight:400;font-size:20vw!important;line-height:.84!important;letter-spacing:-.02em;color:#000}
.jw-pline{display:block}
.jw-pcols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:56px}
.jw-pcols>div{padding:0 20px;opacity:0;transform:translateY(14px);transition:opacity .9s ease .35s,transform 1.1s var(--jw-ez) .35s}
.jw-ptitle.in .jw-pcols>div{opacity:1;transform:none}
.jw-pcols small{display:block;margin-bottom:8px;font-size:12px;letter-spacing:.02em;text-transform:uppercase}
.jw-pcols p{margin:0;font-size:14px;line-height:1.4;text-transform:uppercase;word-break:break-word}

/* 프로필 블록 */
.jw-blockrow{display:grid;grid-template-columns:25% 75%;padding:80px 0}
.jw-bl{padding:4px 20px 0}
.jw-br{padding:0 20px;max-width:960px}
.jw-br p{margin:0 0 .65em;font-size:clamp(18px,1.9vw,26px);line-height:1.5}
.jw-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:30px 0 100px}
.jw-facts>div{padding:0 20px;display:flex;flex-direction:column;gap:12px}
.jw-facts b{font-weight:400;font-size:clamp(64px,9vw,140px);line-height:.85;letter-spacing:-.03em}
.jw-facts span{font-size:12px;letter-spacing:.02em;text-transform:uppercase}
.jw-list{position:relative;padding:40px 0 90px}
.jw-sh{display:flex;justify-content:space-between;align-items:center;padding:0 20px 26px}
.jw-sh>span{font-size:12px;letter-spacing:.02em}
.jw-row{position:relative;display:grid;grid-template-columns:25% 50% 25%;align-items:baseline;width:100%;padding:22px 0;border-top:1px solid #d9d9d9;text-align:left;color:#000}
.jw-list>.jw-row:last-of-type,.jw-aindex>.jw-row:last-of-type{border-bottom:1px solid #d9d9d9}
.jw-r1{padding:0 20px;font-size:12px;letter-spacing:.02em;text-transform:uppercase;color:#555;font-variant-numeric:tabular-nums}
.jw-r2{padding:0 20px;display:flex;flex-direction:column;gap:6px;min-width:0}
.jw-r2 b{font-weight:400;font-size:var(--jw-t);line-height:1.1;text-transform:uppercase;letter-spacing:.005em;transition:transform .6s var(--jw-ez);font-family:"Inter Tight","Pretendard YH","Pretendard",sans-serif}
.jw-r2 small,.jw-r3 small{font-size:12px;color:#777;font-family:"Pretendard YH","Pretendard","Inter Tight",sans-serif;word-break:keep-all}
.jw-r3{padding:0 20px;display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right;font-size:13px;font-family:"Pretendard YH","Pretendard","Inter Tight",sans-serif;word-break:keep-all}
.jw-row:hover .jw-r2 b{transform:translateX(12px)}
.jw-row-pv{position:absolute;right:calc(25% + 20px);top:50%;z-index:3;width:210px;aspect-ratio:3/2;overflow:hidden;opacity:0;pointer-events:none;transform:translateY(-50%) scale(.86);transition:opacity .3s ease,transform .5s var(--jw-ez)}
.jw-row:hover .jw-row-pv{opacity:1;transform:translateY(-50%) scale(1)}
.jw-words{display:flex;flex-wrap:wrap;row-gap:8px;padding:0 20px;font-size:var(--jw-t);line-height:1.15;text-transform:uppercase}
.jw-words span:not(:last-child)::after{content:"/";margin:0 .45em;color:#bdbdbd}
.jw-grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.jw-gc{padding:20px 20px 28px;border-top:1px solid #d9d9d9}
.jw-gc b{display:block;font-weight:400;font-size:18px;line-height:1.15;text-transform:uppercase}
.jw-gc p{margin:8px 0 6px;font-size:13px;color:#444}
.jw-gc small{font-size:12px;color:#777}
.jw-clients{margin:0;padding:0 20px;font-size:clamp(18px,2vw,28px);line-height:1.5;word-break:keep-all;font-family:"Pretendard YH","Pretendard","Inter Tight",sans-serif}
.jw-next{display:flex;justify-content:center;flex-wrap:wrap;gap:20px 56px;padding:40px 20px 130px}

/* 아카이브 */
.jw-tools{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:0 20px 52px}
.jw-filters{display:flex;flex-wrap:wrap;gap:10px 20px}
.jw-views{display:flex;gap:16px;flex:0 0 auto}
.jw-agrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));row-gap:60px;padding-bottom:40px}
.jw-acard{display:block;min-width:0;padding:0 20px;text-align:left}
.jw-acard .jw-card-img{display:block;aspect-ratio:3/2;overflow:hidden;background:#efefef}
.jw-acard .jw-card-img img{transition:transform 1.2s var(--jw-ez)}
.jw-acard:hover .jw-card-img img{transform:scale(1.04)}
.jw-cap2{display:block;margin-top:6px;font-size:12px;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:"Pretendard YH","Pretendard","Inter Tight",sans-serif}
.jw-aindex{position:relative;padding-bottom:40px}
.jw-pv{position:fixed;left:0;top:0;z-index:45;width:280px;aspect-ratio:3/2;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .25s ease}
.jw-pv.on{opacity:1}
.jw-pv img{width:100%;height:100%;object-fit:cover}
.jw-empty{padding:40px 20px;color:#777}

/* 연락 */
.jw-mail{display:flex;flex-direction:column;align-items:center;gap:30px;padding:30px 20px 100px}
.jw-mail>a{font-size:clamp(26px,5.4vw,84px);line-height:1.05;letter-spacing:-.02em;border-bottom:2px solid currentColor;padding-bottom:.06em;word-break:break-all;text-align:center}
.jw-mail>div{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 26px}

/* 예전 화면 */
.jw-legacy-in{position:relative;max-width:1240px;margin:0 auto;padding:0 20px 100px;background:#fff;font-family:"Pretendard YH","Pretendard",sans-serif}

/* 꼬리 맨 아래 줄 */
.jw-foot-bar{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:-28px;font-size:12px;letter-spacing:.02em;color:#8a8a8a;text-transform:uppercase}
.jw-foot-bar span:nth-child(2){text-align:center;text-transform:none}
.jw-foot-bar span:nth-child(3){text-align:right}

/* 나타남 */
.jw [data-jw-rv]{opacity:0;transform:translateY(22px);transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms),transform 1.1s cubic-bezier(.19,1,.22,1) var(--d,0ms)}
.jw [data-jw-rv].in{opacity:1;transform:none}

@media (max-width:1100px){
  .jw-info{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:34px}
  .jw-agrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .jw-grid4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:767px){
  .jw-hero{padding:70px 0 24px}
  .jw-hero-yh{flex:0 0 auto;min-height:30vh}
  .jw-hero h1{font-size:32vw!important}
  .jw-info{grid-template-columns:minmax(0,1fr);row-gap:30px;margin-top:10px}
  .jw-case-cap{left:14px;right:14px;bottom:12px;font-size:10.5px}
  .jw-ptitle{padding:96px 0 30px;min-height:0}
  .jw-ptitle h1{font-size:22vw!important}
  .jw-pcols{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:22px;margin-top:40px}
  .jw-blockrow{grid-template-columns:minmax(0,1fr);row-gap:16px;padding:56px 0}
  .jw-br p{font-size:18px}
  .jw-facts{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:36px;padding:10px 0 60px}
  .jw-facts b{font-size:64px}
  .jw-list{padding:30px 0 60px}
  .jw-row{grid-template-columns:minmax(0,1fr);row-gap:8px;padding:18px 0}
  .jw-r3{align-items:flex-start;text-align:left}
  .jw-row-pv{display:none}
  .jw-row:hover .jw-r2 b{transform:none}
  .jw-tools{flex-direction:column;padding-bottom:36px}
  .jw-agrid{row-gap:34px}
  .jw-acard{padding:0 12px 0 20px}
  .jw-acard:nth-child(2n){padding:0 20px 0 12px}
  .jw-grid4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .jw-gc{padding:16px 20px 22px}
  .jw-gc b{font-size:15px}
  .jw-pv{display:none}
  .jw-next{gap:18px 30px;padding-bottom:90px}
  .jw-foot-bar{grid-template-columns:minmax(0,1fr);text-align:center;margin-top:-14px}
  .jw-foot-bar span:nth-child(3){text-align:center}
}