:root{--bg-base:#f5f4f1;--bg-soft:#eeede9;--bg-card:#ffffff;--bg-user:#e8e8e6;--text-primary:#1a1a1a;--text-secondary:#4a4a4a;--text-muted:#8a8a8a;--line:#dcdcda;--line-soft:#e5e4e0;--accent:#1a1a1a;--accent-text:#ffffff;--radius-sm:12px;--radius-md:18px;--radius-lg:22px;--radius-pill:999px;--shadow-soft:0 1px 2px rgba(0,0,0,0.04);--shadow-pop:0 4px 16px rgba(0,0,0,0.08)}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{background:var(--bg-base);color:var(--text-primary);font-family:"Noto Serif JP",Lora,Hiragino Mincho ProN,游明朝,serif;font-weight:400;line-height:1.85;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{display:flex;flex-direction:column;min-height:100vh}header.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:100;background:var(--bg-base);border-bottom:1px solid var(--line-soft);padding:14px 24px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;grid-gap:16px;gap:16px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}a.header-left,button.header-left{justify-self:start;font-size:16px;font-weight:500;letter-spacing:.08em;color:var(--text-primary);background:transparent;border:none;padding:4px 8px;margin-left:-8px;border-radius:var(--radius-pill);cursor:pointer;font-family:inherit;text-decoration:none;display:inline-flex;align-items:center;transition:background .2s ease,opacity .2s ease}a.header-left:hover,button.header-left:hover{background:var(--bg-soft)}a.header-left:active,button.header-left:active{opacity:.6}.header-center-wrap{justify-self:center;position:relative;min-width:0;max-width:100%;display:flex;justify-content:center}button.exhibitions-btn{background:transparent;border:none;font-family:inherit;font-size:13px;font-weight:400;color:var(--text-secondary);letter-spacing:.04em;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--radius-pill);transition:background .2s ease,color .2s ease;max-width:100%;min-width:0}button.exhibitions-btn:hover,button.exhibitions-btn[aria-expanded=true]{background:var(--bg-soft);color:var(--text-primary)}button.exhibitions-btn .title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}button.exhibitions-btn .chevron{width:9px;height:9px;flex-shrink:0;transition:transform .2s ease;stroke:currentColor}button.exhibitions-btn[aria-expanded=true] .chevron{transform:rotate(180deg)}.exhibitions-panel{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%,-4px);min-width:280px;max-width:90vw;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);padding:6px;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;z-index:200}.exhibitions-panel.open{opacity:1;pointer-events:auto;transform:translate(-50%)}button.exhibitions-item{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;padding:9px 14px;background:transparent;border:none;font-family:inherit;font-size:13px;color:var(--text-secondary);text-align:left;border-radius:10px;cursor:pointer;letter-spacing:.02em;line-height:1.5;transition:background .15s ease,color .15s ease}button.exhibitions-item:hover:not(:disabled){background:var(--bg-soft);color:var(--text-primary)}button.exhibitions-item.active{color:var(--text-primary)}button.exhibitions-item:disabled{opacity:.5;cursor:not-allowed}button.exhibitions-item .check{color:var(--text-muted);font-size:11px;flex-shrink:0}.header-right{justify-self:end;display:flex;gap:8px;align-items:center}.header-right,.lang-icon-wrap{position:relative}button.lang-icon-btn{width:32px;height:32px;background:transparent;color:var(--text-secondary);border:1px solid var(--line);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .2s ease,color .2s ease,border-color .2s ease}button.lang-icon-btn.active,button.lang-icon-btn:hover:not(:disabled){background:var(--text-primary);color:var(--accent-text);border-color:var(--text-primary)}button.lang-icon-btn:disabled{opacity:.4;cursor:not-allowed}button.lang-icon-btn svg{width:14px;height:14px}.lang-popover{position:absolute;top:calc(100% + 10px);right:0;min-width:140px;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);padding:6px;opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .18s ease,transform .18s ease;z-index:200;display:flex;flex-direction:column;gap:2px}.lang-popover.open{opacity:1;pointer-events:auto;transform:translateY(0)}button.lang-option{background:transparent;border:none;padding:9px 14px;color:var(--text-secondary);font-family:inherit;font-size:13px;letter-spacing:.04em;cursor:pointer;border-radius:10px;text-align:left;transition:background .15s ease,color .15s ease}button.lang-option:hover:not(.active){background:var(--bg-soft);color:var(--text-primary)}button.lang-option.active{background:var(--text-primary);color:var(--accent-text);cursor:default}.lang-toggle{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius-pill);overflow:hidden}.lang-toggle,.lang-toggle button{font-family:inherit;background:transparent}.lang-toggle button{border:none;color:var(--text-muted);padding:4px 11px;cursor:pointer;font-size:11px;letter-spacing:.04em;transition:background .2s ease,color .2s ease}.lang-toggle button:not(.active):hover{color:var(--text-primary)}.lang-toggle button.active{background:var(--text-primary);color:var(--accent-text);cursor:default}.lang-toggle button:disabled{opacity:.4;cursor:not-allowed}.lang-toggle button:disabled:not(.active):hover{color:var(--text-muted)}button.reset-btn{background:transparent;color:var(--text-secondary);border:1px solid var(--line);border-radius:var(--radius-pill);padding:5px 13px;font-family:inherit;font-size:11.5px;cursor:pointer;letter-spacing:.05em;transition:background .2s ease,color .2s ease,border-color .2s ease}button.reset-btn:hover{background:var(--text-primary);color:var(--accent-text);border-color:var(--text-primary)}button.reset-btn:disabled{opacity:.4;cursor:not-allowed}button.reset-btn:disabled:hover{border-color:var(--line)}button.menu-btn,button.reset-btn:disabled:hover{background:transparent;color:var(--text-secondary)}button.menu-btn{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .2s ease,color .2s ease,border-color .2s ease}button.menu-btn.active,button.menu-btn:hover{background:var(--text-primary);color:var(--accent-text);border-color:var(--text-primary)}button.menu-btn svg{width:13px;height:13px;stroke:currentColor}.menu-panel{position:absolute;top:calc(100% + 10px);right:0;min-width:200px;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);padding:8px;opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .18s ease,transform .18s ease;z-index:200}.menu-panel.open{opacity:1;pointer-events:auto;transform:translateY(0)}.menu-panel ul{list-style:none}.menu-panel li a{display:block;padding:9px 14px;color:var(--text-secondary);text-decoration:none;font-size:13px;border-radius:10px;letter-spacing:.02em;transition:background .15s ease,color .15s ease}.menu-panel li a:hover{background:var(--bg-soft);color:var(--text-primary)}.page-title{font-size:13px;font-weight:400;color:var(--text-secondary);letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}main.content-main{flex:1 1;width:100%;display:flex;justify-content:center}.content-article{width:100%;max-width:720px;padding:56px 24px 64px;font-size:16px;line-height:1.95;color:var(--text-primary)}.content-article h1{font-size:26px;letter-spacing:.02em;margin:0 0 24px}.content-article h1,.content-article h2{font-weight:500;color:var(--text-primary)}.content-article h2{font-size:18px;margin:40px 0 12px}.content-article h3{font-size:15px;font-weight:500;margin:28px 0 10px;color:var(--text-primary)}.content-article p{margin:0 0 18px}.content-article p.lead{font-size:17px;line-height:2;color:var(--text-secondary);margin:0 0 32px}.content-article ol,.content-article ul{margin:0 0 18px;padding-left:24px}.content-article ol li,.content-article ul li{margin-bottom:6px}.content-article a{color:var(--text-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:opacity .2s ease}.content-article a:hover{opacity:.6}.content-article hr{border:none;border-top:1px solid var(--line-soft);margin:36px 0}.content-article .meta{font-size:12px;color:var(--text-muted);letter-spacing:.04em;margin:-16px 0 24px}.content-article p.about-cta{margin:0 0 36px}.content-article p.about-cta a{display:inline-flex;align-items:center;padding:11px 20px;border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--text-primary);background:var(--bg-card);text-decoration:none;font-size:14.5px;letter-spacing:.02em;transition:background .2s ease,border-color .2s ease,transform .1s ease}.content-article p.about-cta a:hover{background:var(--text-primary);color:var(--accent-text);border-color:var(--text-primary);opacity:1}.content-article p.about-cta a:active{transform:scale(.98)}.content-article.compact{font-size:13.5px;line-height:1.85}.content-article.compact h1{font-size:21px;margin:0 0 18px}.content-article.compact h2{font-size:14.5px;margin:30px 0 8px}.content-article.compact h3{font-size:13px;margin:22px 0 8px}.content-article.compact p{margin:0 0 14px}.content-article.compact p.lead{font-size:14px;line-height:1.9;margin:0 0 22px}.content-article.compact .meta{font-size:11px;margin:-12px 0 18px}.content-article.compact ol,.content-article.compact ul{margin:0 0 14px;padding-left:22px}.content-article.compact ol li,.content-article.compact ul li{margin-bottom:4px}.content-article.compact code{font-size:12px;padding:1px 5px;background:var(--bg-soft);border-radius:4px}.modal-backdrop{position:fixed;inset:0;background:rgba(26,26,26,.42);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .22s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:0 12px 48px rgba(0,0,0,.18);max-width:480px;width:100%;padding:32px 30px 26px;animation:modalRise .28s cubic-bezier(.22,.61,.36,1);font-family:inherit}@keyframes modalRise{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal h2{font-size:18px;font-weight:500;letter-spacing:.02em;line-height:1.5}.modal h2,.modal p{color:var(--text-primary);margin:0 0 14px}.modal p{font-size:14.5px;line-height:1.85}.modal .modal-note{font-size:12px;color:var(--text-muted);line-height:1.7;letter-spacing:.02em;margin:0 0 22px;padding:12px 14px;background:var(--bg-soft);border-radius:var(--radius-sm)}.modal .modal-error{font-size:12.5px;color:#b1442f;margin:0 0 14px}.modal-actions{display:flex;flex-direction:column;gap:8px;margin-top:4px}.modal-actions button{width:100%;padding:11px 16px;font-family:inherit;font-size:14px;border-radius:var(--radius-pill);cursor:pointer;transition:opacity .2s ease,background .2s ease,color .2s ease,border-color .2s ease,transform .1s ease;letter-spacing:.04em}.modal-actions button:active{transform:scale(.985)}.modal-actions button:disabled{opacity:.4;cursor:not-allowed}.modal-btn-primary{background:var(--accent);color:var(--accent-text);border:1px solid var(--accent)}.modal-btn-primary:hover:not(:disabled){opacity:.85}.modal-btn-secondary{background:transparent;color:var(--text-primary);border:1px solid var(--line)}.modal-btn-secondary:hover:not(:disabled){background:var(--bg-soft)}.modal-btn-tertiary{background:transparent;color:var(--text-secondary);border:1px solid transparent;font-size:13px}.modal-btn-tertiary:hover:not(:disabled){color:var(--text-primary);background:var(--bg-soft)}@media (max-width:480px){.modal{padding:24px 20px 20px}.modal h2{font-size:16px}.modal p{font-size:13.5px}}.unofficial-disclaimer{margin-top:14px;font-size:10.5px;color:var(--text-muted);letter-spacing:.02em;line-height:1.6;max-width:640px;margin-left:auto;margin-right:auto}.content-article pre.prompt-code{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius-md);padding:22px 24px;font-family:Menlo,Consolas,Hiragino Mincho ProN,monospace;font-size:12.5px;line-height:1.75;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;overflow-x:auto;margin:24px 0;letter-spacing:0}.exhibition-list{list-style:none;padding:0;margin:32px 0 0;display:flex;flex-direction:column;gap:12px}.exhibition-list li{margin:0}.exhibition-list a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border:1px solid var(--line);border-radius:var(--radius-md);text-decoration:none;color:var(--text-primary);background:var(--bg-card);transition:background .2s ease,border-color .2s ease}.exhibition-list a:hover{background:var(--bg-soft);border-color:var(--text-secondary);opacity:1}.exhibition-list a .arrow{color:var(--text-muted);font-size:14px;flex-shrink:0}.references-list{list-style:none;padding:0;margin:16px 0 0;counter-reset:ref-counter}.references-list li{position:relative;padding:0 0 14px 32px;font-size:14.5px;line-height:1.85;color:var(--text-primary);counter-increment:ref-counter}.references-list li:before{content:counter(ref-counter) ".";position:absolute;left:0;top:0;color:var(--text-muted);font-size:13px;width:24px;text-align:right}.references-list a{color:var(--text-secondary);word-break:break-all;font-size:13px}.references-list a:hover{color:var(--text-primary)}.references-list .ref-source{font-weight:500}.references-list .ref-title{color:var(--text-primary)}.references-list .ref-date{color:var(--text-muted)}.dialogue-list{list-style:none;padding:0;margin:24px 0 0;counter-reset:dialogue-counter}.dialogue-list li{position:relative;padding:22px 0;border-bottom:1px solid var(--line-soft)}.dialogue-list li:last-child{border-bottom:none}.dialogue-list h3{margin:0 0 8px;font-size:16px;font-weight:500}.dialogue-list .dialogue-date,.dialogue-list .dialogue-participants{margin:0 0 6px;font-size:12px}.dialogue-list .dialogue-links{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px}.dialogue-list .dialogue-links a{font-size:13px;color:var(--text-primary)}@media (max-width:480px){.content-article{padding:36px 18px 48px;font-size:15px}.content-article h1{font-size:22px}.content-article h2{font-size:16px}.content-article pre.prompt-code{padding:16px 14px;font-size:11.5px}}main.chat{flex:1 1;width:100%;max-width:720px;margin:0 auto;padding:36px 24px 24px;gap:26px}.message,main.chat{display:flex;flex-direction:column}.message{gap:6px}.message .label{font-size:11.5px;color:var(--text-muted);letter-spacing:.1em}.message.ai .body{font-size:16px;line-height:2;color:var(--text-primary);padding:4px 0}.message.user{align-items:flex-end}.message.user .body{background:var(--bg-user);padding:14px 20px;border-radius:var(--radius-md);max-width:90%;line-height:1.85;color:var(--text-primary);box-shadow:var(--shadow-soft);font-size:15.5px;white-space:pre-wrap;word-break:break-word}.message.user .label{text-align:right}.char{opacity:0;transform:translateY(6px);animation:fadeRise .38s cubic-bezier(.22,.61,.36,1) forwards}.char,.word{display:inline-block}.word{white-space:nowrap}.space{white-space:normal}@keyframes fadeRise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.typing{display:inline-flex;gap:6px;padding:10px 0}.typing span{width:5px;height:5px;border-radius:50%;background:var(--text-muted);animation:pulse 1.4s ease-in-out infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes pulse{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.input-area{border-top:1px solid var(--line-soft);background:var(--bg-soft);padding:18px 24px 14px}.input-wrap{max-width:720px;margin:0 auto}.input-row{display:flex;gap:12px;align-items:flex-end;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:12px 16px;transition:border-color .2s ease,box-shadow .2s ease;box-shadow:var(--shadow-soft)}.input-row:focus-within{border-color:var(--text-secondary);box-shadow:0 1px 4px rgba(0,0,0,.06)}textarea.input{flex:1 1;border:none;background:transparent;resize:none;outline:none;font-family:inherit;font-size:15px;line-height:1.7;color:var(--text-primary);min-height:22px;max-height:120px;padding:4px 0}textarea.input::placeholder{color:var(--text-muted)}button.send-btn{background:var(--accent);color:var(--accent-text);border:none;border-radius:var(--radius-pill);padding:8px 18px;font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;letter-spacing:.06em;transition:opacity .2s ease,transform .1s ease}button.send-btn:hover{opacity:.85}button.send-btn:active{transform:scale(.98)}button.send-btn:disabled{opacity:.35;cursor:not-allowed}.notice{margin-top:10px;font-size:11px;color:var(--text-muted);line-height:1.6;letter-spacing:.02em;text-align:center}footer.app-footer{padding:12px 20px 14px;text-align:center;border-top:1px solid var(--line-soft);background:var(--bg-soft)}.footer-links{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 16px;font-size:10.5px;color:var(--text-muted);line-height:1.6}.footer-links a{color:var(--text-secondary);text-decoration:none;transition:color .2s ease}.footer-links a:hover{color:var(--text-primary);text-decoration:underline}.footer-fineprint{margin-top:5px;font-size:9.5px;color:var(--text-muted);letter-spacing:.02em;line-height:1.55;max-width:720px;margin-left:auto;margin-right:auto}.footer-fineprint .sep{margin:0 6px;color:var(--line)}.copyright,.unofficial-disclaimer{display:inline}@media (prefers-reduced-motion:reduce){.char{opacity:1!important;transform:none!important}.char,.typing span{animation:none!important}.typing span{opacity:.6}}@media (max-width:640px){header.app-header{padding:12px 14px;gap:8px;grid-template-columns:auto 1fr auto}button.exhibitions-btn{font-size:11.5px;padding:4px 10px;gap:4px}button.exhibitions-btn .chevron{width:8px;height:8px}.exhibitions-panel{min-width:240px}.lang-toggle button{padding:3px 9px;font-size:10.5px}button.lang-icon-btn{width:30px;height:30px}button.lang-icon-btn svg{width:13px;height:13px}button.reset-btn{padding:4px 10px;font-size:10.5px}button.menu-btn{width:30px;height:30px}.menu-panel{right:0;min-width:180px}.header-right{gap:6px}}@media (max-width:480px){main.chat{padding:24px 16px 18px;gap:22px}.input-area{padding:14px 14px 12px}body{font-size:15px}.message.ai .body{font-size:15px;line-height:1.95}.header-left,.message.user .body{font-size:14.5px}}