:root{--bg: #ffffff;--surface: #fafaf8;--border: #e6e4df;--text: #22201c;--muted: #6b6760;--accent: #6a4fa3;--accent-ink: #ffffff;--accent-soft: #f1edf8;--gold: #a67c2e;--danger: #b3261e;--danger-soft: #fdecea;--focus: #2457c5;--radius: 14px;color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Microsoft JhengHei,PingFang TC,Noto Sans TC,sans-serif;line-height:1.7;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:var(--bg);overflow-wrap:anywhere}a{color:var(--accent)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}.app{max-width:920px;margin:0 auto;padding:0 16px 32px;min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:20px 0 12px;border-bottom:1px solid var(--border)}.brand-title{font-size:1.35rem;font-weight:700;color:var(--text);text-decoration:none}.brand-subtitle{margin:0;color:var(--muted);font-size:.9rem}.app-nav{display:flex;gap:4px}.nav-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 14px;border-radius:999px;color:var(--text);text-decoration:none}.nav-link.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.app-main{flex:1;padding-top:8px}.app-footer{border-top:1px solid var(--border);margin-top:32px;padding-top:12px}.footer-links{margin:6px 0 0;font-size:.85rem}.privacy h2{font-size:1.05rem;margin-top:24px}.disclaimer{margin:0;color:var(--muted);font-size:.85rem}.page-title{font-size:1.3rem;margin:16px 0 4px}.muted{color:var(--muted)}.small{font-size:.875rem}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}@media(max-width:640px){.card-grid{grid-template-columns:minmax(0,1fr)}}.draw-card,.guidance{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card-heading{font-size:1.05rem;margin:0 0 8px}.result-title{font-size:1.15rem;font-weight:700;margin:0}.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.tag{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:0 10px;font-size:.85rem}.btn{min-height:44px;min-width:44px;padding:0 18px;border-radius:10px;border:1px solid transparent;font:inherit;font-weight:600;cursor:pointer;margin-top:8px}.btn:disabled{opacity:.7;cursor:progress}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-secondary{background:#fff;color:var(--accent);border-color:var(--accent)}.btn-danger{background:var(--danger);color:#fff}.btn-danger-outline{background:#fff;color:var(--danger);border-color:var(--danger)}.btn-row{display:flex;flex-wrap:wrap;gap:8px}.card-details{margin-top:12px;border-top:1px dashed var(--border);padding-top:8px}.card-details h3{font-size:.95rem;margin:12px 0 4px}.card-details ul,.guidance ul{margin:0;padding-left:1.2em}.verse{margin:8px 0;padding:8px 14px;border-left:3px solid var(--gold);background:#fff;font-size:1.05rem;letter-spacing:.08em}.verse span{display:block}.origin,.note{font-size:.82rem;color:var(--muted);margin:12px 0 0}.note{color:var(--text);background:var(--accent-soft);border-radius:8px;padding:6px 10px}.tarot-summary{display:flex;gap:12px;align-items:center}.tarot-art{flex:none;color:var(--accent)}.tarot-frame{fill:#fff;stroke:var(--gold);stroke-width:2}.tarot-numeral{font:600 18px Georgia,Times New Roman,serif;fill:currentColor}.tarot-cups{color:#2f6f8f}.tarot-swords{color:#4a5568}.tarot-pentacles{color:#8a6a1f}.tarot-wands{color:#a24a2a}.guidance-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.guidance-head h2{font-size:1.05rem;margin:0}.badge{font-size:.8rem;border-radius:999px;padding:2px 10px;background:#efede8;color:var(--muted)}.badge-complete{background:#e7f4ea;color:#23633a}.badge-stick_only,.badge-tarot_only,.badge-partial{background:#fff4e0;color:#7a5200}.guidance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:12px 0 0}@media(max-width:640px){.guidance-grid{grid-template-columns:minmax(0,1fr)}}.guidance-grid dt{font-weight:700;font-size:.9rem;color:var(--accent)}.guidance-grid dd{margin:2px 0 0}.guidance-theme{font-size:1.1rem;font-weight:600}.notice{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin:12px 0}.notice-error{background:var(--danger-soft);border-color:#f2b8b5;color:#5f1410}.history-list{list-style:none;padding:0;margin:12px 0;display:grid;gap:8px}.history-item{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;min-height:44px;padding:10px 14px;border:1px solid var(--border);border-radius:10px;color:var(--text);text-decoration:none;background:var(--surface)}.history-date{font-weight:600}.history-parts{display:flex;flex-wrap:wrap;gap:4px 12px;color:var(--muted);flex:1}.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px}.kv dd{margin:0}.confirm{border:1px solid #f2b8b5;background:var(--danger-soft);border-radius:10px;padding:12px 14px}.reveal{animation:reveal .5s ease-out}@keyframes reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.card-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(7,auto);column-gap:16px;row-gap:0}.card-grid-3>.draw-card{display:grid;grid-row:span 7;grid-template-rows:subgrid;row-gap:0;align-content:start}.draw-card .card-heading{margin:0 0 8px}.card-art{height:150px;display:flex;align-items:center;justify-content:center;margin-bottom:8px;background:#fff;border:1px solid var(--border);border-radius:10px}.draw-card .result-title,.card-hint{margin:0;align-self:start}.card-meta{margin:2px 0 0;min-height:1.5em}.draw-card .tag-row{margin:8px 0;min-height:1.7em;align-content:flex-start}.card-action{align-self:end}.card-action .btn{margin-top:0;width:100%}.card-details-placeholder{min-height:0}@media(max-width:760px){.card-grid-3{grid-template-columns:minmax(0,1fr);grid-template-rows:none}.card-grid-3>.draw-card{grid-row:auto;grid-template-rows:none;display:block;margin-bottom:16px}.draw-card:not(.is-drawn) .card-meta,.draw-card:not(.is-drawn) .tag-row{display:none}.draw-card:not(.is-drawn) .card-hint{margin-bottom:12px}}.app-header.is-hidden{display:none}.stick-art,.coins-art{color:var(--gold)}.stick-body{fill:#f6e7c8;stroke:var(--gold);stroke-width:2}.stick-tip{fill:#c8553d;fill-opacity:.85}.stick-tube{fill:#fff;stroke:var(--gold);stroke-width:2.5}.stick-label{font:600 15px system-ui,sans-serif;fill:#6b4b16}.stick-number{font:700 19px Georgia,serif;fill:#6b4b16}.coin{fill:#f6e7c8;stroke:var(--gold);stroke-width:2.5}.tarot-back{color:var(--accent)}.relating{display:flex;gap:10px;align-items:flex-start}.card-stack{display:grid;gap:16px;margin:16px 0}.insight{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.btn-link{display:inline-flex;align-items:center;text-decoration:none}.hexagram-art{flex:none;color:var(--text)}.hexagram-change{fill:var(--gold)}.verse.classical{letter-spacing:.04em;font-size:.98rem}.profile-form{display:grid;gap:6px;max-width:420px;margin:12px 0}.profile-form label{font-weight:600;margin-top:8px}.profile-form .text-input,.profile-form input[type=date],.profile-form input[type=time],.profile-form select{min-height:44px;padding:0 12px;border:1px solid var(--border);border-radius:10px;font:inherit;background:#fff;color:var(--text)}.profile-form .checkbox{display:flex;align-items:center;gap:8px;font-weight:400;min-height:44px}.profile-form .checkbox input{width:22px;height:22px}.pillars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-width:420px;margin:12px 0}.pillar{display:grid;justify-items:center;gap:2px;padding:10px 4px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.pillar-label{font-size:.8rem;color:var(--muted)}.pillar-char{font-size:1.5rem;font-weight:700;line-height:1.3}.pillar-char small{font-size:.7rem;font-weight:400;color:var(--muted);margin-left:2px}.element-bars{list-style:none;padding:0;margin:8px 0;display:grid;gap:6px;max-width:420px}.element-bars li{display:grid;grid-template-columns:2em 1fr 2em;align-items:center;gap:8px}.element-track{height:12px;background:#efede8;border-radius:999px;overflow:hidden}.element-bar{display:block;height:100%;border-radius:999px;min-width:4px}.element-wood{background:#3f8f5a}.element-fire{background:#c8553d}.element-earth{background:#b58a3c}.element-metal{background:#8a8f98}.element-water{background:#2f5f8f}@media(max-width:640px){.app{padding-bottom:calc(88px + env(safe-area-inset-bottom))}.app-nav{position:fixed;left:0;right:0;bottom:0;z-index:10;justify-content:space-around;gap:0;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:#fffffff7;border-top:1px solid var(--border)}.nav-link{flex:1;border-radius:12px}.app-header{padding-top:calc(16px + env(safe-area-inset-top))}}.greeting{margin:16px 0 0;font-weight:600;color:var(--accent)}.welcome{max-width:520px;margin:0 auto}.welcome-hero{text-align:center;padding:28px 0 8px}.welcome-hero h1{font-size:1.8rem;margin:0}.welcome-sub{color:var(--muted)}.welcome-steps{display:flex;gap:8px;list-style:none;padding:0;margin:16px 0}.welcome-steps li{flex:1;text-align:center;padding:6px 0;border-bottom:3px solid var(--border);color:var(--muted)}.welcome-steps li.active{border-color:var(--accent);color:var(--accent);font-weight:600}.welcome-steps li.done{border-color:#c9bde3}.btn-text{background:none;border:none;color:var(--accent);font:inherit;min-height:44px;cursor:pointer;padding:0}.card-art{perspective:600px}.card-art.is-busy .stick-art{transform-origin:50% 95%;animation:tube-shake .18s ease-in-out infinite alternate}.card-art.is-busy .tarot-back{animation:card-flip .55s ease-in-out infinite}.card-art.is-busy .coin,.card-art.is-busy .coins-art rect{transform-box:fill-box;transform-origin:center;animation:coin-toss .3s ease-in-out infinite alternate}.card-art.is-busy .coins-art g:nth-child(2) *{animation-delay:.1s}.card-art.is-busy .coins-art g:nth-child(3) *{animation-delay:.2s}.card-art.just-drawn .stick-art{animation:stick-rise .6s ease-out both}.card-art.just-drawn .tarot-art{animation:card-reveal .6s ease-out both}.card-art.just-drawn .hex-line{animation:line-in .3s ease-out both;animation-delay:calc(var(--i) * .12s)}@keyframes tube-shake{0%{transform:rotate(-7deg)}to{transform:rotate(7deg)}}@keyframes card-flip{0%{transform:rotateY(0)}50%{transform:rotateY(90deg)}to{transform:rotateY(0)}}@keyframes coin-toss{0%{transform:scaleX(1) translateY(0)}to{transform:scaleX(.15) translateY(-8px)}}@keyframes stick-rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes card-reveal{0%{opacity:.2;transform:rotateY(90deg)}to{opacity:1;transform:rotateY(0)}}@keyframes line-in{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
