/* =========================================================
   SatoRader 読み込みアニメーション（/service/satorader/ のみ）
   元: satorader_loader.html。マークアップは service_satorader.html の
   body_start ブロック、制御は js/satorader-loader.js。
   ========================================================= */
#sr-loader{
  --sr-green:#1f5a3a;
  --sr-deep:#163f29;
  --sr-ink:#ffffff;
  --sr-mute:#bcd3c2;
  --sr-accent:#f0b37e;
  position:fixed; inset:0; z-index:2147483000;
  background:var(--sr-green); color:var(--sr-ink);
  overflow:hidden;
  font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP","Noto Sans CJK JP",Meiryo,sans-serif;
  clip-path:inset(0 0 0 0);
  transition:clip-path .9s cubic-bezier(.7,0,.2,1);
}
#sr-loader.sr-exit{clip-path:inset(0 0 100% 0)}
#sr-loader .sr-field{position:absolute; inset:0}
#sr-loader .sr-v{
  position:absolute; white-space:nowrap; line-height:1.18;
  opacity:0; will-change:transform,opacity,filter;
  user-select:none; pointer-events:none;
}
#sr-loader .sr-v.is-vert{writing-mode:vertical-rl; line-height:1.22}
#sr-loader .sr-v.f-min{font-family:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","Noto Serif CJK JP",serif}
#sr-loader .sr-v.is-dim{color:var(--sr-mute)}

#sr-loader .sr-core{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  display:flex; flex-direction:column; align-items:center; gap:clamp(14px,2.4vmin,26px);
  text-align:center; width:min(88vw,760px);
}
#sr-loader .sr-dot{
  width:12px; height:12px; border-radius:50%; background:var(--sr-accent);
  transform:scale(0); position:relative;
}
#sr-loader .sr-dot::after{
  content:""; position:absolute; inset:-6px; border-radius:50%;
  border:2px solid var(--sr-accent); opacity:0;
}
#sr-loader.sr-gathered .sr-dot{animation:sr-dot .55s cubic-bezier(.2,1.4,.4,1) forwards}
#sr-loader.sr-gathered .sr-dot::after{animation:sr-ring 1.1s ease-out .15s forwards}
@keyframes sr-dot{to{transform:scale(1)}}
@keyframes sr-ring{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(5)}}

#sr-loader .sr-title{
  margin:0; font-family:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","Noto Serif CJK JP",serif;
  font-weight:800; font-size:clamp(30px,7.4vmin,84px); line-height:1.25; letter-spacing:.02em;
}
#sr-loader .sr-line{display:block; clip-path:inset(0 100% 0 0)}
#sr-loader.sr-titled .sr-line{animation:sr-wipe .8s cubic-bezier(.6,0,.2,1) forwards}
#sr-loader.sr-titled .sr-line:nth-child(2){animation-delay:.32s}
@keyframes sr-wipe{to{clip-path:inset(0 0 0 0)}}
#sr-loader .sr-brand{
  display:flex; flex-direction:column; align-items:center; gap:4px;
  opacity:0; transform:translateY(6px); transition:opacity .6s ease .75s, transform .6s ease .75s;
}
#sr-loader.sr-titled .sr-brand{opacity:1; transform:none}
#sr-loader .sr-brand b{font-weight:900; font-size:clamp(20px,3.6vmin,36px); letter-spacing:.04em}
#sr-loader .sr-brand span{font-weight:500; font-size:clamp(11px,1.5vmin,14px); color:var(--sr-mute); letter-spacing:.12em}

#sr-loader .sr-skip{
  position:absolute; right:max(16px,env(safe-area-inset-right)); bottom:max(16px,env(safe-area-inset-bottom));
  background:transparent; color:var(--sr-mute); border:1px solid rgba(255,255,255,.35);
  font:inherit; font-size:13px; padding:8px 14px; border-radius:999px; cursor:pointer;
}
#sr-loader .sr-skip:hover{color:#fff; border-color:#fff}
#sr-loader .sr-skip:focus-visible{outline:3px solid var(--sr-accent); outline-offset:3px}
#sr-loader .sr-status{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0)}

/* 読み込み中はページのスクロールを止める */
html.sr-loading, html.sr-loading body{overflow:hidden}
