
:root{--ink:#322a2f;--muted:#74666f;--line:rgba(66,45,56,.12);--shadow:0 22px 64px rgba(90,48,70,.13)}
*{box-sizing:border-box}
html{width:100%;max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;scroll-behavior:auto}
body.home-v16{margin:0;width:100%;max-width:100%;overflow-x:hidden;color:var(--ink);background:#fff8fc;font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;touch-action:pan-x pan-y pinch-zoom}
.home-v16 img{display:block;max-width:100%;height:auto}
.home-v16 a{color:inherit;text-decoration:none}
.home-v16 .v11-wrap{width:min(1060px,calc(100% - 48px));margin-inline:auto;min-width:0}
.home-v16 .v11-header{position:absolute;inset:0 0 auto;z-index:20}
.home-v16 .v11-nav{min-height:70px;display:flex;align-items:center;gap:24px}
.home-v16 .v11-brand{font-family:Georgia,serif;font-size:27px;letter-spacing:.035em}
.home-v16 .v11-navlinks{margin-left:auto;display:flex;gap:22px;font-family:Georgia,serif;font-size:13px;letter-spacing:.075em}
.home-v16 .v11-lang{border:1px solid var(--line);border-radius:999px;padding:7px 28px 7px 12px;background:rgba(255,255,255,.76);color:var(--ink)}
.home-v16 .v11-hero{position:relative;min-height:760px;display:grid;align-items:center;overflow:hidden;background:linear-gradient(90deg,rgba(255,251,253,.97),rgba(255,251,253,.79) 42%,rgba(255,251,253,.10)),url("/soy/assets/images/soy-bg-hero-v22.webp") center/cover no-repeat}
.home-v16 .hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 250px;align-items:center;gap:64px;padding:116px 0 76px}
.home-v16 .hero-copy{max-width:650px;min-width:0}
.home-v16 .hero-eyebrow,.home-v16 .feature-name{font-family:Georgia,serif;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#907985}
.home-v16 h1{margin:8px 0 20px;font-family:Georgia,serif;font-size:112px;font-weight:400;line-height:.9;letter-spacing:-.018em}
.home-v16 .hero-lead{margin:0;max-width:610px;font-family:Georgia,"Noto Serif JP","Yu Mincho",serif;font-size:32px;line-height:1.55;word-break:keep-all}
.home-v16 .hero-sub{margin:20px 0 0;max-width:560px;color:var(--muted);font-size:15px;line-height:1.86}
.home-v16 .hero-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:25px}
.home-v16 .v11-btn{min-height:43px;display:inline-flex;align-items:center;justify-content:center;padding:0 20px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.78);font-size:14px;font-weight:600;white-space:nowrap}
.home-v16 .v11-btn.primary{color:#fff;background:#332a30;box-shadow:0 12px 30px rgba(55,36,47,.18)}
.home-v16 .v11-btn.tiktok::after{content:"↗";margin-left:9px}
.home-v16 .hero-status{margin:16px 0 0;color:#937e89;font-size:11px;letter-spacing:.07em}
.home-v16 .hero-phone{justify-self:center;min-width:0}
.home-v16 .hero-phone-frame,.home-v16 .device-shot.phone{position:relative;width:220px;aspect-ratio:9/19.5;overflow:hidden;border:6px solid #211d20;border-radius:38px;background:#050505;box-shadow:0 28px 70px rgba(74,40,58,.21),0 0 0 1px rgba(255,255,255,.68)}
.home-v16 .hero-phone-frame img,.home-v16 .device-shot img{width:100%;height:100%;object-fit:cover}
 .home-v16 .mirror-glint{
  --soy-glint-delay:0s;
  position:absolute;
  inset:0;
  z-index:5;
  overflow:hidden;
  pointer-events:none;
}
.home-v16 .mirror-glint::before{
  content:"";
  position:absolute;
  left:-92%;
  top:-128%;
  width:54%;
  height:310%;
  background:linear-gradient(
    90deg,
    transparent 0%,
    rgba(255,255,255,.025) 20%,
    rgba(255,249,253,.15) 40%,
    rgba(255,255,255,.46) 50%,
    rgba(255,244,250,.18) 60%,
    rgba(255,255,255,.03) 80%,
    transparent 100%
  );
  filter:blur(4px);
  mix-blend-mode:screen;
  opacity:0;
  transform:translate3d(0,0,0) rotate(-45deg);
  transform-origin:center;
  will-change:transform,opacity;
  animation:soyQuickGlassSweep 8s linear infinite;
  animation-delay:var(--soy-glint-delay);
}
.home-v16 .mirror-glint.strong::before{filter:blur(3px)}
@keyframes soyQuickGlassSweep{
  0%,92.9%{transform:translate3d(0,0,0) rotate(-45deg);opacity:0}
  93%{transform:translate3d(0,0,0) rotate(-45deg);opacity:.12}
  94%{opacity:.72}
  98.8%{transform:translate3d(610%,205%,0) rotate(-45deg);opacity:.64}
  99.2%,100%{transform:translate3d(630%,212%,0) rotate(-45deg);opacity:0}
}
.home-v16 .hero-phone .mirror-glint{--soy-glint-delay:-9.2s}
.home-v16 #feature-1 .mirror-glint{--soy-glint-delay:-2.1s}
.home-v16 #feature-2 .mirror-glint{--soy-glint-delay:-6.0s}
.home-v16 #feature-3 .mirror-glint{--soy-glint-delay:-10.7s}
.home-v16 #feature-4 .mirror-glint{--soy-glint-delay:-3.8s}
.home-v16 #feature-5 .mirror-glint{--soy-glint-delay:-8.0s}
.home-v16 #feature-6 .mirror-glint{--soy-glint-delay:-12.3s}
.home-v16 #soy-full .mirror-glint{--soy-glint-delay:-5.0s}
.home-v16 .hero-glints{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.home-v16 .hero-star{
  --star-x1:24px;
  --star-y1:-18px;
  --star-x2:-10px;
  --star-y2:12px;
  position:absolute;
  width:22px;
  height:22px;
  opacity:0;
  color:rgba(255,255,255,.96);
  filter:drop-shadow(0 0 7px rgba(255,255,255,.78)) drop-shadow(0 0 13px rgba(232,169,207,.46));
  animation:soyStarFloat 6.8s ease-in-out infinite;
}
.home-v16 .hero-star::before,.home-v16 .hero-star::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  background:currentColor;
  transform:translate(-50%,-50%);
  border-radius:999px;
}
.home-v16 .hero-star::before{width:100%;height:1.6px}
.home-v16 .hero-star::after{width:1.6px;height:100%}
.home-v16 .hero-star.s1{left:9%;top:18%;width:25px;height:25px;--star-x1:34px;--star-y1:18px;--star-x2:13px;--star-y2:34px;animation-delay:-1.1s}
.home-v16 .hero-star.s2{left:44%;top:11%;width:19px;height:19px;--star-x1:-28px;--star-y1:31px;--star-x2:-39px;--star-y2:6px;animation-delay:-3.4s}
.home-v16 .hero-star.s3{left:75%;top:22%;width:34px;height:34px;--star-x1:26px;--star-y1:34px;--star-x2:-8px;--star-y2:46px;animation-delay:-2.3s}
.home-v16 .hero-star.s4{left:83%;top:68%;width:23px;height:23px;--star-x1:-39px;--star-y1:-23px;--star-x2:-18px;--star-y2:-42px;animation-delay:-4.8s}
.home-v16 .hero-star.s5{left:28%;top:78%;width:29px;height:29px;--star-x1:31px;--star-y1:-30px;--star-x2:48px;--star-y2:-8px;animation-delay:-.4s}
@keyframes soyStarFloat{
  0%,100%{opacity:0;transform:translate3d(0,0,0) scale(.62) rotate(0deg)}
  20%{opacity:.88;transform:translate3d(var(--star-x1),var(--star-y1),0) scale(1.03) rotate(9deg)}
  45%{opacity:.34;transform:translate3d(var(--star-x2),var(--star-y2),0) scale(.80) rotate(18deg)}
  68%{opacity:1;transform:translate3d(var(--star-x1),var(--star-y1),0) scale(1.16) rotate(27deg)}
  86%{opacity:.20;transform:translate3d(var(--star-x2),var(--star-y2),0) scale(.72) rotate(34deg)}
}
.home-v16 .scroll-hint{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:grid;justify-items:center;gap:6px;font-family:Georgia,serif;font-size:10px;letter-spacing:.16em}
.home-v16 .scroll-hint span{width:1px;height:30px;background:linear-gradient(#735f69,transparent)}
.home-v16 .v11-scene{position:relative;padding:68px 0;overflow:hidden}
.home-v16 #feature-1{background:linear-gradient(90deg,rgba(255,250,253,.91),rgba(255,250,253,.62)),url("/soy/assets/images/soy-bg-mirror-v22.webp") center/cover no-repeat}
.home-v16 #feature-2{background:linear-gradient(90deg,rgba(255,250,253,.80),rgba(255,250,253,.63)),url("/soy/assets/images/soy-bg-photos-v22.webp") center/cover no-repeat}
.home-v16 #feature-3{background:linear-gradient(90deg,rgba(255,250,253,.72),rgba(255,250,253,.86)),url("/soy/assets/images/soy-bg-half-v22.webp") center/cover no-repeat}
.home-v16 #feature-4{background:radial-gradient(circle at 82% 18%,rgba(255,255,255,.96),transparent 31%),linear-gradient(135deg,#fff8fb 0%,#f7e9f5 47%,#f1ebff 100%)}
.home-v16 #feature-5{background:radial-gradient(circle at 18% 74%,rgba(255,255,255,.92),transparent 30%),linear-gradient(125deg,#f6efff 0%,#fff8fb 48%,#fbe7f1 100%)}
.home-v16 #feature-6{background:radial-gradient(circle at 78% 60%,rgba(255,255,255,.94),transparent 32%),linear-gradient(145deg,#fff4f9 0%,#f8efff 52%,#f5ebf5 100%)}
.home-v16 .full-scene{background:radial-gradient(circle at 22% 26%,rgba(255,255,255,.96),transparent 28%),linear-gradient(120deg,#f6e9f4 0%,#fff8fc 48%,#eee8ff 100%)}
.home-v16 .privacy-scene{background:radial-gradient(circle at 80% 22%,rgba(255,255,255,.95),transparent 30%),linear-gradient(140deg,#fff8fb 0%,#f3ecf8 100%)}
.home-v16 .tiktok-scene{background:radial-gradient(circle at 16% 30%,rgba(255,255,255,.96),transparent 31%),linear-gradient(130deg,#f8edfa 0%,#fff8fb 53%,#f7e9f0 100%)}
.home-v16 .store-scene{background:radial-gradient(circle at 86% 42%,rgba(255,255,255,.96),transparent 28%),linear-gradient(135deg,#fff7fb 0%,#f2eaf6 100%)}
.home-v16 .feature-layout,.home-v16 .full-grid{display:grid;grid-template-columns:minmax(0,1fr) 270px;align-items:center;gap:60px}
.home-v16 .feature-layout.reverse .feature-copy{order:2}.home-v16 .feature-layout.reverse .feature-visual{order:1}
.home-v16 .feature-copy,.home-v16 .full-copy{max-width:530px;min-width:0}
.home-v16 .scene-number{margin-bottom:13px;font-family:Georgia,serif;font-size:11px;letter-spacing:.16em;color:#c287a3}
.home-v16 .app-copy{margin-top:7px;font-family:Georgia,serif;font-size:20px;line-height:1.4;color:#584951}
.home-v16 .controlled-title{margin:16px 0 13px;font-family:Georgia,"Noto Serif JP","Yu Mincho",serif;font-size:38px;font-weight:400;line-height:1.34;letter-spacing:-.012em}
.home-v16 .title-line{display:block}
.home-v16 .feature-body{max-width:500px;margin:0;color:var(--muted);font-size:15px;line-height:1.88}
.home-v16 .feature-visual,.home-v16 .full-visual{display:flex;justify-content:center;align-items:center;min-width:0}
.home-v16 .device-shot{position:relative;overflow:hidden;background:#050505}
.home-v16 .device-shot.phone{width:210px}
.home-v16 .device-shot.wide{width:380px;max-width:100%;aspect-ratio:8/5;border-radius:27px;box-shadow:var(--shadow)}
.home-v16 .full-grid{grid-template-columns:270px minmax(0,1fr)}
.home-v16 .full-list{margin:19px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;list-style:none;font-size:14px}
.home-v16 .full-list li{position:relative;padding-left:18px;color:#665860}.home-v16 .full-list li::before{content:"✓";position:absolute;left:0;color:#c26f98}
.home-v16 .purchase-note{margin-top:19px;padding-top:16px;border-top:1px solid var(--line);display:flex;gap:8px 16px;flex-wrap:wrap;font-family:Georgia,serif;font-size:14px}
.home-v16 #feature-2 .feature-visual{position:relative;min-height:360px}.home-v16 #feature-2 .device-shot{position:relative;z-index:3}
.home-v16 .album-mini{position:absolute;width:128px;aspect-ratio:4/5;overflow:hidden;border-radius:17px;box-shadow:0 18px 42px rgba(75,43,59,.18)}
.home-v16 .album-mini img{width:100%;height:100%;object-fit:cover}
.home-v16 .album-mini.a{left:0;top:48px;transform:rotate(-8deg)}.home-v16 .album-mini.b{right:0;top:20px;transform:rotate(8deg)}.home-v16 .album-mini.c{right:10px;bottom:14px;transform:rotate(5deg)}
.home-v16 .privacy-card,.home-v16 .tiktok-card,.home-v16 .store-card-v11{border:1px solid rgba(255,255,255,.84);border-radius:27px;background:rgba(255,255,255,.72);box-shadow:var(--shadow)}
.home-v16 .privacy-card{padding:36px;display:flex;align-items:end;justify-content:space-between;gap:27px}
.home-v16 .tiktok-card{padding:40px;display:grid;grid-template-columns:1fr auto;gap:27px;align-items:center}.home-v16 .tiktok-shine{display:none}
.home-v16 .store-card-v11{padding:23px;display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:19px}
.home-v16 .store-icon-v11{width:70px;border-radius:17px}.home-v16 .store-card-v11 h2{margin:0 0 7px;font-size:21px}.home-v16 .store-card-v11 p{margin:0;color:var(--muted);font-size:14px}.home-v16 .store-badge-v11{width:158px}
.home-v16 .v11-footer{padding:39px 0;color:#6f5568;background:linear-gradient(rgba(251,246,250,.90),rgba(245,240,249,.92)),url('/soy/assets/images/soy-bg-photos-v22.webp') center/cover no-repeat;border-top:1px solid rgba(183,156,186,.26)}
.home-v16 .footer-v11-grid{display:grid;grid-template-columns:1fr auto;gap:27px}.home-v16 .footer-brand{color:#6a4f65;margin-bottom:8px}.home-v16 .footer-v11-grid p{margin:0;color:rgba(111,85,104,.74);font-size:13px}
.home-v16 .footer-v11-links{display:grid;gap:8px;justify-items:end;font-size:13px}.home-v16 .footer-v11-links a{color:#7b5d73}.home-v16 .footer-copy{grid-column:1/-1;padding-top:20px;border-top:1px solid rgba(183,156,186,.24);color:rgba(111,85,104,.60);font-size:11px}
.home-v16 .v11-reveal{opacity:1!important;transform:none!important;transition:none!important}
html[lang="ja"] .home-v16 .hero-lead{font-size:30px}html[lang="ja"] .home-v16 .controlled-title{font-size:35px}
@media(max-width:860px){
  .home-v16 .v11-navlinks{display:none}.home-v16 .v11-lang{margin-left:auto}
  .home-v16 .hero-grid,.home-v16 .feature-layout,.home-v16 .full-grid{grid-template-columns:1fr;gap:32px}
  .home-v16 .hero-grid{padding-top:103px}.home-v16 .hero-phone{justify-self:center}
  .home-v16 .feature-layout.reverse .feature-copy,.home-v16 .feature-layout.reverse .feature-visual{order:initial}
  .home-v16 .feature-copy,.home-v16 .full-copy{max-width:680px}
  .home-v16 .device-shot.wide{width:min(380px,78vw)}
  .home-v16 .privacy-card,.home-v16 .tiktok-card{display:grid;grid-template-columns:1fr;align-items:start}
  .home-v16 #feature-2 .feature-visual{width:min(420px,100%);margin-inline:auto}
}
@media(max-width:620px){
  .home-v16 .v11-wrap{width:calc(100% - 32px)}.home-v16 .v11-nav{min-height:62px}.home-v16 .v11-brand{font-size:23px}.home-v16 .v11-lang{max-width:132px}
  .home-v16 .v11-hero{min-height:auto;background:linear-gradient(180deg,rgba(255,251,253,.86),rgba(255,251,253,.54) 54%,rgba(255,251,253,.22)),url("/soy/assets/images/soy-bg-hero-v22.webp") 64% center/cover no-repeat}
  .home-v16 .hero-grid{padding:88px 0 58px;gap:29px}.home-v16 h1{font-size:82px;margin-bottom:16px}
  .home-v16 .hero-lead{font-size:22px;line-height:1.62}.home-v16 .hero-sub{font-size:14px;line-height:1.8}
  .home-v16 .hero-actions{display:grid;grid-template-columns:1fr;max-width:246px;margin-top:21px}
  .home-v16 .hero-phone-frame{width:190px;border-width:5px;border-radius:33px}.home-v16 .scroll-hint{display:none}.home-v16 .hero-star.s2,.home-v16 .hero-star.s4{display:none}
  .home-v16 .v11-scene{padding:48px 0}.home-v16 .feature-layout,.home-v16 .full-grid{gap:24px}
  .home-v16 .app-copy{font-size:17px}.home-v16 .controlled-title{margin:14px 0 12px;font-size:28px;line-height:1.42}
  .home-v16 .feature-body{font-size:14px;line-height:1.84}.home-v16 .device-shot.phone{width:186px;border-width:5px;border-radius:33px}
  .home-v16 .device-shot.wide{width:min(332px,100%);border-radius:21px}
  .home-v16 #feature-2 .feature-visual{min-height:300px}.home-v16 .album-mini{width:100px;border-radius:13px}
  .home-v16 .album-mini.a{left:0;top:48px}.home-v16 .album-mini.b{right:0;top:23px}.home-v16 .album-mini.c{right:5px;bottom:10px}
  .home-v16 .full-list{grid-template-columns:1fr;font-size:13px}
  .home-v16 .privacy-card,.home-v16 .tiktok-card{padding:23px 19px;border-radius:21px}
  .home-v16 .store-card-v11{grid-template-columns:58px 1fr;padding:18px;gap:14px;border-radius:21px}
  .home-v16 .store-icon-v11{width:58px;border-radius:14px}.home-v16 .store-card-v11 h2{font-size:19px}.home-v16 .store-card-v11 p{font-size:13px}.home-v16 .store-badge-v11{grid-column:1/-1;width:146px}
  .home-v16 .footer-v11-grid{grid-template-columns:1fr}.home-v16 .footer-v11-links{justify-items:start}
  html[lang="ja"] .home-v16 .hero-lead{font-size:21px}html[lang="ja"] .home-v16 .controlled-title{font-size:26px}
}
@media(prefers-reduced-motion:reduce){.home-v16 .mirror-glint::before,.home-v16 .hero-star{animation:none!important}}


/* v15 multilingual title discipline */
.home-v16 .controlled-title{
  font-size:35px;
  font-weight:400;
}
.home-v16 .title-line{
  display:block;
  white-space:nowrap;
}
.home-v16 .app-copy{
  font-weight:400;
}

html[lang="en"] .home-v16 .controlled-title{font-size:34px}
html[lang="ko"] .home-v16 .controlled-title{font-size:34px}
html[lang="zh-cn"] .home-v16 .controlled-title,
html[lang="zh-tw"] .home-v16 .controlled-title{font-size:35px}

html[lang="en"] .home-v16 .hero-lead{font-size:30px}
html[lang="ko"] .home-v16 .hero-lead{font-size:29px}
html[lang="zh-cn"] .home-v16 .hero-lead,
html[lang="zh-tw"] .home-v16 .hero-lead{font-size:30px}

@media(max-width:620px){
  .home-v16 .controlled-title{font-size:26px}
  .home-v16 .title-line{white-space:nowrap}

  html[lang="ja"] .home-v16 .controlled-title{font-size:26px}
  html[lang="en"] .home-v16 .controlled-title{font-size:25px}
  html[lang="ko"] .home-v16 .controlled-title{font-size:25px}
  html[lang="zh-cn"] .home-v16 .controlled-title,
  html[lang="zh-tw"] .home-v16 .controlled-title{font-size:26px}

  html[lang="en"] .home-v16 .hero-lead{font-size:21px}
  html[lang="ko"] .home-v16 .hero-lead{font-size:21px}
  html[lang="zh-cn"] .home-v16 .hero-lead,
  html[lang="zh-tw"] .home-v16 .hero-lead{font-size:21px}
}


/* =========================================================
   SOY. v16 — launch-preparation complete site system
   ========================================================= */
:focus-visible{outline:3px solid #b75f8d;outline-offset:4px}
.skip-link{position:fixed;left:12px;top:12px;z-index:9999;padding:10px 14px;border-radius:999px;background:#2f272c;color:#fff;transform:translateY(-160%)}
.skip-link:focus{transform:none}
.home-v16 .site-mobile-menu,.page-v16 .site-mobile-menu{display:none}
.home-v16 .v11-header{background:linear-gradient(180deg,rgba(255,250,253,.68),transparent)}
.home-v16 .anchor-target{position:absolute;translate:0 -80px}
.home-v16 .about-card-home{display:grid;grid-template-columns:1fr auto;gap:34px;align-items:center;padding:38px;border:1px solid rgba(255,255,255,.84);border-radius:28px;background:rgba(255,255,255,.72);box-shadow:var(--shadow)}
.home-v16 .release-info{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:10px;color:var(--muted);font-size:13px}
.home-v16 .release-pill{display:inline-flex;align-items:center;justify-content:center;min-height:43px;padding:0 20px;border-radius:999px;border:1px solid rgba(61,42,52,.14);background:rgba(255,255,255,.78);font-weight:600;font-size:13px}
.home-v16 .store-actions-v16{display:grid;gap:10px;justify-items:end}
.home-v16 .official-note{font-size:11px;color:#88757f;max-width:190px;text-align:right;line-height:1.5}
.home-v16 .footer-v11-links{grid-template-columns:repeat(2,minmax(0,auto));column-gap:25px}
.home-v16 .v11-navlinks{gap:18px}

/* Content pages */
body.page-v16{margin:0;width:100%;max-width:100%;overflow-x:hidden;color:#322a2f;background:#fff8fc;font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;touch-action:pan-x pan-y pinch-zoom;-webkit-text-size-adjust:100%}
.page-v16 *{box-sizing:border-box}.page-v16 img{max-width:100%;height:auto}.page-v16 a{color:inherit;text-decoration:none}
.page-wrap{width:min(920px,calc(100% - 44px));margin-inline:auto}
.page-v16 .site-header{position:sticky;top:0;z-index:40;border-bottom:1px solid rgba(63,43,53,.08);background:rgba(255,250,253,.87);backdrop-filter:blur(16px)}
.page-v16 .site-nav{min-height:68px;display:flex;align-items:center;gap:22px}
.page-v16 .site-brand{font-family:Georgia,serif;font-size:27px;letter-spacing:.035em}
.page-v16 .site-links{display:flex;gap:18px;margin-left:auto;font-family:Georgia,serif;font-size:13px;letter-spacing:.05em}
.page-v16 .site-lang{border:1px solid rgba(60,42,51,.12);border-radius:999px;padding:7px 28px 7px 11px;background:#fff;color:#322a2f}
.page-v16 .page-hero{position:relative;overflow:hidden;padding:82px 0 54px;background:radial-gradient(circle at 82% 20%,rgba(255,255,255,.96),transparent 32%),linear-gradient(135deg,#fff7fb 0%,#f2eaf8 100%)}
.page-v16 .page-eyebrow{font-family:Georgia,serif;font-size:12px;letter-spacing:.17em;text-transform:uppercase;color:#927c87}
.page-v16 .page-title{margin:10px 0 14px;font-family:Georgia,"Noto Serif JP","Yu Mincho",serif;font-size:clamp(42px,7vw,72px);font-weight:400;line-height:1.1;letter-spacing:-.025em}
.page-v16 .page-intro{max-width:740px;margin:0;color:#6e6068;font-size:17px;line-height:1.9}
.page-v16 .page-meta{margin-top:18px;color:#947f89;font-size:12px;letter-spacing:.04em}
.page-v16 .page-main{padding:58px 0 82px}
.page-v16 .content-card{margin:0 0 22px;padding:30px;border:1px solid rgba(255,255,255,.9);border-radius:24px;background:rgba(255,255,255,.78);box-shadow:0 16px 50px rgba(83,45,65,.08)}
.page-v16 .content-card h2{margin:0 0 12px;font-family:Georgia,"Noto Serif JP","Yu Mincho",serif;font-size:25px;font-weight:400;line-height:1.4}
.page-v16 .content-card p{margin:0;color:#655860;font-size:15px;line-height:1.95;white-space:pre-line}
.page-v16 .content-card p+p{margin-top:12px}
.page-v16 .notice-card{padding:22px 25px;border-left:3px solid #d98aaf;border-radius:18px;background:#fff1f7;color:#66545d;line-height:1.85}
.page-v16 .official-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}
.page-v16 .official-link{padding:19px;border:1px solid rgba(65,44,55,.1);border-radius:18px;background:#fff;box-shadow:0 10px 30px rgba(84,49,66,.06)}
.page-v16 .official-link span{display:block;margin-top:6px;color:#8a7480;font-size:12px}
.page-v16 .faq-list{display:grid;gap:12px}
.page-v16 .faq-list details{border:1px solid rgba(65,44,55,.1);border-radius:18px;background:#fff;overflow:hidden}
.page-v16 .faq-list summary{cursor:pointer;padding:19px 22px;font-weight:650;line-height:1.55}
.page-v16 .faq-list details p{padding:0 22px 20px;margin:0;color:#655860;line-height:1.9}
.page-v16 .support-grid{display:grid;grid-template-columns:1fr .86fr;gap:22px}
.page-v16 .support-panel{padding:29px;border-radius:24px;background:#322a2f;color:#fff;box-shadow:0 18px 50px rgba(58,37,48,.19)}
.page-v16 .support-panel h2{margin:0 0 12px;font-family:Georgia,serif;font-weight:400;font-size:27px}
.page-v16 .support-panel p{color:rgba(255,255,255,.72);line-height:1.8}
.page-v16 .support-button{display:inline-flex;align-items:center;justify-content:center;min-height:47px;margin-top:16px;padding:0 21px;border-radius:999px;background:#fff;color:#322a2f;font-weight:650}
.page-v16 .check-list{margin:15px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.page-v16 .check-list li{position:relative;padding-left:22px;color:#655860;line-height:1.65}.page-v16 .check-list li::before{content:'✓';position:absolute;left:0;color:#c46d98}
.page-v16 .data-table{display:grid;grid-template-columns:minmax(150px,.35fr) 1fr;border-top:1px solid rgba(63,43,53,.1)}
.page-v16 .data-table dt,.page-v16 .data-table dd{margin:0;padding:16px 4px;border-bottom:1px solid rgba(63,43,53,.1);line-height:1.7}.page-v16 .data-table dt{font-weight:650}.page-v16 .data-table dd{color:#655860}
.page-v16 .inline-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:24px}
.page-v16 .page-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 20px;border:1px solid rgba(63,43,53,.13);border-radius:999px;background:#fff;font-weight:650;font-size:14px}
.page-v16 .page-button.primary{background:#322a2f;color:#fff}
.page-v16 .site-footer{padding:42px 0;background:linear-gradient(rgba(251,246,250,.90),rgba(245,240,249,.92)),url('/soy/assets/images/soy-bg-photos-v22.webp') center/cover no-repeat;color:#6f5568;border-top:1px solid rgba(183,156,186,.26)}
.page-v16 .footer-grid-v16{display:grid;grid-template-columns:1fr auto;gap:28px}.page-v16 .footer-brand-v16{font-family:Georgia,serif;font-size:27px;color:#6a4f65}.page-v16 .footer-sub{margin-top:7px;color:rgba(111,85,104,.72);font-size:13px}.page-v16 .footer-links-v16{display:grid;grid-template-columns:repeat(2,minmax(0,auto));gap:8px 24px;justify-items:start;font-size:13px}.page-v16 .footer-links-v16 a{color:#7b5d73}.page-v16 .footer-copy-v16{grid-column:1/-1;padding-top:20px;border-top:1px solid rgba(183,156,186,.24);font-size:11px;color:rgba(111,85,104,.60)}
.page-v16 .external::after{content:'↗';margin-left:7px;font-size:.8em}

/* 404 and gateway */
.gateway-v16{min-height:100svh;display:grid;place-items:center;padding:30px;background:linear-gradient(135deg,#fff7fb,#f7efff)}
.gateway-card-v16{width:min(520px,100%);padding:40px;border-radius:30px;background:rgba(255,255,255,.82);box-shadow:0 26px 80px rgba(88,48,68,.12);text-align:center}.gateway-card-v16 h1{font-family:Georgia,serif;font-size:92px;font-weight:400;margin:5px 0 16px}.gateway-links-v16{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:24px}.gateway-links-v16 a{padding:13px;border-radius:999px;background:#fff;border:1px solid rgba(63,43,53,.1)}

@media(max-width:860px){
 .home-v16 .v11-navlinks,.page-v16 .site-links{display:none}.home-v16 .site-mobile-menu,.page-v16 .site-mobile-menu{display:block;margin-left:auto;position:relative}.home-v16 .site-mobile-menu summary,.page-v16 .site-mobile-menu summary{list-style:none;cursor:pointer;padding:8px 13px;border:1px solid rgba(63,43,53,.12);border-radius:999px;background:rgba(255,255,255,.82);font-size:13px}.home-v16 .site-mobile-menu summary::-webkit-details-marker,.page-v16 .site-mobile-menu summary::-webkit-details-marker{display:none}.home-v16 .mobile-panel,.page-v16 .mobile-panel{position:absolute;right:0;top:48px;width:210px;display:grid;gap:4px;padding:10px;border:1px solid rgba(63,43,53,.1);border-radius:18px;background:#fff;box-shadow:0 18px 50px rgba(71,43,57,.16)}.home-v16 .mobile-panel a,.page-v16 .mobile-panel a{padding:10px 11px;border-radius:11px}.home-v16 .mobile-panel a:hover,.page-v16 .mobile-panel a:hover{background:#fff1f7}.home-v16 .v11-lang{margin-left:0}.page-v16 .site-lang{margin-left:0}.page-v16 .support-grid{grid-template-columns:1fr}.page-v16 .official-links{grid-template-columns:1fr}.home-v16 .about-card-home{grid-template-columns:1fr}.home-v16 .store-actions-v16{justify-items:start}.home-v16 .official-note{text-align:left}
}
@media(max-width:620px){
 .page-wrap{width:calc(100% - 32px)}.page-v16 .site-nav{min-height:62px;gap:10px}.page-v16 .site-brand{font-size:23px}.page-v16 .site-lang{max-width:126px}.page-v16 .page-hero{padding:62px 0 40px}.page-v16 .page-title{font-size:39px}.page-v16 .page-intro{font-size:15px;line-height:1.85}.page-v16 .page-main{padding:40px 0 58px}.page-v16 .content-card{padding:23px 20px;border-radius:20px}.page-v16 .content-card h2{font-size:22px}.page-v16 .content-card p{font-size:14px}.page-v16 .data-table{grid-template-columns:1fr}.page-v16 .data-table dt{padding-bottom:3px;border-bottom:0}.page-v16 .data-table dd{padding-top:3px}.page-v16 .footer-grid-v16{grid-template-columns:1fr}.page-v16 .footer-links-v16{grid-template-columns:1fr}.home-v16 .footer-v11-links{grid-template-columns:1fr}.gateway-card-v16{padding:30px 20px}.gateway-card-v16 h1{font-size:76px}.gateway-links-v16{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.home-v16 .mirror-glint::before,.home-v16 .hero-star{animation:none!important}}


/* v20 — Photo Screensaver: editorial memory orbit.
   The section order/copy remains unchanged; only the existing visual composition is refined. */
@media(min-width:861px){
  .home-v16 #feature-2 .feature-layout{
    grid-template-columns:430px minmax(0,1fr);
    gap:48px;
  }
}
.home-v16 #feature-2 .photo-memory-layout{
  position:relative;
  display:block;
  width:430px;
  max-width:100%;
  min-height:420px;
  margin-inline:auto;
  isolation:isolate;
}
.home-v16 #feature-2 .photo-memory-layout::before{
  content:"";
  position:absolute;
  left:72px;
  top:40px;
  width:300px;
  height:320px;
  z-index:0;
  border-radius:48% 52% 45% 55%;
  background:radial-gradient(circle at 48% 44%,rgba(255,255,255,.88),rgba(255,235,245,.52) 43%,rgba(255,255,255,0) 74%);
  filter:blur(10px);
  pointer-events:none;
}
.home-v16 #feature-2 .photo-memory-layout .device-shot.phone{
  position:absolute;
  left:110px;
  top:0;
  z-index:5;
  width:210px;
}
.home-v16 #feature-2 .album-mini{
  position:absolute;
  width:150px;
  aspect-ratio:4/5;
  z-index:2;
  padding:5px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.92);
  border-radius:20px;
  background:rgba(255,255,255,.90);
  box-shadow:0 22px 52px rgba(75,43,59,.18),0 3px 12px rgba(75,43,59,.08);
  transform-origin:50% 50%;
}
.home-v16 #feature-2 .album-mini img{
  width:100%;
  height:100%;
  border-radius:15px;
  object-fit:cover;
}
.home-v16 #feature-2 .album-mini.a{
  left:0;
  top:54px;
  z-index:2;
  transform:rotate(-8deg);
}
.home-v16 #feature-2 .album-mini.b{
  left:16px;
  right:auto;
  top:auto;
  bottom:0;
  z-index:7;
  width:158px;
  transform:rotate(5deg);
}
.home-v16 #feature-2 .album-mini.c{
  left:auto;
  right:0;
  top:132px;
  bottom:auto;
  z-index:3;
  width:146px;
  transform:rotate(8deg);
}

@media(max-width:860px){
  .home-v16 #feature-2 .feature-layout{grid-template-columns:1fr;gap:32px}
  .home-v16 #feature-2 .photo-memory-layout{width:430px;min-height:420px}
}
@media(max-width:620px){
  .home-v16 #feature-2 .photo-memory-layout{
    width:328px;
    min-height:382px;
  }
  .home-v16 #feature-2 .photo-memory-layout::before{
    left:48px;
    top:34px;
    width:238px;
    height:292px;
  }
  .home-v16 #feature-2 .photo-memory-layout .device-shot.phone{
    left:71px;
    top:0;
    width:186px;
  }
  .home-v16 #feature-2 .album-mini{
    width:108px;
    padding:4px;
    border-radius:16px;
  }
  .home-v16 #feature-2 .album-mini img{border-radius:12px}
  .home-v16 #feature-2 .album-mini.a{
    left:0;
    top:46px;
    transform:rotate(-7deg);
  }
  .home-v16 #feature-2 .album-mini.b{
    left:5px;
    bottom:5px;
    width:116px;
    transform:rotate(5deg);
  }
  .home-v16 #feature-2 .album-mini.c{
    right:0;
    top:128px;
    width:110px;
    transform:rotate(7deg);
  }
}


/* v25 — tighter editorial layout and softer device edges */
.home-v16 .hero-phone-frame,
.home-v16 .device-shot.phone{
  border:3px solid rgba(68,49,61,.52);
  background:#f8f1f6;
  box-shadow:0 24px 58px rgba(74,40,58,.16),0 0 0 1px rgba(255,255,255,.78);
}
.home-v16 .device-shot{background:#f8f1f6}

@media(min-width:861px){
  .home-v16 .hero-grid{
    grid-template-columns:minmax(0,610px) 230px;
    justify-content:center;
    gap:38px;
  }
  .home-v16 .feature-layout{
    grid-template-columns:minmax(0,470px) 230px;
    justify-content:center;
    gap:34px;
  }
  .home-v16 .feature-layout.reverse{
    grid-template-columns:230px minmax(0,470px);
  }
  .home-v16 .feature-copy{
    max-width:470px;
  }
  .home-v16 .feature-visual{
    width:230px;
    justify-self:center;
  }
  .home-v16 .full-grid{
    grid-template-columns:230px minmax(0,470px);
    justify-content:center;
    gap:34px;
  }
  .home-v16 .full-copy{max-width:470px}
  .home-v16 #feature-2 .feature-layout{
    grid-template-columns:400px minmax(0,460px);
    justify-content:center;
    gap:30px;
  }
  .home-v16 #feature-2 .feature-visual{
    width:400px;
  }
  .home-v16 #feature-2 .photo-memory-layout{
    width:400px;
  }
  .home-v16 #feature-2 .photo-memory-layout .device-shot.phone{
    left:95px;
  }
}

@media(max-width:860px){
  .home-v16 .hero-phone-frame,
  .home-v16 .device-shot.phone{border-width:3px}
  .home-v16 .feature-visual{width:auto}
}


/* =========================================================
   SOY. v26 — story page + gentle one-time reveal motion
   ========================================================= */
.home-v16 .story-scene{
  position:relative;
  overflow:hidden;
  padding:clamp(88px,10vw,150px) 0;
  background:
    radial-gradient(circle at 16% 18%,rgba(255,255,255,.92),rgba(255,255,255,0) 34%),
    radial-gradient(circle at 88% 82%,rgba(225,214,238,.52),rgba(225,214,238,0) 36%),
    linear-gradient(135deg,#fffafc 0%,#faf5fa 48%,#f4f1fa 100%);
}
.home-v16 .story-scene::before,
.home-v16 .story-scene::after{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  border-radius:50%;
  filter:blur(1px);
  pointer-events:none;
}
.home-v16 .story-scene::before{
  left:-90px;
  top:20%;
  background:radial-gradient(circle,rgba(243,207,224,.30),rgba(243,207,224,0) 70%);
}
.home-v16 .story-scene::after{
  right:-80px;
  bottom:10%;
  background:radial-gradient(circle,rgba(205,214,243,.32),rgba(205,214,243,0) 70%);
}
.home-v16 .story-wrap{display:grid;place-items:center}
.home-v16 .story-page{
  position:relative;
  width:min(780px,100%);
  padding:clamp(48px,7vw,88px) clamp(34px,7vw,84px) clamp(54px,7vw,94px);
  color:#624b60;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(174,147,171,.23);
  border-radius:4px 26px 26px 4px;
  box-shadow:-12px 0 28px rgba(119,91,115,.07),0 28px 70px rgba(111,83,108,.10);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.home-v16 .story-page::before{
  content:"";
  position:absolute;
  left:20px;
  top:26px;
  bottom:26px;
  width:1px;
  background:linear-gradient(180deg,transparent,rgba(170,142,166,.30) 16%,rgba(170,142,166,.30) 84%,transparent);
}
.home-v16 .story-label{
  margin:0 0 24px;
  color:#9b7e96;
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
}
.home-v16 .story-page h2{
  margin:0;
  color:#594456;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(31px,4.3vw,47px);
  font-weight:400;
  line-height:1.45;
  letter-spacing:.025em;
}
.home-v16 .story-rule{
  display:block;
  width:64px;
  height:1px;
  margin:30px 0 28px;
  background:linear-gradient(90deg,#aa8ca4,rgba(170,140,164,0));
}
.home-v16 .story-body{
  margin:0;
  color:#705b6d;
  font-size:17px;
  line-height:2.18;
  letter-spacing:.055em;
}
.home-v16 .story-body span{display:block}

/* Motion is enabled only when JavaScript is active. Content remains visible otherwise. */
html.soy-motion-ready .home-v16 [data-soy-reveal]{
  opacity:0;
  transition:
    opacity 1.05s cubic-bezier(.22,.61,.36,1),
    transform 1.15s cubic-bezier(.22,.61,.36,1);
  will-change:opacity,transform;
}
html.soy-motion-ready .home-v16 [data-soy-reveal="up"]{transform:translate3d(0,30px,0)}
html.soy-motion-ready .home-v16 [data-soy-reveal="left"]{transform:translate3d(-34px,0,0)}
html.soy-motion-ready .home-v16 [data-soy-reveal="right"]{transform:translate3d(34px,0,0)}
html.soy-motion-ready .home-v16 [data-soy-reveal].is-visible{
  opacity:1;
  transform:translate3d(0,0,0);
}
html.soy-motion-ready .home-v16 .feature-visual[data-soy-reveal],
html.soy-motion-ready .home-v16 .full-visual[data-soy-reveal]{transition-delay:.12s}

@media(max-width:860px){
  .home-v16 .story-scene{padding:74px 0}
  .home-v16 .story-page{width:min(680px,100%)}
  html.soy-motion-ready .home-v16 [data-soy-reveal="left"],
  html.soy-motion-ready .home-v16 [data-soy-reveal="right"]{transform:translate3d(0,24px,0)}
  html.soy-motion-ready .home-v16 [data-soy-reveal].is-visible{transform:translate3d(0,0,0)}
}
@media(max-width:620px){
  .home-v16 .story-scene{padding:58px 0}
  .home-v16 .story-page{
    padding:38px 25px 44px 32px;
    border-radius:3px 20px 20px 3px;
  }
  .home-v16 .story-page::before{left:14px;top:20px;bottom:20px}
  .home-v16 .story-label{margin-bottom:18px;font-size:10px}
  .home-v16 .story-page h2{font-size:29px;line-height:1.55}
  .home-v16 .story-rule{margin:24px 0 22px}
  .home-v16 .story-body{font-size:14px;line-height:2.05;letter-spacing:.035em}
  .home-v16 .story-body span{display:inline}
}
@media(prefers-reduced-motion:reduce){
  html.soy-motion-ready .home-v16 [data-soy-reveal]{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
}

/* =========================================================
   SOY. v27 — desktop spacing, alternating layout, cleaner albums
   ========================================================= */
.home-v16 .feature-layout,
.home-v16 .full-grid{
  grid-template-columns:minmax(0,1fr) 308px;
  gap:44px;
}
.home-v16 .full-grid{grid-template-columns:308px minmax(0,1fr)}
.home-v16 .feature-scene.reverse .feature-copy{order:2}
.home-v16 .feature-scene.reverse .feature-visual{order:1}
.home-v16 .feature-copy,
.home-v16 .full-copy{max-width:500px}
.home-v16 .device-shot.phone{width:238px}

.home-v16 .story-page{
  width:min(820px,100%);
}
.home-v16 .story-page h2{
  max-width:17ch;
  font-size:clamp(30px,4vw,44px);
  line-height:1.38;
  text-wrap:balance;
}
.home-v16 .story-title-line{display:block}
.home-v16 .story-body{
  font-size:18px;
  line-height:2.08;
  letter-spacing:.035em;
}

@media(min-width:861px){
  .home-v16 #feature-2 .feature-layout{
    grid-template-columns:minmax(0,1fr) 470px;
    gap:38px;
  }
}
.home-v16 #feature-2 .photo-memory-layout{
  width:470px;
  min-height:458px;
}
.home-v16 #feature-2 .photo-memory-layout::before{
  left:78px;
  top:42px;
  width:320px;
  height:340px;
}
.home-v16 #feature-2 .photo-memory-layout .device-shot.phone{
  left:118px;
  top:0;
  width:236px;
}
.home-v16 #feature-2 .album-mini{
  width:154px;
  padding:3px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:18px;
  background:rgba(255,255,255,.56);
  box-shadow:0 18px 40px rgba(75,43,59,.15),0 2px 8px rgba(75,43,59,.06);
}
.home-v16 #feature-2 .album-mini img{
  border-radius:14px;
}
.home-v16 #feature-2 .album-mini.a{
  left:4px;
  top:64px;
  transform:rotate(-8deg);
}
.home-v16 #feature-2 .album-mini.b{
  left:18px;
  bottom:6px;
  width:164px;
  transform:rotate(5deg);
}
.home-v16 #feature-2 .album-mini.c{
  right:6px;
  top:138px;
  width:150px;
  transform:rotate(8deg);
}
html.soy-motion-ready .home-v16 #feature-2 .album-mini{
  opacity:0;
  transition:opacity .82s cubic-bezier(.22,.61,.36,1), transform 1.02s cubic-bezier(.22,.61,.36,1);
}
html.soy-motion-ready .home-v16 #feature-2 .album-mini.a{transform:translate3d(-20px,18px,0) rotate(-14deg)}
html.soy-motion-ready .home-v16 #feature-2 .album-mini.b{transform:translate3d(-14px,24px,0) rotate(10deg)}
html.soy-motion-ready .home-v16 #feature-2 .album-mini.c{transform:translate3d(18px,14px,0) rotate(14deg)}
html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.a{
  opacity:1;
  transform:translate3d(0,0,0) rotate(-8deg);
  transition-delay:.18s;
}
html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.b{
  opacity:1;
  transform:translate3d(0,0,0) rotate(5deg);
  transition-delay:.30s;
}
html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.c{
  opacity:1;
  transform:translate3d(0,0,0) rotate(8deg);
  transition-delay:.42s;
}

@media(max-width:860px){
  .home-v16 .hero-grid,
  .home-v16 .feature-layout,
  .home-v16 .full-grid{grid-template-columns:1fr;gap:32px}
  .home-v16 .feature-scene.reverse .feature-copy,
  .home-v16 .feature-scene.reverse .feature-visual{order:initial}
  .home-v16 .story-page{width:min(700px,100%)}
  .home-v16 .story-page h2{max-width:none;font-size:clamp(29px,5.2vw,38px)}
  .home-v16 .story-body{font-size:16px;line-height:1.95}
  .home-v16 #feature-2 .feature-layout{grid-template-columns:1fr;gap:32px}
  .home-v16 #feature-2 .photo-memory-layout{width:430px;min-height:420px}
  .home-v16 #feature-2 .photo-memory-layout::before{left:60px;top:38px;width:286px;height:316px}
  .home-v16 #feature-2 .photo-memory-layout .device-shot.phone{left:92px;width:216px}
}
@media(max-width:620px){
  .home-v16 .device-shot.phone{width:198px}
  .home-v16 .story-page h2{font-size:30px;line-height:1.48}
  .home-v16 .story-body{font-size:15px;line-height:1.95}
  .home-v16 #feature-2 .photo-memory-layout{width:336px;min-height:388px}
  .home-v16 #feature-2 .photo-memory-layout::before{left:46px;top:34px;width:240px;height:286px}
  .home-v16 #feature-2 .photo-memory-layout .device-shot.phone{left:72px;width:194px}
  .home-v16 #feature-2 .album-mini{width:110px;padding:3px;border-radius:15px}
  .home-v16 #feature-2 .album-mini img{border-radius:12px}
  .home-v16 #feature-2 .album-mini.a{left:0;top:48px}
  .home-v16 #feature-2 .album-mini.b{left:6px;bottom:6px;width:118px}
  .home-v16 #feature-2 .album-mini.c{right:0;top:130px;width:108px}
}

/* =========================================================
   SOY. v28 — centered alternating feature pairs + unified album frames
   ========================================================= */
@media(min-width:861px){
  /* Keep each text + visual pair centered as one compact composition. */
  .home-v16 .feature-layout{
    width:min(870px,100%);
    grid-template-columns:minmax(0,500px) 280px;
    justify-content:center;
    column-gap:32px;
  }
  .home-v16 .feature-layout.reverse{
    width:min(870px,100%);
    grid-template-columns:280px minmax(0,500px);
    justify-content:center;
    column-gap:32px;
  }
  .home-v16 .feature-layout .feature-copy,
  .home-v16 .feature-layout.reverse .feature-copy{
    max-width:500px;
  }
  .home-v16 .feature-layout .feature-visual,
  .home-v16 .feature-layout.reverse .feature-visual{
    width:280px;
    justify-self:center;
  }

  /* Photo Screensaver is wider, but the complete pair still stays centered. */
  .home-v16 #feature-2 .feature-layout{
    width:min(960px,100%);
    grid-template-columns:470px minmax(0,430px);
    justify-content:center;
    column-gap:34px;
  }
  .home-v16 #feature-2 .feature-visual{
    width:470px;
  }

  /* 07 continues the alternating rhythm: copy left, iPhone right. */
  .home-v16 .full-grid{
    width:min(870px,100%);
    grid-template-columns:minmax(0,500px) 280px;
    justify-content:center;
    column-gap:32px;
  }
  .home-v16 .full-grid .full-copy{order:1;max-width:500px}
  .home-v16 .full-grid .full-visual{order:2;width:280px;justify-self:center}
}

/* All three memory cards use exactly the same clean edge treatment. */
.home-v16 #feature-2 .album-mini,
.home-v16 #feature-2 .album-mini.a,
.home-v16 #feature-2 .album-mini.b,
.home-v16 #feature-2 .album-mini.c{
  padding:0;
  border:1px solid rgba(255,255,255,.78);
  background:transparent;
  box-shadow:0 18px 40px rgba(75,43,59,.15),0 2px 8px rgba(75,43,59,.06),inset 0 0 0 1px rgba(116,80,102,.05);
}
.home-v16 #feature-2 .album-mini img{
  border-radius:17px;
}

/* Reveal motion remains gentle but is ready to replay on every viewport entry. */
html.soy-motion-ready .home-v16 [data-soy-reveal]{
  transition-duration:1.02s,1.12s;
}
html.soy-motion-ready .home-v16 .feature-visual[data-soy-reveal],
html.soy-motion-ready .home-v16 .full-visual[data-soy-reveal]{
  transition-delay:.10s;
}

@media(max-width:860px){
  .home-v16 .full-grid .full-copy,
  .home-v16 .full-grid .full-visual{order:initial}
}

/* =========================================================
   SOY. v29 — early app identity + tighter centered feature pairs
   ========================================================= */
.home-v16 .hero-kicker-row{
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin-bottom:8px;
}
.home-v16 .hero-kicker-icon{
  width:46px;
  height:46px;
  flex:0 0 auto;
  border-radius:13px;
  box-shadow:0 10px 26px rgba(84,47,68,.16),0 0 0 1px rgba(255,255,255,.78);
}
.home-v16 .hero-kicker-copy{display:grid;gap:4px}
.home-v16 .hero-kicker-row .hero-eyebrow{margin:0}
.home-v16 .hero-app-type{
  color:#9a7f91;
  font-size:10px;
  font-weight:650;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.home-v16 .hero-kicker-row + h1{margin-top:10px}

@media(min-width:861px){
  /* Each pair is compact and centered; content hugs the inner edge of its column. */
  .home-v16 .feature-layout{
    width:min(700px,100%);
    grid-template-columns:minmax(0,370px) 250px;
    justify-content:center;
    column-gap:18px;
  }
  .home-v16 .feature-layout.reverse{
    width:min(700px,100%);
    grid-template-columns:250px minmax(0,370px);
    justify-content:center;
    column-gap:18px;
  }
  .home-v16 .feature-layout:not(.reverse) .feature-copy{
    width:100%;
    max-width:370px;
    justify-self:end;
  }
  .home-v16 .feature-layout:not(.reverse) .feature-visual{
    width:250px;
    justify-self:start;
  }
  .home-v16 .feature-layout.reverse .feature-visual{
    width:250px;
    justify-self:end;
  }
  .home-v16 .feature-layout.reverse .feature-copy{
    width:100%;
    max-width:370px;
    justify-self:start;
  }
  .home-v16 .device-shot.phone{width:244px}

  /* 02 needs a wider visual composition, while still keeping copy close. */
  .home-v16 #feature-2 .feature-layout{
    width:min(860px,100%);
    grid-template-columns:470px minmax(0,350px);
    justify-content:center;
    column-gap:18px;
  }
  .home-v16 #feature-2 .feature-visual{
    width:470px;
    justify-self:end;
  }
  .home-v16 #feature-2 .feature-copy{
    width:100%;
    max-width:350px;
    justify-self:start;
  }

  /* 07 follows the same compact centered relationship as the feature rows. */
  .home-v16 .full-grid{
    width:min(700px,100%);
    grid-template-columns:minmax(0,370px) 250px;
    justify-content:center;
    column-gap:18px;
  }
  .home-v16 .full-grid .full-copy{
    order:1;
    width:100%;
    max-width:370px;
    justify-self:end;
  }
  .home-v16 .full-grid .full-visual{
    order:2;
    width:250px;
    justify-self:start;
  }
}

/* All memory cards now use the same nearly invisible edge. */
.home-v16 #feature-2 .album-mini,
.home-v16 #feature-2 .album-mini.a,
.home-v16 #feature-2 .album-mini.b,
.home-v16 #feature-2 .album-mini.c{
  padding:0;
  border:1px solid rgba(112,77,101,.16);
  background:transparent;
  box-shadow:0 17px 38px rgba(75,43,59,.14),0 2px 7px rgba(75,43,59,.05);
}
.home-v16 #feature-2 .album-mini img{
  width:100%;
  height:100%;
  border-radius:17px;
  object-fit:cover;
}

@media(max-width:860px){
  .home-v16 .hero-kicker-icon{width:42px;height:42px;border-radius:12px}
  .home-v16 .feature-layout,
  .home-v16 .feature-layout.reverse,
  .home-v16 .full-grid{width:100%;grid-template-columns:1fr;gap:26px}
  .home-v16 .feature-layout .feature-copy,
  .home-v16 .feature-layout .feature-visual,
  .home-v16 .feature-layout.reverse .feature-copy,
  .home-v16 .feature-layout.reverse .feature-visual,
  .home-v16 .full-grid .full-copy,
  .home-v16 .full-grid .full-visual{
    width:auto;
    max-width:680px;
    justify-self:stretch;
  }
  .home-v16 .feature-visual,
  .home-v16 .full-visual{justify-content:center}
}
@media(max-width:620px){
  .home-v16 .hero-kicker-row{gap:10px;margin-bottom:5px}
  .home-v16 .hero-kicker-icon{width:38px;height:38px;border-radius:11px}
  .home-v16 .hero-app-type{font-size:9px}
  .home-v16 .device-shot.phone{width:202px}
}

/* =========================================================
   SOY. v30 — cleaner wraps, gentler photo overlap, improved mobile rhythm
   ========================================================= */

/* Give each scene a slightly different pink mood. */
.home-v16 #feature-1{background:linear-gradient(90deg,rgba(255,250,253,.95),rgba(255,247,251,.72)),url("/soy/assets/images/soy-bg-mirror-v22.webp") center/cover no-repeat}
.home-v16 #feature-2{background:linear-gradient(90deg,rgba(255,249,252,.90),rgba(249,242,250,.72)),url("/soy/assets/images/soy-bg-photos-v22.webp") center/cover no-repeat}
.home-v16 #feature-3{background:linear-gradient(90deg,rgba(255,249,252,.82),rgba(250,244,255,.90)),url("/soy/assets/images/soy-bg-half-v22.webp") center/cover no-repeat}
.home-v16 #feature-4{background:radial-gradient(circle at 82% 18%,rgba(255,255,255,.97),transparent 31%),linear-gradient(135deg,#fff9fb 0%,#f9edf4 44%,#f6effd 100%)}
.home-v16 #feature-5{background:radial-gradient(circle at 18% 74%,rgba(255,255,255,.95),transparent 30%),linear-gradient(125deg,#fbf3ff 0%,#fff9fc 45%,#f6edf8 100%)}
.home-v16 #feature-6{background:radial-gradient(circle at 78% 60%,rgba(255,255,255,.95),transparent 32%),linear-gradient(145deg,#fff6fa 0%,#f6f0ff 54%,#f4edf5 100%)}
.home-v16 .full-scene{background:radial-gradient(circle at 22% 26%,rgba(255,255,255,.97),transparent 28%),linear-gradient(120deg,#f8edf5 0%,#fff9fc 48%,#f1ecff 100%)}

/* Cleaner headline/body wrapping across languages. */
.home-v16 .hero-lead,
.home-v16 .hero-sub,
.home-v16 .controlled-title,
.home-v16 .story-page h2,
.home-v16 .feature-body,
.home-v16 .story-body,
.home-v16 .full-list,
.home-v16 .purchase-note,
.home-v16 .app-copy{
  text-wrap:pretty;
}
.home-v16 .hero-lead,
.home-v16 .controlled-title,
.home-v16 .story-page h2{
  text-wrap:balance;
}
.home-v16 .feature-body,
.home-v16 .story-body,
.home-v16 .hero-sub{
  max-width:34ch;
}
html[lang="en"] .home-v16 .feature-body,
html[lang="en"] .home-v16 .story-body,
html[lang="en"] .home-v16 .hero-sub,
html[lang="en"] .home-v16 .controlled-title,
html[lang="en"] .home-v16 .story-page h2{
  max-width:26ch;
}
.home-v16 .story-page h2{max-width:18ch}

@media(min-width:861px){
  /* Keep each text/visual pair centered but closer together. */
  .home-v16 .feature-layout{
    width:min(760px,100%);
    grid-template-columns:minmax(0,390px) 250px;
    justify-content:center;
    column-gap:22px;
  }
  .home-v16 .feature-layout.reverse{
    width:min(760px,100%);
    grid-template-columns:250px minmax(0,390px);
    justify-content:center;
    column-gap:22px;
  }
  .home-v16 .feature-layout:not(.reverse) .feature-copy,
  .home-v16 .feature-layout.reverse .feature-copy,
  .home-v16 .full-grid .full-copy{
    max-width:390px;
  }
  .home-v16 .feature-layout:not(.reverse) .feature-copy,
  .home-v16 .full-grid .full-copy{justify-self:end}
  .home-v16 .feature-layout.reverse .feature-copy{justify-self:start}
  .home-v16 .feature-layout:not(.reverse) .feature-visual,
  .home-v16 .full-grid .full-visual{width:250px;justify-self:start}
  .home-v16 .feature-layout.reverse .feature-visual{width:250px;justify-self:end}

  .home-v16 .full-grid{
    width:min(760px,100%);
    grid-template-columns:minmax(0,390px) 250px;
    justify-content:center;
    column-gap:22px;
  }

  /* Wider, airier Photo Screensaver composition with gentler overlap. */
  .home-v16 #feature-2 .feature-layout{
    width:min(900px,100%);
    grid-template-columns:520px minmax(0,320px);
    justify-content:center;
    column-gap:24px;
  }
  .home-v16 #feature-2 .feature-visual{width:520px;justify-self:end}
  .home-v16 #feature-2 .feature-copy{max-width:320px;justify-self:start}
  .home-v16 #feature-2 .photo-memory-layout{width:520px;min-height:452px}
  .home-v16 #feature-2 .photo-memory-layout::before{left:132px;top:34px;width:248px;height:336px}
  .home-v16 #feature-2 .photo-memory-layout .device-shot.phone{left:136px;top:0;width:238px}
  .home-v16 #feature-2 .album-mini{width:144px;border-radius:18px}
  .home-v16 #feature-2 .album-mini img{border-radius:18px}
  .home-v16 #feature-2 .album-mini.a{left:6px;top:34px;transform:rotate(-7deg)}
  .home-v16 #feature-2 .album-mini.b{left:26px;bottom:14px;width:150px;transform:rotate(4deg)}
  .home-v16 #feature-2 .album-mini.c{right:2px;top:126px;width:142px;transform:rotate(6deg)}

  html.soy-motion-ready .home-v16 #feature-2 .album-mini.a{transform:translate3d(-16px,14px,0) rotate(-11deg)}
  html.soy-motion-ready .home-v16 #feature-2 .album-mini.b{transform:translate3d(-10px,18px,0) rotate(8deg)}
  html.soy-motion-ready .home-v16 #feature-2 .album-mini.c{transform:translate3d(14px,10px,0) rotate(10deg)}
  html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.a{transform:translate3d(0,0,0) rotate(-7deg)}
  html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.b{transform:translate3d(0,0,0) rotate(4deg)}
  html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.c{transform:translate3d(0,0,0) rotate(6deg)}
}

@media(max-width:860px){
  .home-v16 .feature-layout,
  .home-v16 .feature-layout.reverse,
  .home-v16 .full-grid{gap:22px}
  .home-v16 .feature-copy,
  .home-v16 .full-copy{
    width:min(100%,34rem);
    margin-inline:auto;
    padding-inline:2px;
  }
  .home-v16 .feature-body,
  .home-v16 .story-body,
  .home-v16 .hero-sub{max-width:40ch}
  .home-v16 #feature-2 .feature-layout{gap:24px}
  .home-v16 #feature-2 .photo-memory-layout{width:392px;min-height:384px}
  .home-v16 #feature-2 .photo-memory-layout::before{left:104px;top:30px;width:214px;height:284px}
  .home-v16 #feature-2 .photo-memory-layout .device-shot.phone{left:102px;width:192px}
  .home-v16 #feature-2 .album-mini{width:118px;border-radius:16px}
  .home-v16 #feature-2 .album-mini img{border-radius:16px}
  .home-v16 #feature-2 .album-mini.a{left:2px;top:30px;transform:rotate(-6deg)}
  .home-v16 #feature-2 .album-mini.b{left:16px;bottom:16px;width:124px;transform:rotate(4deg)}
  .home-v16 #feature-2 .album-mini.c{right:2px;top:114px;width:116px;transform:rotate(6deg)}
}

@media(max-width:620px){
  .home-v16 .v11-wrap{width:calc(100% - 28px)}
  .home-v16 .feature-copy,
  .home-v16 .full-copy{width:100%;padding-inline:0}
  .home-v16 .controlled-title{line-height:1.5}
  .home-v16 .feature-body,
  .home-v16 .story-body,
  .home-v16 .hero-sub{max-width:none}
  .home-v16 #feature-2 .photo-memory-layout{width:min(350px,100%);min-height:370px}
  .home-v16 #feature-2 .photo-memory-layout::before{left:98px;top:28px;width:206px;height:278px}
  .home-v16 #feature-2 .photo-memory-layout .device-shot.phone{left:96px;width:190px}
  .home-v16 #feature-2 .album-mini{width:108px;border-radius:15px}
  .home-v16 #feature-2 .album-mini img{border-radius:15px}
  .home-v16 #feature-2 .album-mini.a{left:0;top:28px}
  .home-v16 #feature-2 .album-mini.b{left:10px;bottom:16px;width:114px}
  .home-v16 #feature-2 .album-mini.c{right:0;top:110px;width:106px}
}

/* =========================================================
   SOY. v31 — visible scene patterns, airy memories, centered mobile copy
   ========================================================= */

/* Real background-pattern changes, arranged on the visual side of each scene. */
.home-v16 #feature-1{
  background:
    linear-gradient(90deg,rgba(255,250,253,.97) 0%,rgba(255,250,253,.86) 48%,rgba(255,250,253,.46) 100%),
    url('/soy/assets/images/scene-bg-01-v31.webp') right 42% center/58% auto no-repeat,
    #fff8fc;
}
.home-v16 #feature-2{
  background:
    linear-gradient(90deg,rgba(255,250,253,.50) 0%,rgba(255,250,253,.83) 54%,rgba(255,250,253,.98) 100%),
    url('/soy/assets/images/scene-bg-04-v31.webp') left 40% center/58% auto no-repeat,
    #faf6fc;
}
.home-v16 #feature-3{
  background:
    linear-gradient(90deg,rgba(255,250,253,.98) 0%,rgba(255,250,253,.84) 50%,rgba(255,250,253,.44) 100%),
    url('/soy/assets/images/scene-bg-07-v31.webp') right 38% center/58% auto no-repeat,
    #f8f2fc;
}
.home-v16 #feature-4{
  background:
    linear-gradient(90deg,rgba(255,250,253,.46) 0%,rgba(255,250,253,.84) 53%,rgba(255,250,253,.98) 100%),
    url('/soy/assets/images/scene-bg-05-v31.webp') left 38% center/58% auto no-repeat,
    #fff7f5;
}
.home-v16 #feature-5{
  background:
    linear-gradient(90deg,rgba(255,250,253,.98) 0%,rgba(255,250,253,.84) 50%,rgba(255,250,253,.46) 100%),
    url('/soy/assets/images/scene-bg-02-v31.webp') right 42% center/58% auto no-repeat,
    #fff4fa;
}
.home-v16 #feature-6{
  background:
    linear-gradient(90deg,rgba(255,250,253,.46) 0%,rgba(255,250,253,.84) 53%,rgba(255,250,253,.98) 100%),
    url('/soy/assets/images/scene-bg-08-v31.webp') left 40% center/58% auto no-repeat,
    #fff6f8;
}
.home-v16 .full-scene{
  background:
    linear-gradient(90deg,rgba(255,250,253,.98) 0%,rgba(255,250,253,.84) 50%,rgba(255,250,253,.46) 100%),
    url('/soy/assets/images/scene-bg-06-v31.webp') right 42% center/58% auto no-repeat,
    #f6f3ff;
}

@media(min-width:861px){
  /* Photo Screensaver: wider composition and substantially less overlap. */
  .home-v16 #feature-2 .feature-layout{
    width:min(960px,100%);
    grid-template-columns:560px minmax(0,350px);
    column-gap:26px;
  }
  .home-v16 #feature-2 .feature-visual{
    width:560px;
    justify-self:end;
  }
  .home-v16 #feature-2 .feature-copy{
    width:100%;
    max-width:350px;
    justify-self:start;
  }
  .home-v16 #feature-2 .photo-memory-layout{
    width:560px;
    min-height:466px;
  }
  .home-v16 #feature-2 .photo-memory-layout::before{
    left:154px;
    top:34px;
    width:252px;
    height:342px;
  }
  .home-v16 #feature-2 .photo-memory-layout .device-shot.phone{
    left:160px;
    top:0;
    width:238px;
  }
  .home-v16 #feature-2 .album-mini{
    width:142px;
  }
  .home-v16 #feature-2 .album-mini.a{
    left:8px;
    top:42px;
    transform:rotate(-6deg);
  }
  .home-v16 #feature-2 .album-mini.b{
    left:24px;
    bottom:18px;
    width:148px;
    transform:rotate(4deg);
  }
  .home-v16 #feature-2 .album-mini.c{
    right:8px;
    top:132px;
    width:142px;
    transform:rotate(6deg);
  }
  html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.a{transform:translate3d(0,0,0) rotate(-6deg)}
  html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.b{transform:translate3d(0,0,0) rotate(4deg)}
  html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.c{transform:translate3d(0,0,0) rotate(6deg)}
}

