@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap');

:root{font-family:'DM Sans','Noto Sans JP',system-ui,sans-serif;color:#17213a;background:#e9e7e2;font-synthesis:none}
.character-jumps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 20px}.character-jumps a{display:flex;flex-direction:column;align-items:center;padding:12px 6px;border:1px solid #e6d5df;border-radius:13px;background:#fff;color:#49374d;font-size:16px;font-weight:700;text-decoration:none}.character-jumps small{margin-top:3px;color:#886982;font-size:10px;font-weight:500}.character-jumps a:hover{background:#f8eff3}.character-jumps a:focus-visible{outline:3px solid #a34f70;outline-offset:2px}.profile-card[id]{scroll-margin-top:100px}
.bubble-links .coffee-button,.bubble-links .donation-button{display:inline-block;padding:11px 14px;border-radius:12px;background:#49374d;color:#fff;font-size:12px;font-weight:700;text-decoration:none}.bubble-links .donation-button{background:#a34f70}
#company-retry[hidden]{display:none}#company-details dt{margin-top:18px;font-weight:700;color:#45364c;font-size:13px}#company-details dd{margin:6px 0;color:#625d6c;font-size:12px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #557af0;outline-offset:3px}.hidden{display:none!important}
.desktop-stage{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px;background:radial-gradient(circle at 12% 10%,#f9f7f2,transparent 35%),radial-gradient(circle at 85% 75%,#d9dce5,transparent 35%),#e9e7e2}
.phone-frame{position:relative;width:min(430px,calc(100vw - 48px));height:min(850px,calc(100vh - 90px));min-height:520px;padding:8px;border:2px solid #242936;border-radius:48px;background:#242936;box-shadow:0 22px 70px rgba(23,31,50,.24),0 2px 9px rgba(20,28,45,.18);overflow:hidden}
.phone-camera{position:absolute;z-index:20;top:14px;left:50%;transform:translateX(-50%);width:100px;height:22px;border-radius:0 0 16px 16px;background:#242936;pointer-events:none}
.phone-screen{height:100%;border-radius:39px;overflow:hidden;position:relative;background:#f5f2ed}.desktop-caption{margin:12px 0 0;color:#717988;font-size:11px;letter-spacing:.12em}
.landing{height:100%;overflow-y:auto;background:linear-gradient(160deg,#f6f2ea 0%,#fff 52%,#edf1f6 100%)}.landing-content{min-height:100%;padding:48px 24px 24px}.brand-row{display:flex;align-items:center;gap:7px;color:#263455;font-size:13px;font-weight:800;letter-spacing:.12em}.brand-symbol{font-size:23px;color:#2852d6;line-height:1}.edition{margin-left:auto;font-family:'DM Sans',sans-serif;font-size:9px;font-weight:700;letter-spacing:.17em;color:#7788a8}
.hero-copy{padding:57px 4px 25px}.eyebrow{font-family:'DM Sans',sans-serif;font-size:10px;font-weight:700;color:#3865d5;letter-spacing:.25em;margin:0 0 18px}.hero-copy h1{margin:0;font-size:clamp(35px,9vw,46px);font-weight:800;line-height:1.26;letter-spacing:-.055em;color:#18233e}.hero-copy h1 em{font-style:normal;color:#2a53d5}.hero-description{margin:22px 0 0;font-size:13px;line-height:2;color:#626b7c;font-weight:500}.choose-label{display:flex;justify-content:space-between;align-items:center;margin:12px 3px 13px;font-size:11px;font-weight:700;letter-spacing:.08em;color:#344465}.choose-label span{font-size:20px;color:#2d52c9}
.character-list{display:grid;gap:10px}.character-card{position:relative;width:100%;height:118px;display:flex;align-items:center;gap:13px;overflow:hidden;text-align:left;border:1px solid rgba(27,48,92,.09);border-radius:20px;padding:0 15px 0 0;background:#fff;box-shadow:0 8px 20px rgba(36,51,77,.07);transition:transform .2s,box-shadow .2s}.character-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(36,51,77,.13)}.character-card img{width:88px;height:118px;object-fit:cover;object-position:center 21%}.card-copy{display:grid;gap:4px;min-width:0}.card-copy small{font-family:'DM Sans';letter-spacing:.16em;color:#6881af;font-size:9px;font-weight:700}.card-copy strong{font-size:17px;letter-spacing:.02em;color:#1f2941}.card-copy span{font-size:10px;color:#6c778a}.card-arrow{margin-left:auto;align-self:flex-start;margin-top:17px;font-size:19px;color:#3060d1}.character-card.sharp{background:#faf9fd}.character-card.tearful{background:#fffafa}.landing-footnote{padding:10px 4px 0;color:#8b91a0;font-size:10px;line-height:1.7;text-align:center}
.chat{height:100%;position:relative;display:flex;flex-direction:column;background:#f4f1eb}.scene{position:absolute;inset:0;overflow:hidden;background:linear-gradient(145deg,#f4f1ed,#dfe8f3);transition:background .3s}.scene img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 34%;transition:opacity .28s}.scene img.fade{opacity:.2}.scene-tint{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(255,255,255,.2) 0%,rgba(255,255,255,.06) 30%,rgba(255,255,255,.1) 63%,rgba(255,255,255,.72) 100%);pointer-events:none}.scene.sharp-sigh{background:#a9b9cc}.scene.sharp-disdain{background:#aaa5c1}.scene.sharp-sneer{background:#c1a2b6}.scene.sharp-success{background:#e8a6a0}.scene.tearful-teary{background:#b6d6e8}.scene.tearful-despair{background:#596a91}.scene.tearful-beg{background:#c5a9d4}.scene.tearful-success{background:#f6d9c7}.scene.logical-calculating{background:#c5d4e5}.scene.logical-success{background:#dfd3c1}
.chat-header{position:relative;z-index:2;display:flex;align-items:center;gap:7px;min-height:76px;padding:31px 12px 9px;background:linear-gradient(to bottom,rgba(255,255,255,.85),rgba(255,255,255,.36) 75%,transparent)}.icon-button{border:0;background:rgba(255,255,255,.85);box-shadow:0 2px 12px rgba(20,30,50,.07);border-radius:50%;height:35px;width:35px;flex:none;color:#17284d;font-size:22px;line-height:1}.chat-heading{display:grid;gap:0;flex:1;min-width:0}.chat-heading small{font-family:'DM Sans';font-size:8px;letter-spacing:.16em;font-weight:700;color:#6b7d9d}.chat-heading strong{font-size:14px;letter-spacing:.02em}.chat-heading small,.chat-heading strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.restart-button,.comments-toggle{border:1px solid rgba(35,60,100,.12);border-radius:999px;background:rgba(255,255,255,.82);padding:8px 9px;font-size:10px;font-weight:700;color:#415373;white-space:nowrap;flex:none}.comments-toggle[aria-pressed="true"]{background:#263e7d;color:#fff}
.chat-log{position:relative;z-index:1;flex:1;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:13px;padding:33px 16px 26px;scrollbar-width:none}.chat-log::-webkit-scrollbar{display:none}.bubble{max-width:88%;padding:12px 17px;border-radius:25px;font-size:14px;line-height:1.55;box-shadow:0 5px 20px rgba(15,25,44,.07);animation:bubble-in .25s ease-out;word-break:break-word;white-space:pre-wrap;transition:opacity .18s ease}.bubble.bot{align-self:flex-start;background:rgba(255,255,255,.94);border-bottom-left-radius:9px;color:#29334c}.bubble.user{align-self:flex-end;background:#2c53d6;border-bottom-right-radius:9px;color:white;box-shadow:0 8px 18px rgba(35,73,183,.24)}.bubble-links{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}.bubble-links a{display:block;border-radius:12px;padding:8px 10px;background:#edf2ff;color:#2351cf;font-size:12px;font-weight:700;text-decoration:none;overflow-wrap:anywhere}.bubble-links a:hover{text-decoration:underline;background:#dce6ff}.bubble.note{background:rgba(255,255,255,.8);font-size:12px;color:#4e5a71}.bubble.error{background:#fff4ee;color:#9a4427}.bubble.offer{border:1px solid rgba(77,104,204,.22)}.bubble.touch-peek{opacity:.28}.chat.comments-hidden .bubble,.chat.image-reveal .bubble{opacity:0;visibility:hidden;pointer-events:none;animation:none}
@media(hover:hover) and (pointer:fine){.bubble:hover{opacity:.28}}
.chat-bottom{position:relative;z-index:3;padding:5px 12px 0;background:linear-gradient(to bottom,rgba(255,255,255,0),rgba(255,255,255,.7) 18%,rgba(255,255,255,.96) 55%)}.status-line{min-height:16px;margin:0 10px 5px;color:#506480;font-size:10px;font-weight:600}.composer{display:flex;align-items:center;gap:7px;min-height:55px;background:#fff;border:1px solid rgba(35,60,120,.1);border-radius:30px;padding:5px 6px 5px 15px;box-shadow:0 4px 25px rgba(28,47,88,.12)}.composer input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:13px;color:#1a2c4e}.composer input::placeholder{color:#9ca7b6}.mic-button,.send-button{display:flex;align-items:center;justify-content:center;flex:none;border:0;border-radius:50%;height:40px;width:40px}.mic-button{background:#eef2fa;color:#4665a7}.mic-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.mic-button.recording{background:#ffe7e4;color:#ce5144;animation:pulse 1.2s infinite}.send-button{background:#2b51d4;color:white;font-size:23px;font-weight:600;line-height:1}.send-button:disabled{opacity:.45;cursor:not-allowed}.safe-bottom{height:18px}
@keyframes bubble-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{50%{box-shadow:0 0 0 7px rgba(206,81,68,.15)}}
@media(max-width:600px){.desktop-stage{display:block;padding:0;background:#fff}.phone-frame{width:100vw;height:100dvh;min-height:0;padding:0;border:0;border-radius:0;box-shadow:none}.phone-camera,.desktop-caption{display:none}.phone-screen{border-radius:0}.landing-content{padding-top:max(24px,env(safe-area-inset-top))}.chat-header{padding-top:max(18px,env(safe-area-inset-top))}.safe-bottom{height:max(10px,env(safe-area-inset-bottom))}}
@media(max-height:650px) and (min-width:601px){.desktop-stage{padding:6px}.phone-frame{height:calc(100vh - 14px);min-height:0}.desktop-caption{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* 三姉妹の相談所 */
.landing{background:radial-gradient(circle at 85% 12%,#ffe5d1 0,transparent 30%),linear-gradient(165deg,#fff9f0 0%,#fff 48%,#ecedf7 100%)}
.landing-content{padding-top:44px}.brand-row{color:#49374d}.brand-symbol{color:#b75b72}.edition{color:#a46e83;letter-spacing:.04em}.hero-copy{padding:38px 3px 18px}.eyebrow{color:#a65f78}.hero-copy h1{font-size:clamp(30px,8.5vw,41px);line-height:1.3;color:#302640}.hero-copy h1 em{color:#ac5475}.hero-description{margin-top:17px;color:#745269;font-size:13px;font-weight:700;line-height:1.75}.world-intro{font-size:12px;line-height:1.85;color:#646172;margin:14px 0 0}.choose-label{margin-top:15px;color:#49374d}.choose-label span{color:#b75b72}
.sisters-hero{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:center top;margin:22px 0 0;border-radius:20px;box-shadow:0 15px 30px rgba(73,55,77,.16)}
.character-card{height:116px;border-color:rgba(86,55,82,.11);box-shadow:0 8px 22px rgba(86,55,82,.08)}.character-card img{height:116px}.character-card.logical{background:#f6f8fd}.character-card.sharp{background:#f8f4fa}.character-card.tearful{background:#fff9f4}.card-copy small{font-size:9px;letter-spacing:.03em;color:#886982}.card-copy strong{color:#2d2940}.card-copy .name-reading{font-size:11px;font-weight:500;color:#8b8690}.card-copy>span{font-size:10px}.card-arrow{color:#a95475}.landing-footnote{padding-top:18px}
.reunion-overlay{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(25,21,38,.7);backdrop-filter:blur(6px)}.reunion-panel{position:relative;width:min(100%,370px);max-height:100%;overflow-y:auto;border-radius:25px;background:#fff9f5;box-shadow:0 18px 55px rgba(20,16,32,.38)}.reunion-image{width:100%;height:210px;display:block;object-fit:cover;object-position:center top}.reunion-close{position:absolute;top:10px;right:10px;z-index:1;width:34px;height:34px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:#3d3344;font-size:23px;line-height:1}.reunion-copy{padding:19px 22px 22px}.reunion-kicker{margin:0 0 8px;color:#a65374;font-size:10px;font-weight:800;letter-spacing:.12em}.reunion-character{margin:0;color:#6b6574;font-size:11px;font-weight:700}.reunion-copy h2{margin:5px 0 10px;color:#2e2940;font-size:22px;line-height:1.35}.reunion-copy #reunion-scene{margin:0 0 19px;color:#5f5a69;font-size:13px;line-height:1.85}.reunion-continue{width:100%;display:flex;justify-content:center;align-items:center;gap:10px;padding:13px 18px;border:0;border-radius:15px;background:#a95074;color:#fff;font-size:14px;font-weight:800;box-shadow:0 8px 18px rgba(169,80,116,.24)}.reunion-continue:hover{background:#914261}
.card-portrait{display:block;flex:none;width:88px;height:116px;overflow:hidden}.character-card .card-portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;transform:scale(1.45);transform-origin:center top}
@media(max-width:600px){.landing-content{padding-top:max(24px,env(safe-area-inset-top))}.reunion-overlay{padding:max(12px,env(safe-area-inset-top)) 14px max(12px,env(safe-area-inset-bottom))}.reunion-image{height:min(29dvh,230px)}}

.site-footer{margin:28px 0 4px;padding:20px 2px max(12px,env(safe-area-inset-bottom));border-top:1px solid rgba(86,55,82,.18);color:#7a7080;text-align:center}.site-footer nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px;text-align:left}.site-footer a{color:#65536d;font-size:11px;font-weight:700;line-height:1.5;text-decoration:none}.site-footer a:hover,.site-footer a:focus-visible{text-decoration:underline}.site-footer small{display:block;margin-top:20px;font-size:10px}
.info-page{height:100%;overflow-y:auto;background:linear-gradient(165deg,#fff9f0,#fff 45%,#ecedf7);padding:0 23px 28px}.info-header{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:13px;margin:0 -23px;padding:40px 23px 15px;background:rgba(255,249,244,.94);backdrop-filter:blur(10px);border-bottom:1px solid rgba(86,55,82,.09)}.info-header a{color:#a34f70;text-decoration:none;font-size:12px;font-weight:800}.info-header strong{font-size:13px;color:#49374d}.info-content{padding-top:24px}.info-kicker{margin:0 0 8px;color:#a65f78;font-size:10px;font-weight:800;letter-spacing:.16em}.info-content h1{margin:0 0 16px;color:#302640;font-size:28px;line-height:1.35}.info-lead,.info-content p,.info-content li{color:#625d6c;font-size:12px;line-height:1.85}.info-content h2{margin:26px 0 8px;color:#45364c;font-size:16px}.info-content ul{padding-left:19px}.info-content a{color:#a34f70}.info-note{padding:12px 14px;border-radius:13px;background:#f8eff3;font-size:11px!important}.profile-card{overflow:hidden;margin:20px 0;border-radius:21px;background:#fff;box-shadow:0 10px 26px rgba(73,55,77,.1)}.profile-card img{display:block;width:100%;height:auto;aspect-ratio:9/16;object-fit:contain;background:#f1eced}.profile-copy{padding:16px 18px 20px}.profile-copy .profile-role{margin:0;color:#9c6b86;font-size:10px;font-weight:800}.profile-copy h2{margin:3px 0 9px;font-size:21px}.profile-copy p{margin:8px 0}.profile-copy strong{color:#49374d}.profile-copy a{font-weight:700}.info-page .site-footer{margin-top:33px}
@media(max-width:600px){.info-header{padding-top:max(20px,env(safe-area-inset-top))}}
