/* Five crafted visual directions for IRODORI — desktop and mobile */
:root{
  --theme-bg:#fff7f6;--theme-bg-2:#f6e8ec;--theme-surface:rgba(255,255,255,.82);
  --theme-ink:#37272d;--theme-muted:#78686e;--theme-accent:#d85f7d;--theme-accent-2:#8d5b79;
  --theme-line:rgba(97,58,72,.17);--theme-glow:rgba(216,95,125,.16);
  --theme-radius:28px;--theme-card-radius:22px;--theme-shadow:0 24px 70px rgba(91,48,64,.12);
  --theme-display:"Yu Mincho","Hiragino Mincho ProN",serif;--theme-body:"Yu Gothic UI","Hiragino Kaku Gothic ProN",Meiryo,sans-serif
}
html{color-scheme:light}body{font-family:var(--theme-body);background:var(--theme-bg);color:var(--theme-ink);transition:background .45s ease,color .35s ease;overflow-x:hidden}
body::before{content:"";position:fixed;z-index:-2;inset:0;background:radial-gradient(circle at 12% 2%,var(--theme-glow),transparent 32%),radial-gradient(circle at 88% 42%,color-mix(in srgb,var(--theme-accent-2) 12%,transparent),transparent 31%),linear-gradient(145deg,var(--theme-bg),var(--theme-bg-2));pointer-events:none}
body::after{content:"";position:fixed;z-index:-1;inset:0;opacity:.35;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E")}
.topbar{height:88px}.brand{font-family:var(--theme-display);font-weight:700}.brand b{color:var(--theme-accent)}.brand-mark{background:var(--theme-ink);color:#fff;border-radius:35% 65% 62% 38%/43% 44% 56% 57%;box-shadow:none}.local-badge{border-color:var(--theme-line);color:var(--theme-muted);background:var(--theme-surface);backdrop-filter:blur(14px)}
.hero{gap:28px;padding-top:24px}.hero-copy,.birth-form,.result{border-radius:var(--theme-radius);box-shadow:var(--theme-shadow)}.hero-copy{background:var(--theme-ink);isolation:isolate}.hero-copy::before{border-color:color-mix(in srgb,var(--theme-accent) 45%,transparent);box-shadow:0 0 0 55px color-mix(in srgb,var(--theme-accent) 8%,transparent),0 0 0 110px color-mix(in srgb,var(--theme-accent-2) 6%,transparent)}.hero-copy::after{border-color:color-mix(in srgb,var(--theme-accent) 45%,transparent)}
.hero h1,.result-banner h2,.section-heading h3,.form-title h2,.integration-card h3,.decision-compass h3{font-family:var(--theme-display)}.hero h1{font-weight:600;letter-spacing:-.045em}.hero h1 em,.kicker{color:color-mix(in srgb,var(--theme-accent) 78%,white)}
.birth-form,.result,.pillar,.insight,.face-card,.system-card,.compass-card,.wellness-grid article,.fortune-card{background:var(--theme-surface);border-color:var(--theme-line);backdrop-filter:blur(16px)}
.birth-form{border:1px solid var(--theme-line)}.form-title>span,.section-heading>span{background:var(--theme-accent)}input,select{border-color:var(--theme-line);border-radius:14px;background:rgba(255,255,255,.76);color:var(--theme-ink)}input:focus,select:focus{border-color:var(--theme-accent);box-shadow:0 0 0 4px var(--theme-glow)}
.primary{background:var(--theme-accent);box-shadow:0 7px 0 color-mix(in srgb,var(--theme-accent) 72%,black);border-radius:16px}.primary:hover{box-shadow:0 9px 0 color-mix(in srgb,var(--theme-accent) 72%,black)}
.method article,.section-block,.system-section,.deep-section,footer{border-color:var(--theme-line)}.method span,.calc-note,.deep-intro,.source-card p,.food-note,.face-card p,.system-card p{color:var(--theme-muted)}
.result-banner,.integration-card,.insight.dark{background:var(--theme-ink)}.result-content{background:color-mix(in srgb,var(--theme-bg) 74%,transparent)}
.pillar,.face-card,.system-card,.insight,.compass-card,.fortune-card{border-radius:var(--theme-card-radius)}.face-role,.mini-label,.system-reading b,.system-advice b,.fortune-title-row h4{color:var(--theme-accent)}
.balance-copy,.system-advice,.compass-action,.fortune-advice{background:color-mix(in srgb,var(--theme-accent-2) 10%,white)}.wellness{background:color-mix(in srgb,var(--theme-bg-2) 72%,white)}.fortune-section{background:color-mix(in srgb,var(--theme-accent-2) 8%,white)}
.decision-compass,.reiki-card{background:var(--theme-ink)}.cycle-seal span,.reiki-orbit b{color:color-mix(in srgb,var(--theme-accent) 70%,white)}.compass-card.is-focus{border-color:var(--theme-accent);box-shadow:0 14px 35px var(--theme-glow)}.compass-card-head>span{background:var(--theme-ink);color:#fff}.outline{border-color:var(--theme-ink);color:var(--theme-ink);background:var(--theme-surface);border-radius:14px}.outline:hover{background:var(--theme-ink)}

/* Theme chooser */
.theme-dock{position:fixed;z-index:30;right:18px;top:50%;transform:translateY(-50%);width:132px;padding:10px;border:1px solid var(--theme-line);border-radius:22px;background:color-mix(in srgb,var(--theme-surface) 92%,transparent);box-shadow:0 18px 48px rgba(22,19,31,.14);backdrop-filter:blur(20px);display:grid;gap:5px}
.theme-dock-title{font-size:.62rem;font-weight:900;letter-spacing:.22em;color:var(--theme-muted);padding:2px 8px 5px}.theme-dock button{appearance:none;border:0;background:transparent;color:var(--theme-ink);display:grid;grid-template-columns:24px 1fr;align-items:center;gap:8px;text-align:left;padding:8px;border-radius:13px;min-height:48px}.theme-dock button:hover{background:var(--theme-glow)}.theme-dock button[aria-pressed="true"]{background:var(--theme-ink);color:var(--theme-bg);box-shadow:0 8px 18px rgba(0,0,0,.14)}.theme-dock button i{width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.72);box-shadow:0 0 0 1px rgba(0,0,0,.12)}.theme-dock button span{font-size:.77rem;font-weight:900;line-height:1.15}.theme-dock button small{display:block;font-size:.56rem;font-weight:500;opacity:.7;margin-top:3px;white-space:nowrap}
[data-set-theme="hanagasumi"] i{background:linear-gradient(135deg,#f7d7df,#d75f7c)}[data-set-theme="yoiboshi"] i{background:linear-gradient(135deg,#14172b,#7b6eff)}[data-set-theme="kintsugi"] i{background:linear-gradient(135deg,#161411 52%,#d2a83c 54%)}[data-set-theme="suisho"] i{background:linear-gradient(135deg,#d9fbff,#84bfff)}[data-set-theme="gasatsu"] i{background:linear-gradient(135deg,#f2ead8 52%,#df452d 54%)}

/* 01 花霞 — expressive softness and quiet craft */
html[data-theme="hanagasumi"]{--theme-bg:#fff8f7;--theme-bg-2:#f5e9ee;--theme-surface:rgba(255,255,255,.84);--theme-ink:#3b2830;--theme-muted:#78686e;--theme-accent:#d85f7d;--theme-accent-2:#76536d;--theme-line:rgba(98,51,70,.16);--theme-glow:rgba(216,95,125,.16);--theme-radius:34px;--theme-card-radius:24px}
html[data-theme="hanagasumi"] .hero-copy{border-radius:58px 26px 58px 26px}html[data-theme="hanagasumi"] .birth-form{border-radius:26px 58px 26px 58px}html[data-theme="hanagasumi"] .feature-row span{border-radius:8px 18px 8px 18px}html[data-theme="hanagasumi"] .section-heading>span,html[data-theme="hanagasumi"] .form-title>span{border-radius:50% 34% 58% 42%}

/* 02 宵星 — immersive dark, jewel light, calm motion */
html[data-theme="yoiboshi"]{color-scheme:dark;--theme-bg:#0c1020;--theme-bg-2:#17142d;--theme-surface:rgba(28,31,55,.78);--theme-ink:#f6f1ff;--theme-muted:#aaa6c1;--theme-accent:#a99cff;--theme-accent-2:#57d3da;--theme-line:rgba(205,199,255,.16);--theme-glow:rgba(132,116,255,.22);--theme-shadow:0 25px 80px rgba(1,2,10,.42);--theme-display:"Yu Mincho","Hiragino Mincho ProN",serif}
html[data-theme="yoiboshi"] body::before{background:radial-gradient(circle at 14% 4%,rgba(94,71,202,.42),transparent 29%),radial-gradient(circle at 82% 38%,rgba(36,190,198,.2),transparent 27%),linear-gradient(145deg,#080b17,#19132b)}
html[data-theme="yoiboshi"] .hero-copy,html[data-theme="yoiboshi"] .result-banner,html[data-theme="yoiboshi"] .integration-card,html[data-theme="yoiboshi"] .decision-compass,html[data-theme="yoiboshi"] .reiki-card,html[data-theme="yoiboshi"] .insight.dark{background:linear-gradient(145deg,#1d2141,#111426)}
html[data-theme="yoiboshi"] input,html[data-theme="yoiboshi"] select{background:#15182b}html[data-theme="yoiboshi"] .result-content{background:rgba(10,13,26,.76)}html[data-theme="yoiboshi"] .balance-copy,html[data-theme="yoiboshi"] .wellness,html[data-theme="yoiboshi"] .fortune-section,html[data-theme="yoiboshi"] .system-advice,html[data-theme="yoiboshi"] .compass-action,html[data-theme="yoiboshi"] .fortune-advice{background:rgba(45,49,78,.8)}html[data-theme="yoiboshi"] .compass-risk,html[data-theme="yoiboshi"] .fortune-caution,html[data-theme="yoiboshi"] .warning-line,html[data-theme="yoiboshi"] .support-note{background:rgba(93,48,70,.45);color:#f5d8df;border-color:rgba(255,180,200,.22)}html[data-theme="yoiboshi"] .insight p,html[data-theme="yoiboshi"] .compass-card>p,html[data-theme="yoiboshi"] .fortune-card p,html[data-theme="yoiboshi"] .wellness-grid p,html[data-theme="yoiboshi"] .balance-copy p{color:#c8c5d8}html[data-theme="yoiboshi"] .tag-list span,html[data-theme="yoiboshi"] .system-detail span{background:#282d4d;color:#c8f8f4}

/* 03 金継ぎ — Japanese restraint, ink, imperfect gold lines */
html[data-theme="kintsugi"]{--theme-bg:#ede9df;--theme-bg-2:#ddd6c8;--theme-surface:rgba(248,245,237,.92);--theme-ink:#181713;--theme-muted:#696458;--theme-accent:#b68b24;--theme-accent-2:#524833;--theme-line:rgba(27,24,18,.24);--theme-glow:rgba(182,139,36,.17);--theme-radius:4px;--theme-card-radius:2px;--theme-shadow:10px 12px 0 rgba(24,23,19,.11);--theme-display:"Yu Mincho","Hiragino Mincho ProN",serif}
html[data-theme="kintsugi"] body::after{opacity:.7}html[data-theme="kintsugi"] .hero-copy,html[data-theme="kintsugi"] .birth-form{border-radius:2px;border:1px solid #181713}html[data-theme="kintsugi"] .hero-copy{background:#181713;border-right:5px solid #b68b24}html[data-theme="kintsugi"] .hero h1{letter-spacing:.02em;writing-mode:horizontal-tb}html[data-theme="kintsugi"] .form-title>span,html[data-theme="kintsugi"] .section-heading>span{border-radius:1px;background:#181713;color:#d9b95b}html[data-theme="kintsugi"] .primary{border-radius:1px;background:#181713;color:#f1d078;box-shadow:5px 5px 0 #b68b24}html[data-theme="kintsugi"] input,html[data-theme="kintsugi"] select,html[data-theme="kintsugi"] .pillar,html[data-theme="kintsugi"] .face-card,html[data-theme="kintsugi"] .system-card,html[data-theme="kintsugi"] .insight,html[data-theme="kintsugi"] .compass-card,html[data-theme="kintsugi"] .fortune-card{border-radius:1px}html[data-theme="kintsugi"] .result-banner,html[data-theme="kintsugi"] .integration-card,html[data-theme="kintsugi"] .decision-compass,html[data-theme="kintsugi"] .reiki-card{background:#181713;border-radius:1px}html[data-theme="kintsugi"] .section-block,html[data-theme="kintsugi"] .system-section,html[data-theme="kintsugi"] .deep-section{border-bottom:2px solid #181713}html[data-theme="kintsugi"] .theme-dock{border-radius:2px;box-shadow:6px 6px 0 rgba(24,23,19,.16)}

/* 04 水晶 — liquid glass without sacrificing contrast */
html[data-theme="suisho"]{--theme-bg:#eefcff;--theme-bg-2:#e7efff;--theme-surface:rgba(255,255,255,.6);--theme-ink:#173044;--theme-muted:#557083;--theme-accent:#277ecc;--theme-accent-2:#28a7a0;--theme-line:rgba(45,111,150,.19);--theme-glow:rgba(56,158,218,.2);--theme-radius:36px;--theme-card-radius:26px;--theme-shadow:0 28px 75px rgba(51,105,148,.16)}
html[data-theme="suisho"] body::before{background:radial-gradient(circle at 10% 5%,rgba(92,221,217,.32),transparent 30%),radial-gradient(circle at 90% 40%,rgba(117,142,255,.25),transparent 30%),linear-gradient(145deg,#f4fdff,#e8efff)}html[data-theme="suisho"] .hero-copy{background:linear-gradient(145deg,rgba(20,62,87,.94),rgba(28,92,106,.88));backdrop-filter:blur(30px)}html[data-theme="suisho"] .birth-form,html[data-theme="suisho"] .result{border:1px solid rgba(255,255,255,.85);box-shadow:0 28px 70px rgba(51,105,148,.16),inset 0 1px 0 white}html[data-theme="suisho"] .pillar,html[data-theme="suisho"] .face-card,html[data-theme="suisho"] .system-card,html[data-theme="suisho"] .insight,html[data-theme="suisho"] .compass-card,html[data-theme="suisho"] .fortune-card{box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 12px 30px rgba(54,119,154,.08)}html[data-theme="suisho"] .primary{background:linear-gradient(135deg,#277ecc,#28a7a0);box-shadow:0 10px 24px rgba(39,126,204,.25)}html[data-theme="suisho"] .result-banner,html[data-theme="suisho"] .integration-card,html[data-theme="suisho"] .decision-compass,html[data-theme="suisho"] .reiki-card{background:linear-gradient(135deg,#173f59,#236f7b)}

/* 05 雅冊 — high-contrast editorial, generous rhythm */
html[data-theme="gasatsu"]{--theme-bg:#f4efe4;--theme-bg-2:#ece2cf;--theme-surface:#faf7ef;--theme-ink:#202020;--theme-muted:#68635a;--theme-accent:#df452d;--theme-accent-2:#2d5571;--theme-line:rgba(32,32,32,.25);--theme-glow:rgba(223,69,45,.13);--theme-radius:0;--theme-card-radius:0;--theme-shadow:none;--theme-display:Georgia,"Yu Mincho","Hiragino Mincho ProN",serif}
html[data-theme="gasatsu"] .topbar{border-bottom:1px solid var(--theme-ink)}html[data-theme="gasatsu"] .hero{grid-template-columns:1.15fr .85fr;gap:0;border:1px solid var(--theme-ink);padding:0;margin-top:24px;margin-bottom:34px}html[data-theme="gasatsu"] .hero-copy,html[data-theme="gasatsu"] .birth-form{border:0;border-radius:0}html[data-theme="gasatsu"] .hero-copy{background:#202020}html[data-theme="gasatsu"] .birth-form{border-left:1px solid #202020}html[data-theme="gasatsu"] .hero h1{font-size:clamp(3rem,6.2vw,6.8rem);line-height:.9}html[data-theme="gasatsu"] .kicker,html[data-theme="gasatsu"] .mini-label{letter-spacing:.22em}html[data-theme="gasatsu"] .form-title>span,html[data-theme="gasatsu"] .section-heading>span{border-radius:0;background:transparent;color:var(--theme-accent);border:1px solid currentColor}html[data-theme="gasatsu"] input,html[data-theme="gasatsu"] select,html[data-theme="gasatsu"] .primary,html[data-theme="gasatsu"] .settings,html[data-theme="gasatsu"] .consent{border-radius:0}html[data-theme="gasatsu"] .primary{box-shadow:none;border:1px solid #202020}html[data-theme="gasatsu"] .result{border:1px solid #202020}html[data-theme="gasatsu"] .pillar,html[data-theme="gasatsu"] .face-card,html[data-theme="gasatsu"] .system-card,html[data-theme="gasatsu"] .insight,html[data-theme="gasatsu"] .compass-card,html[data-theme="gasatsu"] .fortune-card,html[data-theme="gasatsu"] .wellness,html[data-theme="gasatsu"] .fortune-section,html[data-theme="gasatsu"] .decision-compass,html[data-theme="gasatsu"] .reiki-card{border-radius:0}html[data-theme="gasatsu"] .method{counter-reset:item}html[data-theme="gasatsu"] .method article{border-top:4px solid var(--theme-ink)}html[data-theme="gasatsu"] .theme-dock{border-radius:0}

/* Responsive behavior shared by all five directions */
@media(max-width:1380px){.theme-dock{right:8px;width:58px}.theme-dock-title{display:none}.theme-dock button{grid-template-columns:1fr;place-items:center;padding:7px}.theme-dock button span{display:none}}
@media(max-width:820px){
  body{padding-bottom:78px}.topbar{height:72px}.hero{padding-top:8px}.hero-copy,.birth-form,.result{border-radius:24px}.hero-copy{min-height:auto;padding:38px 30px}.hero h1{font-size:clamp(2.7rem,12vw,4.8rem)}
  .theme-dock{position:fixed;left:10px;right:10px;top:auto;bottom:10px;transform:none;width:auto;grid-template-columns:repeat(5,1fr);border-radius:20px;padding:7px;gap:3px}.theme-dock button{grid-template-columns:22px 1fr;min-height:49px;padding:7px}.theme-dock button span{display:block;font-size:.68rem}.theme-dock button small{display:none}.theme-dock button i{width:20px;height:20px}
  html[data-theme="gasatsu"] .hero{grid-template-columns:1fr;border:0;margin-top:0}html[data-theme="gasatsu"] .birth-form{border:1px solid var(--theme-ink);margin-top:16px}html[data-theme="gasatsu"] .hero-copy{border:0}
}
@media(max-width:520px){
  .wrap{width:min(100% - 22px,1160px)}.brand{font-size:.78rem;gap:8px}.brand-mark{width:34px;height:34px}.hero-copy{padding:32px 23px}.birth-form{padding:22px}.result-content{padding:18px}.theme-dock button{grid-template-columns:1fr}.theme-dock button span{font-size:.6rem;text-align:center}.theme-dock button i{display:none}
  html[data-theme="hanagasumi"] .hero-copy,html[data-theme="hanagasumi"] .birth-form{border-radius:28px}html[data-theme="gasatsu"] .hero h1{font-size:3.25rem}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.theme-dock{display:none!important}body{padding-bottom:0;background:white!important}}