/* Mobile: more breathing room from the viewport edge and centered editorial copy. */
@media(max-width:620px){
  .home-v16 .v11-wrap{
    width:calc(100% - 44px);
  }
  .home-v16 .feature-copy,
  .home-v16 .full-copy{
    width:100%;
    max-width:370px;
    margin-inline:auto;
    padding-inline:8px;
    text-align:center;
  }
  .home-v16 .scene-number,
  .home-v16 .feature-name,
  .home-v16 .app-copy,
  .home-v16 .controlled-title,
  .home-v16 .feature-body,
  .home-v16 .purchase-note{
    text-align:center;
  }
  .home-v16 .feature-body{
    margin-inline:auto;
  }
  .home-v16 .full-list{
    width:min(300px,100%);
    margin-inline:auto;
    text-align:left;
  }
  .home-v16 .purchase-note{
    justify-content:center;
  }
  .home-v16 .story-page{
    padding:40px 26px 46px;
    text-align:center;
    border-radius:20px;
  }
  .home-v16 .story-page::before{display:none}
  .home-v16 .story-rule{margin-inline:auto}
  .home-v16 .story-body,
  .home-v16 .story-page h2{
    margin-inline:auto;
    text-align:center;
  }
  .home-v16 .title-line,
  .home-v16 .story-title-line{
    white-space:normal;
  }

  /* Keep the mobile memory group centered and airy too. */
  .home-v16 #feature-2 .photo-memory-layout{
    width:min(364px,100%);
    min-height:382px;
    margin-inline:auto;
  }
  .home-v16 #feature-2 .photo-memory-layout::before{
    left:94px;
    top:28px;
    width:214px;
    height:286px;
  }
  .home-v16 #feature-2 .photo-memory-layout .device-shot.phone{
    left:50%;
    width:190px;
    transform:translateX(-50%);
  }
  .home-v16 #feature-2 .album-mini{
    width:100px;
  }
  .home-v16 #feature-2 .album-mini.a{
    left:0;
    top:34px;
    transform:rotate(-5deg);
  }
  .home-v16 #feature-2 .album-mini.b{
    left:8px;
    bottom:18px;
    width:106px;
    transform:rotate(4deg);
  }
  .home-v16 #feature-2 .album-mini.c{
    right:0;
    top:116px;
    width:100px;
    transform:rotate(5deg);
  }
  html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.a{transform:translate3d(0,0,0) rotate(-5deg)}
  html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.b{transform:translate3d(0,0,0) rotate(4deg)}
  html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.c{transform:translate3d(0,0,0) rotate(5deg)}

  /* On small screens, use the same real patterns with a softer central crop. */
  .home-v16 #feature-1,
  .home-v16 #feature-2,
  .home-v16 #feature-3,
  .home-v16 #feature-4,
  .home-v16 #feature-5,
  .home-v16 #feature-6,
  .home-v16 .full-scene{
    background-size:auto,115% auto;
    background-position:center,center;
  }
}

