.page-proj.svelte-1jhb3hw{padding:110px 0 120px}.breadcrumb.svelte-1jhb3hw{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.06em;margin-bottom:42px}.breadcrumb.svelte-1jhb3hw a:where(.svelte-1jhb3hw){color:var(--accent);transition:opacity .2s}.breadcrumb.svelte-1jhb3hw a:where(.svelte-1jhb3hw):hover{opacity:.7}.bc-sep.svelte-1jhb3hw{opacity:.35}.proj-hero.svelte-1jhb3hw{margin-bottom:0;padding-bottom:64px;border-bottom:1px solid var(--line)}.proj-title.svelte-1jhb3hw{font-family:var(--display);font-weight:900;font-size:clamp(44px,7vw,96px);letter-spacing:-.035em;line-height:.95;margin:18px 0 0;color:var(--ink)}.proj-lede.svelte-1jhb3hw{font-family:var(--serif);font-style:italic;font-size:clamp(17px,2vw,22px);color:var(--ink-dim);margin:22px 0 0;max-width:640px;line-height:1.55}.proj-hero-row.svelte-1jhb3hw{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin-top:28px}.proj-section.svelte-1jhb3hw{padding:80px 0;border-bottom:1px solid var(--line)}.overview-grid.svelte-1jhb3hw{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.ov-card.svelte-1jhb3hw{border:1px solid var(--line);border-radius:16px;padding:28px 24px;background:var(--card);transition:border-color .3s,transform .3s}.ov-card.svelte-1jhb3hw:hover{border-color:var(--line-strong);transform:translateY(-4px)}.ov-label.svelte-1jhb3hw{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--accent);text-transform:uppercase;margin-bottom:14px}.ov-card.svelte-1jhb3hw p:where(.svelte-1jhb3hw){color:var(--ink-dim);font-size:15.5px;margin:0;line-height:1.65}.gallery-grid.svelte-1jhb3hw{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.gallery-ph.svelte-1jhb3hw{position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden;aspect-ratio:16 / 9;background:var(--surface);transition:border-color .3s,transform .3s}.gallery-ph.span-full.svelte-1jhb3hw{grid-column:span 2;max-width:60%;margin-inline:auto;width:100%}.gallery-ph.svelte-1jhb3hw:hover{border-color:var(--line-strong);transform:translateY(-3px)}.gph-grid.svelte-1jhb3hw{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:40px 40px;opacity:.55;-webkit-mask-image:radial-gradient(ellipse at center,#000 10%,transparent 72%);mask-image:radial-gradient(ellipse at center,#000 10%,transparent 72%)}.gph-content.svelte-1jhb3hw{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px}.gph-icon.svelte-1jhb3hw{width:30px;height:30px;color:var(--muted);opacity:.45}.gph-label.svelte-1jhb3hw{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}.arch-diagram.svelte-1jhb3hw{display:flex;align-items:center;flex-wrap:nowrap;gap:0;padding:36px 32px;border:1px solid var(--line);border-radius:16px;background:var(--card);overflow-x:auto}.arch-node.svelte-1jhb3hw{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 22px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);min-width:120px;text-align:center;flex-shrink:0;transition:border-color .25s,box-shadow .25s,transform .25s}.arch-node.svelte-1jhb3hw:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 8px 24px -10px #4da3ff66;transform:translateY(-2px)}.an-index.svelte-1jhb3hw{font-family:var(--mono);font-size:10px;color:var(--accent);letter-spacing:.1em}.an-label.svelte-1jhb3hw{font-family:var(--mono);font-size:13px;color:var(--ink-dim)}.arch-connector.svelte-1jhb3hw{display:flex;align-items:center;flex:1;min-width:28px;max-width:72px;flex-shrink:0}.ac-line.svelte-1jhb3hw{flex:1;height:2px;background:linear-gradient(90deg,var(--line-strong),var(--accent));opacity:.55}.ac-arrow.svelte-1jhb3hw{width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:8px solid var(--accent);opacity:.55}.proj-rail.svelte-1jhb3hw{position:fixed;left:26px;top:50%;transform:translateY(-50%);z-index:30;display:flex;flex-direction:column;align-items:center;gap:0}.p-edge.svelte-1jhb3hw{width:2px;height:42px;background:var(--line)}.p-node.svelte-1jhb3hw{position:relative;width:12px;height:12px;border-radius:50%;border:2px solid var(--line-strong);background:var(--bg-2);cursor:pointer;transition:transform .25s,border-color .25s,box-shadow .25s,background .25s;display:block}.p-node.svelte-1jhb3hw:before{content:attr(data-label);position:absolute;left:22px;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--muted);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}.p-node.svelte-1jhb3hw:hover:before{opacity:1}.p-node.active.svelte-1jhb3hw{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent),0 0 14px var(--accent);transform:scale(1.2)}.p-node.active.svelte-1jhb3hw:before{opacity:1;color:var(--accent)}.proj-footer.svelte-1jhb3hw{padding:48px 0 0}.not-found.svelte-1jhb3hw{padding:160px 0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.nf-code.svelte-1jhb3hw{font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--accent);text-transform:uppercase;margin-bottom:8px}.not-found.svelte-1jhb3hw h2:where(.svelte-1jhb3hw){font-family:var(--display);font-weight:800;font-size:36px;margin:0 0 16px;color:var(--ink)}@media (max-width: 1080px){.proj-rail.svelte-1jhb3hw{display:none}.overview-grid.svelte-1jhb3hw{grid-template-columns:1fr}}@media (max-width: 680px){.gallery-grid.svelte-1jhb3hw{grid-template-columns:1fr}.gallery-ph.span-full.svelte-1jhb3hw{grid-column:span 1;max-width:100%}.arch-diagram.svelte-1jhb3hw{flex-direction:column;align-items:stretch;overflow-x:visible}.arch-connector.svelte-1jhb3hw{flex-direction:column;min-width:0;max-width:none;min-height:28px;justify-content:center;align-items:center}.ac-line.svelte-1jhb3hw{width:2px;height:28px;flex:none;background:linear-gradient(180deg,var(--line-strong),var(--accent))}.ac-arrow.svelte-1jhb3hw{border-left:5px solid transparent;border-right:5px solid transparent;border-top:8px solid var(--accent);border-bottom:none;border-left-color:transparent}.proj-hero-row.svelte-1jhb3hw{flex-direction:column;align-items:flex-start}}
