/* ============================================================
   풀이 페이지 공통 틀(flow) — 한 화면에 한 질문 · 오행 색이 따라 바뀌는 배경 · 계산 연출 · 풀이마다 다른 결과 장치.
   색·글꼴·모션 토큰은 app.css :root 를 그대로 쓴다. 이 파일은 /item(풀이 페이지)에서만 불러온다.
   규칙: 글로우·보라 그라데이션·이모지 아이콘 금지. 움직임은 스프링으로 짧게, prefers-reduced-motion 에서는 끈다.
   ============================================================ */
body.fl-page{background:var(--fl-bg,var(--c-fire));color:var(--fl-fg,#111);min-height:100vh;min-height:100svh;overflow-x:hidden;transition:background-color .7s var(--out),color .4s}
body.fl-page.split{background:linear-gradient(90deg,var(--fl-a) 50%,var(--fl-b) 50%)}
body.fl-page.on-light{--fl-fg:#fff}
.fl-shell{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;position:relative}
.fl-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;height:64px;padding:0 max(20px,env(safe-area-inset-left));position:relative;z-index:5}
.fl-bar .logo{font-family:var(--display);font-size:24px;letter-spacing:-.01em}
.fl-close{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;transition:background .2s,transform .3s var(--spring)}
.fl-close:hover{background:rgba(0,0,0,.1)}.fl-close:active{transform:scale(.92)}
.fl-close svg{width:22px;height:22px}
.fl-prog{display:flex;gap:6px;flex:1;max-width:240px;opacity:0;transition:opacity .3s}
.fl-prog.on{opacity:1}
.fl-prog i{height:5px;border-radius:5px;flex:1;background:rgba(0,0,0,.18);transition:background .4s,flex .5s var(--spring);position:relative;overflow:hidden}
.fl-prog i.done{background:currentColor}
.fl-prog i.now{background:currentColor;flex:2.2}
.fl-back{width:44px;height:44px;border-radius:50%;display:none;place-items:center;transition:background .2s}
.fl-back.on{display:grid}
.fl-back:hover{background:rgba(0,0,0,.1)}
.fl-back svg{width:22px;height:22px}

/* ---------- 화면(view) 전환 ---------- */
.fl-main{flex:1;position:relative;display:flex;flex-direction:column}
.fl-view{display:none;flex:1;flex-direction:column;animation:flIn .7s var(--out) both}
.fl-view.on{display:flex}
.fl-view.out{display:flex;animation:flOut .28s ease-in both;position:absolute;inset:0;pointer-events:none}
@keyframes flIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes flOut{to{opacity:0;transform:translateY(-14px)}}
.fl-wrap{width:min(1120px,100% - 40px);margin:0 auto}

/* ---------- 인트로 ---------- */
.fl-intro{padding:8px 0 32px;flex:1}
.fl-intro .fl-wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:40px;align-items:center;flex:1}
.fl-kick{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:800;background:rgba(255,255,255,.88);color:#111;border-radius:999px;padding:7px 14px;margin-bottom:18px;animation:flIn .7s var(--out) .05s both}
.fl-kick b{background:#111;color:#fff;border-radius:999px;padding:2px 9px;font-size:12px}
.fl-h1{font-family:var(--display);font-weight:400;font-size:clamp(46px,7.2vw,104px);line-height:1.04;letter-spacing:-.025em}
.fl-h1 .ln{display:block;overflow:hidden;padding:.05em 0}
.fl-h1 .ln>span{display:block;animation:flRise .85s var(--out) both;animation-delay:calc(var(--k,0)*110ms + 120ms)}
@keyframes flRise{from{transform:translateY(105%) rotate(2deg)}to{transform:none}}
.fl-lead{font-size:clamp(17px,2vw,21px);font-weight:600;line-height:1.6;margin-top:20px;max-width:28em;animation:flIn .8s var(--out) .45s both}
.fl-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;animation:flIn .8s var(--out) .55s both}
.fl-chips span{font-size:14px;font-weight:700;border:2px solid currentColor;border-radius:999px;padding:6px 14px}
.fl-cta-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px;animation:flIn .8s var(--out) .65s both}
.fl-vis{position:relative;min-height:380px;display:grid;place-items:center}
.fl-resume{margin-top:14px;font-size:15px;font-weight:700;animation:flIn .8s var(--out) .75s both}
.fl-resume button{text-decoration:underline;text-underline-offset:3px;font-weight:800}
.fl-resume small{font-weight:600;opacity:.75;margin-left:6px}

/* ---------- 버튼 ---------- */
.fl-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:60px;padding:0 34px;border-radius:999px;background:#111;color:#fff;font-size:18px;font-weight:800;letter-spacing:-.01em;transition:transform .35s var(--spring),background .2s,opacity .2s}
.fl-btn:hover{transform:translateY(-2px)}.fl-btn:active{transform:scale(.97)}
.fl-btn svg{width:22px;height:22px;transition:transform .35s var(--spring)}
.fl-btn:hover svg{transform:translateX(3px)}
.fl-btn[disabled]{background:rgba(0,0,0,.2);color:rgba(255,255,255,.7);cursor:not-allowed;transform:none}
.fl-btn.line{background:transparent;color:inherit;border:2px solid currentColor}
.fl-btn.white{background:#fff;color:#111}
.fl-btn.sm{height:48px;padding:0 22px;font-size:16px}

/* ---------- 질문(ask) ---------- */
.fl-ask{padding:6px 0 120px;flex:1}
.fl-ask .fl-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}   /* 좌우 반 = 배경 반(짝 풀이는 배경이 둘로 갈라진다) */
.fl-q{display:none}
.fl-q.on{display:block;animation:flQ .6s var(--out) both}
@keyframes flQ{from{opacity:0;transform:translateX(36px)}to{opacity:1;transform:none}}
.fl-q.back.on{animation-name:flQb}
@keyframes flQb{from{opacity:0;transform:translateX(-36px)}to{opacity:1;transform:none}}
.fl-q h2{font-family:var(--display);font-weight:400;font-size:clamp(32px,4.4vw,50px);line-height:1.12;letter-spacing:-.02em}
.fl-q .sub{font-size:17px;font-weight:600;margin-top:12px;line-height:1.6;max-width:26em}
.fl-form{margin-top:30px}
.fl-row{display:flex;gap:10px}
.fl-num{display:flex;align-items:center;gap:6px;background:#fff;color:#111;border-radius:22px;height:76px;padding:0 20px;flex:1 1 0;min-width:0;box-shadow:0 1px 0 rgba(0,0,0,.05);transition:box-shadow .2s,transform .3s var(--spring)}
.fl-num:first-child{flex-grow:1.7}
.fl-num:focus-within{box-shadow:0 0 0 3px #111;transform:translateY(-2px)}
.fl-num.err{box-shadow:0 0 0 3px #D6361A}
.fl-num input{width:100%;min-width:0;border:0;background:none;outline:none;font-family:var(--display);font-size:34px;letter-spacing:-.02em;text-align:right;color:#111;padding:0}
.fl-num input::placeholder{color:#c4c4c0}
.fl-num span{font-size:17px;font-weight:700;color:#6B6B6B;flex:none}
.fl-num.time{flex:0 1 150px}
.fl-seg{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;align-items:center}
.fl-seg button{height:46px;padding:0 20px;border-radius:999px;border:2px solid currentColor;font-size:16px;font-weight:800;transition:background .2s,color .2s,transform .3s var(--spring)}
.fl-seg button:active{transform:scale(.95)}
.fl-seg button[aria-pressed=true]{background:#111;color:#fff;border-color:#111}
.fl-seg label{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;margin-left:6px;cursor:pointer}
.fl-seg label[hidden]{display:none}
.fl-seg input[type=checkbox]{width:20px;height:20px;accent-color:#111}
.fl-link{font-size:15px;font-weight:800;text-decoration:underline;text-underline-offset:3px;margin-top:16px;display:inline-block}
.fl-timebox{margin-top:12px;overflow:hidden;max-height:0;opacity:0;transition:max-height .5s var(--out),opacity .4s,margin .4s}
.fl-timebox.on{max-height:120px;opacity:1}
.fl-help{font-size:14px;font-weight:600;opacity:.8;margin-top:12px;line-height:1.55}
.fl-err{min-height:22px;margin-top:12px;font-size:15px;font-weight:800;color:#8F1D0A}
.fl-err:not(:empty){background:#fff;border-radius:12px;display:inline-block;padding:6px 14px}
.fl-remember{display:flex;align-items:center;gap:10px;margin-top:18px;font-size:15px;font-weight:700;cursor:pointer}
.fl-remember input{width:22px;height:22px;accent-color:#111}
/* 선택 카드 */
.fl-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fl-opts.one{grid-template-columns:1fr}
.fl-opt{position:relative;text-align:left;background:#fff;color:#111;border-radius:24px;padding:22px 20px 20px;border:3px solid transparent;transition:transform .35s var(--spring),border-color .2s,box-shadow .3s;min-height:112px;display:flex;flex-direction:column;gap:6px}
.fl-opt b{font-family:var(--display);font-weight:400;font-size:28px;letter-spacing:-.02em;line-height:1.1}
.fl-opt small{font-size:14px;font-weight:600;color:#6B6B6B;line-height:1.45}
.fl-opt:hover{transform:translateY(-3px)}
.fl-opt:active{transform:scale(.98)}
.fl-opt[aria-checked=true]{border-color:#111;box-shadow:0 14px 30px -18px rgba(0,0,0,.5)}
.fl-opt::after{content:'';position:absolute;right:16px;top:16px;width:26px;height:26px;border-radius:50%;border:2.5px solid #d5d5d1;background:#fff;transition:background .25s,border-color .25s}
.fl-opt[aria-checked=true]::after{background:#111 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") center/16px no-repeat;border-color:#111}
/* 여러 명(단톡방) */
.fl-people{display:flex;flex-direction:column;gap:10px}
.fl-person{background:#fff;color:#111;border-radius:24px;padding:12px 14px 12px 12px;display:flex;align-items:center;gap:12px;animation:flQ .5s var(--spring) both;position:relative}
.fl-person .av{width:56px;height:56px;border-radius:18px;flex:none;display:grid;place-items:end center;overflow:hidden;background:var(--pc,#F1F1EF);transition:background .5s}
.fl-person .av img{width:90%;height:auto;animation:flPop .6s var(--spring) both}
.fl-person .av i{font-style:normal;font-family:var(--display);font-size:22px;align-self:center;color:#aaa}
.fl-person .f{display:flex;gap:6px;flex:1;min-width:0}
.fl-person .f label{display:flex;align-items:center;gap:3px;background:#F1F1EF;border-radius:14px;height:48px;padding:0 10px;flex:1 1 0;min-width:0}
.fl-person .f label:first-child{flex-grow:1.8}
.fl-person .f label:focus-within{background:#fff;box-shadow:inset 0 0 0 2px #111}
.fl-person input{width:100%;min-width:0;border:0;background:none;outline:none;font-size:19px;font-weight:800;text-align:right;color:#111;padding:0}
.fl-person .f span{font-size:13px;font-weight:700;color:#6B6B6B}
.fl-person .x{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#8a8a86;flex:none}
.fl-person .x:hover{background:#F1F1EF;color:#111}
.fl-person .no{position:absolute;left:-8px;top:-8px;font-size:12px;font-weight:800;background:#111;color:#fff;border-radius:999px;padding:2px 8px}
.fl-add{width:100%;height:56px;border-radius:22px;border:2.5px dashed currentColor;font-size:16px;font-weight:800;opacity:.85;transition:opacity .2s,transform .3s var(--spring)}
.fl-add:hover{opacity:1;transform:translateY(-2px)}
.fl-add[disabled]{opacity:.35;cursor:not-allowed;transform:none}
/* 오른쪽 라이브 무대: 입력하는 순간 캐릭터가 튀어나온다 */
.fl-live{position:sticky;top:96px;min-height:360px;display:grid;place-items:center}
.fl-live .stage{position:relative;width:min(380px,100%);aspect-ratio:1/1.05;display:grid;place-items:end center}
.fl-live .who{position:absolute;left:50%;bottom:0;width:78%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px}
.fl-live .who img{width:100%;height:auto;filter:drop-shadow(0 18px 18px rgba(0,0,0,.2));animation:flPop .75s var(--spring) both}
.fl-live .who.two{flex-direction:row;width:100%;justify-content:center;align-items:flex-end}
.fl-live .who.two img{width:56%;margin:0 -6%}
.fl-live .tagc{background:#111;color:#fff;border-radius:999px;font-size:14px;font-weight:800;padding:6px 14px;animation:flIn .5s var(--out) .2s both;white-space:nowrap}
.fl-live .ghost{width:66%;aspect-ratio:1;border-radius:50%;border:3px dashed currentColor;opacity:.35;display:grid;place-items:center;font-family:var(--display);font-size:64px;animation:flBreath 3s ease-in-out infinite}
@keyframes flPop{0%{opacity:0;transform:translateY(40px) scale(.7) rotate(-6deg)}60%{opacity:1;transform:translateY(-8px) scale(1.04) rotate(2deg)}100%{transform:none}}
@keyframes flBreath{50%{transform:scale(1.04);opacity:.5}}
.fl-dock{position:fixed;left:0;right:0;bottom:0;padding:14px max(20px,env(safe-area-inset-left)) calc(14px + env(safe-area-inset-bottom));display:flex;justify-content:center;z-index:6;pointer-events:none}
.fl-dock .fl-btn{pointer-events:auto;width:min(560px,100%)}

/* ---------- 계산하는 동안(calc) ---------- */
.fl-calc{align-items:center;justify-content:center;text-align:center;padding:24px}
.fl-orbit{position:relative;width:min(300px,74vw);aspect-ratio:1;margin:0 auto}
.fl-orbit .ring{position:absolute;inset:0;animation:flSpin 2.4s cubic-bezier(.5,0,.3,1) both}
.fl-orbit .ring i{position:absolute;left:50%;top:50%;width:26px;height:26px;margin:-13px;border-radius:50%;background:var(--oc);transform:rotate(var(--a)) translateY(calc(var(--r,0)*-1));animation:flGather 2.4s cubic-bezier(.6,0,.2,1) both}
@keyframes flSpin{from{transform:rotate(-120deg)}to{transform:rotate(300deg)}}
@keyframes flGather{0%{--r:0px;opacity:0;scale:.4}20%{opacity:1;scale:1}55%{transform:rotate(var(--a)) translateY(-118px);scale:1}100%{transform:rotate(var(--a)) translateY(-22px);scale:.5;opacity:.9}}
.fl-orbit .core{position:absolute;left:50%;top:50%;width:52%;transform:translate(-50%,-50%);animation:flCore 2.4s var(--out) both;display:flex;justify-content:center}
.fl-orbit .core img{width:100%;height:auto;filter:drop-shadow(0 14px 14px rgba(0,0,0,.2))}
.fl-orbit .core.two img{width:62%;margin:0 -8%}
@keyframes flCore{0%,55%{opacity:0;transform:translate(-50%,-50%) scale(.5)}85%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.fl-cl{font-family:var(--display);font-size:clamp(26px,4vw,36px);margin-top:34px;letter-spacing:-.01em;min-height:1.3em}
.fl-cl span{display:inline-block;animation:flIn .5s var(--out) both}
.fl-pbar{width:min(260px,70vw);height:8px;border-radius:8px;background:rgba(0,0,0,.15);margin:20px auto 0;overflow:hidden}
.fl-pbar i{display:block;height:100%;width:0;background:currentColor;border-radius:8px;animation:flFill 2.3s cubic-bezier(.5,0,.2,1) both}
@keyframes flFill{to{width:100%}}

/* ---------- 결과(result) ---------- */
.fl-res{padding:6px 0 140px}
.fl-res-head{padding:8px 0 28px}
.fl-res-head .tagline{font-size:15px;font-weight:800;margin-bottom:12px}
.fl-card{background:#fff;color:#111;border-radius:30px;padding:28px 26px;margin-top:16px}
.fl-card h2,.fl-card h3{font-family:var(--display);font-weight:400;letter-spacing:-.02em}
.fl-card h2{font-size:28px;line-height:1.2}
.fl-card h3{font-size:22px;margin-bottom:12px}
.fl-card p{font-size:17px;font-weight:600;line-height:1.75;margin-top:10px}
.fl-card .note{font-size:14px;font-weight:600;color:#6B6B6B;margin-top:16px;line-height:1.65}
.fl-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fl-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.fl-btn.k{background:#111;color:#fff}
.fl-more{margin-top:34px}
.fl-more h3{font-family:var(--display);font-weight:400;font-size:28px;margin-bottom:14px}
.fl-more .rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 14px;scrollbar-width:none;margin:0 -20px;padding-left:20px;padding-right:20px}
.fl-more .rail::-webkit-scrollbar{display:none}
.fl-mini{flex:0 0 min(210px,62vw);scroll-snap-align:start;border-radius:26px;padding:18px 16px 0;background:var(--c);color:#111;min-height:210px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;transition:transform .35s var(--spring);position:relative}
.fl-mini.el-water{color:#fff}
.fl-mini:hover{transform:translateY(-4px)}
.fl-mini b{font-family:var(--display);font-weight:400;font-size:24px;line-height:1.15;letter-spacing:-.02em}
.fl-mini small{display:block;font-size:13px;font-weight:700;margin-top:6px;opacity:.9}
.fl-mini img{width:68%;align-self:flex-end;margin-right:-6%;margin-bottom:-4%;filter:drop-shadow(0 10px 10px rgba(0,0,0,.18))}
.fl-sticky{position:fixed;left:0;right:0;bottom:0;z-index:6;padding:12px max(16px,env(safe-area-inset-left)) calc(12px + env(safe-area-inset-bottom));display:flex;gap:10px;justify-content:center;background:linear-gradient(180deg,transparent,rgba(0,0,0,.0) 0);pointer-events:none}
.fl-sticky>*{pointer-events:auto}
.fl-sticky .fl-btn{flex:1;max-width:340px;box-shadow:0 12px 30px -14px rgba(0,0,0,.6)}
.fl-pay{background:#111;color:#fff;border-radius:30px;padding:28px 26px;margin-top:16px}
.fl-pay h2{font-family:var(--display);font-weight:400;font-size:30px;line-height:1.15}
.fl-pay ul{list-style:none;margin:16px 0 22px;display:flex;flex-direction:column;gap:10px}
.fl-pay li{display:flex;gap:10px;font-size:16px;font-weight:600;line-height:1.5}
.fl-pay li::before{content:'';width:20px;height:20px;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23111' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") center/13px no-repeat;flex:none;margin-top:2px}
.fl-pay .fl-btn{background:#fff;color:#111;width:100%;max-width:420px}
.fl-pay .sm{font-size:13px;font-weight:600;opacity:.7;margin-top:12px;line-height:1.6}

/* ---------- 공용 결과 부품 ---------- */
.fl-dots{display:flex;gap:10px}
.fl-dots i{width:26px;height:26px;border-radius:50%;border:3.5px solid currentColor;display:block;transform:scale(.6);opacity:.4;transition:transform .5s var(--spring),opacity .4s,background .3s;transition-delay:calc(var(--i)*110ms + 300ms)}
.fl-dots.in i{transform:none;opacity:1}
.fl-dots.in i.on{background:currentColor}
.fl-bandbig{font-family:var(--display);font-size:clamp(34px,5.4vw,60px);line-height:1.1;letter-spacing:-.02em}
.fl-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.fl-pills span{font-size:14px;font-weight:800;border-radius:999px;padding:7px 14px;background:#F1F1EF;display:inline-flex;align-items:center;gap:7px}
.fl-pills span svg{width:16px;height:16px;flex:none}
.fl-pills span.good{background:#111;color:#fff}
.fl-strip{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;align-items:end;margin-top:18px;min-height:96px}
.fl-strip .c{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0}
.fl-strip .bar{width:100%;border-radius:10px;background:#D9D9D5;height:0;transition:height .9s var(--spring);transition-delay:calc(var(--i)*70ms + 200ms)}
.fl-strip.in .c .bar{height:var(--h)}
.fl-strip .c.s2 .bar{background:#8d8d89}
.fl-strip .c.s3 .bar{background:#111}
.fl-strip.col .c.s3 .bar{background:var(--k,#111)}
.fl-strip b{font-size:13px;font-weight:800}
.fl-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;font-size:13px;font-weight:700;color:#6B6B6B}
.fl-legend i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:6px;vertical-align:-1px}
.rv{opacity:0;transform:translateY(22px);transition:opacity .7s var(--out),transform .8s var(--out);transition-delay:calc(var(--i,0)*80ms)}
.rv.in{opacity:1;transform:none}
.fl-disc{font-size:13px;font-weight:600;opacity:.8;margin-top:22px;line-height:1.7;max-width:46em}

/* ---------- 반응형 ---------- */
@media (max-width:899px){
  .fl-bar{height:56px}
  .fl-intro{padding-bottom:110px}
  .fl-intro .fl-wrap{grid-template-columns:1fr;gap:6px;align-content:start}
  .fl-vis{order:-1;min-height:min(330px,40svh);margin-top:-6px}
  .fl-cta-row{position:fixed;left:0;right:0;bottom:0;padding:14px 20px calc(14px + env(safe-area-inset-bottom));margin:0;z-index:6;justify-content:center;pointer-events:none}
  .fl-cta-row>*{pointer-events:auto;flex:1;max-width:520px}
  .fl-ask .fl-wrap{grid-template-columns:1fr;gap:0}
  .fl-live{position:fixed;right:10px;top:70px;min-height:0;width:104px;pointer-events:none;z-index:2}
  .fl-live .stage{width:104px}
  .fl-live .ghost{display:none}
  .fl-live .tagc{display:none}
  .fl-q h2,.fl-q .sub{padding-right:96px}
  .fl-live.people{display:none}
  .fl-q:has(.fl-people) h2,.fl-q:has(.fl-people) .sub{padding-right:0}
  .fl-num{height:68px;border-radius:20px}
  .fl-num input{font-size:30px}
  .fl-opts{grid-template-columns:1fr}
  .fl-cols{grid-template-columns:1fr}
  .fl-card{padding:24px 20px;border-radius:26px}
}
@media (max-width:420px){.fl-num{padding:0 14px}.fl-num input{font-size:27px}.fl-person .f label{padding:0 7px}.fl-person input{font-size:17px}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .rv{opacity:1;transform:none}.fl-strip .c .bar{height:var(--h)}.fl-dots i{transform:none;opacity:1}
}

/* ---------- 인트로 비주얼(풀이마다 다른 작은 장면) ---------- */
.iv{position:relative;width:min(440px,100%);aspect-ratio:1/1.02;display:grid;place-items:center}
.iv .blob{position:absolute;border-radius:50%;animation:ivDrift 9s ease-in-out 1 both}
@keyframes ivDrift{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
.iv .hero{position:relative;z-index:2;width:84%;height:auto;filter:drop-shadow(0 22px 20px rgba(0,0,0,.2));animation:flPop .95s var(--spring) .2s both,ivSway 2.6s ease-in-out 1.2s 3}
@keyframes ivSway{50%{transform:translateY(-10px) rotate(1.2deg)}}
.iv .chip{position:absolute;z-index:3;background:#fff;color:#111;font-size:15px;font-weight:800;border-radius:999px;padding:9px 16px;box-shadow:0 10px 24px -14px rgba(0,0,0,.5);animation:flPop .7s var(--spring) both}
.iv .chip.dark{background:#111;color:#fff}
.iv .tag{position:absolute;z-index:3;font-family:var(--display);font-size:22px;background:#111;color:#fff;border-radius:14px;padding:6px 14px;animation:flPop .7s var(--spring) both}
.iv-dots{position:absolute;z-index:3;left:50%;bottom:2%;transform:translateX(-50%);display:flex;gap:10px;background:#fff;color:#111;border-radius:999px;padding:12px 18px;box-shadow:0 10px 24px -14px rgba(0,0,0,.5);animation:flPop .7s var(--spring) .9s both}
.iv-dots i{width:20px;height:20px;border-radius:50%;border:3px solid #111;display:block;animation:ivFill .4s var(--spring) both}
.iv-dots i.on{background:#111}
@keyframes ivFill{from{transform:scale(.3);opacity:0}to{transform:none;opacity:1}}

/* ---------- 결과: 두 사람 카드 ---------- */
.fl-pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:center;margin:6px 0 4px}
.fl-pc{background:var(--c);color:#111;border-radius:28px;padding:16px 12px 16px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px;overflow:hidden;position:relative;animation:flDrop .9s var(--spring) both}
.fl-pc.el-water{color:#fff}
.fl-pc:nth-child(3){animation-delay:.12s}
@keyframes flDrop{from{opacity:0;transform:translateY(-44px) rotate(-3deg)}to{opacity:1;transform:none}}
.fl-pc img{width:74%;max-width:170px;height:auto;filter:drop-shadow(0 12px 12px rgba(0,0,0,.2))}
.fl-pc b{font-family:var(--display);font-weight:400;font-size:30px;letter-spacing:-.02em;line-height:1.1}
.fl-pc small{font-size:13px;font-weight:700;opacity:.88}
.fl-x{width:46px;height:46px;border-radius:50%;background:#111;color:#fff;display:grid;place-items:center;font-family:var(--display);font-size:22px;animation:flPop .6s var(--spring) .4s both}
.fl-score{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:22px}
.fl-score p{font-size:17px;font-weight:700;line-height:1.55;max-width:26em}
@media (max-width:560px){.fl-pc b{font-size:24px}.fl-x{width:36px;height:36px;font-size:17px}}

/* ---------- 공용 부품 ---------- */
.fl-av{width:var(--s,44px);height:var(--s,44px);border-radius:32%;background:color-mix(in srgb,var(--c) 55%,#fff);display:inline-grid;place-items:end center;overflow:hidden;flex:none}
.fl-av img{width:92%;height:auto}
.fl-hbar{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) 28px;gap:12px;align-items:center;margin-top:12px}
.fl-hbar .l b{font-size:16px;font-weight:800}.fl-hbar .l small{display:block;font-size:12.5px;font-weight:600;color:#6B6B6B;line-height:1.35}
.fl-hbar .t{height:14px;border-radius:14px;background:#EFEFEC;overflow:hidden}
.fl-hbar .t i{display:block;height:100%;width:0;border-radius:14px;transition:width 1s var(--spring);transition-delay:.25s}
.rv.in .fl-hbar .t i,.in .fl-hbar .t i{width:var(--w)}
.fl-hbar .v{font-family:var(--display);font-size:20px;text-align:right}
.fl-numlist{list-style:none;display:flex;flex-direction:column;gap:14px;margin-top:14px;counter-reset:n}
.fl-numlist li{display:flex;gap:14px;align-items:flex-start;font-size:17px;font-weight:600;line-height:1.65}
.fl-numlist b{font-family:var(--display);font-weight:400;font-size:26px;width:38px;height:38px;border-radius:50%;background:#111;color:#fff;display:grid;place-items:center;flex:none;line-height:1}
.fl-kv{margin-top:16px}
.fl-kv .k{display:inline-block;font-size:13px;font-weight:800;background:#111;color:#fff;border-radius:999px;padding:3px 12px}
.fl-kv p{margin-top:8px}

/* 썸·재회운 인트로 + 경고 */
.iv-strip{position:absolute;z-index:3;left:6%;right:6%;bottom:6%;display:grid;grid-template-columns:repeat(12,1fr);gap:5px;align-items:end;background:#fff;border-radius:22px;padding:12px 12px 10px;box-shadow:0 12px 26px -16px rgba(0,0,0,.5);height:92px}
.iv-strip i{display:block;border-radius:7px;background:#D9D9D5;height:0;animation:ivBar .7s var(--spring) both}
.iv-strip i.s2{background:#8d8d89}.iv-strip i.s3{background:#111}
.iv-strip i.s1{--hh:16px}.iv-strip i.s2{--hh:34px}.iv-strip i.s3{--hh:62px}
@keyframes ivBar{from{height:0}to{height:var(--hh)}}
.fl-warn{font-size:14.5px;font-weight:700;background:#FFF6D6;color:#5d521f;border-radius:18px;padding:14px 18px;margin-top:16px;line-height:1.6}

/* 나의 한 단어 */
.iv-wcard{width:min(300px,78%);aspect-ratio:4/5;border-radius:26px;background:var(--c-wood);border:3px solid #111;padding:8%;display:flex;flex-direction:column;justify-content:space-between;container-type:inline-size;position:relative;overflow:hidden;box-shadow:0 26px 50px -26px rgba(0,0,0,.55);transform:rotate(-3deg);animation:flDrop .9s var(--spring) both}
.iv-wcard .t{display:flex;justify-content:space-between;font-size:4.4cqw;font-weight:800}
.iv-wcard .w{font-family:var(--display);font-size:34cqw;line-height:.95;letter-spacing:-.04em;min-height:1em}
.iv-wcard .w span{display:inline-block}
.iv-wcard img{position:absolute;right:-6%;bottom:-4%;width:58%;filter:drop-shadow(0 12px 12px rgba(0,0,0,.2))}
.wd-grid{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:30px;align-items:start;margin-top:8px}
.wd-card{width:100%;aspect-ratio:4/5;border-radius:26px;background:var(--c);color:#111;padding:8%;display:flex;flex-direction:column;justify-content:space-between;container-type:inline-size;box-shadow:0 26px 60px -30px rgba(0,0,0,.5);position:relative;overflow:hidden}
.wd-card.el-water{color:#fff}
.wd-card .t{display:flex;justify-content:space-between;font-size:4.2cqw;font-weight:800;position:relative;z-index:1}
.wd-card .w{font-family:var(--display);font-size:var(--fs,34cqw);line-height:.95;letter-spacing:-.04em;word-break:keep-all;position:relative;z-index:1;margin-top:3cqw}
.wd-card .slot{display:inline-block;animation:wdSlot 1.3s var(--spring) .3s both}
@keyframes wdSlot{0%{transform:translateY(-120%);opacity:0}60%{transform:translateY(8%);opacity:1}100%{transform:none}}
.wd-card .ch{position:absolute;right:4%;bottom:24%;width:50%;height:auto;filter:drop-shadow(0 12px 12px rgba(0,0,0,.2));pointer-events:none}
.wd-card .u{font-size:4.9cqw;font-weight:700;line-height:1.55;position:relative;z-index:1}
.wd-card .m{font-family:var(--display);font-size:5.4cqw;margin-top:3cqw;position:relative;z-index:1}
.wd-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.wd-tags span{font-size:15px;font-weight:700;border:2px solid #E6E6E3;border-radius:999px;padding:6px 14px;color:#6B6B6B}
.wd-tags span.hot{background:#111;border-color:#111;color:#fff}
@media (max-width:860px){.wd-grid{grid-template-columns:1fr}.wd-card{max-width:420px;margin:0 auto}}

/* 직장 궁합 */
.fl-axh{display:flex;justify-content:space-between;align-items:center;gap:10px}
.fl-axh h3{margin-bottom:0}
.fl-axr{display:flex;gap:12px;align-items:flex-start;margin-top:14px}
.fl-axr p{margin-top:0;font-size:16.5px}
.fl-match{font-size:13px;font-weight:800;border-radius:999px;padding:5px 13px;color:#fff;background:#111;white-space:nowrap}
.fl-match.fit{background:var(--c-wood);color:#111}
.fl-match.gap{background:var(--c-fire);color:#111}
.iv .blob{z-index:0}
/* 단톡방 */
.fl-stack{display:flex}.fl-stack>span{margin-left:-14px;animation:flPop .6s var(--spring) calc(var(--k)*90ms + 300ms) both}.fl-stack>span:first-child{margin-left:0}
.fl-stack .fl-av{box-shadow:0 0 0 3px #fff}
.fl-chat{display:flex;flex-direction:column;gap:14px;margin-top:6px}
.fl-bub{display:flex;gap:12px;align-items:flex-start;animation:flQ .5s var(--spring) calc(var(--i)*80ms) both}
.fl-bub>div{background:#F4F4F2;border-radius:6px 22px 22px 22px;padding:12px 16px;flex:1}
.fl-bub b{font-size:14px;font-weight:800;color:#6B6B6B;margin-right:8px}
.fl-bub .role{font-family:var(--display);font-size:18px}
.fl-bub p{font-size:15.5px;margin-top:4px;line-height:1.6}
.fl-heat{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:6px;align-items:center;justify-items:center;margin-top:16px;max-width:460px}
.fl-heat>span:not(.fl-av){width:100%;aspect-ratio:1;display:grid;place-items:center;border-radius:14px;background:#F4F4F2}
.fl-heat>.fl-av{width:min(100%,38px);height:auto;aspect-ratio:1}
.fl-heat>span i{display:block;width:calc(var(--sz)*100%);aspect-ratio:1;border-radius:50%;background:#111}
.fl-heat>span.s1 i{background:#c9c9c4}.fl-heat>span.s2 i{background:#8d8d89}.fl-heat>span.s5 i{background:var(--c-fire)}
.fl-heat>span.self{background:transparent}
.fl-duos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:6px}
.fl-duo{border-radius:24px;padding:16px;text-align:center;background:#F4F4F2}
.fl-duo.good{background:color-mix(in srgb,var(--c-wood) 50%,#fff)}.fl-duo.warm{background:color-mix(in srgb,var(--c-earth) 55%,#fff)}
.fl-duo .k{font-size:13px;font-weight:800;background:#111;color:#fff;border-radius:999px;padding:3px 12px}
.fl-duo .f{display:flex;justify-content:center;align-items:center;gap:8px;margin:14px 0 6px}
.fl-duo .f i{font-style:normal;font-family:var(--display);font-size:22px}
.fl-duo p{font-size:15px;margin-top:0}
.fl-ebar{display:flex;height:44px;border-radius:14px;overflow:hidden;margin:6px 0 12px;gap:3px}
.fl-ebar i{display:grid;place-items:center;min-width:0}
.fl-ebar b{font-size:13px;font-weight:800;color:#111}
@media (max-width:560px){.fl-duos{grid-template-columns:1fr}}
/* 아이돌 */
.iv-star{position:absolute;aspect-ratio:1;background:#fff;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);animation:flPop .8s var(--spring) both;z-index:1}
.fl-photo{width:min(300px,100%);margin:6px auto 0;background:#fff;color:#111;border-radius:22px;padding:12px 12px 14px;box-shadow:0 24px 44px -24px rgba(0,0,0,.55);transform:rotate(-2deg);animation:flDrop .9s var(--spring) both}
.fl-photo .top,.fl-photo .bot{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:800;letter-spacing:.08em;padding:0 4px}
.fl-photo .duo{margin:10px 0;border-radius:14px;aspect-ratio:3/3.4;display:flex;align-items:flex-end;justify-content:center;padding:0 8px;overflow:hidden}
.fl-photo .duo img{width:56%;margin:0 -6%;filter:drop-shadow(0 10px 8px rgba(0,0,0,.2))}
.fl-photo .bot{font-family:var(--display);font-size:20px;letter-spacing:0;justify-content:center;gap:12px}
.fl-photo .bot b{font-weight:400}.fl-photo .bot i{font-style:normal}
.fl-vibe{display:flex;gap:14px;align-items:center}
.fl-vibe b{font-family:var(--display);font-weight:400;font-size:26px;letter-spacing:-.02em}

/* 이직·취업 / 직업 적성 */
.fl-wins{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.fl-win{border-radius:22px;padding:16px 18px;background:#F4F4F2}
.fl-win.go{background:color-mix(in srgb,var(--c-wood) 55%,#fff)}
.fl-win b{font-family:var(--display);font-weight:400;font-size:22px;display:block}
.fl-win span{font-size:13px;font-weight:800;background:#111;color:#fff;border-radius:999px;padding:2px 10px;display:inline-block;margin-top:6px}
.fl-win p{font-size:15.5px;margin-top:8px}
.fl-cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}
.fl-cols3 .fl-card{margin-top:0}
.fl-cols3 .fl-card h3{margin-bottom:0}
@media (max-width:860px){.fl-wins,.fl-cols3{grid-template-columns:1fr}}

/* 오늘의 운세 */
.iv-day{background:var(--c-fire);aspect-ratio:4/5}
.fl-lines{display:flex;flex-direction:column;gap:14px;margin-top:8px}
.fl-lines .ln{display:grid;grid-template-columns:62px 1fr;gap:14px;align-items:start}
.fl-lines .k{font-size:14px;font-weight:800;background:#111;color:#fff;border-radius:999px;padding:5px 0;text-align:center}
.fl-lines p{margin-top:0;font-size:17px}
.fl-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:6px}
.fl-week .d{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 2px 10px;border-radius:18px;background:#F4F4F2;animation:flQ .5s var(--spring) calc(var(--i)*70ms) both}
.fl-week .d.today{background:#111;color:#fff}
.fl-week b{font-size:15px;font-weight:800}
.fl-week .sc{display:flex;gap:3px}
.fl-week .sc i{width:8px;height:8px;border-radius:50%;border:2px solid currentColor;display:block}
.fl-week .sc i.on{background:currentColor}
.fl-week small{font-size:11.5px;font-weight:700;opacity:.8;text-align:center;line-height:1.2;word-break:keep-all}
@media (max-width:520px){.fl-week{gap:3px}.fl-week small{font-size:10px}}

/* 상대에게 링크 보내기 안내 시트 */
.fl-sheet{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.5);display:flex;align-items:flex-end;justify-content:center;padding:16px;animation:flFade .2s ease both}
.fl-sheet .box{width:min(520px,100%);max-height:calc(100dvh - 32px);overflow:auto;background:#fff;color:#111;border-radius:28px;padding:28px 24px 24px;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:flRise .3s var(--spring,ease) both}
.fl-sheet h3{font-family:var(--display);font-weight:400;font-size:28px;letter-spacing:-.01em;margin-bottom:12px}
.fl-sheet p{font-size:15.5px;line-height:1.75;color:#333;margin-top:10px}
.fl-sheet p.note{font-size:13.5px;color:#666}
.fl-sheet a{text-decoration:underline;font-weight:700}
.fl-sheet .row2{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.fl-sheet .row2 .fl-btn{height:52px;font-size:16px;padding:0 24px;flex:1 1 auto}
@keyframes flFade{from{opacity:0}to{opacity:1}}
@keyframes flRise{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@media (min-width:700px){.fl-sheet{align-items:center}}
@media (prefers-reduced-motion:reduce){.fl-sheet,.fl-sheet .box{animation:none}}

/* 택일 달력 */
.fl-cal .wk,.fl-cal .grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.fl-cal .wk span{text-align:center;font-size:13px;font-weight:800;color:#6B6B6B;padding:4px 0}
.fl-cal .wk span:first-child{color:#B0361F}
.fl-cal .d{position:relative;aspect-ratio:1/1.08;border-radius:12px;background:#F1F1EF;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.fl-cal .d b{font-size:clamp(15px,2.6vw,20px);font-weight:800}
.fl-cal .d small{font-size:10.5px;color:#7a7a76;font-weight:600}
.fl-cal .d.blank{background:none}
.fl-cal .d.s3{background:var(--c-fire);color:#111}.fl-cal .d.s3 small{color:rgba(0,0,0,.6)}
.fl-cal .d.s1{background:#111;color:#fff}.fl-cal .d.s1 small{color:#bdbdb9}
.fl-cal .d.son{outline:2.5px solid #111;outline-offset:-2.5px}.fl-cal .d.s1.son{outline-color:#fff}
.fl-cal .d .dot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.75}
.fl-cal .fl-legend .ring{background:none!important;border:2px solid #111;width:12px;height:12px;border-radius:4px}
.fl-dlist{list-style:none;padding:0;margin:10px 0 0}
.fl-dlist li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;border-top:1px solid var(--line,#E6E6E3)}
.fl-dlist li:first-child{border-top:0}.fl-dlist li b{font-size:18px}.fl-dlist li span{font-size:14.5px;color:#555;text-align:right}
.fl-dlist.low li b{color:#555}
.fl-consent{align-items:flex-start;font-weight:600;line-height:1.65;font-size:14.5px;background:rgba(255,255,255,.55);border-radius:14px;padding:12px 14px}
.fl-consent input{margin-top:4px;flex:none}
.fl-room-link{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}
.fl-room-link code{flex:1 1 220px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#F1F1EF;border-radius:12px;padding:12px 14px;font-size:13.5px}
.fl-room-count{display:flex;gap:6px;margin:10px 0 4px}
.fl-room-count i{width:30px;height:30px;border-radius:50%;background:#E6E6E3;display:inline-block}
.fl-room-count i.on{background:var(--c-fire)}
.fl-trig{position:absolute;left:8%;bottom:10%;display:flex;gap:10px;font-size:clamp(34px,6vw,54px);line-height:1}
.fl-trig span{animation:flQ .6s var(--spring,ease) both}

/* 짧은 선택지(달·목적)는 두 칸 격자로 촘촘하게, 선택 카드는 옆의 일간 캐릭터 위로 올린다 */
.fl-opts{position:relative;z-index:3}
.fl-opts.grid,.fl-opts.grid.one{grid-template-columns:repeat(2,minmax(0,1fr))}
.fl-opts.grid .fl-opt{min-height:0;padding:18px 16px 16px}
.fl-opts.grid .fl-opt b{font-size:clamp(18px,4.8vw,24px);word-break:keep-all}
.fl-opts.grid .fl-opt::after{right:12px;top:12px;width:22px;height:22px}
@media (max-width:899px){.fl-opts.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fl-opts.grid .fl-opt{padding:36px 12px 14px}.fl-opts.grid .fl-opt b{padding-right:0;font-size:clamp(17px,4.6vw,22px)}.fl-opts.grid .fl-opt small{margin-top:2px}}
/* 달력: 좁은 화면에서 칸이 넘치지 않게 */
.fl-cal .wk,.fl-cal .grid{grid-template-columns:repeat(7,minmax(0,1fr))}
.fl-cal .d{min-width:0;overflow:hidden}
.fl-cal .d small{font-size:11px}
@media (max-width:360px){.fl-cal .wk,.fl-cal .grid{gap:4px}.fl-cal .d small{display:none}.fl-cal .d b{font-size:15px}}

/* 모바일: 옆에 뜨는 일간 캐릭터가 선택 카드 위를 덮지 않게(카드가 위, 캐릭터는 뒤) */
@media (max-width:899px){.fl-live{z-index:1}.fl-opts{z-index:3}.fl-form{position:relative;z-index:3}}

/* 택일 달력: 넓은 화면에서 칸이 너무 커지지 않게 */
.fl-cal{max-width:620px;margin:0 auto}
@media (min-width:1100px){.fl-cal .d{aspect-ratio:1/.9}}

/* 기간별 운세(내일·이번 주·이번 달) */
.fl-ptabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 4px}
.fl-ptabs a{font-size:15px;font-weight:800;padding:10px 18px;border-radius:999px;border:2.5px solid #111;background:rgba(255,255,255,.6);color:#111}
.fl-ptabs a.on{background:#111;color:#fff}
.fl-wk2{list-style:none;padding:0;margin:8px 0 0}
.fl-wk2 li{display:grid;grid-template-columns:62px 54px 1fr;gap:12px;align-items:start;padding:14px 0;border-top:1px solid var(--line,#E6E6E3)}
.fl-wk2 li:first-child{border-top:0}
.fl-wk2 li.today{background:rgba(0,0,0,.04);border-radius:14px;padding-left:10px;padding-right:10px}
.fl-wk2 .h b{display:block;font-family:var(--display);font-weight:400;font-size:24px;line-height:1}
.fl-wk2 .h small{font-size:12.5px;color:#6B6B6B;font-weight:700}
.fl-wk2 .sc{display:flex;gap:4px;margin-top:6px}.fl-wk2 .sc i{width:10px;height:10px;border-radius:50%;background:#D9D9D5}.fl-wk2 .sc i.on{background:#111}
.fl-wk2 .b em{font-style:normal;font-weight:800;font-size:16px}.fl-wk2 .b p{font-size:14.5px;color:#444;margin-top:2px;line-height:1.55}
@media (max-width:560px){.fl-wk2 li{grid-template-columns:54px 1fr;}.fl-wk2 .sc{grid-column:2;margin-top:0}.fl-wk2 .b{grid-column:1/-1}}
.fl-hbars{display:grid;gap:10px;margin:10px 0}

/* 결과 맨 위 저장·복사 줄 */
.fl-quick{display:flex;gap:8px;flex-wrap:wrap;margin:-6px 0 18px}
.fl-qbtn{height:40px;padding:0 16px;border-radius:12px;border:2px solid currentColor;background:transparent;font-weight:800;font-size:14.5px;color:inherit;cursor:pointer}
.fl-qbtn:active{transform:scale(.97)}

/* 1단계 공통 부품 */
.fl-asks{margin:6px 0 12px;padding-left:0;list-style:none;counter-reset:ask}
.fl-asks li{counter-increment:ask;position:relative;padding:10px 0 10px 40px;border-top:1px solid #EFEFEC;font-size:16px;line-height:1.6}
.fl-asks li:first-child{border-top:0}
.fl-asks li::before{content:counter(ask);position:absolute;left:0;top:10px;width:28px;height:28px;border-radius:50%;background:#111;color:#fff;font-weight:800;font-size:14px;display:grid;place-items:center}
.fl-copyall{margin-top:4px}
.fl-copyrows{display:grid;gap:10px;margin-top:6px}
.fl-copyrow{display:flex;gap:10px;align-items:center;justify-content:space-between;background:#F6F6F3;border-radius:16px;padding:12px 14px}
.fl-copyrow p{font-size:15.5px;line-height:1.55;margin:0;flex:1}
.fl-copyrow .fl-qbtn{flex:none;height:34px;padding:0 12px;font-size:13.5px}
.fl-reassure{background:rgba(255,255,255,.72);color:#111;border-radius:18px;padding:14px 18px;margin-top:14px;font-size:15px;line-height:1.6}
.fl-todayone{background:#fff;color:#111;border-radius:26px;padding:22px 24px;margin:6px 0 16px}
.fl-todayone small{display:block;font-size:13px;font-weight:800;color:#6B6B6B;margin-bottom:6px}
.fl-todayone b{display:block;font-size:clamp(19px,2.4vw,24px);line-height:1.45;font-weight:800}
.fl-expert{font-size:14px;line-height:1.6;opacity:.85;margin-top:14px;padding:0 4px}

/* 상황 칩 */
.fl-chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px}
.fl-chip{height:40px;padding:0 16px;border-radius:999px;border:1.5px solid #D9D9D5;background:#fff;color:#111;font:inherit;font-size:15px;font-weight:700;cursor:pointer}
.fl-chip[aria-checked=true]{background:#111;border-color:#111;color:#fff}
.fl-sitout{display:grid;gap:10px}
.fl-sayline{font-size:16px;line-height:1.65;margin:0}
.fl-sayact,.fl-sayask{background:#F6F6F3;border-radius:16px;padding:12px 14px}
.fl-sayact small,.fl-sayask small{display:block;font-size:12.5px;font-weight:800;color:#6B6B6B;margin-bottom:4px}
.fl-sayact b{font-size:16px;line-height:1.55}
.fl-sayask p{margin:0 0 8px;font-size:15.5px;line-height:1.55}
.fl-gender{margin-top:10px}
.fl-gender .fl-seg{margin-bottom:4px}
