/* hama.works — 공통 */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:'Noto Sans KR',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.en{font-family:'Inter Tight','Noto Sans KR',sans-serif}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:6px}

/* 휴대폰 프레임 */
.phone-l{aspect-ratio:2.17;padding:1.8%;background:#050608;border-radius:40px;box-shadow:0 60px 120px rgba(0,0,0,.55)}
.phone-l img{width:100%;height:100%;object-fit:cover;border-radius:30px}
.phone-p{aspect-ratio:270/560;padding:9px;background:#10131A;border-radius:46px;box-shadow:0 60px 120px rgba(31,68,204,.3)}
.phone-p>.scr{width:100%;height:100%;border-radius:37px;background:#fff;overflow:hidden;position:relative}

/* ───────── 홈 (J안) ───────── */
.home{background:#09090A;color:#F5F5F7}
.top{position:absolute;left:0;right:0;top:0;z-index:10;height:72px;padding:0 clamp(20px,3.75vw,48px);display:flex;align-items:center;gap:32px}
.top .logo{font-size:20px;font-weight:800;letter-spacing:-.02em}
.top nav{margin-left:auto;display:flex;gap:28px;font-size:14px;font-weight:500;color:rgba(245,245,247,.8)}
.top nav a:hover{color:#fff}

.pick{position:relative;min-height:100vh;min-height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:96px clamp(24px,7.5vw,96px) 96px}
.pick .bgs i{position:absolute;inset:0;opacity:0;transition:opacity .5s}
.pick .bgs i.on{opacity:1}
.pick .shot{position:absolute;right:-60px;top:15%;width:min(700px,55vw);height:560px;opacity:0;transform:translateY(40px) rotate(-10deg);transition:opacity .5s,transform .6s;pointer-events:none}
.pick .shot.on{opacity:1;transform:translateY(0) rotate(-10deg)}
.pick .shot .phone-l{position:absolute;width:86%}
.pick .shot .phone-l.a{left:0;top:40px}
.pick .shot .phone-l.b{left:11%;top:300px}
.pick .shot .phone-p{position:absolute;left:29%;top:0;height:540px}
.pick .list{position:relative;z-index:2;display:flex;flex-direction:column;gap:6px}
.pick .lead{font-size:15px;color:rgba(245,245,247,.65);margin-bottom:24px}
.pick .item{display:flex;align-items:baseline;gap:24px;padding:6px 0;opacity:.35;transition:opacity .3s}
.pick .item.on{opacity:1}
.pick .item.next{opacity:.25}
.pick .item .no{flex:none;width:28px;font-size:15px;font-weight:700}
.pick .item .nm{font-family:'Inter Tight','Noto Sans KR',sans-serif;font-size:clamp(52px,8.1vw,104px);line-height:1.02;font-weight:800;letter-spacing:-.05em;white-space:nowrap}
.pick .item .ln{font-size:15px;line-height:1.5;color:rgba(245,245,247,.75);max-width:220px}
.pick .recent{position:absolute;left:clamp(24px,7.5vw,96px);bottom:40px;z-index:2;display:flex;flex-wrap:wrap;gap:6px 28px;font-size:13px;color:rgba(245,245,247,.7)}
.pick .recent:hover{color:#fff}

/* 인트로: 신념 문장이 시간에 따라 한 단어씩 떠오르고 홈으로 넘어감 */
.intro{position:fixed;inset:0;z-index:50;background:#09090A;color:#F2F1EE;display:flex;flex-direction:column;justify-content:center;padding:0 clamp(24px,12.5vw,160px);transition:opacity .9s ease,visibility 0s linear .9s}
.intro.out{opacity:0;visibility:hidden}
.no-intro .intro{display:none}
.intro .label{font-size:13px;font-weight:500;letter-spacing:.16em;color:rgba(242,241,238,.55);margin-bottom:36px;opacity:0;animation:hw-in .8s ease .1s forwards}
.intro .words{margin:0;display:flex;flex-wrap:wrap;column-gap:.32em;row-gap:6px;font-family:'Noto Serif KR',serif;font-size:clamp(44px,8.1vw,104px);line-height:1.2;font-weight:600;letter-spacing:-.03em;max-width:960px}
.intro .words span{display:inline-block;opacity:0;filter:blur(10px);transform:translateY(24px);animation:hw-word .9s cubic-bezier(.2,.7,.2,1) forwards}
.intro .sub{margin:40px 0 0;font-size:clamp(15px,1.4vw,18px);line-height:1.7;color:rgba(242,241,238,.62);max-width:560px;opacity:0;animation:hw-in .9s ease 1.5s forwards}
.intro .skip{position:absolute;right:clamp(20px,3.75vw,48px);bottom:36px;height:44px;padding:0 18px;border-radius:999px;border:1px solid rgba(242,241,238,.25);background:transparent;color:rgba(242,241,238,.7);font:inherit;font-size:13px;cursor:pointer}
.intro .skip:hover{color:#F2F1EE;border-color:rgba(242,241,238,.5)}
@keyframes hw-word{to{opacity:1;filter:blur(0);transform:none}}
@keyframes hw-in{to{opacity:1}}

/* 이루리 화면 그림 (캡처 대신) */
.er-ui{position:absolute;inset:0;padding:42px 18px 18px;display:flex;flex-direction:column;gap:12px;background:#F4F7FF;color:#10131A;font-size:12px}
.er-ui .t{font-weight:700;font-size:13px;color:#3B4252}
.er-ui .card{background:#fff;border-radius:18px;padding:14px;box-shadow:0 6px 18px rgba(31,68,204,.08)}
.er-ui .big{font-family:'Inter Tight',sans-serif;font-size:34px;font-weight:800;letter-spacing:-.03em;color:#10131A}
.er-ui .big small{font-size:14px;font-weight:700;color:#5B6270;margin-left:4px}
.er-ui .bub{align-self:flex-end;max-width:85%;background:#2E5BFF;color:#fff;border-radius:16px 16px 4px 16px;padding:10px 12px;line-height:1.5}
.er-ui .bub.ai{align-self:flex-start;background:#fff;color:#10131A;border-radius:16px 16px 16px 4px;box-shadow:0 6px 18px rgba(31,68,204,.08)}
.er-ui .mic{margin-top:auto;align-self:center;width:64px;height:64px;border-radius:50%;background:#2E5BFF;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 10px rgba(46,91,255,.15)}
.er-ui .row{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid #EEF1F6}
.er-ui .row:first-child{border-top:0}
.er-ui .chip{display:inline-block;background:#FFF3D6;color:#7A4B00;border-radius:999px;padding:2px 8px;font-weight:700;font-size:11px}

/* 소식 */
.news{position:relative;z-index:1;background:#09090A;padding:96px clamp(24px,7.5vw,96px) 72px}
.news h2{margin:0 0 40px;font-size:13px;font-weight:500;letter-spacing:.16em;color:rgba(242,241,238,.6)}
.news ul{list-style:none;margin:0;padding:0;max-width:880px}
.news li{display:grid;grid-template-columns:72px 96px 1fr;gap:16px;align-items:baseline;padding:20px 0;border-top:1px solid rgba(242,241,238,.12);font-size:17px}
.news li:last-child{border-bottom:1px solid rgba(242,241,238,.12)}
.news .d{font-size:13px;font-weight:500;color:rgba(242,241,238,.55)}
.news .a{font-size:13px;font-weight:700}
.foot{position:relative;z-index:1;background:#09090A;padding:48px clamp(24px,7.5vw,96px) 56px;display:flex;flex-wrap:wrap;gap:12px 28px;font-size:13px;color:rgba(242,241,238,.5)}
.foot a:hover{color:#F2F1EE}

/* 소개 글을 이름 아래로 (오른쪽 화면 그림과 겹치지 않게) */
@media (max-width:1500px){
  .pick .item{flex-wrap:wrap;column-gap:24px;row-gap:0}
  .pick .item .ln{flex-basis:100%;max-width:none;padding-left:52px;margin-top:10px}
}
@media (max-width:760px){
  .pick{justify-content:flex-start;padding-top:120px;padding-bottom:140px}
  .pick .shot{right:-35%;top:auto;bottom:-4%;width:100vw;height:340px}
  .pick .shot.on{opacity:.35}
  .pick .shot .phone-l.b{top:150px}
  .pick .shot .phone-p{height:360px;left:45%}
  .pick .item{flex-wrap:wrap;column-gap:14px;row-gap:2px}
  .pick .item .no{width:auto}
  .pick .item .ln{flex-basis:100%;max-width:none;padding-left:0}
  .pick .recent{flex-direction:column;bottom:32px}
  .news li{grid-template-columns:56px 1fr;gap:4px 12px}
  .news li .t{grid-column:1/-1}
}

/* ───────── 앱 페이지 (K·L안) ───────── */
.app .head{position:fixed;left:0;right:0;top:0;z-index:10;height:72px;padding:0 clamp(16px,3.75vw,48px);display:flex;align-items:center;gap:16px}
.app .head .back{font-size:15px;font-weight:700;opacity:.75;white-space:nowrap}
.app .head .back:hover{opacity:1}
.app .head .sep{width:1px;height:16px;background:currentColor;opacity:.25}
.app .head .nm{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:700}
.app .head .nm img,.app .head .nm svg{width:26px;height:26px;border-radius:7px}
.app .head nav{margin-left:auto;display:flex;gap:6px;font-size:14px;font-weight:500}
.app .head nav a{padding:8px 14px;border-radius:999px;transition:background .2s}
.app .head .cta{margin-left:6px;display:inline-flex;align-items:center;height:40px;padding:0 18px;border-radius:999px;font-size:14px;font-weight:700;white-space:nowrap}
.app .foot-bar{position:fixed;left:clamp(16px,3.75vw,48px);right:clamp(16px,3.75vw,48px);bottom:36px;z-index:10;display:flex;align-items:center;gap:16px;font-size:13px;font-weight:700}
.app .foot-bar .bar{flex:1;height:2px;position:relative}
.app .foot-bar .bar i{position:absolute;left:0;top:0;bottom:0;width:0}

.side{position:relative}
.side .stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.side .track{display:flex;height:100%;will-change:transform}
.side section{flex:none;width:100vw;height:100%;position:relative;overflow:hidden}
.side .no{position:absolute;left:6.25vw;top:9%;font-family:'Inter Tight',sans-serif;font-size:min(280px,22vw);font-weight:800;line-height:1;letter-spacing:-.06em;pointer-events:none}
.side .copy{position:absolute;left:7.5vw;top:31%;width:min(460px,38vw);display:flex;flex-direction:column;gap:20px;z-index:2}
.side .copy h2{margin:0;font-size:clamp(36px,4.4vw,56px);line-height:1.18;font-weight:900;letter-spacing:-.04em}
.side .copy p{margin:0;font-size:18px;line-height:1.65}
.side .hero{position:absolute;left:7.5vw;top:24%;width:min(600px,46vw);display:flex;flex-direction:column;gap:24px;z-index:2}
.side .hero h1{margin:0;font-size:clamp(72px,10.6vw,136px);line-height:.94;font-weight:900;letter-spacing:-.055em}
.side .hero p{margin:0;font-size:clamp(22px,2.35vw,30px);line-height:1.4;font-weight:700;letter-spacing:-.02em}
.side .hero .hint{font-size:15px}
.side .vis{position:absolute;will-change:transform}
.side .end{display:flex;gap:72px;padding:21vh 7.5vw 0}
.side .end .l{flex:0 0 340px;display:flex;flex-direction:column;gap:18px}
.side .end .l h2{margin:0 0 6px;font-size:clamp(36px,4.4vw,56px);line-height:1.18;font-weight:900;letter-spacing:-.04em}
.side .end .l a{font-size:16px}
.side .end .l a:hover{text-decoration:underline;text-underline-offset:4px}
.side .end ul{flex:1;list-style:none;margin:0;padding:0;max-width:640px}
.side .end li{display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:center;padding:20px 0;font-size:18px}
.side .end li b{font-size:13px}

/* 좁은 화면: 가로 넘김 대신 세로로 쌓기 */
@media (max-width:820px),(max-height:520px){
  .side{height:auto!important}
  .side .stage{position:static;height:auto;overflow:visible}
  .side .track{display:block;transform:none!important}
  .side section{width:auto;height:auto;min-height:0;padding:120px 24px 56px;display:flex;flex-direction:column;gap:36px}
  .side section:first-child{padding-top:120px}
  .side .no{left:16px;top:56px;font-size:150px}
  .side .copy,.side .hero{position:relative;left:auto;top:auto;width:auto}
  .side .vis{position:relative;left:auto!important;top:auto!important;width:100%!important;transform:none!important;margin:0 auto}
  .side .vis.phone-p{width:min(250px,70vw)!important;height:auto!important}
  .side .end{flex-direction:column;gap:32px;padding:120px 24px 120px}
  .side .end .l{flex:none}
  .app .head{background:var(--head-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
  .app .head nav{display:none}
  .app .foot-bar{display:none}
}
@media (max-width:480px){
  .app .head .back span{display:none}
}
@media (prefers-reduced-motion:reduce){
  .pick .bgs i,.pick .shot,.pick .item{transition:none}
}
