@font-face{font-family:WolhaText;src:url('/fonts/MaruBuri-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:WolhaText;src:url('/fonts/MaruBuri-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:WolhaTitle;src:url('/fonts/HahmletVariable.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:WolhaGowun;src:url('/fonts/GowunBatang-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--night:#09090b;--paper:#e8dfd3;--quiet:#ada497;--wood:#b99b78;--title:WolhaTitle,serif;--reading:WolhaText,serif}
body{background:var(--night);color:var(--paper);font-weight:400}main,header{background:var(--night)}header{border:0;padding:24px 28px}.logo{font-family:var(--title);font-size:24px;font-weight:400;letter-spacing:.12em}.logo small{font-size:14px;color:var(--wood);margin-left:8px}h1,h2,h3{font-family:var(--title);font-weight:450;letter-spacing:-.035em;line-height:1.65}h1{font-size:28px}h2{font-size:24px}h3{font-size:20px}.testbar{font-size:14px;letter-spacing:0;background:#171419}.muted{font-weight:400;color:var(--quiet);line-height:1.9}.eyebrow{font-size:14px;letter-spacing:0;color:var(--quiet)}.primary,.secondary{border-radius:5px;font-weight:500;box-shadow:none}.primary{background:#68536b;color:#fff4e5}.hero .primary{background:#d5c1a8}.secondary{background:transparent;border-color:#4c424a}.quiet{font-weight:400;color:#b5a99e}.hero-copy{padding-left:30px;padding-right:30px}.hero-copy h1{font-family:var(--title);font-weight:450;font-size:28px;line-height:1.48}.hero-copy p{font-weight:400}.hero .eyebrow{letter-spacing:.04em;font-size:14px}
.scene-subtitle{padding:31px 26px 24px;background:linear-gradient(transparent,var(--night) 98%)}.scene-subtitle h2{font-family:WolhaText,serif;font-size:20px;font-weight:400;letter-spacing:-.025em;line-height:1.8}.scene-subtitle small{font-family:var(--title);font-size:14px;letter-spacing:.12em}.stage-art::after{background:linear-gradient(180deg,transparent 55%,#09090b55 77%,var(--night))}.step-count{font-size:14px;color:#b6a697}.form label{font-weight:400}.form input:not([type=checkbox],[type=radio]),.form select,.form textarea{border-radius:4px;background:#151217;border-color:#403641}.option{border-radius:4px}.form legend{font-weight:400}.model-picker button{border-radius:4px}.features{gap:25px}.features div{padding:14px 0;background:none;border-radius:0;border-top:1px solid #473b46}.features strong{font-weight:500}
.narrative{padding:46px 28px 40px;background:var(--night)}.narrative p,.chapter .body{font-family:var(--reading);font-size:16px;line-height:2.15;letter-spacing:-.015em;color:#ddd3c6}.narrative .muted{font-family:Pretendard,sans-serif;font-size:14px;line-height:1.9;color:var(--quiet)}.narrative h2{text-align:center;margin:20px 0 32px}.narrative h3{font-weight:450}.letter-heading{text-align:center;font-family:var(--reading);font-size:14px;color:var(--wood);margin-bottom:32px}.letter-heading::after{content:'';display:block;width:1px;height:28px;background:#6b5847;margin:22px auto 0}.story-card{background:none;border:0;border-radius:0;box-shadow:none;padding:0;margin:28px 0}.opening-letter{padding:0 4px 32px}.opening-letter p{font-size:16px;color:#eee2d2}.reading-section{padding:42px 0}.reading-section h3{font-size:20px;color:#d7bea1;margin:24px 0 22px}.reading-section p{margin-bottom:26px}.reading-section h2{margin-bottom:34px}.chart-section{padding:35px 0}.chart-card{background:none;border-radius:0;border:0;padding:24px 0;margin:10px 0 32px}.chart-card h3{text-align:left;font-family:var(--reading);font-size:18px;color:#e5d3b9;font-weight:600}.chart-card>.muted{text-align:left}.pillar-table{margin-top:20px}.pillar-table th{border-color:#5b4b3d;font-weight:400;color:#c1ad94}.pillar-table th small{font-size:14px;color:#ada497}.pillar-table td{background:#191619;border-right-color:#3c322b;border-bottom:1px solid #5b4b3d;padding:18px 0}.pillar-table td strong{font-family:var(--title);font-weight:400;color:#dfc49f}.pillar-table td span{font-size:14px;color:#a69a8c}.chart-reader{display:block!important;margin:0 auto 8px!important}
.reaction{display:inline-block;flex-shrink:0;width:148px;height:148px;background-image:url('/story-assets/yeonhwa-reactions-alpha.png');background-size:300% 200%;background-repeat:no-repeat;vertical-align:middle}.pose-0{background-position:0% 0%}.pose-1{background-position:50% 0%}.pose-2{background-position:100% 0%}.pose-3{background-position:0% 100%}.pose-4{background-position:50% 100%}.pose-5{background-position:100% 100%}.character-aside{gap:4px;margin:12px -8px 42px;align-items:center}.character-aside p{font-family:var(--reading);font-size:16px;color:#c9b4b4}.relationship-scene{position:relative;margin:30px 0 60px;padding:30px 0 0;text-align:center}.relationship-scene>.reaction{width:184px;height:184px;display:block;margin:auto}.relationship-scene h2{margin:14px 0 24px;font-size:24px}.scene-reason{font-size:16px!important;max-width:370px;margin:0 auto 32px!important;color:#e1c9ac!important}.known-facts{font-family:Pretendard,sans-serif;text-align:left;margin-top:36px;border-top:1px solid #44372f;padding-top:18px}.known-facts summary{cursor:pointer;font-size:14px;color:#b8aa99}.known-facts dl{margin:18px 0}.known-facts dl>div{display:flex;justify-content:space-between;gap:14px;padding:9px 0;font-size:14px}.known-facts dd{margin:0;color:#d2b998}.known-facts .muted{font-size:14px}.takeaway{background:none;border:0;border-radius:0;padding:20px 0 18px 20px;border-left:1px solid #907554;font-weight:400;margin:30px 0}.takeaway small{font-family:var(--title);color:#cfb69a;font-weight:400;font-size:14px}.takeaway p{margin:8px 0 0}.chapter-divider{border:0;padding:45px 0 14px;font-family:var(--reading);font-size:14px;color:#bfa28b}.chapter-divider::before{content:'☾';display:block;font-size:22px;margin-bottom:24px;color:#bfa17b}.locked{background:none;border:0;border-radius:0;text-align:center;padding:16px 10px 28px}.locked h3{font-family:var(--reading);font-size:20px;line-height:1.8;color:#e9d3b8}.locked p{font-family:Pretendard,sans-serif;font-size:14px;color:var(--quiet)}
.offer{padding:42px 0 0}.offer-character{display:block;width:178px;height:178px;margin:0 auto 20px}.offer h2{font-size:24px}.offer>p{color:#d0c2b1}.deliverables{display:block;margin:38px 0}.deliverables>div{background:none;border:0;border-radius:0;padding:18px 0 24px 46px;position:relative}.deliverables>div>span{font-family:var(--reading);writing-mode:vertical-rl;font-size:14px;line-height:1;color:#a58c74;left:5px;top:24px;letter-spacing:.12em}.deliverables h3{font-family:var(--title);font-weight:450;font-size:20px;color:#e7d2b3;margin-bottom:9px}.deliverables p{font-family:Pretendard,sans-serif;font-size:14px;line-height:1.8;color:#afa396}.outcome{background:none;border:0;padding:25px 0}.outcome strong{font-family:var(--reading);font-size:18px;font-weight:600;color:#d9bc93}.outcome small{font-family:Pretendard,sans-serif;color:#ada497;font-size:14px}.paid-sample{border:0;border-top:1px solid #4a3c30;border-bottom:1px solid #4a3c30;border-radius:0;padding:19px 0;font-size:14px}.paid-sample summary{font-weight:400}.offer-price{text-align:center;padding-top:35px}.offer-price strong{font-family:var(--title);font-size:28px;font-weight:450}.offer-price span{display:block;font-size:14px;margin-top:8px}.cost{background:#141216;border:0;border-radius:3px;font-family:Pretendard,sans-serif}.cost summary{font-weight:400;font-size:14px}.cost p{font-family:Pretendard,sans-serif;font-size:14px}.sticky{background:#100e11f5;border-top:1px solid #42352d;box-shadow:none;padding:12px 22px}.sticky .primary{font-family:Pretendard,sans-serif;font-size:14px;padding:15px}.sticky .muted{font-family:Pretendard,sans-serif;font-size:14px}.chapter{padding:64px 28px;border-bottom:0}.chapter-number,.edition-label{display:block;font-family:var(--reading);text-align:center;color:#bda587;font-size:14px}.chapter h2{text-align:center;font-size:24px;margin:24px 0 32px}.chapter-reaction{display:block;margin:0 auto 25px;width:170px;height:170px}.chapter .quote{background:none;border:0;padding:12px 5px 26px;font-family:var(--reading);font-size:20px;text-align:center;line-height:1.9;color:#e4cdb0}.chapter .takeaway{font-family:var(--reading);font-size:16px;line-height:2}.result-nav{background:#100f11}.result-nav a{border-radius:0;background:none;color:#c4b09b;font-size:14px}.checkout-box{background:#151217;border-radius:5px;border-color:#3a3038}.checkout-box strong{font-weight:500}.price{font-family:var(--title);font-weight:450}.loading .reaction{animation:none;display:block;margin:auto;width:180px;height:180px}footer{background:#0b0a0c;color:#a2988e}footer strong{font-weight:400}.entry-animate{animation:none}
@media(max-width:380px){.narrative,.chapter{padding-left:23px;padding-right:23px}.narrative h2,.relationship-scene h2{font-size:24px}.narrative p,.chapter .body{font-size:16px}.character-aside .reaction{width:126px;height:126px}.character-aside p{font-size:14px}.scene-subtitle h2{font-size:20px}}

:root[data-type=maru]{--title:WolhaText,serif;--reading:WolhaText,serif}:root[data-type=gowun]{--title:WolhaGowun,serif;--reading:WolhaGowun,serif}

/* Consistent reading scale: 14px detail, 16px body, 20px subheading, 24px section, 28px title. */
:root{font-size:16px;--type-detail:.875rem;--type-body:1rem;--type-sub:1.25rem;--type-section:1.5rem;--type-title:1.75rem}
body{font-size:var(--type-body)}h1,.hero-copy h1{font-size:var(--type-title);line-height:1.5}h2,.narrative h2,.chapter h2,.relationship-scene h2,.offer h2{font-size:var(--type-section);line-height:1.6}h3,.narrative h3,.reading-section h3,.deliverables h3{font-size:var(--type-sub);line-height:1.6}
.narrative p,.chapter .body,.opening-letter p,.scene-reason,.chapter .takeaway,.character-aside p,.takeaway p{font-size:var(--type-body)!important;line-height:1.95}.chapter .quote,.scene-subtitle h2{font-size:1.125rem;line-height:1.9}.hero-copy p,.features div,.form label,.form legend,.form input,.form select,.form textarea,.primary,.secondary,.sticky .primary,.outcome p{font-size:var(--type-body)}
small,.muted,.narrative .muted,.quiet,.eyebrow,.testbar,.scene-subtitle small,.step-count,.letter-heading,.known-facts summary,.known-facts dl>div,.known-facts .muted,.chapter-number,.edition-label,.deliverables p,.outcome small,.paid-sample,.paid-sample dd,.offer-price span,.cost,.cost summary,.cost p,.cost small,.sticky .muted,.result-nav a,.error,.status-lines,.check,footer,footer a,.checkout-box dl,.price small,.pillar-table th,.pillar-table th small,.pillar-table td span{font-size:var(--type-detail);line-height:1.8}
.pillar-table th small{min-height:2.6em;display:flex;align-items:center;justify-content:center;padding:0 3px}.pillar-table td strong{font-size:1.25rem}.pillar-table td.unknown strong{font-size:1rem}.known-facts dt{flex:1}.known-facts dd{white-space:nowrap}.letter-heading{line-height:1.8}.deliverables>div>span{font-size:14px}.character-aside{gap:0}.character-aside .reaction{width:112px;height:112px}.character-aside p{flex:1}.offer-price strong,.price{font-size:28px}.reading-section{padding:32px 0}.relationship-scene{margin:18px 0 42px}.features{gap:20px}.sticky{padding:12px 20px max(12px,env(safe-area-inset-bottom))}.sticky .muted{margin:6px 0 0}main:has(.sticky){padding-bottom:125px}.result-nav a{min-width:44px;text-align:center;padding:9px 6px}.result-nav{gap:2px}.chapter{scroll-margin-top:65px}.hero-copy .primary{margin-top:20px}.sample-note{padding:14px 24px;text-align:center;border-bottom:1px solid #3c332d;font-size:14px;color:#c9b79f}.input-review dl{margin:24px 0}.input-review dt{color:var(--quiet);font-size:14px;margin-top:14px}.input-review dd{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px}.input-review h2{font-size:20px}.result-actions{padding-top:25px}.result-actions .secondary{margin-top:12px}.test-controls{margin-top:20px}.form label small{font-size:14px}.loading h2{font-size:24px}.loading .muted{font-size:16px}.error[role=alert]{line-height:1.8}.review-only{border-top:1px solid #493d36;padding-top:24px}.primary:disabled{opacity:.6}summary{min-height:36px}button.quiet{min-height:44px}
@media(max-width:380px){.narrative,.chapter{padding-left:22px;padding-right:22px}.narrative p,.chapter .body,.character-aside p{font-size:16px}.scene-subtitle h2{font-size:18px}.hero-copy{padding-left:22px;padding-right:22px}.hero img{height:520px}.logo small{display:none}.character-aside{display:block;text-align:center}.character-aside .reaction{width:130px;height:130px}.sticky .primary{font-size:16px}}

/* Input is a single viewport scene; long reports retain normal document scrolling. */
body.input-mode{position:fixed;top:var(--input-top,0);left:0;right:0;height:var(--input-height,100dvh);overflow:hidden;display:flex;flex-direction:column;overscroll-behavior:none}
.input-mode>.testbar{flex:none;padding:3px 8px;line-height:1.6}
.input-mode>header{flex:none;width:100%;padding:5px 20px;min-height:50px}
.input-mode>header .logo{font-size:20px}.input-mode>footer{display:none}
.input-mode>main{width:100%;flex:1;min-height:0;margin:0 auto;display:flex;overflow:hidden}
.input-scene{width:100%;min-height:0;flex:1;display:flex;flex-direction:column;overflow:hidden}
.wizard-art{flex:1 1 180px;min-height:80px;max-height:240px;overflow:hidden}
.wizard-art .stage-art{height:100%;min-height:0}.wizard-art .stage-art :is(img,video){object-position:center 26%}
.wizard-caption{flex:none;text-align:center;padding:8px 20px 12px;background:var(--night)}
.wizard-caption small{color:var(--wood);font-size:14px;line-height:1.5}
.wizard-caption h2{font-family:var(--reading);font-size:20px;line-height:1.5;font-weight:400;margin:5px 0 0;text-wrap:balance}
.wizard-progress{flex:none;display:flex;justify-content:space-between;padding:0 24px 10px;font-size:14px;color:var(--quiet);line-height:1.5}
.wizard-form{flex:1 0 auto;min-height:0;padding:0 24px max(14px,env(safe-area-inset-bottom));display:flex;flex-direction:column;max-height:100%;overflow:hidden}
.wizard-fields{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:12px}
.wizard-fields label{margin:0;font-size:16px;line-height:1.5}.wizard-fields :is(input:not([type=checkbox],[type=radio]),select,textarea){font-size:16px;min-height:46px;height:46px;padding:10px 12px;margin-top:6px;line-height:1.5;max-width:100%;min-width:0}
.wizard-fields input[type=date]{min-width:0;appearance:none}.wizard-fields input[type=date]::-webkit-date-and-time-value{text-align:left}
.wizard-fields .calendar-row{display:flex;gap:18px;align-items:center}.calendar-row>label:first-child{flex:1}.calendar-row .check{margin-top:27px;white-space:nowrap}
.wizard-fields .check{font-size:16px;min-height:40px}.wizard-fields .check input{width:20px;height:20px;flex-shrink:0}
.wizard-fields .field-note{font-size:14px;line-height:1.6;color:var(--quiet);margin:0}
.wizard-fields fieldset{margin:0;min-width:0}.wizard-fields .radios{gap:10px}.wizard-fields .option{min-height:48px;padding:10px 12px;font-size:16px}.wizard-fields input[type=radio]{width:18px;height:18px;flex-shrink:0}
.wizard-form .error{flex:none;font-size:14px;line-height:1.5;margin:0;padding:6px 0;max-height:70px;overflow:auto}.wizard-form .error:empty{padding:0;min-height:12px}
.wizard-form .actions{flex:none;margin:0;padding-top:6px;gap:12px}.wizard-form .actions button{min-height:48px;padding:10px;font-size:16px;line-height:1.5}
.wizard-fields .story-field{display:flex;flex-direction:column;min-height:0;flex:1;max-height:230px}.wizard-fields textarea{flex:1;resize:none;height:auto;min-height:85px;overscroll-behavior:contain}
.wizard-summary{margin:0}.wizard-summary dt{font-size:14px;line-height:1.5;color:var(--quiet)}.wizard-summary dd{font-size:16px;line-height:1.6;margin:3px 0 14px;overflow-wrap:anywhere}.wizard-summary dd:last-child{margin-bottom:0}.compact-summary dd{margin-bottom:10px}
.wizard-fields>.quiet{text-align:left;padding:4px 0;min-height:36px;color:#dac5a9;text-decoration:underline}
.input-intro>.stage-art{min-height:0;height:auto;flex:1}.input-intro>.scene-subtitle{flex:none;min-height:100px;margin-top:-100px}.intro-actions{flex:none;padding:10px 24px max(16px,env(safe-area-inset-bottom));text-align:center}.intro-actions .quiet{margin-top:6px}
.input-compact .wizard-art{flex-basis:90px;max-height:115px;min-height:0}.input-compact .wizard-caption{padding:5px 20px 9px}.input-compact .wizard-caption h2{font-size:18px}.input-compact .wizard-fields{gap:9px}.input-compact .wizard-form{flex:1 1 auto}.input-compact .wizard-progress{padding-bottom:7px}
.input-keyboard>.testbar,.input-keyboard .wizard-art,.input-keyboard .wizard-progress,.input-keyboard .wizard-caption small{display:none}.input-keyboard>header{min-height:44px;padding-top:0;padding-bottom:0}.input-keyboard .wizard-caption{padding:3px 20px 8px}.input-keyboard .wizard-form{padding-bottom:max(8px,env(safe-area-inset-bottom))}.input-keyboard .wizard-fields .field-note{line-height:1.5}.input-keyboard .wizard-summary dd{margin-bottom:8px}
/* Accessibility escape hatch only if available height/text zoom cannot fit the controls. */
.input-accessible-scroll .wizard-fields{overflow-y:auto;justify-content:flex-start;overscroll-behavior:contain}
@media(max-width:350px){.wizard-caption{padding-left:16px;padding-right:16px}.wizard-form{padding-left:18px;padding-right:18px}.wizard-progress{padding-left:18px;padding-right:18px}.wizard-fields .calendar-row{gap:10px}.wizard-fields .option{padding-left:9px;padding-right:9px}}

/* Prefer removing decoration over forcing input scrolling on short displays. */
.input-fit .wizard-art{display:none}.input-fit .wizard-progress{padding-bottom:4px}.address-confirm input{margin-top:6px}.deliverables>div{padding-left:0}

.coupon-entry{margin:24px 0;border-top:1px solid #514553;border-bottom:1px solid #514553;padding:18px 0}.coupon-entry summary{cursor:pointer;font-size:17px}.coupon-entry form{display:grid;gap:16px;margin-top:20px}.coupon-entry input[type=text]{width:100%;box-sizing:border-box;font:inherit;padding:14px;border:1px solid #67596b;border-radius:6px;background:#17141b;color:#eee7e0}.coupon-entry .check{line-height:1.7;font-size:15px}
/* Illustrated reading: full-width art, readable dialogue, quiet prose. */
.comic-chapter{padding:0 0 48px!important;overflow:visible;background:transparent!important;border:0!important;border-radius:0!important;scroll-margin-top:90px}
.comic-heading{position:static;display:block;height:auto;padding:40px 26px 24px;background:transparent;border:0}
.comic-heading h2{font-size:26px;line-height:1.55;margin:12px 0 0}
.comic-panel{margin:0;position:relative;overflow:hidden;background:#12111a}
.comic-panel>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.comic-panel figcaption{position:relative;padding:24px 28px 30px;background:linear-gradient(#16131d,#0f0e14);border-bottom:1px solid #ffffff12}
.comic-panel figcaption>span{display:block;color:#d5bfca;font-size:15px;margin-bottom:8px}
.comic-panel figcaption p{font-family:var(--reading);font-size:21px;line-height:1.8;margin:0;color:#f5eee9;word-break:keep-all;overflow-wrap:anywhere}
.comic-prose{padding:10px 28px 0}
.comic-prose p{font-size:18px;line-height:1.95;margin:24px 0;word-break:keep-all;overflow-wrap:anywhere;white-space:normal;color:#e4dfe2}
.comic-pause{display:flex;align-items:center;gap:16px;padding:8px 28px;opacity:.95}
.comic-pause .reaction{width:112px;height:112px;flex-shrink:0;margin:0}
.comic-pause>span:last-child{height:1px;background:linear-gradient(90deg,#a68d9f55,transparent);flex:1}
.comic-remember{margin:30px 28px 0;padding:22px 0 0;border-top:1px solid #b79cab55}
.comic-remember>span{color:#cbb7c5;font-size:16px}
.comic-remember p{font-size:19px;line-height:1.85;margin:10px 0;color:#f1e9ec}
.free-comic{margin:30px -24px}
.comic-panel>img{animation:comic-appear .7s ease-out both}
@keyframes comic-appear{from{opacity:.65;transform:scale(1.015)}to{opacity:1;transform:scale(1)}}
@media(max-width:360px){.comic-heading,.comic-prose{padding-left:20px;padding-right:20px}.comic-panel figcaption{padding:22px 20px}.comic-heading h2{font-size:24px}.comic-panel figcaption p{font-size:20px}}
@media(prefers-reduced-motion:reduce){.comic-panel>img{animation:none}}
body.reduced .comic-panel>img{animation:none}
/* Treatment B: a vertical comic, independent of the preserved illustrated letter. */
.webtoon-chapter{background:#eeeae3;color:#25212a;padding:0 0 68px;scroll-margin-top:75px;overflow:hidden}
.webtoon-heading{padding:54px 30px 32px;text-align:center;background:#111018;color:#f3eae5;margin-bottom:38px}
.webtoon-heading>span{font-size:15px;color:#ccb7c6}
.webtoon-heading h2,.webtoon-heading h1{font-size:25px;line-height:1.6;font-weight:500;margin:14px 0 0}
.webtoon-art{margin:30px 0 42px;overflow:hidden;border-block:1px solid #312b32}
.webtoon-art img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.webtoon-art.detail{width:76%;margin:44px 0 38px auto;border:1px solid #312b32;border-right:0}
.webtoon-art.detail img{aspect-ratio:1.15;object-fit:cover;object-position:38% 42%}
.speech-row{display:flex;padding:0 24px;margin:32px 0 42px;position:relative;z-index:1}
.speech-row.left{justify-content:flex-start}.speech-row.right{justify-content:flex-end}.speech-row.center{justify-content:center}
.speech{position:relative;max-width:92%;margin:0;padding:23px 25px;background:#fffefd;border:1.5px solid #302936;border-radius:42% / 22%;font-family:var(--reading);font-size:18px;line-height:1.9;word-break:keep-all;overflow-wrap:anywhere;text-align:left;color:#28212c;box-shadow:0 3px 0 #2b20300b}
.speech:after{content:'';position:absolute;width:15px;height:19px;bottom:-11px;left:29px;background:#fffefd;border-right:1.5px solid #302936;border-bottom:1.5px solid #302936;transform:skewY(35deg)}
.right .speech:after{left:auto;right:30px;transform:skewY(-35deg)}
.speech.lead{font-size:20px;text-align:center;padding:28px 30px;max-width:95%}
.speech.remember{border-width:2px;font-weight:600}
.webtoon-chibi{display:flex;justify-content:center;margin:45px 0 12px}
.webtoon-chibi .reaction,.webtoon-ending>.reaction{width:165px;height:165px;margin:0 auto;display:block}
.webtoon-ending{margin-top:42px}.webtoon-ending .speech-row{margin-top:12px}
.webtoon-chart{background:#111018;color:#eee7e2;padding:28px 24px;margin:40px 0}
.webtoon-chart .offer{margin:0;padding-inline:0}
.free-webtoon .webtoon-chart:last-child{margin-bottom:0}
@media(max-width:360px){.speech-row{padding:0 18px}.speech{padding:19px 21px;font-size:17px;max-width:96%;border-radius:35% / 16%}.speech.lead{font-size:19px}.webtoon-heading h2,.webtoon-heading h1{font-size:23px}}

/* B2: dialogue belongs inside each drawn panel, never in separate prose bands. */
.webtoon-chapter{background:#111018;padding-bottom:35px}
.webtoon-heading{margin-bottom:0}
.integrated-cut{position:relative;isolation:isolate;margin:0 0 24px;min-height:760px;aspect-ratio:1/1.95;overflow:hidden;border-block:1px solid #362a3b;background:#19131e}
.integrated-cut .cut-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.cut-dialogue{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:space-between;min-height:inherit;aspect-ratio:inherit;padding:22px 22px 24px;pointer-events:none}
.cut-balloon{position:relative;color:#27212c;background:#fffef9;border:1.5px solid #2e2434;border-radius:45% / 20%;padding:22px 26px;font-family:var(--reading);font-size:18px;line-height:1.85;max-width:85%;margin:0;word-break:keep-all;overflow-wrap:anywhere;box-shadow:0 3px 5px #0002}
.character-right .balloon-top{align-self:flex-start}.character-right .balloon-bottom{align-self:flex-start}
.character-left .balloon-top{align-self:flex-end}.character-left .balloon-bottom{align-self:flex-end}
.cut-balloon:after{content:'';position:absolute;width:17px;height:25px;background:#fffef9;border-right:1.5px solid #2e2434;border-bottom:1.5px solid #2e2434;bottom:-15px;right:24%;transform:skewY(35deg)}
.character-left .balloon-top:after{right:auto;left:24%;transform:skewY(-35deg)}
.balloon-bottom:after{bottom:auto;top:-15px;transform:rotate(180deg) skewY(35deg)}
.chibi-cut .balloon-top{max-width:96%;align-self:center}
.cut-1{margin-inline:12px;border:1px solid #756177}.cut-2{margin-inline:0 28px;border:1px solid #756177}
@media(min-width:450px){.integrated-cut{min-height:900px}.cut-dialogue{padding:30px}.cut-balloon{font-size:20px}}
@media(max-width:360px){.integrated-cut{min-height:740px;aspect-ratio:1/2.3}.cut-dialogue{padding:18px 16px}.cut-balloon{max-width:94%;padding:20px 23px;font-size:17px;line-height:1.8}.cut-1{margin-inline:8px}.cut-2{margin-right:16px}}

.personal-reading{padding:30px 27px 42px;background:#111018;color:#e7e0e6}
.personal-reading p{font-size:18px;line-height:1.95;margin:20px 0;word-break:keep-all;overflow-wrap:anywhere}
.personal-label{font-size:15px;color:#ceb7c9}.personal-reading .personal-opening{font-family:var(--reading);font-size:21px;color:#f5ece8}
.personal-reading .comic-remember{margin-inline:0}.personal-reading h2{font-size:23px;margin-top:32px}

/* V3: fixed narrative pages. Intrinsic image proportions, bounded speech, no crop. */
.story-page{position:relative;margin:0 0 26px;width:100%;min-width:0;isolation:isolate;overflow:visible;background:#0c1425}
.story-page>img{display:block;width:100%;height:auto;object-fit:contain}
.story-dialogue{position:absolute;inset:0;width:100%;min-width:0;pointer-events:none}
.story-speech-slot{position:absolute;left:0;right:0;display:flex;padding:0 clamp(18px,5vw,30px);min-width:0}
.story-speech-slot.slot-0{top:3%;justify-content:flex-start}
.story-speech-slot.slot-1{bottom:3%;justify-content:flex-end}
.story-balloon{position:relative;box-sizing:border-box;min-width:0;width:fit-content;max-width:92%;margin:0;padding:16px 22px;border:1.5px solid #302837;border-radius:32px;background:#fffef9;color:#27212c;font:18px/1.75 var(--reading);word-break:keep-all;overflow-wrap:anywhere;text-wrap:pretty;box-shadow:0 2px 8px #0002}
.story-balloon:after{content:'';position:absolute;bottom:-10px;left:30px;width:13px;height:17px;background:#fffef9;border-right:1.5px solid #302837;border-bottom:1.5px solid #302837;transform:skewY(35deg)}
.slot-1 .story-balloon:after{top:-10px;bottom:auto;left:auto;right:30px;transform:rotate(180deg) skewY(35deg)}
.story-bridge{padding:20px 28px 30px;margin:0;color:#ded0dc;font:18px/1.95 var(--reading);word-break:keep-all;overflow-wrap:anywhere}
.story-fiction-note{font-size:14px;line-height:1.8;color:#ad9cab;margin:18px 0 0}
/* Avoid the inherited aspect-ratio + min-height widening free-preview captions. */
.integrated-cut{width:auto;min-width:0;min-height:0;aspect-ratio:2/3;overflow:visible}
.integrated-cut .cut-art{object-fit:contain}
.integrated-cut .cut-dialogue{position:absolute;inset:0;width:100%;height:100%;min-height:0;aspect-ratio:auto;padding:22px;box-sizing:border-box}
.integrated-cut .cut-balloon{box-sizing:border-box;min-width:0;max-width:100%;width:fit-content;border-radius:32px;padding:16px 22px;font-size:18px;line-height:1.75}
html[data-reading-view=webtoon] .relationship-scene>.reaction{display:none}
@media(max-width:360px){.story-balloon,.integrated-cut .cut-balloon{font-size:16px;padding:13px 18px}.story-speech-slot{padding-inline:18px}.story-bridge{padding-inline:22px;font-size:17px}.integrated-cut .cut-dialogue{padding:18px}.personal-reading{padding-inline:22px}}

/* Opt-in V4 comparison: transparent aside and a warm hanji consultation letter. */
html[data-reading-view=webtoon-hanji] .relationship-scene>.reaction{display:none}
.hanji-recollection{padding-top:20px}
.chibi-interlude{margin:0;padding:15px 20px 35px;background:transparent;display:flex;flex-direction:column;align-items:center}
.chibi-interlude img{display:block;width:100%;height:auto;margin-top:14px}
.thought-balloon{position:relative;max-width:94%;padding:19px 25px;border:2px dashed #ad9ba7;border-radius:50px;background:#faf4e9;color:#3d3038;font:18px/1.8 var(--reading);word-break:keep-all;overflow-wrap:anywhere;text-align:center}
.thought-balloon:after{content:'';position:absolute;left:56%;bottom:-13px;width:9px;height:9px;border:1.5px dashed #ad9ba7;border-radius:50%;background:#faf4e9}
.adult-return{position:relative;margin:0 0 26px;background:#0c1425}
.adult-return-art{position:relative;aspect-ratio:4/3;overflow:hidden}
.adult-return-art img{position:absolute;width:100%;height:auto;bottom:0;left:0;display:block}
.adult-return>.story-balloon{position:absolute;bottom:18px;right:20px;max-width:calc(100% - 40px)}
.personal-reading.hanji-letter{position:relative;isolation:isolate;margin:0 12px 40px;padding:36px 25px 38px;background-color:#eee3cc;background-image:radial-gradient(ellipse at 15% 20%,#fff9e7aa,transparent 60%),repeating-linear-gradient(8deg,#8b70410a 0px,#8b70410a 1px,transparent 1px,transparent 5px);color:#40362e;border:1px solid #bda781;border-radius:1px;box-shadow:0 4px 18px #0003,inset 0 0 40px #a2824b18}
.hanji-letter:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.2;background-image: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='.62' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%239a8056' filter='url(%23n)' opacity='.45' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.personal-reading.hanji-letter h2{margin-top:0;color:#49382b;font-size:24px}
.hanji-letter>p{color:#40362e;font-family:var(--reading);font-size:18px;line-height:2}
.hanji-letter .chapter-quote{position:relative;margin:30px 0 34px;padding:25px 21px 22px;border:0;color:#58412f}
.hanji-letter .chapter-quote:before,.hanji-letter .chapter-quote:after{content:'';position:absolute;width:18px;height:18px;border-color:#9b7650;border-style:solid}
.hanji-letter .chapter-quote:before{top:0;left:0;border-width:1.5px 0 0 1.5px}
.hanji-letter .chapter-quote:after{bottom:0;right:0;border-width:0 1.5px 1.5px 0}
.hanji-letter .chapter-quote p{font:500 20px/1.85 var(--reading);margin:0;color:#503b2a}
.hanji-letter .comic-remember{border-color:#ad94705c;margin-top:34px}
.hanji-letter .comic-remember>span{color:#81603e;font-size:16px}
.hanji-letter .comic-remember p{color:#503b2a;font-family:var(--reading);font-size:18px}
@media(max-width:360px){.personal-reading.hanji-letter{margin-inline:8px;padding:30px 20px}.hanji-letter>p{font-size:17px}.hanji-letter .chapter-quote{padding:22px 16px}.hanji-letter .chapter-quote p{font-size:19px}.thought-balloon{font-size:17px;padding:17px 22px}.chibi-interlude{padding-inline:14px}.adult-return>.story-balloon{right:16px;max-width:calc(100% - 32px)}}
@font-face{font-family:WolhaGowun;src:url('/fonts/GowunBatang-Bold.woff2') format('woff2');font-weight:700;font-display:swap}
.hanji-sheet{--reading:WolhaGowun,serif;margin:0 12px 40px;padding:0;background-color:#eee3cc;background-image:radial-gradient(ellipse at 15% 20%,#fff9e7aa,transparent 60%),repeating-linear-gradient(8deg,#8b70410a 0px,#8b70410a 1px,transparent 1px,transparent 5px);border:1px solid #bda781;box-shadow:0 4px 18px #0003,inset 0 0 40px #a2824b18;color:#40362e}
.hanji-sheet>.story-bridge{font-family:WolhaGowun,serif;font-size:19px;color:#5b4638;padding:30px 25px 28px;margin:0;line-height:1.95}
.hanji-sheet>.hanji-letter{margin:0;border:0;border-top:1px solid #ad94703a;box-shadow:none;background:transparent}
.hanji-letter:before{opacity:.1}
.hanji-sheet .hanji-letter h2{font-family:WolhaGowun,serif;font-weight:700;letter-spacing:-.02em}
.hanji-sheet .chapter-quote p{font-family:WolhaGowun,serif;font-weight:700}
html[data-type=maru] .hanji-sheet{--reading:WolhaText,serif}
html[data-type=maru] .hanji-sheet>.story-bridge{font-family:WolhaText,serif}
@media(max-width:360px){.hanji-sheet{margin-inline:8px}.hanji-sheet>.hanji-letter{margin:0}.hanji-sheet>.story-bridge{padding-inline:20px;font-size:18px}}
.delivery-tools{margin:24px 0;padding:24px 0;border-top:1px solid #86765d66;text-align:left}.delivery-tools h3{font-size:21px}.delivery-tools p{font-size:17px;line-height:1.8}.delivery-tools label{display:block;margin:16px 0}.delivery-tools input:not([type=checkbox]),.delivery-tools select{display:block;width:100%;min-height:48px;margin-top:8px;padding:10px;background:#201e24;color:#f2ece3;border:1px solid #857568;border-radius:5px;font-size:16px}.delivery-tools [hidden]{display:none}.delivery-tools .check{display:flex;gap:10px}.delivery-tools input[type=checkbox]{flex-shrink:0}
.purchase-phone{margin:24px 0}.purchase-phone>label:first-child,.reopen-scene form>label{display:block;font-size:18px;margin-bottom:12px}.purchase-phone input[type=tel],.reopen-scene input[type=tel]{width:100%;min-height:52px;padding:12px 16px;color:#f2ece3;background:#201e24;border:1px solid #857568;border-radius:6px;font-size:18px}.reopen-scene .stage-art{height:40svh;max-height:360px}.reopen-scene .scene-subtitle{position:relative;margin-top:-85px;padding-bottom:20px}.reopen-scene h1{font-size:25px}.reopen-scene .pad{padding-top:16px}
