@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.I4S5GZfc.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.BmXc_FBt.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.GZpp1pK2.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.D8KDMBhC.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.DrnZ1wKl.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.B_7UjwxQ.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--paper:#12110f;--paper-2:#191713;--paper-3:#221f1a;--ink:#f1eee5;--ink-2:#c6c0b2;--mute:#948d7e;--faint:#948d7d;--rule:#3b352c;--rule-2:#544d40;--signal:#ff6a4d;--signal-ink:#ff8b73;--signal-line:#ff6a4d6b;--grid-line:#f1eee506;--font-display:"Geist Variable", ui-sans-serif, system-ui, -apple-system, "Helvetica Neue", sans-serif;--font-sans:"Geist Variable", ui-sans-serif, system-ui, -apple-system, "Helvetica Neue", sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, SFMono-Regular, Menlo, monospace;--label-size:.72rem;--label-track:.14em;--grid-size:28px;--grid-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);--shell:min(1180px, calc(100% - 64px));--smooth:cubic-bezier(.2, .7, .2, 1);font-family:var(--font-sans)}:root[data-theme=light]{color-scheme:light;--paper:#f4f2ed;--paper-2:#edeae3;--paper-3:#e6e2d9;--ink:#14130f;--ink-2:#3d3a31;--mute:#6e6a5f;--faint:#6d695c;--rule:#d5d1c6;--rule-2:#c3bfb2;--signal:#cf3a20;--signal-ink:#a82c15;--signal-line:#cf3a2066;--grid-line:#14130f07}*{box-sizing:border-box}html{background:var(--paper);scroll-behavior:smooth}body{background-color:var(--paper);background-image:var(--grid-image);background-size:var(--grid-size) var(--grid-size);min-width:320px;color:var(--ink);font-variant-numeric:tabular-nums lining-nums;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-attachment:scroll;margin:0;font-size:17px;line-height:1.55}@media (hover:hover) and (pointer:fine){body{background-attachment:fixed}}a{color:inherit;text-decoration:none}img,video{max-width:100%}::selection{background:var(--ink);color:var(--paper)}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--signal);outline-offset:3px}.skip-link{z-index:50;background:var(--ink);color:var(--paper);font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;padding:12px 18px;position:absolute;left:-9999px}.skip-link:focus{top:16px;left:16px}.section-shell{width:var(--shell);margin:0 auto}.eyebrow{color:var(--mute);font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;margin:0;font-weight:400}.section-head{border-bottom:1px solid var(--rule-2);align-items:baseline;gap:16px;margin:0 0 36px;padding-bottom:12px;display:flex}.section-head .section-num{background:var(--ink);color:var(--paper);font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:.1em;flex:none;padding:2px 7px}.section-head h2{letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.86rem;font-weight:600}.band{border-top:1px solid var(--rule);padding:clamp(56px,7vw,88px) 0}.band--tint,.oeffigo-band{background-color:var(--paper-2);background-image:var(--grid-image);background-size:var(--grid-size) var(--grid-size);background-attachment:scroll}@media (hover:hover) and (pointer:fine){.band--tint,.oeffigo-band{background-attachment:fixed}}.display-em{color:var(--signal);font-style:normal}.site-header{z-index:20;width:var(--shell);border-bottom:1px solid var(--ink);justify-content:space-between;align-items:baseline;gap:24px;margin:0 auto;padding:26px 0 20px;display:flex;position:relative}.brand{font-family:var(--font-display);letter-spacing:.13em;text-transform:uppercase;align-items:baseline;gap:9px;font-size:.94rem;font-weight:700;display:inline-flex}.brand:hover{color:var(--signal)}.brand-prompt{color:var(--signal);font-family:var(--font-mono);letter-spacing:0;font-weight:400}.cursor{vertical-align:baseline;background:var(--signal);width:.24em;height:.6em;margin-left:.14em;animation:1.05s step-end infinite cursor-blink;display:inline-block}.is-typing .cursor{opacity:1;animation:none}@keyframes cursor-blink{0%,48%{opacity:1}49%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.cursor{opacity:1;animation:none}}.site-nav{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;align-items:baseline;gap:10px 26px;font-size:.78rem;display:flex}.site-nav a{border-bottom:1px solid #0000;padding-bottom:2px;transition:border-color .16s,color .16s}.site-nav a:hover{border-bottom-color:var(--ink)}.site-nav .nav-divider{background:var(--rule-2);width:1px;height:13px}.header-utils{align-items:baseline;gap:18px;display:inline-flex}.lang-switch{color:var(--mute)}.lang-switch:hover{color:var(--ink)}.theme-toggle{color:var(--mute);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;font-size:.78rem;line-height:1;transition:color .16s;display:inline-flex;position:relative}.theme-toggle:hover{color:var(--ink)}.theme-toggle:before{content:"";position:absolute;inset:-15px -6px}.theme-toggle-swatch{background:linear-gradient(90deg,currentColor 50%,#0000 50%);border:1px solid;width:10px;height:10px}:root[data-theme=light] .theme-toggle-swatch{background:linear-gradient(270deg,currentColor 50%,#0000 50%)}.theme-toggle-label [data-theme-word=light],:root[data-theme=light] .theme-toggle-label [data-theme-word=dark]{display:none}:root[data-theme=light] .theme-toggle-label [data-theme-word=light]{display:inline}.button{border:1px solid var(--ink);color:var(--ink);font-family:var(--font-mono);letter-spacing:.11em;text-transform:uppercase;cursor:pointer;background:0 0;align-items:center;gap:9px;padding:13px 26px;font-size:.76rem;transition:background .16s,color .16s,border-color .16s;display:inline-flex}.button.primary{background:var(--ink);color:var(--paper)}.button.primary:hover{background:var(--signal);border-color:var(--signal)}.button.secondary:hover{background:var(--ink);color:var(--paper)}.button svg{width:15px;height:15px}.text-link{border-bottom:1px solid var(--rule-2);color:var(--ink);align-items:center;gap:7px;padding-bottom:2px;transition:border-color .16s,color .16s;display:inline-flex}.text-link:hover{border-bottom-color:var(--signal);color:var(--signal)}.text-link--signal{color:var(--signal);border-bottom-color:var(--signal-line)}.text-link--signal:hover{border-bottom-color:var(--signal)}.hero{padding:clamp(64px,9vw,104px) 0 clamp(52px,7vw,76px)}.hero .eyebrow{margin-bottom:clamp(32px,4vw,46px)}.hero h1{max-width:15ch;font-family:var(--font-display);letter-spacing:-.045em;margin:0;font-size:clamp(2.9rem,8.2vw,7rem);font-weight:700;line-height:.94}.hero-text{max-width:48ch;color:var(--ink-2);margin:clamp(28px,3.5vw,40px) 0 0;font-size:1.16rem;line-height:1.5}.hero-actions{flex-wrap:wrap;gap:12px;margin:clamp(28px,3.5vw,40px) 0 0;display:flex}.hero-facts{border-top:1px solid var(--rule);color:var(--mute);font-family:var(--font-mono);letter-spacing:.06em;flex-wrap:wrap;gap:10px 40px;margin:clamp(40px,5vw,56px) 0 0;padding:20px 0 0;font-size:.76rem;list-style:none;display:flex}.hero-facts strong{color:var(--ink);font-weight:500}.index-group+.index-group{margin-top:clamp(48px,6vw,68px)}.index-list{border-top:1px solid var(--ink);margin:0;padding:0;list-style:none}.index-row{border-bottom:1px solid var(--rule);transition:padding-left .22s var(--smooth), border-color .2s ease;grid-template-columns:54px minmax(0,.9fr) minmax(0,1.5fr) 136px 158px;align-items:baseline;gap:8px 24px;padding:22px 0;display:grid}.index-row:hover{border-bottom-color:var(--ink);padding-left:14px}.index-num{color:var(--faint);font-family:var(--font-mono);letter-spacing:.06em;font-size:.74rem}.index-row h3{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:1.62rem;font-weight:700;line-height:1.1}.index-row:hover h3{color:var(--signal)}.index-desc{color:var(--ink-2);margin:0;font-size:.98rem;line-height:1.45}.index-stack{color:var(--mute);font-family:var(--font-mono);letter-spacing:.04em;font-size:.74rem}.index-meta{text-align:right;flex-direction:column;align-items:flex-end;gap:5px;display:flex}.status{color:var(--mute);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;font-size:.7rem}.status.active,.status.beta{color:var(--ink)}.status.active:before,.status.beta:before{content:"";vertical-align:2px;background:var(--signal);width:5px;height:5px;margin-right:7px;display:inline-block}.status.archived,.status.coming-soon{color:var(--faint)}.index-stats{color:var(--faint);font-family:var(--font-mono);letter-spacing:.04em;white-space:nowrap;justify-content:flex-end;gap:12px;margin:0;padding:0;font-size:.7rem;list-style:none;display:flex}.index-row--muted h3{color:var(--mute)}.index-row--muted:hover{border-bottom-color:var(--rule);padding-left:0}.index-row--muted:hover h3{color:var(--mute)}.oeffigo-band{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:clamp(64px,8vw,100px) 0}.oeffigo-layout{grid-template-columns:minmax(0,1fr) minmax(300px,.72fr);align-items:start;gap:clamp(36px,5vw,72px);display:grid}.oeffigo-headline{align-items:center;gap:20px;margin:26px 0 0;display:flex}.oeffigo-icon{border:1px solid var(--rule-2);object-fit:contain;width:72px;height:72px}.oeffigo-headline h2{font-family:var(--font-display);letter-spacing:-.04em;margin:0;font-size:clamp(2.4rem,5vw,3.6rem);font-weight:700;line-height:1}.oeffigo-tagline{color:var(--ink-2);margin:6px 0 0;font-size:1.05rem}.oeffigo-lead{max-width:56ch;color:var(--ink-2);margin:26px 0 0;font-size:1.02rem;line-height:1.6}.oeffigo-meta{border-top:1px solid var(--rule);color:var(--mute);font-family:var(--font-mono);letter-spacing:.05em;flex-wrap:wrap;gap:8px 32px;margin:26px 0 0;padding:16px 0 0;font-size:.74rem;list-style:none;display:flex}.oeffigo-actions{flex-wrap:wrap;gap:12px;margin:30px 0 0;display:flex}.oeffigo-features{border-top:1px solid var(--ink);margin:0;padding:0;list-style:none}.oeffigo-feature{border-bottom:1px solid var(--rule);grid-template-columns:26px minmax(0,1fr);gap:4px 14px;padding:18px 0;display:grid}.oeffigo-feature-icon{color:var(--signal);display:block}.oeffigo-feature-icon svg{width:18px;height:18px}.oeffigo-feature h3{letter-spacing:-.01em;margin:0;font-size:1rem;font-weight:600}.oeffigo-feature p{color:var(--ink-2);grid-column:2;margin:4px 0 0;font-size:.94rem;line-height:1.5}.note-block{border:1px solid var(--rule-2);background:var(--paper);margin:30px 0 0;padding:22px 24px}.note-block--flush{margin-top:0}.note-block h3{font-family:var(--font-display);letter-spacing:-.02em;margin:8px 0 0;font-size:1.24rem;font-weight:700}.note-block p{color:var(--ink-2);margin:10px 0 0;font-size:.96rem;line-height:1.55}.note-block ul{border-top:1px solid var(--rule);margin:16px 0 0;padding:0;list-style:none}.note-block li{border-bottom:1px solid var(--rule);color:var(--ink-2);padding:9px 0;font-size:.92rem}.note-block li:last-child{border-bottom:0;padding-bottom:0}.note-actions{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;gap:8px 24px;margin:18px 0 0;font-size:.74rem;display:flex}.note-actions a{border-bottom:1px solid var(--rule-2);align-items:center;gap:6px;padding-bottom:2px;display:inline-flex}.note-actions a:hover{color:var(--signal);border-bottom-color:var(--signal)}.oeffigo-datanote{color:var(--mute);margin:24px 0 0;font-size:.86rem;line-height:1.6}.oeffigo-page-hero{padding:clamp(48px,6vw,80px) 0 clamp(40px,5vw,60px)}.oeffigo-page-hero h1{max-width:16ch;font-family:var(--font-display);letter-spacing:-.045em;margin:24px 0 0;font-size:clamp(2.6rem,7vw,5.4rem);font-weight:700;line-height:.96}.oeffigo-page-lead{max-width:60ch;color:var(--ink-2);margin:28px 0 0;font-size:1.12rem;line-height:1.55}.oeffigo-shot{border:1px solid var(--rule-2);width:100%;max-width:300px;height:auto;margin-inline:auto;display:block}.oeffigo-feature-grid{border-top:1px solid var(--ink);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));column-gap:36px;display:grid}.oeffigo-feature-grid .oeffigo-feature{padding:22px 0 26px}.data-list{border-top:1px solid var(--ink);margin:0}.data-list>div{border-bottom:1px solid var(--rule);grid-template-columns:220px minmax(0,1fr);gap:12px 32px;padding:18px 0;display:grid}.data-list dt{color:var(--mute);font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase}.data-list dd{color:var(--ink-2);margin:0;font-size:.98rem;line-height:1.55}.column-grid{border-top:1px solid var(--ink);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;margin-left:-30px;display:grid}.column-grid>*{border-right:1px solid var(--rule);padding:26px 30px 34px}.column-grid>:last-child{border-right:0}.skill-group h3,.service-item h3{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 14px;font-size:1.18rem;font-weight:700}.skill-group ul{margin:0;padding:0;list-style:none}.skill-group li{border-bottom:1px solid var(--rule);color:var(--ink-2);font-family:var(--font-mono);letter-spacing:.02em;padding:7px 0;font-size:.8rem}.skill-group li:last-child{border-bottom:0}.service-item p{color:var(--ink-2);margin:0;font-size:.98rem;line-height:1.55}.services-lead{max-width:54ch;color:var(--ink-2);margin:0 0 36px;font-size:1.06rem}.split-section{grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);align-items:start;gap:clamp(28px,5vw,72px);display:grid}.split-section h2{font-family:var(--font-display);letter-spacing:-.035em;margin:10px 0 0;font-size:clamp(1.9rem,3.6vw,2.8rem);font-weight:700;line-height:1.05}.split-section>p{color:var(--ink-2);margin:0;font-size:1.06rem;line-height:1.65}.faq-list{border-top:1px solid var(--ink)}.faq-item{border-bottom:1px solid var(--rule)}.faq-item summary{font-family:var(--font-display);letter-spacing:-.015em;cursor:pointer;justify-content:space-between;align-items:baseline;gap:24px;padding:20px 0;font-size:1.12rem;font-weight:600;list-style:none;transition:color .16s;display:flex}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:hover{color:var(--signal)}.faq-item summary:after{content:"+";color:var(--mute);font-family:var(--font-mono);transition:transform .22s var(--smooth), color .16s ease;flex:none;font-size:1.1rem;font-weight:400}.faq-item.is-open summary:after{color:var(--signal);transform:rotate(45deg)}.faq-answer{transition:grid-template-rows .28s var(--smooth);grid-template-rows:0fr;display:grid}.faq-item.is-open .faq-answer{grid-template-rows:1fr}.faq-answer>div{overflow:hidden}.faq-answer p{max-width:68ch;color:var(--ink-2);margin:0;padding:0 0 22px;line-height:1.65}.contact-section{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start;gap:clamp(32px,5vw,72px);display:grid}.contact-section h2{font-family:var(--font-display);letter-spacing:-.04em;margin:10px 0 0;font-size:clamp(2.1rem,4.6vw,3.4rem);font-weight:700;line-height:1}.contact-note{max-width:40ch;color:var(--ink-2);margin:20px 0 0;line-height:1.6}.contact-form{gap:22px;display:grid}.contact-field{gap:8px;display:grid}.contact-field label{color:var(--mute);font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase}.contact-field input,.contact-field textarea{border:0;border-bottom:1px solid var(--rule-2);width:100%;color:var(--ink);font-family:var(--font-sans);background:0 0;padding:12px 0;font-size:1rem;transition:border-color .16s,box-shadow .16s}.contact-field textarea{resize:vertical;min-height:108px;line-height:1.55}.contact-field input::placeholder,.contact-field textarea::placeholder{color:var(--faint)}.contact-field input:focus,.contact-field textarea:focus{border-bottom-color:var(--signal);box-shadow:0 2px 0 0 var(--signal);outline:none}.contact-field input:-webkit-autofill{-webkit-text-fill-color:var(--ink);box-shadow:0 0 0 1000px var(--paper) inset;caret-color:var(--ink)}.contact-field input:-webkit-autofill:hover{-webkit-text-fill-color:var(--ink);box-shadow:0 0 0 1000px var(--paper) inset;caret-color:var(--ink)}.contact-field input:-webkit-autofill:focus{-webkit-text-fill-color:var(--ink);box-shadow:0 0 0 1000px var(--paper) inset;caret-color:var(--ink)}.contact-honeypot{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.contact-submit{border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-family:var(--font-mono);letter-spacing:.11em;text-transform:uppercase;cursor:pointer;justify-self:start;padding:13px 30px;font-size:.76rem;transition:background .16s,border-color .16s}.contact-submit:hover:not(:disabled){background:var(--signal);border-color:var(--signal)}.contact-submit:disabled{opacity:.55;cursor:progress}.contact-status{min-height:1.2em;margin:0;font-size:.92rem}.contact-status.is-success{color:var(--ink)}.contact-status.is-error{color:var(--signal-ink)}.contact-privacy-note{color:var(--mute);margin:0;font-size:.82rem}.contact-privacy-note a{border-bottom:1px solid var(--rule-2)}.contact-privacy-note a:hover{color:var(--signal);border-bottom-color:var(--signal)}.social-row{border-top:1px solid var(--rule);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;gap:26px;margin:28px 0 0;padding:20px 0 0;font-size:.76rem;display:flex}.social-row a{color:var(--mute);align-items:center;gap:8px;transition:color .16s;display:inline-flex}.social-row a:hover{color:var(--signal)}.social-row svg{width:16px;height:16px}.social-row--icons{border-top:0;gap:14px;margin:0;padding:0}.social-row--icons a{color:var(--mute);padding:10px}.social-row--icons a:hover{color:var(--ink)}.nav-socials{align-items:center}.site-footer{width:var(--shell);border-top:1px solid var(--ink);color:var(--mute);font-family:var(--font-mono);letter-spacing:.05em;margin:clamp(60px,8vw,96px) auto 0;padding:26px 0 40px;font-size:.74rem}.footer-top{flex-wrap:wrap;justify-content:space-between;gap:18px 32px;display:flex}.footer-brand strong{color:var(--ink);letter-spacing:.1em;text-transform:uppercase;font-weight:500}.site-footer p{margin:0}.footer-links{flex-wrap:wrap;gap:20px;display:flex}.site-footer a{border-bottom:1px solid #0000;padding-bottom:1px}.site-footer a:hover{color:var(--ink);border-bottom-color:var(--ink)}.footer-bottom{border-top:1px solid var(--rule);color:var(--faint);flex-wrap:wrap;justify-content:space-between;gap:12px 32px;margin-top:26px;padding-top:16px;display:flex}.project-detail{padding:34px 0 0}.back-link{color:var(--mute);font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;align-items:center;gap:8px;display:inline-flex}.back-link:before{content:"←"}.back-link:hover{color:var(--signal)}.project-detail-hero{border-bottom:1px solid var(--ink);grid-template-columns:minmax(0,1.4fr) minmax(260px,.7fr);align-items:start;gap:clamp(32px,5vw,68px);padding:clamp(36px,5vw,56px) 0 clamp(40px,5vw,60px);display:grid}.project-detail-logo{border:1px solid var(--rule-2);object-fit:contain;width:60px;height:60px;margin-bottom:22px}.project-kicker{color:var(--mute);font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;align-items:baseline;gap:18px;display:flex}.project-detail-hero h1{font-family:var(--font-display);letter-spacing:-.045em;margin:18px 0 0;font-size:clamp(2.6rem,6.4vw,5rem);font-weight:700;line-height:.98}.project-tagline{max-width:40ch;margin:18px 0 0;font-size:1.24rem;line-height:1.4}.project-description{max-width:62ch;color:var(--ink-2);margin:18px 0 0;line-height:1.6}.project-actions{flex-wrap:wrap;align-items:stretch;gap:12px;margin:32px 0 0;display:flex}.actions-note{color:var(--mute);margin:0;font-size:.9rem}.install-button,.download-button{text-align:left;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 22px}.download-button{background:var(--ink);color:var(--paper)}.download-button:hover{background:var(--signal);border-color:var(--signal)}.install-button small,.download-button small{letter-spacing:.04em;text-transform:none;opacity:.72;font-size:.68rem}.install-button[data-copy-state=success]{border-color:var(--signal);color:var(--signal)}.download-menu{position:relative}.download-options{z-index:15;border:1px solid var(--ink);background:var(--paper);min-width:280px;max-height:min(60vh,480px);display:none;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto}.download-menu[data-open=true] .download-options{display:block}.download-options a{border-bottom:1px solid var(--rule);padding:14px 18px;display:block}.download-options a:last-child{border-bottom:0}.download-options a:hover{background:var(--paper-2)}.download-option-meta{color:var(--mute);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.68rem;display:block}.download-options strong{margin:4px 0 2px;font-size:.98rem;display:block}.download-options a>span:last-child{color:var(--mute);font-family:var(--font-mono);font-size:.72rem}.project-meta-panel{border-top:1px solid var(--ink)}.project-meta-grid{margin:0}.project-meta-grid>div{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;gap:18px;padding:13px 0;display:flex}.project-meta-grid dt{color:var(--mute);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.72rem}.project-meta-grid dd{font-family:var(--font-mono);text-align:right;margin:0;font-size:.8rem}.metadata-note{color:var(--faint);margin:14px 0 0;font-size:.8rem;line-height:1.5}.project-showcase{border-bottom:1px solid var(--rule);padding:clamp(36px,5vw,56px) 0}.showcase-image{border:1px solid var(--rule-2);background:var(--paper-2);width:100%;height:auto;display:block}.showcase-image.contain{object-fit:contain}.showcase-image.cover{object-fit:cover}.case-study-panel{border-top:0;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;padding:clamp(36px,5vw,56px) 0 0;display:grid}.case-study-panel article{border-top:1px solid var(--ink);border-right:1px solid var(--rule);padding:24px 28px 30px 0}.case-study-panel article:last-child{border-right:0}.case-study-panel span{color:var(--signal);font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase;margin-bottom:12px;display:block}.case-study-panel p{color:var(--ink-2);margin:0;font-size:.96rem;line-height:1.55}.release-panel{border-top:1px solid var(--ink);grid-template-columns:minmax(0,.5fr) minmax(0,1.5fr);gap:clamp(24px,4vw,56px);margin:clamp(40px,5vw,64px) 0 0;padding:30px 0 0;display:grid}.release-panel span{color:var(--mute);font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase}.release-panel h2{font-family:var(--font-display);letter-spacing:-.035em;margin:8px 0 0;font-size:2rem;font-weight:700}.release-panel ul,.highlights-panel ul{margin:0;padding:0;list-style:none}.release-panel li,.highlights-panel li{border-bottom:1px solid var(--rule);color:var(--ink-2);padding:11px 0;font-size:.96rem;line-height:1.5}.project-detail-grid{border-top:1px solid var(--ink);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(28px,4vw,56px);margin:clamp(40px,5vw,64px) 0 0;padding:30px 0 0;display:grid}.command-panel h2,.highlights-panel h2{letter-spacing:.16em;text-transform:uppercase;margin:0 0 18px;font-size:.86rem;font-weight:600}.command-block{margin-bottom:14px}.command-block span{color:var(--mute);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:.72rem;display:block}.command-block code{border:1px solid var(--rule-2);background:var(--paper-2);font-family:var(--font-mono);padding:12px 14px;font-size:.82rem;display:block;overflow-x:auto}.showcase-gallery{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;margin:clamp(40px,5vw,64px) 0 0;display:grid}.showcase-gallery figure{margin:0}.legal-page{max-width:720px;margin-inline:auto;padding-block:clamp(48px,8vw,88px)}.legal-page h1{font-family:var(--font-display);letter-spacing:-.04em;margin:0 0 8px;font-size:clamp(2rem,4.4vw,3rem);font-weight:700}.legal-page h2{letter-spacing:.16em;text-transform:uppercase;margin:44px 0 12px;font-size:.86rem;font-weight:600}.legal-page p,.legal-page li,.legal-page address{line-height:1.7}.legal-page address{font-style:normal}.legal-page a{border-bottom:1px solid var(--rule-2)}.legal-page a:hover{color:var(--signal);border-bottom-color:var(--signal)}.legal-updated{color:var(--mute);font-family:var(--font-mono);letter-spacing:.06em;margin-bottom:40px;font-size:.76rem}.legal-placeholder{background:var(--paper-3);padding:1px 6px;font-weight:600}.legal-draft-note{border-left:2px solid var(--signal);background:var(--paper-2);margin-bottom:32px;padding:14px 18px;font-size:.92rem}@media (width<=1080px){.index-row{grid-template-columns:44px minmax(0,1fr) 128px}.index-desc{grid-column:2/4}.index-stack{grid-column:2}.oeffigo-layout,.project-detail-hero,.contact-section,.split-section,.release-panel{grid-template-columns:minmax(0,1fr)}.project-meta-panel{max-width:480px}.download-options{right:0}}@media (width<=860px){:root{--shell:min(1180px, calc(100% - 40px))}body{font-size:16px}.site-header{flex-direction:column;align-items:flex-start;gap:14px;padding-bottom:16px;position:relative}.site-nav{gap:10px 16px;width:100%;font-size:.72rem}.site-nav a{padding:10px 6px}.site-nav .nav-divider,.site-nav .nav-socials{display:none}.header-utils{gap:16px;position:absolute;top:26px;right:0}.column-grid>*,.case-study-panel article,.oeffigo-feature-grid .oeffigo-feature{border-right:0;border-bottom:1px solid var(--rule);padding-right:0}.column-grid{margin-left:0}.column-grid>*{padding-left:0}.case-study-panel article{border-top:0}.case-study-panel article:first-child{border-top:1px solid var(--ink)}.index-row{grid-template-columns:34px minmax(0,1fr);row-gap:6px}.index-desc,.index-stack{grid-column:2}.index-meta{text-align:left;flex-direction:row;grid-column:2;align-items:baseline;gap:14px}.index-row h3{font-size:1.4rem}.oeffigo-headline{gap:14px}.oeffigo-icon{width:56px;height:56px}.data-list>div{grid-template-columns:minmax(0,1fr);gap:6px}.back-link,.note-actions a,.footer-links a,.social-row a{padding-block:8px}}@media (width<=560px){.theme-toggle-label{display:none}.theme-toggle,.lang-switch{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:inline-flex}.hero-actions .button,.oeffigo-actions .button,.project-actions .button{flex:auto;justify-content:center}.footer-top,.footer-bottom{flex-direction:column}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
