@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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--paper: #f4f2ed;--paper-2: #edeae3;--paper-3: #e6e2d9;--ink: #14130f;--ink-2: #3d3a31;--mute: #6e6a5f;--faint: #94907f;--rule: #d5d1c6;--rule-2: #c3bfb2;--signal: #cf3a20;--signal-ink: #a82c15;--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;--shell: min(1180px, calc(100% - 64px) );--smooth: cubic-bezier(.2, .7, .2, 1);font-family:var(--font-sans)}*{box-sizing:border-box}html{background:var(--paper);scroll-behavior:smooth}body{min-width:320px;margin:0;background:var(--paper);color:var(--ink);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}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{position:absolute;left:-9999px;z-index:50;padding:12px 18px;background:var(--ink);color:var(--paper);font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase}.skip-link:focus{left:16px;top:16px}.section-shell{width:var(--shell);margin:0 auto}.eyebrow{margin:0;color:var(--mute);font-family:var(--font-mono);font-size:var(--label-size);font-weight:400;letter-spacing:var(--label-track);text-transform:uppercase}.section-head{display:flex;align-items:baseline;gap:20px;margin:0 0 40px}.section-head .section-num{color:var(--signal);font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-track)}.section-head h2{margin:0;font-size:.86rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.section-head .section-aside{margin:0 0 0 auto;color:var(--mute);font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:.06em}.section-head .section-aside a:hover{color:var(--signal)}.band{padding:clamp(56px,7vw,88px) 0;border-top:1px solid var(--rule)}.band--tint{background:var(--paper-2)}.display-em{font-style:normal;color:var(--signal)}.site-header{position:relative;z-index:20;display:flex;align-items:baseline;justify-content:space-between;gap:24px;width:var(--shell);margin:0 auto;padding:26px 0 20px;border-bottom:1px solid var(--ink)}.brand{display:inline-flex;align-items:baseline;gap:9px;font-family:var(--font-display);font-size:.94rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.brand:hover{color:var(--signal)}.brand-prompt{color:var(--signal);font-family:var(--font-mono);font-weight:400;letter-spacing:0}.cursor{display:inline-block;width:.24em;height:.6em;margin-left:.14em;vertical-align:baseline;background:var(--signal);animation:cursor-blink 1.05s steps(1,end) infinite}.is-typing .cursor{animation:none;opacity:1}@keyframes cursor-blink{0%,48%{opacity:1}49%,to{opacity:0}}@media(prefers-reduced-motion:reduce){.cursor{animation:none;opacity:1}}.site-nav{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 26px;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.site-nav a{padding-bottom:2px;border-bottom:1px solid transparent;transition:border-color .16s ease,color .16s ease}.site-nav a:hover{border-bottom-color:var(--ink)}.site-nav .nav-social{display:inline-flex;align-items:center;color:var(--mute)}.site-nav .nav-social:hover{color:var(--ink);border-bottom-color:transparent}.site-nav .nav-social svg{width:16px;height:16px}.site-nav .nav-divider{width:1px;height:13px;background:var(--rule-2)}.lang-switch{color:var(--mute)}.lang-switch:hover{color:var(--ink)}.button{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--ink);padding:13px 26px;background:transparent;color:var(--ink);font-family:var(--font-mono);font-size:.76rem;letter-spacing:.11em;text-transform:uppercase;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease}.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{display:inline-flex;align-items:center;gap:7px;border-bottom:1px solid var(--rule-2);padding-bottom:2px;color:var(--ink);transition:border-color .16s ease,color .16s ease}.text-link:hover{border-bottom-color:var(--signal);color:var(--signal)}.text-link--signal{color:var(--signal);border-bottom-color:#cf3a2066}.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;margin:0;font-family:var(--font-display);font-size:clamp(2.9rem,8.2vw,7rem);font-weight:700;line-height:.94;letter-spacing:-.045em}.hero-text{max-width:48ch;margin:clamp(28px,3.5vw,40px) 0 0;color:var(--ink-2);font-size:1.16rem;line-height:1.5}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:clamp(28px,3.5vw,40px) 0 0}.hero-facts{display:flex;flex-wrap:wrap;gap:10px 40px;margin:clamp(40px,5vw,56px) 0 0;padding:20px 0 0;border-top:1px solid var(--rule);list-style:none;color:var(--mute);font-family:var(--font-mono);font-size:.76rem;letter-spacing:.06em}.hero-facts strong{color:var(--ink);font-weight:500}.index-group+.index-group{margin-top:clamp(48px,6vw,68px)}.index-list{margin:0;padding:0;border-top:1px solid var(--ink);list-style:none}.index-row{display:grid;grid-template-columns:54px minmax(0,.9fr) minmax(0,1.5fr) 148px 116px;align-items:baseline;gap:8px 24px;padding:22px 0;border-bottom:1px solid var(--rule);transition:padding-left .22s var(--smooth),border-color .2s ease}.index-row:hover{padding-left:14px;border-bottom-color:var(--ink)}.index-num{color:var(--faint);font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em}.index-row h3{margin:0;font-family:var(--font-display);font-size:1.62rem;font-weight:700;letter-spacing:-.03em;line-height:1.1}.index-row:hover h3{color:var(--signal)}.index-desc{margin:0;color:var(--ink-2);font-size:.98rem;line-height:1.45}.index-stack{color:var(--mute);font-family:var(--font-mono);font-size:.74rem;letter-spacing:.04em}.index-meta{display:flex;flex-direction:column;align-items:flex-end;gap:5px;text-align:right}.status{color:var(--mute);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}.status.active,.status.beta{color:var(--ink)}.status.active:before,.status.beta:before{content:"";display:inline-block;width:5px;height:5px;margin-right:7px;vertical-align:2px;background:var(--signal)}.status.archived,.status.coming-soon{color:var(--faint)}.index-stats{display:flex;gap:12px;margin:0;padding:0;list-style:none;color:var(--faint);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.04em}.index-row--muted h3{color:var(--mute)}.index-row--muted:hover{padding-left:0;border-bottom-color:var(--rule)}.index-row--muted:hover h3{color:var(--mute)}.oeffigo-band{padding:clamp(64px,8vw,100px) 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);background:var(--paper-2)}.oeffigo-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.72fr);gap:clamp(36px,5vw,72px);align-items:start}.oeffigo-headline{display:flex;align-items:center;gap:20px;margin:26px 0 0}.oeffigo-icon{width:72px;height:72px;border:1px solid var(--rule-2);object-fit:contain}.oeffigo-headline h2{margin:0;font-family:var(--font-display);font-size:clamp(2.4rem,5vw,3.6rem);font-weight:700;letter-spacing:-.04em;line-height:1}.oeffigo-tagline{margin:6px 0 0;color:var(--ink-2);font-size:1.05rem}.oeffigo-lead{max-width:56ch;margin:26px 0 0;color:var(--ink-2);font-size:1.02rem;line-height:1.6}.oeffigo-meta{display:flex;flex-wrap:wrap;gap:8px 32px;margin:26px 0 0;padding:16px 0 0;border-top:1px solid var(--rule);list-style:none;color:var(--mute);font-family:var(--font-mono);font-size:.74rem;letter-spacing:.05em}.oeffigo-actions{display:flex;flex-wrap:wrap;gap:12px;margin:30px 0 0}.oeffigo-features{margin:0;padding:0;border-top:1px solid var(--ink);list-style:none}.oeffigo-feature{display:grid;grid-template-columns:26px minmax(0,1fr);gap:4px 14px;padding:18px 0;border-bottom:1px solid var(--rule)}.oeffigo-feature-icon{display:block;color:var(--signal)}.oeffigo-feature-icon svg{width:18px;height:18px}.oeffigo-feature h3{margin:0;font-size:1rem;font-weight:600;letter-spacing:-.01em}.oeffigo-feature p{grid-column:2;margin:4px 0 0;color:var(--ink-2);font-size:.94rem;line-height:1.5}.note-block{margin:30px 0 0;border:1px solid var(--rule-2);padding:22px 24px;background:var(--paper)}.note-block h3{margin:8px 0 0;font-family:var(--font-display);font-size:1.24rem;font-weight:700;letter-spacing:-.02em}.note-block p{margin:10px 0 0;color:var(--ink-2);font-size:.96rem;line-height:1.55}.note-block ul{margin:16px 0 0;padding:0;list-style:none;border-top:1px solid var(--rule)}.note-block li{padding:9px 0;border-bottom:1px solid var(--rule);color:var(--ink-2);font-size:.92rem}.note-block li:last-child{border-bottom:0;padding-bottom:0}.note-actions{display:flex;flex-wrap:wrap;gap:8px 24px;margin:18px 0 0;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase}.note-actions a{display:inline-flex;align-items:center;gap:6px;border-bottom:1px solid var(--rule-2);padding-bottom:2px}.note-actions a:hover{color:var(--signal);border-bottom-color:var(--signal)}.oeffigo-datanote{margin:24px 0 0;color:var(--mute);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;margin:24px 0 0;font-family:var(--font-display);font-size:clamp(2.6rem,7vw,5.4rem);font-weight:700;line-height:.96;letter-spacing:-.045em}.oeffigo-page-lead{max-width:60ch;margin:28px 0 0;color:var(--ink-2);font-size:1.12rem;line-height:1.55}.oeffigo-shot{display:block;width:100%;height:auto;max-width:300px;margin-inline:auto;border:1px solid var(--rule-2)}.oeffigo-feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));column-gap:36px;border-top:1px solid var(--ink)}.oeffigo-feature-grid .oeffigo-feature{padding:22px 0 26px}.data-list{margin:0;border-top:1px solid var(--ink)}.data-list>div{display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px 32px;padding:18px 0;border-bottom:1px solid var(--rule)}.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{margin:0;color:var(--ink-2);font-size:.98rem;line-height:1.55}.column-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;border-top:1px solid var(--ink)}.column-grid>*{padding:26px 30px 34px 0;border-right:1px solid var(--rule)}.column-grid>*:last-child{border-right:0}.skill-group h3,.service-item h3{margin:0 0 14px;font-family:var(--font-display);font-size:1.18rem;font-weight:700;letter-spacing:-.02em}.skill-group ul{margin:0;padding:0;list-style:none}.skill-group li{padding:7px 0;border-bottom:1px solid var(--rule);color:var(--ink-2);font-family:var(--font-mono);font-size:.8rem;letter-spacing:.02em}.skill-group li:last-child{border-bottom:0}.service-item p{margin:0;color:var(--ink-2);font-size:.98rem;line-height:1.55}.services-lead{max-width:54ch;margin:0 0 36px;color:var(--ink-2);font-size:1.06rem}.split-section{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:clamp(28px,5vw,72px);align-items:start}.split-section h2{margin:10px 0 0;font-family:var(--font-display);font-size:clamp(1.9rem,3.6vw,2.8rem);font-weight:700;letter-spacing:-.035em;line-height:1.05}.split-section>p{margin:0;color:var(--ink-2);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{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:20px 0;font-family:var(--font-display);font-size:1.12rem;font-weight:600;letter-spacing:-.015em;cursor:pointer;list-style:none;transition:color .16s ease}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:hover{color:var(--signal)}.faq-item summary:after{content:"+";flex:none;color:var(--mute);font-family:var(--font-mono);font-size:1.1rem;font-weight:400;transition:transform .22s var(--smooth),color .16s ease}.faq-item.is-open summary:after{transform:rotate(45deg);color:var(--signal)}.faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s var(--smooth)}.faq-item.is-open .faq-answer{grid-template-rows:1fr}.faq-answer>div{overflow:hidden}.faq-answer p{max-width:68ch;margin:0;padding:0 0 22px;color:var(--ink-2);line-height:1.65}.contact-section{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,5vw,72px);align-items:start}.contact-section h2{margin:10px 0 0;font-family:var(--font-display);font-size:clamp(2.1rem,4.6vw,3.4rem);font-weight:700;letter-spacing:-.04em;line-height:1}.contact-note{max-width:40ch;margin:20px 0 0;color:var(--ink-2);line-height:1.6}.contact-form{display:grid;gap:22px}.contact-field{display:grid;gap:8px}.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{width:100%;border:0;border-bottom:1px solid var(--rule-2);padding:10px 0;background:transparent;color:var(--ink);font-family:var(--font-sans);font-size:1rem;transition:border-color .16s ease}.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{outline:none;border-bottom-color:var(--signal)}.contact-honeypot{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.contact-submit{justify-self:start;border:1px solid var(--ink);padding:13px 30px;background:var(--ink);color:var(--paper);font-family:var(--font-mono);font-size:.76rem;letter-spacing:.11em;text-transform:uppercase;cursor:pointer;transition:background .16s ease,border-color .16s ease}.contact-submit:hover:not(:disabled){background:var(--signal);border-color:var(--signal)}.contact-submit:disabled{opacity:.55;cursor:progress}.contact-status{margin:0;min-height:1.2em;font-size:.92rem}.contact-status.is-success{color:var(--ink)}.contact-status.is-error{color:var(--signal-ink)}.contact-privacy-note{margin:0;color:var(--mute);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{display:flex;flex-wrap:wrap;gap:26px;margin:28px 0 0;padding:20px 0 0;border-top:1px solid var(--rule);font-family:var(--font-mono);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase}.social-row a{display:inline-flex;align-items:center;gap:8px;color:var(--mute);transition:color .16s ease}.social-row a:hover{color:var(--signal)}.social-row svg{width:16px;height:16px}.social-row--icons{gap:14px;margin:0;padding:0;border-top:0}.social-row--icons a{color:var(--mute)}.social-row--icons a:hover{color:var(--ink)}.nav-socials{align-items:center}.site-footer{width:var(--shell);margin:clamp(60px,8vw,96px) auto 0;padding:26px 0 40px;border-top:1px solid var(--ink);color:var(--mute);font-family:var(--font-mono);font-size:.74rem;letter-spacing:.05em}.footer-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:18px 32px}.footer-brand strong{color:var(--ink);font-weight:500;letter-spacing:.1em;text-transform:uppercase}.site-footer p{margin:0}.footer-links{display:flex;flex-wrap:wrap;gap:20px}.site-footer a{border-bottom:1px solid transparent;padding-bottom:1px}.site-footer a:hover{color:var(--ink);border-bottom-color:var(--ink)}.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;margin-top:26px;padding-top:16px;border-top:1px solid var(--rule);color:var(--faint)}.project-detail{padding:34px 0 0}.back-link{display:inline-flex;align-items:center;gap:8px;color:var(--mute);font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase}.back-link:before{content:"←"}.back-link:hover{color:var(--signal)}.project-detail-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.7fr);gap:clamp(32px,5vw,68px);align-items:start;padding:clamp(36px,5vw,56px) 0 clamp(40px,5vw,60px);border-bottom:1px solid var(--ink)}.project-detail-logo{width:60px;height:60px;margin-bottom:22px;border:1px solid var(--rule-2);object-fit:contain}.project-kicker{display:flex;align-items:baseline;gap:18px;color:var(--mute);font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase}.project-detail-hero h1{margin:18px 0 0;font-family:var(--font-display);font-size:clamp(2.6rem,6.4vw,5rem);font-weight:700;letter-spacing:-.045em;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;margin:18px 0 0;color:var(--ink-2);line-height:1.6}.project-actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:12px;margin:32px 0 0}.actions-note{margin:0;color:var(--mute);font-size:.9rem}.install-button,.download-button{flex-direction:column;align-items:flex-start;gap:4px;padding:12px 22px;text-align:left}.download-button{background:var(--ink);color:var(--paper)}.download-button:hover{background:var(--signal);border-color:var(--signal)}.install-button small,.download-button small{font-size:.68rem;letter-spacing:.04em;text-transform:none;opacity:.72}.install-button[data-copy-state=success]{border-color:var(--signal);color:var(--signal)}.download-menu{position:relative}.download-options{position:absolute;z-index:15;top:calc(100% + 6px);left:0;display:none;min-width:280px;border:1px solid var(--ink);background:var(--paper)}.download-menu[data-open=true] .download-options{display:block}.download-options a{display:block;padding:14px 18px;border-bottom:1px solid var(--rule)}.download-options a:last-child{border-bottom:0}.download-options a:hover{background:var(--paper-2)}.download-option-meta{display:block;color:var(--mute);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}.download-options strong{display:block;margin:4px 0 2px;font-size:.98rem}.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{display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid var(--rule)}.project-meta-grid dt{color:var(--mute);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.project-meta-grid dd{margin:0;font-family:var(--font-mono);font-size:.8rem;text-align:right}.metadata-note{margin:14px 0 0;color:var(--faint);font-size:.8rem;line-height:1.5}.project-showcase{padding:clamp(36px,5vw,56px) 0;border-bottom:1px solid var(--rule)}.showcase-image{display:block;width:100%;height:auto;border:1px solid var(--rule-2);background:var(--paper-2)}.showcase-image.contain{object-fit:contain}.showcase-image.cover{object-fit:cover}.case-study-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;padding:clamp(36px,5vw,56px) 0 0;border-top:0}.case-study-panel article{padding:24px 28px 30px 0;border-top:1px solid var(--ink);border-right:1px solid var(--rule)}.case-study-panel article:last-child{border-right:0}.case-study-panel span{display:block;margin-bottom:12px;color:var(--signal);font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-track);text-transform:uppercase}.case-study-panel p{margin:0;color:var(--ink-2);font-size:.96rem;line-height:1.55}.release-panel{display:grid;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;border-top:1px solid var(--ink)}.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{margin:8px 0 0;font-family:var(--font-display);font-size:2rem;font-weight:700;letter-spacing:-.035em}.release-panel ul,.highlights-panel ul{margin:0;padding:0;list-style:none}.release-panel li,.highlights-panel li{padding:11px 0;border-bottom:1px solid var(--rule);color:var(--ink-2);font-size:.96rem;line-height:1.5}.project-detail-grid{display:grid;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;border-top:1px solid var(--ink)}.command-panel h2,.highlights-panel h2{margin:0 0 18px;font-size:.86rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.command-block{margin-bottom:14px}.command-block span{display:block;margin-bottom:6px;color:var(--mute);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.command-block code{display:block;overflow-x:auto;border:1px solid var(--rule-2);padding:12px 14px;background:var(--paper-2);font-family:var(--font-mono);font-size:.82rem}.showcase-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;margin:clamp(40px,5vw,64px) 0 0}.showcase-gallery figure{margin:0}.legal-page{max-width:720px;margin-inline:auto;padding-block:clamp(48px,8vw,88px)}.legal-page h1{margin:0 0 8px;font-family:var(--font-display);font-size:clamp(2rem,4.4vw,3rem);font-weight:700;letter-spacing:-.04em}.legal-page h2{margin:44px 0 12px;font-size:.86rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.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{margin-bottom:40px;color:var(--mute);font-family:var(--font-mono);font-size:.76rem;letter-spacing:.06em}.legal-placeholder{padding:1px 6px;background:var(--paper-3);font-weight:600}.legal-draft-note{margin-bottom:32px;border-left:2px solid var(--signal);padding:14px 18px;background:var(--paper-2);font-size:.92rem}@media(max-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}}@media(max-width:860px){:root{--shell: min(1180px, calc(100% - 40px) )}body{font-size:16px}.site-header{position:relative;flex-direction:column;align-items:flex-start;gap:14px;padding-bottom:16px}.site-nav{width:100%;gap:10px 16px;font-size:.72rem}.site-nav .nav-divider,.site-nav .nav-socials{display:none}.lang-switch{position:absolute;top:28px;right:0}.column-grid>*,.case-study-panel article,.oeffigo-feature-grid .oeffigo-feature{padding-right:0;border-right:0;border-bottom:1px solid var(--rule)}.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{grid-column:2;flex-direction:row;align-items:baseline;gap:14px;text-align:left}.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}}@media(max-width:560px){.hero-actions .button,.oeffigo-actions .button,.project-actions .button{flex:1 1 auto;justify-content:center}.footer-top,.footer-bottom{flex-direction:column}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
