/* PIXON ATELIER — 인테리어 시공 스튜디오 (PIXON 포트폴리오 데모) */
@import url("https://api.fontshare.com/v2/css?f[]=clash-display@400,500,600,700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&display=swap");
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css");

:root{
  --bg:#0a0a0b; --raw:#16161a; --line:#2a2a30; --concrete:#b3b3b7; --dim:#77777f; --white:#f4f4f2; --point:#1a44ff;
  --soft:#d9d9dc; --ghost:#3a3a42; --line2:#34343b; --hole:#101013; --dim2:#8a8a93;
  --pad:clamp(20px,5.2vw,80px);
  --display:"Clash Display","Pretendard Variable",Pretendard,sans-serif;
  --body:"Pretendard Variable",Pretendard,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Consolas,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:#efece6;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--white);font-family:var(--body);font-size:16px;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;word-break:keep-all}
::selection{background:var(--point);color:#fff}
a{color:inherit;text-decoration:none}
img,video{display:block;max-width:100%}
.wrap{padding-left:var(--pad);padding-right:var(--pad)}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--concrete)}
.pt{color:var(--point)}
.grain{position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:grain 1.1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}60%{transform:translate(-2%,4%)}80%{transform:translate(5%,2%)}100%{transform:translate(0,0)}}

/* header */
.hbar{position:fixed;top:0;left:0;right:0;z-index:80;display:flex;justify-content:space-between;align-items:flex-start;padding-top:22px;padding-bottom:22px;mix-blend-mode:difference}
.logo{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:.01em;line-height:1}
.logo small{display:block;font-family:var(--mono);font-weight:400;font-size:10px;letter-spacing:.18em;margin-top:6px;opacity:.75}
.nav{display:flex;gap:clamp(14px,2.4vw,38px);font-family:var(--mono);font-size:12px;letter-spacing:.14em}
.nav a{position:relative;padding-bottom:4px}
.nav a sup{font-size:9px;opacity:.6;margin-right:4px}
.nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:#fff;transform:scaleX(0);transform-origin:right;transition:transform .45s cubic-bezier(.7,0,.2,1)}
.nav a:hover::after,.nav a.on::after{transform:scaleX(1);transform-origin:left}