/* =========================================================
   SOY. v32 — full-bleed scene backgrounds with soft directional fades
   Background-only refinement. Layout/content remain unchanged.
   ========================================================= */

/* Replace the finite-width background tiles with full-section artwork. */
.home-v16 #feature-1,
.home-v16 #feature-2,
.home-v16 #feature-3,
.home-v16 #feature-4,
.home-v16 #feature-5,
.home-v16 #feature-6,
.home-v16 .full-scene{
  position:relative;
  isolation:isolate;
  background:#fff8fc;
}
.home-v16 #feature-1 > .v11-wrap,
.home-v16 #feature-2 > .v11-wrap,
.home-v16 #feature-3 > .v11-wrap,
.home-v16 #feature-4 > .v11-wrap,
.home-v16 #feature-5 > .v11-wrap,
.home-v16 #feature-6 > .v11-wrap,
.home-v16 .full-scene > .v11-wrap{
  position:relative;
  z-index:2;
}
.home-v16 #feature-1::before,
.home-v16 #feature-2::before,
.home-v16 #feature-3::before,
.home-v16 #feature-4::before,
.home-v16 #feature-5::before,
.home-v16 #feature-6::before,
.home-v16 .full-scene::before,
.home-v16 #feature-1::after,
.home-v16 #feature-2::after,
.home-v16 #feature-3::after,
.home-v16 #feature-4::after,
.home-v16 #feature-5::after,
.home-v16 #feature-6::after,
.home-v16 .full-scene::after{
  content:"";
  position:absolute;
  inset:-2px;
  pointer-events:none;
}
.home-v16 #feature-1::before,
.home-v16 #feature-2::before,
.home-v16 #feature-3::before,
.home-v16 #feature-4::before,
.home-v16 #feature-5::before,
.home-v16 #feature-6::before,
.home-v16 .full-scene::before{
  z-index:0;
  background-repeat:no-repeat;
  background-size:cover;
  opacity:.78;
  transform:scale(1.012);
}
.home-v16 #feature-1::after,
.home-v16 #feature-2::after,
.home-v16 #feature-3::after,
.home-v16 #feature-4::after,
.home-v16 #feature-5::after,
.home-v16 #feature-6::after,
.home-v16 .full-scene::after{
  z-index:1;
  background:linear-gradient(180deg,rgba(255,248,252,.28),rgba(255,248,252,0) 18%,rgba(255,248,252,0) 82%,rgba(255,248,252,.30));
}

