/* ---------- プレビュー本体（9:16） ---------- */
.pv{position:relative;aspect-ratio:9/16;overflow:hidden;background:#000;
  container-type:size;display:block;isolation:isolate}
.pv img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.pv .ov{position:absolute;inset:0}
.pv .tx{position:absolute;inset:0;padding:8cqw}
.pv .tx *{margin:0}
/* 写真フィルター */
.f-dark img{filter:brightness(.52) saturate(.9)}
.f-darkTop .ov{background:linear-gradient(180deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.15) 46%,rgba(0,0,0,.45) 100%)}
.f-darkBottom .ov{background:linear-gradient(180deg,rgba(0,0,0,0) 38%,rgba(0,0,0,.82) 100%)}
.f-darkRight .ov{background:linear-gradient(270deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.05) 62%)}
.f-soft img{filter:brightness(1.05) saturate(.85)}
.f-soft .ov{background:rgba(255,255,255,.34)}
.f-warm img{filter:saturate(.82) sepia(.16) brightness(1.03)}
.f-mono img{filter:grayscale(1) contrast(1.08)}
.f-cinema img{filter:contrast(1.18) saturate(.72) brightness(.72)}
.f-duo img{filter:grayscale(1) contrast(1.2)}
.f-duo .ov{background:linear-gradient(160deg,#ff4d3d 0%,#1b3a6b 100%);mix-blend-mode:screen;opacity:.55}
.f-riso img{filter:grayscale(1) contrast(1.5) brightness(1.1)}
.f-riso .ov{background:linear-gradient(150deg,#ff5c4d 0%,#1b3a6b 100%);mix-blend-mode:multiply;opacity:.82}
.f-retro img{filter:sepia(.42) saturate(.7) contrast(.92) brightness(1.04)}
.f-retro .ov{background:radial-gradient(120% 100% at 50% 40%,rgba(0,0,0,0) 40%,rgba(60,40,20,.42) 100%)}
.f-neon img{filter:contrast(1.3) saturate(1.5) hue-rotate(-16deg) brightness(.68)}
.f-neon .ov{background:linear-gradient(180deg,rgba(60,0,90,.55),rgba(0,20,60,.6))}
.f-paper img{filter:brightness(1.2) saturate(.4)}
.f-paper .ov{background:rgba(247,242,229,.86)}
.grain::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.16;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence baseFrequency='.9' numOctaves='3'/></filter><rect width='120' height='120' filter='url(%23n)' opacity='.5'/></svg>")}

/* 文字ブロック共通 */
.pv .cp{font-size:8.4cqw;line-height:1.28;font-weight:700;white-space:pre-line;letter-spacing:.02em}
.pv .sb{font-size:3.3cqw;letter-spacing:.22em;opacity:.9;white-space:pre-line}
.pv .bd{font-size:3.5cqw;line-height:1.75;white-space:pre-line;opacity:.94;font-weight:400}
.pv .ft{font-size:3.1cqw;letter-spacing:.06em;opacity:.86;font-weight:500;white-space:pre-line}
.pv .rule{height:.35cqw;width:14cqw;background:currentColor;opacity:.8;border-radius:2px}
.col{display:flex;flex-direction:column}

