.project-page.svelte-gygcht{max-width:1024px;margin:0 auto;padding:56px 16px 80px}@media(min-width:640px){.project-page.svelte-gygcht{padding:80px 48px 100px}}.project-header.svelte-gygcht{margin-bottom:2rem}.back-link.svelte-gygcht{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:#999;text-decoration:none;margin-bottom:1.5rem;transition:color .2s}.dark .back-link.svelte-gygcht{color:#666}.back-link.svelte-gygcht:hover{color:#111}.dark .back-link.svelte-gygcht:hover{color:#eee}.project-subtitle.svelte-gygcht{font-size:.8rem;color:#999;margin:0 0 8px}.dark .project-subtitle.svelte-gygcht{color:#666}.project-title.svelte-gygcht{font-size:clamp(1.6rem,5vw,2.4rem);font-weight:700;line-height:1.15;letter-spacing:-.02em;margin:0 0 12px}.project-desc.svelte-gygcht{font-size:.9rem;color:#666;line-height:1.7;margin:0 0 16px;max-width:640px}.dark .project-desc.svelte-gygcht{color:#999}.project-tags.svelte-gygcht{display:flex;gap:6px;flex-wrap:wrap}.tag.svelte-gygcht{font-size:.65rem;padding:3px 10px;border-radius:20px;background:#f0f0f0;color:#666}.dark .tag.svelte-gygcht{background:#2a2a2a;color:#888}.hero-image.svelte-gygcht{border-radius:12px;overflow:hidden;margin-bottom:3rem}.hero-image.svelte-gygcht img:where(.svelte-gygcht){width:100%;height:auto;display:block;aspect-ratio:2 / 1;object-fit:cover}.hero-image.svelte-gygcht img.banner-dark:where(.svelte-gygcht){display:none}.dark .hero-image.svelte-gygcht img.banner-light:where(.svelte-gygcht){display:none}.dark .hero-image.svelte-gygcht img.banner-dark:where(.svelte-gygcht){display:block}@media(min-width:640px){.hero-image.svelte-gygcht{margin-bottom:4rem}}.content-row.svelte-gygcht{display:flex;gap:48px}.content-main.svelte-gygcht{flex:1;min-width:0}.content-section.svelte-gygcht{margin-bottom:3rem;scroll-margin-top:100px}.content-section.svelte-gygcht h2:where(.svelte-gygcht){font-size:1.25rem;font-weight:700;margin:0 0 12px;letter-spacing:-.01em}.content-section.svelte-gygcht p:where(.svelte-gygcht){font-size:.9rem;line-height:1.8;color:#555;margin:0}.content-section.svelte-gygcht p:where(.svelte-gygcht)+p:where(.svelte-gygcht),.content-section.svelte-gygcht .content-bullets:where(.svelte-gygcht)+p:where(.svelte-gygcht){margin-top:20px}.content-section.svelte-gygcht p:where(.svelte-gygcht)+.content-bullets:where(.svelte-gygcht){margin-top:8px}.content-section.svelte-gygcht .content-bullets:where(.svelte-gygcht)+.content-bullets:where(.svelte-gygcht){margin-top:16px}.content-section.svelte-gygcht h4{font-size:.95rem;font-weight:600;margin:12px 0 0;color:#333;letter-spacing:-.01em}.content-section.svelte-gygcht h4:first-child,.content-section.svelte-gygcht h2:where(.svelte-gygcht)+h4{margin-top:0}.content-section h4+p{margin-top:4px;font-size:14.4px}.dark .content-section.svelte-gygcht h4{color:#ddd}.content-bullets.svelte-gygcht{list-style:none;padding:0;margin:0}.content-bullets.svelte-gygcht li:where(.svelte-gygcht){font-size:.9rem;line-height:1.8;color:#555;padding-left:1.2em;position:relative;margin-bottom:4px}.content-bullets.svelte-gygcht li:where(.svelte-gygcht):before{content:"•";position:absolute;left:0;color:#999}.dark .content-bullets.svelte-gygcht li:where(.svelte-gygcht){color:#aaa}.dark .content-bullets.svelte-gygcht li:where(.svelte-gygcht):before{color:#666}.dark .content-section.svelte-gygcht p:where(.svelte-gygcht){color:#aaa}.content-section.svelte-gygcht img:where(.svelte-gygcht){border-radius:8px;margin-top:1rem}.section-image.svelte-gygcht{margin-top:20px;border-radius:10px;overflow:hidden;background:#1a1a1a;padding:24px;border:1px solid #2a2a2a}.dark .section-image.svelte-gygcht{background:#141414;border-color:#252525}.section-image.svelte-gygcht img:where(.svelte-gygcht){width:100%;height:auto;display:block;margin:0;border-radius:0;cursor:zoom-in}.content-section .inline-img{width:100%;max-height:280px;object-fit:contain;display:block;border-radius:8px;margin:20px 0;padding:24px 32px 20px;background:#1a1a1a;border:1px solid #2a2a2a;box-sizing:border-box;cursor:zoom-in}.dark .content-section .inline-img{background:#141414;border-color:#252525}.content-section .impact-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0 0}@media(max-width:520px){.content-section .impact-grid{grid-template-columns:1fr}}.content-section .impact-card{border:1px solid #e8e8e8;border-radius:12px;padding:24px;background:#fafafa;display:flex;flex-direction:column;gap:6px}.dark .content-section .impact-card{background:#1a1a1a;border-color:#2a2a2a}.content-section .impact-value{font-size:2rem;font-weight:700;color:#22c55e;letter-spacing:-.02em;line-height:1.1}.content-section .impact-label{font-size:.85rem;font-weight:600;color:#333}.dark .content-section .impact-label{color:#ddd}.content-section .impact-desc{display:block;font-size:.8rem;line-height:1.6;color:#777;margin-top:4px}.dark .content-section .impact-desc{color:#999}.content-section blockquote{margin:16px 0;padding:12px 0 12px 20px;border-left:3px solid #22c55e;font-size:1.05rem;font-weight:500;font-style:italic;color:#333;line-height:1.6}.dark .content-section blockquote{color:#ddd}.content-section .flowchart{margin:20px 0 0;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:10px;padding:28px 24px;box-sizing:border-box}.dark .content-section .flowchart{background:#141414;border-color:#252525}.content-section .flowchart svg{display:block;width:100%;max-width:520px;height:auto;margin:0 auto;overflow:visible}.content-section .flowchart.is-wide svg{max-width:680px}.content-section .ftable-wrap{margin:20px 0 0;border:1px solid #e6e6e6;border-radius:10px;overflow:hidden}.dark .content-section .ftable-wrap{border-color:#2a2a2a}.content-section .ftable-title{background:#3b4a5c;color:#fff;font-weight:700;font-size:.9rem;padding:12px 16px;letter-spacing:-.01em}.content-section .ftable{width:100%;border-collapse:collapse;table-layout:fixed}.content-section .ftable th{background:#eef1f5;color:#2f3a48;font-weight:700;font-size:.8rem;text-align:left;padding:11px 14px;border-bottom:1px solid #dfe4ea}.dark .content-section .ftable th{background:#232a33;color:#ccd5e1;border-bottom-color:#2f3a44}.content-section .ftable td{padding:8px 14px;border:1px solid #eee;background:#fcfcfd;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;color:#44474d;vertical-align:top;word-break:break-word}.dark .content-section .ftable td{border-color:#242424;background:#161616;color:#b6bcc4}.content-section .ftable .fn{color:#9aa0aa;margin-right:8px;font-family:inherit}.content-section .codeui{margin:20px 0 0;border:1px solid #2a2a2a;border-radius:10px;overflow:hidden;background:#1b1b1b}.content-section .codeui-tabs{display:flex;gap:22px;padding:12px 18px 0;border-bottom:1px solid #2c2c2c}.content-section .codeui-tab{color:#8a8a8a;font-size:.78rem;font-weight:500;padding-bottom:10px;border-bottom:2px solid transparent}.content-section .codeui-tab.is-active{color:#ededed;border-bottom-color:#e2683a}.content-section .codeui-badge{color:#5ec47e}.content-section .codeui-toolbar{display:flex;align-items:center;gap:6px;padding:10px 14px}.content-section .codeui-seg{color:#9a9a9a;font-size:.74rem;font-weight:500;padding:5px 12px;border-radius:6px}.content-section .codeui-seg.is-active{background:#313131;color:#ededed}.content-section .codeui-pill{margin-left:8px;display:inline-flex;align-items:center;gap:10px;color:#dcdcdc;font-size:.74rem;font-weight:500;padding:5px 12px;border:1px solid #3a3a3a;border-radius:6px}.content-section .codeui-caret{color:#9a9a9a;flex:none}.content-section .codeui-code{padding:12px 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;line-height:1.75;overflow-x:auto}.content-section .codeui-code .cl{display:flex}.content-section .codeui-code .ln{width:44px;flex:none;text-align:right;padding-right:18px;color:#565b63;-webkit-user-select:none;user-select:none}.content-section .codeui-code .lc{white-space:pre;color:#cdd1d6}.content-section .codeui-code .s{color:#d79a6a}.content-section .codeui-code .n{color:#84bd9c}.content-section h5{font-size:.85rem;font-weight:600;margin:18px 0 0;color:#3a3a3a;letter-spacing:-.01em}.dark .content-section h5{color:#d2d2d2}.content-section .impact-grid.is-3{grid-template-columns:1fr 1fr 1fr}@media(max-width:640px){.content-section .impact-grid.is-3{grid-template-columns:1fr}}.content-section .gtable-wrap{margin:16px 0 0;border:1px solid #e6e6e6;border-radius:10px;overflow-x:auto}.dark .content-section .gtable-wrap{border-color:#2a2a2a}.content-section .gtable{width:100%;border-collapse:collapse;font-size:.72rem}.content-section .gtable th{background:#f1f3f6;color:#2f3a48;font-weight:700;text-align:left;padding:9px 12px;border:1px solid #e2e6ec;vertical-align:top}.dark .content-section .gtable th{background:#232a33;color:#ccd5e1;border-color:#2f3a44}.content-section .gtable td{padding:9px 12px;border:1px solid #ececec;color:#51565d;vertical-align:top;line-height:1.5}.dark .content-section .gtable td{border-color:#262626;color:#b6bcc4}.content-section .gtable .gt-lead{display:block;font-weight:600;color:#6a7078;margin-bottom:3px}.dark .content-section .gtable .gt-lead{color:#8b929c}.content-section .gtable .gt-ul,.content-section .gtable .gt-ol{margin:0;padding-left:16px}.content-section .gtable .gt-ul li,.content-section .gtable .gt-ol li{margin-bottom:2px}.content-section .gtable .gt-hl{background:#e6f4e6;color:#2f7a3f;font-weight:600;text-align:center}.dark .content-section .gtable .gt-hl{background:#1b3320;color:#7fd396}.content-section .gtable .gt-x{color:#e0533c;font-weight:700;font-size:.9rem}.content-section .gtable .gt-c{text-align:center}.content-section .gtable--cap th{text-align:center;vertical-align:middle}.content-section .gtable--cap th:first-child{text-align:left}.content-section .gtable--key{table-layout:fixed}.content-section .gtable--key th,.content-section .gtable--key td{overflow-wrap:break-word}.content-section .gtable--key th:first-child,.content-section .gtable--key td:first-child{width:13%}.content-section .gtable--key th:nth-child(2),.content-section .gtable--key td:nth-child(2){width:20%}.content-section .gtable--dark th{background:#2f4866;color:#eaf1f8;border-color:#3a577a}.dark .content-section .gtable--dark th{background:#2a3f59;border-color:#34506f}.content-section .sheetui{margin:16px 0 0;border:1px solid #d0d3d8;border-radius:6px;overflow-x:auto;background:#fff}.dark .content-section .sheetui{border-color:#3a3a3a}.content-section .sheet{border-collapse:collapse;font-size:.7rem;color:#222;min-width:760px}.content-section .sheet th,.content-section .sheet td{border:1px solid #d4d7db;padding:6px 9px;vertical-align:top;text-align:left}.content-section .sheet .sheet-corner,.content-section .sheet .sheet-col,.content-section .sheet .sheet-rn{background:#e8eaed;color:#555;font-weight:600;text-align:center}.content-section .sheet .sheet-corner,.content-section .sheet .sheet-rn{width:26px}.content-section .sheet .sheet-fh{font-weight:700;color:#222;background:#fff}.content-section .callout{margin:16px 0 0;background:#fdf6e8;border:1px solid #f0dcb0;border-radius:10px;padding:16px 20px}.dark .content-section .callout{background:#2a2113;border-color:#4d3a16}.content-section .callout-h{font-weight:700;color:#9a6b1e;font-size:.85rem;margin-bottom:10px;border-bottom:1px dashed #e6cd94;padding-bottom:8px}.dark .content-section .callout-h{color:#e0b566;border-bottom-color:#4d3a16}.content-section .callout-list{margin:0;padding-left:20px;color:#6a5a3a;font-size:.8rem}.dark .content-section .callout-list{color:#cbb890}.content-section .callout-list li{margin-bottom:4px}.content-section .imgph{margin:16px 0 0;border:1px dashed #cfcfcf;border-radius:10px;padding:40px;text-align:center;color:#888;font-weight:600;font-size:.85rem;background:#fafafa;display:flex;flex-direction:column;gap:6px}.dark .content-section .imgph{border-color:#333;background:#161616;color:#777}.content-section .imgph-sub{font-weight:400;font-size:.7rem;color:#aaa}.dark .content-section .imgph-sub{color:#666}.content-section .flowscroll{margin:20px 0 0;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:10px;padding:20px;overflow-x:auto}.dark .content-section .flowscroll{background:#141414;border-color:#252525}.content-section .flowscroll svg{display:block;height:auto}.content-section .flowzoom{margin:20px 0 0;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:10px;padding:20px;position:relative;cursor:zoom-in;overflow:hidden;transition:border-color .18s}.dark .content-section .flowzoom{background:#141414;border-color:#252525}.content-section .flowzoom svg{display:block;width:100%;height:auto}.content-section .flowzoom:hover{border-color:#3d3d3d}.content-section .flowzoom:after{content:"⤢  Click to expand";position:absolute;top:12px;right:12px;background:#0000009e;color:#fff;font-size:.66rem;font-weight:600;padding:6px 11px;border-radius:7px;opacity:0;transition:opacity .18s;pointer-events:none;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.content-section .flowzoom:hover:after{opacity:1}.zoom-overlay{position:fixed;inset:0;z-index:200;background:#08080adb;display:flex;align-items:center;justify-content:center;padding:32px;cursor:zoom-out;animation:svelte-gygcht-lbFade .2s ease-out}.zoom-inner{position:relative;max-width:92vw;max-height:90vh;background:#161616;border:1px solid #2a2a2a;border-radius:12px;overflow:hidden;cursor:default;box-shadow:0 20px 60px #00000080}.zoom-scroll{max-width:92vw;max-height:90vh;overflow:auto;padding:28px;box-sizing:border-box}.zoom-scroll svg{display:block;height:auto}.zoom-close{position:absolute;top:12px;right:12px;z-index:5;width:38px;height:38px;border-radius:50%;background:#242428eb;border:1px solid #4a4a4a;color:#ededed;font-size:1.4rem;line-height:1;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:background .15s,transform .15s}.zoom-close:hover{background:#404046f5;transform:scale(1.08)}.content-section .gptui{margin:16px 0 0;background:#141414;border:1px solid #2a2a2a;border-radius:12px;padding:18px 20px;color:#ececec;font-size:.8rem;line-height:1.6}.content-section .gpt-user{display:flex;justify-content:flex-end;margin-bottom:18px}.content-section .gpt-bubble{background:#2f2f2f;border-radius:18px;padding:10px 15px;max-width:78%;color:#ececec}.content-section .gpt-bot p{margin:0 0 12px;color:#dcdcdc}.content-section .gpt-bot strong{color:#fff}.content-section .gpt-h{font-weight:700;font-size:.85rem;margin:16px 0 6px;color:#fff}.content-section .gpt-list{margin:0 0 6px;padding-left:20px}.content-section .gpt-list li{margin-bottom:5px;color:#cfcfcf}.content-section .gpt-list strong{color:#fff}.content-section .gpt-input{margin-top:18px;border:1px solid #3a3a3a;border-radius:24px;padding:11px 16px;color:#888;display:flex;gap:10px;align-items:center}.content-section .gpt-plus{color:#aaa;font-size:1rem}.content-section .gpt-foot{text-align:center;color:#666;font-size:.65rem;margin-top:10px}.toc-sidebar.svelte-gygcht{display:none;width:200px;flex-shrink:0}@media(min-width:900px){.toc-sidebar.svelte-gygcht{display:block}}.toc-nav.svelte-gygcht{position:sticky;top:100px;display:flex;flex-direction:column;gap:4px}.toc-label.svelte-gygcht{font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:#bbb;margin-bottom:8px}.dark .toc-label.svelte-gygcht{color:#555}.toc-link.svelte-gygcht{font-size:.75rem;color:#999;text-decoration:none;padding:4px 0 4px 12px;border-left:2px solid transparent;text-align:left;background:none;border-top:none;border-right:none;border-bottom:none;cursor:pointer;font-family:inherit;transition:color .15s,border-color .15s}.dark .toc-link.svelte-gygcht{color:#666}.toc-link.svelte-gygcht:hover{color:#555}.dark .toc-link.svelte-gygcht:hover{color:#aaa}.toc-link.active.svelte-gygcht{color:#22c55e;border-left-color:#22c55e;font-weight:500}.dark .toc-link.active.svelte-gygcht{color:#22c55e;border-left-color:#22c55e}.not-found.svelte-gygcht{padding:56px 24px;text-align:center}.not-found.svelte-gygcht a:where(.svelte-gygcht){color:#22c55e;text-decoration:underline}.lightbox.svelte-gygcht{position:fixed;inset:0;z-index:200;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:32px;cursor:zoom-out;animation:svelte-gygcht-lbFade .2s ease-out}@keyframes svelte-gygcht-lbFade{0%{opacity:0}to{opacity:1}}.lightbox.svelte-gygcht img:where(.svelte-gygcht){max-width:90vw;max-height:90vh;object-fit:contain;border-radius:8px;box-shadow:0 16px 60px #0006}.lightbox-close.svelte-gygcht{position:absolute;top:20px;right:24px;background:none;border:none;font-size:2rem;color:#ffffffb3;cursor:pointer;line-height:1;transition:color .2s}.lightbox-close.svelte-gygcht:hover{color:#fff}