/* Visual on the right: keep detail on the right and dissolve toward copy on the left. */
.home-v16 #feature-1::before{
  background-image:url('/soy/assets/images/scene-bg-01-v31.webp');
  background-position:right center;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.18) 22%,rgba(0,0,0,.72) 54%,#000 78%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.18) 22%,rgba(0,0,0,.72) 54%,#000 78%,#000 100%);
}
.home-v16 #feature-3::before{
  background-image:url('/soy/assets/images/scene-bg-07-v31.webp');
  background-position:right center;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.16) 24%,rgba(0,0,0,.70) 55%,#000 80%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.16) 24%,rgba(0,0,0,.70) 55%,#000 80%,#000 100%);
}
.home-v16 #feature-5::before{
  background-image:url('/soy/assets/images/scene-bg-02-v31.webp');
  background-position:right center;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.17) 23%,rgba(0,0,0,.72) 55%,#000 80%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.17) 23%,rgba(0,0,0,.72) 55%,#000 80%,#000 100%);
}
.home-v16 .full-scene::before{
  background-image:url('/soy/assets/images/scene-bg-06-v31.webp');
  background-position:right center;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.17) 24%,rgba(0,0,0,.70) 55%,#000 80%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.17) 24%,rgba(0,0,0,.70) 55%,#000 80%,#000 100%);
}

