/* 얍꽁 시작 화면(/start) 전용 — 내 스타일 만들기(#sty) · 따라 하기(#tour). 색 변수는 index.html 의 :root */
#sty{position:fixed;inset:0;z-index:20;background:#f4f0ff;color:var(--ink);font:15px/1.5 'Apple SD Gothic Neo','Malgun Gothic',Arial,sans-serif;word-break:keep-all}
#sty .in{display:flex;flex-direction:column;width:min(100%,520px);height:100%;margin:0 auto}
#sty header{flex:none;display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 10px) 14px 8px 18px}
#sty header b{font-size:17px}
#sty .x{width:40px;height:40px;border:0;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-items:center;cursor:pointer}
#sty svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
/* 미리보기 — 실제 영상(1080x1920)을 줄인 것. 글자 크기·위치는 start.js paint() 가 같은 비율로 넣는다(render/src/Main.tsx 와 같은 식) */
#pv{position:relative;flex:none;align-self:center;height:min(42dvh,380px);aspect-ratio:9/16;border-radius:14px;overflow:hidden;background:linear-gradient(175deg,#93a7bd 0%,#cdbba8 46%,#6b5a50 100%);box-shadow:0 6px 24px #6b55b02e}
#pvt,#pvs{position:absolute;left:0;width:100%;box-sizing:border-box;text-align:center;word-break:keep-all;paint-order:stroke}
#pvt{font-weight:900;line-height:1.35}
#pvt span,#pvs span{display:inline-block;white-space:pre-wrap}
#sty .list{flex:none;display:flex;gap:8px;padding:12px 16px 4px;overflow-x:auto;scrollbar-width:none}
#sty .list::-webkit-scrollbar{display:none}
#sty .chip,#sty .seg button{flex:none;min-height:40px;padding:0 16px;border:1px solid #d9cff3;border-radius:999px;background:#fff;color:var(--ink);font:inherit;cursor:pointer}
#sty .chip.on,#sty .seg button.on{border-color:transparent;background:var(--blue);color:#fff;font-weight:700}
#sty .seg{display:flex;gap:6px;flex-wrap:wrap}
#sty .seg.tabs{flex:none;padding:12px 16px 0}
#sty .seg.tabs button{flex:1}
#sty .body{flex:1;min-height:0;overflow:auto;padding:4px 16px 14px}
#sty .f{margin:14px 0 4px;font-size:13px;color:var(--ink2)}
#sty .hint{margin:10px 0 0;font-size:13px;color:var(--ink2)}
#sty .sl{display:flex;align-items:center;gap:10px}
#sty .sl input{flex:1;min-width:0;height:28px;accent-color:#8c6de6}
#sty .sl b{width:46px;text-align:right;font-variant-numeric:tabular-nums}
#sty select,#sty input[type=text]{width:100%;min-height:44px;padding:0 12px;border:1px solid #d9cff3;border-radius:12px;background:#fff;color:var(--ink);font:inherit;font-size:16px}
#sty .colors{display:flex;gap:18px;margin-top:14px}
#sty .colors label,#sty .chk{display:flex;align-items:center;gap:9px}
#sty .colors input{width:44px;height:36px;padding:0;border:1px solid #d9cff3;border-radius:10px;background:#fff}
#sty .chk{margin-top:16px;flex-wrap:wrap;font-weight:600}
#sty .chk input{width:20px;height:20px;accent-color:#8c6de6}
#sty .chk small{flex-basis:100%;padding-left:29px;font-weight:400;font-size:13px;color:var(--ink2)}
#sty footer{flex:none;display:flex;gap:8px;padding:10px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #e4dcf7;background:#fff}
#sty footer .btn{flex:1;margin:0;min-height:48px;padding:0 10px;font-size:15px}
#sty footer input{flex:1.3}

