:root{--navy:#0f2e9e;--purple:#5a45ab;--purple2:#6e5bb8;--teal:#14ada9;--amber:#c77700;--ink:#1c2030;--muted:#6b7186;--line:#e4e7f0;--bg:#f5f6fb;--panel:#fff;--dark:#12132a;--dark2:#191a35;--tvj:#33348e;--jp:"Yu Gothic Medium","Yu Gothic","YuGothic","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,"Noto Sans JP",sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--ink);background:var(--bg);font-family:-apple-system,Segoe UI,Roboto,Meiryo UI,sans-serif}a{color:inherit;text-decoration:none}.app{flex-direction:column;height:100%;display:flex}.hdr{border-bottom:1px solid var(--line);z-index:5;background:#fff;flex:none;align-items:center;gap:22px;height:56px;padding:0 20px;display:flex}.brand{color:var(--purple);align-items:center;gap:11px;font-weight:800;display:flex}.brand .logo{width:auto;height:30px;display:block}.brand small{color:var(--muted);letter-spacing:.02em;border-left:1px solid var(--line);padding-left:11px;font-size:11.5px;font-weight:600}.nav{flex-wrap:wrap;gap:4px;margin-left:auto;display:flex}.nav a{color:var(--muted);border-radius:8px;padding:7px 13px;font-size:13.5px;font-weight:600}.nav a:hover{background:var(--bg);color:var(--ink)}.nav a.on{color:var(--purple);background:#efeafc}.main{flex:1;min-height:0;overflow:auto}.home{font-family:var(--jp);color:#14161e;background:#fff;max-width:none;margin:0;padding:0}.home .hero{border-bottom:3px solid #14161e;padding:52px 56px 44px}.kick{letter-spacing:.28em;color:#33348e;font-size:14px;font-weight:700}.home h1{letter-spacing:.01em;margin:18px 0 24px;font-size:46px;font-weight:900;line-height:1.3}.home .lead{color:#3a3e4a;max-width:none;font-size:18px;font-weight:500;line-height:1.95}.home .lead b{color:#14161e;font-weight:800}.pipe{flex-wrap:wrap;align-items:stretch;gap:12px;padding:40px 56px 44px;display:flex}.pstep{background:#fff;border:2px solid #14161e;border-radius:0;flex:1;min-width:150px;padding:20px 18px}.pstep b{color:#14161e;margin-bottom:6px;font-size:16.5px;font-weight:800;display:block}.pstep span{color:#5b6070;font-size:13px;line-height:1.5}.parrow{color:var(--tvj);flex:none;justify-content:center;align-items:center;font-size:24px;font-weight:800;display:flex}.grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;padding:0 56px 48px;display:grid}.card{background:#fff;border:2px solid #14161e;border-radius:0;flex-direction:column;padding:28px;display:flex}.card:hover{background:#f6f6fc}.card .tag{text-transform:uppercase;letter-spacing:.08em;color:#fff;background:#14161e;border-radius:0;align-self:flex-start;padding:5px 11px;font-size:12px;font-weight:800}.card h3{margin:16px 0 10px;font-size:22px;font-weight:800;line-height:1.35}.card p{color:#4a4f5c;flex:1;margin:0 0 18px;font-size:15px;line-height:1.85}.card .file{color:#33348e;word-break:break-all;background:#f1f2f9;border:1px solid #d6d8e6;border-radius:0;margin-bottom:18px;padding:6px 10px;font-family:ui-monospace,monospace;font-size:13px;display:inline-block}.card .go{color:#fff;background:#33348e;border-radius:0;align-self:flex-start;padding:12px 22px;font-size:15px;font-weight:800}.card:hover .go{background:#14161e}.home .stack{padding:44px 56px 64px}.chips{flex-wrap:wrap;gap:10px;margin:0 0 40px;display:flex}.chip{color:#14161e;background:#fff;border:1.5px solid #14161e;border-radius:0;padding:7px 14px;font-size:13.5px;font-weight:600}.note{color:#2a2d38;background:#f5f5fc;border:2px solid #14161e;border-radius:0;margin:0;padding:26px 28px;font-size:15px;line-height:1.95}.note b{color:#14161e;font-weight:800}.scn{height:100%;font-family:var(--jp);display:flex}.stage{background:radial-gradient(120% 120% at 50% 0,#1c1e3d 0%,#101126 70%);flex:1;min-width:0;position:relative}.canvas{position:absolute;inset:0}.toolbar{z-index:3;flex-wrap:wrap;gap:6px;display:flex;position:absolute;top:12px;left:12px}.tbtn{color:#e7e9f7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;background:#1e203cc7;border:1px solid #ffffff2e;border-radius:0;align-items:center;gap:6px;padding:8px 13px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.tbtn:hover{background:#32365fe6}.tbtn.on{background:var(--tvj);border-color:var(--tvj);color:#fff}.tbtn:disabled{opacity:.4;cursor:default}.badge{color:#c3c6e4;z-index:3;background:#14162cc7;border:1px solid #ffffff24;border-radius:0;max-width:60%;padding:8px 12px;font-size:12.5px;line-height:1.6;position:absolute;bottom:12px;left:12px}.slider{z-index:3;color:#cfd3ee;background:#14162cc7;border:1px solid #ffffff24;border-radius:0;align-items:center;gap:8px;padding:8px 14px;font-size:13px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.overlay{color:#cfd3ee;z-index:4;background:#10112680;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:14.5px;display:flex;position:absolute;inset:0}.spin{border:3px solid #ffffff2e;border-top-color:var(--teal);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite sp}@keyframes sp{to{transform:rotate(360deg)}}.err{color:#ffb3b3;text-align:center;max-width:70%;line-height:1.5}.side{width:352px;font-family:var(--jp);color:#14161e;background:#fff;border-left:2px solid #14161e;flex:none;padding:24px 22px 40px;overflow:auto}.side h2{margin:0 0 8px;font-size:20px;font-weight:800;line-height:1.35}.side .sub{color:#4a4f5c;margin-bottom:20px;font-size:14px;line-height:1.85}.picker{gap:8px;margin-bottom:14px;display:flex}.picker select{background:#fff;border:2px solid #14161e;border-radius:0;flex:1;padding:10px 11px;font-family:inherit;font-size:14px;font-weight:600}.upl{color:#fff;background:var(--tvj);cursor:pointer;white-space:nowrap;border:0;border-radius:0;padding:10px 14px;font-size:14px;font-weight:700}.upl:hover{background:#14161e}.hint{color:#4a4f5c;font-size:13.5px;line-height:1.8}.kv{border-top:2px solid #14161e;grid-template-columns:auto 1fr;margin:12px 0 0;font-size:14.5px;display:grid}.kv .k,.kv .v{border-bottom:1px solid #d9dbe6;padding:9px 2px}.kv .k{color:#5b6070}.kv .v{text-align:right;font-variant-numeric:tabular-nums;font-weight:800}.sect{border-top:2px solid #14161e;margin-top:22px;padding-top:16px}.sect h4{letter-spacing:.04em;color:#14161e;border-left:4px solid var(--tvj);margin:0 0 12px;padding-left:10px;font-size:14px;font-weight:800}.proves{color:#2a2d38;background:#f5f5fc;border:2px solid #14161e;border-radius:0;padding:14px 15px;font-size:14px;line-height:1.85}.props .row{border-bottom:1px solid #d9dbe6;justify-content:space-between;gap:10px;padding:8px 0;font-size:14px;display:flex}.props .row .k{color:#5b6070}.props .row .v{text-align:right;word-break:break-word;font-weight:700}.parts{border:2px solid #14161e;max-height:210px;font-size:14px;overflow:auto}.parts .p{cursor:pointer;border-bottom:1px solid #e0e2ec;border-radius:0;justify-content:space-between;padding:8px 10px;display:flex}.parts .p:last-child{border-bottom:0}.parts .p:hover{background:#f6f6fc}@media (width<=820px){.scn{flex-direction:column}.side{border-left:none;border-top:1px solid var(--line);width:auto}.stage{min-height:56vh}}