/* Visual on the left: mirror the fade direction. */
.home-v16 #feature-2::before{
  background-image:url('/soy/assets/images/scene-bg-04-v31.webp');
  background-position:left center;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 22%,rgba(0,0,0,.72) 48%,rgba(0,0,0,.16) 78%,transparent 100%);
  mask-image:linear-gradient(90deg,#000 0%,#000 22%,rgba(0,0,0,.72) 48%,rgba(0,0,0,.16) 78%,transparent 100%);
}
.home-v16 #feature-4::before{
  background-image:url('/soy/assets/images/scene-bg-05-v31.webp');
  background-position:left center;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 22%,rgba(0,0,0,.70) 48%,rgba(0,0,0,.15) 78%,transparent 100%);
  mask-image:linear-gradient(90deg,#000 0%,#000 22%,rgba(0,0,0,.70) 48%,rgba(0,0,0,.15) 78%,transparent 100%);
}
.home-v16 #feature-6::before{
  background-image:url('/soy/assets/images/scene-bg-08-v31.webp');
  background-position:left center;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 22%,rgba(0,0,0,.72) 48%,rgba(0,0,0,.16) 78%,transparent 100%);
  mask-image:linear-gradient(90deg,#000 0%,#000 22%,rgba(0,0,0,.72) 48%,rgba(0,0,0,.16) 78%,transparent 100%);
}

