:root{--ink: #33323a;--ink-soft: #6f6b78;--paper: #f7f2e7;--paper-card: #fcfaf3;--line: #e5dfd0;--accent: #4a4468;--accent-strong: #3a3555;--accent-soft: #b9b3cf;--sage: #8ba08e;--sage-soft: #dde5da;--gold: #b08d57;--shadow: rgba(58, 53, 85, .1);--font-sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", "Noto Sans JP", sans-serif;--font-serif: "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);color:var(--ink);background:linear-gradient(160deg,#f7f2e7f5,#e9e6f4d9 48%,#e6efe8d9),var(--paper);line-height:1.85;font-size:16px;overflow-x:hidden;overflow-x:clip}main{max-width:760px;margin:0 auto;padding:0 20px 64px}.site-header{max-width:1060px;margin:0 auto;padding:20px 20px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:inline-block;line-height:0}.nav-history{flex-shrink:0;font-size:.82rem;font-weight:700;text-decoration:none;color:var(--accent-strong);border:1px solid var(--accent-soft);border-radius:999px;padding:6px 14px;background:#fff9}.brand img{width:208px;height:auto;display:block}.site-footer{max-width:760px;margin:0 auto;padding:32px 20px 48px;color:var(--ink-soft);font-size:.82rem;line-height:1.7;border-top:1px solid var(--line)}.footer-nav{margin-top:10px;display:flex;gap:18px;flex-wrap:wrap}.footer-nav a{color:var(--ink-soft)}h1,h2,h3{line-height:1.45;font-weight:700;letter-spacing:0}a{color:var(--accent)}.card{background:var(--paper-card);border:1px solid var(--line);border-radius:8px;padding:24px 26px;margin:22px 0;box-shadow:0 18px 48px var(--shadow)}.label{display:inline-block;font-size:.76rem;letter-spacing:.04em;color:var(--accent-strong);border:1px solid rgba(74,68,104,.18);background:#efece2;border-radius:999px;padding:3px 12px;margin-bottom:8px;font-weight:700}.btn{display:inline-block;border:none;cursor:pointer;font-family:inherit;font-size:1rem;font-weight:700;background:var(--accent);color:#fff;padding:14px 30px;border-radius:999px;text-decoration:none;transition:opacity .15s,transform .15s,box-shadow .15s;box-shadow:0 12px 24px #3a355538}.btn:hover{opacity:.94;transform:translateY(-1px)}.btn:disabled{opacity:.6;cursor:default;transform:none;box-shadow:none}.btn:focus-visible,a:focus-visible,textarea:focus-visible{outline:3px solid rgba(74,68,104,.24);outline-offset:3px}.btn-quiet{background:#ffffffad;color:var(--accent-strong);border:1px solid var(--accent-soft);box-shadow:none}.gua{display:flex;flex-direction:column-reverse;gap:9px;align-items:center}.gua .yao{position:relative;display:flex;justify-content:center;gap:20px;width:124px}.gua .yao .bar{height:11px;background:#3a3740;border-radius:2px}.gua .yao.yang .bar{width:124px}.gua .yao.yin .bar{width:52px}.gua .yao.moving .bar{background:var(--accent);box-shadow:0 0 10px #4a446861}.gua .yao.moving:after{content:"動";position:absolute;right:-26px;top:50%;transform:translateY(-50%);font-size:.72rem;color:var(--accent);letter-spacing:0}.gua .yao.reveal{opacity:0;transform:translateY(9px);transition:opacity .55s ease,transform .55s ease}.gua .yao.reveal.in{opacity:1;transform:none}.ritual{position:fixed;inset:0;z-index:50;cursor:pointer;display:flex;align-items:center;justify-content:center;background:#282634f2;opacity:0;transition:opacity .5s ease}.ritual[hidden]{display:none}.ritual.open{opacity:1}.ritual-inner{text-align:center;color:#f7f2e7;padding:24px}.ritual-msg{font-size:1.02rem;letter-spacing:.02em;color:#e5e0d2;min-height:1.6em;margin:0 0 34px;opacity:0;transition:opacity .9s ease}.ritual-msg.in{opacity:1}.ritual .gua{margin:0 auto}.ritual .gua .yao .bar{background:#f3efe4}.ritual .gua .yao.moving .bar{background:var(--accent-soft);box-shadow:0 0 12px #b9b3cfb3}.ritual .gua .yao.moving:after{color:var(--accent-soft)}.ritual-name{font-family:var(--font-serif);font-size:1.9rem;letter-spacing:.2em;margin-top:34px;opacity:0;transform:translateY(8px);transition:opacity 1s ease,transform 1s ease}.ritual-name.in{opacity:1;transform:none}.ritual-go{margin-top:30px}.ritual-skip{font-size:.78rem;color:#b9b3cf;margin-top:16px}@media(max-width:640px){body{font-size:15.5px}main{padding:0 16px 56px}.site-header{padding:16px 16px 14px}.brand img{width:176px}.site-footer{padding:28px 16px 42px}.card{padding:20px 18px;margin:18px 0}.footer-nav{gap:10px 16px}}
