:root{font-family:"Yu Gothic",Meiryo,sans-serif;color:#382e25;background:#faf8f1;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #b86806;outline-offset:3px}header{max-width:1280px;margin:auto;padding:24px 34px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e5dfcd}.brand{color:#27241e;text-decoration:none;font-size:32px;font-weight:900;letter-spacing:-2px}.brand span{font-size:21px;letter-spacing:0;margin-left:6px}.badge{font-size:13px;font-weight:bold;border:1px solid #d9c45d;background:#fff5bb;padding:8px 13px;border-radius:30px}main{max-width:1280px;margin:auto;display:grid;grid-template-columns:360px minmax(0,1fr);gap:48px;padding:38px 34px}.eyebrow{color:#8b6a25;font-size:12px;font-weight:bold;letter-spacing:2px}h1{font-size:32px;line-height:1.6;letter-spacing:-1px;margin:14px 0}p{line-height:1.9}aside>p{color:#766a5a}.guide{display:flex;align-items:center;gap:12px;margin:36px 0 18px;padding:12px;background:#fff0a5;border:1px solid #e4cb56;border-left:5px solid #e0b52b;border-radius:12px}.guide span{font-size:25px}.guide h2{font-size:20px;margin:0}#categories{display:grid;gap:8px}#categories button{display:flex;justify-content:space-between;text-align:left;background:#fff;border:1px solid #e6dfcf;border-radius:9px;padding:14px;font-weight:700;font-size:15px}#categories button:hover,.choices button:hover{background:#fff3bd;border-color:#d4b949}details{margin-top:26px;font-size:13px;color:#766a5a}summary{cursor:pointer}.small{font-size:12px}.chat{background:#fff;border:1px solid #e8e0ce;box-shadow:0 12px 45px #554a1810;border-radius:20px;overflow:hidden;display:flex;flex-direction:column;height:760px;max-height:calc(100dvh - 150px);min-height:550px}.chat-head{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;border-bottom:1px solid #eee7d8;background:#fffdf5}.chat-head b{font-size:16px}.chat-head small{display:block;margin-top:7px;font-size:12px;color:#807362}.dot{display:inline-block;background:#b99531;width:9px;height:9px;border-radius:50%;margin-right:8px}.quiet{border:1px solid #dfd7c4;background:white;padding:9px;border-radius:8px;font-size:12px;white-space:nowrap}#messages{overflow:auto;flex:1;padding:26px;scroll-behavior:smooth}.message{margin-bottom:24px;max-width:95%}.speaker{font-size:12px;color:#8a7d69;margin-bottom:7px}.bubble{padding:17px 20px;line-height:1.9;font-size:15px;background:#f6f4ed;border-radius:3px 16px 16px;white-space:pre-wrap;overflow-wrap:anywhere}.user{margin-left:auto;max-width:85%}.user .bubble{background:#fff0a5;border-radius:16px 3px 16px 16px}.user .speaker{text-align:right}.choices{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.choices button{background:#fff;border:1px solid #dcd2b7;border-radius:9px;padding:11px 13px;color:#534329;text-align:left;font-size:14px;line-height:1.6}.source{display:inline-block;margin-top:12px;color:#665014;font-size:14px;font-weight:bold;text-underline-offset:4px}.note{font-size:12px;color:#83765f;margin-top:9px}form{border-top:1px solid #eee7d8;padding:18px 24px;background:#fffdf8}label{display:block;font-size:12px;font-weight:bold;margin-bottom:8px}.input-row{display:flex;gap:9px}input{min-width:0;flex:1;border:1px solid #d7ceba;border-radius:10px;padding:14px;font-size:15px}.input-row button{border:0;border-radius:10px;background:#51432a;color:white;padding:12px 18px;font-weight:bold}form small{display:block;font-size:11px;color:#8c7d66;line-height:1.7;margin-top:9px}@media(max-width:900px){main{grid-template-columns:260px minmax(0,1fr);gap:24px;padding:24px}h1{font-size:25px}.chat-head{padding:16px}.chat-head b{font-size:14px}}@media(max-width:650px){header{padding:14px 18px}.brand{font-size:27px}.brand span{font-size:18px}.badge{font-size:11px}main{display:flex;flex-direction:column;padding:18px 12px;gap:18px}aside{padding:0 6px}h1{font-size:26px;margin:8px 0}aside>p{font-size:14px;margin:8px 0}.guide{margin:22px 0 12px}.guide h2{font-size:20px}#categories{grid-template-columns:1fr 1fr;gap:6px}#categories button{font-size:12px;padding:12px 9px}details{margin-top:12px}.chat{height:650px;min-height:540px;max-height:none;border-radius:15px}#messages{padding:18px 14px}.bubble{padding:14px;font-size:15px}form{padding:14px}input{font-size:16px;padding:12px}.input-row button{padding:10px}.message{max-width:100%}}@media(prefers-reduced-motion:reduce){#messages{scroll-behavior:auto}}

/* Female concierge: private prototype only. */
.concierge-stage{display:flex;align-items:center;gap:22px;padding:12px 24px;background:#fff8d9;border-bottom:1px solid #eee2bb;flex-shrink:0}.concierge-portrait{width:132px;height:132px;flex-shrink:0;border-radius:50%;overflow:hidden;background:#fffdf4;box-shadow:0 0 0 4px #fff;animation:concierge-breathe 6s ease-in-out infinite}.concierge-portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transform-origin:50% 85%}.concierge-copy strong{font-size:18px;line-height:1.7;color:#65300f}.concierge-copy p{font-size:12px;margin:6px 0}.concierge-copy button{font-size:11px;padding:6px 8px;min-height:32px;background:#fffdf4;border:1px solid #cbb97b;border-radius:7px;color:#59451e}.speaker{display:flex;align-items:center;gap:8px}.speaker-avatar{order:-1;width:32px;height:32px;border-radius:50%;object-fit:cover}.user .speaker{justify-content:flex-end}#messages{min-height:0}.chat-head,form{flex-shrink:0}.chat{min-height:650px}.motion-off{animation:none}@keyframes concierge-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}@media(max-width:650px){.concierge-stage{gap:14px;padding:12px 16px}.concierge-portrait{width:100px;height:100px}.concierge-copy strong{font-size:16px}.concierge-copy p{font-size:11px}.chat{height:740px;min-height:650px}.chat-head b{font-size:12px}.concierge-copy button{min-height:36px}}@media(prefers-reduced-motion:reduce){.concierge-portrait{animation:none}}

.voice-panel{padding:10px 24px;background:#fffdf7;border-bottom:1px solid #eee2bb;flex-shrink:0}.voice-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.voice-actions button,.read-answer{border:1px solid #cab46a;border-radius:8px;background:#fff7d4;color:#51432a;padding:8px 12px;min-height:40px;font-size:13px;cursor:pointer}.voice-actions label{display:flex;align-items:center;gap:5px;margin:0;font-size:12px}.voice-actions input{flex:none;min-width:16px;width:16px;height:16px}.voice-panel details{margin:4px 0 0}.voice-panel select{font:inherit;max-width:100%;width:100%;padding:8px;border:1px solid #d7ceba;border-radius:6px;background:white}.voice-panel details p{font-size:11px}.voice-panel details[open]{max-height:170px;overflow:auto}.voice-panel label{margin-top:6px}#voice-status{font-size:12px;line-height:1.6;color:#77623b;margin-top:5px}.read-answer{display:block;margin-top:10px}.speaking .concierge-portrait:not(.motion-off){animation:concierge-breathe 1.4s ease-in-out infinite;box-shadow:0 0 0 4px #edcb63}.chat{height:870px;min-height:760px}@media(max-width:650px){.voice-panel{padding:10px 14px}.chat{height:840px;min-height:780px}}@media(prefers-reduced-motion:reduce){.speaking .concierge-portrait{animation:none!important}}

.chat{height:auto;min-height:870px}#messages{min-height:260px;max-height:520px}.voice-panel small{display:block;margin-top:10px;font-size:12px}