:root{--sumi:#1c1a17;--sumi-soft:#4a463f;--ai:#1e3a5f;--ai-pale:#dbe3ec;--washi:#f6f3eb;--washi-deep:#efeadd;--shu:#c73e2e;--gold:#9a7b2d;--font-display:"Shippori Mincho B1",serif;--font-body:"Zen Kaku Gothic New",sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation:none!important;transition:none!important}}body{background:var(--washi);color:var(--sumi);font-family:var(--font-body);line-height:1.7;-webkit-font-smoothing:antialiased}.wrap{max-width:680px;margin:0 auto;padding:0 20px}.hero{padding:56px 0 40px;text-align:center}.hero-kanji-bg{font-size:15px;font-weight:500;letter-spacing:.5em;color:var(--ai);margin-bottom:18px}.hero h1,.hero-kanji-bg{font-family:var(--font-display)}.hero h1{font-size:clamp(30px,6vw,44px);font-weight:700;line-height:1.25;letter-spacing:.01em}.hero .sub{margin:18px auto 0;max-width:520px;color:var(--sumi-soft);font-size:16px}.hero .sub strong{color:var(--ai);font-weight:700}.tool{background:#fff;border:1px solid var(--ai-pale);border-radius:4px;padding:28px 24px 24px;margin:8px 0 48px;box-shadow:0 1px 0 rgba(30,58,95,.06)}.tool label{display:block;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ai);margin-bottom:8px}.row{display:flex;gap:12px;flex-wrap:wrap}.row>.grow{flex:1 1 220px}input[type=text]{width:100%;padding:14px 16px;font-size:18px;font-family:var(--font-body);border:1.5px solid var(--ai-pale);border-radius:4px;background:var(--washi);color:var(--sumi);transition:border-color .15s}input[type=text]:focus{outline:none;border-color:var(--ai)}.gender-seg{display:flex;border:1.5px solid var(--ai-pale);border-radius:4px;overflow:hidden}.gender-seg button{padding:14px 18px;font-size:15px;font-family:var(--font-body);background:var(--washi);color:var(--sumi-soft);border:none;cursor:pointer;transition:background .15s,color .15s}.gender-seg button+button{border-left:1.5px solid var(--ai-pale)}.gender-seg button.on{background:var(--ai);color:#fff;font-weight:700}.cta:focus-visible,.dl-btn:focus-visible,.gender-seg button:focus-visible{outline:2px solid var(--shu);outline-offset:2px}.cta{width:100%;margin-top:16px;padding:16px;font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:.06em;background:var(--ai);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background .15s}.cta:hover{background:#16304f}.hint{margin-top:12px;font-size:13px;color:var(--sumi-soft)}.err{margin-top:14px;font-size:14px;color:var(--shu)}.result-area{display:none}.result-area.show{display:block;animation:rise .5s ease both}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.meimei-stage{display:flex;justify-content:center;padding:8px 0 20px}.meimei-card{position:relative;background:linear-gradient(175deg,#fbf9f3 0,var(--washi-deep) 100%);border:1px solid #d8d2c2;width:250px;min-height:400px;padding:34px 0 78px;display:flex;flex-direction:column;align-items:center;box-shadow:0 2px 14px rgba(28,26,23,.1)}.meimei-card:before{content:"";position:absolute;inset:8px;border:1px solid rgba(30,58,95,.22);pointer-events:none}.meimei-eyebrow{font-size:12px;font-weight:500;letter-spacing:.35em;color:var(--sumi-soft);position:absolute;top:30px;right:26px}.meimei-eyebrow,.meimei-name{writing-mode:vertical-rl;font-family:var(--font-display)}.meimei-name{font-size:64px;font-weight:700;line-height:1;letter-spacing:.14em;color:var(--sumi);margin-top:26px}.meimei-kana{font-size:13px;font-weight:500;letter-spacing:.3em;color:var(--sumi-soft);top:96px;left:34px}.meimei-kana,.meimei-seal{writing-mode:vertical-rl;font-family:var(--font-display);position:absolute}.meimei-seal{bottom:26px;right:24px;width:44px;height:44px;background:var(--shu);color:#fff;font-size:15px;font-weight:700;line-height:1.1;letter-spacing:.06em;display:flex;align-items:center;justify-content:center;border-radius:3px;box-shadow:inset 0 0 0 1.5px hsla(0,0%,100%,.55)}.fortune-line{text-align:center;margin-bottom:6px}.fortune-badge{display:inline-block;padding:5px 16px;font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--gold);border:1px solid var(--gold);border-radius:999px}.fortune-brief{text-align:center;max-width:460px;margin:10px auto 0;font-size:15px;color:var(--sumi-soft);font-style:italic}.kanji-rows{margin:28px 0 8px;border-top:1px solid var(--ai-pale)}.kanji-row{display:flex;align-items:baseline;gap:16px;padding:14px 4px;border-bottom:1px solid var(--ai-pale)}.kanji-row .k{font-family:var(--font-display);font-size:34px;font-weight:700;line-height:1;min-width:44px;text-align:center}.kanji-row .m{flex:1 1;font-size:15px;color:var(--sumi)}.kanji-row .s{font-size:12px;color:var(--sumi-soft);letter-spacing:.05em;white-space:nowrap}.chikaku-note{margin-top:14px;padding:14px 16px;background:var(--washi-deep);border-left:3px solid var(--gold);font-size:14px;color:var(--sumi)}.chikaku-note b{color:var(--gold)}.alts{margin-top:26px}.alts h3{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--ai);margin-bottom:10px}.alt-chip{display:inline-flex;align-items:baseline;gap:8px;margin:0 8px 8px 0;padding:8px 14px;background:#fff;border:1px solid var(--ai-pale);border-radius:4px;cursor:pointer;transition:border-color .15s;font-family:var(--font-body)}.alt-chip:hover{border-color:var(--ai)}.alt-chip .ak{font-family:var(--font-display);font-size:20px;font-weight:700}.alt-chip .af{font-size:12px;color:var(--sumi-soft)}.dl-btn{display:block;width:100%;margin-top:26px;padding:15px;font-family:var(--font-body);font-size:15px;font-weight:700;background:#fff;color:var(--ai);border:1.5px solid var(--ai);border-radius:4px;cursor:pointer;transition:background .15s}.dl-btn:hover{background:var(--ai-pale)}.how{padding:40px 0 64px;border-top:1px solid var(--ai-pale)}.how h2{font-family:var(--font-display);font-size:24px;font-weight:700;text-align:center;margin-bottom:8px}.how .how-sub{text-align:center;color:var(--sumi-soft);font-size:15px;margin-bottom:32px}.step{display:flex;gap:18px;margin-bottom:22px}.step .glyph{font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--ai);min-width:40px;text-align:center;line-height:1.4}.step h3{font-size:16px;font-weight:700;margin-bottom:4px}.step p{font-size:14.5px}.step p,footer{color:var(--sumi-soft)}footer{padding:28px 0 40px;text-align:center;font-size:13px;border-top:1px solid var(--ai-pale)}footer .jp{font-family:var(--font-display);letter-spacing:.3em;margin-bottom:6px;color:var(--ai)}