@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600&family=JetBrains+Mono:wght@400;500&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a0f;--surface:#111118;--surface-2:#1a1a24;--rule:#223;--border:#2a2a3a;--accent:#0057ff;--accent-h:#1a6bff;--accent-p:#003dc2;--accent-g:#0057ff1f;--accent-b:#0057ff59;--fg1:#f0f0f5;--fg2:#99a;--fg3:#667;--serif:"Playfair Display", Georgia, serif;--sans:"DM Sans", system-ui, sans-serif;--mono:"JetBrains Mono", monospace;--max:1120px;--nav-h:64px}html{scroll-behavior:smooth}body{font-family:var(--sans);background:var(--bg);color:var(--fg2);-webkit-font-smoothing:antialiased;overflow-x:hidden}.container{max-width:var(--max);width:100%;margin:0 auto;padding:0 40px}section{border-bottom:1px solid var(--rule);padding:96px 0}.section-label{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:16px;font-size:11px;font-weight:600}.section-title{font-family:var(--serif);color:var(--fg1);letter-spacing:-.02em;margin-bottom:16px;font-size:clamp(28px,4vw,44px);line-height:1.15}.section-sub{color:var(--fg2);max-width:600px;margin-bottom:56px;font-size:17px;line-height:1.7}.btn{font-family:var(--sans);cursor:pointer;border:none;border-radius:4px;align-items:center;gap:8px;padding:13px 28px;font-size:14px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:active{background:var(--accent-p);transform:scale(.98)}.btn-outline{color:var(--fg1);border:1px solid var(--border);background:0 0}.btn-sm{padding:8px 18px;font-size:13px}.btn-ghost{color:var(--fg3);cursor:pointer;font-family:var(--sans);background:0 0;border:none;border-radius:3px;padding:8px 12px;font-size:14px;transition:color .15s}.btn-ghost:hover{color:var(--fg1)}.badge{letter-spacing:.1em;text-transform:uppercase;border-radius:2px;padding:3px 9px;font-size:10px;font-weight:700}.badge-blue{background:var(--accent-g);color:var(--accent-h);border:1px solid #0057ff33}.badge-gray{background:var(--surface-2);color:var(--fg3);border:1px solid var(--rule)}.badge-green{color:#22c55e;background:#22c55e1a;border:1px solid #22c55e33}.nav{z-index:100;height:var(--nav-h);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--rule);background:#0a0a0fe0;position:fixed;top:0;left:0;right:0}.nav-inner{max-width:var(--max);align-items:center;gap:32px;height:100%;margin:0 auto;padding:0 40px;display:flex}.nav-brand{font-family:var(--serif);color:var(--fg1);letter-spacing:-.01em;cursor:pointer;margin-right:auto;font-size:17px;font-weight:600;text-decoration:none}.nav-links{gap:28px;display:flex}.nav-link{color:var(--fg3);cursor:pointer;font-size:14px;font-family:var(--sans);background:0 0;border:none;padding-bottom:2px;text-decoration:none;transition:color .15s;position:relative}.nav-link:after{content:"";background:var(--accent);width:0;height:1px;transition:width .2s;position:absolute;bottom:-2px;left:0}.nav-link:hover,.nav-link.active{color:var(--fg1)}.nav-link:hover:after,.nav-link.active:after{width:100%}.nav-cta{font-size:13px;font-weight:600;font-family:var(--sans);background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:9px 20px;text-decoration:none;transition:background .15s}.nav-cta:hover{background:var(--accent-h)}.hero{min-height:100vh;padding:calc(var(--nav-h) + 48px) 0 96px;border-bottom:1px solid var(--rule);align-items:center;display:flex}.hero-grid{grid-template-columns:1fr 360px;align-items:center;gap:80px;display:grid}.hero-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:24px;font-size:11px;font-weight:600}.hero-name{font-family:var(--serif);color:var(--fg1);letter-spacing:-.02em;margin-bottom:8px;font-size:clamp(44px,6vw,72px);font-weight:600;line-height:1.05}.hero-subtitle{font-family:var(--serif);color:var(--fg3);margin-bottom:28px;font-size:clamp(20px,2.5vw,28px);font-style:italic}.hero-desc{color:var(--fg2);max-width:560px;margin-bottom:40px;font-size:17px;line-height:1.75}.hero-stats{flex-wrap:wrap;gap:40px;margin-bottom:44px;display:flex}.stat-val{font-family:var(--serif);color:var(--fg1);font-size:32px;font-weight:600;line-height:1}.stat-lbl{color:var(--fg3);margin-top:4px;font-size:12px}.hero-actions{flex-wrap:wrap;gap:14px;display:flex}.hero-photo{position:relative}.hero-photo img{aspect-ratio:1;object-fit:cover;border:1px solid var(--rule);filter:grayscale(10%);border-radius:4px;width:100%}.hero-photo:before{content:"";pointer-events:none;z-index:1;background:linear-gradient(135deg,#0057ff2e 0%,#0000 60%);border-radius:4px;position:absolute;inset:-1px}.about-grid{grid-template-columns:1fr 1fr;align-items:start;gap:64px;display:grid}.about-body{color:var(--fg2);font-size:17px;line-height:1.8}.about-body p+p{margin-top:20px}.about-body strong{color:var(--fg1);font-weight:600}.about-links{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.about-link{color:var(--fg3);border:1px solid var(--border);border-radius:4px;padding:7px 14px;font-size:13px;text-decoration:none;transition:all .15s}.about-link:hover{color:var(--accent-h);border-color:var(--accent-b)}.about-sidebar{flex-direction:column;gap:24px;display:flex}.about-fact{border-left:2px solid var(--accent);padding-left:20px}.about-fact-val{font-family:var(--serif);color:var(--fg1);font-size:22px;font-weight:600}.about-fact-lbl{color:var(--fg3);margin-top:3px;font-size:13px}.articles-grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.article-card{background:var(--surface);border:1px solid var(--rule);border-radius:4px;flex-direction:column;padding:28px;transition:border-color .2s,transform .2s,box-shadow .2s;display:flex}.article-card:hover{border-color:var(--accent-b);box-shadow:0 12px 40px var(--accent-g);transform:translateY(-2px)}.article-tag{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:14px;font-size:10px;font-weight:700}.article-title{font-family:var(--serif);color:var(--fg1);margin-bottom:12px;font-size:19px;line-height:1.3}.article-excerpt{color:var(--fg3);flex:1;font-size:14px;line-height:1.65}.article-meta{color:var(--fg3);border-top:1px solid var(--rule);justify-content:space-between;align-items:center;margin-top:20px;padding-top:16px;font-size:12px;display:flex}.article-edit{color:var(--fg3);border:1px solid var(--rule);cursor:pointer;font-size:11px;font-family:var(--sans);background:0 0;border-radius:2px;padding:3px 9px;transition:all .15s}.article-edit:hover{color:var(--accent-h);border-color:var(--accent-b)}.article-read{color:var(--accent);font-size:13px;font-weight:600}.draft-badge{color:var(--fg3)}.patents-list{background:var(--rule);border:1px solid var(--rule);border-radius:4px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.patent-row{background:var(--surface);grid-template-columns:140px 1fr auto;align-items:start;gap:24px;padding:26px 32px;transition:background .15s;display:grid}.patent-row:hover{background:var(--surface-2)}.patent-num{font-family:var(--mono);color:var(--accent-h);margin-top:3px;font-size:12px}.patent-title{font-family:var(--serif);color:var(--fg1);margin-bottom:6px;font-size:18px;line-height:1.3}.patent-desc{color:var(--fg3);font-size:13px;line-height:1.6}.services-grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.service-card{background:var(--surface);border:1px solid var(--rule);border-radius:4px;flex-direction:column;padding:36px 28px;transition:border-color .2s,box-shadow .2s;display:flex}.service-card.featured{border-color:var(--accent)}.service-card:hover{border-color:var(--accent-b);box-shadow:0 8px 32px var(--accent-g)}.service-icon{background:var(--accent-g);width:40px;height:40px;color:var(--accent-h);border-radius:4px;justify-content:center;align-items:center;margin-bottom:20px;font-size:18px;display:flex}.service-name{font-family:var(--serif);color:var(--fg1);margin-bottom:10px;font-size:20px}.service-desc{color:var(--fg3);flex:1;margin-bottom:24px;font-size:14px;line-height:1.65}.service-price{font-family:var(--serif);color:var(--fg1);font-size:32px;font-weight:600}.service-billing{color:var(--fg3);margin:4px 0 20px;font-size:12px}.service-features{flex-direction:column;gap:8px;margin-bottom:28px;list-style:none;display:flex}.service-features li{color:var(--fg2);align-items:center;gap:8px;font-size:13px;display:flex}.service-features li:before{content:"";background:var(--accent);border-radius:50%;flex-shrink:0;width:4px;height:4px}.speaking-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}.talk-card{background:var(--surface);border:1px solid var(--rule);border-radius:4px;padding:28px;transition:border-color .15s}.talk-card:hover{border-color:var(--accent-b)}.talk-type{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;font-size:10px;font-weight:700}.talk-title{font-family:var(--serif);color:var(--fg1);margin-bottom:8px;font-size:18px;line-height:1.3}.talk-meta{color:var(--fg3);font-size:13px}.booking-section{background:var(--surface)}.booking-grid{grid-template-columns:1fr 1fr;align-items:start;gap:80px;display:grid}.booking-info-list{flex-direction:column;gap:14px;margin-top:32px;display:flex}.booking-info-item{color:var(--fg2);align-items:center;gap:12px;font-size:14px;display:flex}.booking-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px}.calendly-shell{background:var(--surface-2);border:1px solid var(--rule);border-radius:4px;min-height:650px;overflow:hidden}.contact-grid{grid-template-columns:1fr 1fr;gap:80px;display:grid}.contact-form{flex-direction:column;gap:18px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-label{letter-spacing:.1em;text-transform:uppercase;color:var(--fg3);font-size:11px;font-weight:700}.form-input{background:var(--surface-2);border:1px solid var(--border);font-size:15px;font-family:var(--sans);color:var(--fg1);border-radius:4px;outline:none;width:100%;padding:12px 14px;transition:border-color .15s}.form-input:focus{border-color:var(--accent-b)}.form-textarea{resize:vertical;min-height:140px}.contact-info-list{flex-direction:column;gap:24px;display:flex}.contact-item{align-items:center;gap:16px;display:flex}.contact-icon{background:var(--surface-2);border:1px solid var(--rule);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:18px;display:flex}.contact-lbl{letter-spacing:.08em;text-transform:uppercase;color:var(--fg3);margin-bottom:3px;font-size:11px;font-weight:700}.contact-val{color:var(--fg1);font-size:15px;text-decoration:none}.contact-val:hover{color:var(--accent-h)}.success-msg{color:#22c55e;background:#22c55e14;border:1px solid #22c55e33;border-radius:4px;padding:12px 16px;font-size:14px}.footer{border-top:1px solid var(--rule);padding:40px 0}.footer-inner{justify-content:space-between;align-items:center;gap:24px;display:flex}.footer-brand{font-family:var(--serif);color:var(--fg1);font-size:16px}.footer-copy{color:var(--fg3);font-size:12px}.footer-links{gap:20px;display:flex}.footer-link{color:var(--fg3);cursor:pointer;font-size:13px;font-family:var(--sans);background:0 0;border:none;text-decoration:none;transition:color .15s}.footer-link:hover{color:var(--accent-h)}.editor-page{flex-direction:column;min-height:100vh;display:flex}.editor-topbar{background:var(--surface);border-bottom:1px solid var(--rule);z-index:100;align-items:center;gap:12px;height:52px;padding:0 20px;display:flex;position:sticky;top:0}.editor-brand{font-family:var(--serif);color:var(--fg1);margin-right:auto;font-size:15px;font-weight:600}.save-status{color:var(--fg3);background:var(--surface-2);border-radius:2px;padding:4px 10px;font-size:12px}.save-status.saved{color:#22c55e}.editor-layout{flex:1;display:flex}.editor-sidebar{background:var(--surface);border-right:1px solid var(--rule);flex-direction:column;flex-shrink:0;gap:20px;width:256px;padding:20px 16px;display:flex;overflow-y:auto}.sidebar-label{letter-spacing:.12em;text-transform:uppercase;color:var(--fg3);margin-bottom:6px;font-size:10px;font-weight:700;display:block}.sidebar-section{flex-direction:column;gap:4px;display:flex}.field-input{background:var(--surface-2);border:1px solid var(--border);width:100%;font-size:13px;font-family:var(--sans);color:var(--fg1);border-radius:3px;outline:none;padding:9px 11px;transition:border-color .15s}.field-input:focus{border-color:var(--accent-b)}.field-textarea{resize:vertical;min-height:80px;font-size:13px;line-height:1.5}.cover-drop{border:1px dashed var(--border);text-align:center;cursor:pointer;color:var(--fg3);border-radius:3px;padding:14px;font-size:12px;transition:border-color .15s}.cover-drop:hover{border-color:var(--accent);color:var(--accent)}.cover-preview-img{aspect-ratio:16/9;object-fit:cover;border:1px solid var(--border);border-radius:3px;width:100%}.ref-item{color:var(--fg2);background:var(--surface-2);border:1px solid var(--border);border-radius:3px;align-items:center;gap:6px;padding:6px 8px;font-size:12px;display:flex}.ref-num{font-family:var(--mono);color:var(--accent);background:var(--accent-g);border-radius:2px;flex-shrink:0;padding:1px 5px;font-size:10px}.ref-text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ref-del{color:var(--fg3);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:14px;line-height:1}.ref-del:hover{color:#ef4444}.draft-item{background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:3px;align-items:center;gap:8px;padding:8px 10px;transition:border-color .15s;display:flex}.draft-item:hover{border-color:var(--accent-b)}.draft-item.current{border-color:var(--accent)}.draft-title{color:var(--fg1);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.draft-meta{color:var(--fg3);margin-top:2px;font-size:11px}.editor-main{flex-direction:column;flex:1;display:flex;overflow-y:auto}.editor-toolbar{background:var(--surface);border-bottom:1px solid var(--rule);z-index:90;flex-wrap:wrap;align-items:center;gap:2px;padding:6px 28px;display:flex;position:sticky;top:52px}.tb-btn{color:var(--fg3);cursor:pointer;font-size:13px;font-family:var(--sans);white-space:nowrap;background:0 0;border:none;border-radius:3px;padding:5px 8px;line-height:1;transition:all .1s}.tb-btn:hover{background:var(--surface-2);color:var(--fg1)}.tb-sep{background:var(--rule);flex-shrink:0;width:1px;height:20px;margin:0 5px}.tb-select{background:var(--surface-2);border:1px solid var(--border);color:var(--fg2);font-size:12px;font-family:var(--sans);cursor:pointer;border-radius:3px;outline:none;padding:4px 6px}.tb-color{border:1px solid var(--border);cursor:pointer;background:var(--surface-2);border-radius:3px;width:26px;height:26px;padding:2px}.editor-scroll{flex:1;overflow-y:auto}.editor-wrap{max-width:740px;margin:0 auto;padding:48px 40px 120px}.title-input{width:100%;font-family:var(--serif);color:var(--fg1);letter-spacing:-.02em;resize:none;background:0 0;border:none;outline:none;margin-bottom:24px;font-size:42px;font-weight:600;line-height:1.1;overflow:hidden}.title-input::placeholder{color:var(--fg3)}.body-editor{min-height:500px;color:var(--fg2);font-size:18px;line-height:1.8;font-family:var(--sans);caret-color:var(--accent);outline:none}.body-editor:empty:before{content:attr(data-placeholder);color:var(--fg3);pointer-events:none}.body-editor h1{font-family:var(--serif);color:var(--fg1);margin:30px 0 14px;font-size:34px;font-weight:600;line-height:1.2}.body-editor h2{font-family:var(--serif);color:var(--fg1);margin:26px 0 12px;font-size:26px}.body-editor h3{font-family:var(--sans);color:var(--fg1);margin:22px 0 10px;font-size:19px;font-weight:600}.body-editor p{margin-bottom:16px}.body-editor strong{color:var(--fg1)}.body-editor em{font-style:italic}.body-editor a{color:var(--accent-h);text-decoration:underline}.body-editor blockquote{border-left:3px solid var(--accent);color:var(--fg3);font-style:italic;font-family:var(--serif);margin:24px 0;padding:4px 0 4px 20px;font-size:19px}.body-editor code{font-family:var(--mono);color:var(--accent-h);background:var(--surface-2);border-radius:3px;padding:2px 6px;font-size:13px}.body-editor pre{background:var(--surface-2);border:1px solid var(--rule);border-radius:4px;margin:20px 0;padding:18px;overflow-x:auto}.body-editor ul,.body-editor ol{margin-bottom:16px;padding-left:22px}.body-editor li{color:var(--fg2);margin-bottom:4px}.body-editor hr{border:none;border-top:1px solid var(--rule);margin:32px 0}.body-editor img{border:1px solid var(--rule);border-radius:4px;max-width:100%;margin:20px 0;display:block}.body-editor .img-caption{color:var(--fg3);text-align:center;margin-top:-14px;margin-bottom:20px;font-size:13px;font-style:italic}.body-editor .ref-cite{font-family:var(--mono);color:var(--accent);background:var(--accent-g);vertical-align:super;cursor:default;border-radius:2px;padding:1px 5px;font-size:11px;font-style:normal}.preview-wrap{max-width:740px;margin:0 auto;padding:48px 40px 120px}.preview-tag{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:18px;font-size:11px;font-weight:700}.preview-title{font-family:var(--serif);color:var(--fg1);letter-spacing:-.02em;margin-bottom:18px;font-size:48px;font-weight:600;line-height:1.05}.preview-meta{color:var(--fg3);border-bottom:1px solid var(--rule);gap:20px;margin-bottom:36px;padding-bottom:28px;font-size:13px;display:flex}.preview-cover{aspect-ratio:16/9;object-fit:cover;border:1px solid var(--rule);border-radius:4px;width:100%;margin-bottom:36px}.preview-body{color:var(--fg2);font-size:18px;line-height:1.85}.preview-body h1{font-family:var(--serif);color:var(--fg1);margin:32px 0 16px;font-size:34px}.preview-body h2{font-family:var(--serif);color:var(--fg1);margin:28px 0 14px;font-size:26px}.preview-body h3{font-family:var(--sans);color:var(--fg1);margin:22px 0 10px;font-size:19px;font-weight:600}.preview-body p{margin-bottom:18px}.preview-body strong{color:var(--fg1)}.preview-body a{color:var(--accent-h)}.preview-body blockquote{border-left:3px solid var(--accent);color:var(--fg3);font-style:italic;font-family:var(--serif);margin:26px 0;padding:4px 0 4px 22px;font-size:20px}.preview-body img{border-radius:4px;max-width:100%;margin:24px 0}.preview-refs{border-top:1px solid var(--rule);margin-top:48px;padding-top:28px}.preview-refs h4{letter-spacing:.12em;text-transform:uppercase;color:var(--fg3);margin-bottom:14px;font-size:11px;font-weight:700}.preview-refs ol{flex-direction:column;gap:8px;padding-left:18px;display:flex}.preview-refs li{color:var(--fg3);font-size:13px;line-height:1.5}.preview-refs a{color:var(--accent-h)}.dialog-overlay{z-index:200;background:#000000bf;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.dialog-overlay.open{display:flex}.dialog{background:var(--surface);border:1px solid var(--border);border-radius:4px;width:420px;max-height:90vh;padding:28px;overflow-y:auto}.dialog h4{font-family:var(--serif);color:var(--fg1);margin-bottom:20px;font-size:20px}.dialog-tabs{border:1px solid var(--border);border-radius:3px;margin-bottom:18px;display:flex;overflow:hidden}.dialog-tab{font-size:13px;font-family:var(--sans);color:var(--fg3);cursor:pointer;background:0 0;border:none;flex:1;padding:8px}.dialog-tab.active{background:var(--accent);color:#fff}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.toast{background:var(--surface);border:1px solid var(--border);color:var(--fg1);z-index:300;opacity:0;pointer-events:none;white-space:nowrap;border-radius:4px;padding:12px 20px;font-size:14px;transition:opacity .2s;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast.show{opacity:1}.exp-timeline{flex-direction:column;display:flex}.exp-item{border-top:1px solid var(--rule);grid-template-columns:56px 1fr;gap:28px;padding:32px 0;display:grid}.exp-item:last-child{border-bottom:1px solid var(--rule)}.exp-icon{background:var(--surface);border:1px solid var(--rule);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:22px;transition:all .2s;display:flex}.exp-item:hover .exp-icon{border-color:var(--accent-b);box-shadow:0 0 24px var(--accent-g)}.exp-content{flex-direction:column;gap:10px;display:flex}.exp-header{flex-wrap:wrap;align-items:baseline;gap:8px 16px;display:flex}.exp-role{font-family:var(--serif);color:var(--fg1);font-size:22px;font-weight:600;line-height:1.25}.exp-company{color:var(--accent-h);font-size:14px;font-weight:500}.exp-meta{font-family:var(--mono);color:var(--fg3);white-space:nowrap;margin-left:auto;font-size:12px}.exp-summary{color:var(--fg2);max-width:720px;font-size:15px;line-height:1.7}.exp-bullets{flex-direction:column;gap:6px;margin-top:4px;display:flex}.exp-bullet{color:var(--fg2);padding-left:16px;font-size:14px;line-height:1.65;position:relative}.exp-bullet:before{content:"—";color:var(--accent);position:absolute;left:0}.clients-block{border-top:1px dashed var(--rule);margin-top:28px;padding-top:24px}.clients-label{letter-spacing:.14em;text-transform:uppercase;color:var(--fg3);margin-bottom:16px;font-size:11px;font-weight:600}.clients-grid{grid-template-rows:repeat(2,auto);grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.client-chip{background:var(--surface);border:1px solid var(--rule);border-radius:4px;align-items:center;gap:10px;padding:12px 14px;transition:all .15s;display:flex}.client-chip:hover{border-color:var(--accent-b);background:var(--surface-2)}.client-chip-icon{background:var(--accent-g);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;display:flex}.client-chip-name{color:var(--fg1);font-size:13px;font-weight:500;line-height:1.2}.client-chip-detail{color:var(--fg3);font-size:11px;line-height:1.2}.skills-grid{background:var(--rule);border:1px solid var(--rule);border-radius:4px;grid-template-columns:repeat(2,1fr);gap:1px;display:grid;overflow:hidden}.skill-cat{background:var(--surface-2);padding:32px 28px;transition:background .15s}.skill-cat:hover{background:#0057ff0f}.skill-cat-header{border-bottom:1px solid var(--rule);align-items:center;gap:12px;margin-bottom:18px;padding-bottom:14px;display:flex}.skill-cat-icon{background:var(--accent-g);border-radius:4px;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.skill-cat-name{font-family:var(--serif);color:var(--fg1);font-size:18px;font-weight:600}.skill-cat-level{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg3);margin-left:auto;font-size:10px}.skill-tags{flex-wrap:wrap;gap:6px;display:flex}.skill-tag{font-family:var(--mono);color:var(--accent-h);background:var(--accent-g);border:1px solid var(--accent-b);border-radius:2px;padding:5px 9px;font-size:11px;transition:all .12s}.skill-tag.primary{color:var(--accent-h);border-color:var(--accent-b);background:var(--accent-g)}.skill-tag:hover{color:var(--fg1);border-color:var(--accent)}.pub-grid{background:var(--rule);border:1px solid var(--rule);border-radius:4px;grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.pub-card{background:var(--surface);flex-direction:column;gap:12px;padding:28px;transition:background .15s;display:flex}.pub-card:hover{background:var(--surface-2)}.pub-venue{font-family:var(--mono);letter-spacing:.06em;color:var(--accent-h);text-transform:uppercase;align-items:center;gap:10px;font-size:11px;display:flex}.pub-venue-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px}.pub-title{font-family:var(--serif);color:var(--fg1);flex:1;font-size:17px;font-weight:500;line-height:1.35}.pub-meta{color:var(--fg3);border-top:1px solid var(--rule);align-items:center;gap:14px;margin-top:auto;padding-top:12px;font-size:12px;display:flex}.pub-year{font-family:var(--mono);font-weight:500}[data-theme=light]{--bg:#f8f8f4;--surface:#fff;--surface-2:#f0f0eb;--rule:#e0e0d8;--border:#d0d0c8;--accent:#0047dd;--accent-h:#0057ff;--accent-g:#0047dd14;--accent-b:#0047dd40;--fg1:#0a0a0f;--fg2:#44444f;--fg3:#88888f}[data-theme=light] .nav{background:#f8f8f4eb}[data-theme=light] body{background:var(--bg)}.theme-toggle{background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:100px;outline:none;flex-shrink:0;width:36px;height:20px;padding:0;transition:background .2s;position:relative}.theme-toggle:after{content:"";background:var(--fg3);border-radius:50%;width:14px;height:14px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}[data-theme=light] .theme-toggle:after{background:var(--accent);transform:translate(16px)}.theme-toggle-wrap{color:var(--fg3);align-items:center;gap:8px;font-size:14px;display:flex}@media (width<=900px){.skills-grid,.pub-grid{grid-template-columns:1fr}.exp-item{grid-template-columns:44px 1fr;gap:16px}.exp-icon{width:44px;height:44px}.exp-meta{margin-left:0}.container{padding:0 20px}.hero-grid,.about-grid,.booking-grid,.contact-grid{grid-template-columns:1fr}.articles-grid,.services-grid,.speaking-grid{grid-template-columns:1fr 1fr}.hero-photo{display:none}section{padding:64px 0}.hero{padding-top:calc(var(--nav-h) + 32px)}}@media (width<=600px){.nav-links{display:none}.articles-grid,.services-grid,.speaking-grid{grid-template-columns:1fr}}.section-inner{max-width:var(--max);width:100%;margin:0 auto;padding:0 40px}.codecrafter-grid{grid-template-columns:1fr 1fr;align-items:center;gap:48px;margin-top:8px;display:grid}.codecrafter-preview{border:1px solid var(--rule);border-radius:4px;transition:border-color .2s,transform .2s,box-shadow .2s;display:block;overflow:hidden}.codecrafter-preview:hover{border-color:var(--accent-b);box-shadow:0 12px 40px var(--accent-g);transform:translateY(-2px)}.codecrafter-preview img{width:100%;height:auto;display:block}.codecrafter-content{flex-direction:column;display:flex}.btn-primary,.btn-outline{font-family:var(--sans);cursor:pointer;border:1px solid #0000;border-radius:4px;align-items:center;gap:8px;padding:13px 28px;font-size:14px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-h);box-shadow:0 0 24px var(--accent-g)}.btn-outline{color:var(--fg1);border-color:var(--border);background:0 0}.btn-outline:hover{border-color:var(--accent-b);color:var(--accent-h)}@media (width<=900px){.section-inner{padding:0 20px}.codecrafter-grid{grid-template-columns:1fr;gap:32px}}
