@font-face{font-family:DM Mono;font-weight:400;font-display:swap;src:url(/common/fonts/DMMono/DMMono-400.woff2) format("woff2")}@font-face{font-family:DM Mono;font-weight:500;font-display:swap;src:url(/common/fonts/DMMono/DMMono-500.woff2) format("woff2")}@font-face{font-family:"DM Serif Display";font-weight:400;font-display:swap;src:url(/common/fonts/DMSerifDisplay/DMSerifDisplay-400.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-weight:400;font-display:swap;src:url(/common/fonts/IBMPlexMono/IBMPlexMono-400.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-weight:500;font-display:swap;src:url(/common/fonts/IBMPlexMono/IBMPlexMono-500.woff2) format("woff2")}@font-face{font-family:Instrument Sans;font-weight:400;font-display:swap;src:url(/common/fonts/InstrumentSans/InstrumentSans-400.woff2) format("woff2")}@font-face{font-family:Instrument Sans;font-weight:500;font-display:swap;src:url(/common/fonts/InstrumentSans/InstrumentSans-500.woff2) format("woff2")}@font-face{font-family:Instrument Sans;font-weight:600;font-display:swap;src:url(/common/fonts/InstrumentSans/InstrumentSans-600.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-weight:400;font-display:swap;src:url(/common/fonts/JetBrainsMono/JetBrainsMono-400.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-weight:500;font-display:swap;src:url(/common/fonts/JetBrainsMono/JetBrainsMono-500.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-weight:600;font-display:swap;src:url(/common/fonts/JetBrainsMono/JetBrainsMono-600.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-weight:700;font-display:swap;src:url(/common/fonts/PlayfairDisplay/PlayfairDisplay-700.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-weight:700;font-style:italic;font-display:swap;src:url(/common/fonts/PlayfairDisplay/PlayfairDisplay-700i.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-weight:900;font-display:swap;src:url(/common/fonts/PlayfairDisplay/PlayfairDisplay-900.woff2) format("woff2")}@font-face{font-family:Playfair Display;font-weight:900;font-style:italic;font-display:swap;src:url(/common/fonts/PlayfairDisplay/PlayfairDisplay-900i.woff2) format("woff2")}@font-face{font-family:"Source Serif 4";font-weight:400;font-display:swap;src:url(/common/fonts/SourceSerif4/SourceSerif4-400.woff2) format("woff2")}@font-face{font-family:"Source Serif 4";font-weight:400;font-style:italic;font-display:swap;src:url(/common/fonts/SourceSerif4/SourceSerif4-400i.woff2) format("woff2")}@font-face{font-family:"Source Serif 4";font-weight:500;font-display:swap;src:url(/common/fonts/SourceSerif4/SourceSerif4-500.woff2) format("woff2")}:root{--r-space-1: 4px;--r-space-2: 8px;--r-space-3: 12px;--r-space-4: 16px;--r-space-5: 20px;--r-space-6: 24px;--r-space-8: 32px;--r-space-10: 40px;--r-space-12: 48px;--r-space-16: 64px;--r-radius-xs: 3px;--r-radius-sm: 4px;--r-radius-md: 6px;--r-radius-lg: 8px;--r-radius-xl: 14px;--pad: 1;--r-font-mono: "DM Mono", "JetBrains Mono", "IBM Plex Mono", ui-monospace, monospace;--r-font-system: system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-site=tech]{--r-bg: #fafaf7;--r-fg: #1a1a17;--r-muted: #6b6b66;--r-border: #e6e4dd;--r-accent: oklch(.55 .16 245);--accent-glow: rgba(56, 165, 255, .35);--r-font-display: "DM Serif Display", serif;--r-font-body: "Instrument Sans", system-ui, sans-serif;--r-font-mono: "DM Mono", monospace;background:var(--r-bg);color:var(--r-fg);font-family:var(--r-font-body)}[data-site=tech][data-theme=dark]{--r-bg: #0e1116;--r-fg: #e8eaef;--r-muted: #9aa3b0;--r-border: #1e242e;--r-accent: oklch(.72 .14 240);--accent-glow: rgba(56, 165, 255, .25)}.tech-root{--bg: #fafaf7;--fg: #1a1a17;--muted: #6b6b66;--tertiary: #9a978f;--border: #e6e4dd;--border-strong: #d0cdc4;--accent: oklch(.55 .16 245);--accent-soft: color-mix(in oklch, var(--accent) 8%, transparent);--accent-glow: color-mix(in oklch, var(--accent) 20%, transparent);--tag-bg: rgba(20,17,13,.04);--hero-tint: radial-gradient(ellipse 80% 60% at 70% 0%, var(--accent-soft), transparent 70%);--strap-bg: #14110d;--strap-fg: #f6f3ec;--strap-fg-muted: #d6d2c8;--grid-line: rgba(20,17,13,.05);--node-color: var(--accent);background:var(--bg);color:var(--fg);font-family:Instrument Sans,system-ui,sans-serif;padding:calc(40px * var(--pad)) calc(48px * var(--pad)) calc(40px * var(--pad));position:relative}.tech-theme-dark{--bg: #0e1116;--fg: #e8eaef;--muted: #9aa3b0;--tertiary: #6c7686;--border: #1e242e;--border-strong: #2c3340;--accent: oklch(.72 .14 240);--accent-soft: color-mix(in oklch, var(--accent) 12%, transparent);--accent-glow: color-mix(in oklch, var(--accent) 30%, transparent);--tag-bg: rgba(232, 234, 239, .05);--hero-tint: radial-gradient(ellipse 80% 60% at 70% 0%, var(--accent-soft), transparent 70%);--strap-bg: #161a22;--strap-fg: #e8eaef;--strap-fg-muted: #9aa3b0;--grid-line: rgba(122, 168, 230, .06);--node-color: var(--accent)}.tech-root:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:var(--hero-tint),linear-gradient(var(--grid-line) 1px,transparent 1px) 0 0 / 32px 32px,linear-gradient(90deg,var(--grid-line) 1px,transparent 1px) 0 0 / 32px 32px;mask-image:linear-gradient(180deg,#000 0,#000 480px,transparent 720px);-webkit-mask-image:linear-gradient(180deg,#000 0,#000 480px,transparent 720px)}.tech-root>*{position:relative;z-index:3}.tech-dna{position:absolute;top:0;left:0;right:0;height:900px;pointer-events:none;z-index:1;overflow:hidden;mask-image:linear-gradient(180deg,#000 0%,#000 75%,transparent 100%);-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 75%,transparent 100%)}.tech-theme-light .tech-dna{opacity:.45}.tech-theme-dark .tech-dna{opacity:.55}.tech-dna-canvas{position:absolute;inset:0}.tech-dna-canvas canvas{display:block;width:100%;height:100%}.tech-nav{display:flex;justify-content:space-between;align-items:center;padding-bottom:calc(28px * var(--pad));border-bottom:.5px solid var(--border)}.tech-logo{font-family:DM Mono,monospace;font-size:14px;font-weight:500;letter-spacing:-.02em}.tech-logo span{color:var(--tertiary)}.tech-nav-links{display:flex;gap:24px}.tech-nav-links a{font-size:13px;color:var(--muted);text-decoration:none}.tech-nav-links a:hover{color:var(--fg)}.tech-nav-meta{display:flex;align-items:center;gap:8px;font-family:DM Mono,monospace;font-size:10px;color:var(--tertiary);letter-spacing:.08em}.tech-status-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block}.tech-lang-switch{display:inline-flex;gap:2px;padding:2px;border-radius:999px;background:color-mix(in oklch,var(--fg) 6%,transparent)}.tech-lang-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.08em;color:var(--secondary);background:transparent;border:0;border-radius:999px;cursor:pointer;transition:background .12s,color .12s}.tech-lang-btn:hover{color:var(--fg)}.tech-lang-btn.active{background:var(--fg);color:var(--bg)}.tech-lang-flag{font-size:13px;line-height:1}.tech-lang-code{font-weight:500}.tech-hero{padding:calc(64px * var(--pad)) 0 calc(48px * var(--pad));display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end}.tech-hero-label{font-family:DM Mono,monospace;font-size:11px;color:var(--tertiary);letter-spacing:.12em;text-transform:uppercase;margin-bottom:22px}.tech-hero-title{font-family:"DM Serif Display",serif;font-size:clamp(36px,5vw,50px);line-height:1.06;color:var(--fg);margin:0;font-weight:400;letter-spacing:-.01em}.tech-hero-title em{font-style:italic;color:var(--accent)}.tech-hero-right{padding-bottom:6px}.tech-wordmark{font-family:"DM Serif Display",serif;font-size:clamp(54px,8vw,78px);font-weight:400;line-height:1;letter-spacing:-.02em;color:var(--fg);margin-top:18px}.tech-wordmark-tld{color:var(--accent);opacity:1;font-style:italic;font-weight:400;text-shadow:0 0 22px var(--accent-glow)}.tech-arrow{display:inline-block;transition:transform .2s}.tech-cta-primary:hover .tech-arrow{transform:translate(4px)}.tech-hero-desc{font-size:15px;line-height:1.7;color:var(--muted);margin:0 0 24px}.tech-cta-row{display:flex;gap:10px;flex-wrap:wrap}.tech-cta{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--fg);border:.5px solid var(--border-strong);padding:10px 18px;border-radius:6px;text-decoration:none;transition:background .12s}.tech-cta-primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}.tech-cta-primary:hover{background:var(--accent);color:#fff}.tech-cta-ghost{color:var(--muted);border-color:var(--border)}.tech-cta-ghost:hover{color:var(--fg);border-color:var(--border-strong)}.tech-services{display:grid;grid-template-columns:repeat(3,1fr);border-top:.5px solid var(--border);border-bottom:.5px solid var(--border)}.tech-service{padding:calc(28px * var(--pad)) 22px;border-right:.5px solid var(--border);display:flex;flex-direction:column;gap:8px}.tech-service:first-child{padding-left:0}.tech-service:last-child{border-right:none;padding-right:0}.tech-service-num{font-family:DM Mono,monospace;font-size:10px;color:var(--accent);letter-spacing:.08em}.tech-service-title{font-size:14px;font-weight:600}.tech-service-desc{font-size:12px;color:var(--muted);line-height:1.6}.tech-service-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.tech-service-tags span{font-family:DM Mono,monospace;font-size:10px;color:var(--muted);background:var(--tag-bg);padding:2px 6px;border-radius:3px}.tech-projects{display:grid;grid-template-columns:repeat(2,1fr);border-top:.5px solid var(--border);border-bottom:.5px solid var(--border);margin-top:0}.tech-project{padding:calc(28px * var(--pad)) 22px;border-right:.5px solid var(--border);display:flex;flex-direction:column;gap:8px}.tech-project:first-child{padding-left:0}.tech-project:last-child{border-right:none;padding-right:0}.tech-project-num{font-family:DM Mono,monospace;font-size:10px;color:var(--accent);letter-spacing:.08em}.tech-project-title{font-size:14px;font-weight:600}.tech-project-desc{font-size:12px;color:var(--muted);line-height:1.6}.tech-project-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.tech-project-tags span{font-family:DM Mono,monospace;font-size:10px;color:var(--muted);background:var(--tag-bg);padding:2px 6px;border-radius:3px}.tech-project-more{text-align:center;padding:12px 0;border-bottom:.5px solid var(--border)}.tech-project-more a{font-size:13px;color:var(--accent);text-decoration:none;font-weight:500}.tech-project-more a:hover{text-decoration:underline}.tech-fking-strap{margin-top:calc(28px * var(--pad));padding:20px 22px;background:var(--strap-bg);color:var(--strap-fg);border-radius:8px;display:flex;align-items:center;gap:18px}.tech-fking-mark{font-family:Playfair Display,serif;font-size:22px;font-weight:900;letter-spacing:-.02em;color:var(--strap-fg)}.tech-fking-mark em{font-style:italic}.tech-fking-text{flex:1;font-size:13px;line-height:1.5;color:var(--strap-fg-muted)}.tech-fking-arrow{font-size:18px;color:var(--strap-fg-muted)}.tech-footer{display:flex;justify-content:space-between;align-items:center;padding-top:calc(24px * var(--pad))}.tech-footer-text{font-family:DM Mono,monospace;font-size:11px;color:var(--tertiary)}.tech-tags{display:flex;gap:6px}.tech-tag{font-family:DM Mono,monospace;font-size:10px;padding:3px 7px;border-radius:4px;color:var(--muted);border:.5px solid var(--border-strong)}.tech-footer-legal{font-family:DM Mono,monospace;font-size:11px;color:var(--tertiary);opacity:.6;margin-top:8px}.tech-footer-legal{font-family:DM Mono,monospace;font-size:11px;color:var(--tertiary);opacity:.6;text-align:center;padding-top:12px}.tech-footer-legal a{color:inherit;text-decoration:none;border-bottom:.5px solid currentColor}.tech-footer-legal a:hover{opacity:1}.site-hamburger-wrapper{position:fixed;top:.75rem;right:.75rem;z-index:1000}.tech-hamburger,.ai-hamburger,.fk-hamburger{display:none;flex-direction:column;gap:.3125rem;background:none;border:none;cursor:pointer;padding:.5rem;min-width:2.75rem;min-height:2.75rem;justify-content:center;align-items:center}.tech-hamburger span,.ai-hamburger span,.fk-hamburger span{display:block;width:1.375rem;height:.09375rem;background:var(--fg);transition:transform .2s,opacity .2s}.tech-hamburger.active span:nth-child(1),.ai-hamburger.active span:nth-child(1),.fk-hamburger.active span:nth-child(1){transform:translateY(.40625rem) rotate(45deg)}.tech-hamburger.active span:nth-child(2),.ai-hamburger.active span:nth-child(2),.fk-hamburger.active span:nth-child(2){opacity:0}.tech-hamburger.active span:nth-child(3),.ai-hamburger.active span:nth-child(3),.fk-hamburger.active span:nth-child(3){transform:translateY(-.40625rem) rotate(-45deg)}.tech-mobile-menu,.ai-mobile-menu,.fk-mobile-menu{display:none;flex-direction:column;gap:0;position:fixed;top:3.5rem;left:.75rem;right:.75rem;width:auto;max-height:70vh;overflow-y:auto;background:var(--bg);border:.5px solid var(--border);border-radius:.75rem;box-shadow:0 8px 32px #0000004d;padding:.5rem 1rem;z-index:999}.tech-mobile-menu.menu-open,.ai-mobile-menu.menu-open,.fk-mobile-menu.menu-open{display:flex}.tech-mobile-menu a,.ai-mobile-menu a,.fk-mobile-menu a{padding:.75rem 0;font-size:.9375rem;color:var(--fg);text-decoration:none;border-bottom:.5px solid var(--border);min-height:2.75rem;display:flex;align-items:center}.tech-mobile-menu hr,.ai-mobile-menu hr,.fk-mobile-menu hr{border:none;border-top:.5px solid var(--border);margin:.25rem 0}.tech-mobile-menu a:nth-last-child(-n+2),.ai-mobile-menu a:nth-last-child(-n+2),.fk-mobile-menu a:nth-last-child(-n+2){border-bottom:none;font-size:.75rem;color:var(--tertiary)}.site-lang-switch-mobile{display:none}.back-to-top{display:none;position:fixed;bottom:1rem;right:1rem;width:2.5rem;height:2.5rem;border-radius:50%;border:.5px solid var(--border);background:var(--bg);color:var(--fg);font-size:1rem;cursor:pointer;z-index:997;align-items:center;justify-content:center;box-shadow:0 2px 8px #0003;transition:opacity .2s}.back-to-top.visible{display:flex}.back-to-top:hover{background:var(--border)}@media(max-width:768px){.tech-hamburger{display:flex}.tech-nav-links{display:none}.tech-hero{grid-template-columns:1fr;gap:1.5rem}.tech-wordmark{font-size:clamp(2.25rem,12vw,3.375rem)}.tech-services{grid-template-columns:1fr;gap:1rem}.tech-dna{display:none}.site-card-frame{border-radius:0}.tech-footer{flex-direction:column;gap:.75rem}.tech-tags{flex-wrap:wrap;gap:.25rem;justify-content:center}.tech-tag{font-size:.5625rem;padding:.1875rem .4375rem}.back-to-top{width:2.25rem;height:2.25rem;font-size:.875rem;bottom:.75rem;right:.75rem}.site-lang-switch-mobile{display:flex;position:relative;z-index:998;gap:.25rem;padding:.75rem .75rem 0;margin-bottom:.5rem}.tech-nav-status{display:none}.site-lang-switch-mobile .tech-lang-switch{display:flex;gap:.25rem}.site-lang-switch-mobile .tech-lang-btn{font-size:.75rem;padding:.25rem .5rem;border-radius:.25rem}}.site-card-frame{width:100%;max-width:900px;margin:0 auto;border-radius:14px;overflow:hidden;background:var(--card-bg, var(--bg));border:.5px solid var(--card-border, var(--border));box-shadow:0 1px 0 var(--card-border, var(--border)),0 30px 60px -20px var(--card-shadow, rgba(0,0,0,.18)),0 8px 20px -8px var(--card-shadow-sm, rgba(0,0,0,.1))}[data-site=tech] .site-card-frame{--card-bg: var(--bg);--card-border: #d8d4cb;--card-shadow: rgba(20,17,13,.18);--card-shadow-sm: rgba(20,17,13,.1)}[data-site=tech][data-theme=dark] .site-card-frame{--card-bg: #0d0f0e;--card-border: #1e2820;--card-shadow: rgba(0,0,0,.55);--card-shadow-sm: rgba(0,0,0,.35)}[data-site=fking] .site-card-frame{--card-bg: var(--bg);--card-border: #d4d0c4;--card-shadow: rgba(20,17,13,.18);--card-shadow-sm: rgba(20,17,13,.1)}[data-site=fking][data-theme=dark] .site-card-frame{--card-bg: #161310;--card-border: #2e2920;--card-shadow: rgba(0,0,0,.55);--card-shadow-sm: rgba(0,0,0,.35)}[data-site=ai] .site-card-frame{--card-bg: var(--r-bg, #0d0f0e);--card-border: var(--r-line, #1e2820);--card-shadow: rgba(0,0,0,.55);--card-shadow-sm: rgba(0,0,0,.35)}
