:root{--paper: #f3ecdd;--paper-2: #fbf7ee;--paper-3: #efe6d3;--ink: #211b13;--ink-soft: #6b6051;--ink-faint: #9a8e79;--navy: #16324f;--navy-2: #21496f;--navy-deep: #0f2438;--gold: #b08a3e;--gold-soft: #cbab66;--seal: #b23a2e;--jade: #3f6a58;--line: rgba(33, 27, 19, .14);--line-soft: rgba(33, 27, 19, .08);--shadow: 0 18px 50px -24px rgba(15, 36, 56, .45);--shadow-sm: 0 6px 20px -12px rgba(15, 36, 56, .4);--serif: "Noto Serif TC", "Songti TC", serif;--sans: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;--latin: "Cormorant Garamond", var(--serif)}*{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}html,body{height:100%}body{font-family:var(--sans);color:var(--ink);background-color:var(--paper);background-image:radial-gradient(circle at 12% 8%,rgba(176,138,62,.1),transparent 42%),radial-gradient(circle at 88% 92%,rgba(22,50,79,.1),transparent 45%),radial-gradient(circle at 50% 50%,rgba(255,255,255,.35),transparent 70%);background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}button{cursor:pointer;font-family:var(--sans)}button:disabled{cursor:not-allowed}::selection{background:var(--gold);color:#fff}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes inkfade{0%{opacity:0}to{opacity:1}}.reveal{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}.seal{font-family:var(--serif);font-weight:700;color:#fff;background:var(--seal);background-image:linear-gradient(150deg,#c2453a,#9c2c22);display:grid;place-items:center;line-height:1.05;letter-spacing:2px;border-radius:8px;box-shadow:inset 0 0 0 2px #ffffff40,0 4px 14px -6px #b23a2ecc;text-align:center}.kiosk{max-width:940px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;padding:30px 28px 24px}.kiosk-chat{height:100vh;height:100dvh}.kiosk-chat .chat-area{min-height:0}.kiosk-header{display:flex;align-items:center;gap:24px;padding-bottom:22px;position:relative;border-bottom:1px solid var(--line)}.kiosk-header:after{content:"";position:absolute;left:0;bottom:-1px;width:132px;height:3px;background:linear-gradient(90deg,var(--gold),transparent)}.portrait-frame{width:104px;height:104px;border-radius:50%;flex-shrink:0;position:relative;background:linear-gradient(160deg,var(--navy-2),var(--navy-deep));padding:4px;box-shadow:0 0 0 1px var(--gold),0 10px 28px -12px #0f2438b3}.portrait-frame:after{content:"";position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px;border-radius:50%;border:1px solid rgba(176,138,62,.45)}.portrait-img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 0;display:block}.portrait-video{position:relative;width:100%;height:100%}.portrait-video video{position:absolute;top:0;right:0;bottom:0;left:0;transition:opacity .35s ease}.portrait-video video.hidden{opacity:0}@media (min-width: 641px){.kiosk-header .portrait-frame.has-video{width:136px;height:136px}}.portrait-fallback{width:100%;height:100%;border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-weight:900;font-size:44px;color:var(--paper-2);background:radial-gradient(circle at 50% 32%,rgba(255,255,255,.18) 0 30%,transparent 31%),linear-gradient(160deg,var(--navy-2),var(--navy-deep))}.kiosk-title{flex:1}.kiosk-title .eyebrow{font-family:var(--latin);font-size:15px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);font-weight:600}.kiosk-title h1{font-family:var(--serif);font-weight:900;font-size:40px;letter-spacing:2px;color:var(--navy);line-height:1.15;margin:2px 0 4px}.kiosk-title p{color:var(--ink-soft);font-size:17px;font-weight:300}.kiosk-header .seal{width:58px;height:58px;font-size:19px;writing-mode:vertical-rl;align-self:flex-start;flex-shrink:0}.chat-area{flex:1;overflow-y:auto;padding:28px 6px;display:flex;flex-direction:column;gap:18px;scrollbar-width:thin}.chat-area::-webkit-scrollbar{width:7px}.chat-area::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.suggestions{margin:auto 0;text-align:center;color:var(--ink-soft);animation:inkfade 1s ease both}.suggestions>p{font-family:var(--serif);font-size:19px;color:var(--ink)}.suggestion-chips{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:22px}.suggestion-chips button{background:var(--paper-2);border:1px solid var(--line);color:var(--navy);padding:13px 24px;border-radius:999px;font-size:16px;font-family:var(--serif);box-shadow:var(--shadow-sm);transition:transform .18s,background .18s,color .18s,border-color .18s}.suggestion-chips button:hover{background:var(--navy);color:var(--paper-2);border-color:var(--navy);transform:translateY(-2px)}.bubble{max-width:80%;padding:15px 20px;font-size:19px;line-height:1.85;white-space:pre-wrap;word-break:break-word;animation:rise .45s ease both}.bubble.user{align-self:flex-end;background:linear-gradient(160deg,var(--navy-2),var(--navy));color:#f4eede;border-radius:18px 18px 5px;box-shadow:var(--shadow-sm)}.bubble.assistant{align-self:flex-start;background:var(--paper-2);color:var(--ink);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:6px 18px 18px;font-family:var(--serif);box-shadow:var(--shadow-sm)}.mic-msg{align-self:center;margin:0 0 4px;padding:9px 16px;background:#b23a2e14;color:var(--seal);border:1px solid rgba(178,58,46,.28);border-radius:999px;font-size:.95rem;text-align:center}.input-bar{display:flex;align-items:center;gap:12px;padding:16px;margin-top:8px;background:var(--paper-2);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.input-bar input[type=text],.input-bar input:not([type]){flex:1;padding:15px 18px;font-size:18px;font-family:var(--sans);background:var(--paper);border:1px solid var(--line);border-radius:12px;outline:none;color:var(--ink);transition:border-color .18s,box-shadow .18s}.input-bar input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #b08a3e2e}.mic-btn{background:linear-gradient(160deg,var(--gold),#997328);color:#fff;border:none;padding:15px 20px;border-radius:12px;font-size:17px;font-weight:700;white-space:nowrap;box-shadow:var(--shadow-sm);transition:transform .15s,filter .15s}.mic-btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.05)}.mic-btn.listening{background:linear-gradient(160deg,#c2453a,#9c2c22);animation:pulse 1.2s infinite}@keyframes pulse{0%,to{box-shadow:0 0 #b23a2e80}50%{box-shadow:0 0 0 12px #b23a2e00}}.send-btn{background:linear-gradient(160deg,var(--navy-2),var(--navy));color:#f4eede;border:none;padding:15px 26px;border-radius:12px;font-size:17px;font-weight:700;white-space:nowrap;box-shadow:var(--shadow-sm);transition:transform .15s,filter .15s}.send-btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.1)}.send-btn:disabled,.mic-btn:disabled{opacity:.45}.voice-toggle{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--ink-soft);white-space:nowrap}.voice-toggle input{accent-color:var(--gold);width:16px;height:16px}.kiosk.offline{align-items:center;justify-content:center;text-align:center;gap:26px}.kiosk.offline .portrait-frame{width:150px;height:150px}.kiosk.offline .portrait-fallback{font-size:64px}.kiosk.offline h1{font-family:var(--serif);font-weight:900;font-size:38px;color:var(--navy);letter-spacing:2px}.offline-msg{font-family:var(--serif);font-size:21px;color:var(--ink-soft);max-width:520px;line-height:2}.admin-login{max-width:400px;margin:10vh auto;background:var(--paper-2);padding:44px 40px 40px;border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow);text-align:center;position:relative;animation:rise .6s ease both}.admin-login:before{content:"創";position:absolute;top:-26px;left:50%;transform:translate(-50%);width:52px;height:52px;display:grid;place-items:center;font-family:var(--serif);font-weight:700;font-size:24px;color:#fff;background:linear-gradient(150deg,#c2453a,#9c2c22);border-radius:10px;box-shadow:inset 0 0 0 2px #ffffff40,0 6px 16px -6px #b23a2eb3}.admin-login h1{font-family:var(--serif);color:var(--navy);margin:8px 0 22px;font-size:23px;letter-spacing:1px}.admin-login input,.admin-login button{width:100%;padding:14px;font-size:16px;margin-top:12px;border-radius:11px;font-family:var(--sans)}.admin-login input{border:1px solid var(--line);background:var(--paper);color:var(--ink);outline:none}.admin-login input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #b08a3e2e}.admin-login button{background:linear-gradient(160deg,var(--navy-2),var(--navy));color:#f4eede;border:none;font-weight:700;margin-top:18px}.admin{max-width:1020px;margin:0 auto;padding:28px 24px 56px}.admin-header{display:flex;align-items:center;flex-wrap:wrap;gap:16px 20px;padding-bottom:18px;margin-bottom:26px;border-bottom:1px solid var(--line);position:relative}.admin-header:after{content:"";position:absolute;left:0;bottom:-1px;width:120px;height:3px;background:linear-gradient(90deg,var(--gold),transparent)}.admin-header h1{font-family:var(--serif);color:var(--navy);font-size:23px;letter-spacing:1px;margin-right:auto}.admin-header nav{display:flex;gap:4px;background:var(--paper-3);padding:5px;border-radius:12px;flex-wrap:wrap}.admin-header nav button{background:transparent;border:none;padding:9px 16px;border-radius:9px;font-size:15px;color:var(--ink-soft);font-weight:500;transition:background .18s,color .18s}.admin-header nav button:hover{color:var(--navy)}.admin-header nav button.active{background:var(--paper-2);color:var(--navy);box-shadow:var(--shadow-sm);font-weight:700}.admin-user{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--ink-soft);width:100%;justify-content:flex-end}.admin-user .logout{background:transparent;border:1px solid var(--line);color:var(--ink-soft);padding:7px 14px;border-radius:9px;font-size:13px}.admin-user .logout:hover{border-color:var(--seal);color:var(--seal)}.card{background:var(--paper-2);border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:var(--shadow);animation:rise .5s ease both}.card h2{font-family:var(--serif);color:var(--navy);font-size:19px;letter-spacing:.5px;margin:30px 0 14px;padding-left:14px;position:relative}.card h2:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:4px;border-radius:2px;background:linear-gradient(var(--gold),#997328)}.card h2:first-child{margin-top:0}.hint{color:var(--ink-soft);font-size:14px;margin:8px 0;line-height:1.7}.hint b{color:var(--ink)}.msg{background:#b08a3e1f;border:1px solid rgba(176,138,62,.4);color:#7a5c1c;padding:12px 18px;border-radius:12px;margin-bottom:18px;font-size:14.5px;animation:rise .35s ease both}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0}.toggle-row>span{font-family:var(--serif);font-size:17px}.toggle-row button{border:none;padding:12px 24px;border-radius:12px;font-size:16px;font-weight:700;color:#fff;box-shadow:var(--shadow-sm)}.toggle-row button.on{background:linear-gradient(160deg,#4a7c59,var(--jade))}.toggle-row button.off{background:linear-gradient(160deg,#c2453a,#9c2c22)}.budget-row{display:flex;align-items:center}.budget-row input{padding:9px 13px;font-size:16px;border:1px solid var(--line);background:var(--paper);border-radius:9px;width:130px;margin-left:10px;color:var(--ink)}.usage-bar{height:12px;background:var(--paper-3);border-radius:7px;overflow:hidden;margin:14px 0 8px;border:1px solid var(--line-soft)}.usage-fill{height:100%;background:linear-gradient(90deg,var(--jade),var(--gold));transition:width .4s ease}.card input[type=text],.card input[type=password],.card input[type=number],.card input[type=file],.kb-source,.kb-text,textarea{font-family:var(--sans);color:var(--ink);background:var(--paper)}.kb-source,.kb-text{display:block;width:100%;margin:10px 0;padding:12px 14px;border:1px solid var(--line);border-radius:11px;font-size:15px}.card input[type=file]{display:block;width:100%;margin:10px 0;padding:11px;border:1px dashed var(--gold);border-radius:11px;font-size:14px;background:var(--paper-3)}textarea:focus,.card input:focus,.kb-source:focus,.kb-text:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #b08a3e29}.card>button,.card button:not(.danger):not(.on):not(.off):not(.logout){background:linear-gradient(160deg,var(--navy-2),var(--navy));color:#f4eede;border:none;padding:12px 24px;border-radius:11px;font-size:15px;font-weight:600;box-shadow:var(--shadow-sm);transition:transform .15s,filter .15s}.card>button:hover,.card button:not(.danger):not(.on):not(.off):not(.logout):hover{transform:translateY(-1px);filter:brightness(1.08)}.card button:disabled{opacity:.45;transform:none}button.danger{background:linear-gradient(160deg,#c2453a,#9c2c22)!important;color:#fff!important;border:none;padding:7px 15px;border-radius:9px;font-size:13px;box-shadow:none!important}table{width:100%;border-collapse:collapse;margin-top:14px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line-soft);font-size:15px}th{color:var(--ink-faint);font-weight:600;font-size:13px;letter-spacing:1px}tbody tr{transition:background .15s}tbody tr:hover{background:var(--paper-3)}.stat-grid{display:flex;gap:18px}.stat-box{flex:1;background:var(--paper-3);border:1px solid var(--line-soft);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:6px;text-align:center}.stat-box .num{font-family:var(--latin);font-size:44px;font-weight:600;color:var(--navy);line-height:1}.stat-box span:last-child{color:var(--ink-soft);font-size:14px}.daily-chart{display:flex;align-items:flex-end;gap:5px;height:150px;padding:12px 0;overflow-x:auto}.day-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:28px;height:100%}.day-bar{width:18px;border-radius:4px 4px 0 0;min-height:2px;background:linear-gradient(var(--navy-2),var(--gold))}.day-label{font-size:10px;color:var(--ink-faint);margin-top:6px;transform:rotate(-45deg)}.top-questions{list-style:none;counter-reset:q}.top-questions li{counter-increment:q;display:flex;justify-content:space-between;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:15px;gap:12px}.top-questions li:before{content:counter(q,decimal-leading-zero);font-family:var(--latin);color:var(--gold);font-weight:600;font-size:17px;margin-right:12px}.top-questions .count{color:var(--ink-faint);white-space:nowrap}.recent-list{display:flex;flex-direction:column;gap:12px}.recent-item{background:var(--paper-3);border:1px solid var(--line-soft);border-radius:12px;padding:15px;font-size:14px}.recent-item .q{font-weight:600;color:var(--navy)}.recent-item .a{margin-top:5px;color:var(--ink);font-family:var(--serif);line-height:1.7}.recent-item .time{margin-top:7px;color:var(--ink-faint);font-size:12px}.gap-list{display:flex;flex-direction:column;gap:12px;margin:10px 0 16px}.gap-item{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--paper);font-size:14px;display:flex;flex-direction:column;gap:8px}.gap-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.gap-q{font-weight:600;color:var(--navy);font-size:15px}.gap-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--ink-faint);font-size:12px}.gap-meta .count{color:var(--seal);font-weight:600;font-size:13px}.gap-tag{background:var(--paper-3);border:1px solid var(--line-soft);border-radius:999px;padding:2px 9px;color:var(--ink-soft)}.gap-answer{color:var(--ink-soft);font-family:var(--serif);line-height:1.7}.gap-sources{color:var(--ink-faint);font-size:12px;margin-top:4px}.gap-retest{border-left:3px solid var(--line);padding:6px 10px;font-family:var(--serif);line-height:1.7;background:var(--paper-3);border-radius:0 8px 8px 0}.gap-retest.ok{border-left-color:var(--jade)}.gap-retest.ok strong{color:var(--jade)}.gap-retest.still{border-left-color:var(--seal)}.gap-retest.still strong{color:var(--seal)}.chunk-list{display:flex;flex-direction:column;gap:12px;margin-top:10px}.chunk-item{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--paper)}.chunk-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:10px}.chunk-source{font-size:.78rem;color:var(--navy);background:var(--paper-3);padding:3px 10px;border-radius:999px;border:1px solid var(--line-soft)}.chunk-actions{display:flex;gap:8px}.chunk-actions button:not(.danger){padding:6px 14px;font-size:13px}.chunk-text{margin:0;white-space:pre-wrap;line-height:1.8;font-family:var(--serif)}.chunk-edit{width:100%;box-sizing:border-box;font-family:var(--serif);line-height:1.8;padding:10px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px}.site-text-form{display:flex;flex-direction:column;gap:12px;max-width:540px}.site-text-form label{display:flex;flex-direction:column;gap:5px;font-size:.9rem;color:var(--ink-soft)}.site-text-form input{font-family:var(--sans);padding:11px 13px;border:1px solid var(--line);border-radius:10px}.persona-tips{margin:6px 0 12px;padding-left:20px}.persona-tips li{margin:4px 0;line-height:1.7}.persona-text{width:100%;box-sizing:border-box;font-family:var(--serif);line-height:1.85;padding:16px;border:1px solid var(--line);border-radius:12px;resize:vertical;background:var(--paper)}.persona-actions{display:flex;gap:10px;margin-top:12px}.account-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:8px 0 4px}.account-form input{flex:1;min-width:160px;padding:11px 13px;border:1px solid var(--line);border-radius:10px}.portrait-uploader{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.portrait-preview{width:120px;height:120px;border-radius:50%;background:linear-gradient(160deg,var(--navy-2),var(--navy-deep));padding:4px;box-shadow:0 0 0 1px var(--gold);flex-shrink:0;position:relative}.portrait-preview img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 0;display:block}.portrait-preview .portrait-fallback{font-size:46px}.portrait-preview video{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 0;display:block}.portrait-videos{display:flex;gap:28px;flex-wrap:wrap;margin-top:14px}.portrait-video-slot{display:flex;align-items:center;gap:16px}.portrait-video-slot .portrait-uploader-controls{min-width:0}.portrait-uploader-controls{flex:1;min-width:240px;display:flex;flex-direction:column;gap:8px}.portrait-uploader-controls .row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.upload-label{display:inline-block;background:linear-gradient(160deg,var(--navy-2),var(--navy));color:#f4eede;border:none;padding:11px 22px;border-radius:11px;font-size:15px;font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .15s,filter .15s}.upload-label:hover{transform:translateY(-1px);filter:brightness(1.08)}.lang-switch{display:inline-flex;padding:3px;border:1px solid var(--line);border-radius:999px;background:var(--paper-2);box-shadow:var(--shadow-sm);flex-shrink:0}.kiosk-header .lang-switch{align-self:flex-start}.lang-switch button{border:0;background:transparent;color:var(--ink-soft);font-family:var(--sans);font-size:15px;padding:8px 16px;min-height:40px;border-radius:999px;cursor:pointer;transition:background .18s,color .18s}.lang-switch button:hover{color:var(--navy)}.lang-switch button.active{background:var(--navy);color:var(--paper-2)}.lang-switch button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.kiosk.attract .lang-switch{margin-top:22px;cursor:default}.kiosk:lang(en) .bubble,.kiosk:lang(en) .suggestion-chips button{font-family:Georgia,"Times New Roman",var(--serif)}.kiosk:lang(ja) .bubble,.kiosk:lang(ja) .suggestion-chips button{font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",var(--serif)}.glossary-table{display:flex;flex-direction:column;gap:8px;margin:14px 0}.glossary-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(180px,2fr) minmax(120px,1fr) auto;gap:8px;align-items:center}.glossary-row input{min-width:0}.glossary-head{font-size:13px;color:var(--ink-soft);font-weight:600}@media (max-width: 640px){.kiosk-header{flex-wrap:wrap;gap:16px}.kiosk-title{flex:1 1 0;min-width:160px}.kiosk-header .lang-switch{order:3}.lang-switch button{padding:8px 12px;font-size:14px}.kiosk{padding:22px 16px}.kiosk-title h1{font-size:26px}.kiosk-header .seal{display:none}.bubble{max-width:90%;font-size:18px}.input-bar{flex-wrap:wrap;gap:10px;padding:12px}.input-bar>input{order:-1;flex-basis:100%}.admin-header h1{font-size:20px;width:100%}.glossary-row{grid-template-columns:1fr 1fr}.glossary-head{display:none}.stat-grid{flex-direction:column}}.voice-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;max-width:720px}.voice-form label{display:flex;flex-direction:column;gap:5px;font-size:.9rem;color:var(--ink-soft)}.voice-form select{font-family:var(--sans);font-size:15px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink)}.voice-form select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #b08a3e29}.voice-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.clone-status{font-size:14px;margin:6px 0 12px;color:var(--ink-soft)}.clone-status:before{content:"●";margin-right:6px;color:var(--seal)}.clone-status.on:before{color:var(--jade)}.clone-modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;max-width:720px;margin-bottom:14px}.clone-modes label{display:flex;gap:10px;align-items:flex-start;cursor:pointer;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--paper)}.clone-modes label.active{border-color:var(--gold);box-shadow:0 0 0 3px #b08a3e29}.clone-modes input{margin-top:4px;accent-color:var(--gold)}.clone-modes span{display:flex;flex-direction:column;gap:2px}.clone-confirm{max-width:720px;margin:0 0 14px;padding:12px 14px;border-radius:10px;border:1px solid rgba(178,58,46,.35);background:#b23a2e0f}.clone-confirm p{margin:0;color:var(--ink);font-size:14px;line-height:1.7}.clone-confirm .voice-actions{margin-top:10px}.clone-modes small{color:var(--ink-faint);font-size:12px;line-height:1.5}.kiosk.attract{align-items:center;justify-content:center;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;position:relative;overflow:hidden}.kiosk.attract:before{content:"";position:absolute;width:90vmin;height:90vmin;border-radius:50%;background:radial-gradient(circle,rgba(176,138,62,.16),transparent 62%);animation:glowpulse 6s ease-in-out infinite}@keyframes glowpulse{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.12);opacity:1}}.attract-inner{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;animation:inkfade 1.1s ease both}.attract-portrait{animation:float 5s ease-in-out infinite}.attract-portrait .portrait-frame{width:184px;height:184px}.attract-portrait .portrait-fallback{font-size:78px}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.kiosk.attract .eyebrow{font-family:var(--latin);font-size:17px;letter-spacing:4px;text-transform:uppercase;color:var(--gold);font-weight:600;margin-top:8px}.kiosk.attract h1{font-family:var(--serif);font-weight:900;font-size:clamp(34px,6vw,54px);letter-spacing:3px;color:var(--navy);line-height:1.1}.attract-cta{margin-top:12px;font-family:var(--serif);font-size:clamp(18px,2.6vw,24px);color:var(--ink);padding:12px 28px;border:1px solid var(--gold);border-radius:999px;background:var(--paper-2);box-shadow:var(--shadow-sm);animation:ctapulse 2.2s ease-in-out infinite}@keyframes ctapulse{0%,to{transform:scale(1);box-shadow:0 0 #b08a3e66}50%{transform:scale(1.04);box-shadow:0 0 0 14px #b08a3e00}}.attract-hint{margin-top:6px;font-family:var(--serif);font-size:18px;color:var(--ink-soft);animation:hintswap 3.5s ease;min-height:1.6em}@keyframes hintswap{0%{opacity:0;transform:translateY(8px)}15%,85%{opacity:1;transform:translateY(0)}to{opacity:.6}}.attract-touch{margin-top:18px;width:42px;height:42px;border-radius:50%;border:2px solid var(--seal);position:relative}.attract-touch:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:50%;border:2px solid var(--seal);animation:ripple 2s ease-out infinite}@keyframes ripple{0%{transform:scale(1);opacity:.7}to{transform:scale(2.6);opacity:0}}.bubble-sources{margin-top:10px;padding-top:8px;border-top:1px dashed var(--line);font-family:var(--sans);font-size:13px;line-height:1.6;color:var(--ink-faint)}.kb-sources-scroll{max-height:320px;overflow-y:auto;border:1px solid var(--line-soft);border-radius:12px}.kb-sources-scroll table{margin-top:0}.link-btn{background:none!important;border:none;padding:0!important;box-shadow:none!important;color:var(--navy)!important;font:inherit;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}.link-btn.active{color:var(--seal)!important;font-weight:700}.pager{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px;color:var(--ink-soft);font-size:14px}.family-login .attract-inner{gap:16px}.family-login input{width:min(320px,80vw);padding:14px 16px;font-size:18px;text-align:center;border:1px solid var(--line);border-radius:12px;background:var(--paper-2);color:var(--ink)}.family-login input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #b08a3e2e}.family-actions{display:flex;flex-direction:column;gap:6px;align-self:flex-start}.family-actions button{background:var(--paper-2);border:1px solid var(--line);color:var(--navy);padding:7px 14px;border-radius:10px;font-size:14px;white-space:nowrap}.family-actions button:hover{border-color:var(--gold)}.memories{gap:10px}.memory-item{display:flex;align-items:center;gap:12px;background:var(--paper-2);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:10px;padding:12px 14px;font-family:var(--serif);line-height:1.7}.memory-date{font-family:var(--sans);font-size:12px;color:var(--ink-faint);white-space:nowrap}.memory-text{flex:1}@media (max-width: 640px){.family .kiosk-header{flex-wrap:wrap;gap:16px}.family .kiosk-title{flex:1;min-width:0}.family-actions{flex-direction:row;flex-wrap:wrap;width:100%}.avatar-stage{max-height:40vh;margin-top:16px}}.avatar-stage{position:relative;align-self:center;width:min(420px,100%);aspect-ratio:3 / 4;max-height:46vh;border-radius:16px;overflow:hidden;background:var(--navy-deep);box-shadow:0 0 0 1px var(--gold),0 18px 40px -20px #0f2438cc}.avatar-stage.hidden{display:none}.avatar-stage video{width:100%;height:100%;object-fit:cover;display:block}.avatar-stage:not(.live) video{filter:sepia(.25) brightness(.9)}.family-body{flex:1;display:flex;flex-direction:column;min-height:0}.kiosk.with-avatar{max-width:1240px}@media (min-width: 900px){.with-avatar .family-body{flex-direction:row;align-items:flex-start;gap:28px;padding-top:24px}.with-avatar .avatar-stage{position:sticky;top:24px;flex:0 0 min(440px,42%);max-height:72vh}.with-avatar .family-body>.chat-area{flex:1;padding-top:0}}.avatar-status{position:absolute;inset:auto 0 0 0;padding:12px 16px;text-align:center;font-family:var(--serif);color:var(--paper-2);background:linear-gradient(transparent,#0f2438d9)}.admin-login .sso-btn{background:linear-gradient(160deg,#c2453a,var(--seal))}.admin-login .pw-login{margin-top:18px;text-align:left}.admin-login .pw-login summary{cursor:pointer;color:var(--ink-soft);font-size:14px;text-align:center}
