:root{--bg:#0b1f14;--bg-high:#0f2a1a;--panel:#143321;--line:#4d7a4a;--leaf:#6f9a62;--gold:#e6c765;--silver:#b9c2b4;--water:#2f7f8c;--water-light:#9fd3e6;--text:#eef0dc;--dim:#9db592;--danger:#e59a7a;--serif:Georgia, "Times New Roman", serif}*{box-sizing:border-box}html,body,#root{height:100%}html{scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom))}body{background:linear-gradient(180deg, var(--bg-high) 0%, var(--bg) 55%, #08170f 100%) fixed;color:var(--text);font:17px/1.5 var(--serif);margin:0}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.app{flex-direction:column;max-width:1100px;min-height:100%;margin:0 auto;padding:12px 16px 0;display:flex}.top{border-bottom:1px solid #0000;border-image:linear-gradient(90deg, transparent, var(--gold), transparent) 1;justify-content:space-between;align-items:center;gap:12px;padding-bottom:10px;display:flex}.top h1{letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin:0;font-size:15px;font-weight:400}.ghost{border:1px solid var(--line);color:var(--dim);background:0 0;border-radius:3px 12px;padding:4px 10px;font-size:14px}.ghost[aria-pressed=true]{color:var(--gold);border-color:var(--gold)}.alert{color:var(--danger);margin:8px 0 0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.path h2{letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:0 0 10px;font-size:13px;font-weight:400}.path ol{border-left:1px solid color-mix(in srgb, var(--gold) 45%, transparent);flex-direction:column;gap:12px;margin:0;padding:0 0 0 16px;list-style:none;display:flex}.step{flex-wrap:wrap;align-items:baseline;gap:2px 10px;display:flex;position:relative}.step:before{content:"";background:var(--leaf);border-radius:0 60%;width:10px;height:10px;position:absolute;top:.45em;left:-22px;transform:rotate(-20deg)}.step-time{color:var(--gold);font-variant-numeric:tabular-nums}.step-title{overflow-wrap:anywhere;flex:60%}.step-detail{color:var(--dim);overflow-wrap:anywhere;flex-basis:100%;font-size:14px}.step-past{opacity:.55}.step-task:before{background:var(--silver);border-radius:50%;transform:none}.step-overdue .step-detail{color:var(--danger)}.step-now .step-title{color:#fff3b0}.step-now:before{background:#ffe38a;box-shadow:0 0 10px #ffe38a}.path-note{color:var(--dim);font-style:italic}.path-stale{color:var(--danger);margin:0 0 10px;font-size:14px}.mirror{aspect-ratio:1;width:min(46vw,190px);filter:drop-shadow(0 0 18px color-mix(in srgb, var(--water-light) 35%, transparent));background:0 0;border:0;border-radius:50%;margin:0 auto;padding:0;display:block}.mirror svg{width:100%;height:100%;display:block}.mirror-rim{fill:none;stroke:var(--silver);stroke-width:4px}.mirror-ring{fill:none;stroke:var(--water-light);stroke-width:1.5px;opacity:0;transform-origin:60px 60px}.mirror-swirl{fill:none;stroke:var(--water-light);stroke-width:2px;stroke-linecap:round;opacity:0;transform-origin:60px 60px}.mirror-glint{fill:#dff5ff;opacity:.25;transform-origin:60px 60px;transition:opacity .6s}.mirror[data-state=idle] .mirror-glint{animation:5s ease-in-out infinite mirror-breathe}.mirror[data-state=listening] .mirror-ring{animation:1.8s ease-out infinite mirror-ripple}.mirror[data-state=listening] .ring-2{animation-delay:.6s}.mirror[data-state=listening] .ring-3{animation-delay:1.2s}.mirror[data-state=thinking] .mirror-swirl{opacity:.8;animation:2.4s linear infinite mirror-swirl}.mirror[data-state=speaking] .mirror-glint{opacity:.85;animation:1.2s ease-in-out infinite mirror-speak}@keyframes mirror-breathe{50%{opacity:.45}}@keyframes mirror-ripple{0%{opacity:.9;transform:scale(.6)}to{opacity:0;transform:scale(3.4)}}@keyframes mirror-swirl{to{transform:rotate(360deg)}}@keyframes mirror-speak{50%{transform:scale(1.35)}}@media (prefers-reduced-motion:reduce){.mirror[data-state=listening] .ring-1{opacity:.9;transform:scale(1.4)}.mirror[data-state=listening] .ring-2{opacity:.6;transform:scale(2.3)}.mirror[data-state=listening] .ring-3{opacity:.35;transform:scale(3.2)}}.gold{background:color-mix(in srgb, var(--gold) 18%, transparent);border:1px solid var(--gold);color:var(--gold);border-radius:3px 12px;padding:6px 16px}.gold:disabled,.ghost:disabled{opacity:.5;cursor:default}input[type=text],input[type=password]{background:var(--bg);border:1px solid var(--line);border-radius:6px;min-width:0;padding:8px 10px}.gate{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:100%;padding:24px;display:flex}.gate h1{letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin:0;font-weight:400}.gate-motto{color:var(--dim);margin:0;font-style:italic}.gate-form{border:1px solid color-mix(in srgb, var(--gold) 60%, transparent);background:var(--panel);border-radius:160px 160px 8px 8px;flex-direction:column;gap:10px;width:min(100%,300px);padding:34px 24px 22px;display:flex}.gate-form label{color:var(--dim);font-size:14px}.talk-body{flex-direction:column;gap:12px;display:flex}.talk-greeting{text-align:center;color:var(--dim);margin:0;font-style:italic}.talk-log{flex-direction:column;gap:8px;display:flex}.say{overflow-wrap:anywhere;margin:0}.say-user{color:var(--dim);align-self:flex-end;font-size:15px}.say-mellon{font-style:italic}.say-mellon:last-child{font-size:20px}.confirm{border:1px solid var(--gold);background:var(--panel);border-radius:3px 16px;padding:12px 14px}.confirm p{overflow-wrap:anywhere;margin:0 0 10px}.confirm-actions{gap:10px;display:flex}.arch{z-index:1;padding:16px 14px calc(10px + env(safe-area-inset-bottom));border:1px solid color-mix(in srgb, var(--gold) 60%, transparent);background:var(--panel);box-shadow:0 -10px 16px 2px var(--bg);border-radius:60px 60px 8px 8px;align-items:center;gap:8px;margin-top:14px;display:flex;position:sticky;bottom:0}.arch input{flex:1}.arch-mic{border:1px solid var(--water-light);color:var(--water-light);background:0 0;border-radius:999px;padding:6px 12px}.arch-mic[aria-pressed=true]{background:color-mix(in srgb, var(--water-light) 25%, transparent)}.loading{text-align:center;color:var(--dim);padding-top:30vh;font-style:italic}.top-actions{gap:8px;display:flex}.layout{flex-direction:column;flex:1;gap:22px;padding:18px 0 24px;display:flex}.talk{flex-direction:column;gap:16px;display:flex}@media (width>=900px){.layout{flex-direction:row;align-items:flex-start;gap:40px}.talk{flex:55%}.way{border-left:1px solid color-mix(in srgb, var(--line) 60%, transparent);flex:45%;padding-left:28px}}@media (width<=420px){.arch{gap:6px;padding-left:10px;padding-right:10px}.arch-mic,.arch .gold{padding-left:10px;padding-right:10px;font-size:15px}}