#tour{position:fixed;inset:0;z-index:60;pointer-events:none;font:14px/1.5 'Apple SD Gothic Neo','Malgun Gothic',Arial,sans-serif;word-break:keep-all}
#tour[hidden]{display:none}
#tour .ring.soft{box-shadow:0 0 0 9999px rgba(38,26,74,.1),0 0 0 6px #b79cf84d}
#tour .ring{position:absolute;border:3px solid #b79cf8;border-radius:18px;box-shadow:0 0 0 9999px rgba(38,26,74,.34);transition:top .2s,left .2s,width .2s,height .2s}
#tour .pop{position:absolute;pointer-events:auto;width:min(320px,calc(100vw - 24px));padding:14px 16px 10px;border-radius:18px;background:#fff;color:#4a3f6b;box-shadow:0 8px 30px #2a1b5c47}
#tour .pop b{display:block;font-size:15px}
#tour .pop p{margin:2px 0 0}
#tour .task{display:flex;align-items:center;gap:6px;margin-top:9px;padding:8px 11px;border-radius:11px;background:#f1ebff;font-weight:700}
#tour .task.ok{background:#e4f7ea;color:#1e7a43}
#tour .task svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
#tour .row{display:flex;align-items:center;gap:10px;margin-top:8px}
#tour .n{font-size:12px;color:#7b6f9e}
#tour .skip{margin-left:auto;padding:8px 4px;border:0;background:none;color:#7b6f9e;font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
#tour .next{min-height:36px;padding:0 16px;border:0;border-radius:999px;background:linear-gradient(140deg,#b9a0f6,#8c6de6);color:#fff;font:inherit;font-weight:700;cursor:pointer}

/* 촬영 안내선(#camguide, start.js drawGuide) — 화면에만 보이고 녹화에는 들어가지 않는다. data-s: ready(찍기 전) · rec(찍는 중, 흐리게) · off(다 찍음, 숨김) */
#camguide{position:absolute;inset:0;pointer-events:none;transition:opacity .3s}
#camguide[data-s=rec]{opacity:.45}
#camguide[data-s=off]{opacity:0}
#camguide i{position:absolute;display:block}
#camguide .who{position:absolute;left:50%;height:60.6%;aspect-ratio:300/420;transform:translate(-50%,-30.95%);overflow:visible}
#camguide .who g{stroke:#fff;stroke-width:3;stroke-dasharray:13 10;filter:drop-shadow(0 0 2px #0009)}
#camguide .hint{position:absolute;left:0;right:0;text-align:center;font:600 13px/1 Arial,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;letter-spacing:.04em;color:#fff;text-shadow:0 1px 4px #000c}
#camguide[data-s=rec] .hint{visibility:hidden}
#camguide .zt,#camguide .zs{left:0;right:0;background:#ffffff17;border:dashed #ffffff8f;border-width:1px 0}
#camguide .zr,#pv .zr{right:0;border:1px dashed #ffffff8f;border-right:0;border-radius:12px 0 0 12px;background:repeating-linear-gradient(135deg,#ffffff2b 0 5px,#ffffff0d 5px 10px)}
#camguide b{position:absolute;right:10px;bottom:5px;font:600 11px/1 Arial,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;color:#ffffffd9;text-shadow:0 1px 3px #000000a6}
#camguide .zt b,#camguide .zs b{left:10px;right:auto}
#camguide .zr b{right:4px;bottom:6px;width:100%;text-align:center;font-size:10px;line-height:1.25;white-space:normal;word-break:keep-all}
#camguide [hidden]{display:none}
#camcount{position:absolute;left:0;right:0;top:34%;margin:0;text-align:center;font:800 min(34vw,150px)/1 Arial,sans-serif;color:#fff;text-shadow:0 4px 26px #000b;pointer-events:none}
#camcount:empty{display:none}
#camcount:after{content:'준비';display:block;margin-top:10px;font-size:17px;letter-spacing:.35em;text-indent:.35em}
/* 스타일 미리보기의 앱 버튼·설명 자리 */
#pv i{position:absolute;display:block}
#pv .zb{left:0;right:0;bottom:0;border-top:1px dashed #ffffff8f;background:repeating-linear-gradient(135deg,#ffffff2b 0 5px,#ffffff0d 5px 10px)}
#pv .zb b{position:absolute;left:0;right:0;bottom:6px;text-align:center;font:600 9px/1 Arial,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;color:#ffffffd9;text-shadow:0 1px 3px #000000a6}
/* 하신 말 — 대본 대신 낱말만 띄운다(talk.js drawCam) */
/* 얼굴 보정(beauty.js) — #camfx 보정한 화면(이것이 녹화된다, 카메라 #camv 와 같은 자리·같은 뒤집기) · #fxbtn 찍기 전에 보이는 단추 · #fxp 조절 패널(열린 동안 #cam.fx — 아래 버튼을 가린다) */
#camfx{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
#fxbtn{position:absolute;left:calc(50% - 142px);top:78px;width:60px;height:56px;padding:0;border:0;border-radius:16px;background:#ffffff26;color:#fff;font:600 12px/1.2 Arial,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;cursor:pointer}
#fxbtn svg{display:block;width:22px;height:22px;margin:0 auto 3px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#fxbtn.on{color:#ffd84a}
#cam.fx #camb{visibility:hidden}
#fxp{position:absolute;left:0;right:0;bottom:0;padding:14px 12px calc(14px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:#15161aeb;font-size:15px}
#fxbar{display:flex;align-items:center;gap:12px;margin:0 4px 8px}
#fxamt{flex:1;height:32px;margin:0;accent-color:#ffd84a}
#fxnum{min-width:4.4em;text-align:right;color:#ffd84a;font-weight:700;font-variant-numeric:tabular-nums}
#fxitems{display:flex}
#fxitems button{flex:1;position:relative;min-height:52px;padding:6px 0 18px;border:0;background:none;color:#fff;font:inherit;cursor:pointer}
#fxitems button.on{color:#ffd84a;font-weight:700}
#fxitems button[data-n]::after{content:attr(data-n);position:absolute;left:0;right:0;bottom:2px;font-size:12px;font-weight:400;opacity:.8;font-variant-numeric:tabular-nums}
#fxitems i{flex:none;width:1px;margin:12px 4px;background:#fff3}
#fxnote{margin:4px 0 0;min-height:20px;font-size:13px;text-align:center;color:#dbe7fa}
#fxp .btn{margin-top:6px}
#fxp[hidden],#fxbar[hidden],#fxbtn[hidden],#camfx[hidden]{display:none}
/* 프롬프터(start.js) — 대본 촬영이면 질문 칸에 대본(#pr). 읽은 낱말은 노란색(.on), 읽는 중인 낱말은 읽은 만큼 채운다(.cur, --p). 세 줄이 보이고 방금 읽던 줄은 한 줄 위에 남는다
   #scrbtn 찍기 전에 보이는 '대본' 단추(보정 단추와 마주 보게) · #scrp 대본 넣는 화면(열린 동안 #cam.scr — 아래 버튼을 가린다) */
