.compact-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:50px 20px}.compact-grid .project-wide{grid-column:auto}.compact-grid .thumb{aspect-ratio:16/10}.compact-grid .meta h3{font-size:clamp(18px,1.55vw,26px)}.project-more{display:none}.compact-grid.show-more .project-more{display:block;animation:project-in .45s ease both}@keyframes project-in{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}.more-projects{width:100%;margin-top:75px;padding:23px 28px;border:2px solid var(--black);background:transparent;color:var(--black);display:flex;justify-content:space-between;align-items:center;font:900 13px/1 "Noto Sans KR",sans-serif;letter-spacing:.1em;cursor:pointer;transition:background .25s,color .25s}.more-projects:hover,.more-projects[aria-expanded="true"]{background:var(--black);color:var(--yellow)}.more-projects i{font-style:normal;font-size:25px;font-weight:400;transition:transform .25s}.more-projects[aria-expanded="true"] i{transform:rotate(45deg)}
.reel-track{width:100%;animation:none}.reel-track img{display:none;width:100%;height:100%;object-fit:cover}.reel-track img:first-child{display:block}.cursor-hair{position:fixed;inset:0;width:100vw;height:100vh;z-index:100;pointer-events:none;overflow:visible;opacity:0;transition:opacity .16s ease;mix-blend-mode:difference}.cursor-hair.is-visible{opacity:1}.cursor-hair path{fill:none;stroke:#fff;stroke-width:.8;stroke-linecap:round;stroke-linejoin:round}.hero-title{--pointer-x:50%;--pointer-y:50%;--tilt-x:0deg;--tilt-y:0deg;--color-opacity:0;color:var(--yellow);transform:perspective(900px) rotateX(var(--tilt-y)) rotateY(var(--tilt-x));transition:transform .15s ease,filter .35s ease;filter:drop-shadow(0 0 0 rgba(246,233,0,0));will-change:transform}.hero-title:after{content:"칙";position:absolute;inset:0;display:grid;place-items:center;padding-right:.14em;background:radial-gradient(circle at var(--pointer-x) var(--pointer-y),#fff36a 0%,#ff8a00 16%,#ff2f92 34%,#9b59ff 52%,#00c8ff 70%,#f6e900 92%);background-clip:text;-webkit-background-clip:text;color:transparent;opacity:var(--color-opacity);transition:opacity .45s ease;pointer-events:none}.hero-title.is-reacting{filter:drop-shadow(0 0 25px rgba(246,233,0,.2))}
.process{padding:150px 3.2vw 130px;background:#101010}.process-head{text-align:center;margin-bottom:75px}.process-head>p,.faq-title>p{margin:0 0 18px;color:var(--yellow);font-size:11px;font-weight:900;letter-spacing:.15em}.process-head h2,.faq-title h2{font-size:clamp(60px,8vw,130px);line-height:.9;letter-spacing:-.065em;margin:0;font-weight:900}.process-head span,.faq-title span{display:block;margin-top:25px;color:#aaa;font-size:18px;line-height:1.55}.process-shell{position:relative;border:2px solid #313131;border-radius:999px;padding:78px 5vw 70px;overflow:hidden}.process-shell:before{content:"";position:absolute;inset:-2px;border-radius:inherit;padding:2px;background:linear-gradient(90deg,#9b59ff,var(--yellow));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.9}.process-shell ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:34px;position:relative}.process-line{position:absolute;height:2px;background:linear-gradient(90deg,#9b59ff,var(--yellow));left:8%;right:8%;top:108px}.process-shell li{position:relative}.process-shell b{font-size:11px;color:#8c8c86;letter-spacing:.1em}.process-shell i{display:block;width:14px;height:14px;border-radius:50%;background:var(--white);border:4px solid #59562a;margin:14px 0 30px;position:relative;z-index:2}.process-shell li:first-child i{background:#9b59ff}.process-shell li:last-child i{background:var(--yellow)}.process-shell h3{margin:0 0 13px;font-size:clamp(23px,2vw,34px);letter-spacing:-.05em}.process-shell p{margin:0;color:#a8a8a1;font-size:13px;line-height:1.7;max-width:220px}.process-note{text-align:right;margin:20px 20px 0;color:#777;font-size:11px;font-weight:700;letter-spacing:.05em}
.faq{padding:150px 6vw;display:grid;grid-template-columns:.75fr 1.6fr;gap:9vw}.faq-title{text-align:left;position:sticky;top:110px;align-self:start}.faq-title h2{font-size:clamp(70px,8vw,125px)}.faq-list{border-top:1px solid #555}.faq-item{border-bottom:1px solid #555}.faq-question{width:100%;padding:31px 0;display:flex;align-items:center;justify-content:space-between;gap:30px;background:none;border:0;color:var(--white);font:inherit;text-align:left;cursor:pointer}.faq-question span{font-size:clamp(18px,1.65vw,27px);font-weight:800;letter-spacing:-.035em}.faq-question i{font-style:normal;font-size:38px;font-weight:300;line-height:1;transition:transform .25s,color .25s}.faq-item.open .faq-question i{transform:rotate(45deg);color:var(--yellow)}.faq-answer{max-height:0;overflow:hidden;transition:max-height .35s ease}.faq-answer p{margin:0;padding:0 70px 30px 0;color:#a8a8a1;line-height:1.75;font-size:15px}
.kakao-float{position:fixed;z-index:40;right:26px;bottom:28px;width:92px;height:92px;border-radius:50%;background:var(--yellow);color:#171717;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 12px 35px rgba(0,0,0,.35);transition:transform .25s,box-shadow .25s}.kakao-float:hover{transform:translateY(-5px) rotate(-3deg);box-shadow:0 18px 42px rgba(246,233,0,.22)}.kakao-icon{width:33px;height:24px;border-radius:50%;background:#171717;color:var(--yellow);font-size:12px;line-height:14px;text-align:center;letter-spacing:1px;position:relative}.kakao-icon:after{content:"";position:absolute;left:3px;bottom:-3px;border:5px solid transparent;border-top-color:#171717;transform:rotate(20deg)}.kakao-float strong{font-size:11px;line-height:1.15;text-align:center;margin-top:7px}
@media(max-width:800px){.compact-grid{grid-template-columns:1fr;gap:42px}.compact-grid .meta h3{font-size:22px}.more-projects{margin-top:55px}.process{padding:100px 20px}.process-head{text-align:left;margin-bottom:45px}.process-shell{border-radius:38px;padding:38px 28px}.process-shell ol{grid-template-columns:1fr;gap:0}.process-line{left:34px;right:auto;top:54px;bottom:54px;width:2px;height:auto}.process-shell li{display:grid;grid-template-columns:40px 1fr;padding:0 0 38px}.process-shell li:last-child{padding-bottom:0}.process-shell b{display:none}.process-shell i{grid-row:1/3;margin:8px 0 0}.process-shell h3{font-size:26px}.process-shell p{max-width:none}.process-note{text-align:left;margin-left:0}.faq{padding:100px 20px;grid-template-columns:1fr;gap:55px}.faq-title{position:static}.faq-question{padding:24px 0}.faq-answer p{padding-right:25px}.kakao-float{width:68px;height:68px;right:16px;bottom:18px}.kakao-float strong{display:none}.kakao-icon{margin:0}}
@media(prefers-reduced-motion:reduce){.cursor-hair{display:none}}

/* Distinctive CHICK narrative */
.hero{height:185vh;min-height:1100px;overflow:visible;--hero-reveal:50%;--hero-split:0vw}.hero-stage{position:sticky;top:0;height:100svh;min-height:650px;overflow:hidden;background:#000}.hero-project-reveal{position:absolute;inset:0;z-index:1;clip-path:inset(0 var(--hero-reveal));will-change:clip-path}.hero-project-reveal img{width:100%;height:100%;object-fit:cover;filter:saturate(1.15) contrast(1.04)}.hero-project-reveal:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.35),transparent 28%,transparent 72%,rgba(0,0,0,.35))}.hero-project-reveal span{position:absolute;z-index:2;left:3.2vw;bottom:28px;font-size:11px;font-weight:900;letter-spacing:.14em;color:var(--yellow)}.hero-stage .hero-filter{z-index:2;pointer-events:none}.hero-title-pair{position:absolute;inset:0;z-index:3;pointer-events:none}.hero-title-pair .hero-title{z-index:auto}.hero-title-left{clip-path:inset(0 50% 0 0);translate:calc(var(--hero-split) * -1) 0}.hero-title-right{clip-path:inset(0 0 0 50%);translate:var(--hero-split) 0}.hero-stage .hero-label,.hero-stage .scroll{z-index:4}.section-voice{margin:0 0 42px;font-size:clamp(22px,3vw,46px);font-weight:900;letter-spacing:-.055em;color:#8a897f}.section-voice:before{content:"“";color:var(--yellow)}.section-voice:after{content:"”";color:var(--yellow)}.section-voice.dark{display:block;margin-top:36px;color:#777;font-size:clamp(18px,2vw,30px);font-weight:800;line-height:1.35}.process-head .section-voice{margin:32px 0 0}.faq-title .section-voice{margin-top:35px}
.projects{overflow:hidden}.film-strip{display:flex;grid-template-columns:none;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding:54px 22px 58px;background:radial-gradient(ellipse 8px 5px at 12px 12px,var(--white) 60%,transparent 63%) 0 0/30px 25px repeat-x,radial-gradient(ellipse 8px 5px at 12px calc(100% - 12px),var(--white) 60%,transparent 63%) 0 100%/30px 25px repeat-x,#090909;scrollbar-width:thin;scrollbar-color:var(--yellow) #222}.film-strip .project{flex:0 0 clamp(340px,43vw,680px);scroll-snap-align:start;color:var(--white)}.film-strip .project-more{display:none}.film-strip.show-more .project-more{display:block;animation:project-in .45s ease both}.film-strip .thumb{position:relative;aspect-ratio:16/9;border:1px solid #333}.film-strip .thumb>img{position:absolute;inset:0}.film-strip .thumb .motion-frame{opacity:0}.film-strip .project:hover .thumb>img:first-child{filter:grayscale(0) brightness(.78);transform:scale(1.025)}.film-strip .project:hover .motion-frame{animation:film-preview 1.4s steps(1,end) infinite}@keyframes film-preview{0%,49%{opacity:0}50%,100%{opacity:1}}.film-strip .meta{padding:15px 2px 0}.film-strip .meta span{color:var(--yellow)}.film-strip .meta b{color:#888}.more-projects{margin-top:42px}.service-list span{white-space:nowrap}.process-shell b{white-space:nowrap}
@media(max-width:800px){.hero{height:155vh;min-height:900px}.hero-stage{min-height:560px}.hero-project-reveal span{left:20px}.section-voice{font-size:26px;margin-bottom:30px}.film-strip{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px}.film-strip .project{flex-basis:82vw}.hero-title-left{translate:calc(var(--hero-split) * -.72) 0}.hero-title-right{translate:calc(var(--hero-split) * .72) 0}}
@media(prefers-reduced-motion:reduce){.hero{height:100svh;min-height:650px}.hero-project-reveal{display:none}.hero-title-left,.hero-title-right{translate:0 0}.film-strip .project:hover .motion-frame{animation:none}}

/* Short masked-reel hero */
.hero{height:138vh;min-height:900px;--mask-size:38vw;--mask-opacity:1;--full-opacity:0;--hero-darkness:.18}.hero-stage{background:#090909}.hero-stage .reel{opacity:var(--full-opacity);filter:saturate(1.05) contrast(1.08) brightness(.72);transform:scale(1.015);transition:opacity .08s linear}.masked-reel{position:absolute;inset:0;z-index:3;opacity:var(--mask-opacity);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1000'%3E%3Ctext x='500' y='720' text-anchor='middle' font-family='Arial,sans-serif' font-size='680' font-weight='900' fill='white'%3E%26%2352825%3B%3C/text%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1000'%3E%3Ctext x='500' y='720' text-anchor='middle' font-family='Arial,sans-serif' font-size='680' font-weight='900' fill='white'%3E%26%2352825%3B%3C/text%3E%3C/svg%3E");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:var(--mask-size) var(--mask-size);mask-size:var(--mask-size) var(--mask-size);will-change:mask-size,opacity}.masked-reel img{width:100%;height:100%;object-fit:cover;filter:saturate(1.05) contrast(1.08) brightness(.72)}.hero-stage .hero-filter{opacity:var(--full-opacity);background:rgba(0,0,0,var(--hero-darkness))}.hero-mask-title{display:none}.hero-stage:after{content:"";position:absolute;inset:0;z-index:1;background:#090909;opacity:calc(1 - var(--full-opacity));pointer-events:none}.hero-stage .reel,.hero-stage .hero-filter{z-index:0}.hero-stage .hero-filter{z-index:2}.hero-stage .hero-label,.hero-stage .scroll{z-index:4}.hero-stage .hero-label,.hero-stage .scroll{transition:opacity .12s linear}.projects .compact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:50px 20px;overflow:visible;padding:0;background:none;scroll-snap-type:none}.projects .compact-grid .project{display:block;min-width:0;color:var(--black)}.projects .compact-grid .project-more{display:none}.projects .compact-grid.show-more .project-more{display:block}.projects .compact-grid .thumb{aspect-ratio:16/10;border:0}.projects .compact-grid .thumb>img{position:static}.projects .compact-grid .meta span{color:inherit}.projects .compact-grid .meta b{color:#6f6f69}
@media(max-width:800px){.hero{height:132vh;min-height:760px;--mask-size:62vw}.projects .compact-grid{grid-template-columns:1fr;gap:42px}}
@media(prefers-reduced-motion:reduce){.hero{height:100svh;min-height:650px}.hero-stage .reel{opacity:0}.masked-reel{opacity:1}}

/* Smoothed mask, client logo board, and direct contact */
.masked-reel{filter:none;transform:translateZ(0)}.hero-mask-title{position:absolute;left:50%;top:50%;z-index:4;display:block;width:var(--mask-size);height:var(--mask-size);opacity:var(--mask-opacity);transform:translate(-50%,-50%) translateZ(0);pointer-events:none;will-change:width,height,opacity}.hero-mask-title svg{display:block;width:100%;height:100%;overflow:visible}.hero-mask-title text{font-family:Arial,sans-serif;font-size:680px;font-weight:900;fill:none;stroke:rgba(9,9,9,.94);stroke-width:3;vector-effect:non-scaling-stroke;filter:blur(var(--text-line-blur,0px));will-change:filter}.proof{grid-template-columns:.75fr 1.35fr;gap:7vw}.clients .client-logo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(0,0,0,.22);font-size:inherit;font-weight:inherit;line-height:normal;letter-spacing:normal}.client-logo-grid figure{margin:0;min-height:125px;padding:19px 12px;background:var(--yellow);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;text-align:center}.client-logo-grid img{width:48px;height:48px;object-fit:contain;filter:saturate(.86) contrast(1.05)}.client-logo-grid figcaption{font-size:12px;font-weight:900;line-height:1.3;letter-spacing:-.025em}.contact>h2{margin:25px 0 90px;font-size:clamp(54px,10.5vw,180px);font-weight:900;line-height:.83;letter-spacing:-.085em}.contact>h2 em{font-style:normal;color:var(--yellow)}.contact-details{border-top:1px solid #555}.contact-details a{position:relative;display:block;padding:42px 7vw 48px 0;border-bottom:1px solid #555;font-size:clamp(38px,7vw,115px);font-weight:900;line-height:.88;letter-spacing:-.065em;transition:color .25s,padding .3s}.contact-details a:hover{color:var(--yellow);padding-left:2vw}.contact-details a span{position:absolute;right:0;top:45px;font-size:.32em;color:var(--yellow)}
@media(max-width:800px){.proof{grid-template-columns:1fr}.clients .client-logo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-logo-grid figure{min-height:105px}.contact>h2{margin-bottom:60px}.contact-details a{font-size:39px;padding-top:30px;padding-bottom:34px}.contact-details a span{top:30px}}

/* Supplied official client CI artwork */
.client-logo-grid figure{min-height:112px;padding:22px 18px;gap:0}
.client-logo-grid img{width:min(100%,132px);height:42px;object-fit:contain;filter:none}
@media(max-width:800px){.client-logo-grid figure{min-height:96px;padding:18px 14px}.client-logo-grid img{width:min(100%,112px);height:36px}}

/* Stronger blur on the enlarging CHICK letter edge only */
.hero-mask-title text{stroke:rgba(9,9,9,.98);stroke-width:4.5}

/* A blurred duplicate sits behind the sharp masked reel, so only its edge blooms. */
.masked-reel-edge{display:none}
.hero-mask-title{display:block;contain:layout paint;transform:translate(-50%,-50%) translateZ(0)}
.hero-mask-title text{filter:blur(var(--text-line-blur,0px))}

/* Studio OCHICK storyboard process — intentionally asymmetric, not a timeline pill. */
.process-head{text-align:left;display:grid;grid-template-columns:1.35fr .65fr;align-items:end;column-gap:6vw}.process-head>p,.process-head h2{grid-column:1}.process-head>span,.process-head .section-voice{grid-column:2}.process-head>span{grid-row:1/3;margin:0 0 8px}.process-head .section-voice{margin:28px 0 0}
.process-shell{border:0;border-radius:0;padding:0;overflow:visible}.process-shell:before,.process-line{display:none}.process-shell ol{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:start}.process-shell li{min-height:270px;padding:24px 22px 26px;background:#181818;border-top:4px solid var(--yellow);transition:transform .28s ease,background .28s ease}.process-shell li:nth-child(2){transform:translateY(38px);border-color:#ff6c31}.process-shell li:nth-child(3){transform:translateY(14px);border-color:#f0efe8}.process-shell li:nth-child(4){transform:translateY(52px);border-color:#9b59ff}.process-shell li:nth-child(5){transform:translateY(25px);border-color:#00c8ff}.process-shell li:hover{transform:translateY(-8px);background:#202020}.process-shell li:nth-child(2):hover{transform:translateY(30px)}.process-shell li:nth-child(3):hover{transform:translateY(6px)}.process-shell li:nth-child(4):hover{transform:translateY(44px)}.process-shell li:nth-child(5):hover{transform:translateY(17px)}.process-shell b{display:inline-flex;align-items:center;height:26px;padding:0 10px;border:1px solid #555;border-radius:99px;color:var(--white);font-size:10px}.process-shell i{width:7px;height:7px;margin:22px 0 38px;border:0;border-radius:0;background:var(--yellow);transform:rotate(45deg)}.process-shell li:nth-child(2) i{background:#ff6c31}.process-shell li:nth-child(3) i{background:#f0efe8}.process-shell li:nth-child(4) i{background:#9b59ff}.process-shell li:nth-child(5) i{background:#00c8ff}.process-shell h3{font-size:clamp(26px,2.3vw,39px)}.process-shell p{font-size:13px;line-height:1.75}.process-note{margin-top:76px;padding-top:18px;border-top:1px solid #383838}
@media(max-width:800px){.process-head{display:block}.process-head>span{margin-top:25px}.process-head .section-voice{margin-top:30px}.process-shell{padding:0}.process-shell ol{grid-template-columns:1fr;gap:12px}.process-shell li,.process-shell li:nth-child(n){display:block;min-height:0;padding:23px 22px;transform:none}.process-shell li:hover,.process-shell li:nth-child(n):hover{transform:translateX(5px)}.process-shell b{display:inline-flex}.process-shell i{margin:18px 0 22px}.process-note{margin-top:26px}}

/* Compact trust metrics with a continuous right-to-left client-review flow. */
.review-flow{padding:82px 0 74px;background:#f0efe8;color:#090909;overflow:hidden}.review-summary{padding:0 3.2vw 48px;display:flex;align-items:flex-end;justify-content:space-between;gap:5vw}.review-summary>p{margin:0;font-size:11px;font-weight:900;letter-spacing:.15em}.review-stats{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:10px;width:min(720px,70vw)}.review-stats article{padding:17px 18px;border:1px solid rgba(9,9,9,.25);display:flex;align-items:baseline;gap:12px}.review-stats strong{font-size:20px;letter-spacing:-.04em}.review-stats span{font-size:11px;font-weight:800;color:#55534d}.review-marquee{border-top:1px solid #aaa79e;border-bottom:1px solid #aaa79e;overflow:hidden}.review-track{width:max-content;display:flex;align-items:center;animation:review-flow 38s linear infinite;will-change:transform}.review-track span{display:flex;align-items:center;gap:18px;padding:25px 42px 27px;font-size:clamp(16px,1.45vw,22px);font-weight:800;letter-spacing:-.035em;white-space:nowrap;border-right:1px solid #aaa79e}.review-track b{font-size:10px;letter-spacing:.08em;color:#747169}@keyframes review-flow{to{transform:translateX(-50%)}}
@media(max-width:800px){.review-flow{padding:64px 0 58px}.review-summary{padding:0 20px 34px;display:block}.review-summary>p{margin-bottom:20px}.review-stats{width:100%;grid-template-columns:1fr}.review-stats article{padding:13px 15px}.review-track span{padding:21px 28px;font-size:16px}}
@media(prefers-reduced-motion:reduce){.review-track{animation-play-state:paused}}

/* Supplied real-review image cards */
.review-track{animation-duration:48s}.review-set{display:flex;align-items:center;gap:10px;padding:12px 5px;flex:none}.review-set img{display:block;width:auto;height:90px;border:1px solid #c8c5bc;background:#fff;object-fit:contain}
@media(max-width:800px){.review-track{animation-duration:42s}.review-set{gap:8px;padding:10px 4px}.review-set img{height:64px}}

.review-flow{background:#fff}

/* Stable, measured marquee: the distance is synchronized to the first review set in script.js. */
.review-track{--review-shift:0px;--review-duration:48s;animation:review-flow var(--review-duration) linear infinite;transform:translate3d(0,0,0);backface-visibility:hidden;contain:layout paint}
.review-set img{flex:none}
@keyframes review-flow{to{transform:translate3d(calc(-1 * var(--review-shift)),0,0)}}

/* Minimal floating chat bubble */
.kakao-float{right:24px;bottom:24px;width:62px;height:62px;background:linear-gradient(135deg,#8f57ef 5%,#d8b6d4 52%,#fff56a 100%);color:#c59baa;box-shadow:0 10px 28px rgba(0,0,0,.27);flex-direction:row}.kakao-float:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 14px 34px rgba(0,0,0,.32)}.kakao-icon{width:31px;height:24px;margin:0;border-radius:50%;background:#fff;color:#c59baa;font-size:11px;line-height:17px;letter-spacing:1px}.kakao-icon:after{left:2px;bottom:-4px;border-width:5px;border-top-color:#fff}.kakao-float strong{display:none}
@media(max-width:800px){.kakao-float{right:15px;bottom:16px;width:54px;height:54px}.kakao-icon{width:28px;height:22px;font-size:10px;line-height:15px}}

/* Slightly denser awards and selected-clients section */
.proof{padding-top:96px;padding-bottom:96px}
.proof-block>p{margin-bottom:30px}
.proof li{padding-top:14px;padding-bottom:14px}
.client-logo-grid figure{min-height:96px;padding:15px 14px}
.client-logo-grid img{width:min(100%,124px);height:38px}
@media(max-width:800px){.proof{padding-top:72px;padding-bottom:72px}.proof-block>p{margin-bottom:24px}.client-logo-grid figure{min-height:86px;padding:14px 12px}.client-logo-grid img{width:min(100%,106px);height:33px}}

/* More compact portfolio list */
.projects{padding-top:90px;padding-bottom:115px}
.projects .section-head{margin-bottom:48px}
.projects .compact-grid{gap:34px 16px}
.projects .compact-grid .thumb{aspect-ratio:16/9}
.projects .compact-grid .meta{padding-top:12px}
.projects .more-projects{margin-top:30px;padding-top:19px;padding-bottom:19px}
@media(max-width:800px){.projects{padding-top:76px;padding-bottom:88px}.projects .section-head{margin-bottom:38px;gap:28px}.projects .compact-grid{gap:32px}.projects .compact-grid .meta{padding-top:11px}.projects .more-projects{margin-top:26px}}

/* Keep the logo alignment, remove the visible client grid. */
.clients .client-logo-grid{gap:18px 24px;background:transparent}
.clients .client-logo-grid figure{background:transparent}
@media(max-width:800px){.clients .client-logo-grid{gap:14px 12px}}

/* Denser portfolio rhythm */
.projects{padding-top:72px;padding-bottom:88px}
.projects .section-head{margin-bottom:38px}
.projects .compact-grid{gap:24px 12px}
.projects .compact-grid .meta{padding-top:9px;gap:18px}
.projects .compact-grid .meta h3{margin-top:3px;font-size:clamp(17px,1.35vw,23px);line-height:1.22}
.projects .compact-grid .meta b{font-size:11px}
@media(max-width:800px){.projects{padding-top:64px;padding-bottom:76px}.projects .section-head{margin-bottom:30px;gap:22px}.projects .compact-grid{gap:25px}.projects .compact-grid .meta{padding-top:8px}}

/* Line-free hero transition: the masked image crossfades into the full reel. */
.hero-mask-title{display:none}
.masked-reel{transition:opacity .08s linear;backface-visibility:hidden}

/* Brand naming, three-row portfolio preview, and Kakao yellow button. */
.kakao-float{background:#fee500;color:#171717;box-shadow:0 10px 28px rgba(0,0,0,.27)}
.kakao-float:hover{box-shadow:0 14px 34px rgba(254,229,0,.28)}
.kakao-icon{background:#171717;color:#fee500}
.kakao-icon:after{border-top-color:#171717}

/* Tighter client logo rhythm without shrinking the marks too far. */
.clients .client-logo-grid{gap:3px 8px;margin-top:-20px}
.clients .client-logo-grid figure{min-height:72px;padding:8px 10px}
.clients .client-logo-grid img{height:43px;width:min(100%,149px)}
@media(max-width:800px){.clients .client-logo-grid{gap:3px 5px;margin-top:-8px}.clients .client-logo-grid figure{min-height:66px;padding:7px}.clients .client-logo-grid img{height:38px;width:min(100%,125px)}}

/* New looping main reel video; the image remains as its loading poster. */
.reel-track video,.masked-reel video{display:block;width:100%;height:100%;object-fit:cover}
.reel-track video{position:absolute;inset:0;filter:blur(.65px) saturate(.82)}
.masked-reel video{filter:blur(.65px) saturate(.82) contrast(1.18) brightness(.68)}

/* Stable halftone texture over both masked and full-screen reel states.
   Normal compositing keeps the dots visible while the two video layers crossfade. */
.hero-stage .reel:after,.masked-reel:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background-image:radial-gradient(circle at center,rgba(0,0,0,.46) 0 .68px,rgba(255,255,255,.1) .72px .9px,transparent .96px);background-size:4px 4px;background-position:0 0;opacity:.54;mix-blend-mode:normal;transform:translateZ(0);backface-visibility:hidden}
