.cal{position:relative;isolation:isolate;width:100%;max-width:440px;min-height:100svh;margin:auto;background:#0f0d10;color:#f3ece4;font:16px/1.65 system-ui,sans-serif;overflow-x:hidden}.cal *{box-sizing:border-box}.cal button,.cal input{font:inherit}.cal button{cursor:pointer}.cal button:disabled{opacity:.4;cursor:default}.cal :focus-visible{outline:3px solid #ecd2a4;outline-offset:3px}.cal-backdrop{position:absolute;inset:0 0 auto;width:100%;height:52svh;object-fit:cover;object-position:50% 25%;opacity:.28;z-index:-1;-webkit-mask-image:linear-gradient(#000 20%,transparent);mask-image:linear-gradient(#000 20%,transparent)}.cal.is-result .cal-backdrop{opacity:.16}.cal .pp-header img{filter:brightness(0) invert(1)}.cal-step{display:flex;flex-direction:column;justify-content:flex-end;gap:28px;min-height:calc(100svh - 64px);padding:24px 20px max(28px,env(safe-area-inset-bottom))}.cal-ask{margin:0;font-size:27px;font-weight:750;line-height:1.45}.cal-ask span{display:block;opacity:0;animation:cal-in .55s ease forwards}.cal-ask b{color:#ff8aa6;font-weight:800}.cal-reveal{opacity:0;animation:cal-in .5s ease .5s forwards}.cal-choices{display:grid;gap:10px}.cal-choices button,.cal-pills button{border:1px solid #ffffff2a;border-radius:14px;background:#ffffff10;color:#f3ece4;min-height:54px;padding:12px 16px;font-weight:650;text-align:left}.cal-choices button[aria-pressed=true],.cal-pills button[aria-pressed=true]{background:#f7f2ea;color:#16110f;border-color:#f7f2ea}.cal-controls{display:grid;gap:12px}.cal-pills{display:flex;gap:8px}.cal-pills button{flex:1;text-align:center;border-radius:999px;min-height:48px}.cal-calendar{display:grid;gap:8px}.cal-check{display:flex;gap:8px;align-items:center;font-size:14px}.cal-input{width:100%;border:1px solid #ffffff38;border-radius:14px;padding:14px 16px;color:#fff;background:#06060680;font-size:20px;letter-spacing:.04em}.cal-input::placeholder{color:#ffffff55}.cal-next{width:100%;border:0;border-radius:14px;background:#f7f7f7;color:#171717;min-height:54px;font-weight:750}.cal-skip{background:none;border:0;color:#d8c8bb;text-decoration:underline;min-height:44px}.cal-note{margin:4px 0 0;font-size:13px;color:#c9bcb2}.cal-error{margin:0;font-size:14px;color:#ffb0a8}.cal-loading{display:grid;place-items:center;align-content:center;gap:16px;min-height:70svh;padding:24px;text-align:center}.cal-spin{width:36px;height:36px;border:2px solid #fff3;border-top-color:#fff;border-radius:50%;animation:cal-spin 1s linear infinite}.cal-error-box{display:grid;gap:10px;width:100%}.cal-result{padding:8px 16px 40px;display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.cal-rise{opacity:0;animation:cal-in .5s ease forwards}.cal-hero{padding:34px 4px 14px}.cal-hero small{color:#d8c8bb;letter-spacing:.1em}.cal-hero h1{margin:4px 0 6px;font:800 54px/1.1 serif;letter-spacing:.06em}.cal-hero h1 span{font:600 16px system-ui,sans-serif;margin-left:10px;color:#ff8aa6;letter-spacing:.1em}.cal-hero p{margin:0;font-size:14px;color:#e3d7cd}.cal-block{border:1px solid #ffffff1c;border-radius:20px;background:#ffffff08;padding:16px 14px}.cal-block h2{margin:0 0 12px;font-size:18px;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.cal-block h2 span{font-size:13px;font-weight:500;color:#d8c8bb}.cal-grid{width:100%;margin-top:12px;border-collapse:collapse;font-size:13px;table-layout:fixed}.cal-grid td,.cal-grid th{padding:7px 2px;text-align:center;border-top:1px solid #ffffff14;vertical-align:top}.cal-grid thead th{border-top:0;color:#cbbcc3;font-weight:500}.cal-grid tbody th{color:#cbbcc3;font-weight:500;width:44px}.cal-grid td span{display:block;line-height:1.35;margin-bottom:3px}.cal-grid td small{display:block;font-size:11px;color:#d8c8bb}[data-wx="木"]{--wx:#4fc27a}[data-wx="火"]{--wx:#f07550}[data-wx="土"]{--wx:#d6a45a}[data-wx="金"]{--wx:#e4d49a}[data-wx="水"]{--wx:#5fa8ee}.cal-grid td span[data-wx]{color:var(--wx)}.cal-xiji{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0}.cal-xiji div{border-radius:14px;background:#ffffff0c;padding:10px;text-align:center}.cal-xiji dt{font-size:12px;color:#cbbcc3}.cal-xiji dd{margin:4px 0 0;display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.cal-xiji b{font-size:20px;color:var(--wx,#fff)}.cal-xiji b.is-ji{opacity:.75}.cal-elements{display:grid;gap:8px}.cal-elements div{display:grid;grid-template-columns:28px 1fr 20px;gap:10px;align-items:center}.cal-elements strong{color:var(--wx)}.cal-elements meter{width:100%;height:10px}.cal-elements span{text-align:right;font-size:14px}.cal-luck{list-style:none;margin:0;padding:0 0 4px;display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin}.cal-luck li{flex:0 0 64px;border:1px solid #ffffff1c;border-radius:14px;padding:8px 4px;text-align:center;display:grid;gap:1px;font-size:12px;color:#d8c8bb}.cal-luck b{font-size:18px;color:#f3ece4}.cal-luck li.is-current{border-color:#ff8aa6;background:#ff4f7b22;color:#f3ece4}.cal-flow{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cal-flow div{border-radius:14px;background:#ffffff0c;padding:12px;display:grid;gap:2px}.cal-flow small{font-size:12px;color:#cbbcc3}.cal-flow b{font-size:24px}.cal-flow span{font-size:13px}.cal-flow em{font-style:normal;font-size:12px;color:#ff8aa6}.cal-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.cal-tags li{border:1px solid #ffffff24;border-radius:999px;padding:6px 12px;font-size:14px;display:flex;gap:6px;align-items:baseline}.cal-tags span{font-size:12px;color:#cbbcc3}.cal-result .ex-evidence{margin:0;border-color:#ffffff24;border-radius:16px}.cal-actions{display:flex;flex-wrap:wrap;gap:10px}.cal-actions a,.cal-actions button{flex:1 1 30%;min-height:48px;border:1px solid #ffffff38;border-radius:14px;background:transparent;color:#f3ece4;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:14px;padding:8px}.cal-actions button:first-child{background:#f7f7f7;color:#171717;border-color:#f7f7f7;font-weight:700}.cal-foot{margin:4px 0 0;font-size:12px;color:#a99d94;text-align:center}@keyframes cal-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes cal-spin{to{transform:rotate(1turn)}}@media(prefers-reduced-motion:reduce){.cal-ask span,.cal-reveal,.cal-rise{animation:none;opacity:1}.cal-spin{animation:none}}@media(max-width:360px){.cal-step{padding-left:14px;padding-right:14px}.cal-ask{font-size:24px}.cal-hero h1{font-size:46px}.cal-result{padding-left:12px;padding-right:12px}}