/* Shared refinements and membership use the approved design's tokens and type. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.member-page{width:min(1080px,calc(100% - 80px));margin:30px auto 65px;min-height:60vh}
body[data-screen=member] .header nav{display:flex;gap:24px;position:static;width:auto;background:none;border:0;box-shadow:none;padding:0}
body[data-screen=member] .header nav a{display:block;font-size:12px}
.member-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-size:12px;color:var(--muted);margin-bottom:22px}
.member-breadcrumb a{text-decoration:underline;text-underline-offset:4px}
.breadcrumb-separator{width:4px;height:4px;border-radius:50%;background:var(--pink-line)}
.member-continuation{padding:15px 20px;background:var(--pink);border-left:3px solid var(--rose);margin-bottom:22px;font-size:13px;display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px}
.member-continuation b{font-family:var(--round);font-size:22px}
.member-continuation span{font-size:12px;color:var(--muted)}
.member-offer{background:var(--paper);border:1.3px solid var(--ink);border-radius:16px;box-shadow:4px 5px 0 #e6d9df;overflow:hidden}
.offer-heading{text-align:center;background:var(--pink);padding:36px 28px 30px}
.member-seal{display:inline-block;font-size:11px;font-weight:700;color:var(--rose-dark);border:1px solid var(--pink-line);border-radius:30px;padding:5px 15px;background:var(--paper)}
.small-label{font-size:11px;color:var(--muted)}
.offer-heading .small-label{margin:18px 0 8px}
.offer-heading h2{font-size:clamp(26px,3.2vw,39px);margin:10px 0 15px;line-height:1.55}
.offer-title-line{display:block}
.offer-heading>p:last-child{font-size:14px;line-height:2}
.offer-contents{padding:25px 40px 28px}
.contents-label{text-align:center;font-size:12px;font-weight:700;color:var(--rose-dark);margin-bottom:8px}
.offer-contents ol{list-style:none;margin:0;padding:0}
.offer-contents li{display:flex;align-items:start;gap:22px;padding:23px 0;border-bottom:1px solid #e5dce1}
.offer-contents li>span{font:900 25px var(--round);color:var(--rose);line-height:1.5}
.offer-contents h3{font-size:21px;line-height:1.7}
.offer-contents li p{font-size:14px;line-height:2;margin-top:8px}
.offer-ai{background:var(--blue);border-radius:10px;padding:20px 22px;margin-top:25px;font-size:14px;line-height:2}
.offer-action{padding:0 40px 32px;text-align:center}
.offer-action .primary{display:flex;justify-content:center;align-items:center;max-width:500px;margin:0 auto;width:100%;min-height:50px}
.trial-note,.reading-trial{font-size:12px;line-height:1.9;color:var(--muted);margin-top:15px}
.member-price{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:14px 30px;background:var(--pink);border:1px solid var(--pink-line);border-radius:14px;padding:27px 32px;margin:27px 0}
.member-price>div:first-child p{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin-top:7px}
.member-price b{font-family:var(--round);font-size:32px;line-height:1.5}
.member-price b small{font-size:16px;margin-left:3px}
.member-price p>span{font-size:12px}
.member-price dl{margin:0;font-size:13px;min-width:0}
.member-price dl>div{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-bottom:1px solid var(--pink-line);padding:10px 0}
.member-price dd{font-weight:700;margin:0}
.price-note{grid-column:1/-1;font-size:12px;line-height:2;color:var(--muted)}
.member-price>.secondary{grid-column:1/-1}
.member-account{border:1px solid #e1d2da;border-radius:14px;padding:25px 30px;background:var(--paper);margin-bottom:24px}
.member-account h2{font-size:26px;margin:12px 0}
.member-account>p{font-size:13px;line-height:2;margin-top:12px}
.account-numbers{display:flex;flex-wrap:wrap;gap:20px 42px;margin:20px 0}
.account-numbers dt{font-size:12px;color:var(--muted)}
.account-numbers dd{margin:4px 0 0;font-size:24px;font-weight:700;line-height:1.5}
.account-numbers dd b{font-size:38px;color:var(--rose-dark)}
.account-numbers dd span{font-size:12px;margin-left:6px}
.account-inactive{background:#f6f5f2}
.member-account-panel{border:1px solid #dfd0d9;background:var(--pink);border-radius:13px;margin:14px 0 26px}
.member-account-panel>summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;padding:15px 20px;font-size:12px;min-height:50px}
.member-account-panel>summary::-webkit-details-marker{display:none}
.member-account-panel>summary>span:first-child{font-weight:700;color:var(--rose-dark)}
.member-account-panel[open]>.member-account{margin:0;border:0;border-top:1px solid #dfd0d9;border-radius:0 0 13px 13px}
#member-result>.section-kicker{margin-bottom:10px}
#member-result>h2{font-size:24px;margin-bottom:20px}
.member-page .result-tabs{margin:0 auto 26px}
.member-page .result-tabs a{flex:1;text-align:center;border-radius:35px;padding:12px 8px;font-size:13px;font-weight:700;min-height:44px}
.member-page .result-tabs a.active{background:var(--ink);color:#fff}
.member-page .character-hero{width:100%;margin-bottom:40px}
.member-image-copy{display:contents}
.member-character-hero .label{font-size:11px;color:var(--rose-dark);font-weight:700}
.member-character-hero .original-image-line{font-size:14px;line-height:2.1}
.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:32px;align-items:start}
.detail-panel{margin-bottom:30px;min-width:0}
.detail-panel h3,.editorial-hint h3{font-size:23px;margin-bottom:18px}
.original-text{white-space:pre-wrap;font-size:14px;line-height:2.15;overflow-wrap:break-word}
.original-gender-section{margin-top:30px}
.original-radar{margin:0;border:1px solid #e5dce1;border-radius:14px;padding:15px;background:#fff}
.original-radar svg{width:100%;height:auto;display:block}
.original-traits{padding-top:25px;border-top:1px solid #e5dce1}
.premium-traits{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0;margin:0;white-space:normal}
.premium-traits li{font-size:13px;border:1px solid #e6e2de;background:#f6f5f2;padding:12px 15px;border-radius:8px}
.editorial-hints{display:grid;grid-template-columns:1fr 1fr;gap:25px}
.editorial-hint{padding:25px;border:1px solid var(--pink-line);background:var(--pink);border-radius:13px;margin-bottom:30px;min-width:0}
.editorial-hint h3{font-size:22px;line-height:1.65}
.editorial-hint p{font-size:14px;line-height:2.15;white-space:pre-wrap}
.original-celebrities{padding-top:25px;border-top:1px solid #e5dce1}
.original-color-details>.original-text{margin-bottom:30px}
.editorial-color-sections{display:grid;grid-template-columns:1fr;gap:5px}
.editorial-color-section{border-bottom:1px solid #e5dce1;padding-bottom:26px}
.member-page .five-explorer{width:100%} /* same gap as the free page */
.member-page .five-profile h2{font-size:28px;margin:10px 0}
.original-role-card header{display:flex;gap:16px;align-items:center;margin-bottom:16px}
.original-role-card header>.animal-art{width:70px;height:75px;flex:none}
.original-role-heading{font-size:23px;line-height:1.65}
.original-role-intro{color:var(--muted);margin-bottom:18px}
.role-reflection{margin-top:25px;border-top:1px solid #e5dce1;padding-top:20px}
.role-reflection h4{font-size:15px;margin:0 0 12px}
.role-reflection p{font-size:14px;line-height:2.15;white-space:pre-wrap}
.mcp-guide{margin:26px 0;padding:18px 22px;border:1px solid #cadfe6;border-radius:12px;background:#f4f9fa}
.mcp-guide summary{cursor:pointer;font-size:14px;font-weight:700;min-height:30px}
.mcp-guide p,.mcp-guide li{font-size:13px;line-height:2;margin-top:15px}
.mcp-guide ol{padding-left:20px}
.mcp-guide code{display:block;padding:12px;margin-top:10px;word-break:break-all;background:#fff;font-size:12px}
.member-notice,.member-error{padding:16px 20px;font-size:13px;border:1px solid #e1d2da;background:var(--pink);border-radius:10px;margin:16px 0}
.member-error:empty{display:none}
.member-error{color:#92384e}
.member-back{margin:28px 0;font-size:13px;text-decoration:underline;text-underline-offset:4px}
.member-footer{padding:24px 0 35px;border-top:1px solid #e5dce1;display:flex;justify-content:space-between;gap:20px;font-size:12px}
.member-footer small{font-size:11px;color:var(--muted)}
.integrated-preview.has-radar{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px;align-items:center}
.premium-radar-preview{margin:22px 0 0;text-align:center;min-width:0}
.premium-radar-preview h4{font-size:16px;margin:0 0 10px}
.radar-preview-frame svg{width:100%;height:auto;display:block}
.radar-preview-label{font-size:11px;color:var(--rose-dark)}
.premium-radar-preview figcaption{font-size:11px;margin-top:8px;color:var(--muted)}
.reading-unlock{position:relative;z-index:1}
.reading-trial{text-align:center}
.reading-mosaic{inset:22px}
.member-reading .reading-unlock-link{display:flex;min-height:46px;align-items:center;justify-content:center}
.local-testbar{background:#f4eadc;border-bottom:1px solid #e4d3bd;color:#725336;text-align:center;font-size:11px;padding:6px 15px;line-height:1.7}
.local-testbar a{text-decoration:underline}
.test-caption{font-size:12px;color:var(--muted);margin:15px 0}
.test-console{width:min(900px,calc(100% - 36px));margin:30px auto;padding:24px}
.test-console h1{font-size:28px}.test-console p{margin:15px 0}
.test-console pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--pink);padding:20px;font-size:12px}
.test-controls{display:flex;flex-wrap:wrap;gap:12px;margin:25px 0}
.test-controls button{border:1px solid var(--pink-line);background:var(--paper);padding:12px 18px;border-radius:10px}
@media(max-width:1000px){.integrated-preview.has-radar{grid-template-columns:1fr}.premium-radar-preview{max-width:300px;margin-inline:auto}.detail-grid{grid-template-columns:minmax(0,1fr) 260px}}
@media(max-width:760px){
 .member-page{width:calc(100% - 36px);margin-top:22px}
 .member-page .character-hero,.member-page .five-explorer{width:100%}
 .detail-grid,.editorial-hints{grid-template-columns:1fr}
 .original-radar{max-width:370px;margin:auto}
 .member-image-copy{display:contents}
 .offer-heading{padding:28px 20px}.offer-contents{padding:22px}.offer-contents li{gap:16px;padding:20px 0}
 .offer-contents h3{font-size:19px}.offer-contents li p,.offer-heading>p:last-child{font-size:13px}
 .offer-action{padding:0 22px 27px}.offer-action .primary{font-size:13px}
 .member-price{grid-template-columns:1fr;padding:23px}.member-price b{font-size:30px}
 .member-account{padding:22px}.member-account h2{font-size:23px}.member-account-panel>summary{padding:14px 16px;gap:12px;font-size:11px}
 .member-page .result-tabs a{font-size:11px;padding:11px 4px}
 .member-page .header-inner{height:auto;min-height:70px}
 .original-text,.editorial-hint p,.role-reflection p{font-size:13px}
 .detail-panel h3,.editorial-hint h3{font-size:21px}.editorial-hint{padding:22px}
 .member-character-hero .original-image-line{font-size:13px}
 .member-footer{display:block}.member-footer small{display:block;margin-top:10px}
 body[data-screen=member] .header nav{gap:13px}
 body[data-screen=member] .header nav a{font-size:10px;white-space:nowrap}
 .member-page .five-profile h2{font-size:26px}
 .original-role-heading{font-size:21px}
 .mcp-guide{padding:18px}.mcp-guide ol{padding-left:17px}
 .mcp-guide p,.mcp-guide li{font-size:12px}
}
@media(max-width:360px){
 .member-page{width:calc(100% - 30px)}
 .offer-heading h2{font-size:24px}.offer-contents{padding:18px}.offer-contents h3{font-size:18px}
 .offer-contents li>span{font-size:21px}.offer-action{padding-inline:18px}
 .member-account-panel>summary{font-size:10px}.member-account{padding:18px}
 .account-numbers{gap:24px}.account-numbers dt{font-size:11px}
 .original-role-card header{gap:10px}.original-role-heading{font-size:19px}
 body[data-screen=member] .header nav{gap:10px}body[data-screen=member] .header nav a{font-size:9px}
 body[data-screen=member] .brand{font-size:13px}
}

/* The card is the button; the arrow only makes that action visible. */
.animal-card .card-detail,.compatibility-arrow{display:grid;place-items:center;place-content:center;flex:none;width:34px;height:34px;padding:0;border:1px solid var(--ink);border-radius:50%;background:var(--arrow-fill,var(--rose));color:#fff;box-shadow:2px 2px 0 var(--arrow-shadow,#ead5df);transition:background .18s,box-shadow .18s}
.animal-card .card-detail{align-self:flex-end;margin-top:14px}
.compatibility-bad{--arrow-fill:#6a9ab7;--arrow-hover:#426c85;--arrow-shadow:#d7e2e8}
.animal-card .card-detail svg,.compatibility-arrow svg{display:block;width:18px;height:18px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.animal-card:hover .card-detail,.animal-card:focus-visible .card-detail,.compatibility-animal:hover .compatibility-arrow,.compatibility-animal:focus-visible .compatibility-arrow{background:var(--arrow-hover,var(--rose-dark));box-shadow:1px 1px 0 var(--arrow-shadow,#ead5df)}

/* Traits are one reading surface, rather than a stack of input-like boxes. */
:is(.free-traits,.premium-traits){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 26px;list-style:none;margin:0;padding:6px 24px;border:1px solid #eedbe3;border-radius:16px;background:#fcf3f6;white-space:normal}
:is(.free-traits,.premium-traits) li{position:relative;margin:0;padding:15px 0 15px 17px;border:0;border-bottom:1px solid #eedfe5;border-radius:0;background:none;font-size:13px;line-height:1.9;overflow-wrap:break-word}
:is(.free-traits,.premium-traits) li:before{content:"";position:absolute;left:1px;top:25px;width:5px;height:5px;border-radius:50%;background:var(--rose)}
:is(.free-traits,.premium-traits) li:last-child{border-bottom:0}
:is(.free-traits,.premium-traits) li:last-child:nth-child(odd){grid-column:1/-1}
:is(.free-traits,.premium-traits) li:nth-last-child(2):nth-child(odd){border-bottom:0}
@media(max-width:760px){
 :is(.free-traits,.premium-traits){grid-template-columns:1fr;padding:4px 18px;gap:0;border-radius:13px}
 :is(.free-traits,.premium-traits) li{font-size:13px;padding:14px 0 14px 16px}
 :is(.free-traits,.premium-traits) li:before{top:24px}
 :is(.free-traits,.premium-traits) li:nth-last-child(2):nth-child(odd){border-bottom:1px solid #eedfe5}
 :is(.free-traits,.premium-traits) li:last-child{grid-column:auto;border-bottom:0}
}
@media(prefers-reduced-motion:reduce){.animal-card .card-detail,.compatibility-arrow{transition:none}}

/* Readable functional type on both shared tops and all result views. */
.fv-mode-tabs [role=tab]{font-size:14px}
.fv-mode-tabs [role=tab] small{font-size:11px}
.section-kicker,.card-count,.type-label{font-size:11px}
.animal-description{font-size:14px;line-height:1.9}
.mode-copy small,.mode-copy>span{font-size:13px;line-height:1.8}
.round-outline,.header-cta,.mobile-menu{font-size:13px}
.result-meta,.result-topline>button,.result-gender{font-size:13px}
.hero-keywords li,.contents a,.role-name{font-size:12px}
.hero-summary,.reading-chapter p,.overview-basic p,.original-text,.editorial-hint p,.role-reflection p{font-size:15px;line-height:2}
:is(.free-traits,.premium-traits) li{font-size:14px}
.reading-chapter .free-reading-label,.reading-chapter .member-reading-label{font-size:12px}
.faq-list summary{font-size:17px;gap:18px;min-height:74px}
.faq-list details>p{font-size:15px;line-height:2}
.faq-list summary>.faq-action{position:relative;display:block;flex:0 0 34px;width:34px;height:34px;border:1px solid var(--rose-dark);border-radius:50%;background:#fff9fb;color:var(--rose-dark);font-size:0}
.faq-action:before,.faq-action:after{content:"";position:absolute;left:9px;right:9px;top:16px;height:1.5px;background:currentColor}
.faq-action:after{transform:rotate(90deg);transition:transform .18s ease}
.faq-list details[open] summary>.faq-action:after{transform:rotate(0deg)}
.faq-list summary:focus-visible{outline:2px solid var(--rose-dark);outline-offset:5px}
.animal-compatibility{margin-top:20px}
.compatibility-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.compatibility-panel{padding:22px 18px;border:1px solid #e7d1db;border-radius:22px;background:#fff3f6}
.compatibility-panel.compatibility-bad{background:#f1f5f6;border-color:#d6e2e5}
.compatibility-panel h4{margin:0 0 18px;font-family:var(--round);font-size:17px;line-height:1.7}
.compatibility-panel ul{padding:0;margin:0;list-style:none}
.compatibility-panel li{display:grid;grid-template-columns:62px minmax(0,1fr);align-items:start;gap:12px;padding:18px 0;border-top:1px solid #e7d8df}
.compatibility-panel li:first-child{border-top:0;padding-top:0}
.compatibility-panel li:last-child{padding-bottom:0}
.compatibility-panel li>.animal-art{width:62px;height:70px;display:block}
.compatibility-panel li .sprite-crop{width:62px}
.compatibility-panel b{display:block;font-family:var(--round);font-size:18px;line-height:1.7}
.compatibility-panel p,.reading-chapter .compatibility-panel p,.overview-basic .compatibility-panel p{margin:7px 0 0;font-size:14px;line-height:1.9}
.animal-compatibility .compatibility-basis{margin:16px 0 0;font-size:12px;line-height:1.9;color:#746571}
.member-compatibility{margin-block:26px}
@media(max-width:1000px){.compatibility-panels{grid-template-columns:1fr}}
@media(max-width:760px){
 .fv-mode-tabs [role=tab]{font-size:12px;min-height:62px}
 .fv-mode-tabs [role=tab] small{font-size:11px;letter-spacing:0}
 .animal-description{font-size:13px}
 .mode-copy small,.mode-copy>span{font-size:12px}
 .section-kicker,.card-count,.type-label{font-size:11px}
 .card-count{letter-spacing:.02em}
 .result-tabs button{font-size:12px}.result-tabs button>span{font-size:10px}
 .result-meta,.result-topline>button,.result-gender{font-size:12px}
 .result-topline{flex-wrap:wrap;gap:8px 12px}
 .hero-summary,.reading-chapter p,.overview-basic p,.original-text,.editorial-hint p,.role-reflection p,#animal-dialog .hero-summary{font-size:14px}
 .reading-chapter .free-reading-label,.reading-chapter .member-reading-label{font-size:12px}
 .hero-keywords li,.contents a,.role-name,.five-profile>p:not(.section-kicker){font-size:12px}
 .faq-list summary{font-size:15px;padding-block:19px;min-height:74px}
 .faq-list details>p{font-size:14px}
 .compatibility-panels{grid-template-columns:1fr;gap:16px}
 .compatibility-panel{padding:22px 18px}.compatibility-panel h4{font-size:17px}
 body[data-screen=member] .header-inner{height:auto;min-height:76px;flex-wrap:wrap;padding-block:12px;gap:10px}
 body[data-screen=member] .header nav{gap:20px}
 body[data-screen=member] .header nav a{font-size:12px}
 .member-page .result-tabs a{font-size:12px}
 .member-account-panel>summary,.member-footer small{font-size:12px}
}
@media(max-width:360px){
 .fv-mode-tabs [role=tab]{font-size:11px}
 .fv-mode-tabs [role=tab] small{font-size:10px}
 .round-outline{padding-inline:18px}
 .header-cta{font-size:11px}.mobile-menu{font-size:12px}
}
@media(prefers-reduced-motion:reduce){.faq-action:after{transition:none}}

/* Pink patterned FV, per the latest user direction; shared by both tops. */
.hero-section{background-color:#fbedf1;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22132%22%20height%3D%22116%22%20viewBox%3D%220%200%20132%20116%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23dba5bd%22%20stroke-width%3D%221.25%22%20opacity%3D%22.36%22%3E%3Cpath%20d%3D%22M24%2018C13%208%2010%2023%2020%2027C10%2031%2015%2044%2024%2035C33%2044%2038%2031%2028%2027C38%2023%2035%208%2024%2018Z%22%2F%3E%3Ccircle%20cx%3D%2291%22%20cy%3D%2281%22%20r%3D%225%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22%23fff%22%20opacity%3D%22.8%22%3E%3Ccircle%20cx%3D%2291%22%20cy%3D%2227%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%2231%22%20cy%3D%2286%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%2261%22%20cy%3D%2256%22%20r%3D%221.5%22%2F%3E%3Ccircle%20cx%3D%22123%22%20cy%3D%22109%22%20r%3D%221.5%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-repeat:repeat;background-size:132px 116px}
/* Final review: readable small controls and a reachable first diagnosis action. */
.header-cta,.reading-unlock-link{background-color:var(--rose-dark)}
.footer nav{font-size:12px;align-items:center;flex-wrap:wrap}
.footer nav a,.footer nav button{display:inline-flex;align-items:center;min-height:44px;padding-block:8px}
.footer>small{font-size:11px}
.bottom-cta>div>p{font-size:12px}
.icon-button{min-width:60px;min-height:44px;height:auto;font-size:12px}
.result-topline>button{min-height:44px;padding-block:8px}
@media(min-width:761px) and (max-height:800px){
 .hero-content{padding-block:18px}
 .hero-heading{width:min(540px,100%)}
}
@media(max-width:760px){
 .footer nav{font-size:12px;gap:8px;margin-block:16px 12px}
 .footer nav a,.footer nav button{padding-inline:0}
 .footer>small{font-size:11px}
 .bottom-cta>div>p{font-size:12px}
 .contents a{min-height:44px;display:inline-flex;align-items:center}
 .result-gender label{min-height:40px;display:flex;align-items:center}
}
/* Keep the header button label on one line on phones; below 341px there is no room, so it may wrap as before. */
@media(min-width:341px) and (max-width:760px){.header-cta{white-space:nowrap;flex-shrink:0}.header-inner{gap:8px}}
/* 2026-11-06 full-site audit. Japanese line breaking everywhere: never start a line with a small kana or a long-vowel mark,
   and headings, buttons, tabs and short labels wrap only at punctuation or <wbr> (a phrase too long for the line still wraps). */
body{line-break:strict}
h1,h2,h3,h4,button,[role=tab],legend,.animal-description,.section-kicker,.small-label{word-break:keep-all;overflow-wrap:anywhere}
/* Phone menu: a vertical list of full-width rows instead of five squeezed columns. */
@media(max-width:760px){
 body:not([data-screen=member]) .header nav{flex-direction:column;align-items:stretch;gap:0;padding:6px 23px 10px}
 body:not([data-screen=member]) .header nav>*{display:block;width:100%;text-align:left;padding:13px 2px;font-size:14px;white-space:nowrap;border-bottom:1px solid #efe6ea}
 body:not([data-screen=member]) .header nav>*:last-child{border-bottom:0}
}
/* Small white-on-pink buttons on the membership page use the darker rose so the text stays readable. */
body[data-screen=member] .primary{background-color:var(--rose-dark)}
.animal-description{text-wrap:pretty}
/* With the tab subtitles gone there is room for 14px tab labels on phones (on 320px screens アニマルカラー wraps at its <wbr>). */
@media(max-width:760px){.fv-mode-tabs [role=tab]{font-size:14px}}
/* Same side margins as .wrap between 761 and 1050px. */
@media(min-width:761px) and (max-width:1050px){.member-page{width:calc(100% - 48px)}}
/* Round 2 of the audit. Card descriptions on the narrowest phones: a phrase can be wider than the card, and a forced
   break would then put 、 at the start of a line, so ordinary Japanese line breaking (which respects 、。) is used there. */
@media(max-width:360px){.animal-description,.mode-copy small,.mode-copy>span{word-break:normal;overflow-wrap:normal}}
/* Short last lines (「す。」「ん。」) are avoided where the browser supports it. */
p,li,figcaption,dd{text-wrap:pretty}
.mode-copy small,.mode-copy>span{display:block;text-wrap:balance} /* block so balance applies; app.js adds phrase breaks to these card sentences */
/* The menu button never shrinks below its label. */
.mobile-menu{flex-shrink:0;white-space:nowrap}
@media(max-width:760px){body:not([data-screen=member]) .header.menu-open nav{box-shadow:0 12px 18px rgba(53,43,54,.14);border-bottom-color:#d9c9d1}}
/* The three diagnosis cards: <button> centres its content vertically, so a card whose text wraps to two lines sat higher; start them at the top. */
@media(min-width:761px){.diagnosis-three>button{display:flex;flex-direction:column;justify-content:flex-start}}
/* Round 3 of the audit: balanced headings (no lone 「取得」), no lone 「か？」 in FAQ questions, and a wider text column for compatibility entries on the narrowest screens. */
h1,h2,h3,h4{text-wrap:balance}
.faq-list summary{text-wrap:pretty;word-break:keep-all;overflow-wrap:anywhere}
@media(max-width:360px){.compatibility-panel li{grid-template-columns:40px minmax(0,1fr);gap:14px}.compatibility-panel li>.animal-art{width:40px;height:46px}.compatibility-panel li .sprite-crop{width:40px}}
/* Round 6: product names stay whole; membership result tabs break at their <wbr>; colour-type labels a little darker for contrast. */
.term{white-space:nowrap}
#member-result>.result-tabs a{word-break:keep-all;overflow-wrap:anywhere}
.character-hero[data-palette] .type-label{color:color-mix(in srgb,var(--color-accent,var(--rose-dark)) 82%,#000)}
@media(max-width:360px){#animal-dialog .reading-result .reading-radar svg text{font-size:26px}}
/* Round 7: darker ANIMAL 01–12 labels (contrast 4.5+), a hair of trim on sprite crops so a neighbouring cell never peeks in, and the broken-link notice wraps between phrases. */
.card-count{color:#43606a}
.animal-sprite .sprite-crop{clip-path:inset(.6%)}
.member-error{word-break:keep-all;overflow-wrap:anywhere}


/* Compact, persistent dialog controls: back on the left, close on the right. */
.dialog-tools{position:sticky;top:0;z-index:4;display:flex;align-items:center;gap:10px;min-height:64px;padding:10px 16px;background:var(--paper);border-bottom:1px solid #ead9e0}
.dialog-tools .dialog-action{display:grid;place-items:center;place-content:center;flex:none;width:44px;height:44px;min-width:44px;min-height:44px;margin:0;padding:0;border:1px solid #352b36;border-radius:50%;background:var(--rose);color:#fff;box-shadow:2px 2px 0 #ead5df;cursor:pointer}
.dialog-tools .dialog-action:hover,.dialog-tools .dialog-action:focus-visible{background:var(--rose-dark)}
.dialog-tools .dialog-action svg{display:block;width:20px;height:20px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dialog-tools [data-close]{margin-left:auto}
#about-dialog{padding:0 24px 24px}
#about-dialog .dialog-tools{margin-inline:-24px;margin-bottom:18px}

@media(max-width:760px){.hero-picture.hero-group{width:100%;margin:8px auto 16px;aspect-ratio:3/1}}