/* cursor */
.cursor{position:fixed;top:0;left:0;width:22px;height:22px;border-radius:50%;background:var(--point);pointer-events:none;z-index:100;transform:translate(-50%,-50%);display:none;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:#000;transition:width .35s cubic-bezier(.2,.7,.2,1),height .35s cubic-bezier(.2,.7,.2,1),background .3s}
.cursor span{opacity:0;transition:opacity .2s}
.cursor.big{background:var(--white);color:var(--bg);width:92px;height:92px}
.cursor.big span{opacity:1}
@media (hover:hover) and (pointer:fine){.cursor{display:flex} body.cur,body.cur a,body.cur button{cursor:none}}

/* hero */
.hero{position:relative;height:100svh;min-height:620px;display:flex;align-items:flex-end;overflow:hidden;padding-bottom:clamp(40px,7vh,90px)}
.hero .media{position:absolute;inset:0;z-index:0}
.hero .media video,.hero .media img{width:100%;height:100%;object-fit:cover;filter:grayscale(.55) contrast(1.08) brightness(.62);transform:scale(1.06)}
.hero .media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,11,.55) 0%,rgba(10,10,11,0) 30%,rgba(10,10,11,.2) 60%,var(--bg) 100%)}
.hero h1{position:relative;z-index:2;font-family:var(--display);font-weight:700;font-size:clamp(54px,11.2vw,210px);line-height:.86;letter-spacing:-.025em;word-spacing:.06em;text-transform:uppercase}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.06em}
.hero h1 .ln>span{display:inline-block;will-change:transform}
.hero h1 .l2{color:var(--concrete);margin-left:clamp(0px,7vw,140px)}
.hero h1 .l3{color:var(--point)}
.hero .kr{position:relative;z-index:2;margin-top:clamp(18px,3vh,34px);max-width:30em;font-size:clamp(15px,1.25vw,19px);color:var(--soft);line-height:1.7}
.hero .live{position:absolute;right:var(--pad);bottom:clamp(40px,7vh,90px);z-index:2;text-align:right;line-height:1.9}
.hero .rec{position:absolute;left:var(--pad);top:96px;z-index:2;display:flex;align-items:center;gap:10px}
.rec i{width:8px;height:8px;border-radius:50%;background:#ff3b2f;animation:blink 1.4s steps(2) infinite}
@keyframes blink{50%{opacity:.15}}
.scrolldn{position:absolute;left:50%;bottom:22px;z-index:2;transform:translateX(-50%);writing-mode:vertical-rl;font-size:10px}

/* marquee */
.marq{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;white-space:nowrap;padding-block:18px}
.marq div{display:inline-block;font-family:var(--display);font-weight:600;font-size:clamp(22px,3vw,44px);letter-spacing:-.02em;text-transform:uppercase;animation:mq 28s linear infinite}
.marq b{color:var(--point);font-weight:600;margin:0 .6em}
@keyframes mq{to{transform:translateX(-50%)}}

/* manifesto */
.mani{padding-block:clamp(110px,20vh,260px);display:grid;grid-template-columns:minmax(0,2fr) minmax(0,9fr);gap:clamp(20px,4vw,64px);align-items:start}
.mani h2{font-family:var(--body);font-weight:600;font-size:clamp(26px,4.1vw,68px);line-height:1.32;letter-spacing:-.035em}
.mani h2 .w{color:var(--ghost);transition:color .25s linear}
.mani h2 .w.lit{color:var(--white)}
.mani .sign{margin-top:clamp(28px,5vh,60px);display:flex;gap:40px;flex-wrap:wrap}

/* blueprint feed */
.feed{position:relative;background:var(--raw);padding-block:clamp(90px,14vh,180px);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:clamp(56px,6vw,96px) clamp(56px,6vw,96px);background-position:-1px -1px}
.feed::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,rgba(22,22,26,.35),rgba(22,22,26,.93) 75%);pointer-events:none}
.feed .head{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(90px,14vh,170px)}
.feed .head h3{font-family:var(--display);font-weight:600;font-size:clamp(40px,7vw,120px);line-height:.9;letter-spacing:-.02em;text-transform:uppercase}
.feed .head p{max-width:24em;color:var(--concrete);font-size:15px}
.board{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(12px,2vw,32px);row-gap:clamp(70px,12vh,150px)}
.card{position:relative;min-width:0;display:block}
.card.in{transform:translateY(var(--py,0px)) rotate(var(--rot,0deg))}
.card .ph{position:relative;overflow:hidden;background:var(--hole)}
.card .ph img,.card .ph video{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transform:scale(1.02);transition:filter .7s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}
.card:hover .ph img,.card:hover .ph video{filter:grayscale(0);transform:scale(1.07)}
.card .tape{position:absolute;top:-11px;left:22%;width:86px;height:22px;background:rgba(200,200,190,.28);transform:rotate(-3deg);z-index:3;backdrop-filter:blur(2px)}
.card .meta{display:flex;justify-content:space-between;gap:12px;align-items:baseline;border-bottom:1px solid var(--line2);padding-block:14px 12px}
.card .meta b{font-family:var(--display);font-weight:600;font-size:clamp(17px,1.5vw,24px);letter-spacing:-.02em;text-transform:uppercase}
.card .note{margin-top:10px;color:var(--concrete);font-size:14px;max-width:30em}
.c1{grid-column:1/8} .c1 .ph{aspect-ratio:4/5}
.c2{grid-column:9/13;margin-top:clamp(-220px,-16vw,-80px);z-index:2} .c2 .ph{aspect-ratio:3/4} .c2{--rot:1.2deg}
.c3{grid-column:2/6;margin-top:0} .c3 .ph{aspect-ratio:1/1} .c3{--rot:-1.6deg}
.c4{grid-column:6/13} .c4 .ph{aspect-ratio:16/10}
.c5{grid-column:1/5;margin-top:clamp(-260px,-18vw,-90px);z-index:2} .c5 .ph{aspect-ratio:3/4}
.stamp{position:absolute;right:4%;top:38%;z-index:4;width:clamp(96px,10vw,150px);aspect-ratio:1;border:1.5px solid var(--point);border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--point);font-family:var(--mono);font-size:10px;letter-spacing:.12em;line-height:1.5;transform:rotate(-14deg);animation:spin 26s linear infinite}
@keyframes spin{to{transform:rotate(346deg)}}
.more{position:relative;margin-top:clamp(70px,12vh,140px);display:flex;justify-content:flex-end}
.biglink{font-family:var(--display);font-weight:600;font-size:clamp(28px,4.4vw,72px);letter-spacing:-.015em;text-transform:uppercase;line-height:1;display:inline-flex;align-items:center;gap:.35em;border-bottom:2px solid currentColor;padding-bottom:.12em;transition:color .3s,gap .4s}
.biglink:hover{color:var(--point);gap:.7em}

