.detail-carousel[data-astro-cid-i674rtf6]{display:block;min-width:0}.media-viewport[data-astro-cid-i674rtf6]{position:relative;width:100%;aspect-ratio:16 / 9;max-height:560px;overflow:auto;background:var(--foreground);scroll-snap-type:x mandatory}.media-track[data-astro-cid-i674rtf6]{display:flex;width:100%;height:100%}.media-slide[data-astro-cid-i674rtf6]{position:relative;flex:0 0 100%;min-width:0;height:100%;overflow:hidden;scroll-snap-align:start}.media-slide[data-astro-cid-i674rtf6] img[data-astro-cid-i674rtf6]{position:absolute;display:block;width:100%;height:100%;inset:0;image-rendering:auto;user-select:none;pointer-events:none}.media-backdrop[data-astro-cid-i674rtf6]{object-fit:cover;filter:blur(28px) brightness(.65);transform:scale(1.12)}.media-image[data-astro-cid-i674rtf6]{object-fit:contain}.is-ready[data-astro-cid-i674rtf6] .media-viewport[data-astro-cid-i674rtf6]{overflow:hidden;scroll-snap-type:none;touch-action:pan-y pinch-zoom}.is-ready[data-astro-cid-i674rtf6]:not(.is-single) .media-viewport[data-astro-cid-i674rtf6]{cursor:grab}.is-dragging[data-astro-cid-i674rtf6] .media-viewport[data-astro-cid-i674rtf6]{cursor:grabbing!important}.is-sliding[data-astro-cid-i674rtf6] .media-track[data-astro-cid-i674rtf6]{transition:transform .68s cubic-bezier(.22,.7,.25,1)}.is-ready[data-astro-cid-i674rtf6].is-single .media-image[data-astro-cid-i674rtf6]{width:97%;left:1.5%;animation:media-drift 9s ease-in-out infinite alternate;animation-play-state:paused}.is-playing[data-astro-cid-i674rtf6].is-single .media-image[data-astro-cid-i674rtf6]{animation-play-state:running}@keyframes media-drift{0%{transform:translate(-1.5%)}to{transform:translate(1.5%)}}.media-controls[data-astro-cid-i674rtf6]{display:flex;align-items:center;gap:8px;min-height:56px;padding-top:6px;border-bottom:1px solid var(--border-soft)}.media-count[data-astro-cid-i674rtf6]{font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--red)}.media-total[data-astro-cid-i674rtf6]{color:var(--gray-600)}.media-dots[data-astro-cid-i674rtf6]{display:flex;min-width:0;max-width:40%;overflow:auto;margin-left:12px}.media-dot[data-astro-cid-i674rtf6]{display:grid;place-items:center;flex:0 0 32px;width:32px;height:44px;padding:0;border:0;background:none;cursor:pointer}.media-dot[data-astro-cid-i674rtf6] span[data-astro-cid-i674rtf6]{width:6px;height:6px;background:var(--border-soft);transition:width .2s ease,background .2s ease}.media-dot[data-astro-cid-i674rtf6][aria-pressed=true] span[data-astro-cid-i674rtf6]{width:24px;background:var(--red)}.media-dot[data-astro-cid-i674rtf6]:hover span[data-astro-cid-i674rtf6]{background:var(--foreground)}.media-original[data-astro-cid-i674rtf6]{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-left:auto;padding:0 4px;font-size:13px;color:var(--gray-600);text-decoration:none;white-space:nowrap}.media-original[data-astro-cid-i674rtf6]:hover{color:var(--red)}.media-arrows[data-astro-cid-i674rtf6]{display:flex;gap:4px}.media-button[data-astro-cid-i674rtf6]{display:grid;place-items:center;width:44px;height:44px;padding:0;background:transparent;border:0;color:var(--foreground);font-size:22px;cursor:pointer;transition:color .16s ease,background .16s ease}.media-button[data-astro-cid-i674rtf6]:hover{background:var(--foreground);color:var(--panel)}.media-button[data-astro-cid-i674rtf6] svg[data-astro-cid-i674rtf6]{width:18px;height:18px}.media-play-icon[data-astro-cid-i674rtf6],.is-paused[data-astro-cid-i674rtf6] .media-pause-icon[data-astro-cid-i674rtf6]{display:none}.is-paused[data-astro-cid-i674rtf6] .media-play-icon[data-astro-cid-i674rtf6]{display:block}.detail-carousel[data-astro-cid-i674rtf6] [data-astro-cid-i674rtf6]:is(button,a,.media-viewport):focus-visible{outline:2px solid var(--accent-deep);outline-offset:-3px}.detail-carousel[data-astro-cid-i674rtf6]:not(.is-ready) .media-enhanced[data-astro-cid-i674rtf6]{display:none}.media-error[data-astro-cid-i674rtf6]{position:absolute;inset:0;margin:0;display:grid;place-items:center;padding:20px;color:#fafafa;background:#1c1c1c;font-size:15px}.media-error[data-astro-cid-i674rtf6][hidden]{display:none}.media-announcement[data-astro-cid-i674rtf6]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@container (max-width: 560px){.media-controls[data-astro-cid-i674rtf6]{gap:4px}.media-dots[data-astro-cid-i674rtf6]{display:none}.media-count[data-astro-cid-i674rtf6]{font-size:13px}.media-original[data-astro-cid-i674rtf6]{font-size:12px}}@media (prefers-reduced-motion: reduce){.media-motion[data-astro-cid-i674rtf6]{display:none}.is-ready[data-astro-cid-i674rtf6].is-single .media-image[data-astro-cid-i674rtf6]{width:100%;left:0;animation:none}.media-track[data-astro-cid-i674rtf6]{transition:none!important}}.detail-page{container-type:inline-size;max-width:1120px;margin-inline:auto;min-width:0;padding-bottom:128px;--detail-measure: 780px;scroll-margin-top:32px}.detail-header,.article-cover,.detail-reading,.detail-end{max-width:var(--detail-measure);margin-inline:auto}.detail-topline{display:flex;justify-content:space-between;align-items:center;gap:12px 24px;flex-wrap:wrap;padding-block:0 20px;border-bottom:1px solid var(--border-soft);position:relative}.detail-topline:after{content:"";position:absolute;bottom:-1px;left:0;width:42px;height:3px;background:var(--red)}.detail-back,.detail-top-link{display:inline-flex;align-items:center;gap:10px;min-height:36px;color:var(--gray-600);font-size:14px;text-decoration:none;transition:color .16s ease}.detail-back span{transition:transform .16s ease}.detail-back:hover,.detail-top-link:hover{color:var(--red)}.detail-back:hover span{transform:translate(-3px)}.detail-page :is(a,button,summary):focus-visible{outline:2px solid var(--accent-deep);outline-offset:5px}.detail-page .detail-contents-list a:focus-visible{outline-offset:-3px}.detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;color:var(--gray-600);font-size:14px;line-height:1.6}.detail-category{color:var(--red)}.detail-meta time{font-variant-numeric:tabular-nums}.detail-page .detail-title{font-family:var(--font-drift)!important;font-weight:400;font-size:clamp(30px,5.4cqw,48px);line-height:1.28;text-wrap:balance;overflow-wrap:anywhere;color:var(--foreground);margin:32px 0 20px}.detail-intro{margin:0;max-width:45em;font-family:var(--font-body);font-size:18px;line-height:1.85;color:var(--gray-600);text-wrap:pretty}.detail-keywords{list-style:none;padding:0;margin:22px 0 0;display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 0;font-size:14px;line-height:1.7;color:var(--accent-deep);overflow-wrap:anywhere}.detail-keywords li{display:flex;align-items:baseline}.detail-keywords li+li:before{content:"/";margin-inline:12px;color:var(--gray-400)}.article-cover{margin-block:30px 36px}.article-detail>.detail-reading{margin-top:32px}.detail-reading{min-width:0}.detail-outline{margin-bottom:32px;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft)}.detail-contents summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 0;color:var(--foreground);font-size:15px;cursor:pointer}.detail-contents summary::-webkit-details-marker{display:none}.detail-contents-toggle{flex:none;width:16px;margin-right:4px;line-height:16px;text-align:center;color:var(--red);transition:transform .18s ease}.detail-contents[open] .detail-contents-toggle{transform:rotate(45deg)}.detail-contents-list{list-style:none;margin:0;padding:0 0 16px;display:grid;gap:2px;counter-reset:detail-outline}.detail-contents-list li{min-width:0}.detail-contents-list a{display:flex;align-items:baseline;gap:12px;padding:9px 8px;color:var(--gray-600);line-height:1.6;text-decoration:none;font-size:14px;border-left:2px solid transparent;transition:color .16s ease,border-color .16s ease,background .16s ease;overflow-wrap:anywhere}.detail-contents-list li:not(.is-subsection){counter-increment:detail-outline}.detail-contents-list li:not(.is-subsection) a:before{content:counter(detail-outline,decimal-leading-zero);color:var(--red);font-size:12px;font-variant-numeric:tabular-nums}.detail-contents-list .is-subsection a{padding-left:34px}.detail-contents-list a:hover,.detail-contents-list a[aria-current]{color:var(--foreground);border-left-color:var(--red);background:var(--red-faint)}.detail-prose{min-width:0;font-family:var(--font-body);font-size:18px;line-height:1.95;color:var(--gray-700);overflow-wrap:anywhere;text-wrap:pretty}.detail-prose>:first-child{margin-top:0}.detail-prose p{margin-block:1.1em}.detail-prose :is(h1,h2,h3,h4,h5,h6){line-height:1.5;scroll-margin-top:36px;overflow-wrap:anywhere}.detail-prose h2{position:relative;font-size:24px;margin-block:2.2em 1em;padding-bottom:14px;border-bottom:1px solid var(--border-soft)}.detail-prose h2:after{position:absolute;left:0;bottom:-1px;width:28px;height:2px;margin:0}.detail-prose h3{font-size:20px;margin-block:1.8em .8em}.detail-prose :is(ul,ol){padding-left:1.5em}.detail-prose li+li{margin-top:.55em}.detail-prose ul li::marker{color:var(--accent-deep)}.detail-prose blockquote{border-left:3px solid var(--accent-deep);padding:4px 22px;background:transparent;color:var(--gray-600)}.detail-prose blockquote p{margin-block:.6em}.detail-prose img{opacity:1;border-radius:0;image-rendering:auto;margin-block:1.8em}.detail-prose pre{max-width:100%;border-radius:0}.detail-prose pre code{font-size:14px;overflow-wrap:normal}.detail-prose table{font-size:16px}.detail-end{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:60px;padding-top:20px;border-top:1px solid var(--foreground)}.project-detail>.detail-header{max-width:none}.project-detail .detail-intro{max-width:760px}.project-status{display:inline-flex;align-items:center;gap:9px;color:var(--accent-deep);font-size:14px}.project-status>span{width:6px;height:6px;background:currentColor}.project-facts{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px 28px;margin-top:22px}.project-facts .detail-keywords{margin:0}.project-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.project-action{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:44px;padding:10px 18px;border:1px solid var(--foreground);text-decoration:none;color:var(--foreground);font-size:14px;transition:background .16s ease,color .16s ease}.project-action-primary{background:var(--foreground);color:var(--panel)}.project-action:hover{background:var(--red);border-color:var(--red);color:var(--panel)}.project-gallery{margin:30px 0 48px}.project-detail>.detail-reading{margin-top:40px}.project-detail .detail-prose{counter-reset:project-section}.project-detail .detail-prose h2{counter-increment:project-section;display:flex;gap:14px;align-items:baseline}.project-detail .detail-prose h2:before{content:counter(project-section,decimal-leading-zero);font-size:14px;color:var(--red);flex:none}@container (min-width: 1040px){.detail-page:has(.has-outline) :is(.detail-header,.article-cover,.detail-end){margin-left:216px;margin-right:0}.detail-reading.has-outline{display:grid;grid-template-columns:176px minmax(0,780px);gap:40px;max-width:none}.detail-outline{align-self:start;position:sticky;top:28px;margin:0;border-bottom:0;max-height:calc(100svh - 56px);overflow:auto}.detail-contents summary{font-size:14px}.detail-contents-list a{font-size:13px;gap:9px;padding-left:6px}.detail-contents-list .is-subsection a{padding-left:26px}.project-detail:has(.has-outline)>.detail-header{margin-inline:0}}@container (max-width: 560px){.detail-topline{gap:12px;padding-bottom:14px}.detail-meta{font-size:13px;gap:8px 12px}.detail-page .detail-title{margin-top:26px;font-size:30px}.detail-intro{font-size:17px}.detail-keywords{margin-top:18px;font-size:13px}.detail-keywords li+li:before{margin-inline:8px}.article-cover{margin-block:26px}.detail-prose{font-size:17px;line-height:1.9}.detail-prose h2{font-size:22px;margin-top:1.8em}.detail-prose h3{font-size:19px}.detail-prose pre{padding:16px}.detail-end{margin-top:42px}.project-facts{gap:12px}.project-facts .detail-keywords{flex-basis:100%}.project-gallery{margin-top:26px;margin-bottom:32px}}@media (max-width: 900px){.detail-page{scroll-margin-top:96px}.detail-prose :is(h1,h2,h3,h4,h5,h6){scroll-margin-top:96px}}@media (prefers-reduced-motion: reduce){.detail-page *,.detail-page *:before,.detail-page *:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
