.site-header[data-v-a095ec27]{position:sticky;top:0;z-index:50;background:#fefefed9;backdrop-filter:saturate(140%) blur(8.5px);-webkit-backdrop-filter:saturate(140%) blur(8.5px);border-bottom:1px solid var(--line-soft)}.header-shell[data-v-a095ec27]{width:100%;padding-right:32px;padding-left:32px;height:var(--header-height);display:flex;align-items:center;justify-content:space-between;gap:1.275rem}.brand[data-v-a095ec27]{display:inline-block;transform-origin:left center;font-size:.935rem;font-weight:600;letter-spacing:-.01em;color:var(--text-primary);transition:color .18s ease,transform .18s ease}.brand[data-v-a095ec27]:hover,.brand[data-v-a095ec27]:focus-visible{color:var(--accent);transform:scale(1.045)}.nav-link[data-v-a095ec27]:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.5px;background:currentColor;border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .22s ease}.nav-link[data-v-a095ec27]:hover:after,.nav-link[data-v-a095ec27]:focus-visible:after,.nav-link.is-active[data-v-a095ec27]:after{transform:scaleX(1)}.nav[data-v-a095ec27]{display:flex;align-items:center;gap:1.7rem}.nav-link[data-v-a095ec27]{position:relative;font-size:.8075rem;font-weight:500;color:var(--text-secondary);padding:.2975rem 0;transition:color .16s ease}.nav-link[data-v-a095ec27]:hover,.nav-link[data-v-a095ec27]:focus-visible{color:var(--text-primary)}.nav-link.is-active[data-v-a095ec27]{color:var(--accent)}.nav-link.is-active[data-v-a095ec27]:after{background:var(--accent)}.icon-group[data-v-a095ec27]{display:flex;align-items:center;gap:1.0625rem;margin-left:.425rem;padding-left:1.9125rem;border-left:1px solid #000}.icon-link[data-v-a095ec27]{display:inline-flex;align-items:center;justify-content:center;width:1.36rem;height:1.36rem;opacity:.78;transition:opacity .16s ease,transform .16s ease}.icon-link[data-v-a095ec27]:hover,.icon-link[data-v-a095ec27]:focus-visible{opacity:1;transform:translateY(-1px)}.icon[data-v-a095ec27]{width:100%;height:100%;object-fit:contain}.location[data-v-a095ec27]{display:inline-flex;align-items:center;gap:.34rem;font-size:.8075rem;font-weight:500;color:var(--text-secondary);white-space:nowrap;padding-left:2.805rem}.location-icon[data-v-a095ec27]{width:.935rem;height:.935rem;opacity:.78}@media(max-width:640px){.header-shell[data-v-a095ec27]{width:100%;padding-right:32px;padding-left:32px;height:var(--header-height);gap:.85rem}.nav[data-v-a095ec27]{gap:.935rem}.nav-link[data-v-a095ec27]{font-size:.748rem}.brand[data-v-a095ec27]{font-size:.85rem}.icon-group[data-v-a095ec27]{gap:.7225rem;padding-left:.7225rem;margin-left:.2125rem}.icon-link[data-v-a095ec27]{width:1.1475rem;height:1.1475rem}}.home-page[data-v-f39f2ed8]{height:calc(100dvh - var(--header-height));display:flex;align-items:center;overflow:hidden}.section-shell[data-v-f39f2ed8]{width:min(1120px,calc(100% - 3rem));margin:0 auto}.hero-shell[data-v-f39f2ed8]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:3.5rem}.hero-image-wrap[data-v-f39f2ed8]{display:flex;justify-content:center}.hero-sketch[data-v-f39f2ed8]{width:100%;max-width:480px;height:auto}.hero-copy[data-v-f39f2ed8]{max-width:36rem}.hero-copy h1[data-v-f39f2ed8]{font-size:clamp(2.8rem,6.4vw,5.4rem);line-height:.98;letter-spacing:-.04em;margin-bottom:.6rem;text-wrap:balance}.hero-role[data-v-f39f2ed8]{font-size:clamp(1.1rem,1.6vw,1.35rem);font-weight:700;color:var(--text-primary);margin-bottom:1.4rem}.hero-bio[data-v-f39f2ed8]{max-width:38ch;font-size:1.02rem;line-height:1.75;color:var(--text-secondary);text-wrap:pretty}.text-highlight[data-v-f39f2ed8]{color:var(--accent)}.projects-link[data-v-f39f2ed8]{position:relative;display:inline-block;color:var(--accent);font-weight:700;text-decoration:none}.projects-link[data-v-f39f2ed8]:after{content:"";position:absolute;right:0;bottom:.12em;left:0;height:2px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .18s ease}.projects-link[data-v-f39f2ed8]:hover:after,.projects-link[data-v-f39f2ed8]:focus-visible:after{transform:scaleX(1);transform-origin:left}.projects-link[data-v-f39f2ed8]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@media(prefers-reduced-motion:reduce){.projects-link[data-v-f39f2ed8]:after{transition:none}}@media(max-width:760px){.home-page[data-v-f39f2ed8]{height:calc(100dvh - var(--header-height))}.hero-shell[data-v-f39f2ed8]{grid-template-columns:minmax(0,1fr);gap:1.5rem}.hero-sketch[data-v-f39f2ed8]{max-width:260px}}.about-page[data-v-6be6cb10]{height:calc(100dvh - var(--header-height));display:flex;overflow:hidden}.section-shell[data-v-6be6cb10]{width:min(1120px,calc(100% - 3rem));margin:0 auto}.about-shell[data-v-6be6cb10]{display:flex;flex-direction:column;height:100%;padding-top:3.5rem;padding-bottom:7.5rem}.about-top[data-v-6be6cb10]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:4rem;padding-bottom:20px}.contribution[data-v-6be6cb10]{margin-top:auto}.contribution-title[data-v-6be6cb10]{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:1rem}.contribution-count[data-v-6be6cb10]{margin-left:.6rem;font-size:.95rem;font-weight:500;color:var(--text-secondary)}.contribution-graph[data-v-6be6cb10]{width:100%;height:auto;display:block}h1[data-v-6be6cb10]{font-size:80px;line-height:.98;letter-spacing:-.04em;margin-bottom:1.6rem;padding-top:.6rem}.about-lead[data-v-6be6cb10]{max-width:40ch;font-size:1.02rem;line-height:1.75;color:var(--text-secondary);text-wrap:pretty}.about-lead+.about-lead[data-v-6be6cb10]{margin-top:1.1rem}.about-detail[data-v-6be6cb10]{max-width:46ch}.about-detail p[data-v-6be6cb10]{font-size:1.02rem;line-height:1.75;color:var(--text-secondary);text-wrap:pretty}.about-detail p+p[data-v-6be6cb10]{margin-top:1.1rem}.working-list[data-v-6be6cb10]{margin-top:1.1rem;font-size:1.02rem;line-height:1.75;color:var(--text-secondary)}.text-highlight[data-v-6be6cb10]{color:var(--accent)}.working-item[data-v-6be6cb10]{display:flex;align-items:center;gap:.48rem}.working-icon[data-v-6be6cb10]{width:.78rem;height:.78rem;object-fit:contain;flex:0 0 auto}.about-bold[data-v-6be6cb10]{font-weight:700;color:var(--text-primary)}.about-link[data-v-6be6cb10]{position:relative;display:inline-block;color:var(--accent);font-weight:700;text-decoration:none}.about-link[data-v-6be6cb10]:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.5px;background:currentColor;border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .22s ease}.about-link[data-v-6be6cb10]:hover:after,.about-link[data-v-6be6cb10]:focus-visible:after{transform:scaleX(1)}@media(max-width:760px){.about-page[data-v-6be6cb10]{height:calc(100dvh - var(--header-height))}.about-shell[data-v-6be6cb10]{padding-top:1.5rem;padding-bottom:1.5rem}.about-top[data-v-6be6cb10]{grid-template-columns:minmax(0,1fr);gap:1.5rem}h1[data-v-6be6cb10]{margin-bottom:1rem}}.project-card[data-v-2c32a97b]{position:relative;width:100%;max-width:650px;aspect-ratio:13 / 8;overflow:hidden;border-radius:.45rem;background:var(--bg-warm);box-shadow:0 22px 54px #492b1721;isolation:isolate}.project-image[data-v-2c32a97b]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .32s ease,filter .32s ease}.image-shade[data-v-2c32a97b]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,#100c090f 18%,#100c09d1),linear-gradient(90deg,#100c093d,#100c090a 48%);transition:background .32s ease}.project-copy[data-v-2c32a97b]{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:.42rem;padding:1.55rem 1.6rem 1.45rem;color:#fff;transform:translateY(calc(3.05rem - 5px));transition:transform .28s ease}.project-copy h2[data-v-2c32a97b]{max-width:16ch;font-size:clamp(1.65rem,2.25vw,2.25rem);font-weight:550;line-height:.98;letter-spacing:-.035em;text-wrap:balance}.project-copy p[data-v-2c32a97b]{max-width:39ch;font-size:1rem;font-weight:400;line-height:1.45;color:#ffffffe6;text-shadow:0 1px 18px rgba(0,0,0,.32)}.project-actions[data-v-2c32a97b]{display:flex;align-items:center;justify-content:space-between;gap:.65rem;width:100%;padding-top:.3rem;opacity:0;transform:translateY(.8rem);transition:opacity .24s ease,transform .24s ease}.project-button[data-v-2c32a97b]{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:1.35rem;padding:0;border:0;border-radius:0;background:transparent;color:#fff;font-size:.88rem;font-weight:400;line-height:1;transition:color .18s ease,opacity .18s ease,transform .18s ease}.project-button[data-v-2c32a97b]:after{content:"";position:absolute;left:0;right:0;bottom:-.32rem;height:1.5px;background:currentColor;border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .22s ease}.project-button[data-v-2c32a97b]:hover,.project-button[data-v-2c32a97b]:focus-visible{transform:translateY(-1px);color:var(--accent)}.project-button[data-v-2c32a97b]:hover:after,.project-button[data-v-2c32a97b]:focus-visible:after{transform:scaleX(1)}.project-button-primary[data-v-2c32a97b]{color:#fff}.project-button-primary[data-v-2c32a97b]:hover,.project-button-primary[data-v-2c32a97b]:focus-visible{color:var(--accent)}.project-card:hover .project-image[data-v-2c32a97b],.project-card:focus-within .project-image[data-v-2c32a97b]{transform:scale(1.045);filter:saturate(1.06) contrast(1.04)}.project-card:hover .image-shade[data-v-2c32a97b],.project-card:focus-within .image-shade[data-v-2c32a97b]{background:linear-gradient(180deg,#100c0914 6%,#100c09e6),linear-gradient(90deg,#100c0952,#100c0914 48%)}.project-card:hover .project-copy[data-v-2c32a97b],.project-card:focus-within .project-copy[data-v-2c32a97b]{transform:translateY(0)}.project-card:hover .project-actions[data-v-2c32a97b],.project-card:focus-within .project-actions[data-v-2c32a97b]{opacity:1;transform:translateY(0)}@media(max-width:720px){.project-copy[data-v-2c32a97b]{padding:1.15rem;transform:translateY(calc(2.85rem - 5px))}.project-copy h2[data-v-2c32a97b]{font-size:clamp(1.35rem,8vw,1.9rem)}.project-copy p[data-v-2c32a97b]{font-size:.92rem}.project-button[data-v-2c32a97b]{min-height:2.2rem}}.project-page[data-v-bffc9d55]{height:calc(100dvh - var(--header-height));overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.project-page[data-v-bffc9d55]::-webkit-scrollbar{width:.65rem}.project-page[data-v-bffc9d55]::-webkit-scrollbar-track{background:transparent}.project-page[data-v-bffc9d55]::-webkit-scrollbar-thumb{background:#b8633a38;border-radius:999px}.section-shell[data-v-bffc9d55]{width:min(1320px,calc(100% - 3rem));margin:0 auto;padding:2.5rem 0 6rem}.project-heading[data-v-bffc9d55]{display:flex;align-items:baseline;width:100%;max-width:1320px;margin-right:auto;margin-left:auto;margin-bottom:2.15rem}.project-header[data-v-bffc9d55]{font-size:60px}h1[data-v-bffc9d55]{font-size:clamp(3.8rem,9vw,8.5rem);line-height:.9;letter-spacing:-.045em}.all-projects-link[data-v-bffc9d55]{position:relative;display:inline-flex;align-items:center;gap:.45rem;flex:0 0 auto;margin-left:auto;margin-right:20px;color:var(--text-secondary);font-size:clamp(.9rem,1.2vw,1rem);font-weight:700;line-height:1;transform:translateY(-.32rem);transition:color .18s ease,transform .18s ease}.all-projects-link[data-v-bffc9d55]:after{content:"";position:absolute;left:0;right:0;bottom:-.32rem;height:1.5px;background:currentColor;border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .22s ease}.all-projects-link[data-v-bffc9d55]:hover,.all-projects-link[data-v-bffc9d55]:focus-visible{color:var(--accent);transform:translateY(-.32rem) translate(2px)}.all-projects-link[data-v-bffc9d55]:hover:after,.all-projects-link[data-v-bffc9d55]:focus-visible:after{transform:scaleX(1)}.next-icon[data-v-bffc9d55]{width:.86rem;height:.86rem;object-fit:contain;transition:transform .18s ease}.all-projects-link:hover .next-icon[data-v-bffc9d55],.all-projects-link:focus-visible .next-icon[data-v-bffc9d55]{transform:translate(2px)}.project-grid[data-v-bffc9d55]{display:grid;grid-template-columns:repeat(2,minmax(0,650px));justify-content:center;gap:20px}@media(max-width:1120px){.project-heading[data-v-bffc9d55]{max-width:650px}.project-grid[data-v-bffc9d55]{grid-template-columns:minmax(0,650px)}}@media(max-width:760px){.project-page[data-v-bffc9d55]{height:calc(100dvh - var(--header-height))}.section-shell[data-v-bffc9d55]{width:min(100% - 1.5rem,650px);padding:3rem 0 4rem}.project-heading[data-v-bffc9d55]{align-items:flex-start;flex-direction:column;gap:.9rem}.all-projects-link[data-v-bffc9d55],.all-projects-link[data-v-bffc9d55]:hover,.all-projects-link[data-v-bffc9d55]:focus-visible{margin-right:0;transform:none}}.project-page[data-v-c96d32d7]{height:calc(100dvh - var(--header-height));overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.section-shell[data-v-c96d32d7]{width:min(1320px,calc(100% - 3rem));margin:0 auto;padding:3.5rem 0 6rem}.project-heading[data-v-c96d32d7]{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2.15rem}.eyebrow[data-v-c96d32d7]{margin-bottom:.7rem;color:var(--text-secondary);font-size:.78rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase}h1[data-v-c96d32d7]{font-size:clamp(3.8rem,8vw,7.5rem);line-height:.86;letter-spacing:-.055em;text-wrap:balance}.project-header[data-v-c96d32d7]{font-size:60px}.back-link[data-v-c96d32d7]{position:relative;flex:0 0 auto;margin-right:1.25rem;color:var(--text-secondary);font-size:.95rem;font-weight:700;transition:color .18s ease}.back-link[data-v-c96d32d7]:after{content:"";position:absolute;right:0;bottom:-.32rem;left:0;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .22s ease}.back-link[data-v-c96d32d7]:hover,.back-link[data-v-c96d32d7]:focus-visible{color:var(--accent)}.back-link[data-v-c96d32d7]:hover:after,.back-link[data-v-c96d32d7]:focus-visible:after{transform:scaleX(1)}.project-grid[data-v-c96d32d7]{display:grid;grid-template-columns:repeat(2,minmax(0,650px));justify-content:center;gap:20px}.more-projects[data-v-c96d32d7]{padding-top:5rem}.section-heading[data-v-c96d32d7]{margin-bottom:1.6rem}.section-heading h2[data-v-c96d32d7]{font-size:60px;line-height:.95;letter-spacing:-.045em}@media(max-width:1120px){.project-grid[data-v-c96d32d7]{grid-template-columns:minmax(0,650px)}}@media(max-width:760px){.project-page[data-v-c96d32d7]{height:calc(100dvh - var(--header-height))}.section-shell[data-v-c96d32d7]{width:min(100% - 1.5rem,650px);padding:3rem 0 4rem}.project-heading[data-v-c96d32d7]{align-items:flex-start;flex-direction:column;gap:1.25rem}.back-link[data-v-c96d32d7]{margin-right:0}}.project-detail-page[data-v-d76a8c01]{height:calc(100dvh - var(--header-height));overflow-x:hidden;overflow-y:auto;background:#efefed;scroll-behavior:smooth}.project-detail-page[data-v-d76a8c01]::-webkit-scrollbar{width:.65rem}.project-detail-page[data-v-d76a8c01]::-webkit-scrollbar-track{background:transparent}.project-detail-page[data-v-d76a8c01]::-webkit-scrollbar-thumb{border-radius:999px;background:#b8633a3d}.project-hero[data-v-d76a8c01]{width:100%;height:clamp(27rem,62vh,43rem);overflow:hidden;background:var(--bg-warm)}.project-hero-image[data-v-d76a8c01]{width:100%;height:100%;object-fit:cover;object-position:top center}.project-story[data-v-d76a8c01]{position:relative;z-index:1;width:min(66.666vw,80rem);min-height:22rem;margin:-6.5rem auto 0;padding:clamp(2rem,4vw,4rem) clamp(1.5rem,5vw,5rem) 7rem;background:var(--bg);box-shadow:0 24px 70px #281d151a}.story-content[data-v-d76a8c01]{width:100%}.story-header[data-v-d76a8c01],.story-body[data-v-d76a8c01]{width:min(100%,75ch)}.story-header h1[data-v-d76a8c01]{font-size:clamp(1.25rem,1.8vw,1.5rem);font-weight:750;line-height:1.2;letter-spacing:-.025em;text-wrap:balance}.story-actions[data-v-d76a8c01]{display:flex;flex-wrap:wrap;align-items:center;margin-top:.85rem;padding-bottom:.9rem;border-bottom:1px solid var(--line-soft)}.story-action[data-v-d76a8c01]{position:relative;display:inline-flex;align-items:center;min-height:1.35rem;color:var(--text-secondary);font-size:.82rem;font-weight:650;line-height:1;transition:color .18s ease,transform .18s ease}.story-action[data-v-d76a8c01]:not(.github-link):after{content:"";position:absolute;right:0;bottom:-.32rem;left:0;height:1.5px;border-radius:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .22s ease}.story-action+.story-action[data-v-d76a8c01],.site-link-with-notice+.story-action[data-v-d76a8c01]{margin-left:.85rem;padding-left:.85rem;border-left:1px solid #000}.story-actions .back-link[data-v-d76a8c01]{margin-left:auto;padding-left:0;border-left:0}.story-action[data-v-d76a8c01]:hover,.story-action[data-v-d76a8c01]:focus-visible{color:var(--accent);transform:translateY(-1px)}.story-action[data-v-d76a8c01]:not(.github-link):hover:after,.story-action[data-v-d76a8c01]:not(.github-link):focus-visible:after{transform:scaleX(1)}.github-link[data-v-d76a8c01]{justify-content:center;opacity:.78}.github-notice-trigger[data-v-d76a8c01]{padding-top:0;padding-right:0;padding-bottom:0;border:0;background:transparent;cursor:pointer}.site-link-with-notice[data-v-d76a8c01]{position:relative;display:inline-flex;align-items:center}.site-notice-tooltip[data-v-d76a8c01]{position:absolute;top:calc(100% + .85rem);left:0;z-index:10;width:min(20rem,calc(100vw - 3rem));padding:.85rem 1rem;border:1px solid var(--line-soft);border-radius:.4rem;background:var(--bg);box-shadow:0 14px 36px #281d1529;color:var(--text-secondary);font-size:.8rem;font-weight:500;line-height:1.5;opacity:0;pointer-events:none;transform:translateY(-.35rem);transition:opacity .16s ease,transform .16s ease}.site-notice-tooltip[data-v-d76a8c01]:before{content:"";position:absolute;bottom:100%;left:1.25rem;border:.4rem solid transparent;border-bottom-color:var(--bg)}.site-notice-tooltip strong[data-v-d76a8c01]{display:block;margin-bottom:.3rem;color:var(--text-primary);font-size:.82rem}.site-link-with-notice:hover .site-notice-tooltip[data-v-d76a8c01],.site-link-with-notice:focus-within .site-notice-tooltip[data-v-d76a8c01]{opacity:1;transform:translateY(0)}.github-link[data-v-d76a8c01]:hover,.github-link[data-v-d76a8c01]:focus-visible{opacity:1;transform:translateY(-1px)}.github-icon[data-v-d76a8c01]{width:1.15rem;height:1.15rem;object-fit:contain}.github-modal-backdrop[data-v-d76a8c01]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:1.5rem;background:#11100f7a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.github-modal[data-v-d76a8c01]{width:min(100%,44rem);padding:clamp(1.5rem,4vw,2.25rem);border:1px solid var(--line-soft);border-radius:.5rem;background:var(--bg);box-shadow:0 28px 80px #281d153d}.github-modal-heading[data-v-d76a8c01]{display:flex;align-items:center;gap:.55rem;margin-bottom:1rem;color:var(--accent)}.github-modal-heading p[data-v-d76a8c01]{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.github-modal-icon[data-v-d76a8c01]{width:1.15rem;height:1.15rem;object-fit:contain}.github-modal h2[data-v-d76a8c01]{font-size:clamp(1.35rem,3vw,1.8rem);line-height:1.15;letter-spacing:-.03em}.github-modal>p[data-v-d76a8c01]{margin-top:1rem;padding:.9rem 1rem;border-radius:.4rem;background:var(--bg-warm);color:var(--text-secondary);font-size:.95rem;line-height:1.65}.github-modal-close[data-v-d76a8c01]{position:relative;margin-top:1.4rem;padding:0 0 .3rem;border:0;background:transparent;color:var(--text-secondary);font:inherit;font-size:.85rem;font-weight:700;cursor:pointer;transition:color .18s ease,transform .18s ease}.github-modal-close[data-v-d76a8c01]:after{content:"";position:absolute;right:0;bottom:0;left:0;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .22s ease}.github-modal-close[data-v-d76a8c01]:hover,.github-modal-close[data-v-d76a8c01]:focus-visible{color:var(--accent);transform:translateY(-1px)}.github-modal-close[data-v-d76a8c01]:hover:after,.github-modal-close[data-v-d76a8c01]:focus-visible:after{transform:scaleX(1)}.modal-enter-active[data-v-d76a8c01],.modal-leave-active[data-v-d76a8c01]{transition:opacity .18s ease}.modal-enter-active .github-modal[data-v-d76a8c01],.modal-leave-active .github-modal[data-v-d76a8c01]{transition:opacity .18s ease,transform .18s ease}.modal-enter-from[data-v-d76a8c01],.modal-leave-to[data-v-d76a8c01],.modal-enter-from .github-modal[data-v-d76a8c01],.modal-leave-to .github-modal[data-v-d76a8c01]{opacity:0}.modal-enter-from .github-modal[data-v-d76a8c01],.modal-leave-to .github-modal[data-v-d76a8c01]{transform:translateY(.75rem) scale(.985)}.story-body[data-v-d76a8c01]{position:relative;padding-top:2rem;padding-left:3.25rem}.story-body[data-v-d76a8c01]:before{content:"";position:absolute;top:2rem;bottom:0;left:.45rem;width:1px;background:var(--line-soft)}.story-section+.story-section[data-v-d76a8c01]{margin-top:3.5rem}.story-section h2[data-v-d76a8c01]{position:relative;margin-bottom:1.15rem;font-size:clamp(1.05rem,1.35vw,1.2rem);line-height:1.2;letter-spacing:-.02em;text-wrap:balance}.story-section h2[data-v-d76a8c01]:before{content:"";position:absolute;top:.35em;left:-3.075rem;width:.55rem;height:.55rem;border:2px solid var(--bg);border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px var(--accent)}.story-section h2[data-v-d76a8c01]:after{content:"";position:absolute;top:calc(.35em + .275rem);left:-2.8rem;width:2.15rem;height:1px;background:var(--line-sfot)}.story-section p[data-v-d76a8c01]{color:var(--text-secondary);font-size:.95rem;line-height:1.7;text-wrap:pretty}.story-section p+p[data-v-d76a8c01]{margin-top:1.25rem}.story-section .project-disclaimer[data-v-d76a8c01]{padding:.8rem 1rem;border-radius:.4rem;background:var(--bg-warm)}.project-inline-link[data-v-d76a8c01]{position:relative;display:inline-block;color:var(--accent);font-weight:700;text-decoration:none}.project-inline-link[data-v-d76a8c01]:after{content:"";position:absolute;right:0;bottom:.12em;left:0;height:1.5px;border-radius:2px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .18s ease}.project-inline-link[data-v-d76a8c01]:hover:after,.project-inline-link[data-v-d76a8c01]:focus-visible:after{transform:scaleX(1);transform-origin:left}.project-inline-link[data-v-d76a8c01]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(prefers-reduced-motion:reduce){.project-inline-link[data-v-d76a8c01]:after,.site-notice-tooltip[data-v-d76a8c01],.github-modal-backdrop[data-v-d76a8c01],.github-modal[data-v-d76a8c01]{transition:none}}@media(max-width:900px){.project-story[data-v-d76a8c01]{width:min(100% - 3rem,48rem);margin-top:-4rem}}@media(max-width:640px){.project-detail-page[data-v-d76a8c01]{height:calc(100dvh - var(--header-height))}.project-hero[data-v-d76a8c01]{height:clamp(20rem,58vh,30rem)}.project-story[data-v-d76a8c01]{width:calc(100% - 1.5rem);margin-top:-2.5rem;padding:1.75rem 1.25rem 5rem}.story-header h1[data-v-d76a8c01]{font-size:1.25rem}.story-body[data-v-d76a8c01]{padding-left:2.25rem}.story-body[data-v-d76a8c01]:before{left:.3rem}.story-section h2[data-v-d76a8c01]:before{left:-2.225rem}.story-section h2[data-v-d76a8c01]:after{left:-1.95rem;width:1.3rem}}:root{--bg: #fefefe;--bg-warm: #f3ede2;--surface: rgba(255, 255, 253, .9);--surface-raised: rgba(255, 255, 253, .94);--accent: #b8633a;--text-primary: #11100f;--text-secondary: #494541;--line-soft: rgba(184, 99, 58, .16);--line-strong: rgba(184, 99, 58, .34);--header-height: 3.825rem;--radius-lg: 24px;--shadow-soft: 0 18px 40px rgba(73, 43, 23, .06);--shadow-lifted: 0 20px 52px rgba(73, 43, 23, .1)}@media(max-width:640px){:root{--header-height: 3.4rem}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}html{font-family:Red Hat Display,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text-primary);background:var(--bg)}body{background:var(--bg)}body,button,input,textarea{font-family:inherit}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{color:inherit}#app{height:100vh;display:flex;flex-direction:column}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
