:root{--paper:#fcfaf5;--lavender:#eee8f3;--ink:#42364b;--muted:#716478;--plum:#67507b;--line:#dcd3df;--coral:#b85253;--serif:Georgia,'Times New Roman',serif;--body:'Hiragino Maru Gothic ProN','Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:14px;line-height:1.9;line-break:strict;word-break:normal;overflow-wrap:break-word}button,input,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--coral);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500;text-wrap:balance}img{display:block;max-width:100%}[hidden]{display:none!important}.wrap{width:min(1180px,calc(100% - 96px));margin-inline:auto}.header{height:112px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;font-weight:600;font-size:22px;letter-spacing:.12em;line-height:1.55}.brand small{display:block;font-family:var(--serif);font-size:8px;letter-spacing:.21em;font-weight:400}.brand-mark{font-family:var(--serif);position:relative;font-size:48px;line-height:1;color:var(--plum);display:block;width:42px}.brand-mark i{position:absolute;font-size:18px;left:25px;top:5px;color:var(--coral);font-style:normal}.header nav{display:flex;gap:34px;font-size:12px}.header nav a{padding:10px 0}.header nav a:hover{color:var(--coral)}.hero{position:relative;display:grid;grid-template-columns:1.02fr 1fr;align-items:center;padding:40px 0 76px;gap:24px}.eyebrow{font-size:10px;letter-spacing:.17em;font-family:var(--serif);font-weight:400;color:var(--muted)}.little-star{color:var(--coral);margin-right:8px;font-size:18px}.hero h1{font-size:clamp(32px,3.4vw,49px);line-height:1.75;letter-spacing:.085em;margin:26px 0 23px}.underlined{position:relative}.underlined:after{position:absolute;content:'';left:0;right:0;bottom:-9px;height:9px;border-top:2px solid #b6a3c8;border-radius:50%;transform:rotate(-2deg)}.hero-copy>p{color:var(--muted);line-height:2.3;letter-spacing:.035em}.primary{background:var(--plum);color:#fff;border:1px solid var(--plum);border-radius:40px;display:inline-flex;gap:32px;align-items:center;justify-content:space-between;min-height:56px;padding:13px 27px;font-size:13px;transition:background .2s,transform .2s}.primary:hover{background:#4f3b61;transform:translateY(-2px)}.primary span{font-size:19px}.hero .primary{margin-top:32px}.hero-note{font-size:10px;color:var(--muted);margin-top:17px;letter-spacing:.03em}.hero-note b{padding:0 9px}.hero-art{position:relative;isolation:isolate;aspect-ratio:1}.hero-art img{width:100%;height:100%;object-fit:cover;border-radius:48% 48% 46% 46%;position:relative;z-index:1}.art-orbit{position:absolute;inset:-8px 12px;border:1px solid #c9b8d7;border-radius:50%;z-index:2;pointer-events:none}.art-caption{position:absolute;z-index:3;right:16px;bottom:18px;font-family:var(--serif);font-size:20px;font-style:italic;transform:rotate(-9deg);color:var(--plum)}.orbit-star{position:absolute;z-index:3;font-family:var(--serif);color:var(--plum)}.s1{top:7%;left:10%;font-size:45px}.s2{right:0;bottom:24%;font-size:25px;color:var(--coral)}.hero-bottom{position:absolute;bottom:20px;left:0;right:0;display:flex;justify-content:space-between;font-size:9px;font-family:var(--serif);letter-spacing:.15em;color:var(--muted)}.ticker{padding:14px 0;white-space:nowrap;overflow:hidden;text-align:center;background:var(--lavender);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.15em}.ticker span{display:inline-block;margin:0 42px;color:#a48bb8}.reading-section{padding-block:90px 100px}.section-heading{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:36px}.section-heading h2{font-size:27px;letter-spacing:.07em;margin-top:12px}.section-heading>p{font-size:12px;color:var(--muted)}.reading-layout{display:grid;grid-template-columns:350px minmax(0,1fr);gap:46px;align-items:stretch}.profile-panel{padding:26px;background:#f2edf4;border:1px solid var(--line);border-radius:4px 4px 28px 4px}.panel-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:21px}.text-button{border:0;background:none;text-decoration:underline;font-size:11px;min-height:44px;padding:0 4px;color:var(--muted)}fieldset{border:0;padding:0;margin:0 0 25px;min-width:0}legend{font-size:13px;margin-bottom:13px;font-weight:600}.step{font:italic 15px var(--serif);margin-right:10px;color:var(--plum)}select{display:block;width:100%;height:49px;border:1px solid #cfc2d6;border-radius:7px;background:var(--paper);padding:0 11px;color:var(--ink);font-size:13px}.input-switch{display:flex;border-bottom:1px solid var(--line);gap:18px;margin-bottom:14px}.input-switch button{font-size:11px;border:0;border-bottom:2px solid transparent;background:none;padding:7px 0;min-height:44px;color:var(--muted)}.input-switch button[aria-pressed=true]{border-color:var(--plum);color:var(--plum);font-weight:600}.birth-row{display:flex;gap:12px}.birth-row label{flex:1;font-size:11px}.birth-row select{margin-top:5px}.small-note{font-size:10px;color:var(--muted);line-height:1.9;margin-top:10px}.sign-hint{min-height:22px;margin-top:9px;font-size:10px;color:var(--muted)}.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.theme-btn{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:0;border:1px solid #d5cbdc;border-radius:9px;background:transparent;height:66px;font-size:11px;transition:background .2s}.theme-btn .icon{font-size:22px;line-height:1.4;font-family:var(--serif)}.theme-btn[aria-pressed=true]{background:var(--paper);border-color:var(--plum);box-shadow:0 2px 0 #ccbcd6}.theme-btn:hover{background:#fffafc}.submit{width:100%;font-size:13px;justify-content:center;gap:23px;min-height:52px;padding-inline:12px}.privacy-note{text-align:center;font-size:9px;color:var(--muted);margin-top:13px}.letter-area{min-width:0;background:#fffdf9;border:1px solid #e2dadf;position:relative;box-shadow:7px 7px 0 #f0eaf0}.letter-area:before,.letter-area:after{content:'';height:8px;position:absolute;top:-1px;left:14px;right:14px;border-top:1px solid #e2dadf;transform:translateY(-5px);z-index:-1}.letter-area:after{left:25px;right:25px;transform:translateY(-9px)}.empty-letter{height:100%;min-height:660px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:40px 25px;position:relative}.letter-corner{position:absolute;top:30px;right:30px;font-size:24px;color:#bda9ca}.empty-letter>.eyebrow{font-size:9px;letter-spacing:.2em}.envelope{width:240px;height:155px;position:relative;background:#ddd0e5;border-radius:4px;margin:104px 0 60px;transform:rotate(-7deg);box-shadow:0 12px 25px #59406912}.envelope-card{position:absolute;left:20px;right:20px;top:-50px;background:var(--paper);height:160px;border:1px solid #e6dfe5;padding:28px;text-align:left;font:italic 25px var(--serif);transform:rotate(3deg)}.envelope-card span{display:block;text-align:center;font-size:35px;margin-top:5px;color:#a28eb1}.envelope-front{position:absolute;inset:0;clip-path:polygon(0 0,50% 53%,100% 0,100% 100%,0 100%);background:#e9dff0;border-radius:4px;border-bottom:1px solid #d6c5df}.seal{position:absolute;left:98px;top:66px;width:44px;height:44px;border-radius:50%;background:var(--coral);color:#f8e6dc;display:grid;place-items:center;font-size:24px;box-shadow:inset 0 0 0 4px #ffffff18}.empty-letter h3{font-size:19px;letter-spacing:.05em}.empty-letter>p{font-size:12px;color:var(--muted);margin-top:18px;line-height:2.2}.empty-footer{position:absolute;bottom:28px;font:8px var(--serif);letter-spacing:.18em;color:var(--muted)}.result{padding:30px 38px;outline:none}.result-top{display:flex;justify-content:space-between;font:9px var(--serif);letter-spacing:.14em;color:var(--muted);padding-bottom:22px;border-bottom:1px solid var(--line)}.recipient{display:flex;align-items:center;gap:15px;margin-top:22px;font-size:14px}.recipient>#result-glyph{font:39px var(--serif);color:var(--plum)}.recipient small{display:block;font-size:9px;color:var(--muted);margin-top:3px}.result-theme{margin-left:auto;border:1px solid #cfc1d5;font-size:10px;border-radius:20px;padding:2px 12px;white-space:nowrap}.rule-star{display:flex;align-items:center;gap:18px;color:#b69cc7;margin:20px 0}.rule-star:before,.rule-star:after{content:'';height:1px;background:var(--line);flex:1}.result h3{font-size:27px;line-height:1.75;letter-spacing:.045em;margin:13px 0 20px}.result>#result-body{line-height:2.2;font-size:13px}.action-line{margin:25px 0;border-left:2px solid #b19ac3;padding-left:17px}.action-line>span{font-size:10px;color:var(--plum);letter-spacing:.08em}.action-line p{font-size:12px;margin-top:5px}.keepsakes{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid var(--line);padding:18px 0;gap:18px}.keepsakes small{display:block;font-size:9px;color:var(--muted);margin-bottom:7px}.keepsakes strong{font-weight:500;font-size:12px;display:flex;gap:7px;align-items:center}.keepsakes i{display:inline-block;width:12px;height:12px;border:1px solid #0002;border-radius:50%}.basis{margin-top:13px;font-size:10px;color:var(--muted)}summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;list-style:none;min-height:48px;gap:10px}summary::-webkit-details-marker{display:none}details[open]>summary>span{transform:rotate(45deg)}.basis p{margin-bottom:10px;line-height:2}.letter-signature{font-size:10px;margin-top:22px;text-align:right;color:var(--muted)}.letter-signature span{display:block;font:italic 16px var(--serif);margin-top:6px;color:var(--plum)}.copy-button{border:0;border-bottom:1px solid #b8a9c2;background:none;font-size:10px;min-height:44px;padding:5px 0;display:flex;gap:20px;margin-top:10px}.error{color:#9b303e;font-size:12px;background:#fff1f1;padding:10px;margin-bottom:15px;border-radius:5px}.sky-band{background:#594464;color:#fcf6ed;position:relative}.sky-inner{padding-block:43px;display:flex;align-items:center;gap:30px}.sky-band .eyebrow{color:#dfcfe7;font-size:9px}.sky-band h2{font-size:23px;letter-spacing:.09em;margin-top:8px}.sky-band p{font-size:11px;color:#e6dbea;margin-top:7px}.moon-emblem{font:82px var(--serif);width:100px;position:relative;line-height:1}.moon-emblem>span{position:absolute;top:0;right:0;font-size:31px;color:#e9c88d}.sky-position{margin-left:auto;display:flex;flex-direction:column;gap:8px;font-size:12px;border-left:1px solid #92769f;padding-left:37px;min-width:245px}.sky-position small{font-size:8px;color:#e6dbea}.zodiac-section{padding-block:90px 80px}.zodiac-grid{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.zodiac-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:none;min-height:155px;transition:background .2s}.zodiac-item:hover,.zodiac-item[aria-pressed=true]{background:var(--lavender)}.zodiac-glyph{font:36px var(--serif);color:var(--plum);margin-bottom:5px}.zodiac-name{font-size:12px}.zodiac-date{font:10px var(--serif);letter-spacing:.08em;color:var(--muted)}.zodiac-word{font-size:9px;color:var(--muted);margin-top:4px}.zodiac-note{text-align:right;margin-top:17px}.about-section{border-top:1px solid var(--line);padding-block:70px 90px;display:grid;grid-template-columns:1fr 1.3fr;gap:100px}.about-intro h2{font-size:30px;line-height:1.9;letter-spacing:.1em;margin:20px 0}.about-intro p{font-size:12px;color:var(--muted);max-width:310px;line-height:2.1}.about-flower{display:block;font:75px var(--serif);color:#b9a4c7;margin-top:20px}.faq details{border-bottom:1px solid var(--line)}.faq summary{padding:18px 0;min-height:67px;font-size:12px}.faq summary>span{font-family:var(--serif);font-size:19px;flex-shrink:0}.faq p{font-size:11px;color:var(--muted);padding-bottom:22px;line-height:2.2}.faq p a{text-decoration:underline}.footer{background:#eee8f0;padding:45px 0 25px;text-align:center}.footer .wrap{display:flex;align-items:center;flex-direction:column}.footer .brand{font-size:19px}.footer p{font-size:11px;letter-spacing:.035em;margin-top:20px;color:var(--muted)}.footer .wrap>a:not(.brand){font-size:11px;margin-top:16px;min-height:44px;padding:8px}.footer small{font-size:8px;color:var(--muted);margin-top:25px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:absolute;left:20px;top:-100px;background:var(--ink);color:white;padding:12px;z-index:10}.skip:focus{top:10px}.result.opening{animation:open-letter .5s ease-out}@keyframes open-letter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.hero h1{font-size:50px}.hero{padding-top:60px;padding-bottom:100px}}
@media(max-width:1024px){.wrap{width:calc(100% - 56px)}.hero h1{font-size:36px}.header nav{gap:20px}.reading-layout{grid-template-columns:310px minmax(0,1fr);gap:25px}.result{padding:25px}.empty-letter h3{font-size:17px}.about-section{gap:50px}.sky-position{min-width:205px;padding-left:20px}.sky-inner{gap:20px}.moon-emblem{width:80px}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.header{height:88px}.brand{font-size:18px;gap:8px}.brand-mark{font-size:40px;width:37px}.brand small{font-size:7px}.header nav{gap:14px;font-size:10px}.header nav a:last-child{display:none}.hero{grid-template-columns:1fr;gap:20px;padding-top:25px;padding-bottom:62px}.hero-copy{position:relative;z-index:3;text-align:center}.hero-copy .eyebrow{font-size:8px;letter-spacing:.14em}.hero h1{font-size:35px;letter-spacing:.06em;margin:20px 0 24px;line-height:1.75}.hero-copy>p{font-size:12px;line-height:2.15}.hero .primary{margin-top:24px;min-height:53px;font-size:12px}.hero-note{font-size:9px;margin-top:13px}.hero-art{width:min(82%,390px);margin:18px auto 12px}.art-caption{font-size:17px;right:-13px;bottom:12px}.hero-bottom{font-size:8px;letter-spacing:.06em;bottom:16px}.hero-bottom span:first-child{display:none}.ticker{font-size:10px;text-align:left;padding-left:25px}.ticker span{margin:0 24px}.reading-section{padding-block:55px 62px}.section-heading{display:block;margin-bottom:25px}.section-heading h2{font-size:23px;letter-spacing:.035em;margin-top:10px}.section-heading>p{margin-top:14px;font-size:11px}.reading-layout{grid-template-columns:1fr;gap:35px}.profile-panel{padding:24px}.panel-top{margin-bottom:17px}fieldset{margin-bottom:21px}.theme-grid{grid-template-columns:repeat(3,1fr);gap:7px}.theme-btn{height:59px;font-size:10px}.theme-btn .icon{font-size:21px}.empty-letter{min-height:510px;padding-inline:15px}.empty-letter h3{font-size:16px}.empty-letter>.eyebrow{font-size:8px}.envelope{margin:80px 0 45px;width:220px;height:142px}.seal{left:90px;top:59px}.empty-letter>p{font-size:11px}.result{padding:23px}.result h3{font-size:25px}.result>#result-body{font-size:13px}.sky-inner{flex-wrap:wrap;padding-block:32px;gap:15px}.moon-emblem{font-size:65px;width:67px}.moon-emblem>span{font-size:23px}.sky-band h2{font-size:18px}.sky-band p{font-size:9px}.sky-band .eyebrow{font-size:7px}.sky-position{margin-left:0;width:100%;border-left:0;border-top:1px solid #92769f;padding:18px 0 0;flex-direction:row;flex-wrap:wrap;gap:8px 22px;font-size:11px}.sky-position small{width:100%;font-size:8px}.zodiac-section{padding-block:56px}.zodiac-grid{grid-template-columns:repeat(3,1fr)}.zodiac-item{min-height:140px}.zodiac-glyph{font-size:32px}.zodiac-word{font-size:8px}.zodiac-note{text-align:left;font-size:9px}.about-section{grid-template-columns:1fr;gap:26px;padding-block:45px 55px}.about-intro{position:relative}.about-intro h2{font-size:27px;margin-block:16px}.about-intro p{max-width:85%;font-size:11px}.about-flower{position:absolute;right:0;top:40px;font-size:62px}.faq summary{font-size:11px}.footer p{font-size:10px}.footer small{font-size:7px}}
@media(max-width:380px){.theme-grid{grid-template-columns:repeat(3,1fr);gap:7px}.hero h1{font-size:31px}.hero-note b{padding-inline:4px}.section-heading h2{font-size:21px}.result{padding:20px}.recipient{gap:10px}.result-theme{padding-inline:9px}.sky-inner{gap:10px}.sky-band h2{font-size:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

.theme-btn[data-theme="all"]{grid-column:1/-1;flex-direction:row;gap:8px;height:44px}

/* Reading comfort across ages; retain the existing visual direction. */
.result>#result-body{font-size:16px;line-height:2.15}.action-line p{font-size:15px}.keepsakes strong{font-size:14px}.recipient small{font-size:11px}.result[data-age="child"]>#result-body{font-size:17px;line-height:2.25}

/* Rich profile choices */
.reading-layout{grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr);gap:38px}
.profile-panel{padding:30px;border-radius:6px 6px 34px 6px}
.sign-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.sign-choice{min-width:0;min-height:112px;padding:10px 6px 9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border:1px solid #d4c8da;border-radius:13px;background:#faf7fb;box-shadow:0 3px 0 transparent;transition:transform .18s,background .18s,border-color .18s,box-shadow .18s}
.sign-choice:hover{background:#fffdfd;transform:translateY(-2px)}
.sign-choice[aria-pressed=true]{background:#fffdf9;border-color:var(--plum);box-shadow:0 3px 0 #cbbbd6,0 9px 18px #67507b12;transform:translateY(-2px)}
.sign-choice[aria-pressed=true] .zodiac-glyph{color:var(--coral)}
.sign-choice .zodiac-glyph{font-size:30px;line-height:1.25;margin:0;color:var(--plum)}
.sign-choice .zodiac-name{font-size:11px;font-weight:600;white-space:nowrap}
.sign-choice .zodiac-date{font-size:8px;letter-spacing:.03em}
.sign-choice .zodiac-word{font-size:8px;line-height:1.45;text-align:center}
.age-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.age-btn{min-height:92px;padding:12px 10px;display:grid;grid-template-columns:32px 1fr;grid-template-rows:auto auto;align-items:center;text-align:left;border:1px solid #d4c8da;border-radius:13px;background:#faf7fb;box-shadow:0 3px 0 transparent;transition:transform .18s,background .18s,border-color .18s,box-shadow .18s}
.age-btn:hover{background:#fffdfd;transform:translateY(-2px)}
.age-btn[aria-pressed=true]{background:#fffdf9;border-color:var(--plum);box-shadow:0 3px 0 #cbbbd6,0 9px 18px #67507b12;transform:translateY(-2px)}
.age-symbol{grid-row:1/3;font:25px var(--serif);color:#a98eb9;text-align:center}
.age-btn[aria-pressed=true] .age-symbol{color:var(--coral)}
.age-btn strong{font-size:11px;font-weight:600;line-height:1.5}
.age-btn small{font-size:8px;color:var(--muted);line-height:1.5}
.sign-grid[aria-invalid=true],.age-grid[aria-invalid=true]{border:1px solid #b85253;border-radius:15px;padding:4px}
.profile-panel .zodiac-note{text-align:left;margin-top:3px}
.letter-area{min-height:920px}
.empty-letter{min-height:920px}

@media(max-width:1024px){.reading-layout{grid-template-columns:1fr;gap:35px}.sign-grid{grid-template-columns:repeat(6,1fr)}.letter-area,.empty-letter{min-height:600px}}
@media(max-width:760px){.profile-panel{padding:21px 16px}.sign-grid{grid-template-columns:repeat(3,1fr);gap:7px}.sign-choice{min-height:105px;padding-inline:4px}.sign-choice .zodiac-glyph{font-size:28px}.age-grid{gap:8px}.age-btn{min-height:88px;padding:10px 7px;grid-template-columns:28px 1fr}.age-symbol{font-size:22px}.age-btn strong{font-size:10px}.age-btn small{font-size:7px}.letter-area,.empty-letter{min-height:510px}}
@media(max-width:380px){.sign-choice{min-height:101px}.sign-choice .zodiac-name{font-size:10px}.sign-choice .zodiac-word{font-size:7px}.age-grid{grid-template-columns:1fr}.age-btn{min-height:72px}}
