:root{font-family:Hiragino Sans,Noto Sans JP,Meiryo,system-ui,sans-serif;color:#203f36;background:#f4f6ef;font-synthesis:none;font-size:16px;line-height:1.7}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,select,input{min-height:48px;border:1px solid #cbd7cd;border-radius:10px;padding:10px 14px}button{cursor:pointer;background:#28695b;color:#fff;font-weight:600;white-space:normal}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:#edf3e9;color:#245847}button.quiet{background:transparent;color:#49645a;border-color:transparent}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #b39145;outline-offset:4px}input,select{background:#fff;color:#234b3e;max-width:100%;width:100%}header{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 4vw;border-bottom:1px solid #dfe6dc;background:#fffdf7}.brand{display:flex;gap:12px;align-items:center;font-size:27px;font-weight:650;color:#28695b;text-decoration:none;line-height:1.2}.brand small{display:block;font-size:9px;letter-spacing:.18em;margin-top:6px}.header-actions{display:flex;align-items:center;gap:20px}.header-actions select{width:auto}.connection{font-size:12px;color:#8b6d35}.connection:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;margin-right:7px}.connection.online{color:#3e735b}.terminal{max-width:1500px;margin:0 auto;padding:40px 4vw;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:32px}.companion{background:#173f36;color:#f6fae9;border-radius:32px;padding:32px;display:flex;flex-direction:column;align-items:center;text-align:center;min-height:650px;justify-content:center;position:relative;overflow:hidden}.robot-name{font-size:13px;letter-spacing:.08em;color:#bed2c2;margin-bottom:30px}.face{width:min(420px,100%);height:210px;display:flex;justify-content:center;align-items:center;gap:55px;position:relative;margin:20px 0 35px}.face i{display:block;width:55px;height:75px;border-radius:45%;background:#dfeec7;box-shadow:0 0 35px #b5dc9140;animation:blink 6s infinite}.face span{position:absolute;bottom:15px;width:52px;height:24px;border:4px solid #dfeec7;border-top:0;border-radius:0 0 50px 50px}.face.paused i{height:10px;animation:none}.face.compact{background:#173f36;border-radius:45px;height:190px;width:300px;margin:auto}.eyebrow{font-size:12px;letter-spacing:.1em;color:#adc9b8}.companion h1{font-size:clamp(25px,3vw,40px);line-height:1.6;font-weight:500;max-width:650px;margin:12px 0}.visit-label{font-size:14px;color:#c9dbcd;overflow-wrap:anywhere}.controls{background:#fffdf9;border:1px solid #e0e6db;border-radius:24px;padding:28px;align-self:start;min-width:0}.controls h2{margin:0;font-size:20px}.help{font-size:12px;color:#6c7e71;line-height:1.8}.controls label{display:block;font-size:13px;margin:20px 0 12px}.controls label input,.controls label select{display:block;margin-top:7px}.controls>button{display:block;width:100%;margin:10px 0}.controls .check{display:flex;gap:12px;align-items:center}.check input{min-height:24px;width:24px;flex-shrink:0;accent-color:#28695b}.check span{font-size:13px}.controls fieldset{border:0;margin:20px 0 0;padding:0}.controls legend{font-size:12px;color:#70806d}.controls h3{font-size:20px;font-weight:600}.answers{display:grid;gap:12px}.visit-actions{border-top:1px solid #e1e8df;margin-top:25px;padding-top:20px;display:flex;flex-wrap:wrap;gap:10px}.controls dl{font-size:13px}.controls dl div{padding:10px 0;border-bottom:1px solid #e4e8e1}.controls dd{margin:3px 0;color:#28695b;font-weight:600}.photo{border-top:1px solid #e1e8df;margin-top:20px;padding-top:15px}.photo summary{cursor:pointer;min-height:48px;display:list-item;padding:10px}.photo img{width:100%;border-radius:10px}.photo input[type=file]{font-size:13px}.battery-label{max-width:270px}.error,.connection-warning{background:#faeee1;color:#7f442b;border-radius:10px;padding:12px;font-size:14px}.notice{color:#e4efc6}.enrol-screen{max-width:650px;text-align:center;padding:70px 24px;min-height:75vh;margin:auto}.enrol-screen h1{font-size:28px;margin-top:40px}.enrol-screen p{color:#5e7668}.enrol-screen p:empty{display:none}footer{padding:24px;text-align:center;font-size:11px;color:#798775}.controls:has(fieldset:disabled){opacity:.85}@keyframes blink{0%,44%,48%,to{transform:scaleY(1)}46%{transform:scaleY(.08)}}@media(prefers-reduced-motion:reduce){.face i{animation:none}}@media(max-width:850px){header{padding:18px 20px}.terminal{grid-template-columns:1fr;padding:20px;gap:20px}.companion{min-height:390px;padding:24px}.face{height:150px;margin:0 0 20px}.face i{height:55px;width:42px}.robot-name{margin-bottom:10px}.controls{padding:24px}.header-actions{gap:12px}.connection{font-size:11px}}@media(max-width:430px){header{align-items:start;flex-wrap:wrap;gap:16px}.header-actions{width:100%;justify-content:space-between}.terminal{padding:12px}.companion{border-radius:22px}.controls{padding:20px}.companion h1{font-size:25px}.enrol-screen{padding:40px 20px}.face.compact{width:250px}.visit-actions button{width:100%}}.voice-panel{border-bottom:1px solid #dfe6dc;padding-bottom:24px;margin:20px 0}.voice-panel>button{width:100%;margin:6px 0}.voice-panel h3{margin:0}.voice-transcript{max-height:340px;overflow-y:auto;overscroll-behavior:contain;margin:18px 0;font-size:14px}.voice-transcript p{padding:12px 14px;border-radius:14px;margin:10px 0;white-space:pre-wrap;overflow-wrap:anywhere}.voice-transcript small{display:block;font-size:11px;margin-bottom:5px;opacity:.8}.voice-resident{background:#f0f1e9;margin-left:20px!important}.voice-companion{background:#e3efe5;margin-right:20px!important}.push-to-talk{min-height:82px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;font-size:18px}.push-to-talk.recording{background:#934a38;border-color:#934a38;box-shadow:0 0 0 4px #934a3820}.voice-status{font-size:13px;color:#576b60}.voice-status.recording{color:#934a38;font-weight:650}@media(max-width:850px){.terminal:has(.voice-transcript) .companion{min-height:0;padding:20px}.terminal:has(.voice-transcript) .face{height:85px;margin:4px 0 12px;gap:36px}.terminal:has(.voice-transcript) .face i{height:34px;width:27px}.terminal:has(.voice-transcript) .face span{bottom:0;width:32px;height:16px;border-width:3px}.terminal:has(.voice-transcript) .eyebrow{display:none}.terminal:has(.voice-transcript) .companion h1{font-size:21px;margin:8px 0}.voice-transcript{max-height:250px}}
