:root{font-family:Segoe UI,system-ui,sans-serif;color:#28261f;background:#eee6d3;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 8% 4%,rgba(222,164,67,.22),transparent 30rem),radial-gradient(circle at 96% 20%,rgba(54,115,91,.16),transparent 34rem),#eee6d3}button,input{font:inherit}button{cursor:pointer}.app{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:22px 0 56px}.topbar{display:flex;justify-content:space-between;align-items:center}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:43px;height:43px;overflow:hidden;background:#fffaf0;border:2px solid #234a3c;border-radius:47% 53% 45% 55%;transform:rotate(-3deg);box-shadow:3px 3px #d69c3c}.brand-mark img{width:42px;height:42px;object-fit:contain}.brand div{display:grid}.brand strong{font:600 22px/1.1 Georgia,serif}.brand span{color:#6b665b;font-size:11px}.offline-pill{display:flex;align-items:center;gap:8px;padding:8px 12px;color:#315747;background:#fbf7edb3;border:1px solid rgba(49,87,71,.2);border-radius:999px;font-size:12px;font-weight:600}.offline-pill span{width:8px;height:8px;background:#3f9974;border-radius:50%;box-shadow:0 0 0 4px #3f997421}.hero-copy{max-width:660px;margin:56px auto 25px;text-align:center}.eyebrow{margin:0 0 8px;color:#ad7021!important;font-size:11px!important;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.hero-copy h1{margin:0;font:600 clamp(35px,6vw,58px)/.98 Georgia,serif;letter-spacing:-.025em}.hero-copy>p:last-child{max-width:570px;margin:15px auto 0;color:#686258;font-size:15px}.canvas-shell{position:relative;overflow:hidden;aspect-ratio:1000 / 620;background:#fbf7ed;border:1px solid rgba(59,51,38,.17);border-radius:22px;box-shadow:0 24px 60px #46381d1f,0 3px #ffffffbf inset}.doodle-canvas{display:block;width:100%;height:100%}.canvas-view-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 10px}.canvas-view-controls button{min-height:44px;padding:8px 14px;border:1px solid #8caa9b;border-radius:10px;background:#fbf7ed;color:#315747;font-weight:600}.canvas-view-controls button[aria-pressed=true]{background:#315747;color:#fffdf5}.canvas-view-controls button:disabled{opacity:.5;cursor:not-allowed}.canvas-view-controls span{font-size:13px;color:#686258}.canvas-viewport{width:100%;height:100%;overflow:hidden}.is-detail .canvas-viewport{overflow:auto}.is-detail .doodle-canvas{width:1200px;height:744px;max-width:none}.canvas-viewport:focus-visible{outline:3px solid #315747;outline-offset:-3px}.is-detail .canvas-status{background:#fbf7ed;pointer-events:none}.empty-canvas{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;color:#837c6d;pointer-events:none}.empty-mark{color:#d69c3c;font-size:34px}.empty-canvas p{margin:6px 0 4px;color:#4e493e;font:600 21px Georgia,serif}.empty-canvas small{font-size:12px}.canvas-status{position:absolute;right:13px;bottom:12px;display:flex;gap:12px;color:#888173;font-size:10px}.relationship-key{margin:12px 0 28px;display:grid;gap:6px;font-size:14px}.ownership-details{margin:20px 0 28px}.ownership-details>header h2{margin:0;font:600 22px Georgia,serif}.ownership-details>header p{margin:6px 0 16px;font-size:14px;color:#686258}.ownership-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}.ownership-card{min-width:0;padding:14px;border:1px solid #d8cfbd;border-top:4px solid var(--owner-color);border-radius:14px;background:#fbf7ed}.ownership-card>header{display:flex;align-items:center;gap:10px}.ownership-card>header>div{min-width:0;flex:1}.ownership-card h3{margin:0;font-size:16px;overflow-wrap:anywhere}.ownership-card p{margin:3px 0 0;font-size:14px;color:#686258}.owner-code{color:var(--owner-color);border:1px solid currentColor;border-radius:6px;padding:4px 6px;font-size:12px}.entity-thumbnail{display:block;width:54px;height:54px;flex-shrink:0}.entity-thumbnail .doodle-stroke,.entity-thumbnail .doodle-detail,.entity-thumbnail .accent-stroke{animation:none;stroke-dasharray:none;stroke-dashoffset:0}.ownership-card ul{list-style:none;margin:12px 0 0;padding:12px 0 0;border-top:1px solid #e5dccb;display:flex;flex-wrap:wrap;gap:10px}.ownership-card li{display:flex;align-items:center;gap:4px;min-width:0;max-width:100%;font-size:14px}.ownership-card li span{overflow-wrap:anywhere}.relationship-key>div{display:flex;flex-wrap:wrap;gap:6px;padding:6px 10px;border-left:4px solid #2f7159;background:#f1eee3;color:#28261f}.relationship-key .relationship-owns{border-color:#ad7021}.relationship-key .relationship-toward,.relationship-key .relationship-away{border-color:#275a78}.relationship-key .relationship-queuedFor{border-color:#355f78}.motion-flow{stroke-dasharray:7 5;animation:motion-flow 1s linear infinite}@keyframes motion-flow{to{stroke-dashoffset:-12}}.character-rig.motion-walk .rig-motion-layer{animation:rig-step .68s ease-in-out infinite alternate}.character-rig.motion-run .rig-motion-layer{animation:rig-step .42s ease-in-out infinite alternate}.character-rig.motion-breathe .rig-motion-layer,.character-rig.motion-talk .rig-motion-layer{animation:rig-breathe 1.2s ease-in-out infinite alternate}.character-rig.motion-celebrate .rig-motion-layer{animation:rig-celebrate .62s ease-in-out infinite alternate}.character-rig.motion-wave .rig-arm-right{animation:rig-wave .52s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:left center}.attached-object.motion-walk{animation:rig-step .68s ease-in-out infinite alternate}.attached-object.motion-run{animation:rig-step .42s ease-in-out infinite alternate}.attached-object.motion-breathe,.attached-object.motion-talk{animation:rig-breathe 1.2s ease-in-out infinite alternate}.handover-object>g:first-child{animation:handover-object .9s cubic-bezier(.2,.8,.3,1) 1;transform-origin:center}.handover-flow{stroke-dasharray:8 7;animation:motion-flow .9s linear 1}.condition-flow{animation:condition-flow 1.1s linear infinite}.condition-loop{animation-duration:.85s}@keyframes condition-flow{to{stroke-dashoffset:-48}}.narrowing-flow{animation:condition-flow 1s linear infinite}.fifo-flow{animation:condition-flow .9s linear infinite}.data-pulse{animation:data-pulse .9s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}@keyframes data-pulse{0%{opacity:.35;transform:scale(.7)}to{opacity:1;transform:scale(1.15)}}.doubling-flow{animation:condition-flow .95s linear infinite}.doubling-pop{animation:doubling-pop .9s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}@keyframes doubling-pop{0%{transform:scale(.82)}to{transform:scale(1.08)}}.chain-energy-flow{animation:condition-flow .9s linear infinite}.energy-particle{animation:chain-energy-particle 1.15s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}.chain-creature{animation:chain-creature 1.4s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}@keyframes chain-energy-particle{0%{transform:translate(-16px) scale(.75);opacity:.45}to{transform:translate(18px) scale(1.1);opacity:1}}@keyframes chain-creature{0%{transform:translateY(3px) rotate(-1deg)}to{transform:translateY(-4px) rotate(1deg)}}.event-before .event-flow{stroke-dasharray:8 7}.event-flow{animation:motion-flow 1.1s linear infinite}.visual-action-flow{stroke-dasharray:9 7;animation:motion-flow 1.05s linear infinite}.visual-action-particle{animation:visual-particle 1.05s ease-in-out infinite alternate;transform-origin:center}.visual-action-particle.particle-late{animation-delay:-525ms}.rig-speed-lines{fill:none;stroke:#d08a2f;stroke-width:3;stroke-linecap:round;animation:rig-speed .68s ease-in-out infinite alternate}@keyframes rig-step{to{transform:translateY(var(--performance-travel))}}@keyframes rig-breathe{to{transform:translateY(var(--performance-breathe))}}@keyframes rig-celebrate{to{transform:translateY(var(--performance-travel))}}@keyframes rig-wave{to{transform:rotate(var(--performance-wave))}}@keyframes rig-speed{0%{opacity:.25}to{opacity:.9}}@keyframes handover-object{45%{transform:translateY(-7px) scale(1.08)}}@keyframes visual-particle{to{transform:scale(1.55);opacity:.45}}@media(prefers-reduced-motion:reduce){.motion-flow,.handover-flow,.event-flow,.visual-action-flow,.visual-action-particle,.trajectory-flow,.control-flow,.water-cycle-flow,.lifecycle-flow,.reflection-flow,.stack-flow,.plate-force,.plate-shift,.mountain-uplift,.routine-flow,.linked-flow,.condition-flow,.narrowing-flow,.fifo-flow,.data-pulse,.doubling-flow,.doubling-pop,.chain-energy-flow,.energy-particle,.chain-creature,.lifecycle-creature,.lifecycle-cocoon,.handover-object>g:first-child,.character-rig .rig-motion-layer,.character-rig .rig-arm,.attached-object,.rig-speed-lines{animation:none}}.doodle-stroke,.doodle-detail,.accent-stroke{fill:none;stroke:#302e29;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:340;stroke-dashoffset:340;animation:draw-stroke .56s cubic-bezier(.25,.7,.3,1) forwards;animation-delay:var(--draw-delay)}.symbol-frame{fill:#ffffff8a;stroke:#6c655a;stroke-width:2;stroke-dasharray:4 5}.symbol-cue{fill:none;stroke:#b95f37;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round}.symbol-weather .symbol-frame,.symbol-nature .symbol-frame{fill:#a9d8b22e}.symbol-energy .symbol-frame{fill:#f5be4329}.symbol-force .symbol-frame{fill:#639cb824}.symbol-state .symbol-frame{fill:#c15c461a}.doodle-detail{stroke-width:2.5;animation-delay:calc(var(--draw-delay) + .18s)}.accent-stroke{stroke:#d08a2f;stroke-width:4.5;animation-delay:calc(var(--draw-delay) + .1s)}.highlighted{filter:drop-shadow(0 0 9px rgba(222,164,67,.7))}.entity-label{fill:#4c473e;font:600 13px Segoe UI,sans-serif;animation:label-in .3s ease forwards;animation-delay:calc(var(--draw-delay) + .35s);opacity:0}@keyframes draw-stroke{to{stroke-dashoffset:0}}@keyframes label-in{to{opacity:1}}.control-card{position:relative;z-index:2;width:min(900px,calc(100% - 36px));margin:-16px auto 0;padding:16px;background:#fffcf4f5;border:1px solid rgba(68,59,44,.13);border-radius:18px;box-shadow:0 16px 35px #3c2f1929;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.control-card label{display:block;margin:0 0 7px 4px;color:#716b60;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.input-row{display:flex;gap:9px}.input-row input{flex:1;min-width:0;padding:14px 16px;color:#29271f;background:#f5efe1;border:1px solid transparent;border-radius:12px;outline:none}.input-row input:focus{border-color:#55947a;box-shadow:0 0 0 3px #55947a24}.draw-button{padding:0 22px;color:#fffdf5;background:#2f7159;border:0;border-radius:12px;font-weight:700;box-shadow:0 4px #214d3d}.draw-button:active{transform:translateY(2px);box-shadow:0 2px #214d3d}.mic-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:92px;padding:0 14px;color:#315747;background:#edf4ef;border:1px solid #a7c1b5;border-radius:12px;font-weight:700}.mic-button span{color:#b04b3f;font-size:11px}.mic-button.listening{color:#fffaf0;background:#9d4037;border-color:#7c2e27}.mic-button.listening span{color:#fffaf0}.mic-button:disabled{cursor:not-allowed;opacity:.48}.speech-status{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding:10px 12px;color:#4f5f57;background:#edf2ed;border-radius:10px;font-size:12px}.latency-panel{margin-top:10px;border:1px solid rgba(47,75,68,.18);border-radius:12px;padding:9px 12px;color:#435852;background:#f7faf6bd;font-size:.78rem}.latency-panel summary{cursor:pointer;font-weight:800}.latency-panel output,.latency-panel small{display:block;margin-top:7px}.latency-panel small{line-height:1.45;color:#65746f}.speech-status>div{display:grid;gap:2px}.speech-status span{color:#65736c}.speech-listening{color:#7b332c;background:#fae7df}.speech-error,.speech-needs-clarification{color:#77501d;background:#fff1cd}.speech-status button{padding:6px 10px;color:inherit;background:transparent;border:1px solid currentColor;border-radius:999px;font-size:11px}.control-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:11px}.suggestions{display:flex;gap:7px;overflow-x:auto;padding:2px}.suggestions button,.undo-button{min-height:44px;flex:0 0 auto;padding:7px 10px;color:#6d665a;background:transparent;border:1px solid #ddd4c3;border-radius:999px;font-size:10px}.undo-button{min-width:64px}.suggestions button:hover{color:#2c6e57;border-color:#6da88f}.undo-button:disabled{cursor:not-allowed;opacity:.35}.clarification{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding:10px 12px;color:#77501d;background:#fff1cd;border-radius:10px;font-size:12px}.clarification small{flex-basis:100%;color:#675f52;font-size:.76rem;line-height:1.35}.development-note{display:grid;gap:5px;margin:18px auto 26px;max-width:900px;padding:14px 18px;color:#57492f;background:#fff4d8;border:1px solid #e7c978;border-radius:16px;line-height:1.45}.development-note span{font-size:.9rem}.latency-panel input[type=password]{box-sizing:border-box;width:100%;min-height:44px;margin:8px 0;padding:9px 12px;border:1px solid #d4ccbd;border-radius:10px;background:#fffdf7}.latency-panel output,.ai-connection-status{display:block;margin:8px 0;color:#35685c;font-size:.78rem}.showcase{display:grid;gap:12px;margin-top:18px;padding-top:18px;border-top:1px solid #ded7c8}.showcase h2{margin:2px 0 5px;color:#334f4c;font-size:1.15rem}.showcase p:not(.eyebrow){margin:0;color:#6b655a;font-size:.82rem;line-height:1.4}.showcase details{padding:10px;background:#f9f5eb;border:1px solid #e1dacb;border-radius:12px}.showcase summary{cursor:pointer;color:#3f625d;font-weight:800}.showcase-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.showcase-grid button{min-height:52px;padding:9px 11px;color:#514d45;text-align:left;line-height:1.35;background:#fffdf8;border:1px solid #d8d0c0;border-radius:11px}.showcase-grid button:hover{color:#245f51;border-color:#69a28f;background:#f1faf6}.showcase input[type=search]{box-sizing:border-box;width:100%;min-height:44px;margin-top:8px;padding:9px 12px;border:1px solid #d4ccbd;border-radius:10px;background:#fffdf8}.architecture-note{margin-top:10px!important;padding:10px 12px;color:#31564f!important;background:#eaf6f1;border-radius:10px}.full-library{max-height:430px;overflow-y:auto;padding-right:4px}.full-library button span,.full-library button small{display:block}.full-library button small{margin-top:5px;color:#66817b;font-size:.68rem;font-weight:800}.hold-notice{align-items:flex-start;background:#eaf8f4;border:1px solid #94d8c4;border-radius:14px;color:#123f35;display:flex;flex-direction:column;gap:3px;margin-top:12px;padding:12px 14px}.hold-notice span{color:#35685c;font-size:.9rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:680px){.app{width:min(100% - 18px,1180px);padding-top:12px}.hero-copy{margin-top:38px}.brand div span{display:none}.canvas-shell{height:240px;min-height:0;aspect-ratio:auto}.control-card{width:calc(100% - 12px)}.input-row{display:grid;grid-template-columns:1fr 1fr}.input-row input{grid-column:1 / -1}.draw-button{min-height:44px;padding:0 15px}.mic-button{min-width:72px;min-height:44px;padding:0 10px}.control-footer{align-items:flex-end}.showcase-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.doodle-stroke,.doodle-detail,.accent-stroke,.entity-label{animation-duration:1ms;animation-delay:0ms}.circulation-flow,.trajectory-flow,.control-flow,.water-cycle-flow,.lifecycle-flow,.lifecycle-creature,.lifecycle-cocoon,.reflection-flow,.stack-flow,.routine-flow,.plate-force,.linked-flow,.condition-flow,.fifo-flow,.data-pulse,.doubling-flow,.doubling-pop,.chain-energy-flow,.energy-particle,.chain-creature{animation:none!important}}.circulation-flow{animation:draw-line .8s ease both;stroke-dasharray:16 10}.trajectory-flow{animation:draw-line 1.1s ease both,trajectory-drift 1.8s linear infinite}.control-flow{animation:draw-line .85s ease both;stroke-dasharray:14 9}.control-return{animation-delay:.35s}.water-cycle-flow{animation:draw-line 1s ease both,trajectory-drift 2.2s linear infinite}.water-cycle-return{animation-delay:.35s}.lifecycle-flow{animation:draw-line .9s ease both,trajectory-drift 2s linear infinite}.lifecycle-flow-late{animation-delay:.35s}.reflection-flow{stroke-dasharray:18 8;animation:trajectory-drift 1.35s linear infinite}.reflection-flow-out{animation-delay:-.45s}.stack-flow,.routine-flow,.plate-force,.linked-flow{animation:trajectory-drift 1.5s linear infinite}.stack-flow-pop{animation-delay:-.6s}.plate-shift-left{animation:plate-left-pulse 2.4s ease-in-out infinite;transform-origin:center}.plate-shift-right{animation:plate-right-pulse 2.4s ease-in-out infinite;transform-origin:center}.mountain-uplift{animation:mountain-breathe 2.4s ease-in-out infinite;transform-origin:center bottom}@keyframes plate-left-pulse{50%{transform:translate(7px)}}@keyframes plate-right-pulse{50%{transform:translate(-7px)}}@keyframes mountain-breathe{50%{transform:scaleY(1.025)}}.lifecycle-creature{animation:lifecycle-arrive 1.5s ease-in-out infinite alternate;transform-origin:center}.lifecycle-cocoon{animation:lifecycle-sway 2.1s ease-in-out infinite alternate;transform-origin:top center}@keyframes lifecycle-arrive{to{transform:translateY(-5px)}}@keyframes lifecycle-sway{to{transform:rotate(2deg)}}@keyframes trajectory-drift{to{stroke-dashoffset:-44}}.circulation-return{animation-delay:.2s}