/* numbers strip */
.nums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line)}
.nums div{padding:clamp(28px,4vw,56px) clamp(14px,2vw,32px);border-right:1px solid var(--line);min-width:0}
.nums div:last-child{border-right:0}
.nums b{display:block;font-family:var(--display);font-weight:600;font-size:clamp(40px,6vw,104px);line-height:1;letter-spacing:-.05em}
.nums span{display:block;margin-top:12px;color:var(--concrete);font-size:14px}

/* footer */
.foot{position:relative;min-height:72vh;display:flex;flex-direction:column;justify-content:space-between;padding-top:clamp(70px,12vh,140px);padding-bottom:28px;border-top:1px solid var(--line);overflow:hidden}
.foot .call{font-family:var(--display);font-weight:700;font-size:clamp(50px,12.4vw,230px);line-height:.86;letter-spacing:-.025em;text-transform:uppercase}
.foot .call a{display:inline-block;transition:color .3s,transform .6s cubic-bezier(.2,.7,.2,1)}
.foot .call a:hover{color:var(--point);transform:translateX(.12em) skewX(-6deg)}
.foot .cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,48px);margin-top:clamp(50px,9vh,110px)}
.foot .cols h6{font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.16em;color:var(--dim);margin-bottom:14px;text-transform:uppercase}
.foot .cols p,.foot .cols a{display:block;font-size:15px;line-height:1.9;color:var(--soft)}
.foot .cols a:hover{color:var(--point)}
.foot .base{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-top:clamp(40px,7vh,80px);color:var(--dim)}
.clock{font-family:var(--mono);font-size:clamp(18px,1.8vw,28px);color:var(--white);letter-spacing:.06em}
.demo{font-size:12px;color:var(--dim);max-width:46em;line-height:1.7}

/* reveal */
.rv{opacity:0;transform:translateY(46px)}
.no-js .rv{opacity:1;transform:none}

/* wireframe mode (제작 과정 캡처용: ?wire) */
body.wire .media,body.wire .ph img,body.wire .ph video,body.wire .grain{visibility:hidden}
body.wire .ph,body.wire .hero{outline:1px dashed var(--dim);background:repeating-linear-gradient(45deg,var(--hole) 0 14px,var(--raw) 14px 28px)}
body.wire .hero,body.wire .hero .kr,body.wire .hero .mono{color:var(--white)}body.wire .hero h1 .l2{color:var(--dim)}
body.wire .rv{opacity:1;transform:none}

