@property --bob{syntax:"<length>";inherits:false;initial-value:0}:root{--accent:#0ea5e9;--accent-deep:#082f49;--accent-mid:#0284c7;--radius:12rem;--avatar:4.5rem;--center:8.5rem;--bg:#fff;--text:#0f172a;--text-soft:#475569;--panel-bg:#fff;--panel-border:#e2e8f0}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif}.material-symbols-outlined{-webkit-user-select:none;user-select:none;line-height:1}.app{place-content:center;min-height:100vh;transition:background .6s,color .6s;display:grid;position:relative;overflow:hidden}.stage{perspective:1200px;flex-direction:column;align-items:center;gap:2rem;display:flex}.dial{width:calc(var(--radius) * 2 + var(--avatar));height:calc(var(--radius) * 2 + var(--avatar));transform-style:preserve-3d;border-radius:50%;place-content:center;place-items:center;transition:transform .5s cubic-bezier(.2,.8,.2,1);display:grid;position:relative}.dial>.avatar,.dial>.center{grid-area:1/1}.center{appearance:none;cursor:pointer;width:var(--center);height:var(--center);border:1px solid #fff6;border-radius:50%;place-content:center;padding:0;transition:box-shadow .3s,transform .3s;animation:1.1s cubic-bezier(.2,.8,.2,1) .15s backwards photoIn;display:grid;position:relative;box-shadow:0 10px 40px -12px #00000080}.center:hover{transform:scale(1.03)}.center:focus-visible{outline:none;box-shadow:0 0 0 5px #0ea5e980}.center.selected{box-shadow:0 0 0 5px #0ea5e999}.center img{width:var(--center);height:var(--center);object-fit:cover;z-index:1;border-radius:50%;position:relative}.center:before{content:"";background:var(--accent-deep);z-index:-1;border-radius:50%;transition:inset 1s;position:absolute;inset:-.4rem}.avatar{--d:calc(var(--i) / var(--total));--r-offset:-.25turn;--r:calc((1turn * var(--d)) + var(--r-offset));transform:rotate(var(--r)) translate(var(--radius)) rotate(calc(-1 * var(--r))) translateY(var(--bob));animation:spread .9s cubic-bezier(.2,.8,.2,1) calc(.9s + var(--i) * 70ms) backwards, bob calc(4s + var(--i) * .25s) ease-in-out calc(2.1s + var(--i) * .2s) infinite;appearance:none;font:inherit;width:var(--avatar);height:var(--avatar);cursor:pointer;color:var(--accent);background:#0ea5e914;border:none;border-radius:50%;place-content:center;padding:0;transition:background .4s,box-shadow .4s,color .4s;display:grid;position:relative;overflow:hidden;box-shadow:0 0 0 4px #0ea5e91f}.avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%}.avatar .icon{font-size:1.8rem;transition:transform .4s}.avatar:hover,.avatar:focus-visible{background:#0ea5e92e;outline:none;box-shadow:0 0 0 6px #0ea5e92e}.avatar.selected{color:#fff;background:var(--accent-mid);animation-play-state:paused;box-shadow:0 0 0 6px #0ea5e959}.avatar.selected .icon{transform:scale(1.15)}.avatar[data-icon=maneki_neko] .neko{width:2.4rem;height:2.4rem}.neko-arm{transform-box:view-box;transform-origin:30px 25px}.avatar[data-icon=maneki_neko]:hover .neko-arm,.avatar[data-icon=maneki_neko]:focus-visible .neko-arm{animation:.9s ease-in-out infinite neko-wave}@keyframes neko-wave{0%,to{transform:rotate(0)}30%{transform:rotate(-9deg)}70%{transform:rotate(19deg)}}.tip{white-space:nowrap;color:var(--accent-mid);opacity:0;pointer-events:none;z-index:5;background:#fff;border-radius:.45rem;padding:.2rem .55rem;font-size:.72rem;font-weight:600;transition:opacity .2s,transform .2s;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(-4px);box-shadow:0 4px 14px -4px #00000040}.avatar:hover .tip,.avatar:focus-visible .tip,.center:hover .tip,.center:focus-visible .tip{opacity:1;transform:translate(-50%)translateY(0)}.center .tip{top:calc(100% + 4px)}@keyframes photoIn{0%{opacity:0;transform:scale(.3)rotate(-200deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes spread{0%{opacity:0;transform:rotate(calc(var(--r) - .45turn)) translate(0) rotate(calc(-1 * var(--r) + .45turn)) translateY(0) scale(.2)}to{opacity:1;transform:rotate(var(--r)) translate(var(--radius)) rotate(calc(-1 * var(--r))) translateY(var(--bob)) scale(1)}}@keyframes bob{0%,to{--bob:0px}50%{--bob:-9px}}.identity{text-align:center;transition:color .6s}.identity h1{letter-spacing:.3px;font-size:1.7rem;font-weight:700}.identity .role{color:var(--accent-mid);margin-top:.4rem;font-size:.9rem;font-weight:500}.identity .hint{color:var(--text-soft);margin-top:.5rem;font-size:.8rem}.i18n-fade{transition:opacity .28s,filter .28s}.app.lang-switching .i18n-fade{opacity:0;filter:blur(6px)}.lang-switch{z-index:30;background:#e2e8f0;border-radius:999px;gap:.25rem;padding:.25rem;transition:background .4s;display:flex;position:fixed;top:1.25rem;right:1.25rem}.lang-switch button{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.35rem .7rem;font:600 .75rem Inter,sans-serif;transition:all .3s}.lang-switch button.active{color:var(--accent-mid);background:#fff;box-shadow:0 1px 3px #00000026}.theme-switch{z-index:30;position:fixed;top:1.25rem;left:1.25rem}.switch{--h:2rem;width:calc(var(--h) * 2);height:var(--h);cursor:pointer;isolation:isolate;background:#e2e8f0;border:none;border-radius:999px;justify-content:space-between;align-items:center;padding:0 .35rem;transition:background .4s;display:flex;position:relative}.switch span{color:#64748b;z-index:1;font-size:1.1rem;transition:color .4s}.switch:after{content:"";width:calc(var(--h) - 6px);height:calc(var(--h) - 6px);background:#fff;border-radius:50%;transition:transform .4s,background .4s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.modal-overlay{z-index:40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;visibility:hidden;background:#0f172a8c;place-items:center;padding:1.5rem;transition:opacity .3s,visibility .3s;display:grid;position:fixed;inset:0}.modal-overlay.open{opacity:1;visibility:visible}.modal{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:1.25rem;width:min(560px,100%);max-height:85vh;padding:2.5rem 2rem 2rem;transition:transform .35s cubic-bezier(.34,1.4,.5,1);position:relative;overflow-y:auto;transform:translateY(16px)scale(.97);box-shadow:0 30px 80px -20px #00000080}.modal-overlay.open .modal{transform:translateY(0)scale(1)}.panel-close{color:#334155;cursor:pointer;z-index:1;background:#f1f5f9;border:none;border-radius:50%;place-content:center;width:2.5rem;height:2.5rem;transition:background .2s;display:grid;position:absolute;top:1rem;right:1rem}.panel-close:hover{background:#e2e8f0}.panel-content h2{color:var(--accent-mid);align-items:center;gap:.6rem;margin-bottom:1.25rem;font-size:1.35rem;font-weight:600;display:flex}.panel-content h2 .material-symbols-outlined{font-size:1.6rem}.panel-content p{color:var(--text-soft);line-height:1.7}.panel-content p+p{margin-top:.8rem}.timeline,.cards,.contact{flex-direction:column;gap:1.1rem;list-style:none;display:flex}.timeline li,.cards li{border-left:2px solid var(--accent);flex-direction:column;gap:.2rem;padding-left:1rem;display:flex}.timeline .year{color:var(--accent-mid);font-size:.75rem;font-weight:600}.timeline strong,.cards strong{font-size:1rem}.timeline em,.cards em{color:var(--text-soft);font-size:.9rem;font-style:normal}.cards a{color:var(--accent-mid);margin-top:.2rem;font-size:.85rem;text-decoration:none}.cards a:hover{text-decoration:underline}.tags{flex-wrap:wrap;gap:.5rem;display:flex}.tags span{color:var(--accent-mid);background:#0ea5e91a;border-radius:999px;padding:.4rem .8rem;font-size:.85rem}.contact li{border:none;flex-direction:row;align-items:center;gap:.6rem;padding:0}.contact .material-symbols-outlined{color:var(--accent-mid);font-size:1.2rem}.contact a{color:var(--text);text-decoration:none}.contact a:hover{color:var(--accent-mid)}.layout-photo img{border-radius:.75rem;width:100%;margin-bottom:1rem}.menu-group+.menu-group{margin-top:1.5rem}.menu-group>h3{color:var(--accent-mid);border-bottom:1px solid var(--panel-border);margin-bottom:.6rem;padding-bottom:.3rem;font-size:1rem}.menu-item{gap:.8rem;padding:.5rem 0;display:flex}.menu-item img{object-fit:cover;border-radius:.5rem;width:3.5rem;height:3.5rem}.menu-item .info{flex:1}.menu-item .row{justify-content:space-between;gap:1rem;font-weight:600;display:flex}.menu-item .price{color:var(--accent-mid);white-space:nowrap}.menu-item .desc{color:var(--text-soft);font-size:.85rem}.credit{color:var(--text-soft);z-index:20;font-size:.75rem;position:fixed;bottom:1rem;left:1.25rem}.credit a{color:#f97316;text-decoration:none}.app[data-theme=dark] .center:before{inset:-3000%}.app[data-theme=dark] .identity{color:#fff}.app[data-theme=dark] .identity .hint{color:#ffffffb3}.app[data-theme=dark] .avatar{color:#fff}.app[data-theme=dark] .credit{color:#ffffffb3}.app[data-theme=dark] .theme-switch .switch{background:#334155}.app[data-theme=dark] .theme-switch .switch:after{transform:translateX(var(--h));background:#0f766e}.app[data-theme=dark] .theme-switch .switch span:first-child{color:#fff}.app[data-theme=dark] .lang-switch{background:#ffffff26}.app[data-theme=dark] .lang-switch button{color:#ffffffbf}.app[data-theme=dark] .lang-switch button.active{color:var(--accent-mid);background:#fff}@media (max-width:520px){:root{--radius:8.5rem;--avatar:3.6rem;--center:6.5rem}.avatar .icon{font-size:1.4rem}.identity h1{font-size:1.3rem}}@media (prefers-reduced-motion:reduce){.center,.avatar,.avatar[data-icon=maneki_neko] .neko-arm,.ai-panel{animation:none!important}.ai-fab:hover{transform:none}.dial{transition:none!important;transform:none!important}.avatar{transform:rotate(var(--r)) translate(var(--radius)) rotate(calc(-1 * var(--r)))}}.ai-widget{z-index:30;flex-direction:column;align-items:flex-end;gap:.6rem;display:flex;position:fixed;bottom:1.25rem;right:1.25rem}.ai-fab{cursor:pointer;background:var(--accent-mid);color:#fff;border:none;border-radius:50%;flex-shrink:0;place-content:center;width:3.25rem;height:3.25rem;transition:transform .2s,background .2s;display:grid;box-shadow:0 14px 30px -10px #00000073}.ai-fab:hover{background:#036aa1;transform:translateY(-2px)}.ai-fab .material-symbols-outlined{font-size:1.6rem}.ai-panel{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:1rem;flex-direction:column;width:min(340px,100vw - 2.5rem);animation:.18s ease-out ai-pop;display:flex;overflow:hidden;box-shadow:0 24px 60px -20px #00000073}@keyframes ai-pop{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:none}}.ai-panel-head{border-bottom:1px solid var(--panel-border);align-items:center;gap:.5rem;padding:.7rem .55rem .7rem .9rem;display:flex}.ai-head-icon{color:var(--accent-mid);font-size:1.25rem}.ai-title{flex:1;font-size:.9rem;font-weight:600}.ai-close{cursor:pointer;color:var(--text-soft);background:0 0;border:none;border-radius:50%;place-content:center;width:1.9rem;height:1.9rem;transition:background .2s;display:grid}.ai-close:hover{background:#00000012}.ai-close .material-symbols-outlined{font-size:1.15rem}.ai-log{flex-direction:column;gap:.5rem;max-height:min(45vh,320px);padding:.8rem;display:flex;overflow-y:auto}.ai-empty{color:var(--text-soft);text-align:center;padding:.4rem 0;font-size:.82rem}.ai-msg{align-items:flex-end;gap:.4rem;max-width:90%;display:flex}.ai-msg.user{flex-direction:row-reverse;align-self:flex-end}.ai-msg.ai{align-self:flex-start}.ai-ava{color:var(--accent-mid);flex-shrink:0;font-size:1rem}.ai-bubble{color:var(--text);background:#f1f5f9;border-radius:1rem;padding:.55rem .8rem;font-size:.85rem;line-height:1.5}.ai-msg.user .ai-bubble{background:var(--accent-mid);color:#fff;border-bottom-right-radius:.25rem}.ai-msg.ai .ai-bubble{border-bottom-left-radius:.25rem}.ai-typing{align-items:center;gap:.3rem;display:flex}.ai-typing span{background:var(--accent-mid);border-radius:50%;width:.45rem;height:.45rem;animation:1.2s ease-in-out infinite ai-blink}.ai-typing span:nth-child(2){animation-delay:.2s}.ai-typing span:nth-child(3){animation-delay:.4s}@keyframes ai-blink{0%,80%,to{opacity:.4;transform:scale(.7)}40%{opacity:1;transform:scale(1)}}.ai-input{border-top:1px solid var(--panel-border);align-items:center;gap:.5rem;padding:.55rem .6rem;display:flex}.ai-input input{font:inherit;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:.88rem}.ai-input button{cursor:pointer;background:var(--accent-mid);color:#fff;border:none;border-radius:50%;flex-shrink:0;place-content:center;width:2.1rem;height:2.1rem;transition:background .2s,opacity .2s;display:grid}.ai-input button:hover:not(:disabled){background:#036aa1}.ai-input button:disabled{opacity:.45;cursor:not-allowed}.ai-input button .material-symbols-outlined{font-size:1.15rem}.app[data-theme=dark] .ai-panel{background:#0f2033;border-color:#ffffff29}.app[data-theme=dark] .ai-panel-head{border-color:#ffffff29}.app[data-theme=dark] .ai-title{color:#e2e8f0}.app[data-theme=dark] .ai-close{color:#ffffffa6}.app[data-theme=dark] .ai-close:hover{background:#ffffff1f}.app[data-theme=dark] .ai-empty{color:#fff9}.app[data-theme=dark] .ai-input{border-color:#ffffff29}.app[data-theme=dark] .ai-input input{color:#fff}.app[data-theme=dark] .ai-input input::placeholder{color:#ffffff8c}.app[data-theme=dark] .ai-bubble{color:#e2e8f0;background:#1e293b}.app[data-theme=dark] .ai-msg.user .ai-bubble{background:var(--accent-mid);color:#fff}
