.contact-cta-card[data-astro-cid-jkgekrrc]{padding:.6rem .5rem}@media (width>=640px){.contact-cta-card[data-astro-cid-jkgekrrc]{padding:.875rem 1rem}}.project-detail-page{animation:.5s cubic-bezier(.16,1,.3,1) both detail-fade-in}@keyframes detail-fade-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.detail-section-title{font-family:var(--font-heading);color:color-mix(in srgb, var(--color-accent) 80%, var(--color-maintext));align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.95rem;font-weight:700;display:flex}.detail-section{background:var(--glass-bg-medium);border:1px solid var(--glass-border);box-shadow:inset 0 1px 0 0 var(--glass-rim-top), var(--glass-shadow-sm);border-radius:.875rem;padding:1.15rem .875rem}@media (width>=640px){.detail-section{border-radius:1rem;padding:1.75rem 2rem}}.toc-sidebar{background:var(--glass-bg-subtle);border:1px solid var(--glass-border);box-shadow:inset 0 1px 0 0 var(--glass-rim-top);border-radius:.625rem;padding:.5rem .625rem}.toc-link-active{color:var(--color-accent)!important}.floating-toc{z-index:40;pointer-events:auto;position:fixed;right:.5rem}#desktop-toc{z-index:40;position:fixed;right:.5rem}.floating-toc-trigger{background:var(--glass-panel-bg);border:1px solid var(--glass-border);width:2.5rem;height:2.5rem;box-shadow:inset 0 1px 0 0 var(--glass-rim-top), 0 4px 14px -2px #0006, var(--glass-glow-sm);cursor:pointer;-webkit-backdrop-filter:blur(12px);border-radius:9999px;justify-content:center;align-items:center;transition:transform .28s cubic-bezier(.16,1,.3,1),opacity .2s cubic-bezier(.16,1,.3,1),border-color .2s,box-shadow .2s;display:flex}.floating-toc-trigger:hover{border-color:var(--glass-border-hover);box-shadow:inset 0 1px 0 0 var(--glass-rim-top-hover), 0 6px 18px -2px #00000080, var(--glass-glow-sm);transform:scale(1.08)}.floating-toc-card{background:color-mix(in srgb, var(--color-background) 96%, var(--color-accent) 4%);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);width:13rem;box-shadow:inset 0 1px 0 0 var(--glass-rim-top), 0 20px 40px -10px #000000b3, var(--glass-glow-sm);transform-origin:100% 0;opacity:0;pointer-events:none;border-radius:.625rem;padding:.5rem .625rem;transition:transform .28s cubic-bezier(.16,1,.3,1),opacity .2s cubic-bezier(.16,1,.3,1);position:absolute;top:0;right:0;transform:scale(.2)translate(16px,-16px)}.floating-toc-card nav::-webkit-scrollbar{width:3px}.floating-toc-card nav::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--color-accent) 25%, transparent);border-radius:9999px}.floating-toc.is-closing,.floating-toc.is-closing .floating-toc-trigger,.floating-toc.is-closing .floating-toc-card{pointer-events:none!important}.floating-toc.is-open:not(.is-closing) .floating-toc-trigger{opacity:0;pointer-events:none;transform:scale(.5)}.floating-toc.is-open:not(.is-closing) .floating-toc-card{opacity:1;pointer-events:auto;transform:scale(1)translate(0)}.case-study-body h2{font-family:var(--font-heading);color:color-mix(in srgb, var(--color-accent) 85%, var(--color-maintext));border-top:1px solid var(--glass-border);align-items:center;gap:.5rem;margin-top:2.25rem;margin-bottom:.85rem;padding-top:1.5rem;scroll-margin-top:5rem;font-size:1.15rem;font-weight:700;display:flex}.case-study-body h2:first-child,.case-study-body hr+h2{border-top:none;margin-top:0;padding-top:0}.case-study-body h3{font-family:var(--font-heading);color:var(--color-maintext);margin-top:1.5rem;margin-bottom:.6rem;scroll-margin-top:5rem;font-size:.975rem;font-weight:600}.case-study-body p{font-family:var(--font-body);color:var(--color-subtext);margin-bottom:.9rem;font-size:.925rem;line-height:1.8}.case-study-body ul,.case-study-body ol{flex-direction:column;gap:.65rem;margin-bottom:1.15rem;display:flex}.case-study-body ul{padding-left:1.5rem;list-style-type:disc}.case-study-body ol{counter-reset:step-counter;padding-left:0;list-style:none}.case-study-body li{font-family:var(--font-body);color:var(--color-subtext);font-size:.925rem;line-height:1.75}.case-study-body ul li{display:list-item}.case-study-body ol>li{counter-increment:step-counter;padding-left:2rem;display:block;position:relative}.case-study-body ol>li:before{content:counter(step-counter);background:color-mix(in srgb, var(--color-accent) 10%, transparent);border:1px solid color-mix(in srgb, var(--color-accent) 25%, transparent);width:1.35rem;height:1.35rem;color:var(--color-accent);border-radius:50%;justify-content:center;align-items:center;font-size:.68rem;font-weight:700;display:flex;position:absolute;top:.25rem;left:0}.case-study-body ol>li>ul{margin-top:.5rem;margin-bottom:.25rem;padding-left:1.25rem;list-style-type:disc}.case-study-body ol>li>ul>li{padding-left:0;display:list-item;position:static}.case-study-body ol>li>ul>li:before{content:none}.case-study-body strong{color:var(--color-maintext);font-weight:600}.case-study-body em{color:color-mix(in srgb, var(--color-accent) 70%, var(--color-subtext))}.case-study-body a{color:var(--color-accent);text-underline-offset:3px;text-decoration:underline}.case-study-body a:hover{opacity:.8}.table-scroll-wrapper{-webkit-overflow-scrolling:touch;border:1px solid var(--glass-border);background:color-mix(in srgb, var(--color-accent) 2%, transparent);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--color-accent) 25%, transparent) transparent;border-radius:.625rem;width:100%;margin-top:1rem;margin-bottom:1.5rem;overflow-x:auto}.table-scroll-wrapper::-webkit-scrollbar{height:5px}.table-scroll-wrapper::-webkit-scrollbar-track{background:0 0}.table-scroll-wrapper::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--color-accent) 25%, transparent);border-radius:9999px}.table-scroll-wrapper::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--color-accent) 45%, transparent)}.case-study-body table{border-collapse:collapse;width:100%;font-size:.8rem;font-family:var(--font-body);font-variant-numeric:tabular-nums;line-height:1.45}.case-study-body th{background:color-mix(in srgb, var(--color-accent) 9%, transparent);color:var(--color-maintext);letter-spacing:.01em;border-bottom:1px solid var(--glass-border);border-right:1px solid color-mix(in srgb, var(--glass-border) 60%, transparent);text-align:left;text-wrap:balance;padding:.6rem .75rem;font-size:.775rem;font-weight:600}.case-study-body th:last-child{border-right:none}.case-study-body td{border-bottom:1px solid color-mix(in srgb, var(--glass-border) 60%, transparent);border-right:1px solid color-mix(in srgb, var(--glass-border) 40%, transparent);color:var(--color-subtext);padding:.55rem .75rem;font-size:.8rem}.case-study-body td:last-child{border-right:none}.case-study-body tr:last-child td{border-bottom:none}.case-study-body tr:hover td{background:color-mix(in srgb, var(--color-accent) 4%, transparent)}.case-study-body tr:nth-child(2n) td{background:color-mix(in srgb, var(--color-accent) 2%, transparent)}.case-study-body tr:nth-child(2n):hover td{background:color-mix(in srgb, var(--color-accent) 5%, transparent)}.case-study-body code{background:color-mix(in srgb, var(--color-accent) 10%, transparent);border:1px solid color-mix(in srgb, var(--color-accent) 20%, transparent);color:var(--color-accent);word-break:break-word;border-radius:.25rem;padding:.1rem .35rem;font-size:.8rem}.case-study-body pre{background:color-mix(in srgb, var(--color-accent) 6%, transparent);border:1px solid var(--glass-border);border-radius:.5rem;margin-bottom:1.25rem;padding:1rem;overflow-x:auto}.case-study-body pre code{word-break:normal;background:0 0;border:none;padding:0;font-size:.8rem}.case-study-body blockquote{border-left:3px solid var(--color-accent);background:color-mix(in srgb, var(--color-accent) 5%, transparent);border-radius:0 .5rem .5rem 0;margin-bottom:1rem;padding:.75rem 1rem}.case-study-body blockquote p{color:var(--color-maintext);margin:0;font-style:italic}.case-study-body .grid>div{box-shadow:inset 0 1px 0 0 var(--glass-rim-top), var(--glass-shadow-sm);transition:transform .2s,border-color .2s,box-shadow .2s;background:color-mix(in srgb, var(--glass-panel-bg) 50%, transparent)!important;border:1px solid var(--glass-border)!important}.case-study-body .grid>div:hover{box-shadow:inset 0 1px 0 0 var(--glass-rim-top-hover), var(--glass-shadow-sm-hover), var(--glass-glow-sm);transform:translateY(-2px);border-color:var(--glass-border-hover)!important}.case-study-body .grid>div p:first-child,.case-study-body .grid>div .text-xs:first-child{letter-spacing:.06em;margin-bottom:.25rem;font-size:.72rem;font-weight:600;color:color-mix(in srgb, var(--color-accent) 85%, var(--color-maintext))!important}.case-study-body .grid>div p:nth-child(2),.case-study-body .grid>div .text-2xl{font-family:var(--font-heading);margin-top:.25rem;margin-bottom:.25rem;font-size:1.65rem;font-weight:700;line-height:1.2;color:var(--color-maintext)!important}.case-study-body .grid>div p:last-child,.case-study-body .grid>div p:nth-child(3){margin-bottom:0;font-size:.75rem;line-height:1.4;color:var(--color-subtext)!important}.case-study-body img{border:1px solid var(--glass-border);max-width:100%;height:auto;box-shadow:var(--glass-shadow-sm);cursor:zoom-in;border-radius:.75rem;margin:1.5rem 0;transition:border-color .2s}.case-study-body img:hover{border-color:var(--color-accent)}.case-study-body figure{margin:1.5rem 0}.case-study-body figure img{margin:0}.case-study-body figcaption{font-family:var(--font-body);color:var(--color-subtext);text-align:center;opacity:.85;margin-top:.55rem;font-size:.775rem;font-style:italic;line-height:1.5}.case-study-body hr{border:none;border-top:1px solid var(--glass-border);margin:2rem 0}
