@charset "UTF-8";
/* ============================================================
   ネット神社・ネットお寺のお参り（sanpai.js）
   動きは html.allow-motion のときだけ。「動きを減らす」では同じ場面を静止で表示する。
   ============================================================ */
.is-sanpai .site-header,.is-sanpai .site-footer{display:none}
.is-sanpai main{min-height:100svh}

.sanpai{position:relative;min-height:100svh;display:flex;flex-direction:column;overflow:hidden;color:#f3f1e6;background:#0f1c15;isolation:isolate}

/* 背景: 参道を進むにつれて写真が近づく */
.sanpai-scene{position:absolute;inset:0;z-index:-1;overflow:hidden}
.sanpai-backdrop{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 45%;transform-origin:72% 58%}
.sanpai-temple .sanpai-backdrop{transform-origin:58% 52%}
.sanpai-temple .sanpai-backdrop{object-position:center 55%}
.sanpai[data-step=water] .sanpai-backdrop{transform:scale(1.28)}
.sanpai[data-step=offering] .sanpai-backdrop,.sanpai[data-step=worship] .sanpai-backdrop{transform:scale(1.7)}
.sanpai[data-step=reveal] .sanpai-backdrop{transform:scale(1.9);filter:brightness(.5) blur(3px)}
.sanpai[data-step=leave] .sanpai-backdrop{transform:scale(1.02)}
.allow-motion .sanpai-backdrop{transition:transform 2.2s cubic-bezier(.3,.6,.2,1),filter 1.8s ease}
.sanpai-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0b161080 0%,#0b161020 32%,#0b1610a6 72%,#0b1610e6 100%)}
.sanpai[data-step=reveal] .sanpai-shade,.sanpai[data-step=leave] .sanpai-shade{background:linear-gradient(180deg,#0b1610b3 0%,#0b161066 40%,#0b1610cc 75%,#0b1610f2 100%)}
.allow-motion .sanpai-shade{transition:background 1.4s ease}

/* 上部の案内 */
.sanpai-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 5.6%}
.sanpai .quiet-brand{color:#f3f1e6}
.sanpai .quiet-brand small{color:#d7d6c6}
.sanpai .sanpai-exit{color:#f3f1e6;border-color:#ffffff55;background:#0f1c1566}
.sanpai .sanpai-exit:hover{background:#ffffff1f}
.sanpai :focus-visible{outline-color:#e6d39b}

/* お姿の間: お参りの最後に現れる */
.sanpai-shrine-room{flex:1;display:grid;place-items:center;min-height:0;padding:8px 16px}
.sanpai-deity{position:relative;margin:0;width:min(300px,58vw,34svh);aspect-ratio:4/5;opacity:0;visibility:hidden}
.sanpai.is-revealed .sanpai-deity{opacity:1;visibility:visible}
.allow-motion .sanpai-deity{transition:opacity 1s ease,visibility 0s linear 1s}
.allow-motion .sanpai.is-revealed .sanpai-deity{transition:opacity 1s ease}
.sanpai-deity img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;border-radius:6px;box-shadow:0 0 0 1px #e9d9a655,0 30px 60px -20px #000c}
.sanpai-halo{position:absolute;inset:-28%;z-index:0;border-radius:50%;background:radial-gradient(circle,#fff1c466 0%,#f2d98d33 30%,transparent 65%);opacity:0}
.sanpai.is-revealed .sanpai-halo{opacity:1}
.allow-motion .sanpai.is-revealed .sanpai-halo{animation:sanpai-halo 6s ease-in-out 1.6s infinite alternate;transition:opacity 2s ease 1.2s}
@keyframes sanpai-halo{from{transform:scale(.96);opacity:.75}to{transform:scale(1.04);opacity:1}}
.sanpai-cover{position:absolute;inset:0;z-index:2;overflow:hidden;border-radius:6px;perspective:900px}
/* 神社: 御簾 */
.sanpai-misu{position:absolute;inset:0;background:repeating-linear-gradient(180deg,#8a6a3a 0 3px,#6d5129 3px 4px,#a7844c 4px 7px,#5e4423 7px 8px);box-shadow:inset 0 -18px 0 -8px #3b2a14}
.sanpai-misu::before{content:"";position:absolute;left:0;right:0;top:18%;height:14px;background:linear-gradient(90deg,#4a2b18,#7b1f1f 20%,#9b2a24 50%,#7b1f1f 80%,#4a2b18)}
.sanpai-misu::after{content:"";position:absolute;left:44%;width:12%;top:calc(18% + 14px);height:42%;background:linear-gradient(180deg,#9b2a24,#6d1717);clip-path:polygon(0 0,100% 0,100% 82%,50% 100%,0 82%)}
.sanpai.is-revealed .sanpai-misu{transform:translateY(-104%)}
.allow-motion .sanpai-misu{transition:transform 2.6s cubic-bezier(.45,.05,.2,1) .25s}
/* お寺: 扉 */
.sanpai-door{position:absolute;top:0;bottom:0;width:50%;background:linear-gradient(90deg,#3b2414,#5a3a20 45%,#3e2716);box-shadow:inset 0 0 0 6px #2a190d,inset 0 0 0 7px #b8904f55}
.sanpai-door::before{content:"";position:absolute;inset:14% 18%;border:1px solid #c79a5566;background:repeating-linear-gradient(90deg,transparent 0 14px,#2a190d88 14px 16px)}
.sanpai-door-left{left:0;transform-origin:left center}
.sanpai-door-right{right:0;transform-origin:right center}
.sanpai.is-revealed .sanpai-door-left{transform:rotateY(-105deg)}
.sanpai.is-revealed .sanpai-door-right{transform:rotateY(105deg)}
.allow-motion .sanpai-door{transition:transform 2.4s cubic-bezier(.45,.05,.2,1) .25s}
/* 動きを減らす設定: 覆いはすぐに外す */
.reduce-motion .sanpai.is-revealed .sanpai-cover{display:none}

/* 案内の板 */
.sanpai-panel{position:relative;width:min(620px,calc(100% - 32px));margin:0 auto 28px;padding:24px 28px 18px;border:1px solid #ffffff26;border-radius:10px;background:#0f1c15c7;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 20px 50px -24px #000}
.sanpai-eyebrow{font-size:13.5px;letter-spacing:.12em;color:#d9d3b4}
.sanpai-eyebrow rt{color:#cfc9ac;font-size:10px}
.sanpai-progress{color:#b9b39a}
.sanpai-panel h1{font-family:var(--serif);font-size:clamp(24px,3vw,32px);line-height:1.6;letter-spacing:.08em;margin:10px 0 10px;color:#fbf8ec}
.sanpai-text{font-size:16px;line-height:2;color:#e8e5d6}
.sanpai-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.sanpai-actions .button{min-height:52px;gap:18px;padding:12px 22px;font-size:15px}
.sanpai-actions .button.primary{background:#e9dfb9;border-color:#e9dfb9;color:#1d2a20}
.sanpai-actions .button.primary:hover{background:#f4ecca}
.sanpai-actions .button.secondary{color:#f3f1e6;border-color:#ffffff66}
.sanpai-actions .button.secondary:hover{background:#ffffff1a}
.sanpai-actions .button[disabled]{opacity:.55;cursor:default}
.sanpai-count{display:inline-flex;gap:6px}
.sanpai-count i{width:8px;height:8px;border-radius:50%;border:1.5px solid currentColor;opacity:.7}
.sanpai-count i.is-done{background:currentColor;opacity:1}
.sanpai-sources{margin-top:18px;border-top:1px solid #ffffff1f;padding-top:6px}
.sanpai-sources summary{min-height:44px;display:flex;align-items:center;font-size:13.5px;color:#d9d3b4;cursor:pointer}
.sanpai-sources p{font-size:13.5px;line-height:1.9;color:#d7d3c2;margin:4px 0 10px}
.sanpai-source-links{display:flex;flex-direction:column;gap:2px}
.sanpai-source-links a{font-size:13.5px;color:#efe6c4;text-decoration:underline;text-underline-offset:4px;padding:6px 0}

/* 動作の余韻 */
.sanpai-effects{position:absolute;inset:0;pointer-events:none}
.sanpai-fx{position:absolute;left:50%;top:55%;pointer-events:none}
.sanpai-fx-water{width:40px;height:40px;margin:-20px;border-radius:50%;border:2px solid #d8f0f4cc;animation:sanpai-ripple 1.5s ease-out forwards}
.sanpai-fx-water::after{content:"";position:absolute;inset:-2px;border-radius:50%;border:1.5px solid #d8f0f480;animation:sanpai-ripple 1.5s ease-out .25s forwards}
@keyframes sanpai-ripple{from{transform:scale(.4);opacity:1}to{transform:scale(7);opacity:0}}
.sanpai-fx-clap{width:60px;height:60px;margin:-30px;border-radius:50%;border:2px solid #fff3d0;box-shadow:0 0 40px #fff3d088;animation:sanpai-clap .9s ease-out forwards}
@keyframes sanpai-clap{from{transform:scale(.3);opacity:1}to{transform:scale(5.5);opacity:0}}
.sanpai-fx-bow,.sanpai-fx-gassho{inset:0;left:0;top:0}
.sanpai-fx-bow{background:#050b07;animation:sanpai-bow 1.1s ease-in-out forwards}
@keyframes sanpai-bow{0%{opacity:0}40%{opacity:.55}100%{opacity:0}}
.sanpai-fx-gassho{background:radial-gradient(circle at 50% 50%,#ffe9b366,transparent 60%);animation:sanpai-glow 1.4s ease-out forwards}
@keyframes sanpai-glow{0%{opacity:0;transform:scale(.8)}35%{opacity:1}100%{opacity:0;transform:scale(1.15)}}
.sanpai-fx-coin{top:30%;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff6cf,#d8b25a 55%,#8c6a24);box-shadow:0 0 18px #ffd77a99;animation:sanpai-coin 1.3s cubic-bezier(.4,0,.8,.6) forwards}
@keyframes sanpai-coin{0%{transform:translateY(-30px) rotateX(0);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateY(160px) rotateX(720deg);opacity:0}}
/* お辞儀に合わせて景色がわずかに沈む */
.allow-motion .sanpai[data-effect=bow] .sanpai-scene,.allow-motion .sanpai[data-effect=gassho] .sanpai-scene{animation:sanpai-sink 1.1s ease-in-out}
@keyframes sanpai-sink{0%,100%{transform:none}45%{transform:translate3d(0,-1.2%,0)}}

/* 紹介ページの入口ボタン */
.visit-invitation .sanpai-entry{margin-top:12px;margin-left:0}
.visit-invitation .button+.sanpai-entry{margin-left:12px}

@media(max-width:760px){
  .sanpai-top{padding:16px 5%}
  .sanpai-panel{width:calc(100% - 24px);margin-bottom:12px;padding:18px 18px 12px}
  .sanpai-text{font-size:15px;line-height:1.9}
  .sanpai-actions .button{width:100%;justify-content:space-between}
  .sanpai-deity{width:min(250px,56vw,34svh)}
  .visit-invitation .button+.sanpai-entry{margin-left:0;width:100%;justify-content:space-between}
}
@media print{.sanpai-effects,.sanpai-top{display:none}}

/* 願い事の欄（送信・保存なし） */
.sanpai-extra:empty{display:none}
.sanpai-extra{margin-top:16px}
.sanpai-wish-label{display:block;font-size:14px;color:#e2dcc0;margin-bottom:8px}
.sanpai-wish-input{display:block;width:100%;min-height:96px;resize:vertical;padding:12px 14px;border:1px solid #ffffff4d;border-radius:6px;background:#0a140fcc;color:#fbf8ec;font:16px/1.9 var(--serif);letter-spacing:.04em}
.sanpai-wish-input:focus{outline:2px solid #e6d39b;outline-offset:2px;border-color:#e6d39b}
.sanpai-wish-note{font-size:13px;line-height:1.8;color:#cfcab3;margin-top:8px}
.sanpai-wish-card{margin:0;padding:14px 18px 12px;border-left:3px solid #d8b25a;background:#fff8e40f;border-radius:0 6px 6px 0}
.sanpai-wish-card figcaption{font-size:12.5px;color:#cfc9ac;letter-spacing:.06em}
.sanpai-wish-card blockquote{margin:6px 0 0;font-family:var(--serif);font-size:17px;line-height:1.9;color:#fbf6e2;white-space:pre-wrap;overflow-wrap:anywhere}
/* お参りを終えると、言葉が光の中へほどけて消える */
.sanpai-wish-card.is-fading{opacity:0}
.allow-motion .sanpai-wish-card.is-fading{animation:sanpai-wish-fade 1.5s ease-in forwards;opacity:1}
@keyframes sanpai-wish-fade{0%{opacity:1;filter:none;transform:none;letter-spacing:normal}60%{opacity:.5;filter:blur(2px)}100%{opacity:0;filter:blur(8px);transform:translate3d(0,-18px,0);letter-spacing:.3em}}
.sanpai-fx-wish{inset:0;left:0;top:0;background:radial-gradient(circle at 50% 70%,#fff2c955,transparent 55%);animation:sanpai-glow 1.4s ease-out forwards}
@media(max-width:760px){.sanpai-wish-input{min-height:84px;font-size:16px}}

/* お参りの入口（#/sanpai） */
.sanpai-entry-body{flex:1;display:flex;flex-direction:column;align-items:center;gap:26px;padding:4vh 0 40px}
.sanpai-entry-page .sanpai-backdrop{object-position:60% center;filter:brightness(.75)}
.sanpai-entry-panel{margin:0 auto}
.sanpai-choice{border:0;padding:0;margin:16px 0 0;display:flex;flex-wrap:wrap;gap:8px 10px}
.sanpai-choice legend{font-size:14px;color:#e2dcc0;margin-bottom:8px;padding:0}
.sanpai-choice label{position:relative;display:inline-flex;cursor:pointer}
.sanpai-choice input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.sanpai-choice span{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border:1px solid #ffffff4d;border-radius:999px;font-size:14.5px;color:#f3f1e6}
.sanpai-choice input:checked+span{background:#e9dfb9;border-color:#e9dfb9;color:#1d2a20}
.sanpai-choice input:focus-visible+span{outline:2px solid #e6d39b;outline-offset:3px}
.sanpai-results{width:min(980px,calc(100% - 32px));padding:26px 28px;border:1px solid #ffffff26;border-radius:10px;background:#0f1c15d9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.sanpai-results:focus{outline:none}
.sanpai-results h2{font-family:var(--serif);font-size:clamp(21px,2.4vw,26px);letter-spacing:.06em;color:#fbf8ec}
.sanpai-results-note{font-size:14.5px;line-height:1.9;color:#d7d3c2;margin:8px 0 18px}
.sanpai-candidates{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.sanpai-candidate{display:flex;flex-direction:column;border:1px solid #ffffff26;border-radius:8px;overflow:hidden;background:#0a140f99}
.sanpai-candidate img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center 22%}
.sanpai-candidate-body{flex:1;display:flex;flex-direction:column;padding:16px 18px 14px}
.sanpai-candidate-place{font-size:12.5px;letter-spacing:.08em;color:#d9c99f}
.sanpai-candidate h3{font-family:var(--serif);font-size:22px;line-height:1.6;margin:6px 0 8px;color:#fbf8ec}
.sanpai-candidate h3 rt{font-size:10px;color:#cfc9ac}
.sanpai-candidate-reason{font-size:14.5px;line-height:1.9;color:#e8e5d6}
.sanpai-candidate-source{margin-top:6px}
.sanpai-candidate-source a{font-size:12.5px;color:#efe6c4;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.sanpai-candidate-actions{margin-top:auto;padding-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}
.sanpai-candidate-actions .button{min-height:48px;gap:14px;padding:10px 18px;font-size:14.5px;background:#e9dfb9;border-color:#e9dfb9;color:#1d2a20}
.sanpai-candidate-actions .button:hover{background:#f4ecca}
.sanpai-candidate-actions .text-link{color:#efe6c4;border-bottom-color:#efe6c466;font-size:13.5px}
.sanpai-results-more{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:20px}
.sanpai-results-more .button{color:#f3f1e6;border-color:#ffffff66;background:transparent}
.sanpai-results-more .text-link{color:#efe6c4;border-bottom-color:#efe6c466}
.allow-motion .sanpai-results:not([hidden]){animation:inori-rise .7s cubic-bezier(.2,.7,.2,1) both}
.allow-motion .sanpai-candidate{animation:inori-rise .7s cubic-bezier(.2,.7,.2,1) both}
.allow-motion .sanpai-candidate:nth-child(2){animation-delay:.12s}
.allow-motion .sanpai-candidate:nth-child(3){animation-delay:.24s}
@media(max-width:760px){
  .sanpai-entry-body{padding-top:8px;gap:16px}
  .sanpai-results{width:calc(100% - 24px);padding:20px 16px}
  .sanpai-candidate-actions .button{width:100%;justify-content:space-between}
}

/* トップページの入口 */
.sanpai-home{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-block:36px 8px;padding:32px 36px;border-radius:10px;color:#f3f1e6;background:linear-gradient(110deg,#14261bf2,#1c3426e6 55%,#2a3f2fd9),url(./assets/shrine-v1-960.webp) center 40%/cover;box-shadow:var(--p-shadow)}
.sanpai-home .eyebrow{color:#d9c99f}
.sanpai-home h2{font-size:clamp(22px,2.6vw,28px);letter-spacing:.08em;margin:8px 0 10px;color:#fbf8ec}
.sanpai-home p:not(.eyebrow){font-size:15px;line-height:1.9;color:#e3e0d0;max-width:36em}
.sanpai-home .button{flex-shrink:0;background:#e9dfb9;border-color:#e9dfb9;color:#1d2a20}
.sanpai-home .button:hover{background:#f4ecca}
@media(max-width:760px){.sanpai-home{flex-direction:column;align-items:stretch;padding:24px 20px;gap:18px}.sanpai-home .button{justify-content:space-between}}

/* 背の低い画面: お姿と案内の板を少し詰めて、操作が画面に収まりやすくする */
@media(max-height:760px){
  .sanpai-deity{width:min(240px,50vw,28svh)}
  .sanpai-panel{padding-top:18px}
  .sanpai-panel h1{margin:6px 0}
}

