.code-decor{z-index:0;pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.code-decor-mark{font-family:var(--font-mono);font-size:var(--s);color:var(--decor-color);white-space:nowrap;max-width:36vw;transform:rotate(var(--r,0deg));font-weight:200;line-height:1;position:absolute;overflow:hidden}.code-decor-mark--tl{top:var(--y);left:var(--x)}.code-decor-mark--tr{top:var(--y);right:var(--x)}.code-decor-mark--bl{bottom:var(--y);left:var(--x)}.code-decor-mark--br{bottom:var(--y);right:var(--x)}@media (max-width:768px){.code-decor{display:none}}
.hero{isolation:isolate;align-items:center;min-height:100vh;padding-top:5.5rem;display:flex;position:relative;overflow:hidden}.hero-content{z-index:1;padding-top:4rem;padding-bottom:4rem;position:relative}.hero-title{letter-spacing:-.03em;color:var(--text-color);max-width:900px;margin-bottom:2rem;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:800;line-height:1.1}.hero-subtitle{color:var(--muted-color);max-width:640px;margin-bottom:3rem;font-size:clamp(1rem,2vw,1.25rem);line-height:1.7}.hero-actions{gap:1rem;display:flex}.btn{font-family:var(--font-mono);cursor:pointer;border:1px solid #0000;border-radius:1rem;justify-content:center;align-items:center;padding:1rem 1.5rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary{background-color:var(--text-color);color:var(--bg-color);border-color:var(--text-color)}.btn-primary:hover{color:var(--text-color);border-color:var(--text-color);background-color:#0000}.btn-secondary{color:var(--text-color);border-color:var(--border-color);background-color:#0000}.btn-secondary:hover{background-color:var(--hover-fill);border-color:var(--text-color)}@media (max-width:768px){.hero-actions{flex-direction:column}.btn{width:100%}}
.about{border-top:1px solid var(--border-color);padding:6rem 0}.about-grid{grid-template-columns:1fr 2fr;align-items:start;gap:4rem;display:grid}.about-label{font-family:var(--font-mono);letter-spacing:0;color:var(--text-color);font-size:clamp(3rem,8vw,6rem);font-weight:600;line-height:1}.about-text{letter-spacing:normal;text-wrap:pretty;color:var(--text-color);margin-bottom:2rem;font-size:clamp(1rem,2vw,1.125rem);line-height:1.65}.about-tech{font-family:var(--font-mono);color:var(--muted-soft);letter-spacing:.02em;font-size:.875rem}@media (max-width:768px){.about-grid{grid-template-columns:1fr;gap:2rem}.about-label{font-size:clamp(2.5rem,12vw,4rem)}}
.services{border-top:1px solid var(--border-color);padding:6rem 0}.services-title{letter-spacing:-.03em;color:var(--text-color);margin-bottom:3rem;font-size:clamp(2rem,5vw,3rem);font-weight:800}.services-grid{background-color:var(--text-color);border:1px solid var(--text-color);grid-template-columns:repeat(2,1fr);gap:1px;display:grid}.service-card{background-color:var(--bg-color);color:var(--text-color);cursor:default;padding:2rem;transition:background-color .3s,color .3s}.service-card:hover{background-color:var(--text-color);color:var(--bg-color)}.service-id{font-family:var(--font-mono);opacity:.5;margin-bottom:1rem;font-size:.75rem;display:block}.service-name{margin-bottom:1rem;font-size:1.25rem;font-weight:700}.service-desc{font-size:.9375rem;line-height:1.7}@media (max-width:768px){.services-grid{grid-template-columns:1fr}}
.contact{border-top:1px solid var(--border-color);padding:clamp(4rem,10vw,6rem) 0}.contact-header{max-width:720px;margin-bottom:3rem}.contact-title{letter-spacing:-.03em;color:var(--text-color);margin-bottom:1.5rem;font-size:clamp(2rem,5vw,3rem);font-weight:800}.contact-intro{color:var(--text-color);font-size:clamp(1rem,2vw,1.125rem);line-height:1.7}.contact-chat-wrapper{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.contact-topics{background-color:var(--surface-color);border:1px solid var(--text-color);border-radius:0;width:90%;max-width:600px;margin-top:1.5rem;padding:1.375rem 1.5rem 1.5rem}.contact-topics-title{letter-spacing:-.03em;color:var(--text-color);text-align:center;margin-bottom:.625rem;font-size:1.125rem;font-weight:800}.contact-topics-intro{color:var(--text-color);text-align:center;margin-bottom:1.25rem;font-size:.9375rem;line-height:1.55}.contact-topics-list{flex-wrap:wrap;justify-content:center;gap:.625rem;margin:0;padding:0;list-style:none;display:flex}button.contact-topic{appearance:none;font-family:var(--font-sans);color:var(--text-color);background-color:var(--surface-color);border:1px solid var(--text-color);cursor:pointer;border-radius:0;margin:0;padding:.625rem 1rem;font-size:.875rem;font-weight:600;line-height:1.35;transition:background-color .2s,color .2s}button.contact-topic:hover:not(:disabled){background-color:var(--text-color);color:var(--bg-color)}button.contact-topic:active:not(:disabled){opacity:.85}button.contact-topic:disabled{opacity:.35;cursor:not-allowed}.chat-widget{border:1px solid var(--chat-border);background-color:var(--surface-color);width:90%;max-width:600px;height:500px;box-shadow:var(--chat-shadow);border-radius:20px;flex-direction:column;display:flex;position:relative;overflow:hidden}.chat-consent{z-index:2;background-color:var(--chat-consent-bg);border:2px dashed var(--chat-consent-border);border-radius:20px;flex-direction:column;justify-content:center;gap:1rem;padding:1.5rem;display:flex;position:absolute;inset:0}.chat-consent-title{letter-spacing:-.03em;text-align:center;font-size:1.125rem;font-weight:800}.chat-consent-text{text-align:center;color:var(--text-color);font-size:.9375rem;line-height:1.55}.chat-consent-label{cursor:pointer;align-items:flex-start;gap:.75rem;font-size:.875rem;line-height:1.5;display:flex}.chat-consent-label input{width:1rem;height:1rem;accent-color:var(--accent-color);flex-shrink:0;margin-top:.2rem}button.chat-consent-button{appearance:none;font-family:var(--font-sans);color:var(--bg-color);background-color:var(--text-color);border:1px solid var(--text-color);cursor:pointer;border-radius:0;margin:.25rem auto 0;padding:.75rem 1.25rem;font-size:.875rem;font-weight:700;transition:background-color .2s,color .2s}button.chat-consent-button:hover:not(:disabled){background-color:var(--surface-color);color:var(--text-color)}button.chat-consent-button:disabled{opacity:.25;cursor:not-allowed}.chat-body--locked{opacity:.25;pointer-events:none}.chat-body{background-color:var(--surface-color);flex-direction:column;flex:1;gap:.625rem;padding:1.25rem;display:flex;overflow-y:auto}.chat-bubble{letter-spacing:-.01em;max-width:75%;padding:.75rem 1rem;font-size:.9375rem;line-height:1.45}.chat-bubble--bot{color:var(--chat-bot-color);background-color:var(--chat-bot-bg);border-radius:20px 20px 20px 6px;align-self:flex-start}.chat-bubble--user{color:var(--chat-user-color);background-color:var(--chat-user-bg);border-radius:20px 20px 6px;align-self:flex-end}.chat-input-bar{background-color:var(--surface-color);border-top:1px solid var(--chat-border);padding:.875rem 1rem}.chat-input-row{align-items:center;gap:.5rem;display:flex}.chat-input-field{min-width:0;font-family:var(--font-sans);color:var(--text-color);background-color:var(--surface-muted);border:1px solid var(--chat-border);border-radius:999px;outline:none;flex:1;padding:.75rem 1.125rem;font-size:.9375rem;transition:border-color .2s}.chat-input-field:disabled{opacity:.55;cursor:not-allowed}button.chat-send-button{appearance:none;width:2.5rem;height:2.5rem;color:var(--bg-color);background-color:var(--text-color);border:1px solid var(--text-color);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;transition:background-color .2s,color .2s,opacity .2s,transform .12s;display:flex}button.chat-send-button:hover:not(:disabled){background-color:var(--surface-color);color:var(--text-color)}button.chat-send-button:active:not(:disabled){opacity:.85;transform:scale(.88)}button.chat-send-button:active:not(:disabled) .chat-send-icon{transform:translate(1px)}button.chat-send-button:disabled{opacity:.35;cursor:not-allowed}.chat-send-icon{fill:currentColor;width:1rem;height:1rem;transition:transform .12s}.contact-footer{color:var(--muted-color);text-align:center;max-width:90%;font-size:.875rem}.contact-link{color:var(--text-color);text-underline-offset:3px;text-decoration:underline}.contact-link:hover{opacity:.6}@media (max-width:768px){.chat-widget{border-radius:16px;height:min(450px,70vh)}.chat-bubble{max-width:88%;font-size:.875rem}}
