*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#0b0f14;color:#0f1115}.app-container{height:100vh;display:flex;flex-direction:column}.page-nav{display:flex;gap:8px;padding:8px 16px;background:#0b0f14}.nav-button{padding:8px 20px;border:none;border-radius:10px;font-weight:700;font-size:14px;cursor:pointer;background:#1c2430;color:#8899a8;transition:all .15s ease}.nav-button:hover{background:#2a3444;color:#c0d0e0}.nav-button.is-active{background:#58d08a;color:#0a0f14}.app{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 260px;grid-template-rows:minmax(200px,35vh) minmax(200px,1fr);grid-template-areas:"top side" "bottom side";gap:12px;padding:0 16px 16px;overflow:hidden;max-height:calc(100vh - 60px)}.top-screen{grid-area:top;position:relative;background:linear-gradient(180deg,#bfe6ff,#eaf6ff 55%,#f8fbff);border-radius:20px;border:1px solid rgba(15,17,21,.2);box-shadow:0 18px 40px #0c121c2e;overflow:hidden}.game-over-overlay{position:absolute;inset:0;background:#000000eb;display:flex;align-items:center;justify-content:center;z-index:100;border-radius:20px}.game-over-content{display:flex;flex-direction:column;align-items:center;gap:24px}.game-over-title{font-size:42px;font-weight:800;color:#fff;letter-spacing:.02em;text-transform:uppercase}.game-over-score{font-size:24px;font-weight:600;color:#ffd27d}.win-overlay{position:absolute;inset:0;background:#58d08af2;display:flex;align-items:center;justify-content:center;z-index:100;border-radius:20px}.win-content{display:flex;flex-direction:column;align-items:center;gap:16px}.win-title{font-size:42px;font-weight:800;color:#0a0f14;letter-spacing:.02em;text-transform:uppercase}.win-score{font-size:28px;font-weight:700;color:#0a0f14}.win-health{font-size:18px;font-weight:600;color:#0a0f14b3}.play-again-button{background:#58d08a;border:none;color:#0a0f14;font-weight:700;font-size:18px;border-radius:14px;padding:14px 32px;cursor:pointer;box-shadow:0 8px 20px #58d08a66;transition:transform .15s ease,box-shadow .15s ease}.play-again-button:hover{transform:translateY(-2px);box-shadow:0 12px 28px #58d08a80}.top-title{position:absolute;top:16px;left:18px;font-weight:700;font-size:20px;color:#1c2b39;letter-spacing:.02em}.goal-text{position:absolute;top:18px;left:140px;font-size:14px;font-weight:500;color:#506070}.status-panel{position:absolute;top:14px;right:16px;background:#ffffffdb;border:1px solid rgba(15,17,21,.15);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;min-width:180px;box-shadow:0 10px 18px #0c121c1f}.status-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#506070;font-weight:700}.status-row{display:flex;align-items:center;gap:8px}.status-label{font-size:12px;font-weight:700;color:#2b3a48;width:42px}.status-value{font-size:12px;font-weight:700;color:#2b3a48}.profession-wizard{color:#8b5cf6}.profession-knight{color:#ef4444}.profession-thief{color:#10b981}.profession-none{color:#9ca3af}.heart-bar{flex:1;height:10px;background:#2d4a5e26;border-radius:999px;overflow:hidden}.heart-fill{height:100%;background:linear-gradient(90deg,#ff6b6b,#f78fb3);transition:width .4s ease}.bottom-screen{grid-area:bottom;background:#fdf6da;border-radius:16px;border:1px solid rgba(15,17,21,.2);box-shadow:0 14px 30px #0c121c2e;padding:10px;display:flex;align-items:stretch;justify-content:stretch;min-height:0;overflow:hidden}.side-screen{grid-area:side;background:#ffe4df;border-radius:16px;border:1px solid rgba(15,17,21,.2);box-shadow:0 14px 30px #0c121c2e;padding:14px 12px;display:flex;flex-direction:column;gap:8px;color:#1c2b39;overflow:hidden;min-height:0}.ground{position:absolute;bottom:0;left:0;right:0;height:24px;background:repeating-linear-gradient(90deg,#78cc78 0 16px,#6bc46b 16px 32px);border-top:2px solid rgba(15,17,21,.4)}.duck-runner{position:absolute;bottom:28px;width:160px;height:100px;transition:left .55s ease-out,transform .15s ease-out}.duck{position:absolute;inset:0}.duck-body{position:absolute;left:28px;top:36px;width:88px;height:46px;background:#f5c84b;border-radius:50px;border:2px solid #0f1115;animation:duck-bob .4s ease-in-out infinite}.duck-wing{position:absolute;left:20px;top:10px;width:36px;height:20px;background:#f1b934;border-radius:50px;border:2px solid #0f1115;transform-origin:left center;animation:wing-flap .4s ease-in-out infinite}.duck-head{position:absolute;left:94px;top:16px;width:40px;height:40px;background:#f5c84b;border-radius:50%;border:2px solid #0f1115;animation:duck-bob .4s ease-in-out infinite}.duck-eye{position:absolute;top:12px;left:14px;width:6px;height:6px;background:#0f1115;border-radius:50%}.duck-beak{position:absolute;right:-14px;top:18px;width:18px;height:10px;background:#f08b2c;border:2px solid #0f1115;border-radius:8px}.duck-tail{position:absolute;left:14px;top:42px;width:18px;height:18px;background:#f5c84b;border:2px solid #0f1115;border-radius:6px;transform:rotate(-25deg)}.duck-leg{position:absolute;bottom:0;width:8px;height:28px;background:#d28a34;border:2px solid #0f1115;border-radius:6px;transform-origin:top center;animation:leg-run .4s ease-in-out infinite}.duck-leg--left{left:60px}.duck-leg--right{left:86px;animation-delay:.2s}.duck-runner.is-paused .duck-body,.duck-runner.is-paused .duck-head,.duck-runner.is-paused .duck-wing,.duck-runner.is-paused .duck-leg{animation-play-state:paused}.duck-runner.is-running .duck-body,.duck-runner.is-running .duck-head,.duck-runner.is-running .duck-wing,.duck-runner.is-running .duck-leg{animation-play-state:running}.duck-runner.action-walk .duck-leg{animation:leg-run .6s ease-in-out infinite}.duck-runner.action-run .duck-leg{animation:leg-run .25s ease-in-out infinite}.duck-runner.action-run .duck-body,.duck-runner.action-run .duck-head{animation:duck-bob .25s ease-in-out infinite}.duck-runner.action-rest .duck{animation:duck-rest .8s ease-in-out}.duck-runner.action-rest .duck-body,.duck-runner.action-rest .duck-head,.duck-runner.action-rest .duck-wing,.duck-runner.action-rest .duck-leg{animation-play-state:paused}.duck-runner.profession-wizard .duck{animation:wizard-spin .6s ease-in-out}.duck-runner.profession-wizard .duck:after{content:"";position:absolute;top:-15px;left:50%;transform:translate(-50%);width:20px;height:25px;background:linear-gradient(180deg,#8b5cf6,#6d28d9);clip-path:polygon(50% 0%,0% 100%,100% 100%);animation:wizard-hat-appear .4s ease-out forwards}@keyframes wizard-spin{0%{transform:rotate(0) scale(1)}25%{transform:rotate(-15deg) scale(1.1)}50%{transform:rotate(15deg) scale(1.15)}75%{transform:rotate(-10deg) scale(1.1)}to{transform:rotate(0) scale(1)}}@keyframes wizard-hat-appear{0%{opacity:0;transform:translate(-50%) translateY(10px) scale(0)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.duck-runner.profession-knight .duck{animation:knight-flex .6s ease-in-out}.duck-runner.profession-knight .duck:after{content:"";position:absolute;top:10px;right:-20px;width:25px;height:8px;background:linear-gradient(90deg,#94a3b8,#64748b,#475569);border-radius:2px;animation:knight-sword-appear .4s ease-out forwards;transform-origin:left center}@keyframes knight-flex{0%{transform:scale(1)}30%{transform:scale(1.2) translateY(-5px)}60%{transform:scale(1.15) translateY(-3px)}to{transform:scale(1) translateY(0)}}@keyframes knight-sword-appear{0%{opacity:0;transform:rotate(-45deg) scale(0)}50%{opacity:1;transform:rotate(15deg) scale(1.2)}to{opacity:1;transform:rotate(0) scale(1)}}.duck-runner.profession-thief .duck{animation:thief-dash .5s ease-in-out}.duck-runner.profession-thief .duck:after{content:"";position:absolute;top:5px;left:25px;width:35px;height:12px;background:#1f2937;border-radius:6px;animation:thief-mask-appear .3s ease-out forwards}@keyframes thief-dash{0%{transform:translate(0) scale(1);opacity:1}30%{transform:translate(15px) scale(.9);opacity:.5}60%{transform:translate(-10px) scale(1.05);opacity:.7}to{transform:translate(0) scale(1);opacity:1}}@keyframes thief-mask-appear{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}.duck-runner.is-wizard .duck:before{content:"✨";position:absolute;top:-20px;left:50%;transform:translate(-50%);font-size:16px;animation:sparkle 1s ease-in-out infinite}@keyframes sparkle{0%,to{opacity:.6;transform:translate(-50%) scale(1)}50%{opacity:1;transform:translate(-50%) scale(1.2)}}.duck-runner.is-knight .duck-body{box-shadow:inset 0 0 0 3px #94a3b880}.duck-runner.is-thief .duck{filter:brightness(.85)}.terminal{flex:1;background:#0c1118;border:1px solid rgba(15,17,21,.6);border-radius:14px;color:#eef2f6;display:flex;flex-direction:column;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff08}.terminal-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#161d26;border-bottom:1px solid rgba(255,255,255,.08)}.terminal-tabs{display:flex;gap:4px}.terminal-tab{padding:6px 14px;border:none;border-radius:6px;background:transparent;color:#8896a4;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.terminal-tab:hover{background:#ffffff14;color:#c8d4e0}.terminal-tab.is-active{background:#58d08a;color:#0a0f14}.terminal-actions{display:flex;gap:6px}.terminal-title{font-weight:600;font-size:13px;letter-spacing:.02em}.run-button{background:#58d08a;border:none;color:#0a0f14;font-weight:700;font-size:12px;border-radius:8px;padding:6px 12px;cursor:pointer;box-shadow:0 4px 10px #58d08a59}.stop-button{background:#f26a6a;border:none;color:#0a0f14;font-weight:700;font-size:12px;border-radius:8px;padding:6px 10px;cursor:pointer;box-shadow:0 4px 10px #f26a6a4d}.run-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.stop-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.restart-button{background:#8b5cf6;border:none;color:#fff;font-weight:700;font-size:12px;border-radius:8px;padding:6px 10px;cursor:pointer;box-shadow:0 4px 10px #8b5cf64d}.restart-button:hover{background:#7c3aed}.terminal-body{padding:0;display:flex;flex-direction:column;flex:1;overflow:hidden}.terminal-functions{padding:10px;display:flex;flex-direction:column;gap:6px;flex:1;overflow-y:auto;min-height:0}.terminal-functions.has-expanded-item{overflow:hidden}.terminal-functions::-webkit-scrollbar{width:6px}.terminal-functions::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.terminal-functions::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.terminal-functions::-webkit-scrollbar-thumb:hover{background:#ffffff40}.function-block{background:#15b6800a;border-radius:8px;border:1px solid rgba(255,255,255,.08);overflow:hidden;flex-shrink:0}.function-block.is-expanded{background:#ffffff0f;border-color:#9a58d04d;flex:1;display:flex;flex-direction:column;min-height:0}.function-block-header{width:100%;display:flex;align-items:center;gap:12px;padding:12px 14px;border:none;background:transparent;color:#c8d4e0;font-size:14px;cursor:pointer;text-align:left;transition:background .15s ease;flex-shrink:0}.function-block-header:hover{background:#ffffff0a}.function-block-arrow{color:#58d08a;font-size:12px;width:14px}.function-block-name{font-family:Consolas,Courier New,monospace;font-weight:600;font-size:14px;color:#58d08a}.function-block-detail{color:#8b9cac;font-size:12px;margin-left:auto}.function-block-code{margin:0;padding:14px 16px;background:#0006;border-top:1px solid rgba(255,255,255,.08);font-family:Consolas,Courier New,monospace;font-size:16px;line-height:1.7;color:#eef2f6;white-space:pre;overflow:auto;flex:1}.function-block-code::-webkit-scrollbar{width:6px;height:6px}.function-block-code::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.function-block-code::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.function-block-code::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.terminal-line{display:grid;grid-template-columns:50px 1fr;gap:12px;padding:0 20px;align-items:center;flex:1;border-bottom:1px solid rgba(255,255,255,.05)}.terminal-line:last-child{border-bottom:none}.terminal-line.is-active{background:#58d08a26;box-shadow:inset 0 0 0 1px #58d08a4d}.line-number{font-weight:800;color:#ffd27d;text-align:right;font-size:20px;opacity:.7}.line-input{background:transparent;border:none;color:#eef2f6;font-family:Consolas,Courier New,monospace;font-size:26px;font-weight:700;width:100%;outline:none;padding:10px 0}.line-input::placeholder{color:#eef2f64d}.line-input:disabled{color:#eef2f699}.side-title{font-weight:700;font-size:18px}.side-screen{overflow-y:auto;height:100%;padding-bottom:20px}.side-screen::-webkit-scrollbar{width:6px}.side-screen::-webkit-scrollbar-track{background:#ffffff0d}.side-screen::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.side-subtitle{font-size:11px;letter-spacing:.02em;text-transform:uppercase;color:#4c2d2d}.function-list{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:10px;flex:1;overflow-y:auto}.function-item{background:#fff;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;border-left:5px solid #cbd5e1;box-shadow:0 4px 12px #0000000d;transition:max-height .35s cubic-bezier(.4,0,.2,1),box-shadow .2s ease,transform .2s ease;cursor:pointer;overflow:hidden;max-height:72px;font-family:Consolas,Courier New,monospace}.function-item.is-expanded{max-height:300px;overflow-y:auto;box-shadow:0 8px 24px #00000021}.function-item::-webkit-scrollbar{width:4px}.function-item::-webkit-scrollbar-track{background:transparent}.function-item::-webkit-scrollbar-thumb{background:#0000001a;border-radius:2px}.function-item::-webkit-scrollbar-thumb:hover{background:#0003}.fn-stats{display:flex;flex-wrap:wrap;gap:5px}.fn-stat-chip{display:inline-flex;align-items:center;gap:3px;background:#0000000d;border-radius:99px;padding:2px 8px;font-size:11px;font-weight:700}.fn-stat-label{font-size:12px}.fn-stat-value{color:#334155}.function-expanded{border-top:1px dashed rgba(0,0,0,.1);padding-top:10px;display:flex;flex-direction:column;gap:10px;margin-top:2px}.fn-description{margin:0;font-size:12px;color:#475569;line-height:1.5}.function-examples{display:flex;flex-direction:column;gap:6px}.example-title{font-size:10px;font-weight:800;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.function-detail{font-size:13px}.function-item:hover{transform:translateY(-2px);background:#f8fafc}.function-item.is-action{background:#f0f9ff;border-left-color:#0ea5e9}.function-item.is-action .function-name{color:#0369a1}.function-item.is-logic{background:#f5f3ff;border-left-color:#8b5cf6}.function-item.is-logic .function-name{color:#6d28d9}.function-item.is-status{background:#f0fdf4;border-left-color:#22c55e}.function-item.is-status .function-name{color:#15803d}.function-item.is-special{background:#fff1f2;border-left-color:#f43f5e}.function-item.is-special .function-name{color:#be123c}.tiny-code{font-family:Consolas,Courier New,monospace;background:#0000000d;padding:4px 8px;border-radius:4px;font-size:11px;margin-top:4px;color:#334155;border:1px solid rgba(0,0,0,.1);display:inline-block;width:fit-content}.effect-container{display:flex;flex-direction:column;gap:4px}.effect-gain{color:#10b981;font-weight:700;font-size:13px}.effect-loss{color:#ef4444;font-weight:700;font-size:13px}.effect-desc{margin:4px 0 0;font-size:12px;color:#4b5563;font-style:italic}.special-detail{display:flex;flex-direction:column;gap:8px;margin-top:4px}.class-grid{display:flex;flex-direction:column;gap:6px}.class-box{background:#fff;border-radius:8px;padding:8px;display:flex;flex-direction:column;border:1px solid rgba(0,0,0,.05)}.class-box.wiz{border-left:3px solid #8b5cf6}.class-box.kni{border-left:3px solid #ef4444}.class-box.thi{border-left:3px solid #10b981}.class-name{font-weight:800;font-size:11px;text-transform:uppercase;color:#1f2937}.class-effect{font-size:11px;color:#4b5563}.function-item.is-use{background:#fdf2f8;border-left:4px solid #ec4899;position:relative;padding-bottom:20px}.function-item.is-use .function-name{color:#db2777;margin-bottom:4px}.function-item.is-use:before{content:"SPECIAL";position:absolute;top:-8px;right:10px;background:#ec4899;color:#fff;font-size:9px;font-weight:800;padding:2px 6px;border-radius:4px;letter-spacing:.05em;z-index:10}@keyframes duck-bob{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}@keyframes wing-flap{0%,to{transform:rotate(0)}50%{transform:rotate(18deg)}}@keyframes leg-run{0%,to{transform:rotate(25deg)}50%{transform:rotate(-25deg)}}@keyframes duck-rest{0%,to{transform:scale(1)}50%{transform:scale(.95) translateY(2px)}}.research-data{background:linear-gradient(180deg,#f0f4f8,#e8eef4);display:flex;flex-direction:column;min-height:0}.research-data .top-title{padding:10px 14px 2px;font-size:16px}.research-data .goal-text{padding:0 14px 8px;font-size:12px}.data-table-container{flex:1;margin:0 10px 10px;overflow:auto;border-radius:10px;background:#ffffffe6;border:1px solid rgba(15,17,21,.1);min-height:0}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th,.data-table td{padding:10px 12px;text-align:left;border-bottom:1px solid rgba(15,17,21,.08)}.data-table th{background:#1c2b39;color:#fff;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0}.data-table tbody tr:hover{background:#58d08a1a}.data-table td{color:#1c2b39}.risk-low{color:#22c55e;font-weight:700}.risk-medium{color:#f59e0b;font-weight:700}.risk-high{color:#ef4444;font-weight:700}.research-terminal{display:flex;flex-direction:column;min-height:0;overflow:hidden}.terminal-split{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#ffffff14;min-height:0;overflow:hidden}.terminal-input-area{background:#0c1118;padding:10px 14px;display:flex;flex-direction:column}.terminal-prompt{display:flex;align-items:center;gap:10px}.prompt-symbol{color:#58d08a;font-family:Consolas,Courier New,monospace;font-weight:700}.code-input{flex:1;background:transparent;border:none;color:#eef2f6;font-family:Consolas,Courier New,monospace;font-size:15px;outline:none}.code-input::placeholder{color:#eef2f666}.terminal-output{background:#0a0e12;padding:10px 14px;display:flex;flex-direction:column;overflow:hidden;min-height:0}.output-title{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#506070;font-weight:700;margin-bottom:10px}.output-content{flex:1;overflow-y:auto;font-family:Consolas,Courier New,monospace;font-size:12px;color:#c8d4e0;white-space:pre-wrap;word-break:break-all;min-height:0}.output-placeholder{color:#c8d4e066;font-style:italic}.output-command{color:#58d08a;margin-top:8px}.output-command:first-child{margin-top:0}.output-result{color:#c8d4e0;margin-bottom:4px}.research-side{display:flex;flex-direction:column;gap:0;overflow:hidden}.research-side .side-subtitle{text-align:center;margin-bottom:6px;font-size:10px}.syntax-tabs{display:flex;gap:6px;margin-bottom:6px}.syntax-tab{flex:1;padding:8px 10px;border:none;border-radius:6px;background:#0f111514;color:#4a5568;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.syntax-tab:hover{background:#0f11151f}.syntax-tab.is-active{background:#3b82f6;color:#fff}.research-side .function-list{flex:1;overflow-y:auto;gap:4px;min-height:0}.research-side .function-item{padding:6px 8px;gap:1px}.research-side .function-name{font-size:11px}.research-side .function-detail{font-size:10px}.function-item{cursor:pointer;transition:all .2s ease}.function-item:hover{transform:translateY(-2px);box-shadow:0 6px 12px #00000014}.function-item.is-expanded{background:#fff;border-color:#3b82f6;box-shadow:0 4px 12px #3b82f640;transform:none}.expanded-content{display:flex;flex-direction:column;gap:8px;width:100%}.expanded-row{display:flex;flex-direction:column;gap:2px;width:100%}.expanded-label{font-size:9px;font-weight:700;text-transform:uppercase;color:#64748b;letter-spacing:.05em}.expanded-code{font-family:Consolas,Courier New,monospace;font-size:11px;background:#0f11150f;padding:6px 8px;border-radius:4px;color:#0f172a;word-break:break-all;white-space:pre-wrap}.expanded-detail-full{font-size:11px;color:#475569;font-style:italic;margin-top:4px;border-top:1px dashed rgba(15,17,21,.1);padding-top:6px}.function-block-editor{display:flex;flex-direction:column;flex:1;min-height:0;background:#0006}.function-code-textarea{flex:1;background:transparent;border:none;color:#eef2f6;font-family:Consolas,Courier New,monospace;font-size:16px;line-height:1.7;padding:14px 16px;resize:none;outline:none}.function-actions-bar{display:flex;justify-content:flex-end;padding:8px 12px;background:#0003;border-top:1px solid rgba(255,255,255,.05)}.save-function-button{background:#3b82f6;color:#fff;border:none;padding:6px 16px;border-radius:6px;font-weight:600;font-size:13px;cursor:pointer;transition:background .2s}.save-function-button:hover{background:#2563eb}.function-actions-bar{display:flex;justify-content:space-between;align-items:center}.floating-text{position:absolute;font-weight:800;font-size:16px;pointer-events:none;animation:floatUp 1s ease-out forwards;text-shadow:0 2px 4px rgba(0,0,0,.3);white-space:nowrap;z-index:50}.float-damage{color:#ef4444}.float-heal{color:#22c55e}.float-miles{color:#3b82f6;font-size:14px}@keyframes floatUp{0%{transform:translate(-50%) scale(.8);opacity:0}20%{transform:translate(-50%,-20px) scale(1.2);opacity:1}to{transform:translate(-50%,-60px) scale(1);opacity:0}}.save-feedback{color:#4ade80;font-size:12px;font-weight:600;margin-left:10px;animation:fadeInOut 2s ease-in-out forwards}@keyframes fadeInOut{0%{opacity:0}10%{opacity:1}90%{opacity:1}to{opacity:0}}.app.research-layout{grid-template-rows:minmax(400px,65vh) minmax(150px,1fr)}.research-container{background:#1e293b;position:relative;overflow:hidden;display:flex!important;flex-direction:column}.research-container .top-title{color:#fff;font-size:26px;text-shadow:0 2px 10px rgba(0,0,0,.2)}.research-container .goal-text{color:#fff;font-size:20px;font-weight:800;left:170px;top:18px;text-shadow:0 2px 10px rgba(0,0,0,.2)}.lily-pad{position:absolute;width:45px;height:45px;background:#3fb27f;border-radius:50%;box-shadow:inset -4px -4px 10px #00000026,0 2px 5px #0000001a;z-index:1;pointer-events:none;opacity:.95;animation:float-lily 8s ease-in-out infinite alternate}.lily-pad:after{content:"";position:absolute;top:0;left:50%;width:25%;height:50%;background-color:var(--pond-color, #e0f2fe);clip-path:polygon(0 0,100% 0,50% 100%);transform:translate(-50%)}.lily-flower{position:absolute;top:15%;left:35%;width:16px;height:16px;background:radial-gradient(circle,#fff,#ffb6c1);border-radius:50%;box-shadow:0 0 12px #ffb6c199;clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.water-ripple{position:absolute;border:1px solid rgba(255,255,255,.15);border-radius:50%;animation:ripple-out 6s linear infinite;pointer-events:none;z-index:0;transform:translate(-50%,-50%)}@keyframes float-lily{0%{transform:translate(0) rotate(-2deg)}to{transform:translate(8px,6px) rotate(4deg)}}@keyframes ripple-out{0%{width:0;height:0;opacity:.8}to{width:450px;height:300px;opacity:0}}.grass-border{position:absolute;inset:0;border:15px solid #4ade80;border-radius:20px;pointer-events:none;z-index:5;box-shadow:inset 0 0 40px #15803d33}.grass-tuft{position:absolute;width:10px;height:25px;background:linear-gradient(to top,#166534,#4ade80);border-radius:50% 50% 0 0;z-index:6;pointer-events:none;transform-origin:bottom center;animation:sway-grass 4s ease-in-out infinite alternate}@keyframes sway-grass{0%{transform:rotate(-5deg)}to{transform:rotate(10deg)}}.research-container.season-winter{background:linear-gradient(-45deg,#0f172a,#1e293b,#334155);--pond-color: #0f172a}.research-container.season-summer{background:linear-gradient(-45deg,#0ea5e9,#38bdf8,#7dd3fc,#22d3ee);--pond-color: #bae6fd}.research-container.season-spring{background:linear-gradient(-45deg,#e0f2fe,#bae6fd,#7dd3fc);--pond-color: #e0f2fe}.research-container.season-fall{background:linear-gradient(-45deg,#94a3b8,#64748b,#475569);--pond-color: #94a3b8}.node-figure{position:absolute;width:80px;height:80px;display:flex;align-items:center;justify-content:center;flex-direction:column;cursor:pointer;z-index:2;-webkit-user-select:none;user-select:none;transition:none}.research-container.has-selection .node-figure{transition:left .6s cubic-bezier(.34,1.56,.64,1),top .6s cubic-bezier(.34,1.56,.64,1),transform .5s cubic-bezier(.34,1.56,.64,1)}.duck-top-view{transform:translate(-50%,-50%)}.duck-top-body{position:relative;width:56px;height:70px;background:var(--duck-color, #f5c84b);border-radius:50%;border:2.5px solid rgba(0,0,0,.08);box-shadow:0 0 0 3px #ffffff40,0 6px 18px #00000040,inset 0 -6px 12px #00000014;animation:duck-cute-bob 2.4s ease-in-out infinite}@keyframes duck-cute-bob{0%,to{transform:scale(1) rotate(-1deg)}50%{transform:scale(1.04) rotate(1deg)}}.duck-top-head{position:absolute;top:-22px;left:50%;transform:translate(-50%);width:38px;height:38px;background:var(--duck-color, #f5c84b);border-radius:50%;border:2px solid rgba(0,0,0,.08);box-shadow:0 0 0 2px #ffffff38,inset 0 -3px 8px #00000012;animation:duck-head-tilt 2.4s ease-in-out infinite}@keyframes duck-head-tilt{0%,to{transform:translate(-50%) rotate(-4deg)}50%{transform:translate(-50%) rotate(4deg)}}.duck-top-eye{position:absolute;width:7px;height:8px;background:#1a1a2e;border-radius:50%;top:10px;box-shadow:inset 1.5px 1.5px #ffffffb3}.duck-top-eye.eye-l{left:7px}.duck-top-eye.eye-r{right:7px}.duck-top-cheek{position:absolute;width:9px;height:6px;background:#ff646459;border-radius:50%;top:20px}.duck-top-cheek.cheek-l{left:4px}.duck-top-cheek.cheek-r{right:4px}.duck-top-beak{position:absolute;top:-8px;left:50%;transform:translate(-50%);width:12px;height:8px;background:#f08b2c;border-radius:40% 40% 0 0/60% 60% 0 0;border:1.5px solid rgba(0,0,0,.12);box-shadow:0 2px 4px #00000026}.duck-top-wing{position:absolute;top:18px;width:22px;height:38px;background:color-mix(in srgb,var(--duck-color, #f5c84b) 85%,#fff 15%);border-radius:50%/60% 60% 40% 40%;border:2px solid rgba(0,0,0,.06);box-shadow:inset 0 4px 8px #ffffff4d}.duck-top-wing.l{left:-16px;transform-origin:right 20%;animation:wing-flap-left 1.2s ease-in-out infinite}.duck-top-wing.r{right:-16px;transform-origin:left 20%;animation:wing-flap-right 1.2s ease-in-out infinite}@keyframes wing-flap-left{0%,to{transform:rotate(-18deg) scaleX(1)}50%{transform:rotate(-32deg) scaleX(.9)}}@keyframes wing-flap-right{0%,to{transform:rotate(18deg) scaleX(1)}50%{transform:rotate(32deg) scaleX(.9)}}.duck-top-tail{position:absolute;bottom:-10px;left:50%;transform:translate(-50%);width:20px;height:16px;background:color-mix(in srgb,var(--duck-color, #f5c84b) 90%,#000 10%);border-radius:50% 50% 40% 40%;border:1.5px solid rgba(0,0,0,.06);box-shadow:inset 0 -3px 5px #00000014}.duck-flu-dot{position:absolute;top:-4px;right:-4px;width:12px;height:12px;background:#ef4444;border-radius:50%;border:2px solid #fff;box-shadow:0 0 6px #ef4444b3;animation:flu-pulse 1s ease-in-out infinite}@keyframes flu-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.7}}.node-label{position:absolute;bottom:-22px;font-size:11px;font-weight:800;color:#1e293b;background:#fffc;padding:2px 8px;border-radius:99px;white-space:nowrap;letter-spacing:.02em}.node-figure.is-selected .duck-top-body{box-shadow:0 0 0 4px #fff6,0 12px 30px #0000004d}.node-info-box{position:absolute;top:50%;left:50%;transform:translate(60px,-50%);background:#0f172ae6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px;border-radius:12px;border:1px solid rgba(255,255,255,.1);color:#e2e8f0;width:250px;animation:fadeInBox .4s ease-out forwards;z-index:20;box-shadow:0 10px 30px #00000080}@keyframes fadeInBox{0%{opacity:0;transform:translate(40px,-50%)}to{opacity:1;transform:translate(80px,-50%)}}.bio-info{font-size:13px;line-height:1.5;margin-bottom:15px;color:#94a3b8;font-style:italic}.stats-grid{display:flex;flex-direction:column;gap:8px;border-top:1px solid rgba(255,255,255,.1);padding-top:15px}.stat-row{display:flex;justify-content:space-between;align-items:center;font-size:13px}.stat-label{color:#64748b;font-weight:600;font-size:14px}.stat-value{color:#f8fafc;font-weight:700;font-size:14px}.network-status{display:flex;flex-direction:column;gap:12px;padding-top:10px}.status-item{background:#ffffff80;padding:10px;border-radius:8px;display:flex;justify-content:space-between;align-items:center}.status-item .status-label{font-size:12px;font-weight:600;color:#475569}.status-item .status-value{font-weight:700;color:#0f172a}.filter-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.filter-tag{background:#1e293b;color:#fff;padding:8px 12px;border-radius:8px;display:flex;justify-content:space-between;align-items:center;font-size:12px;box-shadow:0 4px 6px #0000001a}.filter-key{color:#94a3b8;font-weight:600;text-transform:capitalize}.filter-val{color:#58d08a;font-weight:800}.population-stats{display:flex;gap:10px;background:#0f172a0d!important;border:1px dashed rgba(0,0,0,.1);padding:12px!important;margin-top:5px}.pop-stat-box{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}.pop-label{font-size:10px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.pop-val{font-size:16px;font-weight:800;color:#0f172a}.terminal-input-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#111827;border-top:1px solid rgba(255,255,255,.05)}.terminal-input-bar .prompt{color:#10b981;font-family:Consolas,monospace;font-weight:700;font-size:18px}.terminal-input-bar.is-busy{background:#1a1616;opacity:.8}.terminal-input-bar.is-busy .prompt{color:#ef4444}.terminal-input-bar input:disabled{cursor:not-allowed;color:#6b7280}.terminal-input-bar input:disabled::placeholder{color:#4b5563;font-style:italic}.terminal-input-bar input{flex:1;background:transparent;border:none;color:#e5e7eb;font-family:Consolas,monospace;font-size:18px;outline:none}.terminal-line{font-family:Consolas,monospace;font-size:18px;line-height:1.5;padding:4px 14px;border-bottom:1px solid rgba(255,255,255,.02)}.log-timestamp{color:#64748b;margin-right:12px;font-size:14px;font-weight:400}.log-command .log-message{color:#60a5fa;font-weight:700}.log-error .log-message{color:#f87171}.log-result .log-message{color:#d1d5db}.status-value.season-summer{color:#f59e0b}.status-value.season-winter{color:#3b82f6}.status-value.season-fall{color:#ea580c}.status-value.season-spring,.status-value.active{color:#10b981}.status-value.flu-active{color:#ef4444;animation:pulse-red 1.5s ease-in-out infinite}@keyframes pulse-red{0%,to{opacity:1}50%{opacity:.7}}.function-guide{display:flex;flex-direction:column;gap:12px;margin-top:10px}.guide-item{background:#fff6;padding:10px;border-radius:8px;display:flex;flex-direction:column;gap:4px;cursor:pointer;transition:all .3s ease;overflow:hidden;max-height:50px}.guide-item.is-expanded{max-height:400px;background:#fff9;box-shadow:0 4px 12px #0000000d;overflow-y:auto}.guide-item::-webkit-scrollbar{width:4px}.guide-item::-webkit-scrollbar-track{background:transparent}.guide-item::-webkit-scrollbar-thumb{background:#0000001a;border-radius:2px}.guide-item.type-one-param{border-left:4px solid #6366f1;background:#6366f11a}.guide-item.type-filter-fn{border-left:4px solid #d946ef;background:#d946ef26}.guide-item.type-zero-param{border-left:4px solid #10b981;background:#10b9811a}.guide-item.is-expanded.type-one-param{background:#6366f133}.guide-item.is-expanded.type-filter-fn{background:#d946ef40}.guide-item.is-expanded.type-zero-param{background:#10b98133}.guide-header{display:flex;justify-content:space-between;align-items:center}.guide-code{font-family:Consolas,monospace;font-size:14px;font-weight:700;color:#0f172a}.guide-content{display:flex;flex-direction:column;gap:10px}.guide-text{font-size:13px;color:#475569;font-style:italic;line-height:1.4}.guide-examples{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px dashed rgba(0,0,0,.1)}.landing-page{height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0b0f14,#1e293b);color:#fff}.landing-content{text-align:center;background:#ffffff0d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:60px;border-radius:32px;border:1px solid rgba(255,255,255,.1);box-shadow:0 24px 64px #0006;max-width:550px;width:90%;animation:landingFadeIn .8s ease-out}@keyframes landingFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.landing-duck{font-size:80px;margin-bottom:20px;animation:duck-wiggle 3s ease-in-out infinite;display:inline-block}@keyframes duck-wiggle{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}.landing-title{font-size:64px;font-weight:900;margin:0;background:linear-gradient(90deg,#58d08a,#3b82f6);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.02em;font-family:Segoe UI,sans-serif}.landing-subtitle{color:#94a3b8;font-size:20px;margin:16px 0 40px;line-height:1.6}.login-form{display:flex;flex-direction:column;gap:16px}.login-row{display:flex;gap:16px}.login-row input{flex:1}.login-select{flex:2;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:20px;padding-right:48px!important}.login-select option{background:#1e293b;color:#fff}.login-input{background:#0f172a99;border:2px solid rgba(255,255,255,.1);border-radius:16px;padding:20px;color:#fff;font-size:20px;text-align:center;outline:none;transition:all .2s ease}.login-input:focus{border-color:#58d08a;box-shadow:0 0 0 4px #58d08a33}.login-button{background:#58d08a;color:#0b0f14;border:none;border-radius:16px;padding:20px;font-size:20px;font-weight:800;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.1em}.login-button:hover{transform:translateY(-2px);box-shadow:0 8px 32px #58d08a66;background:#6ce49d}.login-button:active{transform:translateY(0)}@media(max-width:768px){.app-container{height:auto;min-height:100vh}.app{display:flex;flex-direction:column;max-height:none;overflow-y:auto;padding:8px}.top-screen,.bottom-screen{min-height:40vh}.side-screen{width:100%}.landing-content{padding:30px;width:95%}.landing-title{font-size:36px}.landing-subtitle{font-size:16px;margin-bottom:24px}.landing-duck{font-size:60px;animation:none}.login-input,.login-button{font-size:16px;padding:14px}.login-row{flex-direction:column;gap:12px}.duck-top-body,.duck-top-head,.duck-top-wing.l,.duck-top-wing.r,.duck-body,.duck-head,.duck-wing.l,.duck-wing.r,.duck-leg,.grass-tuft{animation:none!important}.terminal-line,.terminal-input-bar input,.terminal-input-bar .prompt{font-size:14px}}
