:root{--bg:#0f1024;--card:#1a1b3a;--ink:#ecebf7;--mut:#a9a8c9;--acc:#e6c36a;--line:#3b3c6b;--fire:#ff8a65;--earth:#9ccc65;--air:#ffd54f;--water:#64b5f6}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#23245a,var(--bg) 60%) fixed;color:var(--ink);font:16px/1.8 "Shippori Mincho","Hiragino Mincho ProN",serif}
main{max-width:760px;margin:0 auto;padding:24px 16px 60px}h1{font-size:2rem;text-align:center;margin:.4em 0 0;color:var(--acc);letter-spacing:.1em}.sub{text-align:center;color:var(--mut);margin:0 0 24px}
form,.card,.about{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px}
label{display:block;margin:10px 0 4px;color:var(--mut);font-size:.9rem}input,select{background:#0c0d20;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px;font:inherit;max-width:100%}
.row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.row input{width:5.2em}.row input#y{width:6.4em}
.btn,.btn2{display:block;width:100%;margin-top:16px;padding:12px;border:0;border-radius:10px;background:var(--acc);color:#1b1530;font:700 1.05rem inherit;cursor:pointer}.btn2{background:transparent;color:var(--acc);border:1px solid var(--acc)}
.note{color:var(--mut);font-size:.88rem}#result{margin-top:28px}
.wheel svg{width:100%;max-width:440px;display:block;margin:0 auto}
.w0{fill:#12133000;stroke:var(--acc);stroke-width:1.5}.w1{fill:none;stroke:var(--line)}.w2{stroke:var(--line);stroke-dasharray:3 3}.ax{stroke:var(--acc);stroke-width:1.4}
.sg{font-size:17px;text-anchor:middle;dominant-baseline:central}.fire{fill:var(--fire)}.earth{fill:var(--earth)}.air{fill:var(--air)}.water{fill:var(--water)}
.hn{font-size:9px;fill:var(--mut);text-anchor:middle;dominant-baseline:central}.pl{font-size:16px;fill:var(--ink);text-anchor:middle;dominant-baseline:central}.pd{fill:var(--ink)}
.as{stroke-width:1;opacity:.75}.trine,.sext{stroke:#64b5f6}.square,.opp{stroke:#ef5350}
.cards{display:grid;gap:12px;margin-top:16px}.card h3{margin:0 0 6px;color:var(--acc);font-size:1.05rem}.card p{margin:.3em 0}
.sec{color:var(--acc);border-bottom:1px solid var(--line);padding-bottom:4px;margin-top:28px}
.tbl table{width:100%;border-collapse:collapse}.tbl th,.tbl td{padding:6px 4px;border-bottom:1px solid #2a2b55;text-align:left;vertical-align:top}.tbl th{white-space:nowrap;font-weight:400;color:var(--acc)}
.tbl tr.txt td{color:var(--mut);font-size:.9rem;border-bottom:1px solid var(--line);padding-top:0}.r{color:#ef9a9a;font-size:.85rem}
.asp{padding-left:1.1em}.asp li{margin:8px 0}small{color:var(--mut)}
footer{text-align:center;color:var(--mut);font-size:.85rem;margin-top:40px}a{color:var(--acc)}.about{margin-top:28px}.about h2{font-size:1.1rem;color:var(--acc);margin-top:0}
.links{display:flex;flex-wrap:wrap;gap:6px 14px;justify-content:center;font-size:.9rem;margin-bottom:8px}.links a{text-decoration:none}
.crumb{font-size:.82rem;color:var(--mut)}.doc h2{color:var(--acc);font-size:1.15rem;border-bottom:1px solid var(--line);padding-bottom:4px;margin-top:28px}.h1s{font-size:1.45rem;text-align:left;letter-spacing:0;line-height:1.5}
.lead{color:var(--acc)}.ad{margin:24px 0;min-height:1px}a.btn{text-align:center;text-decoration:none}.pn{display:flex;justify-content:space-between;gap:8px;margin-top:28px;font-size:.92rem}
.doc ul{padding-left:1.2em}.doc li{margin:4px 0}