@media (max-width:820px){
  .hbar{padding-top:16px;padding-bottom:16px}
  .logo{font-size:17px}
  .nav{gap:14px;font-size:11px}
  .nav a sup{display:none}
  .hero{min-height:560px}
  .hero h1{font-size:clamp(36px,12.6vw,120px)}
  .hero>div{max-width:100%;min-width:0}
  .hero .kr{max-width:100%}
  .hero h1 .l2{margin-left:6vw}
  .hero .live{position:relative;right:auto;bottom:auto;text-align:left;margin-top:22px}
  .hero{flex-direction:column;align-items:flex-start;justify-content:flex-end}
  .hero .rec{top:76px}
  .scrolldn{display:none}
  .mani{grid-template-columns:minmax(0,1fr)}
  .board{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:64px}
  .c1{grid-column:1/6} .c2{grid-column:3/7;margin-top:-34px} .c3{grid-column:1/5;margin-top:0} .c4{grid-column:1/7} .c5{grid-column:2/6;margin-top:-30px}
  .stamp{top:auto;bottom:-40px;right:6%}
  .card.in{transform:rotate(var(--rot,0deg))}
  .card .meta{flex-wrap:wrap}
  .nums{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nums div:nth-child(2){border-right:0} .nums div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .foot .cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot{min-height:auto}
}
@media (prefers-reduced-motion:reduce){.grain,.marq div,.stamp,.rec i{animation:none}.rv{opacity:1;transform:none}}

/* 한글 큰 제목: Clash Display 에는 한글이 없어 Pretendard 굵은 글씨로 */
.hero h1,.feed .head h3,.foot .call,.biglink,.card .meta b,.marq div{font-family:var(--body);text-transform:none}
.hero h1{font-weight:900;font-size:clamp(44px,10vw,190px);line-height:1.02;letter-spacing:-.07em;word-spacing:.12em}
.feed .head h3{font-weight:900;line-height:1.02;letter-spacing:-.07em}
.foot .call{font-weight:900;line-height:1.0;letter-spacing:-.075em;font-size:clamp(50px,12vw,220px)}
.biglink{font-weight:800;letter-spacing:-.05em}
.card .meta b{font-weight:700;letter-spacing:-.03em}
.marq div{font-weight:800;letter-spacing:-.04em}
.mono,.nav{letter-spacing:.06em}
@media (max-width:820px){.hero h1{font-size:clamp(40px,13.4vw,120px)}}
.nav{font-family:var(--body);font-weight:600;font-size:15px;letter-spacing:-.01em}
.nav a sup{font-family:var(--mono);font-weight:400}
.mono{font-family:var(--mono),var(--body)}
.logo small{font-family:var(--body);letter-spacing:.04em;font-size:11px}
@media (max-width:820px){.nav{font-size:14px}}

/* ── 배경색 시안(?t=a|b|c) — 형 9/20 "남색이 별로, 배경색을 바꿔보고 싶어" ── */
.hero{color:#f4f4f2}.hero .kr{color:#e4e4e6}.hero .mono{color:#c9c9cd}
.team figcaption,.duo figcaption,.tag{color:#fff}.team figcaption .mono{color:#d0d0d4}
body{--bg:#efece6;--raw:#e4e0d7;--line:#d2ccc0;--line2:#c4bdb0;--concrete:#57534c;--dim:#7d786f;--dim2:#8f8a80;--white:#15140f;--soft:#2b2924;--ghost:#c9c3b6;--hole:#d9d4c9;--point:#e8451a}
body.t-d{--bg:#0a0a0b;--raw:#16161a;--line:#2a2a30;--line2:#34343b;--concrete:#b3b3b7;--dim:#77777f;--dim2:#8a8a93;--white:#f4f4f2;--soft:#d9d9dc;--ghost:#3a3a42;--hole:#101013;--point:#1a44ff}
body.t-d .grain{opacity:.07;mix-blend-mode:normal}
body.t-d .feed::before{background:radial-gradient(ellipse at 50% 40%,rgba(22,22,26,.35),rgba(22,22,26,.93) 75%)}
body.t-d .mat{box-shadow:0 18px 40px rgba(0,0,0,.55)}
body.t-b{--bg:#dcdbd7;--raw:#cfcec9;--line:#bdbcb6;--line2:#b0afa9;--concrete:#4e4e4a;--dim:#73736e;--dim2:#86867f;--white:#121212;--soft:#2a2a28;--ghost:#b9b8b2;--hole:#c6c5bf;--point:#1a44ff}
body.t-c .grain{opacity:.07;mix-blend-mode:normal}
body.t-c .mat{box-shadow:0 18px 40px rgba(0,0,0,.55)}
body.t-c{--bg:#11100e;--raw:#1a1815;--line:#2b2823;--line2:#38342d;--concrete:#b9b3a8;--dim:#7f7a70;--dim2:#8e887d;--white:#f3efe7;--soft:#ddd8ce;--ghost:#3d3932;--hole:#15130f;--point:#ff5a1f}
body .grain,body.t-b .grain{opacity:.05;mix-blend-mode:multiply}
body .feed::before{background:radial-gradient(ellipse at 50% 40%,rgba(228,224,215,.3),rgba(228,224,215,.92) 75%)}
body.t-b .feed::before{background:radial-gradient(ellipse at 50% 40%,rgba(207,206,201,.3),rgba(207,206,201,.92) 75%)}
body.t-c .feed::before{background:radial-gradient(ellipse at 50% 40%,rgba(26,24,21,.35),rgba(26,24,21,.93) 75%)}
body .hero .media::after{background:linear-gradient(180deg,rgba(10,10,11,.55) 0%,rgba(10,10,11,0) 30%,rgba(10,10,11,.25) 70%,rgba(10,10,11,.5) 100%)}
body.t-b .hero .media::after{background:linear-gradient(180deg,rgba(10,10,11,.55) 0%,rgba(10,10,11,0) 30%,rgba(10,10,11,.25) 70%,rgba(10,10,11,.5) 100%)}
body .card .tape,body.t-b .card .tape{background:rgba(90,80,60,.25)}
body .mat,body.t-b .mat{box-shadow:0 14px 30px rgba(0,0,0,.25)}
body .table,body.t-b .table{background:var(--hole) linear-gradient(var(--line) 1px,transparent 1px) 0 0/100% 48px}
.hero h1 .l2{color:#b9b9bd}
.hbar{color:#fff}.hbar .logo small{opacity:.85}
