/* 책방 식구 책 네 가지: 모던 · 원고지 공책 · 두 색 리소 · 아코디언.
   모든 선택자는 .tp 안에서만. 지면은 종이라 어두운 모드에서도 밝은 색 그대로. */
.tp{
  --desk:#ebe7e0; --paper:#fbf9f4; --ink:#1f1d1a; --sub:#6d665c; --line:#d6d0c5;
  --mul:#0b7a83;   /* 책방지기 잉크: 저수지 물빛 */
  --pen:#22386b;   /* 필사 볼펜 */
  --red:#c8412f;   /* 책방 식구 도장 */
  --f-disp:"Gasoek One","Black Han Sans","Noto Sans KR",sans-serif;
  --f-book:"Gowun Batang","Nanum Myeongjo",serif;
  --f-hand:"Nanum Pen Script","Gaegu",cursive;
  --f-mk:"Dokdo","Nanum Pen Script",cursive;
  --f-hand2:"Gaegu","Nanum Pen Script",cursive;
  --mk:#1d1b19;
  --f-md:"IBM Plex Sans KR","Noto Sans KR",sans-serif;
  --f-mdx:"Noto Sans KR",sans-serif;
  --f-ui:"Noto Sans KR",system-ui,sans-serif;
  display:flex;flex-direction:column;gap:18px;line-height:1.6;font-size:15px;color:var(--fg)
}
.tp button:focus-visible,.tp [tabindex]:focus-visible{outline:2px solid var(--mul);outline-offset:2px}
.tp .pg,.tp .fd{color:var(--ink)}
/* 고르기: 휴대폰 폭 안에서는 늘 2×2 */
.tp .picks{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px 16px}
.tp .pk b{color:var(--fg)}
.tp .pk span{color:var(--muted)}
.tp .pk[aria-pressed="true"] .mini{outline-color:var(--fg)}
.tp .pk .mini{background:var(--paper)}
.tp .pk .chk{display:none}
.tp .pk[aria-pressed="true"] .chk{display:inline;margin-left:6px;font-family:var(--f-ui);font-size:12px;color:var(--fg)}
/* 펼친 책 */
.tp .stage{display:flex;flex-direction:column;gap:8px}
.tp .stage .sh{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;justify-content:space-between}
.tp .stage .sh b{font-family:var(--f-book);font-size:20px;color:var(--fg)}
.tp .out{font-size:12.5px;color:var(--muted);margin:0}
.tp .spread{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:-16px;padding:4px 16px 16px;scroll-padding-inline:16px}
.tp .grid{display:none;position:relative;overflow:hidden}
.tp .grid.show{display:block}
.tp .grid .in{position:absolute;left:0;top:0;display:grid;grid-template-columns:repeat(2,300px);gap:14px;transform-origin:0 0}
.tp .grid .in .pg{box-shadow:none;outline:1px solid rgba(40,30,20,.12)}
.tp .acc{margin-inline:-16px}
.tp .btn{border-radius:2px}
/* 도장: 찍힌 자국. 색은 color로 */
.tp .stamp{position:absolute;line-height:0;pointer-events:none;color:var(--red)}
.tp .stamp svg{display:block;overflow:visible;mix-blend-mode:multiply}
.tp .stamp.in{position:relative;display:inline-block;vertical-align:middle}
.tp .picks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@media (max-width:640px){.tp .picks{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tp .pk{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:6px;min-width:0}
.tp .pk .mini{aspect-ratio:2/3;max-width:100%;position:relative;overflow:hidden;box-shadow:0 1px 2px rgba(40,30,20,.15),0 6px 16px rgba(40,30,20,.08);transition:transform .25s}
.tp .pk:hover .mini{transform:translateY(-3px)}
.tp .pk[aria-pressed="true"] .mini{outline:3px solid var(--ink);outline-offset:4px}
.tp .pk b{font-family:var(--f-book);font-size:16px}
.tp .pk span{font-size:12px;color:var(--sub);line-height:1.45}
.tp .pk:focus-visible .mini{outline:3px solid var(--mul);outline-offset:4px}
.tp .pg{flex:0 0 300px;height:450px;position:relative;overflow:hidden;scroll-snap-align:start;background:var(--paper);box-shadow:0 1px 2px rgba(40,30,20,.12),0 8px 24px rgba(40,30,20,.08)}
.tp .pg *{box-sizing:border-box}
.tp .pno{position:absolute;left:0;right:0;bottom:10px;text-align:center;font-size:10.5px;color:var(--sub)}
.tp .seal{position:absolute;width:76px;height:76px;transform:rotate(-9deg);mix-blend-mode:multiply;opacity:.9}
.tp .seal svg{display:block;overflow:visible}
.tp .fade{animation:fade .6s ease both}
@keyframes fade{from{opacity:.25;transform:translateY(6px)}to{opacity:1;transform:none}}

/* 1. 띠지 책 */
.tp .bk.cov{background:var(--g);color:#fffaf2}
.tp .bk .mast{position:absolute;left:22px;right:22px;top:22px;margin:0;font-family:var(--f-book);font-weight:700;font-size:23px;border-bottom:2px solid #fffaf2;padding-bottom:6px}
.tp .bk .ser{position:absolute;left:22px;top:72px;font-size:10.5px;opacity:.9}
.tp .bk .ttl{position:absolute;left:22px;right:22px;top:104px;margin:0;font-family:var(--f-book);font-weight:700;font-size:25px;line-height:1.3}
.tp .bk .meet{position:absolute;left:22px;right:22px;top:182px;margin:0;font-size:11.5px;opacity:.9}
.tp .bk .ph{position:absolute;left:96px;right:22px;top:206px;height:136px;background:var(--g);overflow:hidden}
.tp .bk .ph img{width:100%;height:100%;object-fit:cover;display:block;mix-blend-mode:multiply;filter:grayscale(1) contrast(1.1)}
.tp .bk .band{position:absolute;left:0;right:0;top:334px;background:#fffdf8;color:var(--ink);padding:10px 22px 8px}
.tp .bk .band p{margin:0;font-family:var(--f-hand);font-size:19px;line-height:1.15}
.tp .bk .band span{display:block;text-align:right;font-family:var(--f-hand);font-size:17px}
.tp .bk .ft{position:absolute;left:22px;right:22px;bottom:12px;display:flex;justify-content:space-between;font-size:10px;border-top:1px solid rgba(255,250,242,.7);padding-top:5px}
.tp .bk .stp{position:absolute;left:8px;width:3px;height:26px;background:rgba(255,255,255,.75)}
.tp .bk .h{position:absolute;left:22px;top:22px;margin:0;font-family:var(--f-book);font-weight:700;font-size:24px}
.tp .bk .hs{position:absolute;left:22px;right:22px;top:62px;margin:0;font-size:11.5px;color:var(--sub);line-height:1.6}
.tp .bk ol{position:absolute;left:22px;right:22px;top:120px;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:26px}
.tp .bk ol li{display:grid;grid-template-columns:58px 14px 1fr;gap:8px;align-items:start}
.tp .bk ol .t{font-size:11.5px;padding-top:2px}
.tp .bk ol .d{width:9px;height:9px;border-radius:50%;background:var(--g);margin-top:6px}
.tp .bk ol small{display:block;font-size:10px;color:var(--sub)}
.tp .bk ol p{margin:0;font-family:var(--f-book);font-weight:700;font-size:15px;line-height:1.35}
.tp .bk .rh{position:absolute;left:22px;right:22px;top:18px;display:flex;justify-content:space-between;font-size:10px;color:var(--sub);border-bottom:1px solid var(--line);padding-bottom:6px}
.tp .bk .q{position:absolute;left:22px;right:22px;top:66px;margin:0;font-size:12.5px;line-height:1.5}
.tp .bk .q b,.tp .bk .a b{color:var(--g)}
.tp .bk .a{position:absolute;left:22px;right:22px;top:104px;margin:0;font-family:var(--f-book);font-weight:700;font-size:27px;line-height:1.3}
.tp .bk .pn{position:absolute;right:22px;top:250px;font-family:var(--f-hand);font-size:20px;color:var(--red)}
.tp .bk .jin{position:absolute;left:22px;right:22px;bottom:34px;border-top:1px solid var(--line);padding-top:8px;font-size:11.5px;line-height:1.55}
.tp .bk .jin small{display:block;font-size:10px;color:var(--sub)}
.tp .bk dl{position:absolute;left:22px;right:22px;top:170px;margin:0;display:grid;grid-template-columns:62px 1fr;gap:6px 8px;font-size:11.5px;border-top:1.5px solid var(--ink);padding-top:12px}
.tp .bk dt{color:var(--sub)} .tp .bk dd{margin:0;font-weight:500}
.tp .bk .cn{position:absolute;left:22px;right:96px;bottom:34px;margin:0;font-size:10.5px;line-height:1.6;color:var(--sub)}
.tp .bk .seal{right:20px;bottom:34px}
.tp .bk.rc{background:#e6e1d8}
.tp .slip{position:absolute;left:34px;right:34px;top:58px;background:#fff;padding:18px 16px 26px;font-family:"Nanum Gothic Coding",ui-monospace,monospace;font-size:11.5px;clip-path:polygon(0 0,100% 0,100% 100%,94% 98%,88% 100%,82% 98%,76% 100%,70% 98%,64% 100%,58% 98%,52% 100%,46% 98%,40% 100%,34% 98%,28% 100%,22% 98%,16% 100%,10% 98%,4% 100%,0 98%)}
.tp .slip .s1{text-align:center;font-family:var(--f-book);font-weight:700;font-size:16px;margin:0}
.tp .slip .s2{text-align:center;margin:2px 0 10px;color:var(--sub);font-size:10.5px}
.tp .slip hr{border:0;border-top:1px dashed #999;margin:8px 0}
.tp .slip .r{display:flex;justify-content:space-between;gap:8px}
.tp .slip .tot{font-weight:700;font-size:13px}
.tp .slip .end{text-align:center;margin:12px 0 0;font-family:var(--f-hand);font-size:19px;line-height:1.15;color:var(--ink)}

/* 2. 원고지 공책 */
.tp .nc{--cv:color-mix(in srgb,var(--g) 62%,#efe8dc);background:radial-gradient(120% 80% at 70% 0%,rgba(255,255,255,.18),transparent 60%),repeating-linear-gradient(0deg,rgba(0,0,0,.018) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 3px),var(--cv);border-radius:2px 6px 6px 2px}
.tp .nc .spine{position:absolute;left:0;top:0;bottom:0;width:22px;background:color-mix(in srgb,var(--g) 80%,#2a2520);box-shadow:inset -2px 0 3px rgba(0,0,0,.15)}
.tp .nc .spine::after{content:"";position:absolute;left:10px;top:18px;bottom:18px;border-left:1.5px dashed rgba(255,250,240,.55)}
.tp .nc .no{position:absolute;right:24px;top:22px;font-size:10px;letter-spacing:.18em;color:rgba(30,25,20,.6)}
.tp .nc .lab{position:absolute;left:40px;right:20px;top:92px;background:#fcfaf5;padding:18px 18px 14px;box-shadow:0 1px 1px rgba(0,0,0,.08),0 6px 14px rgba(40,30,20,.10);outline:1px solid rgba(60,50,40,.28);outline-offset:-6px}
.tp .nc .lab small{display:block;text-align:center;font-size:9.5px;letter-spacing:.22em;color:var(--sub)}
.tp .nc .lab p{margin:6px 0 12px;font-family:var(--f-book);font-weight:700;font-size:19px;text-align:center;letter-spacing:-.01em}
.tp .nc .row{display:grid;grid-template-columns:58px 1fr;align-items:end;border-bottom:1px solid #d9d2c6;padding:5px 2px 2px}
.tp .nc .row span{white-space:nowrap;font-size:9.5px;color:var(--sub);letter-spacing:.04em}
.tp .nc .row b{font-family:var(--f-hand);font-weight:400;font-size:19px;white-space:nowrap;line-height:1.05;color:var(--pen)}
.tp .nc .seal{right:20px;bottom:46px;width:92px;height:92px}
.tp .nc .bt{position:absolute;left:48px;right:24px;bottom:18px;font-size:9.5px;letter-spacing:.08em;color:rgba(30,25,20,.62);display:flex;justify-content:space-between}
.tp .nb{--wl:#d9867a;background:#fdfbf7;display:flex;flex-direction:column;gap:12px;padding:22px 24px 30px 26px}
.tp .nb .hd{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid #e6e0d6;padding-bottom:8px;font-size:10.5px;color:var(--sub);letter-spacing:.04em}
.tp .nb .hd b{font-family:var(--f-book);font-size:15px;color:var(--ink);margin-right:8px;letter-spacing:0}
.tp .nb .q{margin:4px 0 0;font-size:12px;line-height:1.55;color:#4a443c;display:flex;gap:8px}
.tp .nb .q b{font-family:var(--f-book);color:var(--g);font-size:14px;line-height:1.3}
.tp .nb .wg{align-self:flex-start;display:flex;flex-direction:column;gap:6px;padding:7px;border:1.5px solid var(--wl);background:#fff}
.tp .nb .wr{display:grid;grid-template-columns:repeat(9,27px);border:1px solid var(--wl)}
.tp .nb .wr i{height:34px;border-right:1px solid color-mix(in srgb,var(--wl) 55%,#fff);font-style:normal;font-family:var(--f-hand);font-size:30px;line-height:37px;text-align:center;color:var(--pen)}
.tp .nb .wr i:last-child{border-right:0}
.tp .nb .sig{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--sub)}
.tp .nb .sig em{font-style:normal;font-family:var(--f-hand);font-size:20px;color:var(--pen)}
.tp .nb .inj{display:inline-grid;place-items:center;width:18px;height:24px;background:var(--red);color:#fff;font-size:8.5px;line-height:1.05;font-weight:700;border-radius:2px;transform:rotate(-4deg);opacity:.9;font-style:normal}
.tp .nb .rp{margin-left:auto;font-family:var(--f-hand);font-size:19px;color:var(--red);transform:rotate(-3deg)}
.tp .nb .low{margin-top:auto;display:grid;grid-template-columns:134px 1fr;gap:14px;align-items:end}
.tp .nb .ph{margin:0;position:relative;height:178px;background:#fff;padding:5px;box-shadow:0 1px 2px rgba(0,0,0,.12),0 4px 10px rgba(40,30,20,.08)}
.tp .nb .ph img{width:100%;height:100%;object-fit:cover;display:block}
.tp .nb .ph::before,.tp .nb .ph::after{content:"";position:absolute;width:16px;height:16px;background:color-mix(in srgb,var(--g) 70%,#3a3128);clip-path:polygon(0 0,100% 0,0 100%)}
.tp .nb .ph::before{left:-2px;top:-2px}
.tp .nb .ph::after{right:-2px;bottom:-2px;transform:rotate(180deg)}
.tp .nb .hk{margin:0;font-size:10.5px;line-height:1.6;color:#3d3933;border-left:2px solid var(--g);padding-left:9px}
.tp .nb .hk small{display:block;color:var(--sub);font-size:9.5px;margin-bottom:2px}
.tp .nb .pno{left:auto;right:24px;bottom:10px}
.tp .rs .seal{right:22px;bottom:58px;width:96px;height:96px}
.tp .nb.lt-pg{padding-top:22px}
.tp .nb .letter{margin:0;font-family:var(--f-hand);font-size:22px;line-height:30px;color:var(--pen);background:repeating-linear-gradient(transparent 0 29px,#e6e0d6 29px 30px);padding-top:2px}
.tp .nb .sg{font-family:var(--f-hand);font-size:21px;color:var(--pen);text-align:right;margin:0}
.tp .nb .seal{right:22px;bottom:34px;width:88px;height:88px}
/* 3. 두 색 리소 */
.tp .rs{font-family:var(--f-ui);color:var(--mul)}
.tp .rs .mast{position:absolute;left:20px;right:20px;top:20px;margin:0;font-family:var(--f-disp);font-size:42px;line-height:1.05;text-shadow:3px 2px 0 var(--gi)}
.tp .rs .ser{position:absolute;left:20px;top:116px;font-size:10.5px;letter-spacing:.04em}
.tp .duo{position:absolute;background:var(--mul);overflow:hidden}
.tp .duo img{width:100%;height:100%;object-fit:cover;display:block;mix-blend-mode:screen;filter:grayscale(1) contrast(1.15)}
.tp .burst{position:absolute;background:var(--gi);mix-blend-mode:multiply;clip-path:polygon(50% 0,61% 30%,95% 20%,72% 47%,100% 72%,64% 70%,55% 100%,42% 72%,6% 84%,30% 52%,0 24%,38% 30%)}
.tp .rs .meet{position:absolute;left:20px;right:20px;top:326px;margin:0;font-family:var(--f-disp);font-size:18px;line-height:1.2}
.tp .rs .bub{position:absolute;left:20px;right:40px;top:378px;background:var(--paper);border:2px solid var(--mul);border-radius:18px;padding:6px 12px;font-family:var(--f-hand);font-size:20px;line-height:1.15}
.tp .rs .bub::after{content:"";position:absolute;left:26px;bottom:-9px;width:14px;height:14px;background:var(--paper);border-right:2px solid var(--mul);border-bottom:2px solid var(--mul);transform:rotate(45deg)}
.tp .rs .bub b{font-weight:400;display:block;text-align:right;font-size:16px}
.tp .rs .tag{position:absolute;left:20px;top:20px;background:var(--mul);color:var(--paper);font-size:10.5px;padding:2px 8px}
.tp .rs .q{position:absolute;left:20px;right:20px;top:54px;margin:0;font-size:12.5px;line-height:1.5}
.tp .rs .a{position:absolute;left:20px;right:20px;top:104px;margin:0;font-family:var(--f-disp);font-size:34px;line-height:1.15}
.tp .rs .a span{background:linear-gradient(transparent 52%,var(--gi) 52%,var(--gi) 92%,transparent 92%);mix-blend-mode:multiply;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.tp .rs .pn{position:absolute;right:18px;top:236px;font-family:var(--f-hand);font-size:21px;transform:rotate(-4deg)}
.tp .rs .hk{position:absolute;right:14px;width:106px;top:280px;margin:0;font-size:11px;line-height:1.5}
.tp .rs .hk small{display:block;font-size:9.5px;opacity:.8}
.tp .rs .pno{color:var(--mul)}
.tp .rs.back{background:var(--gi)}
.tp .rs .bt{position:absolute;left:20px;right:20px;top:24px;margin:0;font-family:var(--f-disp);font-size:30px;line-height:1.15}
.tp .rs .bl{position:absolute;left:20px;right:20px;top:118px;margin:0;font-family:var(--f-hand);font-size:23px;line-height:1.25}
.tp .rs .bs{position:absolute;right:22px;bottom:64px;width:92px;height:92px;border:2.5px solid var(--mul);border-radius:50%;display:grid;place-items:center;text-align:center;font-family:var(--f-disp);font-size:14px;line-height:1.15;transform:rotate(-10deg)}
.tp .rs .bf{position:absolute;left:20px;bottom:18px;font-size:10px;line-height:1.5}

/* 4. 아코디언 */
.tp .acc-wrap{position:relative}
.tp .acc{display:flex;overflow-x:auto;padding:24px 40px 26px;scroll-snap-type:x mandatory;perspective:1100px}
.tp .fd{flex:0 0 220px;height:340px;position:relative;background:#f7f4ee;scroll-snap-align:center;font-family:var(--f-book);transform-style:preserve-3d;transition:transform .5s ease,box-shadow .5s ease}
.tp .fd:nth-child(odd){background:linear-gradient(90deg,rgba(60,45,30,.10),rgba(60,45,30,0) 35%),#f7f4ee;transform-origin:right center;transform:rotateY(14deg)}
.tp .fd:nth-child(even){background:linear-gradient(270deg,rgba(60,45,30,.14),rgba(60,45,30,0) 40%),#f2eee6;transform-origin:left center;transform:rotateY(-14deg)}
.tp .fd.on{transform:none!important;box-shadow:0 10px 24px rgba(40,30,20,.16);z-index:2}
.tp .fd + .fd{border-left:1px solid rgba(60,45,30,.12)}
.tp .fd .k{position:absolute;left:18px;top:14px;font-family:var(--f-ui);font-size:10px;letter-spacing:.06em;color:var(--sub)}
.tp .fd .n{position:absolute;right:12px;bottom:10px;font-family:var(--f-ui);font-size:10px;color:var(--sub)}
.tp .fd .print{position:absolute;left:20px;right:20px;top:36px;height:206px;background:#fff;padding:7px 7px 24px;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.tp .fd .print img{width:100%;height:100%;object-fit:cover;display:block}
.tp .fd .tape{position:absolute;width:62px;height:17px;background:var(--g);opacity:.7;top:27px;left:78px;transform:rotate(-4deg)}
.tp .fd .hw{position:absolute;left:18px;right:14px;top:256px;margin:0;font-family:var(--f-hand);font-size:21px;line-height:1.15;color:var(--pen)}
.tp .fd .slip2{position:absolute;left:16px;right:16px;top:76px;background:#fff;padding:14px 13px 16px;box-shadow:0 2px 6px rgba(0,0,0,.12)}
.tp .fd .slip2 small{display:block;font-family:var(--f-ui);font-size:10.5px;color:var(--sub);margin-bottom:8px;line-height:1.45}
.tp .fd .slip2 p{margin:0;font-size:21px;font-weight:700;line-height:1.35}
.tp .fd .chk{position:absolute;left:22px;top:250px;font-family:var(--f-hand);font-size:21px;color:var(--red)}
.tp .fd .t{position:absolute;left:18px;right:14px;top:40px;margin:0;font-size:26px;font-weight:700;line-height:1.3}
.tp .fd .s{position:absolute;left:18px;right:14px;top:124px;margin:0;font-size:12.5px;line-height:1.6}
.tp .fd .who{position:absolute;left:18px;right:14px;top:200px;margin:0;font-family:var(--f-hand);font-size:23px;line-height:1.1;color:var(--pen)}
.tp .fd .seal{right:16px;bottom:20px}
.tp .fd.end .hw{top:40px;font-size:22px;line-height:1.25}
/* 4. 아코디언 · 손그림 */
.tp .fd.hand{background:#fffdf8;font-family:var(--f-hand2)}
.tp .fd.hand .lb,.tp .fd.hand .whoh,.tp .fd.hand .go,.tp .fd.hand .cap3,.tp .fd.hand .bub2,.tp .fd.hand .tick,.tp .fd.hand .lt2{letter-spacing:-.05em}
.tp .fd.hand:nth-child(odd){background:linear-gradient(90deg,rgba(60,45,30,.08),rgba(60,45,30,0) 30%),#fffdf8}
.tp .fd.hand:nth-child(even){background:linear-gradient(270deg,rgba(60,45,30,.11),rgba(60,45,30,0) 36%),#fbf8f1}
.tp .fd .frm{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.tp .fd .frm path{fill:none;stroke:var(--mk);stroke-linecap:round;stroke-linejoin:round}
.tp .fd .lb{position:absolute;left:24px;top:20px;font-family:var(--f-hand2);font-weight:700;font-size:15px;color:var(--mk);background:linear-gradient(transparent 58%,var(--gi) 58%,var(--gi) 90%,transparent 90%);padding:0 3px}
.tp .fd .big{position:absolute;left:22px;right:16px;top:44px;margin:0;font-family:var(--f-mk);font-size:44px;line-height:.92;color:var(--mk);letter-spacing:-.01em}
.tp .fd .star{position:absolute;right:14px;top:62px;width:56px;height:56px;transform:rotate(12deg)}
.tp .fd .whoh{position:absolute;left:22px;right:20px;top:216px;margin:0;font-family:var(--f-hand2);font-weight:700;font-size:17px;line-height:1.25;color:var(--mk)}
.tp .fd .go{position:absolute;left:24px;bottom:20px;font-family:var(--f-hand2);font-size:14px;color:var(--mk)}
.tp .fd .sk{position:absolute;left:28px;top:56px;width:164px;height:180px}
.tp .fd .sk svg{position:absolute;inset:-14px;width:192px;height:208px;overflow:visible}
.tp .fd .sk img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply;display:block}
.tp .fd .cap3{position:absolute;left:24px;right:16px;top:254px;margin:0;font-family:var(--f-hand2);font-size:17px;line-height:1.3;color:var(--mk)}
.tp .fd .bub2{position:absolute;left:18px;right:18px;top:48px;padding:16px 16px 18px;border:2px solid var(--mk);border-radius:58% 42% 55% 45%/52% 58% 42% 48%;font-family:var(--f-hand2);font-size:14px;line-height:1.3;color:var(--mk);text-align:center;transform:rotate(-2deg);background:#fffdf8}
.tp .fd .bub2::after{content:"";position:absolute;left:44px;bottom:-15px;width:16px;height:16px;border-right:2px solid var(--mk);border-bottom:2px solid var(--mk);background:#fffdf8;transform:rotate(35deg) skewX(10deg)}
.tp .fd .ans{position:absolute;left:20px;right:16px;top:150px;margin:0;font-family:var(--f-mk);font-size:36px;line-height:1.02;color:var(--mk)}
.tp .fd .ans span{background:linear-gradient(176deg,transparent 52%,var(--gi) 52%,var(--gi) 88%,transparent 88%);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 2px}
.tp .fd .tick{position:absolute;left:22px;bottom:44px;display:flex;align-items:center;gap:6px;font-family:var(--f-hand2);font-weight:700;font-size:16px;color:var(--mk)}
.tp .fd .tick svg{width:26px;height:26px;flex:0 0 26px}
.tp .fd .pgn{position:absolute;right:16px;bottom:14px;width:26px;height:26px;display:grid;place-items:center;font-family:var(--f-hand2);font-weight:700;font-size:15px;color:var(--mk)}
.tp .fd .pgn svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.tp .fd .lt2{position:absolute;left:24px;right:18px;top:88px;margin:0;font-family:var(--f-hand2);font-size:17px;line-height:1.45;color:var(--mk)}
.tp .fd .ht{position:absolute;left:22px;top:40px;margin:0;font-family:var(--f-mk);font-size:34px;line-height:1;color:var(--mk)}
.tp .fd.hand .seal{right:14px;bottom:18px;width:78px;height:78px}
/* 5. 모던 */
.tp .md{font-family:var(--f-md);background:#fff;color:#111}
.tp .md.cov .ph{position:absolute;left:0;right:0;top:0;height:270px;overflow:hidden}
.tp .md.cov .ph img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.5) contrast(.88) brightness(1.06) sepia(.12)}
.tp .md.cov .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.28),rgba(0,0,0,0) 30%),rgba(251,246,236,.18)}
.tp .md .mh{position:absolute;left:20px;right:20px;top:18px;display:flex;justify-content:space-between;font-size:11px;font-weight:700;letter-spacing:-.01em;color:#fff;z-index:1}
.tp .md .mh span:last-child{font-weight:500;opacity:.9}
.tp .md .band3{position:absolute;left:0;right:0;top:270px;height:34px;background:var(--g);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 20px;font-family:var(--f-hand);font-size:18px;white-space:nowrap;overflow:hidden}
.tp .md .band3 small{font-family:var(--f-md);font-size:10px;opacity:.85}
.tp .md .tt{position:absolute;left:20px;right:20px;top:318px;margin:0;font-family:var(--f-mdx);font-weight:900;font-size:29px;line-height:1.12;letter-spacing:-.045em}
.tp .md .tt.long{font-size:23px;line-height:1.16}
.tp .md .by2{position:absolute;left:20px;right:20px;bottom:18px;display:flex;justify-content:space-between;align-items:flex-end;font-size:10.5px;color:#555;border-top:1px solid #111;padding-top:7px}
.tp .md .by2 b{color:#111;font-weight:700}
.tp .md .num{position:absolute;left:18px;top:14px;margin:0;font-family:var(--f-mdx);font-weight:900;font-size:76px;line-height:1;letter-spacing:-.06em;color:var(--g)}
.tp .md .meta{position:absolute;right:20px;top:24px;text-align:right;font-size:10.5px;line-height:1.5;color:#555}
.tp .md .meta b{display:block;color:#111;font-size:12px}
.tp .md .q3{position:absolute;left:20px;right:20px;top:100px;margin:0;font-size:12px;line-height:1.5;color:#666}
.tp .md .a3{position:absolute;left:20px;right:20px;top:142px;margin:0;font-family:var(--f-mdx);font-weight:900;font-size:27px;line-height:1.16;letter-spacing:-.045em}
.tp .md .pq{position:absolute;left:0;right:0;bottom:0;height:158px;overflow:hidden}
.tp .md .pq img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1) contrast(1.05)}
.tp .md .pq::after{content:"";position:absolute;inset:0;background:var(--g);mix-blend-mode:multiply;opacity:.55}
.tp .md .hk3{position:absolute;left:20px;right:20px;top:240px;display:grid;grid-template-columns:62px 1fr;gap:8px;font-size:10.5px;line-height:1.55;border-top:1px solid #111;padding-top:8px}
.tp .md .hk3 span{color:#777}
.tp .md .pn3{position:absolute;right:14px;bottom:12px;z-index:1;background:#fff;font-size:10px;font-weight:700;padding:2px 6px}
.tp .md.col .big3{position:absolute;left:20px;right:20px;top:26px;margin:0;font-family:var(--f-mdx);font-weight:900;font-size:34px;line-height:1.1;letter-spacing:-.05em}
.tp .md.col .big3 em{font-style:normal;color:var(--g)}
.tp .md.col dl{position:absolute;left:20px;right:20px;top:150px;margin:0;display:grid;grid-template-columns:70px 1fr;font-size:11px}
.tp .md.col dt,.tp .md.col dd{margin:0;padding:6px 0;border-top:1px solid #e3e3e3}
.tp .md.col dt{color:#777}
.tp .md.col dd{font-weight:500}
.tp .md.col .hl{position:absolute;left:20px;right:110px;bottom:24px;margin:0;font-family:var(--f-hand);font-size:20px;line-height:1.15}
.tp .md.col .seal{right:16px;bottom:18px;width:84px;height:84px}
.tp .acc-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tp .btn{font:inherit;font-size:13px;border:1.5px solid var(--ink);background:var(--ink);color:var(--paper);padding:6px 14px;cursor:pointer}
.tp .btn.ghost{background:var(--paper);color:var(--ink)}
/* 접힌 상태 */
.tp .acc.closed{justify-content:flex-start}
.tp .acc.closed .fd:not(:first-child){flex-basis:0;width:0;min-width:0;opacity:0;overflow:hidden;border:0}
.tp .acc.closed .fd:first-child{transform:none;box-shadow:0 2px 0 #e4ded3,0 4px 0 #ddd6ca,0 6px 0 #d5cdc0,0 14px 24px rgba(40,30,20,.16)}
.tp .acc .fd{transition:transform .5s ease,flex-basis .6s ease,opacity .5s ease,box-shadow .5s ease}
/* 다 펼치기: 두 줄로 꺾여 도는 한 줄 */
.tp .snake{display:none;position:relative;overflow:hidden}
.tp .snake.show{display:block}
.tp .snake .in{position:absolute;left:0;top:0;width:880px;display:grid;grid-template-columns:repeat(4,220px);transform-origin:0 0}
.tp .snake .in .fd{transform:none!important;box-shadow:none}
.tp .snake .in .fd:nth-child(n+5){border-top:1px dashed rgba(60,45,30,.25)}
@media (prefers-reduced-motion:reduce){.tp .fd,.tp .acc .fd,.tp .pk .mini{transition:none}.tp .fade{animation:none}}
.tp [hidden]{display:none!important}
.tp .out{font-size:12.5px;color:var(--sub);margin:0}
.tp .nb .wg.sm .wr{grid-template-columns:repeat(12,20px)}
.tp .nb .wg.sm .wr i{height:26px;font-size:22px;line-height:28px}
.tp .md .band3 .cl{min-width:0;overflow:hidden;text-overflow:ellipsis;margin-right:8px}
.tp .md .band3 small{flex:none}
/* ── A. 기록 엽서첩 ───────────────────────────── */
.tp .pb{background:var(--grain),var(--fiber),radial-gradient(120% 80% at 85% 0,rgba(255,255,255,.55),transparent 60%),radial-gradient(70% 40% at 15% 100%,rgba(150,120,80,.10),transparent 70%),var(--aged);color:#221f1b;font-family:var(--f-book)}
.tp .pb .tw{font-family:var(--tw);letter-spacing:.06em;color:#5f5547}
.tp .pb .top{position:absolute;left:22px;right:22px;top:18px;margin:0;display:flex;justify-content:space-between;font-size:9.5px;border-bottom:1px dashed rgba(60,50,40,.3);padding-bottom:7px}
.tp .pb .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--chc);margin-right:6px;vertical-align:1px}
.tp .pb[data-ch=LIVE]{--chc:var(--live)}.tp .pb[data-ch=BUILD]{--chc:var(--build)}.tp .pb[data-ch=SHIP]{--chc:var(--ship)}


.tp .pb .trio{position:absolute;left:22px;right:22px;top:196px;display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.tp .pb .trio span{display:block}.tp .pb .trio svg{width:100%;height:auto;max-height:none;margin:0;display:block}
.tp .pb .blk{position:absolute;left:24px;bottom:22px;margin:0;display:flex;flex-direction:column;font-size:10px;line-height:1.55}
.tp .pb .blk b{font-weight:400;letter-spacing:.16em;color:#2b2722}
.tp .pb.pc .pst{position:absolute;right:16px;top:40px;width:104px;height:88px}
.tp .pb.pc .pst svg{width:100%;height:100%;max-height:none;margin:0;display:block}
.tp .pb .pq{position:absolute;left:24px;right:132px;top:48px;margin:0;font-size:11.5px;line-height:1.55;color:#5a5146}
.tp .pb .pa{position:absolute;left:24px;right:22px;top:138px;margin:0;font-size:23px;line-height:1.38;font-weight:700;letter-spacing:-.01em;color:#1f1c18}
.tp .pb .pa.empty{color:#9a8f80;font-weight:400;font-size:18px}
.tp .pb .addr{position:absolute;left:24px;right:22px;top:262px;display:flex;flex-direction:column;gap:8px}
.tp .pb .addr p{margin:0;display:flex;align-items:baseline;gap:10px;border-bottom:1px solid rgba(60,50,40,.28);padding-bottom:3px;font-size:12.5px;color:#2b2722;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp .pb .addr span{font-family:var(--tw);font-size:9px;letter-spacing:.1em;color:#7a6f60;width:34px;flex:none}
.tp .pb .hk{position:absolute;left:24px;right:118px;bottom:22px;margin:0;font-size:10.5px;line-height:1.55;color:#4a443c}
.tp .pb .hk .tw{display:block;font-size:8.5px;margin-bottom:3px}
.tp .pb .pf{position:absolute;right:20px;bottom:20px;width:86px;height:98px;margin:0;background:#fbfaf7;padding:4px 4px 12px;box-shadow:0 1px 2px rgba(0,0,0,.14),0 6px 12px -6px rgba(40,30,20,.3);transform:rotate(3deg)}
.tp .pb .pf img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.88) sepia(.06)}
.tp .pb.lt .lt1{position:absolute;left:24px;right:24px;top:56px;margin:0;font-size:20px;line-height:1.5;font-weight:700}
.tp .pb.lt .lt2{position:absolute;left:24px;right:24px;top:160px;margin:0;font-size:15px;line-height:1.7;color:#2b2722}
.tp .pb.lt .lt3{position:absolute;left:24px;right:14px;top:228px;margin:0;font-size:13px;color:#5a5146;text-align:right}
.tp .pb.lt .lt3 .stamp{position:relative;display:inline-block;vertical-align:middle}
.tp .pb.lt .col{position:absolute;left:24px;right:24px;top:292px;margin:0;display:grid;grid-template-columns:70px 1fr;gap:5px 8px;font-size:9.5px;border-top:1px dashed rgba(60,50,40,.3);padding-top:10px}
.tp .pb.lt .col dd{margin:0;font-family:var(--f-book);letter-spacing:0;font-size:11.5px;color:#2b2722}
.tp .pb.lt .nx{position:absolute;left:24px;bottom:22px;margin:0;font-size:12px;color:#7a6f60}
/* ── B. 원고지 공책을 기록장 결로 (.fx) ─────────── */
.tp.fx{--pen:#2f3e52;--red:#a2533a}
.tp.fx .nb,.tp.fx .nc{background:var(--grain),var(--fiber),radial-gradient(120% 80% at 85% 0,rgba(255,255,255,.5),transparent 60%),var(--aged)}
.tp.fx .nc .spine{background:#c9bda6;box-shadow:inset -2px 0 3px rgba(60,40,20,.12)}
.tp.fx .nc .spine::after{border-left-color:rgba(90,70,40,.35)}
.tp.fx .nc .lab{background:#fbf8f0;outline-color:rgba(60,50,40,.22)}
.tp.fx .nc .lab small,.tp.fx .nc .no,.tp.fx .nc .bt,.tp.fx .nb .hd{font-family:var(--tw);letter-spacing:.06em}
.tp.fx .nb{--wl:#c39235}
.tp.fx .nb .wg{background:rgba(255,255,255,.55)}
.tp.fx .nb .q b{color:#a2533a}
.tp.fx .nb .ph{background:#fbfaf7}
.tp.fx .nb .ph img{filter:saturate(.88) sepia(.06)}
.tp.fx .nb .ph::before,.tp.fx .nb .ph::after{background:#c9bda6}
.tp.fx .nb .hk{border-left-color:#c39235}
.tp.fx .nb .hd{border-bottom-style:dashed;border-bottom-color:rgba(60,50,40,.3)}
/* 엽서첩 표지: 고른 엽서 하나 */
.tp .pb.cov .pt{position:absolute;left:24px;right:24px;top:46px;margin:0;font-family:"Nanum Myeongjo",var(--f-book);font-weight:800;font-size:15px;letter-spacing:.02em}
.tp .pb.cov .ps{position:absolute;left:24px;right:24px;top:68px;margin:0;font-size:11.5px;color:#5a5146}
.tp .pb.cov .cst{position:absolute;left:50%;top:100px;width:168px;height:140px;margin-left:-84px}
.tp .pb.cov .cst svg{width:100%;height:100%;max-height:none;margin:0;display:block}
.tp .pb.cov .cq{position:absolute;left:24px;right:24px;top:252px;margin:0;font-size:10.5px;color:#5a5146;line-height:1.5}
.tp .pb.cov .cq .tw{display:block;font-size:9px;margin-bottom:2px}
.tp .pb.cov .ca{position:absolute;left:24px;right:24px;top:288px;margin:0;font-family:"Nanum Myeongjo",var(--f-book);font-weight:800;font-size:25px;line-height:1.3;letter-spacing:-.01em;color:#1f1c18}
.tp .pb.cov .blk{bottom:20px}
.tp .stage .sh .tw{font-family:var(--tw);font-size:10px;letter-spacing:.1em;color:var(--muted)}
/* 표지 엽서 고르기 */
.tp .cvp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:4px 2px 6px}
.tp .cv{all:unset;box-sizing:border-box;cursor:pointer;position:relative;display:flex;flex-direction:column;gap:6px;min-width:0;aspect-ratio:3/4;padding:8px 8px 9px;border-radius:2px;color:#1f1c18;
  background:var(--grain),var(--fiber),radial-gradient(120% 80% at 90% 0,rgba(255,255,255,.55),transparent 60%),var(--aged);
  box-shadow:0 1px 0 rgba(60,45,30,.08),0 8px 18px -12px rgba(60,45,30,.45);transform:rotate(-1.4deg);transition:transform .25s ease,box-shadow .25s ease}
.tp .cv:nth-child(2){transform:rotate(1deg) translateY(3px)}.tp .cv:nth-child(3){transform:rotate(-.5deg)}
.tp .cv[data-ch=LIVE]{--chc:var(--live)}.tp .cv[data-ch=BUILD]{--chc:var(--build)}.tp .cv[data-ch=SHIP]{--chc:var(--ship)}
.tp .cv .cs{align-self:flex-end;width:52px;height:43px;margin:-3px -3px -4px 0}
.tp .cv .cs svg{width:100%;height:100%;max-height:none;margin:0;display:block}
.tp .cv .ck{font-family:var(--tw);font-size:9.5px;letter-spacing:.1em;color:#5f5547;display:flex;align-items:center}
.tp .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--chc);margin-right:5px;flex:none}
.tp .cv .ca2{flex:1;font-family:var(--f-book);font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.tp .cv .ca2>i{font-style:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.tp .cv .cm{font-family:var(--tw);font-size:9px;letter-spacing:.08em;color:#7a6f60;border-top:1px solid rgba(60,50,40,.25);padding-top:4px}
.tp .cv[aria-pressed="true"]{transform:rotate(0) translateY(-6px);box-shadow:0 0 0 2px var(--fg),0 14px 24px -12px rgba(60,45,30,.6)}
.tp .cv[aria-pressed="true"] .cm{color:#a2533a}
.tp .cv[aria-pressed="true"] .cm::before{content:"✓ "}
.tp .cv:disabled{cursor:default;background:transparent;box-shadow:none;outline:1.5px dashed var(--line);outline-offset:-1.5px;color:var(--muted)}
.tp .cv:disabled .cs,.tp .cv:disabled .cm{opacity:.35}
.tp .cv:focus-visible{outline:2px solid var(--fg);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.tp .cv{transition:none}}
/* 표지: 책장 한 칸 도장 */
.tp .pb.cov .ct{position:absolute;left:24px;right:24px;top:52px;margin:0;font-family:"Nanum Myeongjo",var(--f-book);font-weight:800;font-size:34px;line-height:1.2;letter-spacing:-.01em;color:#1f1c18}
.tp .pb.cov .cst{left:auto;right:22px;margin:0;top:172px;width:150px;height:126px}
.tp .pb.cov .cw{position:absolute;left:24px;right:24px;top:314px;margin:0;font-size:13px;line-height:1.55;color:#4a443c}
/* 혜경의 메모: 엽서 위에 테이프로 따로 붙인 쪽지 */
.tp .pb .memo{position:absolute;left:18px;bottom:24px;width:156px;padding:14px 12px 11px;background:#fbfaf6;
  box-shadow:0 1px 1px rgba(0,0,0,.08),0 6px 12px -6px rgba(40,30,20,.35);transform:rotate(-2.5deg);font-family:var(--f-book)}
.tp .pb .memo .tp1{position:absolute;top:-8px;left:50%;width:58px;height:16px;margin-left:-29px;background:rgba(239,201,74,.6);transform:rotate(4deg)}
.tp .pb .memo span{display:block;font-size:9.5px;color:#7a6f60;margin-bottom:3px}
.tp .pb .memo p{margin:0;font-size:11px;line-height:18px;color:#2f3e52}
/* ── 실제 엽서 세 장 ───────────────────────────── */
.tp .pack{display:flex;flex-direction:column;gap:18px}
.tp .band{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--grain),linear-gradient(#cdb48c,#c4a97f);color:#3a2f22;border-radius:2px;box-shadow:0 6px 14px -10px rgba(60,40,20,.6)}
.tp .band .bs{width:58px;height:48px;flex:none}.tp .band .bs svg{width:100%;height:100%;max-height:none;margin:0;display:block}
.tp .band p{margin:0;display:flex;flex-direction:column;gap:2px}
.tp .band b{font-family:var(--f-book);font-size:15px}
.tp .band .tw{font-family:var(--tw);font-size:10px;letter-spacing:.06em;color:#5a4a36}
.tp .pcw{display:flex;flex-direction:column;gap:8px}
.tp .pcd{all:unset;box-sizing:border-box;display:block;width:100%;cursor:pointer;position:relative;perspective:1600px;-webkit-tap-highlight-color:transparent}
.tp .pcd .inner{position:absolute;left:0;top:0;width:480px;height:320px;transform-origin:0 0;transform:scale(var(--s,.7));transform-style:preserve-3d}
.tp .pcd .face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:3px;overflow:hidden;transition:transform .6s cubic-bezier(.3,.7,.2,1);
  box-shadow:0 1px 0 rgba(60,45,30,.08),0 14px 26px -16px rgba(60,45,30,.55)}
.tp .pcd .front{transform:rotateY(180deg)}
.tp .pcd.flipped .back{transform:rotateY(-180deg)}
.tp .pcd.flipped .front{transform:rotateY(0)}
.tp .pcd .front .fn{aspect-ratio:auto;height:100%;max-height:none;border-radius:0;box-shadow:none}
.tp .pcd .front .fn-tx{font-size:10.5px}
.tp .pcd:focus-visible .face{outline:2px solid var(--fg);outline-offset:3px}
.tp .back{display:flex;color:#1f1c18;background:var(--grain),var(--fiber),radial-gradient(120% 80% at 85% 0,rgba(255,255,255,.55),transparent 60%),var(--aged)}
.tp .back[data-ch=LIVE]{--chc:var(--live)}.tp .back[data-ch=BUILD]{--chc:var(--build)}.tp .back[data-ch=SHIP]{--chc:var(--ship)}
.tp .back .msg{position:relative;width:290px;flex:none;padding:22px 16px 0 22px}
.tp .back .lab{margin:0 0 8px;font-family:var(--tw);font-size:10px;letter-spacing:.08em;color:#5f5547;display:flex;align-items:center}
.tp .back .q{margin:0 0 8px;font-family:var(--f-book);font-size:11px;line-height:1.5;color:#5a5146}
.tp .back .pa{margin:0;font-family:"Nanum Myeongjo",var(--f-book);font-weight:800;font-size:24px;line-height:1.32;letter-spacing:-.01em;overflow-wrap:anywhere}
.tp .back .pa.empty{color:#9a8f80;font-weight:400;font-size:18px}
.tp .back .memo{position:absolute;left:18px;bottom:16px;width:178px;padding:12px 11px 9px;background:#fbfaf6;box-shadow:0 1px 1px rgba(0,0,0,.08),0 6px 12px -6px rgba(40,30,20,.35);transform:rotate(-2.5deg);font-family:var(--f-book)}
.tp .back .memo .tp1{position:absolute;top:-8px;left:50%;width:58px;height:15px;margin-left:-29px;background:rgba(239,201,74,.6);transform:rotate(4deg)}
.tp .back .memo span{display:block;font-size:9px;color:#7a6f60;margin-bottom:2px}
.tp .back .memo p{margin:0;font-size:10.5px;line-height:1.6;color:#2f3e52;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.tp .back .adr{position:relative;flex:1;margin:24px 0 24px;border-left:1.5px dashed rgba(60,50,40,.3);padding:0 14px}
.tp .back .pst{position:absolute;right:8px;top:-6px;width:82px;height:96px;padding:4px;background:#fbfaf6;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 1px 1.5px rgba(40,30,20,.25));
  -webkit-mask:linear-gradient(#000 0 0) content-box,radial-gradient(circle 2.8px,#0000 96%,#000) -4px -4px/8px 8px;mask:linear-gradient(#000 0 0) content-box,radial-gradient(circle 2.8px,#0000 96%,#000) -4px -4px/8px 8px}
.tp .back .pst .pf{display:block;padding:6px;outline:1px solid rgba(184,67,47,.35);outline-offset:-4px}
.tp .back .pst .stamp{position:relative;display:block}
.tp .back .pmk{position:absolute;right:62px;top:34px;width:96px;height:52px;color:rgba(58,53,46,.7);transform:rotate(-7deg);mix-blend-mode:multiply}
.tp .back .pst svg{width:60px;height:60px;display:block}
.tp .back .adr p{margin:0;position:absolute;left:14px;right:12px;display:flex;align-items:baseline;gap:10px;border-bottom:1px solid rgba(60,50,40,.3);padding-bottom:4px;font-family:var(--f-book);font-size:13.5px;color:#2b2722;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp .back .adr p:nth-of-type(1){top:122px}.tp .back .adr p:nth-of-type(2){top:160px}
.tp .back .adr small{font-family:var(--tw);font-size:9px;letter-spacing:.08em;color:#7a6f60;width:32px;flex:none}
.tp .back .adr p.dt{top:auto;bottom:4px;border:0;display:block;font-family:var(--tw);font-size:9.5px;line-height:1.5;color:#6b6152;letter-spacing:.06em}
.tp .back .pm{position:absolute;right:8px;bottom:2px;width:58px;height:58px}
.tp .back .pm .stamp,.tp .band .bs .stamp{position:relative;display:block}
.tp .pct{display:flex;justify-content:space-between;align-items:center;gap:8px}
.tp .pct .tw{font-family:var(--tw);font-size:10.5px;letter-spacing:.06em;color:var(--muted)}
.tp .btn.sm{font-size:12.5px;padding:5px 10px}
.tp .btn.saveall{align-self:stretch;padding:11px 14px;font-size:14.5px;background:var(--paper);color:var(--ink)}
.savedlg{position:fixed;inset:0;z-index:50;background:rgba(20,16,12,.72);display:grid;place-items:center;padding:16px}
.savedlg .in{max-width:440px;width:100%;max-height:92dvh;overflow:auto;background:#f4f1ea;border-radius:4px;padding:14px;display:flex;flex-direction:column;gap:10px;color:#1f1c18}
.savedlg img{width:100%;display:block;-webkit-touch-callout:default}
.savedlg p{margin:0;font-size:14px}
.savedlg .row{display:flex;gap:8px}
.savedlg .btn{font:inherit;font-size:14px;border:1.5px solid #1f1c18;background:#1f1c18;color:#f4f1ea;padding:9px 14px;text-decoration:none;cursor:pointer;flex:1;text-align:center}
.savedlg .btn.ghost{background:transparent;color:#1f1c18}
@media (prefers-reduced-motion:reduce){.tp .pcd .face{transition:none}}
/* 앞면: 도장만 크게 (FRONT="stamp") */
.tp .pcd .front.fs{background:var(--grain),var(--fiber),radial-gradient(120% 90% at 85% 15%,rgba(255,255,255,.55),transparent 60%),var(--aged)}
.tp .front.fs .fst{position:absolute;left:115px;top:46px;width:250px;height:210px}
.tp .front.fs .fst svg{width:100%;height:100%;display:block;overflow:visible}
.tp .front.fs .fstx{position:absolute;left:0;right:0;bottom:16px;margin:0;text-align:center;white-space:nowrap;font-family:var(--tw);font-size:10.5px;line-height:1.55;letter-spacing:.03em;color:#3a352e}
.tp .front.fs .fstx b{font-weight:400;letter-spacing:.14em}
.tp .front.fs .fsk{position:absolute;left:22px;top:18px;margin:0;font-family:var(--f-book);font-size:12px;color:#5a5146}
.tp .front.fs .fst .fn-st{width:100%;height:100%;max-height:none;margin:0}
.tp .pct .acts{display:flex;gap:6px}
.tp .fpk{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:2px 0 6px}
.tp .fpi{all:unset;box-sizing:border-box;width:100%;aspect-ratio:6/5;padding:6px;border-radius:3px;cursor:pointer;scroll-snap-align:start;
  background:var(--grain),var(--aged);border:1.5px solid transparent;box-shadow:0 1px 3px rgba(40,30,20,.18)}
.tp .fpi[aria-pressed=true]{border-color:var(--ink)}
.tp .fpi:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.tp .fpi svg{width:100%;height:100%;display:block;overflow:visible;max-height:none;margin:0}
/* 엽서 세 장: 옆으로 넘기기 */
.tp .rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:2px 16px 6px;scrollbar-width:none}
.tp .rail::-webkit-scrollbar{display:none}
.tp .rail .pcw{flex:0 0 90%;scroll-snap-align:center}
.tp .cheer{margin:2px 0 0;font-family:var(--f-book);font-size:14.5px;line-height:1.6;color:var(--fg)}
.tp .cheer b{display:block;font-weight:400;font-size:12px;color:var(--muted);letter-spacing:.04em}
.tp .lnk{all:unset;cursor:pointer;font-size:13px;color:var(--muted);text-decoration:underline;text-underline-offset:3px;padding:6px 0}
.tp .lnk:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.tp .fpw{display:flex;flex-direction:column;gap:8px;border-top:1px dashed var(--line);padding-top:10px}
.tp .fph{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.tp .fph p{margin:0;flex:1;font-size:14px;color:var(--fg)}
.tp .fpi{display:flex!important;flex-direction:column;align-items:center;gap:2px;aspect-ratio:auto!important;padding:6px 4px 4px!important}
.tp .fpi svg{height:44px!important}
.tp .fpi span{font-size:11px;color:#3a352e;line-height:1.2}
.tp .back .adr p.lg{font-size:11.5px}.tp .back .adr p.lg2{font-size:9.5px}
