@charset "UTF-8";

.doll-page { --doll-accent: #9bd8c7; --doll-bright: #c5eddf; --doll-gold: #e0cda2; }
.doll-page .guide-kicker { color: var(--doll-accent); }
.doll-page .guide-toc { top: 120px; }
.doll-page .guide-section { scroll-margin-top: 115px; }
.doll-page .guide-hero h1 em { color: var(--doll-bright); }
.doll-page :is(a,button,summary):focus-visible { outline: 2px solid #b1e4d3; outline-offset: 5px; }
.doll-page [hidden] { display: none !important; }
.doll-page button { font: inherit; }
.doll-hero { grid-template-columns: 1fr 1.08fr; min-height: 505px; gap: 20px; padding-block: 34px 40px; }
.doll-hero::before { background: radial-gradient(ellipse at 81% 55%,#2e716d22,transparent 57%); }
.doll-hero-copy { position: relative; z-index: 1; padding-block: 20px; }
.doll-hero h1 { font-size: clamp(34px,3.5vw,50px); letter-spacing: 0; }
.doll-hero .guide-lead { max-width: 480px; }
.doll-hero-facts { display: flex; flex-wrap: wrap; gap: 18px 28px; margin-top: 30px; }
.doll-hero-facts > span { font-size: 12px; color: #91a9b7; }
.doll-hero-facts > span + span { padding-left: 28px; border-left: 1px solid #8cb9b13b; }
.doll-hero-facts strong { display: block; color: #d2e7dd; font-size: 15px; font-weight: 500; margin-bottom: 4px; }
.doll-hero-art { min-width: 0; margin: 0 -24px 0 0; position: relative; }
.doll-orbit { position: relative; min-height: 425px; isolation: isolate; }
.doll-orbit::before { content: ""; position: absolute; z-index: -1; width: 86%; height: 63%; left: 7%; top: 19%; background: radial-gradient(ellipse,#487b7130,transparent 67%); }
.doll-orbit::after { content: ""; position: absolute; z-index: -1; inset: auto 12% 8%; height: 20%; border: 1px solid #b3ce9d2e; border-radius: 50%; box-shadow: 0 0 30px #6ead9a09,inset 0 0 35px #6ead9a08; transform: rotate(-8deg); }
.doll-orbit-main,.doll-orbit-small { position: absolute; margin: 0; }
.doll-orbit-main { width: 59%; left: 21%; bottom: 6%; z-index: 2; }
.doll-orbit-small { width: 41%; bottom: 19%; z-index: 1; }
.doll-orbit-small:first-child { left: -2%; }
.doll-orbit-small:last-child { right: -1%; bottom: 24%; }
.doll-orbit img { display: block; width: 100%; height: auto; object-fit: contain; filter: drop-shadow(0 16px 20px #0003); }
.doll-orbit figure figcaption,.doll-orbit > div > span { display: block; text-align: center; font-size: 11px; letter-spacing: 1px; color: #a9c9bc; margin-top: -8px; }
.doll-art-caption { text-align: center; color: #a6c6bc; font-size: 12px; letter-spacing: 1px; line-height: 1.8; margin: -6px 0 0; }
.doll-art-caption small,.doll-art-caption span { display: block; color: #849eac; font-size: 11px; letter-spacing: .5px; margin-top: 3px; }
.doll-motion-toggle { display: block; margin: 15px auto 0; min-height: 40px; padding: 5px 12px; border: 0; border-bottom: 1px solid #85c4b15c; background: transparent; color: #a5cfbf; font-size: 12px !important; cursor: pointer; }
.doll-motion-toggle:hover { color: #dbf4e9; border-color: #c2e6d5; }
.doll-path { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); padding-block: 27px; border-bottom: 1px solid var(--line); }
.doll-path > a { display: flex; align-items: center; gap: 13px; padding: 7px 20px; min-height: 73px; border-right: 1px solid var(--line); }
.doll-path > a:first-child { padding-left: 0; }
.doll-path > a:last-child { border-right: 0; padding-right: 0; }
.doll-path > a > .icon { color: #a2cbbd; width: 26px; height: 26px; flex-shrink: 0; }
.doll-path small { display: block; font-size: 11px; color: #8da7b7; margin-bottom: 1px; }
.doll-path strong { font-weight: 500; font-size: 15px; color: #d1e2e4; }
.doll-path > a > span:last-child { margin-left: auto; color: #92bbad; }
.doll-path a:hover strong { color: #bcebd9; }
.doll-start-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.doll-start-grid li { min-width: 0; border-top: 1px solid #94b9af44; padding-top: 21px; }
.doll-step-index { color: #9cc7b6; font-size: 24px; font-family: Georgia,serif; line-height: 1.4; display: block; margin-bottom: 16px; }
.doll-start-grid h3 { font-size: 18px; font-weight: 500; margin-bottom: 10px; }
.doll-start-grid p { color: #a9bfcd; font-size: 14px; margin: 0; }
.doll-start-grid .guide-text-link { font-size: 13px; margin-top: 12px; }
.doll-summon-note { display: flex; align-items: flex-start; gap: 15px; margin-top: 27px; padding: 21px 24px; border-left: 2px solid #a1ceba; background: #13292369; color: #b9d3ca; }
.doll-summon-note > .icon { flex-shrink: 0; margin-top: 4px; }
.doll-summon-note strong { color: #d7eee2; font-weight: 500; }
.doll-summon-note p { margin: 4px 0 0; font-size: 14px; color: #a9c2b9; }
.doll-tier-picker { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 7px; margin-bottom: 16px; }
.doll-tier-picker button { min-width: 0; cursor: pointer; min-height: 74px; padding: 11px 4px; border: 1px solid #86aba436; background: #0e1b25; color: #a9bdc8; }
.doll-tier-picker small { display: block; font-size: 10px; color: #8ca99f; letter-spacing: 1px; margin-bottom: 4px; }
.doll-tier-picker span { font-size: 14px; }
.doll-tier-picker button:hover { border-color: #94cfb87a; background: #162b2c; }
.doll-tier-picker [aria-pressed="true"] { color: #d4f1e4; background: #19342f; border-color: #8bbfac; box-shadow: inset 0 -2px #a5d7bd; }
#doll-tier-detail { padding: 30px 32px; border: 1px solid #8db9a94d; background: radial-gradient(ellipse at 100% 0,#3f6a4930,transparent 65%),#101e29; }
#doll-tier-detail [data-doll-tier-label] { font-size: 10px; letter-spacing: 2px; color: #91c9b5; margin-bottom: 9px; }
#doll-tier-detail [data-doll-tier-name] { font-size: 26px; font-weight: 500; color: #d7ece1; margin-bottom: 13px; }
#doll-tier-detail [data-doll-tier-description] { font-size: 14px; color: #abc1cc; margin-bottom: 22px; }
#doll-tier-detail [data-doll-tier-members] { padding-top: 20px; border-top: 1px solid #83a89c33; font-size: 15px; line-height: 2.1; color: #c2d9cf; margin-bottom: 0; word-break: normal; }
#doll-tier-detail .guide-text-link { margin-top: 17px; font-size: 13px; }
.doll-tier-list { margin-top: 22px; }
.doll-tier-list details { border-bottom: 1px solid var(--line); }
.doll-tier-list summary { cursor: pointer; padding: 15px 0; color: #bdd3ce; font-size: 14px; }
.doll-tier-list summary strong { font-weight: 500; }
.doll-tier-list summary > span:first-child { color: #c6ded3; font-size: 14px; }
.doll-tier-list summary > span:last-child { color: #9ebbb0; font-size: 12px; margin-left: 16px; }
.doll-tier-names { margin: 0 0 18px; padding: 3px 0 4px; font-size: 14px; color: #9fb7bd; line-height: 2.2; }
.doll-tier-names a { color: #b8dfd2; text-decoration: underline; text-underline-offset: 4px; }
.doll-book-flow { list-style: none; padding: 0; margin: 24px 0 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; }
.doll-book-flow li { position: relative; padding: 25px 22px; min-width: 0; border: 1px solid #90b5a83b; background: #111f28; margin-right: -1px; }
.doll-book-flow li + li::before { content: '→'; position: absolute; left: -12px; top: 66px; padding-inline: 2px; background: #111f28; color: #a9d0b9; z-index: 1; }
.doll-book-flow li > span { color: #8aaf9f; font-size: 11px; letter-spacing: 2px; }
.doll-book-flow svg { display: block; width: 72px; height: 72px; margin: 20px 0; fill: none; stroke: #a1cdbb; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
.doll-book-flow li:last-child svg { stroke: var(--doll-gold); }
.doll-book-flow h3 { font-size: 17px; font-weight: 500; margin-bottom: 10px; }
.doll-book-flow p { color: #a8bcc7; font-size: 13px; margin-bottom: 0; }
.doll-page-journey { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 12px; font-size: 12px; color: #bed6ca; margin-bottom: 26px; }
.doll-page-journey span { padding-block: 5px; border-bottom: 1px solid #9cc3ad42; }
.doll-page-journey b { font-weight: 400; color: #7f9f91; }
.doll-collection-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.doll-collection-grid article { padding: 28px; border-top: 1px solid #96bdae85; background: #10212a; }
.doll-collection-grid h3 { font-size: 19px; font-weight: 500; line-height: 1.6; margin-bottom: 15px; }
.doll-collection-grid p { color: #abc0c6; font-size: 14px; }
.doll-collection-grid :is(.doll-eyebrow,.guide-kicker) { color: #a3c8b4; font-size: 11px; letter-spacing: 1px; margin-bottom: 10px; }
.doll-collection-grid .doll-set-bonus { background: radial-gradient(ellipse at 90% 0,#79633222,transparent 70%),#192127; border-color: #d9c28c85; }
.doll-set-bonus :is(.doll-eyebrow,.guide-kicker) { color: #d7c391; }
.doll-set-bonus dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; margin-block: 20px; }
.doll-set-bonus dt { color: #adbec5; font-size: 12px; }
.doll-set-bonus dd { color: #ecd9ac; font-size: 26px; line-height: 1.5; margin: 4px 0 0; }
.doll-set-bonus p:last-child { margin-bottom: 0; }
.doll-page-indicators { display: flex; flex-wrap: wrap; gap: 12px 20px; font-size: 12px; color: #b2cebd; margin-top: 23px; }
.doll-page-indicators i { display: inline-block; width: 7px; height: 7px; border: 1px solid #758a86; border-radius: 50%; margin-right: 8px; }
.doll-page-indicators i.is-complete { background: #a1d8b2; border-color: #a1d8b2; box-shadow: 0 0 10px #a1d8b22c; }
.doll-page-bonus > small { color: #839eaa; display: block; font-size: 11px; margin-top: 13px; }
.doll-duplicates { display: flex; align-items: flex-start; gap: 20px; padding-top: 24px; border-top: 1px solid var(--line); margin-top: 25px; }
.doll-duplicates > .icon { width: 27px; height: 27px; color: #9bc5af; margin-top: 5px; flex-shrink: 0; }
.doll-duplicates h3 { font-size: 18px; font-weight: 500; margin-bottom: 9px; }
.doll-duplicates p { font-size: 14px; color: #a7becc; margin-bottom: 0; }
.doll-rental-panel { display: grid; grid-template-columns: 1fr auto; gap: 20px 35px; padding: 30px; background: radial-gradient(ellipse at top right,#29535930,transparent 65%),#10212b; border: 1px solid #7aaea14d; align-items: center; }
.doll-rental-title { display: flex; align-items: center; gap: 18px; min-width: 0; }
.doll-rental-title > .icon { width: 38px; height: 38px; color: #a8d1c6; flex-shrink: 0; }
.doll-rental-title .doll-eyebrow,.doll-rental-title .guide-kicker { color: #90b6ad; font-size: 11px; letter-spacing: 1px; margin-bottom: 4px; }
.doll-rental-title h3 { font-size: 23px; font-weight: 500; }
.doll-rental-value { text-align: right; color: #c6e9d8; }
.doll-rental-value dt,.doll-rental-value > span { display: block; color: #a0bcba; font-size: 12px; }
.doll-rental-value dd,.doll-rental-value > strong { display: block; font-size: 37px; line-height: 1.4; font-weight: 500; margin: 2px 0 0; }
.doll-rental-panel > p { grid-column: 1 / -1; font-size: 13px; color: #a6bec6; margin: 0; }
.doll-rental-rules { margin-top: 22px; }
.doll-rental-rules > div,.doll-rental-rules dl > div { display: grid; grid-template-columns: 155px 1fr; gap: 20px; border-bottom: 1px solid var(--line); padding-block: 17px; font-size: 14px; }
.doll-rental-rules dt { color: #bdd6d1; }
.doll-rental-rules dd { color: #a4bdc8; margin: 0; }
.doll-faq details { border-bottom: 1px solid var(--line); }
.doll-faq summary { padding: 21px 0; color: #cbdfda; font-size: 16px; cursor: pointer; }
.doll-faq details > p { color: #a7bdc8; font-size: 14px; margin: 0 0 22px; max-width: 730px; }
.doll-faq a,.doll-inline-link { color: #b5dfce; text-decoration: underline; text-underline-offset: 4px; }
.doll-cta { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 24px 35px; padding: 34px; background: radial-gradient(ellipse at right,#3f695436,transparent 75%),#101f29; border-top: 1px solid #96c8af66; margin-top: 38px; }
.doll-cta h2,.doll-cta h3 { font-size: 24px; font-weight: 500; margin-bottom: 10px; }
.doll-cta p { color: #a8bec7; font-size: 14px; margin-bottom: 0; }
.doll-cta .button { flex-shrink: 0; }
.doll-foot-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 15px 25px; padding-block: 30px 45px; font-size: 13px; color: #97b3b8; }
.doll-foot-links a:hover { color: #b9e4d1; }

@media(max-width:1100px) {
  .doll-path > a { padding-inline: 13px; gap: 10px; }
  .doll-path strong { font-size: 14px; }
  .doll-path > a > .icon { width: 23px; }
  .doll-hero-art { margin-right: -10px; }
  .doll-orbit { min-height: 380px; }
  .doll-start-grid { gap: 20px; }
  .doll-book-flow li { padding-inline: 17px; }
}
@media(max-width:960px) {
  .doll-hero { grid-template-columns: 1fr 1fr; gap: 0; min-height: 0; }
  .doll-page .doll-hero h1 { font-size: 36px; }
  .doll-hero .guide-lead { font-size: 14px; }
  .doll-orbit { min-height: 345px; }
  .doll-hero-art { margin-right: -16px; }
  .doll-path { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 17px 0; }
  .doll-path > a:nth-child(2) { border-right: 0; }
  .doll-path > a:nth-child(3) { padding-left: 0; }
  .doll-path > a { padding-inline: 23px; }
  .doll-page .guide-toc { position: static; }
  .doll-page .guide-toc nav { gap: 0 24px; }
}
@media(max-width:640px) {
  .doll-page .doll-hero { display: flex; flex-direction: column; gap: 0; padding-block: 15px 27px; }
  .doll-hero-copy { width: 100%; padding-block: 12px 0; }
  .doll-page .doll-hero h1 { font-size: clamp(31px,8.1vw,42px); margin-bottom: 17px; line-height: 1.5; }
  .doll-hero .guide-kicker { font-size: 10px; letter-spacing: 2px; margin-bottom: 15px; }
  .doll-hero .guide-lead { font-size: 14px; margin-bottom: 22px; }
  .doll-hero .guide-hero-actions { gap: 10px; }
  .doll-hero .guide-hero-actions a { min-height: 47px; padding-inline: 15px; font-size: 13px; }
  .doll-hero-facts { gap: 18px 22px; margin-top: 22px; }
  .doll-hero-facts > span + span { padding-left: 22px; }
  .doll-hero-facts strong { font-size: 14px; }
  .doll-hero-art { width: 100%; margin: 10px 0 0; }
  .doll-orbit { min-height: clamp(265px,79vw,370px); }
  .doll-orbit-main { width: 60%; left: 21%; }
  .doll-orbit-small { width: 41%; }
  .doll-art-caption { font-size: 11px; margin-top: -2px; }
  .doll-motion-toggle { margin-top: 10px; }
  .doll-path { padding-block: 21px; gap: 13px 0; }
  .doll-path > a { padding: 5px 12px; min-height: 63px; gap: 10px; }
  .doll-path > a:nth-child(2n) { padding-right: 0; }
  .doll-path small { font-size: 10px; }
  .doll-path strong { font-size: 13px; }
  .doll-path > a > .icon { width: 22px; height: 22px; }
  .doll-path > a > span:last-child { display: none; }
  .doll-page .guide-section-title { font-size: 25px; }
  .doll-start-grid { grid-template-columns: 1fr; gap: 22px; }
  .doll-start-grid li { display: grid; grid-template-columns: 32px 1fr; gap: 0 16px; padding-top: 21px; }
  .doll-start-grid .doll-step-index { grid-column: 1; grid-row: 1 / span 3; font-size: 22px; margin: 0; }
  .doll-start-grid h3,.doll-start-grid li > p,.doll-start-grid li > a { grid-column: 2; }
  .doll-start-grid h3 { font-size: 18px; }
  .doll-summon-note { padding: 19px 20px; }
  .doll-tier-picker { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
  .doll-tier-picker button { min-height: 64px; padding-block: 10px; }
  .doll-tier-picker small { font-size: 9px; margin-bottom: 1px; }
  .doll-tier-picker button:last-child { grid-column: span 2; }
  #doll-tier-detail { padding: 25px 22px; }
  #doll-tier-detail [data-doll-tier-name] { font-size: 24px; }
  #doll-tier-detail [data-doll-tier-members] { font-size: 14px; }
  .doll-book-flow { grid-template-columns: 1fr; gap: 15px; }
  .doll-book-flow li { display: grid; grid-template-columns: 60px 1fr; gap: 0 17px; padding: 23px 21px; margin: 0; }
  .doll-book-flow li > span { grid-column: 1; grid-row: 1; }
  .doll-book-flow svg { grid-column: 1; grid-row: 2 / span 2; width: 60px; height: 60px; margin: 12px 0 0; }
  .doll-book-flow h3 { grid-column: 2; grid-row: 1; font-size: 17px; }
  .doll-book-flow p { grid-column: 2; grid-row: 2 / span 2; font-size: 14px; }
  .doll-book-flow li + li::before { content: '↓'; top: -20px; left: 44px; padding: 0 6px; }
  .doll-page-journey { display: grid; grid-template-columns: 1fr; gap: 4px; margin-bottom: 22px; }
  .doll-page-journey span { border: 0; padding-block: 5px; }
  .doll-page-journey b { transform: rotate(90deg); width: 20px; height: 20px; line-height: 20px; }
  .doll-collection-grid { grid-template-columns: 1fr; gap: 20px; }
  .doll-collection-grid article { padding: 25px; }
  .doll-duplicates { gap: 14px; }
  .doll-duplicates h3 { font-size: 17px; }
  .doll-rental-panel { padding: 25px; gap: 22px 15px; }
  .doll-rental-title { gap: 13px; }
  .doll-rental-title > .icon { width: 29px; height: 29px; }
  .doll-rental-title h3 { font-size: 19px; }
  .doll-rental-value dd,.doll-rental-value > strong { font-size: 32px; }
  .doll-rental-rules > div,.doll-rental-rules dl > div { grid-template-columns: 1fr; gap: 7px; }
  .doll-faq summary { font-size: 15px; }
  .doll-cta { padding: 27px 24px; margin-top: 28px; }
  .doll-cta h2,.doll-cta h3 { font-size: 22px; }
  .doll-cta .button { width: 100%; justify-content: center; }
  .doll-foot-links { padding-block: 27px 35px; }
}
@media(prefers-reduced-motion:reduce) { .doll-page * { scroll-behavior: auto; } }
@media print {
  .doll-hero-art,.doll-path,.doll-tier-picker,.mobile-actions { display: none; }
  #doll-tier-detail,.doll-collection-grid article,.doll-rental-panel { break-inside: avoid; }
}
