/* Team Areum 링크 허브(/go)와 짧은 페이지. 모바일 우선. 작성: Claude (Anthropic) · Verified: no */
@font-face{font-family:"Pretendard TA";src:url(/fonts/Pretendard-Regular.subset.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Pretendard TA";src:url(/fonts/Pretendard-Bold.subset.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Pretendard TA";src:url(/fonts/Pretendard-ExtraBold.subset.woff2) format("woff2");font-weight:800;font-display:swap}
:root{--bg:#F5F5F7;--card:#FFFFFF;--ink:#1D1D1F;--ink2:#6E6E73;--ink3:#86868B;--line:#E8E8ED;--accent:#5B3FD0;--accent-soft:#F1EEFC;--accent-dim:#C9B8FF;--ease:cubic-bezier(.16,1,.3,1);color-scheme:light}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;min-height:100svh;background:var(--bg);color:var(--ink);font-family:"Pretendard TA","Pretendard","Apple SD Gothic Neo","Hiragino Sans","PingFang SC",system-ui,sans-serif;letter-spacing:-0.02em;word-break:keep-all;-webkit-font-smoothing:antialiased;line-height:1.5}
html[lang="ja"] body,html[lang="zh-Hans"] body{word-break:normal;line-break:strict}
@media (min-width:600px){body{background:radial-gradient(1200px 600px at 50% -10%,#EDE9FB 0%,var(--bg) 55%)}}
h1,p,ul{margin:0}
img,svg,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.hub-main{max-width:440px;margin:0 auto;padding:max(14px,env(safe-area-inset-top)) 18px max(28px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px}
.hub-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px}
.hub-brand{display:flex;align-items:center;gap:8px;font-weight:800;font-size:16px;letter-spacing:-0.035em}
.langs{display:flex;gap:2px}
.seg{min-width:38px;min-height:38px;border-radius:999px;border:0;background:transparent;font:inherit;font-size:12.5px;font-weight:700;color:var(--ink2);cursor:pointer}
.seg[aria-pressed="true"]{background:#E6E6EB;color:var(--ink)}

/* banner — 영상 대신 포스터 한 장(혼잡한 LTE 고려), 천천히 움직임 */
.banner{position:relative;border-radius:28px;overflow:hidden;aspect-ratio:16/9;background:#0B0B0E;box-shadow:0 30px 60px -30px rgba(29,29,31,.5);animation:rise .9s var(--ease) both}
.banner img{width:100%;height:100%;object-fit:cover;animation:kenburns 16s ease-in-out infinite alternate}
.banner-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,14,0) 30%,rgba(11,11,14,.65) 100%)}
.banner-logo{position:absolute;left:18px;bottom:16px}
.banner-logo .logo-ring{stroke-dasharray:100;stroke-dashoffset:100;animation:draw 1s cubic-bezier(.6,0,.2,1) .25s forwards}
.banner-logo .logo-dot{transform-box:fill-box;transform-origin:center;animation:pop .6s cubic-bezier(.2,1.6,.4,1) 1s both}
@keyframes kenburns{from{transform:scale(1.05) translate(0,0)}to{transform:scale(1.16) translate(-3%,-2%)}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes pop{from{opacity:0;transform:translate(-10px,10px) scale(.2)}to{opacity:1;transform:none}}
/* 허브는 QR 첫 화면 — 애니메이션이 멈추거나 늦어도 내용이 숨지 않게 위치만 움직인다(투명도 0에서 시작하지 않음). */
@keyframes rise{from{transform:translateY(14px)}to{transform:none}}

.hub-head{text-align:center;padding:6px 8px 4px;animation:rise .9s var(--ease) .12s both}
.hub-head h1{font-size:28px;font-weight:800;letter-spacing:-0.045em;line-height:1.2}
.hub-head p{margin-top:6px;font-size:15px;line-height:1.55;color:var(--ink2)}

.links{list-style:none;padding:0;display:flex;flex-direction:column;gap:12px}
.links li{animation:rise .9s var(--ease) both}
.links li:nth-child(1){animation-delay:.2s}.links li:nth-child(2){animation-delay:.28s}.links li:nth-child(3){animation-delay:.36s}
.link{display:flex;align-items:center;gap:14px;min-height:80px;padding:16px 16px 16px 16px;border-radius:24px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);transition:transform .18s var(--ease),box-shadow .2s}
.link:hover{box-shadow:inset 0 0 0 1px #D2D2D7,0 16px 32px -24px rgba(29,29,31,.4)}
.link:active{transform:scale(.975)}
.link.primary{background:var(--ink);color:#fff;box-shadow:0 18px 36px -22px rgba(29,29,31,.7)}
.link.primary .txt>span{color:#A1A1A6}
.link.primary em{font-style:normal;color:var(--accent-dim);font-weight:700}
.txt strong span,.txt em span{color:inherit}
.ico{width:48px;height:48px;border-radius:15px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ico svg{fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ico.grad{background:linear-gradient(160deg,#6A4FE0,#3B1E9E)}.ico.grad svg{stroke:#fff}
.ico.soft{background:var(--accent-soft)}.ico.soft svg{stroke:var(--accent)}
.txt{display:flex;flex-direction:column;gap:3px;flex-grow:1;min-width:0}
.txt strong{font-size:17px;letter-spacing:-0.03em}
.txt>span{font-size:13px;color:var(--ink2)}
.chev{flex-shrink:0;fill:none;stroke:var(--ink3);stroke-width:2;stroke-linecap:round}
.link.film{flex-direction:column;align-items:stretch;padding:0;gap:0;overflow:hidden}
.thumb{position:relative;aspect-ratio:16/9;background:#0B0B0E;overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover;opacity:.92;transition:transform .6s var(--ease)}
.link.film:hover .thumb img{transform:scale(1.04)}
.play{position:absolute;left:50%;top:50%;width:58px;height:58px;margin:-29px 0 0 -29px;border-radius:50%;background:rgba(255,255,255,.94);display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px -10px rgba(0,0,0,.6)}
.play svg{fill:var(--ink);margin-left:3px}
.film-row{display:flex;align-items:center;gap:14px;padding:14px 16px 16px}

.share{align-self:center;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:999px;border:0;background:transparent;color:var(--ink2);font:inherit;font-size:14px;font-weight:700;cursor:pointer;animation:rise .9s var(--ease) .44s both}
.share:hover{color:var(--ink);background:#EAEAEF}
.share svg{fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.hub-foot{margin-top:8px;text-align:center;font-size:12px;color:var(--ink3)}
.toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--ink);color:#fff;font-size:14px;font-weight:700;padding:12px 18px;border-radius:999px;box-shadow:0 16px 32px -16px rgba(0,0,0,.5)}

/* /app /film 404 */
.panel{background:var(--card);border-radius:28px;padding:32px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;box-shadow:inset 0 0 0 1px var(--line);animation:rise .9s var(--ease) both}
.panel h1{font-size:24px;font-weight:800;letter-spacing:-0.04em;line-height:1.3}
.panel p{font-size:15px;line-height:1.6;color:var(--ink2)}
.app-icon{width:88px;height:88px;border-radius:24px;background:linear-gradient(160deg,#6A4FE0,#3B1E9E);display:flex;align-items:center;justify-content:center;box-shadow:0 20px 40px -20px rgba(59,30,158,.8)}
.stack{display:flex;flex-direction:column;gap:10px;width:100%;margin-top:8px}
.btn{display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:999px;font-weight:700;font-size:16px;transition:transform .18s var(--ease)}
.btn:active{transform:scale(.98)}
.btn.primary{background:var(--ink);color:#fff}
.btn.ghost{box-shadow:inset 0 0 0 1.5px #D2D2D7}
.film-panel{padding:12px 12px 24px}
.film-video{width:100%;border-radius:18px;background:#0B0B0E;aspect-ratio:16/9}
.film-panel h1,.film-panel p{padding:0 12px}
.film-panel .stack{padding:0 12px;box-sizing:border-box}

@media (prefers-reduced-motion: reduce){*{animation:none !important;transition:none !important}.banner-logo .logo-ring{stroke-dashoffset:0}}
.hub-foot a{color:inherit;text-decoration:underline;text-underline-offset:2px}
