:root{--bg: #f5f0eb;--surface: #faf7f2;--ink: #1a1410;--ink-light: #3d3329;--ink-faint: #6b5d50;--accent: #6b4c2a;--moss: #4a6340;--clay: #8c5a30;--stone: #c4b8a8}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}.canvas-toggle{position:fixed;z-index:50;bottom:1.2rem;right:1.2rem;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1px solid rgba(212,205,196,.5);background:#ead5b699;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--ink-light);cursor:pointer;transition:background .2s,color .2s,transform .2s;box-shadow:0 2px 10px #00000014}.canvas-toggle:hover{background:#ead5b6d9;color:var(--ink);transform:scale(1.1)}body.canvas-mode .canvas-toggle{background:#1a141099;color:#ead5b6e6;border-color:#ead5b64d}.left-col,#graph-panel{transition:opacity .4s ease-out;will-change:transform,opacity}body.canvas-mode .left-col{transform:translate(calc(-100% - 2rem));opacity:0;pointer-events:none;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s ease}body.canvas-mode #graph-panel{transform:translate(calc(100% + 2rem));opacity:0;pointer-events:none;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s ease}.loader{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#fff;transition:opacity .8s ease}.is-reveal .loader{opacity:0;pointer-events:none}.loader__icon{animation:spin 3s linear infinite}.loader__arc{stroke-dasharray:60 200;animation:arc-draw 1.8s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes arc-draw{0%{stroke-dashoffset:60}50%{stroke-dashoffset:-60}to{stroke-dashoffset:-180}}.is-loading .hero__name,.is-loading .hero__tagline,.is-loading .hero__intro,.is-loading .hero__prove,.is-loading #chat-panel,.is-loading #graph-panel{opacity:0;transform:translateY(12px)}.hero__name,.hero__tagline,.hero__intro,.hero__prove,#chat-panel,#graph-panel{transition:opacity .4s ease,transform .4s ease}.is-reveal .hero__name{transition-delay:.3s}.is-reveal .hero__tagline{transition-delay:.8s}.is-reveal .hero__intro{transition-delay:1.3s}.is-reveal .hero__prove{transition-delay:1.8s}.is-reveal #chat-panel{transition-delay:2.2s}.is-reveal #graph-panel{transition-delay:2.6s}.is-loaded .hero__name,.is-loaded .hero__tagline,.is-loaded .hero__intro,.is-loaded .hero__prove,.is-loaded #chat-panel,.is-loaded #graph-panel{transition-delay:0s}body{font-family:Noto Sans JP,-apple-system,sans-serif;font-weight:400;line-height:1.7;color:var(--ink);background:#fff url(background.svg) center/contain no-repeat fixed;overflow:hidden;height:100vh}main{display:flex;height:100vh;position:relative;z-index:1;gap:1.25rem;padding:1.25rem}.site-credit{position:fixed;bottom:.6rem;right:3.2rem;z-index:2;font-size:.68rem;color:var(--ink-faint);letter-spacing:.02em}.site-credit a{color:var(--accent);text-decoration:none}.site-credit a:hover{text-decoration:underline}.site-credit__heart{font-style:normal}body.canvas-mode .site-credit{color:#ead5b699}body.canvas-mode .site-credit a{color:#ead5b6cc}.left-col{flex:0 0 30%;display:flex;flex-direction:column;gap:1rem;min-height:0}.hero{flex-shrink:0;padding:1rem 1.2rem;font-family:Cormorant Garamond,Georgia,serif;background:#ead5b6c7;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(212,205,196,.45);box-shadow:0 4px 24px #0000000f,0 1px 3px #0000000a;border-radius:12px}.hero__name{font-weight:700;font-size:2.2rem;letter-spacing:.03em;color:var(--ink);text-shadow:0 1px 10px rgba(245,240,235,.8);line-height:1.2}.hero__tagline{font-family:Noto Sans JP,-apple-system,sans-serif;font-size:.88rem;font-weight:700;color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-top:.3rem;text-shadow:0 1px 6px rgba(245,240,235,.7)}.hero__intro{font-weight:600;font-size:1.2rem;font-style:italic;color:var(--ink);margin-top:.6rem;line-height:1.55;text-shadow:0 1px 8px rgba(245,240,235,.8)}.hero__prove{font-family:Cormorant Garamond,serif;font-size:1.25rem;font-weight:600;color:var(--ink);margin-top:.5rem;letter-spacing:.02em;text-shadow:0 1px 6px rgba(245,240,235,.8)}.hero__prove strong{font-weight:700;color:var(--accent);letter-spacing:.08em}.mobile-viz-note{display:none}@media(max-width:1024px){body{overflow:hidden;height:100vh;height:100dvh}main{flex-direction:column;justify-content:flex-start;height:100vh;height:100dvh;padding:.75rem;gap:0;overflow:hidden}.left-col{flex:1;min-height:0;gap:0;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;transition:max-height .8s cubic-bezier(.4,0,.2,1)}.hero__prove{font-size:.95rem;margin-top:.3rem}.hero{padding:.6rem .8rem;border-radius:10px;background:#ead5b6bf;margin-bottom:.35rem;max-height:500px;overflow:hidden;will-change:max-height,opacity;transition:max-height .5s cubic-bezier(.4,0,.2,1),opacity .4s ease-out}.hero-faded .hero{max-height:0;padding:0;opacity:0;margin:0;pointer-events:none}.hero-faded #chat-panel{flex:1;border-radius:10px}.mobile-viz-note{display:none}#chat-panel{flex:0 0 auto;min-height:0;padding:.5rem .6rem;border-radius:10px;background:#faf7f2c7;overflow-y:auto}#graph-panel{min-height:0;max-height:40dvh;margin-top:.4rem;padding:0;border-radius:10px;background:#faf7f2c7;overflow-y:auto;transition:max-height .4s ease}#graph-container{min-height:180px}.legend{padding:.15rem .4rem;gap:.4rem;font-size:.62rem}.legend-note{display:none}.graph-filter{padding:.25rem .4rem;gap:.25rem}.filter-pill{padding:.15rem .4rem;font-size:.62rem}.msg{margin-bottom:.6rem;font-size:.95rem;line-height:1.5}.msg-assistant pre{padding:.4rem .6rem;margin:.3rem 0;font-size:.78rem}#chat-form{padding-top:.4rem;gap:.3rem}#chat-input{font-size:.85rem;padding:.3rem 0}#graph-container{flex:0}.graph-empty{position:static;transform:none;padding:.6rem 1rem;font-size:.85rem}#graph-panel:not(:has(.graph-empty)) #graph-container{flex:1;min-height:30vh}.hero__name{font-size:1.5rem}.canvas-toggle{width:32px;height:32px;bottom:.6rem;right:.6rem;opacity:.5}.canvas-toggle:active{opacity:1}.filter-pill{padding:.35rem .7rem;font-size:.78rem}.site-credit{position:fixed;bottom:.3rem;left:0;right:0;text-align:center;padding:0;font-size:.65rem}body.canvas-mode .left-col{transform:translateY(-100%);opacity:0;pointer-events:none;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s ease}body.canvas-mode #graph-panel{transform:translateY(100%);opacity:0;pointer-events:none;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s ease}.jd-req-acc{padding:.7rem 0;gap:.6rem}.jd-req-acc__arrow{font-size:.75rem}.jd-req-acc__name{font-size:.88rem}.jd-conf{font-size:.75rem;padding:.2rem .5rem}.jd-evidence__link{font-size:.78rem}.jd-evidence__ctx{font-size:.75rem}.viz-tooltip{max-width:min(280px,85vw);font-size:.8rem}.tip-link{font-size:.75rem}.tip-prof{font-size:.7rem}.ref-filter__btn{padding:.35rem .65rem;font-size:.78rem}.ref-item__link{font-size:.85rem}.ref-item__dates{font-size:.75rem}}@media(max-width:480px){#graph-panel{display:none!important}.mobile-viz-note{display:block;text-align:center;font-size:.68rem;color:var(--ink-faint);padding:.3rem 0;opacity:.6}main{padding:.5rem}.hero{padding:.35rem .5rem}.hero__name{font-size:1.1rem}.hero__tagline{font-size:.62rem}.hero__intro{font-size:.82rem;line-height:1.35;margin-top:.3rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.hero__prove{font-size:.82rem;margin-top:.2rem}#chat-panel{padding:.3rem .5rem}#chat-form{padding-top:.3rem;border-top:none}#chat-input{font-size:16px;padding:.35rem .3rem}#messages{flex:1;min-height:0}.starter-questions{flex-direction:column}.starter-btn{width:100%;text-align:left;padding:.5rem .8rem;font-size:.85rem}#graph-panel{margin-top:.3rem}.msg{margin-bottom:.5rem;font-size:.88rem}.canvas-toggle{width:30px;height:30px}.msg-assistant pre{padding:.35rem .5rem;font-size:.75rem}.legend{padding:.25rem .5rem;gap:.4rem;font-size:.65rem}.jd-modal__panel{padding:1.2rem 1rem 1rem}.jd-results__pct{font-size:2rem}.jd-drop{padding:1rem}.jd-text{font-size:16px}.ref-modal__header{padding:1rem 1rem .6rem}.ref-modal__body{padding:.5rem 1rem 1rem}.msg-status{font-size:.78rem}}.exhibits-container{position:absolute;inset:0;display:flex;flex-direction:column;z-index:5;pointer-events:none;overflow:visible}.exhibits-container>*{pointer-events:auto}.exhibits-container--hidden{display:none}.workshop-intro{flex:.85;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:0 1.5rem;transition:opacity .5s ease,transform .5s ease}.workshop-intro--hidden{opacity:0;transform:scale(.97);pointer-events:none}.workshop-intro__title{font-family:Cormorant Garamond,serif;font-size:clamp(1.6rem,3.8cqi,2.2rem);font-weight:600;color:#3d2e1e;letter-spacing:.12em;margin:0;opacity:0;animation:ws-reveal .6s ease forwards .3s}.workshop-intro__ornament{display:block;font-size:.65rem;color:var(--stone);margin:.6rem 0 1rem;letter-spacing:.3em;opacity:0;animation:ws-reveal .5s ease forwards .55s}.workshop-intro__body{font-family:Cormorant Garamond,serif;font-size:clamp(1rem,2.4cqi,1.2rem);font-weight:400;color:#5a4a3a;line-height:1.9;max-width:32ch;margin:0 auto .8rem;opacity:0}.workshop-intro__body:nth-of-type(2){animation:ws-reveal .55s ease forwards .8s}.workshop-intro__body:nth-of-type(3){animation:ws-reveal .55s ease forwards 1.15s}.workshop-intro__cta{font-family:Cormorant Garamond,serif;font-size:clamp(.92rem,2.1cqi,1.1rem);font-style:italic;font-weight:500;color:var(--accent);letter-spacing:.05em;margin:.6rem 0 0;opacity:0;animation:ws-reveal .5s ease forwards 1.5s}@keyframes ws-reveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.carousel-wrap{position:relative;display:flex;align-items:center;min-height:0}.exhibits-carousel{display:flex;gap:1.5rem;padding:.5rem 2.5rem;overflow:hidden;align-items:center;justify-content:center;flex:1}.exhibits-carousel .repo-tile{flex-shrink:0}.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:6;width:28px;height:28px;border-radius:50%;border:1px solid rgba(212,205,196,.5);background:#f5f0ebd9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--ink-light);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,opacity .3s;box-shadow:0 2px 8px #00000014}.carousel-arrow:hover{background:#ead5b6d9;color:var(--ink)}.carousel-arrow--prev{left:1.5rem}.carousel-arrow--next{right:1.5rem}.carousel-arrow:disabled{opacity:0;pointer-events:none}.carousel-dots{display:flex;justify-content:center;gap:.35rem;padding:.15rem 0}.carousel-dot{width:5px;height:5px;border-radius:50%;border:none;background:var(--stone);opacity:.4;cursor:pointer;padding:0;transition:opacity .2s,transform .2s}.carousel-dot--active{opacity:1;transform:scale(1.3);background:var(--accent)}.exhibits-legend-slot{flex-shrink:0;padding:.25rem 1.5rem .75rem}.exhibits-legend{display:flex;align-items:baseline;gap:.35rem;flex-wrap:wrap;justify-content:center}.exhibits-legend__label{font-size:.55rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);white-space:nowrap}.exhibits-legend__items{display:flex;gap:.15rem .5rem;flex-wrap:wrap;justify-content:center;max-width:38rem;margin:0 auto;font-size:.62rem;color:var(--ink-light)}.repo-tile{display:flex;flex-direction:column;align-items:center;width:140px;cursor:pointer;transition:transform .35s cubic-bezier(.34,1.56,.64,1),opacity .3s ease,filter .3s ease}.repo-tile--hover{transform:scale(1.15);z-index:10}.repo-tiles--has-hover .repo-tile:not(.repo-tile--hover){opacity:.25;filter:blur(1.5px)}.repo-tile__ring{display:block;width:120px;height:120px;transition:filter .3s ease}.repo-tile__ring path{transition:d .3s cubic-bezier(.34,1.56,.64,1)}.repo-tile__name{font-family:Cormorant Garamond,Georgia,serif;font-size:.88rem;font-weight:700;letter-spacing:.03em;color:var(--ink);margin-top:.35rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.repo-detail{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.9);z-index:20;display:flex;flex-direction:column;align-items:center;max-width:420px;width:85%;max-height:80%;overflow-y:auto;padding:1.5rem 2rem;background:#ffffffeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(212,205,196,.5);border-radius:16px;box-shadow:0 8px 40px #0000001a;opacity:0;pointer-events:none;transition:opacity .4s ease,transform .4s cubic-bezier(.34,1.56,.64,1)}.repo-detail--visible{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}.repo-detail__ring{width:160px;height:160px;flex-shrink:0}.repo-detail__title{font-family:Cormorant Garamond,Georgia,serif;font-size:1.3rem;font-weight:600;color:var(--ink);margin:.4rem 0 0;letter-spacing:.02em}.repo-detail__body{width:100%}.repo-detail__loading{font-size:.82rem;color:var(--ink-faint);text-align:center;padding:1rem 0}.repo-detail__breakdown{width:100%;margin-bottom:.8rem;padding-bottom:.8rem;border-bottom:1px solid rgba(212,205,196,.4)}.repo-detail__tagline{font-family:Cormorant Garamond,Georgia,serif;font-size:.92rem;font-weight:600;font-style:italic;color:var(--accent);margin-bottom:.4rem}.repo-detail__summary{font-size:.78rem;color:var(--ink-light);line-height:1.55;margin-bottom:.5rem}.repo-detail__stack{display:flex;flex-wrap:wrap;gap:.3rem}.repo-detail__pill{font-size:.62rem;font-weight:500;color:var(--ink-faint);background:#c4b8a840;border:1px solid rgba(196,184,168,.4);border-radius:9999px;padding:.1rem .5rem;white-space:nowrap}.repo-detail__url{display:inline-block;margin-top:.4rem;font-size:.65rem;color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s}.repo-detail__url:hover{border-color:var(--accent)}.repo-detail__accordion{width:100%;margin-bottom:.2rem;border-radius:8px;overflow:hidden}.repo-detail__domain{display:flex;align-items:center;gap:.4rem;padding:.4rem .6rem;font-family:Cormorant Garamond,Georgia,serif;font-size:.84rem;font-weight:600;color:var(--ink);cursor:pointer;border-radius:8px;transition:background .2s;list-style:none}.repo-detail__domain::-webkit-details-marker{display:none}.repo-detail__domain::marker{content:""}.repo-detail__domain:hover{background:#c4b8a82e}.repo-detail__accordion[open]>.repo-detail__domain{background:#c4b8a81f}.repo-detail__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.repo-detail__badge{margin-left:auto;font-size:.62rem;font-weight:500;color:var(--ink-faint);background:#c4b8a84d;border-radius:9999px;padding:.05rem .4rem;min-width:1.2rem;text-align:center}.repo-detail__accordion-body{padding:.2rem 0 .3rem 1.4rem}.repo-detail__skill{display:flex;align-items:center;gap:.5rem;padding:.18rem 0;font-size:.75rem;color:var(--ink-light);line-height:1.4}.repo-detail__count{font-size:.62rem;color:var(--ink-faint);background:#c4b8a833;border-radius:9999px;padding:0 .35rem;white-space:nowrap}.repo-detail__link{font-size:.72rem;color:var(--accent);text-decoration:none;opacity:.5;transition:opacity .2s}.repo-detail__link:hover{opacity:1}.repo-detail__skill-accordion{border:none}.repo-detail__skill-accordion>summary{cursor:pointer;list-style:none}.repo-detail__skill-accordion>summary::-webkit-details-marker{display:none}.repo-detail__skill-accordion[open]>.repo-detail__skill{color:var(--ink);font-weight:500}.repo-detail__snippet-body{padding:.2rem 0 .4rem .5rem}.repo-detail__snippet{padding:.3rem 0;border-top:1px solid rgba(196,184,168,.15)}.repo-detail__snippet:first-child{border-top:none}.repo-detail__snippet-file{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.repo-detail__snippet-range{font-size:.6rem;color:var(--ink-faint)}.repo-detail__snippet-lang{font-size:.55rem;color:var(--moss);background:#4a634014;padding:0 .3rem;border-radius:3px}.repo-detail__snippet-context{font-size:.68rem;color:var(--ink-faint);font-style:italic;line-height:1.45;margin:.15rem 0}.repo-detail__snippet-code>summary{font-size:.62rem;color:var(--ink-faint);cursor:pointer;list-style:none}.repo-detail__snippet-code>summary::-webkit-details-marker{display:none}.repo-detail__snippet-pre{max-height:7rem;overflow:auto;font-size:.62rem;line-height:1.45;background:#f5f0eb80;padding:.4rem;border-radius:4px;margin:.2rem 0 0}.repo-detail__snippet-redacted{font-size:.6rem;color:#9a4030;font-style:italic}@media(max-width:1440px){.exhibits-carousel .repo-tile{width:115px}.exhibits-carousel .repo-tile__ring{width:96px;height:96px}.exhibits-carousel .repo-tile__name{font-size:.68rem;max-width:115px}}@media(max-width:1200px){.exhibits-carousel{gap:1rem;padding:.75rem 1.5rem}.exhibits-carousel .repo-tile{width:100px}.exhibits-carousel .repo-tile__ring{width:82px;height:82px}.exhibits-carousel .repo-tile__name{font-size:.62rem;max-width:100px}}@media(max-width:1024px){.exhibits-container,.repo-detail{display:none}}#chat-panel{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column;padding:1rem 1.5rem;overflow:hidden;background:#f5f0ebd9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:12px;border:1px solid rgba(212,205,196,.45);box-shadow:0 4px 24px #0000000f,0 1px 3px #0000000a}#messages{flex:1;overflow-y:auto;padding-bottom:1rem;scrollbar-width:thin;scrollbar-color:rgba(138,131,128,.25) transparent}#messages::-webkit-scrollbar{width:6px}#messages::-webkit-scrollbar-track{background:transparent}#messages::-webkit-scrollbar-thumb{background:#8a838040;border-radius:3px}#messages::-webkit-scrollbar-thumb:hover{background:#8a838073}.msg{margin-bottom:1.2rem;max-width:100%;font-size:1rem;line-height:1.65}.msg-user{color:var(--ink);font-weight:400}.msg-user:before{content:"\203a  ";color:var(--accent)}.msg-assistant{color:var(--ink-light);white-space:pre-wrap;word-wrap:break-word}.msg-assistant code{background:var(--surface);padding:.1em .35em;border-radius:2px;font-size:.88em;color:var(--moss)}.msg-assistant pre{background:var(--surface);padding:.8rem 1rem;margin:.5rem 0;overflow-x:auto;border-left:2px solid var(--stone);line-height:1.5}.msg-assistant pre code{background:none;padding:0;color:var(--ink)}.msg-assistant pre code.hljs{background:var(--surface);padding:0}.hljs-keyword,.hljs-selector-tag,.hljs-built_in{color:#8c5a30}.hljs-string,.hljs-attr{color:#4a6340}.hljs-comment,.hljs-quote{color:#9a8b7a;font-style:italic}.hljs-function .hljs-title,.hljs-title.function_{color:#6b4c2a}.hljs-number,.hljs-literal{color:sienna}.hljs-type,.hljs-title.class_{color:#5b7a4a}.hljs-variable,.hljs-template-variable{color:var(--ink)}.hljs-meta{color:var(--ink-faint)}.code-collapse{margin:.5rem 0;border-left:2px solid var(--stone)}.code-collapse__toggle{display:flex;align-items:center;gap:.35rem;padding:.25rem .6rem;cursor:pointer;font-size:.72rem;color:var(--ink-faint);user-select:none;list-style:none;font-family:var(--font-body, inherit)}.code-collapse__toggle::-webkit-details-marker{display:none}.code-collapse__toggle::marker{content:""}.code-collapse__arrow{font-size:.6rem;transition:transform .2s}.code-collapse:not([open]) .code-collapse__arrow{transform:rotate(-90deg)}.code-collapse pre{border-left:none;margin:0}.starter-questions{display:flex;flex-wrap:wrap;gap:.5rem;padding:.5rem 0}.starter-btn{background:#ead5b673;border:1px solid rgba(212,205,196,.6);border-radius:20px;padding:.45rem .9rem;font-family:inherit;font-size:.92rem;color:var(--ink-light);cursor:pointer;transition:background .2s,color .2s,border-color .2s}.starter-btn:hover{background:#fff9;color:var(--ink);border-color:var(--accent)}.msg-assistant h3,.msg-assistant h4{font-family:Cormorant Garamond,serif;font-weight:600;color:var(--ink);margin:.8rem 0 .3rem}.msg-assistant h3{font-size:1.1rem}.msg-assistant h4{font-size:.95rem}.msg-assistant .mermaid{margin:.6rem 0;overflow-x:auto;background:var(--surface);border-radius:6px;padding:.5rem}.msg-assistant .mermaid svg{max-width:100%;height:auto}.msg-assistant .mermaid[data-processed]{cursor:pointer}.msg-assistant .mermaid[data-processed]:hover{background:#d4cdc440}.mermaid-lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}.mermaid-lightbox--open{pointer-events:auto;opacity:1;visibility:visible}.mermaid-lightbox__backdrop{position:absolute;inset:0;background:#141414a6;backdrop-filter:blur(2px)}.mermaid-lightbox__content{position:relative;width:min(90vw,1100px);max-height:90vh;overflow:auto;background:#fff;border-radius:12px;padding:2rem;box-shadow:0 12px 60px #00000040;transform:scale(.92);transition:transform .25s ease}.mermaid-lightbox--open .mermaid-lightbox__content{transform:scale(1)}.mermaid-lightbox__content svg{width:100%!important;height:auto!important;max-height:82vh}#chat-form{display:flex;align-items:end;gap:.4rem;border-top:1px solid rgba(212,205,196,.4);padding-top:.5rem;background:transparent}#chat-input{flex:1;border:none;border-bottom:1px solid var(--stone);background:#ffffff80;border-radius:2px;font-family:inherit;font-size:1rem;color:var(--ink);padding:.3rem 0;outline:none}#chat-input::placeholder{color:var(--ink-light)}#chat-input:focus{border-bottom-color:var(--accent)}.jd-btn{flex-shrink:0;background:var(--ink);border:1px solid var(--ink);border-radius:50%;width:21px;height:21px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--bg);transition:background .15s,border-color .15s;margin-bottom:.35rem}.jd-btn svg{width:11px;height:11px}.jd-btn:hover{background:var(--accent);border-color:var(--accent)}.send-btn{flex-shrink:0;background:var(--accent);border:1px solid var(--accent);border-radius:50%;width:21px;height:21px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:background .15s,opacity .15s;margin-bottom:.35rem}.send-btn svg{width:11px;height:11px}.send-btn:hover{opacity:.85}@media(max-width:1024px){#chat-panel{padding:.5rem .6rem;overflow-y:auto}.jd-btn{width:25px;height:25px}.jd-btn svg{width:13px;height:13px}.send-btn{width:25px;height:25px}.send-btn svg{width:13px;height:13px}}@media(max-width:480px){#chat-panel{padding:.3rem .5rem}.jd-btn{width:32px;height:32px}.jd-btn svg{width:15px;height:15px}.send-btn{width:32px;height:32px}.send-btn svg{width:15px;height:15px}}.loading span{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--ink-faint);margin-right:4px;animation:pulse 1.4s ease-in-out infinite}.loading span:nth-child(2){animation-delay:.2s}.loading span:nth-child(3){animation-delay:.4s}@keyframes pulse{0%,80%,to{opacity:.3}40%{opacity:1}}#graph-panel{flex:1;min-height:0;display:flex;flex-direction:column;position:relative;background:#faf7f26b;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:12px;border:1px solid rgba(212,205,196,.45);box-shadow:0 4px 24px #0000000f,0 1px 3px #0000000a;container-type:inline-size}#graph-container{flex:1;min-height:0}.graph-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--ink-light);font-size:1rem;text-shadow:0 1px 6px rgba(245,240,235,.8)}.legend{display:flex;gap:1rem;flex-wrap:wrap;padding:.8rem 1rem;font-size:.8rem;font-weight:400;color:var(--ink);text-shadow:0 1px 6px rgba(245,240,235,.8)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:3px;vertical-align:middle}.legend-note{color:var(--ink-light)}.msg-assistant blockquote{font-style:italic;color:var(--ink-faint);border-left:2px solid var(--stone);padding-left:.8rem;margin:.3rem 0}.msg-assistant strong{color:var(--ink);font-weight:400}.msg-assistant em{font-style:italic}.graph-filter{display:none;flex-wrap:wrap;gap:.35rem;padding:.45rem 1rem;border-bottom:1px solid rgba(212,205,196,.4)}.filter-pill{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .55rem;border:1px solid var(--stone);border-radius:10px;background:transparent;color:var(--ink-light);font-family:inherit;font-size:.7rem;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.filter-pill:hover:not(.filter-pill--active){background:var(--bg)}.filter-pill--active{background:var(--accent);color:#fff;border-color:var(--accent)}.filter-dot{display:inline-block;width:6px;height:6px;border-radius:50%;flex-shrink:0}.filter-pill--active .filter-dot{box-shadow:0 0 0 1px #fff6}#viz-svg{width:100%;height:100%}.treemap-leaf{cursor:pointer;transition:opacity .15s}.treemap-label,.treemap-group-label{pointer-events:none;font-family:inherit}.bar-row rect{cursor:pointer;transition:opacity .15s}.bar-row text{font-family:inherit}.viz-tooltip{position:fixed;left:0;top:0;padding:.6rem .8rem;background:#ffffffe0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(212,205,196,.5);border-radius:12px;font-size:.75rem;color:var(--ink);pointer-events:none;opacity:0;transition:opacity .15s;z-index:10;will-change:transform;font-family:inherit;max-width:280px;box-shadow:0 8px 40px #0000001a}.viz-tooltip--visible{opacity:1}.tip-prof{display:inline-block;margin-left:.4rem;padding:.1rem .4rem;border-radius:9999px;font-size:.62rem;font-weight:500;text-transform:uppercase;letter-spacing:.03em}.tip-prof--extensive{background:#4a785622;color:#3d6845}.tip-prof--moderate{background:#8a6f4822;color:#7a6040}.tip-prof--minimal{background:#9a959022;color:#8a857e}.tip-count{margin-top:.25rem;color:var(--ink-light)}.tip-status{margin-top:.25rem;font-style:italic;color:var(--ink-faint)}.tip-status--gap{color:#a34e44}.tip-repos{margin-top:.35rem;border-top:1px solid rgba(0,0,0,.06);padding-top:.3rem}.tip-repo-row{display:flex;align-items:center;gap:.35rem;font-size:.7rem;padding:.1rem 0}.tip-repo-swatch{width:8px;height:8px;border-radius:2px;flex-shrink:0}.tip-repo-name{color:var(--ink-light);flex:1}.tip-repo-count{color:var(--ink-faint);font-variant-numeric:tabular-nums}.tip-links{margin-top:.4rem;padding-top:.35rem;border-top:1px solid var(--stone);display:flex;flex-direction:column;gap:.2rem}.tip-link{color:var(--accent);text-decoration:none;font-size:.68rem;word-break:break-all;line-height:1.4}.tip-link:hover{text-decoration:underline}.tip-lock{font-size:.6rem}.tip-private{font-size:.62rem;font-style:italic;color:var(--ink-faint);margin-top:.3rem;line-height:1.4}.msg-status{font-size:.82rem;color:var(--ink-faint);margin-bottom:.8rem;padding:.5rem 0 .5rem .8rem;border-left:2px solid var(--stone)}.status-steps{display:flex;flex-direction:column;gap:.15rem}.status-step{display:flex;align-items:center;gap:.4rem;opacity:.5;transition:opacity .3s}.status-step--active{opacity:1;color:var(--ink-light)}.status-step--active .status-icon{color:var(--accent);animation:blink 1.4s ease-in-out infinite}.status-step--done{opacity:.7}.status-step--done .status-icon{color:var(--moss)}.status-elapsed{font-size:.75rem;color:var(--ink-faint);margin-top:.25rem;font-variant-numeric:tabular-nums}.msg-status--done{border-left:none;padding-left:0;margin-bottom:.5rem}.status-summary{font-size:.75rem;color:var(--ink-faint)}@keyframes blink{0%,to{opacity:.4}50%{opacity:1}}@keyframes modal-enter{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.rate-modal{display:none;position:fixed;inset:0;z-index:100}.rate-modal--open{display:flex;align-items:center;justify-content:center}.rate-modal__backdrop{position:absolute;inset:0;background:#2c2c2c40;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.rate-modal__panel{position:relative;width:min(400px,85vw);background:#ffffffe0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(212,205,196,.5);border-radius:16px;padding:2rem 2rem 1.5rem;text-align:center;box-shadow:0 8px 40px #0000001a;animation:modal-enter .35s cubic-bezier(.34,1.56,.64,1)}.rate-modal__title{font-family:Cormorant Garamond,Georgia,serif;font-weight:600;font-size:1.3rem;color:var(--ink);margin-bottom:.6rem}.rate-modal__text{font-size:.88rem;color:var(--ink-light);line-height:1.6;margin-bottom:.4rem}.rate-modal__timer{font-size:.82rem;color:var(--ink-faint);margin-bottom:1.2rem}.rate-modal__btn{padding:.5rem 1.8rem;border:1px solid rgba(196,184,168,.4);border-radius:9999px;background:#c4b8a826;color:var(--ink);font-family:inherit;font-size:.85rem;cursor:pointer;transition:background .2s}.rate-modal__btn:hover{background:#c4b8a84d}.ref-modal{display:none;position:fixed;inset:0;z-index:100}.ref-modal--open{display:flex;align-items:center;justify-content:center}.ref-modal__backdrop{position:absolute;inset:0;background:#2c2c2c40;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.ref-modal__panel{position:relative;width:min(640px,90vw);max-height:80vh;background:#ffffffe0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(212,205,196,.5);border-radius:16px;display:flex;flex-direction:column;box-shadow:0 8px 40px #0000001a;overflow:hidden;animation:modal-enter .35s cubic-bezier(.34,1.56,.64,1)}.ref-modal__close{position:absolute;top:.6rem;right:.8rem;background:none;border:none;font-size:1.4rem;color:var(--ink-faint);cursor:pointer;line-height:1;z-index:1;transition:color .2s}.ref-modal__close:hover{color:var(--ink)}.ref-modal__header{padding:1.2rem 1.4rem .8rem;border-bottom:1px solid rgba(212,205,196,.4);flex-shrink:0}.ref-modal__header h2{font-family:Cormorant Garamond,Georgia,serif;font-weight:600;font-size:1.2rem;letter-spacing:.02em;margin-bottom:.2rem}.ref-modal__meta{display:flex;align-items:center;gap:.5rem;margin-bottom:.2rem}.ref-modal__path{font-size:.78rem;color:var(--ink-light)}.ref-modal__stats{font-size:.75rem;color:var(--ink-faint)}.ref-filter{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.5rem}.ref-filter__btn{padding:.2rem .55rem;border:1px solid rgba(196,184,168,.4);border-radius:9999px;background:#c4b8a826;color:var(--ink-light);font-family:inherit;font-size:.7rem;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.ref-filter__btn:hover:not(.ref-filter__btn--active){background:#c4b8a84d}.ref-filter__btn--active{background:var(--accent);color:#fff;border-color:var(--accent)}.ref-modal__loading{font-size:.82rem;color:var(--ink-faint);font-style:italic}.ref-modal__empty{padding:2rem 1.4rem;color:var(--ink-faint);text-align:center}.confidence-link{cursor:pointer;border-bottom:1px dashed var(--ink-faint);transition:color .15s,border-color .15s}.confidence-link:hover{color:var(--basil);border-color:var(--basil)}.ref-modal__body{overflow-y:auto;padding:.6rem 1.4rem 1.2rem;flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:rgba(138,131,128,.3) transparent}.ref-modal__body::-webkit-scrollbar{width:6px}.ref-modal__body::-webkit-scrollbar-track{background:transparent}.ref-modal__body::-webkit-scrollbar-thumb{background:#8a83804d;border-radius:3px}.ref-modal__body::-webkit-scrollbar-thumb:hover{background:#8a838080}.ref-repo{margin-bottom:1rem}.ref-repo:last-child{margin-bottom:0}.ref-repo__name{font-weight:400;font-size:.85rem;margin-bottom:.4rem;padding-bottom:.3rem;border-bottom:1px solid var(--stone)}.ref-repo__name a{color:var(--accent);text-decoration:none}.ref-repo__name a:hover{text-decoration:underline}.ref-item{padding:.5rem 0;border-bottom:1px solid #ebe6df}.ref-item:last-child{border-bottom:none}.ref-item__file{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.ref-item__link{color:var(--accent);text-decoration:none;font-size:.8rem;word-break:break-all}.ref-item__link:hover{text-decoration:underline}.ref-item__line{font-size:.7rem;color:var(--ink-faint);font-variant-numeric:tabular-nums}.ref-item__lang{font-size:.65rem;color:var(--moss);background:#7a8b6f15;padding:.05rem .35rem;border-radius:3px}.ref-item__redacted{font-size:.65rem;color:var(--paprika);background:#c0453515;padding:.05rem .4rem;border-radius:3px;font-weight:500;letter-spacing:.02em}.ref-item__name{font-size:.75rem;color:var(--ink-light);margin-top:.15rem;font-family:monospace}.ref-item__context{font-size:.75rem;color:var(--ink-light);margin-top:.2rem;line-height:1.5}.ref-item__dates{font-size:.68rem;color:var(--ink-faint);margin-top:.15rem}.ref-item__code-collapse{margin:.3rem 0 0;border-left:2px solid var(--stone)}.ref-item__code-toggle{display:flex;align-items:center;gap:.3rem;padding:.2rem .5rem;cursor:pointer;font-size:.68rem;color:var(--ink-faint);user-select:none;list-style:none;font-family:var(--font-body, inherit)}.ref-item__code-toggle::-webkit-details-marker{display:none}.ref-item__code-toggle::marker{content:""}.ref-item__code-arrow{font-size:.55rem;transition:transform .2s}.ref-item__code-collapse:not([open]) .ref-item__code-arrow{transform:rotate(-90deg)}.ref-item__code-collapse[open] .ref-item__code-arrow{content:"\25be"}.ref-item__code-pre{margin:0;padding:.5rem .6rem;background:#2c2c2c0a;border-radius:0 4px 4px 0;border-left:none;overflow-x:auto;font-size:.7rem;line-height:1.45;max-height:300px;overflow-y:auto}.ref-item__code-pre code{font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.7rem}.ref-repo__lock{font-size:.72rem;vertical-align:middle}.ref-private-note{margin-top:1rem;padding:.7rem .9rem;background:#6b4c2a0f;border-radius:8px;font-size:.78rem;color:var(--ink-light);line-height:1.55}.ref-private-note a{color:var(--accent);text-decoration:none}.ref-private-note a:hover{text-decoration:underline}.jd-modal{display:none;position:fixed;inset:0;z-index:100}.jd-modal--open{display:flex;align-items:center;justify-content:center}.jd-modal__backdrop{position:absolute;inset:0;background:#2c2c2c40;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.jd-modal__panel{position:relative;width:min(560px,90vw);max-height:85vh;overflow-y:auto;background:#ffffffe0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(212,205,196,.5);border-radius:16px;padding:1.6rem 1.8rem 1.4rem;box-shadow:0 8px 40px #0000001a;animation:modal-enter .35s cubic-bezier(.34,1.56,.64,1)}.jd-modal__close{position:absolute;top:.6rem;right:.8rem;background:none;border:none;font-size:1.4rem;color:var(--ink-faint);cursor:pointer;line-height:1;transition:color .2s}.jd-modal__close:hover{color:var(--ink)}.jd-modal__title{font-family:Cormorant Garamond,Georgia,serif;font-weight:600;font-size:1.2rem;color:var(--ink);margin-bottom:.2rem}.jd-modal__subtitle{font-size:.82rem;color:var(--ink-light);margin-bottom:1rem}.jd-drop{border:2px dashed rgba(196,184,168,.5);border-radius:12px;padding:1.4rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;margin-bottom:.8rem}.jd-drop:hover,.jd-drop--over{border-color:var(--accent);background:#6b4c2a0a}.jd-drop__label{display:flex;flex-direction:column;align-items:center;gap:.4rem;color:var(--ink-faint);font-size:.82rem}.jd-drop__label svg{color:var(--stone)}.jd-drop__browse{font-size:.72rem;color:var(--accent)}.jd-drop__file{display:flex;align-items:center;justify-content:center;gap:.5rem}.jd-drop__filename{font-size:.85rem;color:var(--ink)}.jd-drop__clear{background:none;border:none;font-size:1.1rem;color:var(--ink-faint);cursor:pointer;line-height:1}.jd-drop__clear:hover{color:var(--ink)}.jd-text{width:100%;border:1px solid rgba(196,184,168,.4);border-radius:10px;background:#faf7f280;font-family:inherit;font-size:1rem;color:var(--ink);padding:.6rem .8rem;resize:vertical;outline:none;transition:border-color .2s;margin-bottom:1rem}.jd-text:focus{border-color:var(--accent)}.jd-text::placeholder{color:var(--ink-faint)}.jd-modal__analyze{display:block;width:100%;padding:.6rem;border:1px solid var(--accent);border-radius:9999px;background:var(--accent);color:#fff;font-family:inherit;font-size:.88rem;cursor:pointer;transition:opacity .2s}.jd-modal__analyze:hover:not(:disabled){opacity:.9}.jd-modal__analyze:disabled{opacity:.45;cursor:default}.jd-loading__inner{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:1.5rem 0}.jd-spinner{animation:spin 3s linear infinite}.jd-spinner__arc{stroke-dasharray:60 200;animation:arc-draw 1.8s ease-in-out infinite}.jd-loading__text{font-size:.85rem;color:var(--ink-light)}.jd-loading__timer{font-size:.78rem;color:var(--ink-faint);font-variant-numeric:tabular-nums}.jd-results{margin-top:1.2rem}.jd-results__header{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.5rem}.jd-results__pct{font-family:Cormorant Garamond,Georgia,serif;font-size:2.4rem;font-weight:600;color:var(--ink);line-height:1}.jd-results__label{font-size:.85rem;color:var(--ink-faint)}.jd-results__summary{font-size:.85rem;color:var(--ink-light);line-height:1.55;margin-bottom:.6rem}.jd-results__error{color:#b05a4f;font-size:.85rem}.jd-results__reqs{display:flex;flex-direction:column}.jd-req-acc{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .4rem;border:none;border-bottom:1px solid rgba(212,205,196,.3);background:none;cursor:pointer;font-family:inherit;text-align:left;border-radius:6px;transition:background .2s}.jd-req-acc:hover{background:#c4b8a81f}.jd-req-acc:last-of-type{border-bottom:none}.jd-req-acc__arrow{font-size:.6rem;color:var(--ink-faint);transition:transform .2s;flex-shrink:0}.jd-req-acc--open .jd-req-acc__arrow{transform:rotate(90deg)}.jd-req-acc__name{flex:1;font-size:.82rem;color:var(--ink)}.jd-req-acc__count{font-size:.65rem;color:var(--ink-faint);white-space:nowrap}.jd-req-acc__body{padding:.3rem 0 .5rem 1rem;border-bottom:1px solid rgba(212,205,196,.3)}.jd-conf{flex-shrink:0;font-size:.62rem;font-weight:500;text-transform:uppercase;letter-spacing:.03em;padding:.1rem .45rem;border-radius:9999px}.jd-conf--strong{background:#5a7a4f22;color:#4a6a3f}.jd-conf--partial{background:#8b735522;color:#7a6345}.jd-conf--none{background:#9e989022;color:#8a8280}.jd-evidence{padding:.4rem 0 .2rem .8rem;border-left:2px solid var(--stone);margin-top:.3rem;display:flex;flex-direction:column;gap:.35rem}.jd-evidence__item{font-size:.75rem}.jd-evidence__link{color:var(--accent);text-decoration:none;font-size:.72rem;word-break:break-all}.jd-evidence__link:hover{text-decoration:underline}.jd-evidence__ctx{font-size:.7rem;color:var(--ink-light);line-height:1.45;margin-top:.1rem}.hero-strip{display:none}@media(max-width:1024px){.hero-strip{display:flex;gap:.5rem;padding:.4rem .6rem;overflow-x:auto;scroll-snap-type:x mandatory;background:#ead5b6b3;border-radius:10px;margin-bottom:.35rem;-webkit-mask-image:linear-gradient(to right,#000 85%,transparent);mask-image:linear-gradient(to right,#000 85%,transparent);transition:background .4s ease,padding .4s ease}.hero-strip::-webkit-scrollbar{display:none}.hero-strip{scrollbar-width:none}.hero-strip__tile{flex-shrink:0;width:76px;display:flex;flex-direction:column;align-items:center;gap:.15rem;scroll-snap-align:start;cursor:pointer;transition:width .4s ease}.hero-strip__ring{width:56px;height:56px;transition:width .4s ease,height .4s ease}.hero-strip__name{font-family:Cormorant Garamond,serif;font-size:.58rem;color:var(--ink-light);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:76px;max-height:1.2em;opacity:1;transition:opacity .4s ease,max-height .4s ease}.hero-faded .hero-strip{background:#f5f0eb99;padding:.25rem .5rem}.hero-faded .hero-strip__tile{width:48px}.hero-faded .hero-strip__ring{width:40px;height:40px}.hero-faded .hero-strip__name{opacity:0;max-height:0;overflow:hidden}}@media(max-width:480px){.hero-strip{gap:.6rem;padding:.25rem .5rem;background:#f5f0eb99;margin-bottom:.25rem;-webkit-mask-image:linear-gradient(to right,#000 90%,transparent);mask-image:linear-gradient(to right,#000 90%,transparent)}.hero-strip__tile{width:64px}.hero-strip__ring{width:50px;height:50px}.hero-strip__name{font-size:.58rem;max-width:64px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.site-credit{bottom:.15rem;font-size:.6rem}}.repo-sheet{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-end;opacity:0;pointer-events:none;transition:opacity .3s ease}.repo-sheet--open{opacity:1;pointer-events:auto}.repo-sheet__backdrop{position:absolute;inset:0;background:#1a141066;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.repo-sheet__panel{position:relative;width:100%;max-height:70dvh;background:var(--surface);border-radius:16px 16px 0 0;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.repo-sheet--open .repo-sheet__panel{transform:translateY(0)}.repo-sheet__handle{width:36px;height:4px;border-radius:2px;background:var(--stone);margin:.5rem auto;flex-shrink:0}.repo-sheet__header{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem}.repo-sheet__title{font-family:Cormorant Garamond,serif;font-size:1.1rem;font-weight:600;color:var(--ink)}.repo-sheet__body{flex:1;overflow-y:auto;padding:0 1rem 1rem}
