.p-toc[data-astro-cid-pukkl6o4]{position:fixed;left:clamp(1rem,6vw,10rem);top:50%;transform:translateY(-50%);width:clamp(5rem,calc(20vw - 1rem),10rem);display:none}@media(min-width:1200px){.p-toc[data-astro-cid-pukkl6o4]{display:block}}.p-toc[data-astro-cid-pukkl6o4] ul[data-astro-cid-pukkl6o4]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.125rem}.p-toc[data-astro-cid-pukkl6o4] a[data-astro-cid-pukkl6o4]{display:flex;align-items:center;gap:.5rem;padding:.3rem 0;text-decoration:none;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-muted);transition:color var(--duration-fast, .15s) ease;line-height:1.3}.p-toc[data-astro-cid-pukkl6o4] a[data-astro-cid-pukkl6o4]:hover{color:var(--color-text-secondary)}.p-toc[data-astro-cid-pukkl6o4] li[data-astro-cid-pukkl6o4].is-active a[data-astro-cid-pukkl6o4]{color:var(--color-text-primary);font-weight:var(--weight-semibold)}.p-toc-indicator[data-astro-cid-pukkl6o4]{display:block;flex-shrink:0;width:5px;height:5px;border-radius:50%;background:var(--color-text-muted);transition:background var(--duration-fast, .15s) ease,transform var(--duration-fast, .15s) ease}.p-toc[data-astro-cid-pukkl6o4] li[data-astro-cid-pukkl6o4].is-active .p-toc-indicator[data-astro-cid-pukkl6o4]{background:var(--color-text-primary);transform:scale(1.4)}.project-content img,.project-content video{height:auto}.project-page{padding-top:var(--page-padding-top);padding-bottom:var(--space-16);overflow-x:clip;padding-inline:21vw}@media(max-width:1200px){.project-page{padding-inline:15vw}}@media(max-width:640px){.project-page{padding-inline:1.5rem}}.project-content{max-width:1100px;margin-inline:auto;--_text-margin: clamp(2rem, 8vw, 10rem);padding-inline:var(--_text-margin)}.p-media,.p-media-2col,.p-media-3col{margin-inline:calc(-1 * var(--_text-margin));width:calc(100% + 2 * var(--_text-margin))}.label{display:block;border-radius:var(--);font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-3)}.tag-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.tag{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:1.4;white-space:nowrap}.caption{font-size:var(--text-small);color:var(--color-text-muted);margin-top:var(--space-2);text-align:center}.p-section-open{margin-top:var(--space-12);margin-bottom:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}.p-detail{margin-top:var(--space-24);margin-bottom:var(--space-8);display:flex;flex-direction:column;gap:var(--space-2)}.p-media{margin-top:var(--space-6);margin-bottom:var(--space-16)}.p-media img,.p-media video{width:100%;border-radius:var(--radius-md);outline:2px solid var(--color-border)}.p-media-2col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-top:var(--space-6)}.p-media-3col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-4);margin-top:var(--space-6)}.p-media-2col img,.p-media-2col video,.p-media-3col img,.p-media-3col video{width:100%;border-radius:var(--radius-md)}.p-header{padding-top:var(--space-8);padding-bottom:var(--space-8)}.p-header h1{padding-bottom:var(--space-4)}.p-meta-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:var(--space-8)}@media(max-width:640px){.p-media-2col,.p-media-3col,.p-meta-grid{grid-template-columns:1fr 1fr}}.project-content section{margin-top:var(--space-12)}.p-header a{color:var(--color-text-secondary);text-decoration:underline;text-underline-offset:3px}.p-header a:hover{color:var(--color-text-primary)}.p-divider{border:none;border-top:3px solid var(--color-border);margin:var(--space-8) 0 0}.p-wip{font-size:var(--text-sm);color:var(--color-text-muted);padding:var(--space-8) 0;margin-top:var(--space-8)}.modal-backdrop{position:fixed;inset:0;z-index:200;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--space-6);box-sizing:border-box;opacity:0;pointer-events:none;transition:opacity .2s ease}.modal-backdrop.is-open{opacity:1;pointer-events:all}.modal-panel{position:relative;background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:750px;max-height:80svh;display:flex;flex-direction:column;box-sizing:border-box;transform:translateY(12px);transition:transform .2s ease}.modal-backdrop.is-open .modal-panel{transform:translateY(0)}.modal-header{flex-shrink:0;display:flex;justify-content:flex-end;padding:var(--space-4) var(--space-4) 0}.modal-close{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);border:2px solid var(--color-nav-border);background-color:var(--color-nav-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-primary);cursor:pointer;transition:background-color var(--duration-fast) ease;line-height:1}.modal-close:hover{background-color:var(--color-nav-hover-bg)}.modal-body{flex:1;overflow-y:auto;padding:var(--space-6) var(--space-10) var(--space-10);min-height:0}@media(max-width:640px){.modal-backdrop{align-items:flex-end;padding:0}.modal-panel{width:100%;max-width:100%;max-height:75svh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none;transform:translateY(100%)}.modal-backdrop.is-open .modal-panel{transform:translateY(0)}.modal-body{padding:var(--space-4) var(--space-6) var(--space-8)}}