/* Individual pale base tones preserve the alternating mood after the fade. */
.home-v16 #feature-1{background-color:#fff9fc}
.home-v16 #feature-2{background-color:#faf6fc}
.home-v16 #feature-3{background-color:#f9f4fd}
.home-v16 #feature-4{background-color:#fff8f6}
.home-v16 #feature-5{background-color:#fff5fa}
.home-v16 #feature-6{background-color:#fff7f9}
.home-v16 .full-scene{background-color:#f7f4ff}

@media(max-width:860px){
  /* On smaller screens, keep the pattern full bleed but soften it behind centered copy. */
  .home-v16 #feature-1::before,
  .home-v16 #feature-2::before,
  .home-v16 #feature-3::before,
  .home-v16 #feature-4::before,
  .home-v16 #feature-5::before,
  .home-v16 #feature-6::before,
  .home-v16 .full-scene::before{
    background-position:center;
    background-size:cover;
    opacity:.53;
    -webkit-mask-image:radial-gradient(ellipse 82% 76% at 50% 48%,#000 0%,rgba(0,0,0,.86) 48%,rgba(0,0,0,.24) 78%,transparent 100%);
    mask-image:radial-gradient(ellipse 82% 76% at 50% 48%,#000 0%,rgba(0,0,0,.86) 48%,rgba(0,0,0,.24) 78%,transparent 100%);
  }
  .home-v16 #feature-1::after,
  .home-v16 #feature-2::after,
  .home-v16 #feature-3::after,
  .home-v16 #feature-4::after,
  .home-v16 #feature-5::after,
  .home-v16 #feature-6::after,
  .home-v16 .full-scene::after{
    background:linear-gradient(180deg,rgba(255,249,252,.46),rgba(255,249,252,.10) 22%,rgba(255,249,252,.10) 76%,rgba(255,249,252,.48));
  }
}

/* =========================================================
   SOY. v35 — Japanese line-break polish (Safari / Firefox)
   Keep short Japanese tail fragments from appearing alone.
   ========================================================= */
html[lang="ja"] .home-v16 .story-body-ja{
  max-width:none;
  line-break:strict;
  word-break:normal;
  overflow-wrap:normal;
  text-wrap:initial;
}
html[lang="ja"] .home-v16 .story-body-ja .story-body-line{
  display:block;
  white-space:nowrap;
}

/* Avoid aggressive anywhere-wrapping on Japanese descriptive copy. */
html[lang="ja"] .home-v16 .feature-body,
html[lang="ja"] .home-v16 .hero-sub,
html[lang="ja"] .home-v16 .purchase-note,
html[lang="ja"] .home-v16 .app-copy{
  line-break:strict;
  word-break:normal;
  overflow-wrap:normal;
  text-wrap:pretty;
}


/* =========================================================
   SOY. v36 — Japanese page-wide line-break direction
   Deterministic editorial wrapping for Safari / Firefox.
   ========================================================= */
html[lang="ja"] .home-v16 .ja-controlled-copy{
  max-width:none;
  line-break:strict;
  word-break:normal;
  overflow-wrap:normal;
  text-wrap:initial;
}
html[lang="ja"] .home-v16 .ja-controlled-copy .ja-copy-line{
  display:block;
}
@media(min-width:621px){
  html[lang="ja"] .home-v16 .ja-controlled-copy .ja-copy-line{
    white-space:nowrap;
  }
}
@media(max-width:620px){
  html[lang="ja"] .home-v16 .ja-controlled-copy .ja-copy-line{
    white-space:normal;
  }
}


/* =========================================================
   SOY. v47 — centered feature relationships + round Store float
   Rebuilt carefully from the stable v36 base.
   ========================================================= */

/* Desktop: keep the phone and its explanation visually together near center. */
@media(min-width:861px){
  .home-v16 .hero-grid{
    width:min(860px,100%);
    grid-template-columns:minmax(0,560px) 250px;
    justify-content:center;
    column-gap:34px;
  }
  .home-v16 .hero-copy{max-width:560px}

  .home-v16 .feature-layout{
    width:min(680px,100%);
    grid-template-columns:minmax(0,380px) 244px;
    justify-content:center;
    column-gap:10px;
  }
  .home-v16 .feature-layout.reverse{
    width:min(680px,100%);
    grid-template-columns:244px minmax(0,380px);
    justify-content:center;
    column-gap:10px;
  }
  .home-v16 .feature-layout:not(.reverse) .feature-copy,
  .home-v16 .feature-layout.reverse .feature-copy{
    max-width:380px;
  }
  .home-v16 .feature-layout:not(.reverse) .feature-visual,
  .home-v16 .feature-layout.reverse .feature-visual{
    width:244px;
  }
  .home-v16 .full-grid{
    width:min(680px,100%);
    grid-template-columns:minmax(0,380px) 244px;
    justify-content:center;
    column-gap:10px;
  }
  .home-v16 .full-grid .full-copy{max-width:380px}
  .home-v16 .full-grid .full-visual{width:244px}

  /* 02 keeps its photo orbit, but pulls the phone itself toward the copy. */
  .home-v16 #feature-2 .feature-layout{
    width:min(930px,100%);
    grid-template-columns:548px minmax(0,350px);
    column-gap:12px;
  }
  .home-v16 #feature-2 .feature-visual{width:548px}
  .home-v16 #feature-2 .photo-memory-layout{width:548px}
  .home-v16 #feature-2 .photo-memory-layout .device-shot.phone{left:184px}
  .home-v16 #feature-2 .photo-memory-layout::before{left:176px}
  .home-v16 #feature-2 .album-mini.c{right:0}
}

/* SOY. App Store floating CTA — intentionally a mathematically perfect circle. */
.home-v16 .soy-store-float{
  position:fixed;
  z-index:70;
  right:calc(24px + env(safe-area-inset-right,0px));
  bottom:calc(24px + env(safe-area-inset-bottom,0px));
  width:92px;
  height:92px;
  aspect-ratio:1 / 1;
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  overflow:hidden;
  isolation:isolate;
  border:1px solid rgba(255,255,255,.90);
  background:
    radial-gradient(circle at 31% 24%,rgba(255,255,255,.92) 0 7%,rgba(255,255,255,0) 28%),
    linear-gradient(145deg,#ffd9e9 2%,#ecdfff 48%,#d9efff 100%);
  box-shadow:
    0 16px 38px rgba(104,69,102,.20),
    0 4px 12px rgba(104,69,102,.10),
    inset 0 1px 0 rgba(255,255,255,.88);
  color:#5f485c;
  text-decoration:none;
  text-align:center;
  -webkit-tap-highlight-color:transparent;
  transform:translate3d(0,0,0) scale(1);
  opacity:1;
  transition:
    opacity .95s ease,
    transform .95s cubic-bezier(.22,.72,.22,1),
    box-shadow .35s ease;
}
.home-v16 .soy-store-float::before{
  content:"";
  position:absolute;
  inset:7px;
  z-index:-1;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.48);
  background:linear-gradient(145deg,rgba(255,255,255,.16),rgba(255,255,255,.02));
}
.home-v16 .soy-store-float::after{
  content:"✦";
  position:absolute;
  top:12px;
  right:16px;
  color:rgba(255,255,255,.96);
  font-size:10px;
  line-height:1;
  text-shadow:0 1px 4px rgba(109,72,104,.12);
}
.home-v16 .soy-store-float-title{
  position:relative;
  z-index:1;
  font-family:Georgia,"Times New Roman",serif;
  font-size:20px;
  font-weight:400;
  line-height:1;
  letter-spacing:.015em;
}
.home-v16 .soy-store-float-sub{
  position:relative;
  z-index:1;
  font-size:8px;
  font-weight:700;
  line-height:1.1;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:rgba(95,72,92,.72);
}
.home-v16 .soy-store-float:hover{
  transform:translate3d(0,-3px,0) scale(1.025);
  box-shadow:
    0 20px 44px rgba(104,69,102,.23),
    0 6px 14px rgba(104,69,102,.11),
    inset 0 1px 0 rgba(255,255,255,.92);
}
.home-v16 .soy-store-float:focus-visible{
  outline:2px solid rgba(119,84,119,.62);
  outline-offset:4px;
}
.home-v16 .soy-store-float.is-scrolling,
.home-v16 .soy-store-float.is-near-store{
  opacity:0;
  transform:translate3d(0,16px,0) scale(.94);
  pointer-events:none;
}

@media(max-width:620px){
  .home-v16 .soy-store-float{
    right:calc(16px + env(safe-area-inset-right,0px));
    bottom:calc(16px + env(safe-area-inset-bottom,0px));
    width:80px;
    height:80px;
  }
  .home-v16 .soy-store-float::before{inset:6px}
  .home-v16 .soy-store-float::after{top:10px;right:13px;font-size:9px}
  .home-v16 .soy-store-float-title{font-size:18px}
  .home-v16 .soy-store-float-sub{font-size:7px;letter-spacing:.13em}
}

@media(prefers-reduced-motion:reduce){
  .home-v16 .soy-store-float{transition:opacity .18s linear,transform .18s linear,box-shadow .18s linear}
}


/* =========================================================
   SOY. v48 — gap-based alignment refinement + narrower cards
   Keeps the v36/v47 base, then evens out section relationships.
   ========================================================= */
@media(min-width:861px){
  .home-v16{
    --soy-pair-gap: 14px;
    --soy-phone-width: 244px;
    --soy-copy-width: 380px;
    --soy-pair-width: 698px;
    --soy-card-wrap-width: min(708px, calc(100% - 48px));
  }

  /* 01 / 03 / 04 / 05 / 06 share the same iPhone-to-copy gap. */
  .home-v16 .feature-layout,
  .home-v16 .feature-layout.reverse,
  .home-v16 .full-grid{
    width:min(var(--soy-pair-width), 100%);
    justify-content:center;
    column-gap:var(--soy-pair-gap);
  }
  .home-v16 .feature-layout{
    grid-template-columns:minmax(0, var(--soy-copy-width)) var(--soy-phone-width);
  }
  .home-v16 .feature-layout.reverse{
    grid-template-columns:var(--soy-phone-width) minmax(0, var(--soy-copy-width));
  }
  .home-v16 .full-grid{
    grid-template-columns:minmax(0, var(--soy-copy-width)) var(--soy-phone-width);
  }
  .home-v16 .feature-layout:not(.reverse) .feature-copy,
  .home-v16 .full-grid .full-copy{
    width:100%;
    max-width:var(--soy-copy-width);
    justify-self:end;
  }
  .home-v16 .feature-layout.reverse .feature-copy{
    width:100%;
    max-width:var(--soy-copy-width);
    justify-self:start;
  }
  .home-v16 .feature-layout:not(.reverse) .feature-visual,
  .home-v16 .full-grid .full-visual{
    width:var(--soy-phone-width);
    justify-self:start;
  }
  .home-v16 .feature-layout.reverse .feature-visual{
    width:var(--soy-phone-width);
    justify-self:end;
  }

  /* 02 keeps the collage, but the text now keys off the phone gap instead of the loose collage edge. */
  .home-v16 #feature-2 .feature-layout{
    width:min(884px, 100%);
    grid-template-columns:490px minmax(0, 380px);
    column-gap:var(--soy-pair-gap);
  }
  .home-v16 #feature-2 .feature-copy{
    width:100%;
    max-width:380px;
    justify-self:start;
  }
  .home-v16 #feature-2 .feature-visual{
    width:490px;
    justify-self:end;
  }
  .home-v16 #feature-2 .photo-memory-layout{
    width:490px;
    min-height:452px;
  }
  .home-v16 #feature-2 .photo-memory-layout::before{
    left:232px;
    top:34px;
    width:244px;
    height:334px;
  }
  .home-v16 #feature-2 .photo-memory-layout .device-shot.phone{
    left:238px;
    top:0;
    width:238px;
  }
  .home-v16 #feature-2 .album-mini{width:136px}
  .home-v16 #feature-2 .album-mini.a{
    left:6px;
    top:42px;
    transform:rotate(-6deg);
  }
  .home-v16 #feature-2 .album-mini.b{
    left:24px;
    bottom:18px;
    width:142px;
    transform:rotate(4deg);
  }
  .home-v16 #feature-2 .album-mini.c{
    right:54px;
    top:128px;
    width:128px;
    transform:rotate(5deg);
  }
  html.soy-motion-ready .home-v16 #feature-2 .album-mini.a{transform:translate3d(-12px,12px,0) rotate(-10deg)}
  html.soy-motion-ready .home-v16 #feature-2 .album-mini.b{transform:translate3d(-8px,16px,0) rotate(8deg)}
  html.soy-motion-ready .home-v16 #feature-2 .album-mini.c{transform:translate3d(10px,10px,0) rotate(8deg)}
  html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.a{transform:translate3d(0,0,0) rotate(-6deg)}
  html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.b{transform:translate3d(0,0,0) rotate(4deg)}
  html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.c{transform:translate3d(0,0,0) rotate(5deg)}

  /* 07 should never begin by visually colliding with the iPhone on reveal. */
  html.soy-motion-ready .home-v16 #soy-full .full-copy[data-soy-reveal="right"]{
    transform:translate3d(0, 22px, 0);
  }

  /* ABOUT SOY. and the white cards after it become intentionally narrower, matching the tighter header/footer rhythm. */
  .home-v16 .v11-header .v11-wrap,
  .home-v16 .about-scene > .v11-wrap,
  .home-v16 .privacy-scene > .v11-wrap,
  .home-v16 .tiktok-scene > .v11-wrap,
  .home-v16 .store-scene > .v11-wrap,
  .home-v16 .v11-footer .v11-wrap{
    width:var(--soy-card-wrap-width);
  }

  /* A slightly smaller interior gap keeps the card button relationship elegant at the narrower width. */
  .home-v16 .about-card-home,
  .home-v16 .privacy-card,
  .home-v16 .tiktok-card,
  .home-v16 .store-card-v11{
    gap:24px;
  }
}