#cam.pr #camtext,#cam.pr #camkeys{display:none}
#pr,#prhint{display:none}
#cam.pr #pr{display:block;height:calc(3 * 1.45em);overflow:hidden;font-size:clamp(20px,5.6vw,27px);font-weight:700;line-height:1.45;word-break:keep-all}
#prt{transition:transform .3s ease}
#prt span{color:#ffffffa6;cursor:pointer;transition:color .15s}
#prt span.on{color:#ffd84a}
#prt span.cur{background:linear-gradient(90deg,#ffd84a var(--p,0%),#fff 0);-webkit-background-clip:text;background-clip:text;color:transparent}
#cam.pr #prhint{display:block;margin:6px 0 0;font-size:12px;color:#b9d2f5}
#scrbtn{position:absolute;left:calc(50% + 82px);top:78px;width:60px;height:56px;padding:0;border:0;border-radius:16px;background:#ffffff26;color:#fff;font:600 12px/1.2 Arial,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;cursor:pointer}
#scrbtn svg{display:block;width:22px;height:22px;margin:0 auto 3px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#scrbtn.on{color:#ffd84a}
#cam.scr #camb{visibility:hidden}
#scrp{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;gap:10px;padding:calc(env(safe-area-inset-top) + 18px) 16px calc(16px + env(safe-area-inset-bottom));background:#0b0c10f2}
#scrp .t{margin:0;font-size:17px;font-weight:700}
#scrp textarea{height:42dvh;padding:12px 14px;border:1px solid #ffffff40;border-radius:14px;background:#000;color:#fff;font:16px/1.55 'Apple SD Gothic Neo','Malgun Gothic',Arial,sans-serif;resize:none}
#scrp .h{margin:0;font-size:13px;color:#dbe7fa}
#scrp .row2{display:flex;gap:8px}
#scrp .row2 .btn{flex:1;margin:0}
#scrp[hidden],#scrbtn[hidden]{display:none}
#camkeys{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:9px 0 0}
#camkeys:empty{display:none}
#camkeys:before{content:'하신 말';font-size:12px;color:#b9d2f5;margin-right:2px}
#camkeys span{padding:4px 11px;border-radius:999px;background:#ffffff2b;font-size:14px;font-weight:600}
#camkeys span{transition:background .2s,color .2s}
#camkeys span.on{padding-left:27px;color:#06351c;background:#5fe39b url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2306351c' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") 8px center/14px no-repeat} /* 말한 낱말(start.js listen) */
