/* Local, bundled typography: Pretendard 1.3.9 (SIL OFL). */
@font-face{font-family:'Mate Pretendard';src:url('assets/fonts/PretendardVariable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
:root{--mate-font:'Mate Pretendard','Apple SD Gothic Neo','Malgun Gothic',sans-serif}
body #app,body #app *,body #toast{font-family:var(--mate-font)!important}
body{font-family:var(--mate-font);-webkit-font-smoothing:antialiased}
#app .personal-webtoon,#app .experience-greeting{--dialogue-font:var(--mate-font)}
#app h1,#app h2,#app h3{font-weight:800;letter-spacing:-.035em;word-break:keep-all}
#app .personal-webtoon .toon-dialogue p,#app .speech p{font-weight:600;letter-spacing:-.025em;line-height:1.7}
#app .sample-caption{font-weight:700;letter-spacing:-.025em}
#app button,#app .btn{font-weight:700;letter-spacing:-.02em}
#app .sample-reading p,#app .reading-card>p{font-weight:450;letter-spacing:-.015em}
/* Catalog typography: clear product names and quiet single-line descriptions. */
#app .card h3{font-family:var(--mate-font)!important;font-size:16px;font-weight:650;line-height:1.45;letter-spacing:-.045em;color:#171717;margin:12px 0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:normal}
#app .card>p{font-family:var(--mate-font)!important;font-size:13px;font-weight:400;line-height:1.55;letter-spacing:-.025em;color:#777;min-height:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#app .card .meta{font-size:10px;font-weight:400;letter-spacing:0;color:#888}
#app .category-bar a{font-size:15px;font-weight:450;letter-spacing:-.035em}
#app .category-bar a.active{font-weight:700;color:#151515}
#app .cw-title h2,#app .catalog-tools h2{font-weight:650;letter-spacing:-.04em}
#app .cw-strip .card h3{font-size:15px}#app .cw-strip .card>p{font-size:12px}
#app .cw-strip.large .card h3{font-size:17px}#app .cw-strip.large .card>p{font-size:13px}
@media(max-width:360px){#app .card h3{font-size:15px}#app .card>p{font-size:12px}#app .category-bar a{font-size:14px}}
/* Individual cover art direction: artwork stays untouched; lettering is editable. */
@font-face{font-family:'Cover Ink';src:url('assets/fonts/YeonSung-Covers.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'Cover Serif';src:url('assets/fonts/NotoSerifKR-Covers.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:'Cover Script';src:url('assets/fonts/NanumPenScript-Covers.ttf') format('truetype');font-weight:400;font-display:swap}
#app .by-card-cover{display:block;position:relative;overflow:hidden;border-radius:10px;container-type:inline-size;margin-bottom:12px;isolation:isolate;aspect-ratio:4/5;background:#292330;--typeface:'Cover Serif',serif;--weight:700;--top:#fff;--bottom:#bdc9ed;--label:#eee7ff;--shade:20,16,30;--outline:transparent;--fade:.88;--tracking:-.075em}
#app .by-card-cover>:first-child{display:block;position:absolute;inset:0;width:100%!important;height:100%!important;aspect-ratio:auto!important;margin:0!important;border-radius:0!important;padding:0!important;box-sizing:border-box}
#app .by-card-cover>.art.saju-cover{aspect-ratio:auto!important}
#app .by-card-cover>:first-child img{display:block;width:100%!important;height:100%!important;max-width:none;object-fit:cover!important;object-position:center 25%!important;transform:none!important;border:0;border-radius:0;box-shadow:none}
#app .by-card-cover:after{content:'';position:absolute;inset:48% 0 0;background:linear-gradient(transparent,rgba(var(--shade),.35) 45%,rgba(var(--shade),var(--fade)));z-index:1;pointer-events:none}
#app .by-cover-type{position:absolute;bottom:9%;left:5%;right:5%;z-index:2;display:block;text-align:center;text-shadow:none}
body #app .by-cover-type small{display:block;font-family:var(--mate-font)!important;font-size:clamp(9px,4.8cqw,13px);font-weight:500;line-height:1.3;color:var(--label);letter-spacing:-.03em;margin-bottom:5px;text-shadow:0 1px 4px rgba(0,0,0,.35)}
body #app .by-card-cover .by-cover-type strong,body #app .by-card-cover .by-cover-type strong span{font-family:var(--typeface)!important;font-size:var(--letter-size,20cqw);font-weight:var(--weight);line-height:1.12;letter-spacing:var(--tracking);word-break:keep-all;overflow-wrap:normal}
body #app .by-cover-type strong{display:block;filter:drop-shadow(0 2px 2px rgba(0,0,0,.45))}
body #app .by-cover-type strong span{display:block;white-space:nowrap;padding:.035em 0 .11em;color:var(--top);background:linear-gradient(180deg,var(--top) 15%,var(--bottom) 92%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;-webkit-text-stroke:.35px var(--outline)}
#app .by-card-cover[data-lettering='ink']{--typeface:'Cover Ink',serif;--weight:400;--tracking:-.06em;--bottom:#b8d3ef}
#app .by-card-cover[data-lettering='script']{--typeface:'Cover Script',cursive;--weight:400;--tracking:-.025em;--bottom:#e7b9d0}
#app .by-card-cover[data-lettering='slim']{--typeface:var(--mate-font);--weight:300;--tracking:-.09em;--bottom:#b9e9f2}
#app .by-card-cover[data-lettering='display']{--typeface:var(--mate-font);--weight:850;--tracking:-.07em;--bottom:#f39a78;--outline:#ffcfb7}
#app .by-card-cover[data-lettering='blossom']{--top:#ff9bb9;--bottom:#e8316c;--label:#e93871;--shade:255,246,248;--outline:#fff;--fade:1}
#app .by-card-cover[data-lettering='blossom']:after{inset:42% 0 0;background:linear-gradient(transparent,#fff5f8b0 40%,#fff9fb 100%)}
#app .by-card-cover[data-lettering='blossom'] strong{filter:drop-shadow(0 1px 1px #fff)}
#app .by-card-cover[data-lettering='blossom'] small{text-shadow:0 1px 3px #fff}
#app .by-card-cover[data-product='sinsal']{--top:#fff;--bottom:#b7b6c5;--shade:12,13,19}
#app .by-card-cover[data-product='wealth']{--top:#fff3ce;--bottom:#d5a351;--label:#f4dab2;--shade:37,23,11}
#app .by-card-cover[data-product='annual']{--top:#fff;--bottom:#e8c982;--label:#fff0ce}
#app .by-card-cover[data-product='reunion']{--top:#fbe5ff;--bottom:#a583da;--label:#e5d0ef}
#app .by-card-cover[data-category='자미두수']{--top:#f5edff;--bottom:#aa8ae1;--label:#e3d5f4;--shade:24,15,45;--tracking:-.075em}
#app .by-card-cover[data-product='ziwei-2'],#app .by-card-cover[data-product='ziwei-3']{--top:#fff0f0;--bottom:#dc9db7;--shade:47,18,33}
#app .by-card-cover[data-product='ziwei-4']{--top:#fff2e5;--bottom:#e29486;--shade:46,20,17}
#app .by-card-cover[data-product='ziwei-5']{--top:#fff5cf;--bottom:#d6b26d}
#app .by-card-cover[data-category='공부사주']{--top:#fff;--bottom:#99c4eb;--outline:#dcefff;--label:#e4f2ff;--shade:15,32,47}
#app .by-card-cover[data-category='타로']{--shade:22,16,32}
#app .by-card-cover[data-product='tarot-1']{--top:#f5fdff;--bottom:#b7e3ec;--label:#e5f3f6;--shade:22,46,52}
#app .by-card-cover[data-product='tarot-3']{--top:#fff1f6;--bottom:#e7a4c1;--shade:45,24,42}
#app .by-card-cover[data-product='tarot-6']{--top:#ffe6cc;--bottom:#f48965;--label:#ffe9ce}
#app .by-card-cover[data-category='무료']{--top:#fff;--bottom:#e2d9ed}

/* 2026-10-05: lower-third title lockup, sized against the user's reference. */
#app .by-card-cover{--tracking:-.065em;--outline:#ffffff30}
#app .by-cover-type{bottom:9%;left:8%;right:8%}
body #app .by-cover-type small{font-size:4.2cqw;line-height:1.3;margin-bottom:2.2cqw;letter-spacing:.08em}
body #app .by-cover-type small:before,body #app .by-cover-type small:after{content:'';display:inline-block;vertical-align:middle;width:7cqw;height:1px;margin:0 2cqw;background:linear-gradient(90deg,transparent,currentColor);opacity:.65}
body #app .by-cover-type small:after{transform:rotate(180deg)}
body #app .by-card-cover .by-cover-type strong,body #app .by-card-cover .by-cover-type strong span{font-family:'Cover Serif',serif!important;font-weight:700;line-height:1.12;letter-spacing:-.065em}
body #app .by-cover-type strong span{padding:.02em 0 .08em;-webkit-text-stroke:.25px var(--outline);background-image:linear-gradient(175deg,var(--top) 12%,var(--top) 35%,var(--bottom) 88%)}
body #app .by-cover-type strong{filter:drop-shadow(0 1px 0 #25132180) drop-shadow(0 2px 3px #10091e40)}
#app .by-card-cover[data-lettering='ink'],#app .by-card-cover[data-lettering='script'],#app .by-card-cover[data-lettering='slim'],#app .by-card-cover[data-lettering='display']{--typeface:'Cover Serif',serif;--weight:700;--outline:#ffffff30}
#app .by-card-cover[data-product='sinsal']{--top:#fff2dc;--bottom:#c9a879;--label:#edddc0;--outline:#f5ddac55}
#app .by-card-cover[data-product='traditional']{--top:#fff5e4;--bottom:#ddb991;--label:#f2dcc7}
#app .by-card-cover[data-lettering='blossom']{--top:#ffb1cc;--bottom:#dd477b;--outline:#fff9}
#app .by-card-cover[data-lettering='blossom'] strong{filter:drop-shadow(0 1px 0 #fff) drop-shadow(0 1px 3px #fff9)}
#app .by-card-cover[data-category='공부사주']{--top:#f1f8ff;--bottom:#abc9e7;--outline:#ffffff40}
body #app .by-card-cover .by-cover-type strong span:first-child:not(:last-child){font-size:.5em;letter-spacing:.025em;padding-bottom:.22em}
#app .cw-slide{container-type:inline-size}
body #app .cw-caption h2{font-family:'Cover Serif',serif!important;font-size:8cqw;font-weight:700;letter-spacing:-.065em;color:#fff2e3;text-shadow:0 2px 5px #311b2d80}