/* Keep 02 and 03 on the same vertical rhythm as the other scenes. */
.home-v16 #feature-2,
.home-v16 #feature-3{
  padding-block:68px;
}

/* Floating button refinement: still perfectly round, just a bit more intentional and noticeable. */
.home-v16 .soy-store-float{
  right:calc(20px + env(safe-area-inset-right,0px));
  bottom:calc(20px + env(safe-area-inset-bottom,0px));
  width:96px;
  height:96px;
  border:1px solid rgba(255,255,255,.94);
  background:
    radial-gradient(circle at 30% 24%, rgba(255,255,255,.96) 0 8%, rgba(255,255,255,0) 30%),
    linear-gradient(145deg, #ffd6e7 0%, #efe0ff 52%, #d9efff 100%);
  box-shadow:
    0 18px 42px rgba(104,69,102,.22),
    0 5px 14px rgba(104,69,102,.10),
    inset 0 1px 0 rgba(255,255,255,.90);
  transition:
    opacity 1s ease,
    transform 1s cubic-bezier(.22,.72,.22,1),
    box-shadow .35s ease;
}
.home-v16 .soy-store-float::before{inset:7px}
.home-v16 .soy-store-float::after{top:12px;right:15px}
.home-v16 .soy-store-float-title{font-size:21px}
.home-v16 .soy-store-float-sub{
  font-size:8px;
  letter-spacing:.16em;
}
.home-v16 .soy-store-float.is-scrolling,
.home-v16 .soy-store-float.is-near-store{
  opacity:0;
  transform:translate3d(0, 18px, 0) scale(.93);
}

@media(max-width:620px){
  .home-v16 .soy-store-float{
    right:calc(14px + env(safe-area-inset-right,0px));
    bottom:calc(14px + env(safe-area-inset-bottom,0px));
    width:84px;
    height:84px;
  }
  .home-v16 .soy-store-float::before{inset:6px}
  .home-v16 .soy-store-float::after{top:10px;right:13px;font-size:9px}
  .home-v16 .soy-store-float-title{font-size:18px}
  .home-v16 .soy-store-float-sub{font-size:7px;letter-spacing:.14em}
}


/* =========================================================
   SOY. v49 — review pass from live Safari feedback
   ========================================================= */
@media(min-width:861px){
  /* 02: restore the complete three-photo composition and give the whole collage breathing room from copy. */
  .home-v16 #feature-2 .feature-layout{
    width:min(962px,100%);
    grid-template-columns:560px minmax(0,350px);
    column-gap:52px;
  }
  .home-v16 #feature-2 .feature-visual{
    width:560px;
    justify-self:end;
  }
  .home-v16 #feature-2 .feature-copy{
    width:100%;
    max-width:350px;
    justify-self:start;
  }
  .home-v16 #feature-2 .photo-memory-layout{
    width:560px;
    min-height:466px;
  }
  .home-v16 #feature-2 .photo-memory-layout::before{
    left:154px;
    top:34px;
    width:252px;
    height:342px;
  }
  .home-v16 #feature-2 .photo-memory-layout .device-shot.phone{
    left:160px;
    top:0;
    width:238px;
  }
  .home-v16 #feature-2 .album-mini{width:142px}
  .home-v16 #feature-2 .album-mini.a{
    left:8px;
    top:42px;
    transform:rotate(-6deg);
  }
  .home-v16 #feature-2 .album-mini.b{
    left:24px;
    bottom:18px;
    width:148px;
    transform:rotate(4deg);
  }
  .home-v16 #feature-2 .album-mini.c{
    right:8px;
    top:132px;
    width:142px;
    transform:rotate(6deg);
  }
  html.soy-motion-ready .home-v16 #feature-2 .album-mini.a{transform:translate3d(-16px,14px,0) rotate(-10deg)}
  html.soy-motion-ready .home-v16 #feature-2 .album-mini.b{transform:translate3d(-10px,18px,0) rotate(8deg)}
  html.soy-motion-ready .home-v16 #feature-2 .album-mini.c{transform:translate3d(14px,10px,0) rotate(10deg)}
  html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.a{transform:translate3d(0,0,0) rotate(-6deg)}
  html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.b{transform:translate3d(0,0,0) rotate(4deg)}
  html.soy-motion-ready .home-v16 #feature-2 .photo-memory-layout.is-visible .album-mini.c{transform:translate3d(0,0,0) rotate(6deg)}

  /* White cards stay compact. Header/footer get a little more width so they do not look pinched. */
  .home-v16 .v11-header .v11-wrap,
  .home-v16 .v11-footer .v11-wrap{
    width:min(860px,calc(100% - 48px));
  }
}

/* Restore enough breathing room between 02 and 03. */
.home-v16 #feature-2{padding-bottom:92px}
.home-v16 #feature-3{padding-top:92px}

/* Float: same design, moved diagonally inward by about 30px. */
.home-v16 .soy-store-float{
  right:calc(50px + env(safe-area-inset-right,0px));
  bottom:calc(50px + env(safe-area-inset-bottom,0px));
}
@media(max-width:620px){
  .home-v16 .soy-store-float{
    right:calc(44px + env(safe-area-inset-right,0px));
    bottom:calc(44px + env(safe-area-inset-bottom,0px));
  }
}


/* =========================================================
   SOY. v50 — wider header text rhythm + unified lower width
   ========================================================= */
@media(min-width:861px){
  /* Header: add 40px to the existing desktop nav-link spacing. */
  .home-v16 .v11-navlinks{
    gap:58px;
  }

  /* Use the header's 860px desktop width as the common lower-page width. */
  .home-v16 .v11-header .v11-wrap,
  .home-v16 .about-scene > .v11-wrap,
  .home-v16 .privacy-scene > .v11-wrap,
  .home-v16 .tiktok-scene > .v11-wrap,
  .home-v16 .store-scene > .v11-wrap,
  .home-v16 .v11-footer .v11-wrap{
    width:min(860px, calc(100% - 48px));
  }
}


/* =========================================================
   SOY. v51 — story vanity accent + unified 02/03 background rhythm
   ========================================================= */
.home-v16 .story-page{
  isolation:isolate;
  overflow:visible;
}
.home-v16 .story-page > :not(.story-vanity-decor){
  position:relative;
  z-index:2;
}
.home-v16 .story-vanity-decor{
  position:absolute;
  z-index:3;
  pointer-events:none;
  user-select:none;
}
.home-v16 .story-vanity-decor img{
  position:absolute;
  display:block;
  height:auto;
  max-width:none;
  -webkit-user-drag:none;
}

@media(min-width:861px){
  /* Two-object composition only: ornate hand mirror + lip. Keep it mostly inside, with a gentle bottom overlap. */
  .home-v16 .story-vanity-decor{
    right:4px;
    bottom:-58px;
    width:360px;
    height:360px;
  }
  .home-v16 .story-hand-mirror{
    right:0;
    bottom:-14px;
    width:218px;
    transform:rotate(12deg);
    transform-origin:52% 54%;
    filter:drop-shadow(0 18px 18px rgba(105,76,98,.10));
  }
  .home-v16 .story-lip{
    right:286px;
    bottom:28px;
    width:48px;
    transform:rotate(-13deg);
    filter:drop-shadow(0 12px 12px rgba(111,73,92,.11));
  }
}

@media(min-width:621px) and (max-width:860px){
  .home-v16 .story-vanity-decor{
    right:2px;
    bottom:-44px;
    width:300px;
    height:300px;
  }
  .home-v16 .story-hand-mirror{
    right:0;
    bottom:-10px;
    width:178px;
    transform:rotate(12deg);
    filter:drop-shadow(0 14px 15px rgba(105,76,98,.10));
  }
  .home-v16 .story-lip{
    right:238px;
    bottom:24px;
    width:40px;
    transform:rotate(-13deg);
    filter:drop-shadow(0 10px 10px rgba(111,73,92,.10));
  }
}

@media(max-width:620px){
  /* On iPhone, reserve a little room so the decoration never competes with the centered copy. */
  .home-v16 .story-page{
    padding-bottom:142px;
  }
  .home-v16 .story-vanity-decor{
    right:4px;
    bottom:-28px;
    width:210px;
    height:200px;
  }
  .home-v16 .story-hand-mirror{
    right:0;
    bottom:-8px;
    width:116px;
    transform:rotate(11deg);
    filter:drop-shadow(0 10px 12px rgba(105,76,98,.10));
  }
  .home-v16 .story-lip{
    right:164px;
    bottom:18px;
    width:29px;
    transform:rotate(-12deg);
    filter:drop-shadow(0 8px 9px rgba(111,73,92,.10));
  }
}

/* The background-section breathing room between 02 and 03 now uses the same 68px rhythm as all other feature boundaries. */
.home-v16 #feature-2{
  padding-bottom:68px;
}
.home-v16 #feature-3{
  padding-top:68px;
}


/* =========================================================
   SOY. v52 — measured 02 bottom rhythm + rebuilt story vanity
   ========================================================= */

/* 02: the phone was visually taller than its absolute-positioned container.
   Match the container to the actual phone height so the visible phone bottom
   receives the same section padding as every other feature. */
@media(min-width:861px){
  .home-v16 #feature-2 .photo-memory-layout{
    min-height:520px;
  }
}
@media(min-width:621px) and (max-width:860px){
  .home-v16 #feature-2 .photo-memory-layout{
    min-height:470px;
  }
}
@media(max-width:620px){
  .home-v16 #feature-2 .photo-memory-layout{
    min-height:422px;
  }
  /* Mobile uses the site's normal 48px scene rhythm. */
  .home-v16 #feature-2{padding-bottom:48px}
  .home-v16 #feature-3{padding-top:48px}
}

