:root{--bg:#111;--panel:#181817;--ink:#f4f3ef;--dim:#8f8d86;--body:#b2b0a9;--line:#2a2a28;--lime:#d6ff3d;--font:"Pretendard", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:72px}body{-webkit-tap-highlight-color:transparent;overflow-wrap:break-word;background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}img{display:block}:focus-visible{outline:2px solid var(--lime);outline-offset:3px}::selection{background:var(--lime);color:#111}.wrap{max-width:1440px;margin:0 auto;padding:0 clamp(18px,4vw,48px)}.top{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#111111db;justify-content:space-between;align-items:center;padding:20px 0;font-size:13px;display:flex;position:sticky;top:0}.top b{letter-spacing:-.01em;font-weight:700}.top nav{color:#c9c7c0;align-items:center;gap:30px;display:flex}.top nav a:hover{color:var(--lime)}.lang{border:1px solid #444;border-radius:99px;padding:5px 12px;font-size:12px;font-weight:600}.lang:hover{border-color:var(--lime);color:var(--lime)}.hero{padding:20px 0 64px;position:relative;overflow:clip}.word{letter-spacing:-.07em;text-transform:uppercase;font-size:clamp(76px,17.5vw,270px);font-weight:800;line-height:.84}.word.o{color:#0000;-webkit-text-stroke:2px var(--ink)}.word.l{color:var(--lime)}.info{color:#cfcdc6;width:320px;font-size:14px;line-height:1.75;position:absolute;top:28px;right:0}.info b{color:var(--ink);letter-spacing:-.03em;margin-bottom:8px;font-size:20px;font-weight:700;display:block}.focus{flex-wrap:wrap;gap:6px;margin:14px 0 12px;padding:0;list-style:none;display:flex}.focus li{color:#cfcdc6;border:1px solid #3a3a38;border-radius:99px;padding:3px 11px;font-size:12px}.info small{color:var(--dim);letter-spacing:.04em;font-size:12px}.block{margin-top:8px}.bar{letter-spacing:.14em;text-transform:uppercase;color:var(--dim);border-top:1px solid var(--ink);justify-content:space-between;padding:14px 0;font-size:12px;display:flex}.tools{flex-wrap:wrap;justify-content:space-between;gap:12px;padding:4px 0 18px;display:flex}.seg{border:1px solid #3a3a38;border-radius:99px;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--body);border-radius:99px;padding:6px 16px;font-size:13px;font-weight:500}.seg button:hover{color:var(--ink)}.seg button.on{background:var(--lime);color:#111;font-weight:700}.row{border-top:1px solid var(--line);grid-template-columns:56px 252px minmax(0,1fr) 210px;align-items:center;gap:24px;width:calc(100% + 24px);margin:0 -12px;padding:16px 12px;transition:background .2s;display:grid}.row:hover{background:var(--panel)}.row .n{color:var(--dim);font-variant-numeric:tabular-nums;font-size:14px}.thumb{aspect-ratio:16/10;background:#000;border-radius:4px;display:block;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;transition:transform .35s}.row:hover .thumb img,.g:hover .thumb img{transform:scale(1.06)}.ph{color:var(--dim);letter-spacing:.04em;background:repeating-linear-gradient(45deg,#1b1b1a 0 10px,#161615 10px 20px);place-items:center;font-size:15px;font-weight:700;display:grid;position:absolute;inset:0}.main{min-width:0;display:block}.main h3{letter-spacing:-.045em;font-size:32px;font-weight:700;line-height:1.1;transition:color .2s}.row:hover h3,.g:hover b{color:var(--lime)}.main h3 em,.thumb em{vertical-align:middle;background:var(--lime);color:#111;letter-spacing:0;margin-left:10px;padding:2px 9px;font-size:12px;font-style:normal;font-weight:700;display:inline-block}.main .org{color:#cfcdc6;margin-top:6px;font-size:13px;font-weight:600;display:block}.main .d{-webkit-line-clamp:2;color:var(--body);-webkit-box-orient:vertical;margin-top:8px;font-size:14px;line-height:1.6;display:-webkit-box;overflow:hidden}.r{text-align:right;color:var(--dim);font-size:13.5px;line-height:1.65;display:block}.r span{display:block}.r .role{-webkit-line-clamp:2;color:#cfcdc6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.idx{border-bottom:1px solid var(--line)}.gal{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:36px 20px;display:grid}.g{display:block}.g .thumb{aspect-ratio:16/10;border-radius:6px}.g .thumb em{margin:0;position:absolute;top:10px;left:10px}.g>b{letter-spacing:-.04em;margin-top:12px;font-size:22px;font-weight:700;transition:color .2s;display:block}.g .r{text-align:left;gap:10px;margin-top:2px;display:flex}.g .r .role{-webkit-line-clamp:1}.aw{grid-template-columns:1fr 1fr;display:grid}.aw button{padding:34px 40px 40px 0;transition:background .2s;display:block}.aw button+button{border-left:1px solid var(--line);padding:34px 0 40px 40px}.aw small{color:var(--dim);letter-spacing:.12em;text-transform:uppercase;font-size:12px}.aw h3{letter-spacing:-.05em;margin:10px 0;font-size:clamp(34px,4vw,52px);font-weight:800;transition:color .2s}.aw button:hover h3{color:var(--lime)}.aw em{background:var(--lime);color:#111;padding:4px 10px;font-size:13px;font-style:normal;font-weight:700}.aw p{color:var(--body);margin-top:14px;font-size:14px;line-height:1.7}.row2{border-top:1px solid var(--line);grid-template-columns:200px 1fr 220px;gap:20px;padding:20px 0;font-size:14px;display:grid}.row2 b{letter-spacing:-.03em;font-size:22px}.row2 span{color:var(--body);line-height:1.6}.row2 i{color:var(--dim);text-align:right;font-style:normal}.big{letter-spacing:-.06em;padding:90px 0 30px;font-size:clamp(38px,8vw,120px);font-weight:800;line-height:1}.big a:hover{color:var(--lime)}.foot{border-top:1px solid var(--line);color:var(--dim);flex-wrap:wrap;justify-content:space-between;gap:16px;padding:26px 0 40px;font-size:12.5px;display:flex}.foot a:hover{color:var(--ink)}.modal{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000b8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-box{background:#151514;border:1px solid #2e2e2b;border-radius:10px;grid-template-columns:1.35fr 1fr;width:min(1180px,100%);max-height:calc(100dvh - 48px);display:grid;position:relative;overflow:auto}.modal-box.no-media{grid-template-columns:1fr;width:min(640px,100%)}.modal-close{z-index:3;text-align:center;background:#222;border:1px solid #3a3a38;border-radius:50%;width:34px;height:34px;font-size:13px;position:absolute;top:12px;right:12px}.modal-close:hover{border-color:var(--lime);color:var(--lime)}.modal-media{background:#0a0a0a;flex-direction:column;justify-content:center;gap:12px;min-height:0;padding:18px;display:flex}.stage{position:relative}.stage>img{object-fit:contain;background:#000;border-radius:6px;width:100%;max-height:min(66vh,62vw)}.arrow{text-align:center;background:#111111c7;border:1px solid #444;border-radius:50%;place-items:center;width:38px;height:38px;padding:0 0 3px;font-size:24px;line-height:1;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.arrow:hover{background:var(--lime);color:#111;border-color:var(--lime)}.arrow.prev{left:10px}.arrow.next{right:10px}.thumbs{gap:8px;display:flex}.thumbs button{opacity:.5;border:2px solid #0000;border-radius:5px;width:84px;overflow:hidden}.thumbs button.on{border-color:var(--lime);opacity:1}.thumbs img{aspect-ratio:16/10;object-fit:cover;width:100%}.modal-info{flex-direction:column;gap:4px;padding:34px 32px 28px;display:flex}.count{color:var(--dim);letter-spacing:.14em;margin-bottom:10px;font-size:12px}.modal-info .prize{background:var(--lime);color:#111;align-self:flex-start;margin-bottom:8px;padding:3px 10px;font-size:12px;font-weight:700}.modal-info .org{color:var(--dim);font-size:13px}.modal-info h2{letter-spacing:-.05em;font-size:40px;font-weight:800;line-height:1.08}.modal-info .desc{color:var(--body);margin-top:12px;font-size:15px;line-height:1.75}.hl{color:var(--body);margin:12px 0 0;padding-left:18px;font-size:13.5px;line-height:1.65}.hl li+li{margin-top:4px}.modal-info dl{border-top:1px solid var(--line);margin-top:20px}.modal-info dl div{border-bottom:1px solid var(--line);grid-template-columns:78px 1fr;gap:10px;padding:10px 0;font-size:13.5px;line-height:1.55;display:grid}.modal-info dt{color:var(--dim)}.repos{flex-wrap:wrap;gap:6px 16px;margin-top:16px;font-size:13px;font-weight:600;display:flex}.repos a{color:var(--lime);overflow-wrap:anywhere}.repos a:hover{text-decoration:underline}.pn{justify-content:space-between;gap:12px;margin-top:auto;padding-top:24px;display:flex}.pn button{border:1px solid #3a3a38;border-radius:99px;padding:8px 16px;font-size:13px;font-weight:600}.pn button:hover{border-color:var(--lime);color:var(--lime)}@media (width<=1240px){.row{grid-template-columns:44px 200px minmax(0,1fr) 170px;gap:20px}.main h3{font-size:28px}.info{width:280px}.aw button{padding-right:24px}.aw button+button{padding-left:24px}.modal-box{grid-template-columns:1.2fr 1fr}}@media (width<=1000px){.wrap{padding:0 20px}.top nav{gap:16px}.word{font-size:min(26vw,260px)}.info{width:auto;max-width:520px;margin-top:34px;position:static}.stage>img{max-height:46vh}.row{grid-template-columns:clamp(112px,24vw,210px) minmax(0,1fr);gap:14px 16px;padding:14px 12px}.row .n{display:none}.main h3{font-size:22px}.main .d{-webkit-line-clamp:2;font-size:13px}.row .r{text-align:left;grid-column:1/-1;gap:12px;font-size:12.5px;display:flex}.aw{grid-template-columns:1fr}.aw button,.aw button+button{border-left:0;padding:26px 0}.aw button+button{border-top:1px solid var(--line)}.row2{grid-template-columns:1fr;gap:6px}.row2 i{text-align:left}.modal{align-items:end;padding:0}.modal-box{border-radius:12px 12px 0 0;grid-template-columns:1fr;max-height:94dvh}.modal-info{padding:22px 20px 26px}.modal-info h2{font-size:30px}}@media (width<=560px){.top nav{gap:14px;font-size:12.5px}.top nav a:nth-child(4){display:none}.word.o{-webkit-text-stroke-width:1.5px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.thumb img,.row,.g>b{transition:none}}@media (pointer:coarse){.seg button{padding:10px 18px}.lang{padding:8px 14px}.pn button{padding:12px 18px}.arrow,.modal-close{width:44px;height:44px}}@media (hover:none){.row:hover{background:0 0}.row:hover .thumb img,.g:hover .thumb img{transform:none}.row:hover h3,.g:hover>b,.aw button:hover h3{color:inherit}}@media (height<=520px) and (orientation:landscape){.modal{padding:0}.modal-box{border-radius:0;grid-template-columns:1.2fr 1fr;width:100%;max-height:100vh}.stage>img{max-height:72vh}.modal-info h2{font-size:26px}}.foot{padding-bottom:calc(40px + env(safe-area-inset-bottom))}@supports (padding:max(0px)){.wrap{padding-left:max(clamp(18px, 4vw, 48px), env(safe-area-inset-left));padding-right:max(clamp(18px, 4vw, 48px), env(safe-area-inset-right))}}.progress{z-index:60;background:var(--lime);transform-origin:0;width:100%;height:3px;transform:scaleX(var(--scroll,0));pointer-events:none;position:fixed;top:0;left:0}@keyframes rise{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}@keyframes wipe{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}.reveal{opacity:0}.reveal.in{opacity:1;animation:rise .8s cubic-bezier(.2, .7, .2, 1) var(--d,0s) backwards}.reveal.in .thumb img{animation:wipe .9s cubic-bezier(.2, .7, .2, 1) calc(var(--d,0s) + .12s) backwards}.bar.reveal{border-top-color:#0000;position:relative}.bar.reveal:before{content:"";background:var(--ink);transform-origin:0;height:1px;position:absolute;top:-1px;left:0;right:0;transform:scaleX(0)}.bar.reveal.in:before{transition:transform 1.1s cubic-bezier(.2, .7, .2, 1) var(--d,0s);transform:scaleX(1)}.word{animation:1s cubic-bezier(.2,.8,.2,1) backwards rise}.word:first-child{transform:translateX(calc(var(--hero,0) * -7vw))}.word:nth-child(2){transform:translateX(calc(var(--hero,0) * 7vw));animation-delay:.12s}.word:nth-child(3){transform:translateX(calc(var(--hero,0) * -4vw));animation-delay:.24s}.info{opacity:calc(1 - var(--hero,0) * 1.5);animation:1s cubic-bezier(.2,.8,.2,1) .42s backwards rise}.top nav a.act{color:var(--lime)}@media (prefers-reduced-motion:reduce){.reveal,.reveal.in{opacity:1;animation:none}.reveal.in .thumb img{animation:none}.bar.reveal{border-top-color:var(--ink)}.bar.reveal:before{display:none}.word,.info{opacity:1;animation:none}.word:nth-child(n){transform:none}.progress{display:none}}
