:root{--bg:#f6ecda;--ink:#3a2a18;--ink2:#8a7357;--card:#fffdf6;--cardEdge:#e3d2b2;--panel:#fdf6e7;--accent:#d97b29;--accent-ink:#fff6e8;--peacock:#2a7f7f;--root:#8a5a2b;--gold:#c9922a;--shadow:0 10px 30px rgba(90,60,20,.16);--g0:#d97b29;--g1:#2a7f7f;--g2:#7a9b3f;--g3:#c25b3f;--g4:#7d4a6b;--g5:#4a5a8a}body[data-theme=modern]{--bg:#eef1f6;--ink:#1e2430;--ink2:#6b7280;--card:#ffffff;--cardEdge:#dfe4ee;--panel:#f8fafd;--accent:#4f46e5;--accent-ink:#ffffff;--peacock:#0ea5e9;--root:#64748b;--gold:#f59e0b;--shadow:0 10px 30px rgba(30,40,80,.12);--g0:#6366f1;--g1:#0ea5e9;--g2:#10b981;--g3:#f59e0b;--g4:#ec4899;--g5:#8b5cf6}body[data-theme=notebook]{--bg:#fbf8f1;--ink:#2f3a2f;--ink2:#7d8a7d;--card:#fffef9;--cardEdge:#dfe3d4;--panel:#f4f7ee;--accent:#5a8f3c;--accent-ink:#ffffff;--peacock:#3c7a8f;--root:#6b7a52;--gold:#c9922a;--shadow:0 10px 30px rgba(60,80,40,.12);--g0:#5a8f3c;--g1:#3c7a8f;--g2:#c9922a;--g3:#a0522d;--g4:#6a5acd;--g5:#b0578d}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:Noto Sans,system-ui,sans-serif;color:var(--ink);overflow:hidden;background:radial-gradient(1200px 800px at 85% -10%,rgba(217,123,41,.09),transparent 60%),radial-gradient(1000px 700px at -10% 110%,rgba(42,127,127,.09),transparent 60%),var(--bg);transition:background .4s}h1,h2,h3,.baloo{font-family:"Baloo 2",Noto Sans,sans-serif}button{font-family:inherit}.btn{display:inline-flex;align-items:center;gap:7px;padding:7.5px 14px;border-radius:999px;border:1.5px solid var(--cardEdge);background:var(--card);color:var(--ink);font:600 13.5px Noto Sans;cursor:pointer;transition:.15s;white-space:nowrap}.btn:hover{border-color:var(--accent);transform:translateY(-1px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 40%,transparent)}.btn.iconBtn{width:36px;height:36px;padding:0;justify-content:center;font-size:16px;border-radius:12px}.btn.danger:hover{border-color:#c0392b;color:#c0392b}input,textarea{font-family:inherit}.field{display:block;margin-bottom:12px}.field span{display:block;font-size:11px;font-weight:700;color:var(--ink2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}.field input,.field textarea{width:100%;padding:10px 13px;border-radius:12px;border:1.5px solid var(--cardEdge);background:var(--panel);font:600 14px Noto Sans;color:var(--ink);outline:none}.field input:focus,.field textarea:focus{border-color:var(--accent)}.field textarea{min-height:84px;resize:vertical;line-height:1.5}header{position:fixed;inset:0 0 auto 0;height:56px;z-index:40;display:flex;align-items:center;gap:12px;padding:0 14px;background:color-mix(in srgb,var(--panel) 82%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1.5px solid var(--cardEdge)}.brand{display:flex;align-items:center;gap:9px;font-family:"Baloo 2";font-weight:800;font-size:21px;letter-spacing:.01em;color:var(--ink);text-decoration:none;cursor:pointer}.brand .mark{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-size:18px;background:linear-gradient(135deg,var(--accent),var(--g4));box-shadow:var(--shadow)}.brand small{font-weight:600;font-size:11px;color:var(--ink2);letter-spacing:.03em;margin-left:2px}header .spacer{flex:1}.treePill{display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;border:1.5px solid var(--cardEdge);background:var(--card);font-weight:600;font-size:13.5px;cursor:pointer;-webkit-user-select:none;user-select:none}.treePill:hover{border-color:var(--accent)}.savedPill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:99px;font-size:12px;font-weight:700;color:var(--peacock);background:color-mix(in srgb,var(--peacock) 12%,transparent)}.gallery{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:auto;padding:86px 22px 60px}.galleryInner{max-width:1060px;margin:0 auto}.hero{text-align:center;margin:18px 0 40px}.hero h1{font-size:clamp(34px,5vw,52px);line-height:1.05}.hero h1 em{font-style:normal;color:var(--accent)}.hero p{margin:14px auto 0;max-width:560px;font-size:16px;line-height:1.6;color:var(--ink2);font-weight:600}.hero .actions{display:flex;gap:10px;justify-content:center;margin-top:24px;flex-wrap:wrap}.collectionLabel{display:flex;align-items:center;gap:10px;font-family:"Baloo 2";font-size:20px;font-weight:700;margin:34px 0 6px}.collectionLabel .sub{font:600 12.5px Noto Sans;color:var(--ink2)}.trees{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-top:14px}.treeCard{position:relative;text-align:left;border:1.5px solid var(--cardEdge);border-radius:20px;background:var(--card);padding:18px;cursor:pointer;transition:.18s;overflow:hidden}.treeCard:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:var(--shadow)}.treeCard .ribbon{position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--g0),var(--g1),var(--g2),var(--g3),var(--g4),var(--g5))}.treeCard .emoji{font-size:30px}.treeCard h3{font-size:18px;margin-top:10px;line-height:1.15}.treeCard p{font-size:12.5px;color:var(--ink2);font-weight:600;margin-top:6px;line-height:1.5}.treeCard .meta{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.tagChip{font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:99px;border:1px solid var(--cardEdge);color:var(--ink2)}.treeCard .delBtn{position:absolute;top:10px;right:10px;opacity:0;transition:.15s}.treeCard:hover .delBtn{opacity:1}.galleryFoot{margin-top:44px;text-align:center;font-size:12px;color:var(--ink2);font-weight:600;line-height:1.8}.crumbs{position:fixed;z-index:35;top:62px;left:12px;display:flex;align-items:center;gap:4px;flex-wrap:wrap;max-width:62vw;font-size:12.5px;font-weight:600;color:var(--ink2)}.crumbs .crumb{padding:4px 9px;border-radius:99px;background:color-mix(in srgb,var(--panel) 80%,transparent);border:1px solid var(--cardEdge);cursor:pointer}.crumbs .crumb:hover{color:var(--accent);border-color:var(--accent)}.crumbs .arrow{opacity:.6}.embedChip{position:fixed;top:10px;left:10px;z-index:40;display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:99px;border:1.5px solid var(--cardEdge);box-shadow:var(--shadow);background:color-mix(in srgb,var(--card) 92%,transparent);color:var(--ink);text-decoration:none;font:700 13px "Baloo 2"}.embedChip b{font-weight:800}svg.stage{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}svg.stage.dragging{cursor:grabbing}svg text{-webkit-user-select:none;user-select:none;pointer-events:none}svg .cardRect{transition:stroke-width .15s}svg g.card{cursor:pointer}svg g.card:hover .cardRect{stroke-width:3}.cardIn.enter{animation:pop .5s cubic-bezier(.34,1.56,.64,1) both;transform-box:fill-box;transform-origin:center}@keyframes pop{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}.edge{fill:none;stroke-linecap:round}@keyframes draw{to{stroke-dashoffset:0}}.aerial{stroke-dasharray:7 6;animation:sway 3s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:top center}@keyframes sway{0%{transform:rotate(-1.6deg)}to{transform:rotate(1.6deg)}}svg g.tuft,svg g.collapseBtn{cursor:pointer}.ctrlCluster{position:fixed;right:14px;bottom:96px;z-index:30;display:flex;flex-direction:column;gap:7px;align-items:center}.ctrlCluster .btn{background:var(--card);justify-content:center;width:38px;height:38px;padding:0;border-radius:12px;font-size:15px}.zoomPct{font-size:11px;color:var(--ink2);font-weight:700}#minimap{position:fixed;right:14px;bottom:14px;z-index:30;border:1.5px solid var(--cardEdge);border-radius:14px;background:color-mix(in srgb,var(--panel) 88%,transparent);box-shadow:var(--shadow);cursor:crosshair}.genRail{position:fixed;left:50%;transform:translate(-50%);bottom:14px;z-index:30;display:flex;align-items:center;gap:12px;padding:9px 16px;border-radius:99px;background:color-mix(in srgb,var(--card) 92%,transparent);border:1.5px solid var(--cardEdge);box-shadow:var(--shadow);font-size:12px;font-weight:600;color:var(--ink2)}.genRail input[type=range]{width:200px;accent-color:var(--accent)}.genRail .legend{display:flex;gap:4px}.genRail .legend i{width:9px;height:9px;border-radius:99px;display:block}#panel{position:fixed;z-index:45;top:56px;right:-400px;width:372px;bottom:0;background:var(--panel);border-left:1.5px solid var(--cardEdge);box-shadow:-16px 0 40px #3c280a1f;transition:right .32s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}#panel.open{right:0}#panel .inner{padding:22px 22px 30px;overflow-y:auto}#panel .close{position:absolute;top:12px;right:12px}#panel .bigAvatar{width:64px;height:64px;border-radius:99px;display:grid;place-items:center;font-size:32px;margin-bottom:12px;border:3px solid}#panel h2{font-size:24px;line-height:1.1}#panel .native{font-size:14px;color:var(--ink2);margin-top:2px}#panel .roleChip{display:inline-block;margin-top:10px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:4px 11px;border-radius:99px}#panel .badge{display:inline-block;margin-top:8px;font-size:11.5px;font-weight:600;color:var(--peacock);background:color-mix(in srgb,var(--peacock) 12%,transparent);padding:4px 10px;border-radius:99px;margin-left:6px}#panel .story{margin-top:14px;font-size:14px;line-height:1.65}#panel h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink2);margin:20px 0 9px}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:99px;border:1.5px solid var(--cardEdge);background:var(--card);font-size:12.5px;font-weight:600;cursor:pointer;transition:.15s}.chip:hover{border-color:var(--accent);transform:translateY(-1px)}.chip .rel{font-size:10px;color:var(--ink2);font-weight:700}#panel .src{margin-top:20px;font-size:11px;color:var(--ink2);font-style:italic;line-height:1.5;border-top:1.5px dashed var(--cardEdge);padding-top:12px}#panel .actions{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}#panel .unionRow{margin-top:10px;display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink2);font-weight:600}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#1e140559;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:none;align-items:flex-start;justify-content:center}.scrim.open{display:flex}#searchBox{margin-top:90px;width:min(500px,92vw);background:var(--card);border-radius:20px;box-shadow:var(--shadow);overflow:hidden;animation:pop .2s ease;border:1.5px solid var(--cardEdge)}#searchBox input{width:100%;border:none;outline:none;background:transparent;padding:18px 20px;font:600 17px Noto Sans;color:var(--ink)}#searchBox .results{max-height:330px;overflow-y:auto;border-top:1.5px solid var(--cardEdge)}#searchBox .r{display:flex;align-items:center;gap:11px;padding:11px 18px;cursor:pointer;font-size:14px;font-weight:600}#searchBox .r:hover,#searchBox .r.sel{background:color-mix(in srgb,var(--accent) 10%,transparent)}#searchBox .r .dot{width:9px;height:9px;border-radius:99px;flex-shrink:0}#searchBox .r small{color:var(--ink2);font-weight:600;margin-left:auto;font-size:11.5px}#searchBox .hint{padding:9px 18px;font-size:11px;color:var(--ink2);border-top:1.5px solid var(--cardEdge)}.modal{margin-top:110px;width:min(420px,92vw);background:var(--card);border-radius:24px;box-shadow:var(--shadow);padding:26px;position:relative;animation:pop .22s ease;border:1.5px solid var(--cardEdge)}.modal h2{font-size:22px}.modal p.sub{font-size:13px;color:var(--ink2);margin:6px 0 16px;line-height:1.5}.modal .modalX{position:absolute;top:12px;right:12px}.modal .formActions{display:flex;gap:8px;justify-content:flex-end;margin-top:6px}.toast{position:fixed;z-index:90;left:50%;bottom:76px;transform:translate(-50%) translateY(20px);opacity:0;background:var(--ink);color:var(--panel);padding:11px 20px;border-radius:99px;font-size:13.5px;font-weight:600;transition:.3s;pointer-events:none;box-shadow:var(--shadow);max-width:88vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}#mascot{position:fixed;z-index:34;left:14px;bottom:14px;display:flex;align-items:flex-end;gap:8px;max-width:300px}#mascot .face{width:52px;height:52px;font-size:30px;display:grid;place-items:center;background:var(--card);border:1.5px solid var(--cardEdge);border-radius:16px 16px 4px;box-shadow:var(--shadow);animation:bob 3s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}#mascot .bubble{position:relative;background:var(--card);border:1.5px solid var(--cardEdge);border-radius:14px;padding:9px 30px 9px 12px;font-size:12.5px;font-weight:600;line-height:1.45;box-shadow:var(--shadow)}#mascot .bubble b{color:var(--accent)}#mascot .x{position:absolute;top:4px;right:7px;cursor:pointer;color:var(--ink2);font-size:12px}@media (max-width:860px){header{gap:8px}.brand small{display:none}#panel{top:auto;width:100%;height:52vh;bottom:-60vh;border-left:none;border-top:1.5px solid var(--cardEdge);border-radius:22px 22px 0 0}#panel.open{bottom:0}.crumbs{max-width:70vw}#minimap{display:none}.genRail{bottom:auto;top:64px;padding:7px 12px}.genRail input[type=range]{width:130px}.genRail .legend{display:none}.ctrlCluster{bottom:24px}}