/* Story vanity: two objects only. The mirror asset is tightly cropped in v52,
   so its CSS width now corresponds to the visible mirror instead of transparent canvas. */
@media(min-width:861px){
  .home-v16 .story-vanity-decor{
    right:26px;
    bottom:-52px;
    width:360px;
    height:430px;
  }
  .home-v16 .story-hand-mirror{
    right:0;
    bottom:-8px;
    width:228px;
    transform:rotate(-16deg);
    transform-origin:52% 63%;
    filter:drop-shadow(0 20px 22px rgba(105,76,98,.13));
  }
  .home-v16 .story-lip{
    left:12px;
    right:auto;
    bottom:54px;
    width:64px;
    transform:rotate(-8deg);
    filter:drop-shadow(0 13px 14px rgba(111,73,92,.12));
  }
}

@media(min-width:621px) and (max-width:860px){
  .home-v16 .story-vanity-decor{
    right:18px;
    bottom:-42px;
    width:310px;
    height:360px;
  }
  .home-v16 .story-hand-mirror{
    right:0;
    bottom:-6px;
    width:194px;
    transform:rotate(-16deg);
    transform-origin:52% 63%;
    filter:drop-shadow(0 16px 18px rgba(105,76,98,.12));
  }
  .home-v16 .story-lip{
    left:12px;
    right:auto;
    bottom:46px;
    width:54px;
    transform:rotate(-8deg);
    filter:drop-shadow(0 11px 12px rgba(111,73,92,.11));
  }
}

@media(max-width:620px){
  .home-v16 .story-page{
    padding-bottom:170px;
  }
  .home-v16 .story-vanity-decor{
    right:10px;
    bottom:-30px;
    width:230px;
    height:245px;
  }
  .home-v16 .story-hand-mirror{
    right:0;
    bottom:-4px;
    width:132px;
    transform:rotate(-15deg);
    transform-origin:52% 63%;
    filter:drop-shadow(0 12px 14px rgba(105,76,98,.11));
  }
  .home-v16 .story-lip{
    left:12px;
    right:auto;
    bottom:34px;
    width:38px;
    transform:rotate(-8deg);
    filter:drop-shadow(0 9px 10px rgba(111,73,92,.10));
  }
}


/* =========================================================
   SOY. v53 — vanity angle/clearance refinement
   English headline clearance is the strict desktop baseline.
   ========================================================= */
@media(min-width:861px){
  /* Lower the mirror and rotate it clockwise toward a 1:30 clock angle.
     Keep the large v52 scale; only placement/angle change. */
  .home-v16 .story-hand-mirror{
    right:0;
    bottom:-30px;
    width:228px;
    transform:rotate(42deg);
    transform-origin:52% 63%;
  }
  /* Lip: four more degrees counter-clockwise than v52, and let its lower edge
     cross the card boundary slightly instead of floating entirely inside. */
  .home-v16 .story-lip{
    left:12px;
    right:auto;
    bottom:30px;
    width:64px;
    transform:rotate(-12deg);
  }
}

@media(min-width:621px) and (max-width:860px){
  .home-v16 .story-hand-mirror{
    right:0;
    bottom:-22px;
    width:194px;
    transform:rotate(38deg);
    transform-origin:52% 63%;
  }
  .home-v16 .story-lip{
    left:12px;
    right:auto;
    bottom:25px;
    width:54px;
    transform:rotate(-12deg);
  }
}

@media(max-width:620px){
  .home-v16 .story-hand-mirror{
    right:0;
    bottom:-12px;
    width:132px;
    transform:rotate(34deg);
    transform-origin:52% 63%;
  }
  .home-v16 .story-lip{
    left:12px;
    right:auto;
    bottom:18px;
    width:38px;
    transform:rotate(-12deg);
  }
}


/* =========================================================
   SOY. v54 — handheld mirror angle refinement
   12:30 clock-angle target; placement/scale/lip remain v53.
   ========================================================= */
@media(min-width:861px){
  .home-v16 .story-hand-mirror{
    transform:rotate(15deg);
  }
}
@media(min-width:621px) and (max-width:860px){
  .home-v16 .story-hand-mirror{
    transform:rotate(14deg);
  }
}
@media(max-width:620px){
  .home-v16 .story-hand-mirror{
    transform:rotate(12deg);
  }
}


/* =========================================================
   SOY. v55 — vanity spacing refinement
   Mirror slightly right; lip closes to ~2/3 of previous gap and drops subtly.
   ========================================================= */
@media(min-width:861px){
  .home-v16 .story-hand-mirror{
    right:-14px;
  }
  .home-v16 .story-lip{
    left:45px;
    bottom:22px;
  }
}
@media(min-width:621px) and (max-width:860px){
  .home-v16 .story-hand-mirror{
    right:-10px;
  }
  .home-v16 .story-lip{
    left:39px;
    bottom:19px;
  }
}
@media(max-width:620px){
  .home-v16 .story-hand-mirror{
    right:-6px;
  }
  .home-v16 .story-lip{
    left:34px;
    bottom:14px;
  }
}

/* =========================================================
   SOY. v60 — HERO MIRROR + PHOTO SCREENSAVER DUO (ROBUST)
   Keep the stable v58 hero HTML. The second phone is added
   from CSS so the approved hero structure remains untouched.
   ========================================================= */
.home-v16 .hero-phone{
  position:relative;
  justify-self:center;
  width:376px;
  height:470px;
  min-width:0;
}
.home-v16 .hero-phone > .hero-phone-frame{
  position:absolute;
  left:0;
  top:0;
  z-index:2;
  width:205px;
  transform:rotate(-1.15deg);
  transform-origin:center 72%;
}
.home-v16 .hero-phone::after{
  content:"";
  position:absolute;
  right:-6px;
  top:36px;
  z-index:1;
  width:188px;
  aspect-ratio:9/19.5;
  border:3px solid rgba(68,49,61,.52);
  border-radius:34px;
  background:#f8f1f6 url('/soy/assets/images/hero-photo-screensaver-v60.webp?v=60') center/cover no-repeat;
  box-shadow:0 22px 52px rgba(74,40,58,.14),0 0 0 1px rgba(255,255,255,.78);
  transform:rotate(5.2deg);
  transform-origin:center 72%;
  pointer-events:none;
}
@media(min-width:861px){
  .home-v16 .hero-grid{
    width:min(1010px,100%);
    grid-template-columns:minmax(0,560px) 376px;
    justify-content:center;
    column-gap:30px;
  }
  .home-v16 .hero-copy{max-width:560px}
}
@media(min-width:621px) and (max-width:860px){
  .home-v16 .hero-phone{
    width:342px;
    height:426px;
  }
  .home-v16 .hero-phone > .hero-phone-frame{
    width:185px;
    left:2px;
    top:0;
  }
  .home-v16 .hero-phone::after{
    width:169px;
    right:-3px;
    top:31px;
    border-radius:31px;
    transform:rotate(4.7deg);
  }
}
@media(max-width:620px){
  .home-v16 .hero-grid{gap:24px}
  .home-v16 .hero-phone{
    width:min(306px,100%);
    height:366px;
  }
  .home-v16 .hero-phone > .hero-phone-frame{
    width:160px;
    left:2px;
    top:0;
    transform:rotate(-.9deg);
  }
  .home-v16 .hero-phone::after{
    width:150px;
    right:-2px;
    top:26px;
    border-radius:28px;
    transform:rotate(4.1deg);
  }
}
@media(max-width:374px){
  .home-v16 .hero-phone{
    width:282px;
    height:340px;
  }
  .home-v16 .hero-phone > .hero-phone-frame{width:148px}
  .home-v16 .hero-phone::after{width:138px;right:-1px;top:24px;transform:rotate(3.8deg)}
}

/* =========================================================
   SOY. v62 — foreign-language editorial line-break discipline
   EN / KO / ZH-CN / ZH-TW only. Japanese is intentionally untouched.
   ========================================================= */
html[lang="en"] .home-v16 .hero-sub,
html[lang="en"] .home-v16 .feature-body,
html[lang="ko"] .home-v16 .hero-sub,
html[lang="ko"] .home-v16 .feature-body,
html[lang="zh-cn"] .home-v16 .hero-sub,
html[lang="zh-cn"] .home-v16 .feature-body,
html[lang="zh-tw"] .home-v16 .hero-sub,
html[lang="zh-tw"] .home-v16 .feature-body{
  text-wrap:pretty;
}

html[lang="ko"] .home-v16 .hero-sub,
html[lang="ko"] .home-v16 .feature-body,
html[lang="ko"] .home-v16 .story-body{
  word-break:keep-all;
  overflow-wrap:break-word;
}

html[lang="zh-cn"] .home-v16 .hero-lead,
html[lang="zh-cn"] .home-v16 .hero-sub,
html[lang="zh-cn"] .home-v16 .feature-body,
html[lang="zh-cn"] .home-v16 .story-body,
html[lang="zh-tw"] .home-v16 .hero-lead,
html[lang="zh-tw"] .home-v16 .hero-sub,
html[lang="zh-tw"] .home-v16 .feature-body,
html[lang="zh-tw"] .home-v16 .story-body{
  line-break:strict;
  word-break:normal;
  overflow-wrap:normal;
}

html[lang="en"] .home-v16 .controlled-title,
html[lang="ko"] .home-v16 .controlled-title,
html[lang="zh-cn"] .home-v16 .controlled-title,
html[lang="zh-tw"] .home-v16 .controlled-title,
html[lang="en"] .home-v16 .story-page h2,
html[lang="ko"] .home-v16 .story-page h2,
html[lang="zh-cn"] .home-v16 .story-page h2,
html[lang="zh-tw"] .home-v16 .story-page h2{
  text-wrap:balance;
}

html[lang="en"] .home-v16 .ml-controlled-copy .ml-copy-line,
html[lang="ko"] .home-v16 .ml-controlled-copy .ml-copy-line,
html[lang="zh-cn"] .home-v16 .ml-controlled-copy .ml-copy-line,
html[lang="zh-tw"] .home-v16 .ml-controlled-copy .ml-copy-line{
  display:block;
}

@media(min-width:621px){
  html[lang="en"] .home-v16 .ml-controlled-copy,
  html[lang="ko"] .home-v16 .ml-controlled-copy,
  html[lang="zh-cn"] .home-v16 .ml-controlled-copy,
  html[lang="zh-tw"] .home-v16 .ml-controlled-copy{
    max-width:none;
  }

  html[lang="en"] .home-v16 .ml-controlled-copy .ml-copy-line,
  html[lang="ko"] .home-v16 .ml-controlled-copy .ml-copy-line,
  html[lang="zh-cn"] .home-v16 .ml-controlled-copy .ml-copy-line,
  html[lang="zh-tw"] .home-v16 .ml-controlled-copy .ml-copy-line{
    white-space:nowrap;
  }
}

@media(max-width:620px){
  html[lang="en"] .home-v16 .ml-controlled-copy .ml-copy-line,
  html[lang="ko"] .home-v16 .ml-controlled-copy .ml-copy-line,
  html[lang="zh-cn"] .home-v16 .ml-controlled-copy .ml-copy-line,
  html[lang="zh-tw"] .home-v16 .ml-controlled-copy .ml-copy-line{
    display:inline;
    white-space:normal;
  }
  /* The story lines become inline on mobile in the existing design.
     Restore the sentence space that block layout does not need on desktop. */
  html[lang="en"] .home-v16 .story-body span + span::before,
  html[lang="ko"] .home-v16 .story-body span + span::before{
    content:" ";
  }
}


/* SOY. LIVE — App Store CTA polish, 2026-08-28.
   Scope is intentionally limited to the existing store card. */
.home-v16 .store-actions-v16{
  display:flex;
  align-items:center;
  justify-content:flex-end;
}
.home-v16 .store-live-cta{
  width:196px;
  min-height:72px;
  padding:13px 13px 13px 17px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  border:1px solid rgba(76,52,66,.12);
  border-radius:20px;
  background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(249,240,247,.93));
  box-shadow:0 12px 30px rgba(89,56,74,.10),inset 0 1px 0 rgba(255,255,255,.82);
  color:#3d3038;
  text-decoration:none;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.home-v16 .store-live-cta:hover{
  transform:translateY(-1px);
  border-color:rgba(116,77,98,.22);
  box-shadow:0 16px 34px rgba(89,56,74,.14),inset 0 1px 0 rgba(255,255,255,.88);
}
.home-v16 .store-live-cta:active{transform:translateY(0)}
.home-v16 .store-live-cta-copy{display:grid;gap:3px;min-width:0}
.home-v16 .store-live-cta-kicker{
  color:#9a7f8d;
  font-size:9px;
  font-weight:700;
  line-height:1.2;
  letter-spacing:.16em;
}
.home-v16 .store-live-cta-title{
  color:#3d3038;
  font-size:14px;
  font-weight:650;
  line-height:1.28;
}
.home-v16 .store-live-cta-arrow{
  width:31px;
  height:31px;
  flex:0 0 31px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:linear-gradient(135deg,#3b3036,#705668);
  color:#fff;
  box-shadow:0 6px 16px rgba(70,47,59,.16);
  font-size:14px;
  line-height:1;
}
@media(max-width:860px){
  .home-v16 .store-actions-v16{justify-content:flex-start}
}
@media(max-width:620px){
  .home-v16 .store-actions-v16{grid-column:1/-1;width:100%;margin-top:3px}
  .home-v16 .store-live-cta{width:100%;min-height:62px;border-radius:17px;padding:11px 12px 11px 15px}
  .home-v16 .store-live-cta-title{font-size:13px}
  .home-v16 .store-live-cta-arrow{width:29px;height:29px;flex-basis:29px}
}


/* SOY. LIVE — official App Store badge, 2026-08-28.
   Scope is limited to the existing store card CTA area. */
.home-v16 .store-official-badge-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  line-height:0;
}
.home-v16 .store-official-badge{
  display:block;
  width:180px;
  height:auto;
  max-width:100%;
}
.home-v16 .store-official-badge-link:focus-visible{
  outline:2px solid rgba(112,86,104,.45);
  outline-offset:5px;
  border-radius:10px;
}
@media(max-width:620px){
  .home-v16 .store-official-badge{width:164px}
}
