/* Sakura Hanami — Anime: panel manga pastel */
.tpl-sakura{
  --bg:#fff6f9;--bg-alt:#ffecf2;--surface:#ffffff;--text:#5a3d55;--muted:#9a7a93;--heading:#3f2a44;
  --primary:#ff6f9c;--accent:#8a6bd1;--line:rgba(63,42,68,.85);
  --btn-bg:#ff6f9c;--btn-text:#fff;--btn-radius:14px;
  --cover-bg:#ffe1ea;--cover-text:#3f2a44;
  --cover-overlay:linear-gradient(170deg,rgba(255,225,234,.55),rgba(232,220,255,.8) 60%,rgba(255,246,249,.96));
  --hero-overlay:linear-gradient(180deg,rgba(255,225,234,.35),rgba(255,246,249,.94) 80%);
  --cover-pattern:radial-gradient(rgba(255,111,156,.28) 1.3px,transparent 1.6px);--pattern-size:14px 14px;
  --f-display:'Mochiy Pop One',sans-serif;--f-script:'Mochiy Pop One',sans-serif;--f-body:'Zen Maru Gothic',sans-serif;
  --radius:18px;--shadow:6px 6px 0 #ffc2d4;
  --card-grad:linear-gradient(135deg,#ff8fb1,#b49cff);
  --fx1:#ffb7c9;--fx2:#ffd6e1;--fx3:#ff9ab6;
  --r-ease:cubic-bezier(.34,1.56,.64,1);--r-scale:.6;--r-dur:.9s;
}
.tpl-sakura .cover::after{content:"";position:absolute;inset:-60%;z-index:1;background:repeating-conic-gradient(from 0deg at 50% 50%,transparent 0deg 5deg,rgba(255,255,255,.55) 5deg 6deg);animation:skSpin 90s linear infinite;pointer-events:none;-webkit-mask:radial-gradient(circle,transparent 22%,#000 60%);mask:radial-gradient(circle,transparent 22%,#000 60%)}
@keyframes skSpin{to{transform:rotate(360deg)}}
.tpl-sakura .cover__art{position:absolute;top:-120px;left:-30px;width:110%;max-width:none;color:#ff8fab;margin:0}
.tpl-sakura .cover__art .orn{stroke:#7a4a6b}
.tpl-sakura .cover__content{padding-top:70px}
.tpl-sakura .cover__kicker{display:inline-block;background:#3f2a44;color:#fff;padding:5px 14px;border-radius:99px;letter-spacing:.14em;font-size:.7rem;transform:rotate(-3deg)}
.tpl-sakura .cover__names,.tpl-sakura .hero__names{font-size:clamp(2.8rem,13vw,4rem);color:#3f2a44;-webkit-text-stroke:0;text-shadow:3px 3px 0 #ffc2d4,6px 6px 0 rgba(138,107,209,.35)}
.tpl-sakura .cover__names i,.tpl-sakura .hero__names i{color:var(--primary);text-shadow:none;font-size:.6em}
.tpl-sakura .cover__guest{background:#fff;border:2.5px solid #3f2a44;border-radius:22px;box-shadow:5px 5px 0 #ffc2d4;position:relative}
.tpl-sakura .cover__guest::after{content:"";position:absolute;left:40px;bottom:-14px;width:22px;height:22px;background:#fff;border-right:2.5px solid #3f2a44;border-bottom:2.5px solid #3f2a44;transform:rotate(45deg) skew(10deg,10deg)}
.tpl-sakura .btn{border:2.5px solid #3f2a44;box-shadow:4px 4px 0 #3f2a44;font-weight:700}
.tpl-sakura .btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 #3f2a44}
.tpl-sakura .btn--ghost{background:#fff;color:#3f2a44}
.tpl-sakura .btn--open::after{display:none}
.tpl-sakura .inv-main{counter-reset:ch}
.tpl-sakura .sec__head{counter-increment:ch}
.tpl-sakura .sec__head::before{content:"Chapter " counter(ch,decimal-leading-zero);display:inline-block;margin-bottom:10px;font:700 .68rem/1 var(--f-body);letter-spacing:.12em;background:#3f2a44;color:#fff;padding:6px 12px;border-radius:99px;transform:rotate(-4deg)}
.tpl-sakura .sec__kicker{letter-spacing:.1em;text-transform:none;font-weight:700}
.tpl-sakura .sec__title{display:inline-block;background:#fff;border:3px solid #3f2a44;border-radius:16px;padding:8px 20px 10px;box-shadow:6px 6px 0 var(--primary);font-size:clamp(1.7rem,8vw,2.2rem);transform:rotate(-1.5deg)}
.tpl-sakura .sec:nth-of-type(even){background-color:var(--bg-alt);background-image:radial-gradient(rgba(255,111,156,.16) 1.2px,transparent 1.5px);background-size:16px 16px}
.tpl-sakura .card,.tpl-sakura .event,.tpl-sakura .cd,.tpl-sakura .wish,.tpl-sakura .wl__item,.tpl-sakura .ticket{border:2.5px solid #3f2a44;box-shadow:6px 6px 0 #ffc2d4}
.tpl-sakura .quote{position:relative;background:#fff;border:3px solid #3f2a44;border-radius:28px;padding:26px 22px;font-family:var(--f-body);font-style:normal;font-weight:500;font-size:1.05rem;box-shadow:6px 6px 0 #c9b6ff}
.tpl-sakura .quote::after{content:"";position:absolute;right:48px;bottom:-16px;width:26px;height:26px;background:#fff;border-right:3px solid #3f2a44;border-bottom:3px solid #3f2a44;transform:rotate(45deg)}
.tpl-sakura .person__frame{transform:rotate(-2deg)}
.tpl-sakura .person:last-child .person__frame{transform:rotate(2deg)}
.tpl-sakura .person__photo,.tpl-sakura .person__mono,.tpl-sakura .person__ill{border-radius:22px;border:3px solid #3f2a44;box-shadow:8px 8px 0 #c9b6ff}
.tpl-sakura .person__nick{font-size:2.1rem;color:var(--primary)}
.tpl-sakura .couple__amp{font-size:2.4rem;width:64px;height:64px;margin:0 auto;display:grid;place-items:center;border-radius:50%;background:var(--primary);color:#fff;border:3px solid #3f2a44}
.tpl-sakura .event__name{font-size:1.7rem}
.tpl-sakura .story__dot{border-color:#3f2a44;background:var(--primary)}
.tpl-sakura .gallery__item{border:2.5px solid #3f2a44;border-radius:14px}
.tpl-sakura .gallery__item:nth-child(odd){transform:rotate(-1.5deg)}
.tpl-sakura .gallery__item:nth-child(even){transform:rotate(1.5deg)}
.tpl-sakura .gallery__item.in{transform:rotate(0)}
.tpl-sakura .film__frame{border:3px solid #3f2a44}
.tpl-sakura .closing__title{color:#3f2a44;text-shadow:3px 3px 0 #ffc2d4}
.tpl-sakura .bank-card{border:2.5px solid #3f2a44;box-shadow:6px 6px 0 #3f2a44}
.tpl-sakura .dock{border:2.5px solid #3f2a44;box-shadow:4px 4px 0 #3f2a44}
.tpl-sakura .field input,.tpl-sakura .field textarea,.tpl-sakura .field select{border:2px solid #3f2a44}
