@font-face{font-family:Studio;src:url('../fonts/NotoSansKR-Variable.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--bg:#06171d;--surface:#0b242d;--ink:#f6f4ec;--muted:#a5b9be;--mint:#00ffe8;--line:#25434d}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Studio,Arial,'Malgun Gothic',sans-serif;overflow-x:clip}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}button{cursor:pointer}::selection{background:var(--mint);color:var(--bg)}:focus-visible{outline:2px solid var(--mint);outline-offset:6px}header{position:fixed;inset:0 0 auto;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:25px max(5vw,24px);background:linear-gradient(#041118e8,transparent);transition:background .3s}header.scrolled{background:#06171ded;backdrop-filter:blur(18px);border-bottom:1px solid #ffffff0e}.logo{font-size:18px;letter-spacing:5px;font-weight:800}nav{display:flex;gap:27px;align-items:center;font-size:11px;font-weight:500}nav a:not(.nav-cta){color:#c6d0d2;transition:color .2s}nav a:hover{color:var(--mint)}.nav-cta,.btn{display:inline-flex;align-items:center;justify-content:center;gap:28px;border:0;border-radius:40px;background:var(--mint);color:#062126;font-size:13px;font-weight:700;padding:15px 25px;transition:transform .2s,box-shadow .2s}.nav-cta{padding:10px 18px;font-size:11px}.btn:hover{transform:translateY(-3px);box-shadow:0 0 30px #00ffe82b}.btn.outline{color:var(--mint);background:transparent;border:1px solid #00ffe865}.eyebrow{display:block;font-size:10px;font-weight:600;letter-spacing:2.5px;color:#9cb6bc;text-transform:uppercase}h1,h2,h3,p{margin:0}h2{font-size:clamp(34px,4vw,58px);line-height:1.25;letter-spacing:-2.5px;font-weight:750}p{line-height:1.9;color:var(--muted);font-size:14px}h3{font-size:20px;letter-spacing:-.8px}main{isolation:isolate}.hero{position:relative;min-height:760px;height:95svh;max-height:1050px;padding:185px max(6vw,28px) 100px;display:flex;align-items:center;background:#071820 url('hero.webp') center/cover;isolation:isolate}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#031118eb,#04151b75 50%,transparent 85%),linear-gradient(0deg,var(--bg),transparent 33%);z-index:-1}.hero-content{max-width:760px}.hero h1{margin:28px 0;font-size:clamp(64px,8.5vw,130px);line-height:.99;letter-spacing:-6px}.hero h1 span{display:block;font-weight:450}.hero h1 strong{display:block;font-weight:750;font-size:.92em}.hero p{font-size:17px;line-height:1.8;color:#d7e0e1}.hero .btn{margin-top:32px}.hero-meta{position:absolute;right:6vw;bottom:130px;writing-mode:vertical-rl;font-size:10px;letter-spacing:4px;color:#a1b8bd}.scroll-cue{position:absolute;bottom:70px;left:6vw;display:flex;gap:20px;align-items:center;font-size:10px;letter-spacing:2px;color:#92a8ae}.scroll-cue i{display:block;height:45px;width:1px;background:linear-gradient(var(--mint),transparent)}.showreel{position:absolute;right:6vw;bottom:55px;border-bottom:1px solid #ffffff44;padding:10px 0;font-size:11px;color:#c6d7d9}.scene{position:relative;max-width:1440px;margin:auto;padding:100px 6% 80px;isolation:isolate;scroll-margin-top:80px}.scene:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 55% 50%,#0f36402b,transparent 65%);z-index:-2;pointer-events:none}.actor{position:absolute;width:clamp(340px,41vw,585px);height:auto;aspect-ratio:1;z-index:40;pointer-events:none;will-change:transform;--shift:0px;transform:translate3d(0,var(--shift),0)}.actor .puppet{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 20px 18px #0005);transform-origin:50% 88%;animation-play-state:paused!important}.actor.in-view .puppet{animation-play-state:running!important}.actor.orange{left:-2%;top:-195px}.actor.yellow{right:-2%;top:-175px;width:clamp(330px,38vw,550px)}.actor.blue{left:-2%;top:-175px;width:clamp(340px,39vw,570px)}.actor.green{right:-1%;top:-175px;width:clamp(340px,38vw,550px)}.orange.in-view .puppet{animation:orange-bounce 4.5s ease-in-out infinite}.yellow.in-view .puppet{animation:yellow-point 5s ease-in-out infinite}.blue.in-view .puppet{animation:blue-breathe 6s ease-in-out infinite}.green.in-view .puppet{animation:green-greet 5s ease-in-out infinite}@keyframes orange-bounce{0%,65%,100%{transform:translateY(0) scale(1)}74%{transform:translateY(-24px) scale(.98,1.03)}83%{transform:translateY(0) scale(1.03,.97)}91%{transform:translateY(-8px) scale(1)}}@keyframes yellow-point{0%,55%,100%{transform:rotate(0)}64%{transform:rotate(-4deg) translateX(5px)}73%{transform:rotate(3deg)}82%{transform:rotate(-2deg)}}@keyframes blue-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-18px) scale(1.025)}}@keyframes green-greet{0%,60%,100%{transform:rotate(0)}69%{transform:rotate(4deg)}78%{transform:rotate(-4deg)}87%{transform:rotate(2deg)}}.ribbon{position:absolute;left:-8%;top:-220px;width:116%;height:470px;z-index:-1;overflow:visible;pointer-events:none;filter:drop-shadow(0 0 12px var(--glow,#00ffe847))}.ribbon path{fill:none;stroke-width:5;stroke-linecap:round;stroke:var(--ribbon,#74ffe9)}.ribbon path.echo{stroke-width:22;opacity:.04}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:50px;margin-bottom:40px}.section-head .eyebrow{margin-bottom:20px}.section-head>p{max-width:330px;padding-top:40px}.studio{padding-top:75px;min-height:660px;margin-top:60px}.studio .intro{margin-left:44%;position:relative;z-index:2}.studio .intro h2{margin:20px 0}.studio .intro>p{max-width:510px}.tiers{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:36px 0 0 27%}.tier{border:1px solid #38535b9c;border-radius:13px;background:linear-gradient(145deg,#0f2933e8,#091c24f5);padding:26px 23px;backdrop-filter:blur(14px);min-height:260px}.tier.selected{border-color:var(--mint);box-shadow:0 0 32px #00ffe809}.tier .eyebrow{color:var(--mint);font-size:9px;letter-spacing:1.4px}.tier h3{margin:18px 0 16px}.tier p{font-size:12px;line-height:1.85}.tier .tier-link{display:inline-flex;color:#a0e5dc;font-size:11px;margin-top:22px}.version-note{font-size:10px;color:#6f8c94;margin-top:20px;text-align:right}.portfolio{margin-top:165px;padding-top:70px;min-height:750px}.portfolio .section-head{padding-right:35%;display:block}.portfolio .section-head>p{padding-top:20px;max-width:500px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 35px;max-width:70%;position:relative;z-index:2}.filters button{background:transparent;border:1px solid var(--line);border-radius:30px;color:#a2b6bd;padding:9px 14px;font-size:11px}.filters button.active{background:var(--mint);color:#072127;border-color:var(--mint)}.works{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 20px;position:relative;z-index:2}.work[hidden]{display:none}.reference-video{aspect-ratio:16/10;background:#102b33;border-radius:12px;overflow:hidden;border:1px solid #27434b}.reference-video iframe{width:100%;height:100%;border:0}.work-caption{display:flex;justify-content:space-between;font-size:10px;margin:14px 0 10px}.work-caption strong{font-weight:500;color:#d8e4e5}.work-caption span{color:#65818a}.reference-title{font-size:13px;line-height:1.65;font-weight:600}.reference-credit{display:flex;flex-wrap:wrap;gap:10px;margin-top:13px;font-size:10px;color:#839fa8}.reference-credit a{border-bottom:1px solid #334d56}.reference-note{font-size:9px;color:#5f7b84;margin-top:9px}.services{margin-top:185px;padding-top:65px;min-height:750px}.services .section-head{margin-left:39%;display:block}.services .section-head>p{padding-top:20px;max-width:510px}.service-grid{margin-left:30%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;position:relative;z-index:2}.service-card{position:relative;padding:25px 16px;background:linear-gradient(140deg,#102a34,#0a1f28);border:1px solid #25434e;border-radius:12px;min-height:175px;transition:transform .25s,border-color .25s}.service-card:hover{transform:translateY(-6px);border-color:var(--mint)}.service-card .service-icon{font-size:25px;font-weight:300;color:#99c5c8;display:block;margin-bottom:20px}.service-card h3{font-size:12px;letter-spacing:-.4px;line-height:1.5}.service-card p{font-size:10px;line-height:1.7;margin-top:8px}.service-card .arrow{position:absolute;right:13px;top:20px;color:#57838e;font-size:13px}.all-products{display:block;margin:27px 0 0 39%;font-size:12px;color:#97d6d0}.process-section{margin-top:195px;padding-top:75px;min-height:620px}.process-section .section-head{padding-right:38%;display:block}.process-section .section-head p{padding-top:22px;max-width:480px}.process{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;margin-top:105px;position:relative;z-index:2}.step{border-top:1px solid #356568;padding-top:24px}.step b{font-size:10px;letter-spacing:1.3px;font-weight:500;color:#66cebd}.step h3{font-size:19px;margin:20px 0 12px}.step p{font-size:12px}.faq{padding:110px 6% 100px;display:grid;grid-template-columns:.9fr 1.2fr;gap:90px}.faq h2{margin-top:20px}.faq details{border-bottom:1px solid #294550;padding:20px 0}.faq details:first-child{border-top:1px solid #294550}.faq summary{font-size:14px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px}.faq summary:after{content:'+';color:#89b3b8}.faq details[open] summary:after{content:'−'}.faq details p{font-size:12px;margin-top:17px}.reunion{position:relative;max-width:1440px;margin:35px auto 0;min-height:490px;padding:70px 6% 0;isolation:isolate}.reunion .ribbon{top:20px;height:400px}.team{display:flex;align-items:flex-end;justify-content:center;position:relative;z-index:40;gap:0;max-width:1000px;margin:auto;pointer-events:none}.team img{width:26%;height:330px;object-fit:contain;filter:drop-shadow(0 14px 13px #0006);margin:0 -1%}.team img:nth-child(2){height:305px}.team img:nth-child(3){height:290px}.team-caption{text-align:center;color:#9cbbb9;letter-spacing:3px;font-size:11px;margin-top:32px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-top:30px;padding-bottom:100px}.contact h2{margin:22px 0;font-size:clamp(30px,3.4vw,50px)}.contact .eyebrow{color:#82aaa9!important}.contact-title-soft{opacity:.65}.form-note{font-size:10px;margin-top:25px;color:#64828a}#inquiry{display:grid;gap:11px;align-content:start}label{font-size:11px;color:#aac0c4}input,textarea,select{min-width:0;width:100%;border:1px solid #284550;border-radius:8px;background:#0e2630;color:#e3eeee;padding:14px;font-size:12px}input::placeholder,textarea::placeholder{color:#718f99}textarea{min-height:105px;resize:vertical}select option{background:#0b222b}#inquiry .btn{margin-top:6px}.status{font-size:11px;line-height:1.8;color:#9cddcf}footer{border-top:1px solid #18313b;display:flex;justify-content:space-between;gap:30px;padding:36px 6%;color:#6c8b95;font-size:10px}.footer-logo{color:#c4d6d7;letter-spacing:4px;font-weight:700}.motion-control{position:fixed;bottom:20px;right:20px;z-index:80;border:1px solid #38616c;background:#071d26dc;color:#9dd8cf;border-radius:30px;padding:10px 16px;font-size:10px;backdrop-filter:blur(10px)}body.motion-off .actor .puppet{animation:none!important}body.motion-off .actor{transform:none!important}
@media(min-width:1600px){.hero{padding-left:calc((100vw - 1268px)/2)}.hero-content h1{font-size:125px}}
@media(max-width:1050px){nav{gap:17px}.scene{padding-left:5%;padding-right:5%}.actor.orange{width:43%;top:-120px}.actor.yellow,.actor.blue,.actor.green{width:42%;top:-120px}.studio{min-height:680px}.tiers{margin-left:20%;gap:10px}.tier{padding:22px 16px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-left:37%}.services{min-height:880px}.services .section-head{margin-left:43%}.service-card{min-height:145px}.service-card .service-icon{margin-bottom:12px}.portfolio .section-head{padding-right:35%}.portfolio .works{grid-template-columns:repeat(2,minmax(0,1fr))}.process{gap:17px}.contact{gap:40px}.faq{gap:40px}.hero h1{letter-spacing:-4px}.hero{min-height:690px;max-height:850px}}
@media(max-width:680px){header{padding:20px 6%}.logo{font-size:14px;letter-spacing:3px}nav{gap:13px}nav a:not(.nav-cta){display:none}nav a:first-child{display:block;font-size:10px}.nav-cta{padding:9px 14px}.hero{height:86svh;min-height:620px;max-height:780px;background-position:62% center;padding:155px 7% 130px;align-items:flex-start}.hero:after{background:linear-gradient(90deg,#031118e0,#03111860),linear-gradient(0deg,var(--bg),transparent 55%)}.hero h1{font-size:clamp(54px,12vw,82px);letter-spacing:-3px;margin-top:25px}.hero p{font-size:13px;max-width:290px}.hero .eyebrow{font-size:8px;letter-spacing:1.7px}.hero .btn{font-size:11px;margin-top:25px;padding:14px 21px}.hero-meta{display:none}.scroll-cue{bottom:52px;left:7%;font-size:8px}.showreel{bottom:50px;font-size:10px}.scene{padding-left:7%;padding-right:7%}h2{font-size:34px;letter-spacing:-1.6px}.eyebrow{font-size:9px;letter-spacing:1.7px}.studio{margin-top:110px;padding-top:190px;min-height:0;padding-bottom:80px}.actor.orange{width:280px;height:280px;left:-28px;top:-155px}.studio .intro{margin-left:0}.studio .intro p{font-size:13px}.tiers{margin:34px 0 0;grid-template-columns:1fr;gap:14px}.tier{min-height:0;padding:24px}.tier h3{margin:12px 0}.tier p{max-width:500px}.tier .tier-link{margin-top:14px}.version-note{font-size:9px;line-height:1.7;text-align:left}.ribbon{top:-130px;height:300px;width:130%;left:-15%}.actor.yellow{width:265px;height:265px;right:-30px;top:-190px}.portfolio{margin-top:190px;padding-top:130px}.portfolio .section-head{padding-right:0}.section-head h2{font-size:34px}.section-head>p{font-size:12px}.filters{max-width:none;gap:7px;margin-top:28px}.filters button{font-size:10px;padding:8px 12px}.portfolio .works{grid-template-columns:1fr;gap:28px}.reference-video{aspect-ratio:16/9}.reference-title{font-size:13px}.reference-note{font-size:9px}.actor.blue{width:285px;height:285px;left:-28px;top:-190px}.services{margin-top:220px;padding-top:140px;min-height:0}.services .section-head{margin-left:0}.service-grid{margin-left:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.service-card{padding:20px 15px;min-height:170px}.service-card h3{font-size:12px}.service-card p{font-size:10px}.all-products{margin-left:0;font-size:11px}.actor.green{width:285px;height:285px;right:-28px;top:-190px}.process-section{margin-top:220px;padding-top:140px;min-height:0}.process-section .section-head{padding-right:0}.process{grid-template-columns:1fr 1fr;margin-top:45px;gap:35px 20px}.step h3{font-size:16px;margin-top:15px}.step p{font-size:11px}.step b{font-size:9px}.faq{display:block;padding-top:75px;padding-bottom:70px}.faq>div:last-child{margin-top:35px}.faq summary{font-size:13px}.reunion{min-height:270px;padding:20px 3% 0;margin-top:0}.team img{height:190px}.team img:nth-child(2){height:175px}.team img:nth-child(3){height:170px}.team-caption{font-size:8px;letter-spacing:1.7px;margin-top:20px}.reunion .ribbon{top:-20px;height:220px}.contact{display:block;padding-top:35px}.contact h2{font-size:34px}.contact p{font-size:12px}.contact .form-note{font-size:10px}#inquiry{margin-top:36px}footer{flex-direction:column;gap:15px;padding-bottom:85px;font-size:9px}.motion-control{right:12px;bottom:12px;font-size:9px;padding:9px 12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.actor,.puppet{animation:none!important;transform:none!important}.btn,.service-card{transition:none}}
html,main{overflow-x:clip}.ribbon{left:0;width:100%;overflow:hidden}@media(max-width:680px){.actor.orange,.actor.blue{left:0}.actor.yellow,.actor.green{right:0}}
body{word-break:keep-all;overflow-wrap:break-word}.actor{z-index:40}.scene:focus{outline:none}@media(max-width:680px){.services h2{font-size:32px}}

/* Match visible mascot height, accounting for the wider transparent canvas of digeut. */
.actor.green .puppet{width:150%;height:150%;max-width:none;margin-left:-25%;margin-top:-25%}
.team img:last-child{transform:scale(1.4);transform-origin:50% 100%}
@media(max-width:1050px){.actor.green .puppet{width:145%;height:145%;margin-left:-22.5%;margin-top:-22.5%}}
@media(max-width:680px){.actor.green .puppet{width:140%;height:140%;margin-left:-20%;margin-top:-20%}}
.team img:last-child{transform-origin:50% 60%}
.actor.green{right:5%}@media(max-width:680px){.actor.green{right:4%}}

/* Larger foreground character bridges, matching the approved concept scale. */
.actor.orange{width:clamp(420px,50vw,715px);left:-1%;top:-225px}
.actor.yellow{width:clamp(400px,46vw,660px);right:0;top:-215px}
.actor.blue{width:clamp(420px,48vw,695px);left:-1%;top:-215px}
.actor.green{width:clamp(410px,45vw,650px);right:6%;top:-215px}
.team{max-width:1170px}.team img{height:390px}.team img:nth-child(2){height:365px}.team img:nth-child(3){height:345px}.reunion{min-height:550px}
@media(min-width:1051px){.studio .intro{margin-left:46%}.services .section-head{margin-left:42%}.service-grid{margin-left:34%}}
@media(min-width:681px) and (max-width:1050px){.actor.orange{width:52%;top:-155px}.actor.yellow{width:48%;top:-160px}.actor.blue{width:50%;top:-160px}.actor.green{width:48%;right:6%;top:-160px}.studio .intro{margin-left:47%}.services .section-head{margin-left:46%}.team img{height:340px}.team img:nth-child(2){height:320px}.team img:nth-child(3){height:300px}}
@media(max-width:680px){.actor.orange{width:min(88vw,350px);height:auto;left:0;top:-185px}.actor.yellow{width:min(86vw,340px);height:auto;right:0;top:-215px}.actor.blue{width:min(88vw,350px);height:auto;left:0;top:-215px}.actor.green{width:min(84vw,335px);height:auto;right:6%;top:-215px}.studio{margin-top:140px;padding-top:230px}.portfolio{margin-top:220px;padding-top:170px}.services,.process-section{margin-top:250px;padding-top:180px}.team img{height:225px}.team img:nth-child(2){height:210px}.team img:nth-child(3){height:195px}.reunion{min-height:310px}}


/* A single dimensional ribbon replaces independent sine-wave decorations. */
.ribbon{display:none}
.story-thread{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;overflow:visible}
.story-thread path{fill:none;stroke:url(#story-gradient);stroke-linecap:round;stroke-linejoin:round}
.thread-halo{stroke-width:26px;opacity:.1;filter:blur(13px)}
.thread-soft{stroke-width:11px;opacity:.18;filter:blur(3px)}
.thread-core{stroke-width:4.5px;opacity:.84;filter:drop-shadow(0 0 5px #8affe966)}
@media(max-width:680px){.thread-core{stroke-width:3px;opacity:.7}.thread-soft{stroke-width:8px}.thread-halo{stroke-width:18px}}

main{position:relative}

/* Broad luminous ribbon, with a soft bloom and a tapered silhouette. */
.story-thread .thread-ribbon{fill:url(#story-gradient);stroke:none;opacity:.94;filter:drop-shadow(0 0 7px #91ffe688)}
.thread-halo{stroke-width:42px;opacity:.16;filter:blur(16px)}
.thread-soft{stroke-width:22px;opacity:.25;filter:blur(5px)}
.thread-core{stroke-width:2px;opacity:.65}
@media(max-width:680px){.thread-halo{stroke-width:26px}.thread-soft{stroke-width:13px}.thread-core{stroke-width:1px}}

/* Flowing translucent waves replace the luminous line treatment. */
.story-thread .thread-ribbon{opacity:.15;filter:blur(1px)}
.story-thread .thread-core{stroke-width:0;opacity:0}
.story-thread .thread-soft{stroke-width:70px;opacity:.065;filter:blur(28px)}
.story-thread .thread-halo{stroke-width:180px;opacity:.07;filter:blur(48px)}
@media(max-width:680px){.story-thread .thread-soft{stroke-width:35px;filter:blur(16px)}.story-thread .thread-halo{stroke-width:95px;filter:blur(28px)}}

/* Closing portrait: one closely gathered team on a shared baseline. */
.reunion{display:flex;align-items:center;gap:3%;padding:65px 5% 55px;min-height:430px;margin-top:0}
.team{flex:1;min-width:0;display:flex;align-items:flex-end;justify-content:center;margin:0;gap:0;max-width:none;padding-bottom:16px}
.team-mascot{position:relative;display:block;flex:none;height:clamp(175px,22vw,315px);width:calc(clamp(175px,22vw,315px)*1.024);margin:0 -1.4%;filter:drop-shadow(0 20px 12px #0007)}
.team-mascot.yellow{height:clamp(155px,19.5vw,280px);width:calc(clamp(155px,19.5vw,280px)*1.041);z-index:2}
.team-mascot.blue{height:clamp(145px,18.5vw,265px);width:calc(clamp(145px,18.5vw,265px)*.832);z-index:3}
.team-mascot.green{height:clamp(145px,18vw,260px);width:calc(clamp(145px,18vw,260px)*1.132);z-index:4}
.team .team-mascot img{position:absolute;max-width:none;height:auto;margin:0;object-fit:initial;transform:none;filter:none}
.team .orange img{width:124.31%;left:-12.57%;top:-3.25%}
.team .yellow img{width:115.24%;left:-9.22%;top:-8.93%}
.team .blue img{width:145.16%;left:-28.71%;top:-7.25%}
.team .green img{width:157.07%;left:-29.49%;top:-12.25%}
.team-message{position:relative;z-index:41;flex:0 0 22%;padding-bottom:12px}
.team-message h3{font-size:clamp(15px,1.6vw,23px);line-height:1.65;letter-spacing:-.6px}
.team-message p{font-size:clamp(10px,1vw,14px);line-height:1.8;margin-top:17px}
@media(max-width:680px){.reunion{display:block;padding:55px 6% 35px;min-height:0}.team{padding-bottom:8px}.team-mascot{height:30vw;width:30.72vw}.team-mascot.yellow{height:27vw;width:28.1vw}.team-mascot.blue{height:25vw;width:20.8vw}.team-mascot.green{height:25vw;width:28.3vw}.team-message{margin-top:35px;text-align:center}.team-message h3{font-size:20px}.team-message p{font-size:12px;margin-top:12px}}

/* Thick neon ribbon with a luminous face and layered bloom. */
.story-thread .thread-ribbon{opacity:.92;filter:drop-shadow(0 0 7px #86ffe9aa) drop-shadow(0 0 18px #55ebd95c)}
.story-thread .thread-core{stroke-width:3px;opacity:.85;filter:blur(.6px)}
.story-thread .thread-soft{stroke-width:65px;opacity:.24;filter:blur(14px)}
.story-thread .thread-halo{stroke-width:125px;opacity:.16;filter:blur(35px)}
@media(max-width:680px){.story-thread .thread-core{stroke-width:2px}.story-thread .thread-soft{stroke-width:34px;filter:blur(9px)}.story-thread .thread-halo{stroke-width:70px;filter:blur(22px)}}

/* Layered translucent blue ribbons with glossy edges. */
.story-thread .thread-core{opacity:0;stroke:none}
.story-thread .thread-halo{stroke:#60b8da;stroke-width:110px;opacity:.08;filter:blur(26px)}
.story-thread .glass-band{fill:url(#glass-blue);stroke:#7dc6df55;stroke-width:1;opacity:.64;filter:drop-shadow(0 8px 7px #00121c88)}
.story-thread .glass-edge{fill:none;stroke:#b9f2ff;stroke-width:2;opacity:.64;filter:drop-shadow(0 0 4px #8bdfff88)}
.story-thread .glass-shadow{fill:none;stroke:#235d82;stroke-width:4;opacity:.72;filter:none}
@media(max-width:680px){.story-thread .glass-edge{stroke-width:1.2}.story-thread .glass-shadow{stroke-width:2}.story-thread .thread-halo{stroke-width:60px}}

/* Reference waves: horizontal crossing blue bands, without character loops. */
.story-thread .wave-face{fill:url(#wave-blue);stroke:#64bad255;stroke-width:1;opacity:.6;filter:drop-shadow(0 7px 5px #00152266)}
.story-thread .wave-bloom{fill:#7bd5ee;stroke:none;opacity:.15;filter:blur(13px)}
.story-thread .wave-light{fill:none;stroke:#bcecf5;stroke-width:2;opacity:.7;filter:drop-shadow(0 0 3px #82d3e8)}
.story-thread .wave-depth{fill:none;stroke:#20668b;stroke-width:3;opacity:.8}
@media(max-width:680px){.story-thread .wave-light{stroke-width:1}.story-thread .wave-depth{stroke-width:2}}

/* Fine continuous ribbons, composited together at forty percent opacity. */
.story-thread{opacity:.4}
.story-thread .wave-face{opacity:1;stroke:none;filter:none}
.story-thread .wave-light{opacity:.65;stroke-width:.75;filter:none}
@media(max-width:680px){.story-thread .wave-light{stroke-width:.5}}

/* Reference composition: a single luminous contour behind each mascot. */
.story-thread{opacity:1}
.story-thread .contour-face{fill:none;stroke-width:8;opacity:.92;filter:drop-shadow(0 0 7px #a5ffe477)}
.story-thread .contour-glow{fill:none;stroke-width:24;opacity:.16;filter:blur(12px)}
.scene:after{content:'';position:absolute;left:0;right:0;top:170px;height:170px;z-index:-2;pointer-events:none;background:radial-gradient(ellipse at 50% 75%,#22778440,transparent 67%);border-radius:50%;transform:rotate(-3deg)}
.reunion:after{content:'';position:absolute;inset:48% 0 0;z-index:-2;background:radial-gradient(ellipse at 40% 65%,#2b778364,transparent 66%),repeating-linear-gradient(177deg,transparent 0 12px,#70dfd306 13px 14px);border-radius:50% 50% 0 0}
@media(max-width:680px){.story-thread .contour-face{stroke-width:4}.story-thread .contour-glow{stroke-width:15}.scene:after{top:40px;height:130px}}

/* Continuous tapered light: hairline joins and gently swelling middles. */
.story-thread .flow-ribbon{stroke:none;opacity:.9;filter:drop-shadow(0 0 5px #a4f8e855)}
.story-thread .flow-bloom{stroke:none;opacity:.25;filter:blur(10px)}

/* Gentle once-only scroll entrances for copy and panels. */
.scroll-reveal{opacity:0;translate:0 24px;transition:opacity .8s ease var(--reveal-delay,0ms),translate .8s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}
.scroll-reveal.revealed{opacity:1;translate:0 0}
.tier.scroll-reveal,.work.scroll-reveal,.service-card.scroll-reveal,.step.scroll-reveal{transition:opacity .75s ease var(--reveal-delay,0ms),translate .85s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms),transform .25s,border-color .25s}
body.motion-off .scroll-reveal{opacity:1;translate:none;transition:none}
@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;translate:none;transition:none!important}}

.hero h1 span{font-size:36px;letter-spacing:-1.5px}

/* Uploaded intro video fills the first screen, beneath the readable copy. */
.hero{background-image:none;overflow:hidden}
.hero-background-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;pointer-events:none}
.hero:after{z-index:1;pointer-events:none}
.hero-content,.hero-meta,.scroll-cue,.showreel{z-index:2}
.hero-content{position:relative}

.client-section{padding-top:70px;padding-bottom:90px}.client-section>.eyebrow{color:#85b5b8}.client-section h2{font-size:clamp(24px,3vw,40px);letter-spacing:-1.5px;margin:20px 0 42px}.client-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid #25434d;border-left:1px solid #25434d}.client-logo{height:120px;min-width:0;display:flex;align-items:center;justify-content:center;padding:28px 24px;border-right:1px solid #25434d;border-bottom:1px solid #25434d;background:#0b242d50;transition:background .25s}.client-logo:hover{background:#15384188}.client-logo img{display:block;max-width:100%;width:auto;max-height:48px;height:auto;object-fit:contain;filter:brightness(0) invert(1);opacity:.78}.client-name{flex-direction:column;gap:6px;text-align:center;color:#d2e1e3}.client-name span{font-size:18px;font-weight:750;line-height:1.05;letter-spacing:.3px}.client-name small{font-size:9px;color:#91abb3}@media(max-width:1050px){.client-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.client-logo{height:110px;padding:24px 20px}}@media(max-width:680px){.client-section{padding-top:40px;padding-bottom:55px}.client-section h2{font-size:25px;line-height:1.5;margin-bottom:28px}.client-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-logo{height:100px;padding:25px 18px}.client-logo img{max-height:42px}.client-name span{font-size:16px}}

.client-logo img[src*='yonsei'],.client-logo img[src*='opm']{filter:none}

/* Reduce section mascots to 80%; the final reunion team retains its scale. */
.actor { scale: .8; transform-origin: 50% 100%; }

/* Fit the visible mascots to their adjacent copy, including transparent asset edges. */
.studio{display:grid;grid-template-columns:46% minmax(0,1fr);min-height:0;padding-bottom:16px}
.studio .intro{grid-column:2;grid-row:1;margin-left:0}
.studio .tiers,.studio .version-note{grid-column:1/-1}
.portfolio{display:grid;grid-template-columns:minmax(0,65%) minmax(0,35%);min-height:0;margin-top:33px;padding-top:14px}
.portfolio .section-head{grid-column:1;grid-row:1;padding-right:0;margin-bottom:0}
.portfolio .filters,.portfolio .works{grid-column:1/-1}
.studio .actor.orange,.portfolio .actor.yellow{position:relative;inset:auto;width:auto;height:auto;min-width:0;min-height:0;aspect-ratio:auto;align-self:stretch;scale:1;transform:none}
.studio .actor.orange{grid-column:1;grid-row:1}
.portfolio .actor.yellow{grid-column:2;grid-row:1}
.studio .actor.orange .puppet,.portfolio .actor.yellow .puppet{position:absolute;left:50%;width:auto;max-width:none;object-fit:contain;translate:-50% 0}
.studio .actor.orange .puppet{height:104.923%;top:-2.813%}
.portfolio .actor.yellow .puppet{height:115.007%;top:-8.632%}
@media(max-width:680px){
 .studio{grid-template-columns:minmax(0,1fr);margin-top:60px;padding-top:20px}
 .studio .actor.orange{grid-column:1;grid-row:1;height:230px}
 .studio .intro{grid-column:1;grid-row:2;margin-top:24px}
 .portfolio{grid-template-columns:minmax(0,1fr);margin-top:44px;padding-top:34px}
 .portfolio .actor.yellow{grid-column:1;grid-row:1;height:230px}
 .portfolio .section-head{grid-column:1;grid-row:2;margin-top:24px}
 .portfolio .filters{max-width:100%}
}

html,body{overflow-x:hidden}

@media(max-width:680px){html[data-sr-live="1"] nav [data-sr="user"] a{display:inline-flex!important;font-size:10px}html[data-sr-live="1"] nav [data-sr="user"]{display:flex;gap:8px}}

.portfolio-empty{margin-top:32px;font-size:14px;line-height:1.9}.portfolio-empty a{color:var(--mint);text-decoration:underline;text-underline-offset:4px}

.inquiry-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.inquiry-consent{display:flex;align-items:flex-start;gap:10px;line-height:1.7}.inquiry-consent input{width:18px;min-width:18px;height:18px;margin:2px 0;accent-color:var(--mint)}.inquiry-privacy{font-size:11px;line-height:1.8;color:var(--muted)}.inquiry-privacy summary{cursor:pointer}.inquiry-privacy p{font-size:11px;margin-top:8px}.status{overflow-wrap:anywhere}.status a{color:var(--mint);text-decoration:underline}#inquiry button:disabled{opacity:.6;cursor:wait}
