/* 붉은 실 궁합 · 월하의 실타래(10/3): 월하 영상으로 들어서기(달빛 → 새벽) → 대화로 묻기 → 두 실패 사이로 붉은 실 끌어 잇기(실의 팽팽함 · 매듭이 계산 결과) → 실의 기록(무료, 밝은 한지) → 월하의 혼서(19,900원).
   톤: 밝은 한지와 창살 사이로 드는 새벽빛. 강조색은 붉은 실(밀랍 빨강) 하나. 모서리는 각지게(완전한 원만 둥글게). 빛은 실제 광원(창빛 · 그림자)만, 반짝이 · 입자 금지. */
/*OBF*/@font-face{font-family:'OBrush';src:url('../../fonts/obrush_c21.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+C12D,U+C130-C131,U+C139-C140,U+C154-C168,U+C194-C27D,U+C2A8,U+C2B4,U+C2B7-C2B9,U+C2DD,U+C2EB,U+C2ED-C30D,U+C368-C53B,U+C545,U+C549,U+C54C,U+C555-C557,U+C559-C55E,U+C561-C571,U+C57D-C598,U+C5B5-C5BB,U+C5BD-C5C4,U+C5C7,U+C5C9-C5CC,U+C5D1,U+C5E0-C5E3,U+C5ED-C5EE,U+C5FC-C61B,U+C625,U+C62C-C62D,U+C633-C63B,U+C644,U+C655-C6A9,U+C6B1,U+C6C0-C6CC,U+C6DC-C6F9,U+C717-C721,U+C728-C735,U+C751,U+C775,U+C783,U+C787,U+C789-C78E,U+C794-C7A4,U+C7A6,U+C7C1-C800,U+C810,U+C813,U+C81D-C838,U+C871-C881,U+C88B-C8E0,U+C8FD,U+C904-C90D,U+C92C-C99D,U+C9CA-C9F1,U+CA0D-CC3E,U+CC45-CCA8,U+CCAD,U+CCD0-CCE4,U+CD09-CD1B,U+CD5C-CD95,U+CD9C-CE35,U+CE5C-CE6D,U+CE7C-CEA1,U+CEE8,U+CEF7-CF08,U+CF20-CF8C,U+CFFC-D06C,U+D074-D07D,U+D0A8-D0B9,U+D0C1-D0D5,U+D0ED-D0F1,U+D131-D134,U+D145,U+D150-D17C,U+D1A1-D1A4,U+D1F4,U+D230-D30E,U+D31D-D328,U+D380-D398,U+D39C-D3B4,U+D3D0,U+D3ED-D45C,U+D479-D47C,U+D488-D551,U+D559,U+D56B-D56D,U+D575-D588,U+D5C8,U+D5D0-D600,U+D608-D64D,U+D658-D669,U+D68D-D749,U+D754-D790,U+D799-D7A3}@font-face{font-family:'OBrush';src:url('../../fonts/obrush_c11.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+AC04-AC07,U+AC11-AC16,U+AC1A,U+AC1D-AC54,U+AC71-AC77,U+AC81,U+AC89,U+ACA0-ACAC,U+ACBD-ACC1,U+ACE1-ACE4,U+ACE8-ACF1,U+ACF5,U+AD04-AD50,U+AD70-AD73,U+AD76-AD7F,U+AD82-ADC8,U+ADE0,U+ADF9-ADFC,U+AE09-AE0B,U+AE34,U+AE40,U+AE43-AE4A,U+AE4E-AE65,U+AE7C,U+AEBE-AECF,U+AEF4-AFC0,U+AFD4-B04A,U+B053-B08D,U+B0A1,U+B0A9-B0AB,U+B0AD-B0B3,U+B0B8-B0E5,U+B109-B10C,U+B113-B123,U+B128-B141,U+B155,U+B179-B192,U+B194-B1A8,U+B20C-B290,U+B299-B2AC,U+B2CC-B2D0,U+B2DD,U+B2E5,U+B2EB,U+B2ED-B2EE,U+B2FF,U+B304-B313,U+B355-B35C,U+B365-B371,U+B3C5-B3D5,U+B3FC-B410,U+B41C-B429,U+B451-B454,U+B460-B4C8,U+B4DD,U+B4E3,U+B4EC-B545,U+B550-B5A1,U+B5A8-B755,U+B77D-B784,U+B78F-B790,U+B799-B7C9,U+B7F0-B801,U+B808-B818,U+B825-B840,U+B85D-B86D,U+B8B0-B8E1,U+B8EC-B960,U+B975,U+B985,U+B989,U+B9AD,U+B9BD-B9C1,U+B9C9,U+B9CE,U+B9D1-B9D9,U+B9DD,U+B9E1,U+B9E5-B9FA,U+BA3C-BA4D,U+BA58-BA74,U+BA87,U+BAA9-BABB,U+BB36,U+BB47-BBA4,U+BBFC-BBFF,U+BC0C-BC11,U+BC15-BC18,U+BC1C-BC1D,U+BC25,U+BC2D-BC43,U+BC85,U+BC8C-BC94,U+BC97-BCC0,U+BCCD-BCD1,U+BCF8-BD05,U+BD10-BD59,U+BD81,U+BD90-BE14,U+BE4C-BE5A,U+BE60-BF18,U+BFCC-C090,U+C0AD,U+C0B6,U+C0BD-C0BF,U+C0C9-C0D8,U+C11D-C11E,U+C124-C12C}@font-face{font-family:'OBrush';src:url('../../fonts/obrush_s1.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+21-27,U+2A-2B,U+2D,U+2F,U+33-34,U+36,U+38-3E,U+40,U+43-48,U+4A-4C,U+4E-53,U+55-7E,U+FC-314E,U+FF08-FF1F}@font-face{font-family:'OBrush';src:url('../../fonts/obrush_b1.woff2') format('woff2');font-weight:400;font-display:block;unicode-range:U+28-29,U+31,U+35,U+3F,U+41-42,U+49,U+4D,U+54,U+B7,U+AC01,U+AC08,U+AC19,U+AC1C,U+AC70,U+AC78-AC80,U+AC83,U+AC8C,U+ACB9-ACBC,U+ACC4-ACE0,U+ACF3,U+ACFC,U+AD6C-AD6D,U+AD74,U+ADDC,U+AE08,U+AE38,U+AE41,U+AE4C,U+AEBC,U+AED8,U+AFC8,U+B04C,U+B0A0,U+B0A8,U+B0AC,U+B108,U+B110,U+B150,U+B178,U+B193,U+B204-B208,U+B2C8,U+B2D8,U+B2E8,U+B2F5,U+B354,U+B3D9,U+B418,U+B458,U+B4E0,U+B5A4,U+B760-B77C,U+B78D,U+B791-B798,U+B807,U+B824,U+B8E8,U+B974,U+B978-B984,U+B987,U+B9B4-B9BC,U+B9CC,U+B9D0,U+B9DE,U+B9E4,U+BA38,U+BA54,U+BABD,U+BB35,U+BB3B,U+BBF8,U+BC00,U+BC14,U+BC24,U+BC84,U+BC88,U+BC95,U+BCC4,U+BCD5,U+BCF5,U+BD09,U+BD84-BD88,U+BE5B,U+C0B0,U+C0C8,U+C120-C123,U+C148-C14B,U+C190,U+C2A4,U+C2AC,U+C2DC,U+C313,U+C544,U+C548,U+C54A,U+C554,U+C558,U+C57C,U+C5BC,U+C5C5,U+C5D4,U+C628,U+C62E,U+C654,U+C6B8,U+C6D0-C6D4,U+C704,U+C77D,U+C785,U+C791,U+C804-C808,U+C811,U+C81C,U+C84C,U+C885,U+C900,U+C911-C918,U+C9C8,U+C9F8,U+CC44,U+CCAB,U+CCB4,U+CD08,U+CD1D,U+CD98,U+CE58-CE59,U+CEEC,U+CF1C,U+CFE0,U+D070,U+D0A4,U+D0DC,U+D130,U+D138,U+D14C,U+D22C,U+D310,U+D37C,U+D399,U+D3BC,U+D3EC,U+D478,U+D480,U+D589-D5A5,U+D5CC,U+D604,U+D750-D751,U+D798}@font-face{font-family:'OBrush';src:url('../../fonts/obrush_a1.woff2') format('woff2');font-weight:400;font-display:block;unicode-range:U+20,U+2C,U+2E,U+30,U+32,U+37,U+AC00,U+AC10,U+ACB0,U+ACE7,U+AD00,U+AD81,U+ADF8,U+AE00,U+AE30,U+AE68,U+B098-B09C,U+B0B4,U+B124,U+B144,U+B294-B298,U+B2E4,U+B2EC,U+B2F4,U+B2F9,U+B300,U+B35F,U+B3C4,U+B450,U+B4DC,U+B4E4,U+B54C,U+B78C,U+B7EC,U+B85C,U+B871,U+B9AC,U+B9B0,U+B9C8,U+B9DB,U+BA39,U+BA85,U+BAA8,U+BB18-BB34,U+BB38,U+BB3C,U+BC1B,U+BC29,U+BCF4,U+BD80,U+BD89,U+BE44-BE48,U+BF51,U+C0AC,U+C0B4,U+C0BC,U+C0C1,U+C0DD-C11C,U+C12F,U+C138,U+C18C-C18D,U+C2B5,U+C2E0-C2E4,U+C2EC,U+C560,U+C5B4,U+C5C6,U+C5C8,U+C5D0,U+C5EC,U+C5F0-C5F4,U+C624,U+C640,U+C6B0,U+C6B4,U+C724,U+C73C-C74C,U+C758-C774,U+C778-C77C,U+C784,U+C788,U+C790,U+C7A5,U+C7AC,U+C801,U+C815,U+C870,U+C8FC,U+C9C0-C9C4,U+CE74-CE78,U+CEE4,U+CFE8,U+D0C0,U+D0DD,U+D1A0,U+D1B5,U+D314,U+D3B8,U+D3C9,U+D558,U+D55C-D569,U+D574,U+D654-D655,U+D68C}/*OBF*/
:root{--paper:#f6f0e6;--paper-2:#efe5d4;--paper-3:#e6d9c3;--ink:#2a2119;--ink-2:#6b5d4f;--ink-3:#9a8a78;--honey:#c8955a;--sage:#7d9a7a;--wax:#b8352a;--gold:#b8862f;
  --line:rgba(42,33,25,.14);--line2:rgba(42,33,25,.26);
  --serif:'Noto Serif KR',serif;--brush:'OBrush','Noto Serif KR',serif;--sans:'Noto Sans KR',"Apple SD Gothic Neo",system-ui,sans-serif;
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .42 0 0 0 0 .32 0 0 0 0 .2 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  color-scheme:light}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;border-radius:0}
[hidden]{display:none!important}
html,body{height:100%;margin:0;background:#e9dfcd}
body{font-family:var(--sans);color:var(--ink);display:flex;justify-content:center;overflow:hidden;word-break:keep-all;overflow-wrap:break-word}
button,select,input{font-family:inherit;color:inherit}
button{cursor:pointer}
.stage{position:relative;width:100%;max-width:430px;height:100%;overflow:hidden;background:var(--paper)}
.scr{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;opacity:0;pointer-events:none;transition:opacity .9s ease;scrollbar-width:none}
.scr::-webkit-scrollbar{display:none}
.scr.on{opacity:1;pointer-events:auto}
/* 맨 위 */
.top{position:absolute;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top,0px) + 10px) 12px 10px;pointer-events:none;transition:background .4s}
.top>*{pointer-events:auto}
.top.sc{background:linear-gradient(180deg,rgba(246,240,230,.97) 70%,rgba(246,240,230,0))}
.ib{width:44px;height:44px;border-radius:50%;border:1px solid var(--line2);background:rgba(246,240,230,.74);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;padding:0;color:var(--ink)}
.ib svg{width:18px;height:18px}
.ib.off .wv{display:none}.ib:not(.off) .mx{display:none}
.top b{font-family:var(--serif);font-size:13px;font-weight:700;letter-spacing:.16em;color:var(--ink);text-shadow:0 0 10px rgba(246,240,230,.95),0 0 3px rgba(246,240,230,.9);opacity:0;transition:opacity .4s}
.top.t b{opacity:1}
/* 단추 */
.go{display:block;width:100%;min-height:54px;border:0;background:var(--ink);color:var(--paper);font-size:15.5px;font-weight:700;letter-spacing:.03em;box-shadow:6px 10px 22px -10px rgba(60,38,18,.55);transition:transform .15s}
.go:active{transform:translateY(1px) scale(.99)}
.go.wx{background:var(--wax);color:#fff8f0;box-shadow:6px 12px 24px -12px rgba(120,30,20,.7)}
.go.gl{background:transparent;color:var(--ink);border:1px solid var(--ink);box-shadow:none}
.lnk{display:block;margin:10px auto 0;min-height:44px;padding:0 12px;border:0;background:none;font-size:13.5px;color:var(--ink-2);text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(42,33,25,.3)}

/* ---------- 1. 들어서기: 달빛에서 새벽으로 ---------- */
#sIn{background:var(--paper);overflow:hidden}
.scene{position:absolute;left:0;right:0;top:0;height:74%;overflow:hidden;background:#ece4d6;-webkit-mask-image:linear-gradient(180deg,#000 62%,transparent 100%);mask-image:linear-gradient(180deg,#000 62%,transparent 100%)}
.ibg{position:absolute;inset:-3%;background:url('../../img/taegil.jpg') center 12%/cover no-repeat;animation:breathe 24s ease-in-out infinite alternate}
@keyframes breathe{from{transform:scale(1.01)}to{transform:scale(1.06) translateY(-1%)}}
#iv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 12%;opacity:0;transition:opacity .8s}
#iv.on{opacity:1}
.moon{position:absolute;inset:0;pointer-events:none;transition:opacity 3.2s ease;
  background:linear-gradient(180deg,rgba(176,190,218,.44) 0,rgba(176,190,218,.2) 30%,rgba(176,190,218,0) 58%),linear-gradient(115deg,rgba(150,166,200,.18),rgba(150,166,200,0) 50%)}
.dawn{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 3.2s ease;
  background:radial-gradient(ellipse 80% 50% at 8% 20%,rgba(255,224,178,.42),rgba(255,224,178,0) 70%),linear-gradient(118deg,rgba(255,214,160,.22),rgba(255,214,160,0) 46%)}
#sIn.play .moon{opacity:0}
#sIn.play .dawn{opacity:1}
.drape{position:absolute;left:0;right:0;top:47%;width:100%;height:120px;pointer-events:none;overflow:visible}
.drape g{transform-origin:50% 0;animation:sway 7s ease-in-out infinite alternate}
@keyframes sway{from{transform:rotate(-.5deg)}to{transform:rotate(.6deg) translateY(2px)}}
.fadeP{position:absolute;left:0;right:0;bottom:0;height:62%;background:linear-gradient(180deg,rgba(246,240,230,0),rgba(246,240,230,.86) 22%,rgba(246,240,230,.97) 38%,var(--paper) 52%);pointer-events:none}
.itx{position:absolute;left:22px;right:22px;bottom:calc(env(safe-area-inset-bottom,0px) + 22px);z-index:6;transition:opacity .7s,transform .7s}
#sIn.play .itx{opacity:0;transform:translateY(12px);pointer-events:none}
/* 10/13 인트로 건너뛰기: 위 오른쪽, 소리 버튼 아래 작은 글자 버튼 */
.iskip{position:absolute;right:12px;top:calc(env(safe-area-inset-top,0px) + 62px);z-index:5;border:0;background:none;color:rgba(255,255,255,.6);font:500 12.5px/1 var(--sans);padding:6px;cursor:pointer;text-shadow:0 1px 8px rgba(0,0,0,.85)}
.iskip[hidden]{display:none}
.itx small{display:block;font-size:13px;letter-spacing:.22em;color:var(--ink);font-weight:700}
.itx h1{margin:10px 0 0;font-family:var(--brush);font-weight:400;font-size:60px;line-height:1.04;color:var(--ink);letter-spacing:.02em}
.itx h1 em{font-style:normal;color:var(--wax)}
.itx h2{margin:8px 0 0;font-family:'Song Myung',var(--serif);font-weight:400;font-size:19px;letter-spacing:.1em;color:var(--ink)}
.itx p{margin:14px 0 0;padding-left:12px;border-left:3px solid var(--wax);font-family:var(--serif);font-size:16.5px;font-weight:600;line-height:1.7;color:var(--ink)}
.itx .go{margin-top:20px}
.itx .lnk{margin-top:4px}
.from{display:inline-block;margin-bottom:10px;padding:4px 9px;border:1px solid var(--line2);font-size:11.5px;color:var(--ink-2);background:rgba(246,240,230,.7)}
.sub{position:absolute;left:22px;right:22px;bottom:calc(env(safe-area-inset-bottom,0px) + 70px);z-index:7;text-align:center;font-family:var(--serif);font-size:21px;font-weight:600;line-height:1.5;color:var(--ink);text-shadow:0 1px 0 rgba(255,250,240,.8),0 0 18px rgba(246,240,230,.9);opacity:0;transition:opacity .35s}
.sub.on{opacity:1}

/* ---------- 2. 대화 ---------- */
#sTalk{overflow:hidden;background:var(--paper-2)}
.tbg{position:absolute;left:0;right:0;top:0;height:64%;background:url('../../img/taegil.jpg') center 10%/cover no-repeat;animation:breathe 30s ease-in-out infinite alternate;-webkit-mask-image:linear-gradient(180deg,#000 0,#000 52%,transparent 100%);mask-image:linear-gradient(180deg,#000 0,#000 52%,transparent 100%)}
.tbg:after{content:"";position:absolute;inset:0;background:linear-gradient(118deg,rgba(255,226,176,.4),rgba(255,226,176,0) 46%)}
.wl{position:absolute;left:-30%;top:46%;width:120%;height:70%;pointer-events:none;transform:skewX(-26deg);opacity:.7;filter:blur(5px);
  background:repeating-linear-gradient(90deg,rgba(255,246,226,.85) 0 62px,rgba(255,246,226,0) 62px 72px),repeating-linear-gradient(0deg,rgba(255,246,226,0) 0 104px,rgba(214,196,166,.5) 104px 112px);
  -webkit-mask-image:radial-gradient(ellipse 60% 55% at 40% 50%,#000 30%,transparent 72%);mask-image:radial-gradient(ellipse 60% 55% at 40% 50%,#000 30%,transparent 72%)}
.talk{position:absolute;inset:0;z-index:2;overflow-y:auto;scrollbar-width:none;display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top,0px) + 70px) 20px calc(env(safe-area-inset-bottom,0px) + 20px)}
.talk::-webkit-scrollbar{display:none}
.msgs{display:flex;flex-direction:column;gap:12px;margin-top:auto;position:relative}
.msgs:before{content:"";position:absolute;left:-20px;right:-20px;top:-46px;bottom:-12px;z-index:-1;background:linear-gradient(180deg,rgba(246,240,230,0),rgba(246,240,230,.9) 46px,rgba(246,240,230,.96));pointer-events:none}
.ln{opacity:0;transform:translateY(10px);max-height:240px;overflow:hidden;transition:opacity .8s ease,transform .8s ease,font-size .5s,color .5s,max-height .6s ease .25s,margin .6s ease .25s}
.ln.on{opacity:1;transform:none}
.ln.gone{opacity:0!important;max-height:0;margin:0!important;transition:opacity .4s ease,max-height .6s ease .3s,margin .6s ease .3s}
.ln.n{font-family:'Song Myung',var(--serif);font-weight:400;font-size:22px;line-height:1.6;color:var(--ink);text-shadow:0 1px 0 rgba(255,250,240,.7)}
.ln.n small{display:block;font-family:var(--sans);font-size:12.5px;letter-spacing:.24em;color:var(--wax);font-weight:700;margin-bottom:4px}
.ln.n.old{font-size:16px;color:rgba(42,33,25,.72)}
.ln.n.old small{display:none}
.ln.me{align-self:flex-end;max-width:85%;text-align:right;font-size:15.5px;font-weight:600;color:var(--ink)}
.ln.me:before{content:"";display:inline-block;width:18px;height:1.5px;background:var(--wax);vertical-align:middle;margin-right:8px;opacity:.8}
.ln.me.old{opacity:.45}
.ask{margin-top:18px;display:none}
.ask.on{display:block;animation:up .45s ease}
@keyframes up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips button{min-height:46px;padding:0 16px;border:1px solid var(--line2);background:rgba(250,246,238,.92);font-size:14.5px;color:var(--ink);box-shadow:4px 6px 12px -8px rgba(60,38,18,.4);transition:border-color .2s,background .2s}
.chips button:active,.chips button:hover{border-color:var(--wax);background:#fff9ef}
.pick{display:grid;gap:10px;padding:14px 14px 12px;background:rgba(250,246,238,.94);border:1px solid var(--line);box-shadow:8px 12px 24px -16px rgba(60,38,18,.5)}
.pick .pn{margin:0;font-size:12px;color:var(--ink-2)}
.seg{display:flex;border-bottom:1px solid var(--line2)}
.seg button{flex:1;min-height:44px;border:0;background:none;color:var(--ink-3);font-size:14px;border-bottom:2px solid transparent;margin-bottom:-1px}
.seg button.on{color:var(--ink);font-weight:700;border-bottom-color:var(--wax)}
.g3{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:8px}
.g2{display:grid;grid-template-columns:1fr 1.2fr;gap:10px;align-items:end}
.pick select{height:46px;border:0;border-bottom:1px solid var(--line2);background:transparent;color:var(--ink);font-family:var(--serif);font-size:16px;padding:0 4px;width:100%;-webkit-appearance:none;appearance:none}
.pick .go{margin-top:4px}
.pick .lnk{margin-top:0}

/* ---------- 3. 실 건네기 ---------- */
#sRit{background:#f1e8d8;overflow:hidden}
.room{position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 60% at 18% -6%,#fffaf0,rgba(255,250,240,0) 62%),linear-gradient(180deg,#f4ecdf,#ebdfca 70%,#e4d6bd)}
.room:after{content:"";position:absolute;inset:0;background:var(--grain);opacity:.9}
.lat{position:absolute;left:-26%;top:16%;width:96%;height:74%;pointer-events:none;transform:skewX(-20deg) rotate(3deg);opacity:.62;filter:blur(3px);
  background:repeating-linear-gradient(90deg,rgba(255,249,234,.95) 0 56px,rgba(255,249,234,0) 56px 64px),repeating-linear-gradient(0deg,rgba(255,249,234,0) 0 88px,rgba(206,186,154,.4) 88px 94px);
  -webkit-mask-image:radial-gradient(ellipse 58% 52% at 46% 46%,#000 32%,transparent 74%);mask-image:radial-gradient(ellipse 58% 52% at 46% 46%,#000 32%,transparent 74%);transition:opacity 2s}
.rw{position:relative;z-index:1;min-height:100%;display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top,0px) + 62px) 20px calc(env(safe-area-inset-bottom,0px) + 18px);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.rh{display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:center}
.rh .av{width:48px;height:48px;border-radius:50%;background:#ddd url('../../img/taegil.jpg') center 14%/220% no-repeat;box-shadow:0 0 0 2px var(--paper),0 0 0 3px var(--wax)}
.rh small{display:block;font-size:10.5px;letter-spacing:.3em;color:var(--wax);font-weight:700}
.rh p{margin:4px 0 0;font-family:var(--serif);font-size:16.5px;font-weight:600;line-height:1.55;min-height:4.65em;transition:opacity .4s}
.loom{position:relative;flex:1;min-height:330px;margin:6px -20px 0;touch-action:none}
#th{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.spool{position:absolute;width:96px;height:96px;margin:-48px 0 0 -48px;border:0;padding:0;background:none;border-radius:50%;touch-action:none}
.spool .rot{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,#d8bb8b,#c6a26c,#dcc296,#bf9861,#d6b787,#c9a671,#dfc79c,#c39d66,#d8bb8b);box-shadow:inset 0 0 0 1px rgba(90,60,30,.4),inset -5px -7px 12px rgba(90,60,30,.28),8px 14px 18px -6px rgba(70,45,20,.5)}
.spool .wnd{position:absolute;inset:15%;border-radius:50%;background:repeating-radial-gradient(circle,#b8352a 0 1.4px,#9a2a20 1.4px 2.7px);box-shadow:inset 0 0 0 1px rgba(80,20,15,.45),inset -3px -4px 8px rgba(70,15,10,.35)}
.spool .hub{position:absolute;inset:37%;border-radius:50%;background:radial-gradient(circle,#3b2a1d 0 24%,#e8d4b0 26% 100%);box-shadow:inset 0 0 0 1px rgba(90,60,30,.45),1px 2px 3px rgba(60,30,10,.35)}
.spool:after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 32% 28%,rgba(255,252,242,.62),rgba(255,252,242,0) 42%)}
.spool:before{content:"";position:absolute;inset:-12px;border-radius:50%;border:1.5px solid rgba(184,53,42,.0);pointer-events:none}
.spool.hint:before{animation:ring 2.4s ease-out infinite}
@keyframes ring{0%{border-color:rgba(184,53,42,.55);transform:scale(.9)}100%{border-color:rgba(184,53,42,0);transform:scale(1.25)}}
.spool .lab{position:absolute;left:50%;top:calc(100% + 10px);transform:translateX(-50%);white-space:nowrap;text-align:center;pointer-events:none}
.spool .lab b{display:block;font-family:var(--serif);font-size:14px;font-weight:900}
.spool .lab small{display:block;margin-top:2px;font-size:11.5px;color:var(--ink-2)}
#spB{transition:transform .25s}
#spB .lab{top:auto;bottom:calc(100% + 10px)}
#spB.jig{transform:translate(-2px,2px)}
.rf{text-align:center;padding-top:6px}
.rf .hn{margin:0;min-height:20px;font-size:13px;color:var(--ink-2)}
.rbt{max-width:340px;margin:14px auto 0;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .8s,transform .8s}
.rbt.on{opacity:1;transform:none;pointer-events:auto}

/* ---------- 4. 실의 기록 (lovebright, 강조색 붉은 실) ---------- */
#sRes{--acc:var(--wax);--acc-ink:var(--wax)}
#prem,#lockW{scroll-margin-top:calc(env(safe-area-inset-top,0px) + 64px)}
.rwrap{padding:calc(env(safe-area-inset-top,0px) + 66px) 18px 0}
.rhero{position:relative;display:grid;grid-template-columns:1fr 124px;gap:14px;margin-top:18px;align-items:end;padding-bottom:30px}
.rhero .t small{display:block;font-size:11.5px;font-weight:700;letter-spacing:.14em;color:var(--wax)}
.rhero .t h1{margin:10px 0 0;font-family:var(--brush);font-weight:400;font-size:clamp(30px,9vw,38px);line-height:1.1;color:var(--ink)}
.rhero .t h1 em{font-style:normal;color:var(--wax);font-size:1.5em;line-height:1}
.rhero .t p{margin:10px 0 0;font-size:12.5px;line-height:1.6;color:var(--ink-2)}
.rhero .lb-frame{height:184px}
.rhero .stp{position:absolute;right:-8px;bottom:6px;z-index:3}
.rhero .stp .lb-stamp{--sz:88px!important}
.rfig{margin:18px -8px 0;position:relative}
.rfig svg{display:block;width:100%;height:auto;overflow:visible}
.rlead{margin:8px 0 0;font-size:14.5px;line-height:1.78;color:var(--ink-2)}
.rlead b{color:var(--ink)}
.scale{margin-top:16px}
.scale .bar{position:relative;display:grid;grid-template-columns:40fr 15fr 15fr 15fr 15fr;height:12px;border:1px solid var(--line)}
.scale .bar i{border-right:1px solid var(--line);background:var(--paper-2)}
.scale .bar i:last-child{border-right:0}
.scale .bar i.on{background:repeating-linear-gradient(135deg,rgba(184,53,42,.22) 0 3px,rgba(184,53,42,.08) 3px 6px)}
.scale .mk{position:absolute;top:-7px;width:2px;height:24px;background:var(--wax);transform:translateX(-1px)}
.scale .mk:after{content:"";position:absolute;left:50%;top:-6px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--wax);box-shadow:0 0 0 2px var(--paper)}
.scale .lbl{display:grid;grid-template-columns:40fr 15fr 15fr 15fr 15fr;margin-top:6px;font-size:10.5px;color:var(--ink-3);text-align:center}
.scale .lbl span.on{color:var(--wax);font-weight:700}
.scale .lbl span:first-child{text-align:left}
/* 여덟 글자 */
.p8{display:grid;grid-template-columns:50px repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line);background:rgba(255,252,245,.55)}
.p8>*{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.p8 .hd{padding:6px 0;text-align:center;font-size:11px;font-weight:700;color:var(--ink-3);letter-spacing:.1em}
.p8 .who{display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--serif);font-size:12.5px;font-weight:900;line-height:1.25;text-align:center}
.p8 .who small{font-family:var(--sans);font-size:10px;font-weight:500;color:var(--ink-3)}
.p8 .c{padding:10px 2px 8px;text-align:center;position:relative}
.p8 .c b{display:block;font-family:var(--serif);font-size:22px;font-weight:900;line-height:1.18;color:var(--ink)}
.p8 .c small{display:block;margin-top:4px;font-size:10px;color:var(--ink-3)}
.p8 .c.d{background:rgba(184,53,42,.06);box-shadow:inset 0 0 0 1.5px rgba(184,53,42,.55)}
.p8 .c.x b{color:var(--ink-3);opacity:.4}
.p8 .gp{position:relative;height:54px;display:flex;align-items:center;justify-content:center;background:var(--paper)}
.p8 .gp svg{position:absolute;left:50%;top:0;width:20px;height:54px;margin-left:-10px;overflow:visible}
.p8 .gp span{position:absolute;left:50%;bottom:5px;transform:translateX(-50%);z-index:1;padding:1px 4px;background:var(--paper);font-size:10.5px;font-weight:700;line-height:1.3;color:var(--ink-2);white-space:nowrap}
.p8 .gp span.pos{color:var(--wax)}
.p8 .gp.lbl{font-size:10px;color:var(--ink-3);font-weight:700}
.p8-n{margin:10px 0 0;font-size:11.5px;line-height:1.6;color:var(--ink-3)}
/* 실의 장부 */
.ledger{position:relative;padding-left:26px}
.ledger:before{content:"";position:absolute;left:8px;top:14px;bottom:14px;width:2px;background:var(--wax);box-shadow:2px 3px 3px rgba(90,40,20,.18)}
.ck{position:relative;margin-bottom:12px;background:var(--card);border:1px solid var(--line);padding:14px 14px 14px;box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 12px 26px -22px rgba(60,40,20,.55)}
.ck:last-child{margin-bottom:0}
.ck .nd{position:absolute;left:-27px;top:16px;width:20px;height:20px;overflow:visible}
.ck-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ck-h .no{font-family:var(--serif);font-size:12px;font-weight:700;color:var(--wax)}
.ck-h h4{margin:0;font-family:var(--serif);font-size:16px;font-weight:900}
.ck-h .vd{margin-left:auto;font-style:normal;font-size:11.5px;font-weight:700;padding:4px 8px;border:1px solid var(--line2);color:var(--ink-2)}
.ck-h .vd.pos{background:var(--wax);border-color:var(--wax);color:#fff8f0}
.ck-h .vd.neg{color:var(--ink);border-color:rgba(42,33,25,.35);background:repeating-linear-gradient(135deg,rgba(42,33,25,.07) 0 3px,transparent 3px 6px)}
.ck-h .askd{font-style:normal;font-size:10.5px;font-weight:700;color:var(--wax);letter-spacing:.06em}
.ck-v{margin:12px 0 0}
.ck-v svg{display:block;width:100%;height:auto;overflow:visible}
.ck-p{margin:10px 0 0;font-size:14.5px;line-height:1.75;color:var(--ink)}
.ck .lb-why{margin-top:10px;padding:9px 12px}
.ck .lb-why p{font-size:12px}
.ck.asked{border-color:rgba(184,53,42,.45)}
.stars{display:grid;gap:8px}
.stars .r{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:9px 10px;background:rgba(255,252,245,.6);border:1px solid var(--line-2)}
.stars .r b{display:block;font-size:13px;font-weight:700}
.stars .r small{display:block;margin-top:2px;font-size:11.5px;color:var(--ink-3)}
.stars .lb-dots i{width:12px;height:12px}
/* 한마디 */
.lb-quote .lb-av{background-position:center 12%;background-size:210%}
/* 잠금 */
.lb-lock .price{display:flex;justify-content:space-between;align-items:baseline;margin-top:14px;font-size:12.5px;color:var(--ink-3)}
.lb-lock .price b{font-family:var(--serif);font-size:22px;color:var(--ink)}
.lb-lock .fine{margin:10px 0 0;font-size:11.5px;color:var(--ink-3);text-align:center}
.lb-lock .pv p{font-size:14px}
/* 혼서 */
.pm-hd{display:grid;grid-template-columns:74px 1fr;gap:14px;align-items:center;margin-top:36px;padding:18px 0 16px;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink)}
.pm-hd small{display:block;font-size:11px;font-weight:700;letter-spacing:.16em;color:var(--wax)}
.pm-hd b{display:block;margin-top:4px;font-family:var(--brush);font-weight:400;font-size:34px;line-height:1.1}
.pm-hd p{margin:6px 0 0;font-size:12px;color:var(--ink-3);min-height:1em}
.pp{margin:0 0 12px;font-size:15.5px;line-height:1.85;color:var(--ink-2)}
.lb-card p.fx{color:var(--ink);padding-left:10px;border-left:2px solid var(--wax)}
.lb-card p.say{margin-top:10px;padding:9px 12px;background:#fbf3e6;font-family:'Song Myung',var(--serif);font-size:16px;color:var(--ink)}
.lb-card p.say small{display:block;font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.08em;color:var(--wax);margin-bottom:2px}
.mr{display:grid;gap:10px}
.kp li small{display:block;margin-top:6px;font-family:var(--sans);font-size:14px;font-weight:400;line-height:1.7;color:var(--ink-2)}
.qa{padding:14px 0;border-top:1px solid var(--line)}
.qa:last-child{border-bottom:1px solid var(--line)}
.qa .q{margin:0;font-family:'Song Myung',var(--serif);font-size:18px;color:var(--ink)}
.qa .q:before{content:'물음';display:inline-block;margin-right:8px;padding:1px 6px;font-family:var(--sans);font-size:11px;font-weight:700;color:#fff8f0;background:var(--wax);vertical-align:3px}
.qa .a{margin:8px 0 0;font-size:15px;line-height:1.8;color:var(--ink-2)}
.lb-card p.fx:before{content:"푸는 법 · ";font-weight:700;color:var(--wax)}
.yr{display:grid;grid-template-columns:64px 1fr;gap:12px;padding:14px 0;border-top:1px solid var(--line)}
.yr:last-child{border-bottom:1px solid var(--line)}
.yr .a b{display:block;font-family:var(--serif);font-size:19px;font-weight:900;line-height:1.1}
.yr .a small{display:block;margin-top:4px;font-size:11px;color:var(--ink-3)}
.yr .a em{display:inline-block;margin-top:6px;font-style:normal;font-size:10.5px;padding:2px 5px;border:1px solid var(--line2);color:var(--ink-2)}
.yr.hi .a em{border-color:var(--wax);color:var(--wax)}
.yr h5{margin:0;font-family:var(--serif);font-size:15.5px;font-weight:900}
.yr p{margin:6px 0 0;font-size:13.5px;line-height:1.72;color:var(--ink-2)}
.yr p.tp{color:var(--ink);font-size:13px}
.yr p.tp:before{content:"한 줄 · ";color:var(--wax);font-weight:700}
.kp{list-style:none;margin:0;padding:0;counter-reset:k}
.kp li{position:relative;padding:14px 0 14px 44px;border-top:1px solid var(--line);font-family:var(--serif);font-size:16px;font-weight:700;line-height:1.55}
.kp li:last-child{border-bottom:1px solid var(--line)}
.kp li:before{counter-increment:k;content:counter(k);position:absolute;left:0;top:12px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--wax);color:#fff8f0;font-size:14px}
.hs{position:relative;margin-top:4px;padding:34px 22px 30px;background:#fffaf1;border:1px solid var(--line);box-shadow:0 26px 40px -30px rgba(60,40,20,.6);text-align:center}
.hs:before{content:"";position:absolute;inset:7px;border:1px solid rgba(184,53,42,.35);pointer-events:none}
.hs small{display:block;font-size:11px;font-weight:700;letter-spacing:.24em;color:var(--wax)}
.hs p{margin:14px 0 0;font-family:var(--serif);font-size:19px;font-weight:700;line-height:1.7;color:var(--ink)}
.hs .lb-stamp{margin:18px auto 0;--sz:60px}
.pnote{margin:20px 0 0;font-size:11.5px;color:var(--ink-3);line-height:1.65}
/* 끝 */
.outro{margin-top:34px;padding:24px 0 0;border-top:1px solid var(--line);display:grid;gap:10px}
.outro .lnk{margin-top:0}
.ai{margin:28px 18px calc(env(safe-area-inset-bottom,0px) + 30px);text-align:center;font-size:11px;color:var(--ink-3);line-height:1.65}
.rv{opacity:0;transform:translateY(14px);transition:opacity .9s ease,transform .9s ease}
.rv.in{opacity:1;transform:none}
.toast{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 30px);transform:translateX(-50%);z-index:200;background:var(--ink);color:var(--paper);font-size:13.5px;padding:10px 16px;opacity:0;transition:opacity .3s;pointer-events:none;white-space:nowrap}
.toast.on{opacity:1}
@media (prefers-reduced-motion:reduce){.ibg,.tbg,.drape g,.spool.hint:before{animation:none}.rv{opacity:1;transform:none;transition:none}.moon,.dawn{transition:none}}
