@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700;800&family=Inter:wght@400;500;600;700&display=swap";*{box-sizing:border-box}body{margin:0}.mjcode-site{--canvas: #f7f8fc;--surface: #ffffff;--surface-2: #eef0f7;--border: #dde1ec;--text: #1b1e2b;--text-muted: #5c6270;--blue: #2c5adb;--purple: #7648c9;--orange: #ad5811;--green: #188357;--pink: #c93470;--blue-hover: #1f47b0;--tag-orange-bg: rgba(173, 88, 17, .08);--tag-orange-border: rgba(173, 88, 17, .28);--spot-1: rgba(44, 90, 219, .07);--spot-2: rgba(118, 72, 201, .06);--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;background-color:var(--canvas);background-image:radial-gradient(circle at 85% 12%,var(--spot-1),transparent 45%),radial-gradient(circle at 8% 92%,var(--spot-2),transparent 42%);background-repeat:no-repeat;background-attachment:fixed;color:var(--text);font-family:var(--font-sans);min-height:100vh;line-height:1.5;transition:background-color .2s ease,color .2s ease}.mjcode-site[data-theme=dark]{--canvas: #0d0f16;--surface: #141726;--surface-2: #1a1e33;--border: #262b42;--text: #e7e9f2;--text-muted: #8b91ab;--blue: #6fa8ff;--purple: #c792ea;--orange: #f2a65a;--green: #7fd99a;--pink: #ff7aa8;--blue-hover: #85b6ff;--tag-orange-bg: rgba(242, 166, 90, .1);--tag-orange-border: rgba(242, 166, 90, .25);--spot-1: rgba(111, 168, 255, .16);--spot-2: rgba(199, 146, 234, .14)}.mjcode-site ::selection{background:var(--blue);color:var(--canvas)}.mjcode-site,.mjcode-site *{transition:background-color .2s ease,border-color .2s ease,color .2s ease}.mj-theme-toggle{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:color .15s ease,border-color .15s ease}.mj-theme-toggle:hover{color:var(--text);border-color:var(--text-muted)}.mj-lang-toggle{display:flex;align-items:center;justify-content:center;height:26px;padding:0 8px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-muted);font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.02em;text-decoration:none;cursor:pointer;flex-shrink:0;transition:color .15s ease,border-color .15s ease}.mj-lang-toggle:hover{color:var(--text);border-color:var(--text-muted)}.mj-chrome{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30}.mj-dot{width:10px;height:10px;border-radius:50%;background:var(--border)}.mj-chrome-title{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);margin-left:8px;letter-spacing:.02em}.mj-chrome-brand{margin-left:auto;display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-weight:700;font-size:14px;color:var(--text)}.mj-chrome-brand span.tag{color:var(--text-muted);font-weight:400}.mj-tabs{display:flex;overflow-x:auto;background:var(--canvas);border-bottom:1px solid var(--border);position:sticky;top:41px;z-index:29;scrollbar-width:none}.mj-tabs::-webkit-scrollbar{display:none}.mj-tab{display:flex;align-items:center;gap:7px;padding:11px 18px;font-family:var(--font-mono);font-size:13px;white-space:nowrap;color:var(--text-muted);background:transparent;border:none;border-right:1px solid var(--border);border-bottom:2px solid transparent;cursor:pointer;transition:color .15s ease,background .15s ease}.mj-tab:hover{color:var(--text);background:var(--surface)}.mj-tab.active{color:var(--text);background:var(--surface);border-bottom:2px solid var(--tab-color, var(--blue))}section{scroll-margin-top:90px}.mj-shell{max-width:1080px;margin:0 auto;padding:64px 24px}.mj-comment{font-family:var(--font-mono);font-size:13px;font-weight:400;color:var(--text-muted);margin:0 0 28px}.mj-comment .slashes{color:var(--purple)}.mj-hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}@media (max-width: 860px){.mj-hero-grid{grid-template-columns:1fr}}.mj-headline{font-family:var(--font-mono);font-weight:800;font-size:clamp(2.4rem,5.5vw,4rem);line-height:1.05;letter-spacing:-.01em;margin:0 0 20px}.mj-headline .accent{color:var(--blue)}.mj-sub{color:var(--text-muted);font-size:17px;max-width:46ch;margin-bottom:32px}.mj-sub strong{color:var(--text);font-weight:600}.mj-cta-row{display:flex;gap:14px;flex-wrap:wrap}.mj-btn{font-family:var(--font-mono);font-size:14px;padding:12px 20px;border-radius:6px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);transition:transform .15s ease,border-color .15s ease,background .15s ease}.mj-btn:hover{transform:translateY(-1px)}.mj-btn-solid{background:var(--blue);color:var(--canvas);border-color:var(--blue);font-weight:600}.mj-btn-solid:hover{background:var(--blue-hover)}.mj-btn-ghost{color:var(--text);background:transparent}.mj-btn-ghost:hover{border-color:var(--text-muted)}.mj-panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.mj-panel-head{display:flex;gap:6px;padding:10px 14px;border-bottom:1px solid var(--border)}.mj-panel-head .mj-dot{width:9px;height:9px}.mj-panel-body{padding:18px 0}.mj-codeline{display:flex;padding:1px 18px}.mj-lineno{font-family:var(--font-mono);font-size:13px;color:var(--border);width:26px;flex-shrink:0;-webkit-user-select:none;user-select:none}.mj-linecontent{font-family:var(--font-mono);font-size:13.5px;white-space:pre}.mj-tok-kw{color:var(--purple)}.mj-tok-var{color:var(--blue)}.mj-tok-str{color:var(--orange)}.mj-tok-punc{color:var(--text-muted)}.mj-tok-fn{color:var(--green)}.mj-tok-com{color:var(--text-muted);font-style:italic}.mj-services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.mj-service-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px 20px 22px;transition:border-color .15s ease,transform .15s ease}.mj-service-card:hover{border-color:var(--purple);transform:translateY(-2px)}.mj-service-sig{font-family:var(--font-mono);font-size:13.5px;margin-bottom:10px}.mj-service-title{font-size:17px;font-weight:700;margin:4px 0 8px;font-family:var(--font-sans)}.mj-service-desc{color:var(--text-muted);font-size:14.5px}.mj-projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.mj-project-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .15s ease,transform .15s ease;text-decoration:none;color:inherit}.mj-project-card:hover{border-color:var(--orange);transform:translateY(-2px)}.mj-project-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border)}.mj-project-name{font-family:var(--font-mono);font-weight:700;font-size:15px;margin:0}.mj-project-body{padding:16px 18px 20px;flex:1;display:flex;flex-direction:column}.mj-project-desc{color:var(--text-muted);font-size:14.5px;margin-bottom:16px;flex:1}.mj-tags{display:flex;flex-wrap:wrap;gap:8px}.mj-tag{font-family:var(--font-mono);font-size:12px;color:var(--orange);background:var(--tag-orange-bg);border:1px solid var(--tag-orange-border);border-radius:4px;padding:3px 8px}.mj-about-grid{display:grid;grid-template-columns:200px 1fr;gap:40px;align-items:start}@media (max-width: 700px){.mj-about-grid{grid-template-columns:1fr}}.mj-avatar{border:1px dashed var(--border);border-radius:10px;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:13px;color:var(--text-muted);position:relative}.mj-avatar .mj-initials{font-size:34px;font-weight:800;color:var(--green)}.mj-about-body h3{font-family:var(--font-mono);font-size:22px;margin:0 0 16px}.mj-about-body p{color:var(--text-muted);font-size:15.5px;margin-bottom:14px;max-width:60ch}.mj-about-list{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:8px}.mj-about-list li{font-family:var(--font-mono);font-size:14px;color:var(--text-muted)}.mj-about-list li:before{content:"- ";color:var(--green)}.mj-terminal{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.mj-terminal-body{padding:22px 22px 26px;font-family:var(--font-mono);font-size:14px}.mj-prompt{color:var(--green)}.mj-prompt-line{margin-bottom:4px}.mj-output{color:var(--text);margin:2px 0 18px}.mj-output a{color:var(--blue);text-decoration:none}.mj-output a:hover{text-decoration:underline}.mj-cursor{display:inline-block;width:8px;height:15px;background:var(--pink);margin-left:4px;animation:mj-blink 1s step-end infinite;vertical-align:text-bottom}@keyframes mj-blink{50%{opacity:0}}.mj-contact-form{margin:4px 0 22px;max-width:480px}.mj-form-honeypot{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.mj-form-row{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.mj-form-label{font-size:12.5px;color:var(--purple)}.mj-form-optional{color:var(--text-muted);font-weight:400}.mj-form-input{background:var(--canvas);border:1px solid var(--border);border-radius:6px;padding:10px 12px;color:var(--text);font-family:var(--font-mono);font-size:13.5px;outline:none;transition:border-color .15s ease}.mj-form-input::placeholder{color:var(--text-muted)}.mj-form-input:focus{border-color:var(--blue)}.mj-form-input:disabled{opacity:.6}.mj-form-textarea{resize:vertical;min-height:100px}.mj-form-submit{margin-top:4px;border:none}.mj-form-status{margin-top:14px;margin-bottom:0}.mj-form-status-ok{color:var(--green)}.mj-form-status-err{color:var(--pink)}.mj-social-row{display:flex;gap:12px;margin-top:20px}.mj-social-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:8px;border:1px solid var(--border);color:var(--text-muted);transition:color .15s ease,border-color .15s ease}.mj-social-btn:hover{color:var(--text);border-color:var(--text-muted)}footer.mj-footer{border-top:1px solid var(--border);padding:20px 24px;font-family:var(--font-mono);font-size:12.5px;color:var(--text-muted);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}@media (prefers-reduced-motion: reduce){.mjcode-site,.mjcode-site *,.mj-btn,.mj-service-card,.mj-project-card,.mj-cursor{transition:none;animation:none}}
