:root{--base:#15101F;--panel:#221A33;--bone:#F3EAD7;--orange:#FF8A1E;--mute:#B9AFC4;--line:#3B3150}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--base);color:var(--bone);font-family:-apple-system,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:700;line-height:1.7;font-size:16px;padding:0 16px 120px;max-width:760px;margin:0 auto}
h1{font-size:24px;line-height:1.4;margin:32px 0 8px}
h2{font-size:20px;line-height:1.4;margin:48px 0 8px;padding-top:24px;border-top:1px solid var(--line)}
p.lead{color:var(--mute);font-size:14px;font-weight:400;margin-bottom:8px}
p.tag{display:inline-block;background:var(--orange);color:var(--base);padding:0 16px;border-radius:24px;font-size:14px;margin-top:16px}
.item{background:var(--panel);border-radius:16px;padding:16px;margin-top:24px}
.item h3{font-size:16px;line-height:1.4}
.item .meta{font-size:13px;color:var(--mute);font-weight:400;margin:8px 0 16px}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.vp{position:relative;width:100%;aspect-ratio:3/4;overflow:hidden;border-radius:8px;cursor:zoom-in;background:var(--base)}
.stage{position:absolute;left:0;top:0;width:1080px;height:1440px;transform-origin:0 0}
.rate{display:flex;gap:8px;margin-top:16px}
.rate button{flex:1;min-height:48px;border-radius:8px;border:2px solid var(--mute);background:transparent;color:var(--bone);font:inherit;font-size:20px;cursor:pointer}
.rate button[aria-pressed=true]{background:var(--orange);border-color:var(--orange);color:var(--base)}
.hint{font-size:13px;color:var(--mute);font-weight:400;margin-top:8px}
textarea{width:100%;min-height:120px;margin-top:16px;border-radius:8px;border:2px solid var(--line);background:var(--panel);color:var(--bone);padding:16px;font:inherit;font-size:14px;font-weight:400}
.copy{margin-top:24px;width:100%;min-height:56px;border-radius:8px;border:0;background:var(--orange);color:var(--base);font:inherit;font-size:18px;cursor:pointer}
.out{white-space:pre-wrap;font-weight:400;font-size:14px}
.ov{position:fixed;inset:0;background:rgba(21,16,31,.94);display:flex;align-items:center;justify-content:center;z-index:9;padding:16px;cursor:zoom-out}
.ov .vp{cursor:zoom-out;width:min(100%,560px)}
body.render{padding:0;max-width:none;background:var(--base)}
body.render .stage{position:static}

/* ===== 1080x1440 フレーム本体 ===== */
.fr{position:relative;width:1080px;height:1440px;background:var(--base);color:var(--bone);overflow:hidden;word-break:keep-all;line-break:strict;font-weight:var(--fw,800)}
.fr .title{position:absolute;left:56px;top:96px;font-size:104px;line-height:1.2;letter-spacing:0}
.fr em{font-style:normal;color:var(--orange);font-size:calc(1em * var(--jump,1.3));line-height:1}
.fr .card{position:absolute;width:528px;height:704px;right:56px;bottom:72px;transform:rotate(3deg);border-radius:24px;overflow:hidden;box-shadow:0 0 0 6px var(--bone),0 24px 56px rgba(255,138,30,.35)}
.fr .card img{width:100%;height:100%;display:block;object-fit:cover}
.fr .pl{position:absolute;left:24px;bottom:24px;width:96px;height:96px;border-radius:50%;background:var(--orange);color:var(--base);font-size:48px;line-height:96px;text-align:center;padding-left:6px}
.fr .phone{position:absolute;left:56px;top:96px;width:480px;height:1039px;border-radius:48px;overflow:hidden;box-shadow:0 0 0 6px var(--bone),0 0 48px rgba(255,138,30,.35)}
.fr .phone img{width:100%;display:block}
.fr .ring{position:absolute;border:5px solid var(--orange);border-radius:28px;left:0;top:532px;width:243px;height:183px}
.fr .num{position:absolute;left:576px;top:96px;width:144px;height:144px;border-radius:50%;background:var(--orange);color:var(--base);font-size:96px;line-height:144px;text-align:center}
.fr .stext{position:absolute;left:576px;top:288px;width:448px;font-size:64px;line-height:1.3}
.fr .stext em{display:block;line-height:1.2}
