/* James E. Hamelton Jr. — site stylesheet */
:root{--white:#fff;--ink:#0e1726;--muted:#667085;--line:#dfe7f1;--soft:#f6f9fd;--blue:#326fdc;--blue2:#5b91ef;--blue3:#9ac5ff;--blue4:#dcecff;--blue5:#f0f6ff;--deep:#173f92;--cyan:#41b2d2;--violet:#7168df;--sans:"Onest",system-ui,-apple-system,"Segoe UI",sans-serif;--ui:"Instrument Sans",system-ui,sans-serif;--mono:"DM Mono",monospace;--wrap:min(1220px,calc(100% - 40px));--shadow:0 18px 60px rgba(35,88,167,.12);--shadow-soft:0 10px 28px rgba(37,86,150,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}body.menu-open{overflow:hidden}a{color:inherit}img{max-width:100%;display:block}button,input{font:inherit}::selection{background:var(--blue);color:#fff}.skip{position:fixed;z-index:9999;top:-80px;left:18px;background:var(--ink);color:#fff;text-decoration:none;padding:12px 15px;border-radius:12px;transition:.2s}.skip:focus{top:18px}.noise{position:fixed;inset:0;pointer-events:none;z-index:999;opacity:.022;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}
.site-header{position:relative;z-index:80;width:100%;background:rgba(255,255,255,.86);backdrop-filter:blur(14px)}.header-inner{width:var(--wrap);margin:auto;min-height:86px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0}.brand-mark{width:42px;height:42px;border-radius:14px;position:relative;flex:none;background:linear-gradient(135deg,rgba(255,255,255,.38),rgba(255,255,255,.05)),linear-gradient(135deg,var(--blue),var(--violet));box-shadow:inset 0 1px 0 rgba(255,255,255,.65),0 10px 24px rgba(47,111,237,.22);overflow:hidden}.brand-mark:before,.brand-mark:after{content:"";position:absolute;background:white;border-radius:999px}.brand-mark:before{width:18px;height:4px;left:8px;top:11px;transform:rotate(-36deg);box-shadow:6px 10px 0 white}.brand-mark:after{width:4px;height:22px;right:11px;top:10px;transform:rotate(18deg)}.brand-name{display:block;font-weight:800;letter-spacing:-.045em;font-size:1.02rem;line-height:1;white-space:nowrap}.brand-role{display:block;margin-top:4px;color:var(--muted);font:500 .67rem/1.2 var(--mono);white-space:nowrap}.desktop-nav{margin-left:auto;display:flex;align-items:center;gap:4px}.desktop-nav a{text-decoration:none;color:#344054;font:600 .9rem/1 var(--ui);padding:11px 13px;border-radius:12px;transition:.18s}.desktop-nav a:hover,.desktop-nav a[aria-current=page]{background:var(--blue5);color:var(--deep)}.search-btn,.menu-btn{border:0;cursor:pointer;width:43px;height:43px;border-radius:14px;display:grid;place-items:center;background:transparent;color:var(--ink);transition:.18s}.search-btn:hover,.menu-btn:hover{background:var(--blue5)}.menu-btn{display:none;position:relative;z-index:102}.menu-lines{width:20px;height:14px;position:relative}.menu-lines span{position:absolute;right:0;width:20px;height:2px;background:currentColor;border-radius:999px;transition:.4s cubic-bezier(.2,.8,.2,1)}.menu-lines span:first-child{top:1px}.menu-lines span:last-child{bottom:1px;width:13px}.menu-btn.active .menu-lines span:first-child{top:6px;transform:rotate(45deg)}.menu-btn.active .menu-lines span:last-child{width:20px;bottom:6px;transform:rotate(-45deg)}
.hero{position:relative;padding:72px 0 58px;overflow:hidden}.hero:before{content:"";position:absolute;width:620px;height:620px;right:-250px;top:-260px;border-radius:50%;background:radial-gradient(circle at 40% 40%,rgba(143,192,255,.55),rgba(117,104,245,.16) 45%,transparent 72%);filter:blur(8px);z-index:-2}.hero:after{content:"";position:absolute;width:440px;height:440px;left:-240px;bottom:-260px;border-radius:50%;background:radial-gradient(circle,rgba(55,182,216,.15),transparent 68%);z-index:-2}.hero-grid{width:var(--wrap);margin:auto;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:58px;align-items:center}.intro-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid #cbdcf6;color:var(--deep);background:rgba(244,248,255,.8);backdrop-filter:blur(12px);padding:8px 12px;border-radius:999px;font:600 .73rem/1 var(--mono);box-shadow:0 4px 14px rgba(47,111,237,.06);animation:fadeUp .8s ease both}.intro-chip i{color:var(--blue);font-size:.55rem}.hero h1{margin:18px 0 0;font-size:clamp(4rem,8.5vw,8rem);max-width:9ch;letter-spacing:-.072em;line-height:.85;font-weight:800;animation:fadeUp .9s .05s ease both}.blue-word{color:var(--blue);position:relative;display:inline-block}.blue-word:after{content:"";position:absolute;left:3%;right:0;bottom:-.04em;height:.12em;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--cyan),var(--violet));transform:scaleX(.92) rotate(-1deg);transform-origin:left center}.hero-copy{margin-top:30px;max-width:680px;color:#475467;font-size:clamp(1.12rem,1.8vw,1.38rem);line-height:1.58;animation:fadeUp .9s .12s ease both}.hero-actions{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px;animation:fadeUp .9s .2s ease both}.button{display:inline-flex;align-items:center;gap:9px;padding:13px 17px;border-radius:14px;text-decoration:none;font:700 .9rem/1 var(--ui);transition:.22s}.primary{color:white;background:linear-gradient(135deg,var(--blue),#4e7ff3);box-shadow:0 12px 28px rgba(47,111,237,.2)}.primary:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(47,111,237,.27)}.secondary{color:var(--deep);background:var(--blue5);border:1px solid #d9e7fb}.secondary:hover{background:#e7f1ff;transform:translateY(-2px)}.hero-art{position:relative;min-height:470px;display:grid;place-items:center;animation:fadeIn 1.1s .12s ease both}.orb{position:absolute;border-radius:50%;animation:float 7s ease-in-out infinite}.orb.one{width:92px;height:92px;left:18px;top:56px;background:linear-gradient(135deg,#9fc7ff,#d5e8ff);box-shadow:0 18px 40px rgba(66,117,201,.18)}.orb.two{width:54px;height:54px;right:34px;bottom:78px;background:linear-gradient(135deg,#54c4e2,#7c8cf5);animation-delay:-2s}.orb.three{width:30px;height:30px;right:24px;top:80px;background:#e2ecff;border:6px solid white;box-shadow:0 10px 26px rgba(48,91,160,.16);animation-delay:-4s}.visual-shell{width:min(100%,420px);min-height:420px;position:relative;background:linear-gradient(135deg,rgba(255,255,255,.88),rgba(240,246,255,.78));border:1px solid rgba(155,187,233,.55);border-radius:44px 20px 44px 20px;box-shadow:0 35px 80px rgba(48,97,176,.14);backdrop-filter:blur(16px);overflow:hidden;transform:rotate(1.5deg)}.visual-shell:before{content:"";position:absolute;width:250px;height:250px;border-radius:50%;right:-90px;top:-60px;background:linear-gradient(145deg,rgba(107,157,244,.34),rgba(108,219,234,.18));filter:blur(4px)}.visual-shell:after{content:"";position:absolute;width:150px;height:150px;left:-50px;bottom:-40px;border-radius:40px;background:linear-gradient(145deg,rgba(117,104,245,.22),rgba(63,173,225,.18));transform:rotate(30deg)}.lottie-wrap{position:absolute;inset:38px;display:grid;place-items:center;z-index:2}.lottie-wrap dotlottie-wc{width:100%;height:100%;min-height:330px;display:block}.floating-label{position:absolute;z-index:4;display:flex;align-items:center;gap:9px;background:white;border:1px solid #d7e4f7;box-shadow:var(--shadow-soft);border-radius:16px;padding:11px 13px;font:700 .76rem/1 var(--ui);color:#23406b}.floating-label i{color:var(--blue)}.floating-label.first{left:-30px;bottom:82px;animation:float 6s ease-in-out infinite}.floating-label.second{right:-20px;top:88px;animation:float 6.5s -2s ease-in-out infinite}
.featured{width:var(--wrap);margin:28px auto 0}.section-kicker{color:var(--blue);font:600 .73rem/1 var(--mono);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}.featured-card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);min-height:350px;background:linear-gradient(135deg,#f7fbff 0%,#eef5ff 48%,#faf9ff 100%);border:1px solid #dce8f8;border-radius:30px;overflow:hidden;box-shadow:var(--shadow-soft);position:relative;isolation:isolate}.featured-card:before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-130px;top:-150px;background:radial-gradient(circle,rgba(98,145,237,.3),transparent 66%);z-index:-1}.featured-copy{padding:clamp(30px,5vw,56px)}.featured-meta{display:flex;flex-wrap:wrap;gap:10px 16px;color:#667085;font:500 .7rem/1.4 var(--mono);text-transform:uppercase}.featured h2{margin:18px 0 0;font-size:clamp(2.25rem,4.6vw,4.7rem);line-height:.96;letter-spacing:-.055em;max-width:12ch}.featured h2 a{text-decoration:none}.featured h2 a:hover{color:var(--blue)}.featured p{margin:18px 0 0;max-width:720px;color:#526075;font-size:1.07rem;line-height:1.58}.featured-link{margin-top:24px;display:inline-flex;align-items:center;gap:9px;text-decoration:none;color:var(--deep);font-weight:750}.featured-link i{transition:.2s}.featured-link:hover i{transform:translateX(4px)}.featured-side{display:flex;align-items:center;justify-content:center;position:relative;min-height:300px;padding:32px}.code-art{width:245px;background:#12213a;border-radius:24px;padding:18px;box-shadow:0 30px 70px rgba(30,64,115,.22);transform:rotate(-5deg);color:#dce8ff;font:500 .66rem/1.8 var(--mono)}.code-art .bar{display:flex;gap:5px;margin-bottom:14px}.code-art .bar i{width:8px;height:8px;border-radius:50%;background:#5d7396}.code-art b{color:#7cb4ff}.code-art em{color:#7ed8d4;font-style:normal}.code-art span{color:#b9c6da}
.feed-shell{width:var(--wrap);margin:74px auto 100px;display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:54px}.feed-head{display:flex;align-items:end;justify-content:space-between;gap:24px;padding-bottom:16px;border-bottom:1px solid var(--line)}.feed-head h2{margin:0;font-size:clamp(2.1rem,4vw,3.6rem);letter-spacing:-.05em;line-height:.95}.feed-head a{color:var(--blue);text-decoration:none;font:700 .82rem/1 var(--ui)}.post-row{display:grid;grid-template-columns:170px minmax(0,1fr) 48px;gap:26px;align-items:start;padding:30px 0;border-bottom:1px solid var(--line);transition:.2s}.post-row:hover{padding-left:8px;padding-right:8px;background:linear-gradient(90deg,rgba(240,246,255,.75),transparent 72%)}.post-meta{color:#7c8799;font:500 .68rem/1.55 var(--mono)}.post-meta strong{display:block;color:var(--blue);margin-bottom:8px;text-transform:uppercase}.post-row h3{margin:0;font-size:clamp(1.55rem,2.7vw,2.4rem);line-height:1.04;letter-spacing:-.04em}.post-row h3 a{text-decoration:none}.post-row h3 a:hover{color:var(--deep)}.post-row p{margin:11px 0 0;color:#657184;line-height:1.55;max-width:720px}.post-arrow{width:42px;height:42px;border-radius:50%;background:var(--blue5);display:grid;place-items:center;color:var(--blue);transition:.2s}.post-row:hover .post-arrow{background:var(--blue);color:white;transform:translateX(3px)}.sidebar{position:sticky;top:24px;align-self:start;display:grid;gap:18px}.side-box{padding:22px;border:1px solid var(--line);border-radius:22px;background:white}.side-box.blue{background:linear-gradient(145deg,#173f9f,#326fdc 62%,#5688e5);color:white;border:0;box-shadow:0 18px 44px rgba(47,111,237,.18);overflow:hidden;position:relative}.side-box.blue:after{content:"";position:absolute;width:140px;height:140px;right:-70px;bottom:-70px;border-radius:50%;background:rgba(255,255,255,.11)}.side-label{font:600 .67rem/1 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:#718096;margin-bottom:13px}.side-box.blue .side-label{color:#d9e8ff}.side-box h3{margin:0;font-size:1.25rem;letter-spacing:-.035em}.side-box p{margin:10px 0 0;color:#6b7688;line-height:1.52;font-size:.94rem}.side-box.blue p{color:#e5edff}.topic-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.topic-list a{padding:8px 10px;border-radius:10px;background:var(--blue5);color:#31558f;text-decoration:none;font:600 .68rem/1 var(--mono);transition:.18s}.topic-list a:hover{background:#dceaff;color:var(--deep)}.latest-side{list-style:none;margin:4px 0 0;padding:0}.latest-side li+li{border-top:1px solid var(--line)}.latest-side a{display:block;padding:12px 0;text-decoration:none;font-weight:650;line-height:1.28}.latest-side a:hover{color:var(--blue)}.latest-side span{display:block;margin-top:4px;color:#8a94a5;font:500 .65rem/1.4 var(--mono)}
.page-hero{width:var(--wrap);margin:54px auto 0;padding:48px;border-radius:30px;background:linear-gradient(135deg,#f8fbff,#eef5ff 60%,#faf9ff);border:1px solid #deebfa;position:relative;overflow:hidden}.page-hero:after{content:"";position:absolute;width:260px;height:260px;right:-100px;top:-120px;border-radius:50%;background:radial-gradient(circle,rgba(88,145,239,.3),transparent 70%)}.page-hero .eyebrow{color:var(--blue);font:600 .72rem/1 var(--mono);text-transform:uppercase;letter-spacing:.08em}.page-hero h1{margin:12px 0 0;font-size:clamp(3rem,7vw,6.4rem);max-width:12ch;letter-spacing:-.065em;line-height:.9}.page-hero p{margin:20px 0 0;max-width:740px;color:#536176;font-size:1.12rem;line-height:1.6}.page-content{width:var(--wrap);margin:52px auto 100px}.archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.archive-card{padding:26px;border:1px solid var(--line);border-radius:22px;background:#fff;transition:.2s}.archive-card:hover{border-color:#bfd4f0;box-shadow:var(--shadow-soft);transform:translateY(-2px)}.archive-card .cat{color:var(--blue);font:600 .67rem/1 var(--mono);text-transform:uppercase}.archive-card h2{margin:18px 0 0;font-size:1.8rem;letter-spacing:-.04em;line-height:1.05}.archive-card h2 a{text-decoration:none}.archive-card p{color:#677386;line-height:1.55}.archive-card .meta{color:#8a94a5;font:500 .65rem/1.4 var(--mono)}
.article-shell{width:min(1160px,calc(100% - 40px));margin:54px auto 100px;display:grid;grid-template-columns:minmax(0,780px) 250px;gap:70px;align-items:start}.article-header .cat{color:var(--blue);font:600 .72rem/1 var(--mono);text-transform:uppercase;letter-spacing:.08em}.article-header h1{margin:15px 0 0;font-size:clamp(3.2rem,7vw,6.6rem);letter-spacing:-.068em;line-height:.9}.article-header .deck{margin:23px 0 0;color:#57657a;font-size:1.2rem;line-height:1.55}.article-header .meta{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:22px;color:#8791a1;font:500 .68rem/1.4 var(--mono)}.article-rule{height:1px;background:linear-gradient(90deg,var(--blue),var(--line));margin:34px 0}.prose{max-width:780px;color:#273244;font-size:clamp(1.06rem,1.4vw,1.18rem);line-height:1.78}.prose>*+*{margin-top:1.4em}.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{color:var(--ink);font-weight:800;letter-spacing:-.045em;line-height:1.02;margin-top:1.8em;margin-bottom:.55em}.prose h2{font-size:clamp(2.1rem,4vw,3.5rem)}.prose h3{font-size:clamp(1.65rem,3vw,2.35rem)}.prose h4{font-size:1.4rem}.prose p{margin-bottom:0}.prose a{color:var(--blue);text-decoration-thickness:1px;text-underline-offset:.17em}.prose strong{font-weight:750;color:#111827}.prose mark{background:#dceaff;color:#173b80;padding:.04em .2em;border-radius:5px}.prose blockquote{margin-left:0;padding:1.15em 1.25em;border-left:4px solid var(--blue);background:linear-gradient(90deg,#f4f8ff,#fbfdff);color:#31415a;border-radius:0 16px 16px 0;font-size:1.12em}.prose ul,.prose ol{padding-left:1.3em}.prose li{margin:.45em 0}.prose li::marker{color:var(--blue)}.prose code{font:500 .82em/1.4 var(--mono);background:#eef4fd;border:1px solid #d8e5f8;color:#23477f;padding:.1em .32em;border-radius:6px}.prose pre{overflow:auto;padding:20px;background:#0f1e36;border-radius:18px;color:#e8f0ff;box-shadow:0 14px 34px rgba(17,43,84,.14)}.prose pre code{background:none;border:0;color:inherit;padding:0}.prose .callout{border:1px solid #cfe0f8;background:linear-gradient(135deg,#f8fbff,#eef5ff);padding:20px;border-radius:18px}.prose .callout strong{display:block;color:var(--deep);font:600 .7rem/1.2 var(--mono);text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px}.article-aside{position:sticky;top:24px}.article-aside .aside-box{padding:20px;border:1px solid var(--line);border-radius:20px}.article-aside h3{margin:0;font-size:1.1rem}.article-aside p{font-size:.9rem;color:#697588;line-height:1.5}.share{display:flex;gap:8px;margin-top:14px}.share a{width:38px;height:38px;border-radius:12px;background:var(--blue5);display:grid;place-items:center;color:var(--deep);text-decoration:none}.share a:hover{background:var(--blue);color:white}
.search-form{display:flex;gap:10px;max-width:760px;margin-bottom:30px}.search-form input{flex:1;min-width:0;border:1px solid #cdd9e9;border-radius:15px;padding:15px 16px;font-size:1rem;outline:0}.search-form input:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(50,111,220,.1)}.search-form button{border:0;border-radius:15px;background:var(--blue);color:white;font-weight:700;padding:0 18px;cursor:pointer}.search-results{display:grid;gap:12px;max-width:880px}.result{padding:20px;border:1px solid var(--line);border-radius:18px}.result h2{margin:0;font-size:1.45rem}.result h2 a{text-decoration:none}.result p{margin:8px 0 0;color:#697588;line-height:1.5}.result .meta{margin-top:10px;color:#8a94a5;font:500 .65rem/1.4 var(--mono)}
.mobile-menu{position:fixed;inset:0;z-index:100;visibility:hidden;pointer-events:none;clip-path:circle(0% at calc(100% - 36px) 42px);transition:clip-path .72s cubic-bezier(.75,0,.22,1),visibility .01s .72s;background:radial-gradient(circle at 90% 12%,rgba(143,192,255,.48),transparent 28%),radial-gradient(circle at 10% 90%,rgba(55,182,216,.18),transparent 26%),linear-gradient(135deg,#fafdff 0%,#edf5ff 48%,#faf9ff 100%)}.mobile-menu.open{visibility:visible;pointer-events:auto;clip-path:circle(150% at calc(100% - 36px) 42px);transition:clip-path .72s cubic-bezier(.75,0,.22,1),visibility .01s}.menu-decor{position:absolute;border-radius:50%;opacity:.8}.menu-decor.a{width:220px;height:220px;right:-70px;top:120px;background:linear-gradient(145deg,rgba(47,111,237,.18),rgba(117,104,245,.18))}.menu-decor.b{width:120px;height:120px;left:-30px;bottom:80px;background:linear-gradient(145deg,rgba(55,182,216,.2),rgba(143,192,255,.18))}.mobile-menu-inner{width:min(100% - 36px,760px);height:100%;margin:auto;padding:112px 0 32px;display:grid;grid-template-rows:1fr auto;position:relative;z-index:2}.menu-nav{align-self:center;display:grid;gap:2px}.menu-nav a{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 0;color:var(--ink);text-decoration:none;font-size:clamp(2.5rem,10vw,5rem);font-weight:800;letter-spacing:-.06em;line-height:.94;transform:translateY(24px);opacity:0;transition:.45s}.mobile-menu.open .menu-nav a{transform:translateY(0);opacity:1}.mobile-menu.open .menu-nav a:nth-child(1){transition-delay:.16s}.mobile-menu.open .menu-nav a:nth-child(2){transition-delay:.21s}.mobile-menu.open .menu-nav a:nth-child(3){transition-delay:.26s}.mobile-menu.open .menu-nav a:nth-child(4){transition-delay:.31s}.mobile-menu.open .menu-nav a:nth-child(5){transition-delay:.36s}.menu-nav a span:last-child{width:42px;height:42px;flex:none;border-radius:50%;display:grid;place-items:center;background:white;color:var(--blue);font-size:.9rem;box-shadow:var(--shadow-soft);transition:.2s}.menu-foot{display:flex;justify-content:space-between;gap:20px;align-items:end;color:#657184;font:500 .68rem/1.6 var(--mono)}.menu-socials{display:flex;gap:8px}.menu-socials a{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:white;color:var(--deep);text-decoration:none;box-shadow:var(--shadow-soft)}
.site-footer{position:relative;overflow:hidden;padding:58px 0 48px;border-top:1px solid var(--line);background:linear-gradient(180deg,#fff,#f7fbff)}.footer-inner{width:var(--wrap);margin:auto;display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end}.footer-name{font-size:clamp(2rem,4vw,3.6rem);font-weight:800;letter-spacing:-.055em}.footer-copy{margin-top:10px;max-width:700px;color:#677387;line-height:1.55}.footer-meta{text-align:right;color:#7d8899;font:500 .68rem/1.6 var(--mono)}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@media(max-width:980px){.desktop-nav{display:none}.search-btn{margin-left:auto}.menu-btn{display:grid}.hero-grid{grid-template-columns:1fr}.hero-art{min-height:400px}.featured-card{grid-template-columns:1fr}.featured-side{min-height:250px}.feed-shell{grid-template-columns:1fr}.sidebar{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.article-shell{grid-template-columns:1fr}.article-aside{position:static}.archive-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){:root{--wrap:min(100% - 26px,1220px)}.header-inner{min-height:72px}.brand-role{display:none}.hero{padding-top:40px}.hero-grid{gap:28px}.hero h1{font-size:clamp(3.5rem,17vw,5.8rem)}.hero-copy{font-size:1.05rem}.hero-art{min-height:330px}.visual-shell{width:min(92%,360px);min-height:330px;border-radius:34px 16px 34px 16px}.lottie-wrap{inset:28px}.lottie-wrap dotlottie-wc{min-height:270px}.floating-label.first{left:2px;bottom:42px}.floating-label.second{right:0;top:58px}.featured-card{border-radius:24px}.featured-copy{padding:28px 24px}.featured-side{padding:24px}.feed-shell{margin-top:54px;gap:32px}.post-row{grid-template-columns:1fr 42px;gap:10px 14px}.post-meta{grid-column:1/-1}.post-row:hover{padding-left:0;padding-right:0;background:none}.sidebar{grid-template-columns:1fr}.footer-inner{grid-template-columns:1fr}.footer-meta{text-align:left}.menu-foot{align-items:flex-start;flex-direction:column}.page-hero{padding:30px 24px;margin-top:30px;border-radius:24px}.archive-grid{grid-template-columns:1fr}.article-shell{width:min(100% - 26px,1160px);margin-top:34px}.article-header h1{font-size:clamp(3rem,14vw,5rem)}.search-form{flex-direction:column}.search-form button{padding:14px 18px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}


/* Projects */
.projects-hero{
  background:
    radial-gradient(circle at 88% 12%,rgba(96,151,242,.24),transparent 25rem),
    radial-gradient(circle at 15% 100%,rgba(63,178,210,.10),transparent 24rem),
    linear-gradient(135deg,#f7fbff 0%,#edf5ff 54%,#f8f9ff 100%);
}
.projects-section{
  width:var(--wrap);
  margin:54px auto 110px;
}
.projects-section .section-kicker{
  margin:0 0 18px;
  color:var(--blue);
  font:600 .69rem/1 var(--mono);
  letter-spacing:.08em;
  text-transform:uppercase;
}
.project-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}
.project-card{
  --project-accent:var(--blue);
  position:relative;
  min-height:310px;
  padding:28px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  border:1px solid #dce6f3;
  border-radius:26px;
  background:
    radial-gradient(circle at 105% -5%,color-mix(in srgb,var(--project-accent) 18%,transparent),transparent 42%),
    linear-gradient(145deg,#fff 0%,#f9fbff 100%);
  box-shadow:0 10px 28px rgba(37,86,150,.07);
  transition:
    transform .28s cubic-bezier(.2,.8,.2,1),
    box-shadow .28s ease,
    border-color .28s ease;
}
.project-card:nth-child(2){--project-accent:#5587eb}
.project-card:nth-child(3){--project-accent:#3479c8}
.project-card:nth-child(4){--project-accent:#2f9bb8}
.project-card:before{
  content:"";
  position:absolute;
  width:130px;
  height:130px;
  right:-54px;
  bottom:-62px;
  border-radius:42px;
  transform:rotate(28deg);
  background:linear-gradient(145deg,color-mix(in srgb,var(--project-accent) 19%,white),rgba(255,255,255,0));
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.project-card:hover{
  transform:translateY(-6px);
  border-color:#bed3ef;
  box-shadow:0 22px 52px rgba(42,92,164,.13);
}
.project-card:hover:before{transform:rotate(38deg) scale(1.12)}
.project-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:34px;
}
.project-tag{
  color:var(--project-accent);
  font:600 .67rem/1 var(--mono);
  letter-spacing:.075em;
  text-transform:uppercase;
}
.project-link{
  width:40px;
  height:40px;
  flex:none;
  display:grid;
  place-items:center;
  border-radius:13px;
  color:var(--project-accent);
  background:#eef5ff;
  text-decoration:none;
  transition:transform .22s ease,background .22s ease,color .22s ease;
}
.project-card:hover .project-link{
  transform:translate(2px,-2px);
  background:var(--project-accent);
  color:#fff;
}
.project-card h2{
  margin:0;
  max-width:14ch;
  font-size:clamp(1.8rem,3vw,2.65rem);
  line-height:.98;
  letter-spacing:-.05em;
}
.project-card h2 a{text-decoration:none}
.project-card h2 a:hover{color:var(--project-accent)}
.project-card p{
  margin:15px 0 28px;
  max-width:58ch;
  color:#647185;
  line-height:1.6;
}
.project-url{
  margin-top:auto;
  color:#7f8b9c;
  font:500 .67rem/1.4 var(--mono);
}

/* Mobile menu close control */
.mobile-menu-close{
  position:absolute;
  z-index:5;
  top:22px;
  right:max(18px,calc((100vw - min(100% - 36px,760px))/2));
  width:48px;
  height:48px;
  padding:0;
  border:1px solid rgba(76,111,162,.16);
  border-radius:16px;
  background:rgba(255,255,255,.86);
  box-shadow:0 12px 30px rgba(38,82,148,.12);
  backdrop-filter:blur(12px);
  cursor:pointer;
  opacity:0;
  transform:scale(.86) rotate(-20deg);
  transition:opacity .28s ease .28s,transform .4s cubic-bezier(.2,.8,.2,1) .24s,background .2s ease;
}
.mobile-menu.open .mobile-menu-close{
  opacity:1;
  transform:scale(1) rotate(0);
}
.mobile-menu-close:hover{
  background:#fff;
  transform:scale(1.06) rotate(4deg);
}
.mobile-menu-close span{
  position:absolute;
  left:13px;
  top:22px;
  width:21px;
  height:2px;
  border-radius:999px;
  background:var(--ink);
}
.mobile-menu-close span:first-child{transform:rotate(45deg)}
.mobile-menu-close span:last-child{transform:rotate(-45deg)}

/* Mobile-menu link interaction */
.menu-nav a{
  position:relative;
  isolation:isolate;
  border-radius:18px;
  padding-left:14px;
  padding-right:8px;
  transition:
    color .24s ease,
    transform .36s cubic-bezier(.2,.8,.2,1),
    opacity .45s ease,
    background .24s ease;
}
.menu-nav a:before{
  content:"";
  position:absolute;
  inset:4px 0;
  z-index:-1;
  border-radius:17px;
  background:linear-gradient(90deg,rgba(255,255,255,.78),rgba(239,246,255,.72));
  box-shadow:0 10px 30px rgba(39,84,149,.08);
  opacity:0;
  transform:scaleX(.96);
  transition:opacity .24s ease,transform .28s cubic-bezier(.2,.8,.2,1);
}
.menu-nav a:hover{
  color:var(--deep);
  transform:translateX(8px);
}
.menu-nav a:hover:before{
  opacity:1;
  transform:scaleX(1);
}
.menu-nav a:hover span:last-child{
  background:linear-gradient(135deg,var(--blue),var(--violet));
  color:#fff;
  transform:translateX(4px) rotate(-5deg);
  box-shadow:0 12px 24px rgba(50,111,220,.22);
}
.menu-nav a:active{transform:translateX(5px) scale(.985)}
.menu-nav a span:last-child{
  transition:
    transform .28s cubic-bezier(.2,.8,.2,1),
    background .22s ease,
    color .22s ease,
    box-shadow .22s ease;
}

@media(max-width:720px){
  .projects-section{margin-top:38px;margin-bottom:80px}
  .project-grid{grid-template-columns:1fr}
  .project-card{min-height:0;padding:23px;border-radius:22px}
  .project-topline{margin-bottom:27px}
  .mobile-menu-inner{padding-top:92px}
  .menu-nav a{font-size:clamp(2.35rem,12vw,4.3rem)}
}


/* cache-proof Projects page v4 */
.projects-hero{
  background:
    radial-gradient(circle at 92% 10%,rgba(83,137,235,.26),transparent 27rem),
    radial-gradient(circle at 5% 100%,rgba(65,178,210,.11),transparent 25rem),
    linear-gradient(135deg,#f8fbff 0%,#edf5ff 53%,#f7f8ff 100%) !important;
}
.projects-section{
  width:var(--wrap);
  margin:64px auto 112px;
}
.projects-intro{
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(300px,.7fr);
  gap:48px;
  align-items:end;
  margin-bottom:26px;
}
.projects-intro .section-kicker{
  color:var(--blue);
  font:600 .69rem/1 var(--mono);
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:10px;
}
.projects-intro h2{
  margin:0;
  font-size:clamp(2.4rem,5vw,4.5rem);
  letter-spacing:-.055em;
  line-height:.94;
}
.projects-intro > p{
  margin:0;
  color:#667387;
  line-height:1.62;
  max-width:610px;
}
.project-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:20px !important;
}
.project-card{
  --card-blue:#326fdc;
  position:relative !important;
  min-height:360px;
  padding:28px !important;
  overflow:hidden;
  display:flex !important;
  flex-direction:column;
  border:1px solid #dbe6f4 !important;
  border-radius:28px !important;
  background:
    radial-gradient(circle at 100% 0%,rgba(95,151,244,.18),transparent 39%),
    linear-gradient(145deg,#fff 0%,#f8fbff 100%) !important;
  box-shadow:0 12px 34px rgba(37,86,150,.08) !important;
  transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease,border-color .28s ease !important;
}
.project-card:after{
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  right:-95px;
  bottom:-95px;
  border-radius:48px;
  background:linear-gradient(145deg,rgba(75,130,231,.16),rgba(65,178,210,.06));
  transform:rotate(28deg);
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.project-card:hover{
  transform:translateY(-7px);
  border-color:#bcd2f0 !important;
  box-shadow:0 24px 56px rgba(42,92,164,.14) !important;
}
.project-card:hover:after{transform:rotate(38deg) scale(1.12)}
.project-topline{
  position:relative;
  z-index:2;
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px !important;
}
.project-tag{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--card-blue) !important;
  font:600 .67rem/1 var(--mono) !important;
  letter-spacing:.075em;
  text-transform:uppercase;
}
.project-link{
  width:42px;
  height:42px;
  display:grid !important;
  place-items:center;
  flex:none;
  border-radius:14px;
  color:var(--card-blue) !important;
  background:#edf5ff !important;
  text-decoration:none !important;
  transition:.22s ease;
}
.project-link:hover{
  background:var(--card-blue) !important;
  color:#fff !important;
  transform:translate(2px,-2px);
}
.project-number{
  position:relative;
  z-index:1;
  color:#dce9fa;
  font:700 clamp(3rem,6vw,5.2rem)/.8 var(--mono);
  letter-spacing:-.08em;
  margin:12px 0 22px;
}
.project-card h3{
  position:relative;
  z-index:2;
  margin:0 !important;
  font-size:clamp(1.85rem,3vw,2.75rem) !important;
  line-height:.98 !important;
  letter-spacing:-.05em !important;
}
.project-card h3 a{
  color:var(--ink) !important;
  text-decoration:none !important;
}
.project-card h3 a:hover{color:var(--card-blue) !important}
.project-card p{
  position:relative;
  z-index:2;
  margin:15px 0 28px !important;
  color:#637085 !important;
  line-height:1.6 !important;
  max-width:60ch;
}
.project-footer{
  position:relative;
  z-index:2;
  margin-top:auto;
  padding-top:16px;
  border-top:1px solid #e3ebf5;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  color:#8390a2;
  font:500 .66rem/1.4 var(--mono);
}
.project-footer a{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:var(--card-blue);
  text-decoration:none;
  font-weight:600;
  white-space:nowrap;
}
.project-footer a i{transition:transform .2s ease}
.project-footer a:hover i{transform:translateX(3px)}
.project-report{--card-blue:#326fdc}
.project-proof{--card-blue:#5c73e6}
.project-kvec{--card-blue:#2c75bb}
.project-ophelia{--card-blue:#228cae}

@media(max-width:760px){
  .projects-section{margin-top:44px;margin-bottom:80px}
  .projects-intro{grid-template-columns:1fr;gap:14px;margin-bottom:22px}
  .project-grid{grid-template-columns:1fr !important}
  .project-card{min-height:0;padding:23px !important;border-radius:23px !important}
  .project-number{font-size:3.2rem;margin:8px 0 18px}
  .project-footer{align-items:flex-start;flex-direction:column;gap:9px}
}


/* EATOP investigation article */
.investigation-article .article-header{max-width:860px}
.investigation-article .article-header h1{max-width:13ch}
.capacity-hero{margin:34px 0 12px;padding:28px;border:1px solid #cfe0f7;border-radius:26px;background:radial-gradient(circle at 92% 0%,rgba(102,153,243,.20),transparent 28%),linear-gradient(135deg,#f8fbff,#edf5ff 58%,#f9f9ff);box-shadow:0 16px 42px rgba(37,86,150,.09)}
.capacity-label,.aside-kicker{color:var(--blue);font:600 .67rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.capacity-comparison{display:grid;grid-template-columns:1fr auto 1fr;gap:22px;align-items:center;margin-top:24px}
.capacity-stat{display:grid;gap:6px}
.capacity-stat span{color:#6b778a;font-size:.82rem;font-weight:700}
.capacity-stat strong{display:block;font-size:clamp(3.2rem,7vw,6.4rem);line-height:.82;letter-spacing:-.07em;color:var(--ink)}
.capacity-stat strong em{font-size:.28em;font-style:normal;letter-spacing:-.02em;color:#5f6f86}
.capacity-stat.validated strong{color:var(--blue)}
.capacity-stat small{color:#7d899b;font:500 .68rem/1.4 var(--mono)}
.capacity-arrow{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--blue);box-shadow:0 8px 24px rgba(47,111,237,.12)}
.capacity-bar{height:13px;margin-top:27px;overflow:hidden;border-radius:999px;background:#dbe7f7;box-shadow:inset 0 1px 2px rgba(30,68,121,.08)}
.capacity-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f6fed,#4aa7da,#7568f5)}
.capacity-note{margin-top:12px;color:#5e6d82;font-size:.88rem;line-height:1.5}
.capacity-note b{color:#1f4e9c}
.test-table-wrap{overflow-x:auto;margin:1.5em 0}
.article-warning{display:grid;grid-template-columns:46px 1fr;gap:14px;align-items:start;margin:2em 0;padding:20px;border:1px solid #f0d2a0;border-radius:18px;background:linear-gradient(135deg,#fffaf0,#fffdf8);font-family:var(--sans)}
.article-warning>i{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;color:#a96500;background:#fff0cf}
.article-warning strong{display:block;margin-bottom:5px}
.article-warning span{color:#6f675c;font-size:.92rem;line-height:1.5}
.verdict-box{display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:start;margin:2.2em 0;padding:24px;border-radius:22px;color:#fff;background:linear-gradient(135deg,#132d59,#1e56a8 62%,#3174d9);box-shadow:0 18px 44px rgba(31,72,133,.18);font-family:var(--sans)}
.verdict-icon{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:rgba(255,255,255,.12);font-size:1.5rem}
.verdict-box span{display:block;color:#d8e7ff;font:600 .68rem/1 var(--mono);text-transform:uppercase;letter-spacing:.08em}
.verdict-box strong{display:block;margin-top:7px;font-size:clamp(2rem,4vw,3.5rem);line-height:.95;letter-spacing:-.05em;color:#fff}
.verdict-box p{margin:10px 0 0!important;color:#e7efff!important;font-size:.95rem!important;line-height:1.5!important}
.test-record{margin:1.5em 0 2em;border:1px solid #dbe5f2;border-radius:20px;overflow:hidden;background:#fff}
.test-record dl{margin:0}
.test-record dl>div{display:grid;grid-template-columns:minmax(150px,.75fr) minmax(0,1.25fr);gap:18px;padding:13px 16px;border-bottom:1px solid #e5ebf3}
.test-record dl>div:last-child{border-bottom:0}
.test-record dt{color:#718096;font:600 .68rem/1.45 var(--mono);text-transform:uppercase}
.test-record dd{margin:0;color:#273244;font-weight:650}
.evidence-box{background:radial-gradient(circle at 95% 0%,rgba(132,180,255,.23),transparent 34%),linear-gradient(145deg,#f8fbff,#eef5ff);border-color:#cfe0f7}
.evidence-box h3{font-size:1.5rem;line-height:1.04}
.aside-meter{height:9px;margin:17px 0 8px;background:#d8e5f7;border-radius:999px;overflow:hidden}
.aside-meter span{display:block;width:13.739%;height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan));border-radius:inherit}
.evidence-box small{color:#66758b;font:500 .66rem/1.4 var(--mono)}
.aside-link{display:inline-flex;align-items:center;gap:7px;margin-top:15px;color:var(--blue);text-decoration:none;font-size:.84rem;font-weight:700}
.aside-link:hover{color:var(--deep)}
.capacity-feature-art{min-width:235px;padding:24px 26px;border-radius:24px;background:linear-gradient(145deg,#10264b,#245db4);color:#fff;box-shadow:0 24px 56px rgba(28,70,134,.24);transform:rotate(-4deg);display:grid;gap:7px}
.capacity-feature-art span{font:600 .65rem/1 var(--mono);letter-spacing:.08em;color:#cfe0ff}
.capacity-feature-art strong{font-size:2.35rem;line-height:.95;letter-spacing:-.055em}
.capacity-feature-art i{margin:5px 0;color:#8ec7ff}
@media(max-width:760px){
  .capacity-hero{padding:21px;border-radius:22px}
  .capacity-comparison{grid-template-columns:1fr;gap:15px}
  .capacity-arrow{width:38px;height:38px;transform:rotate(90deg)}
  .capacity-stat strong{font-size:clamp(3.6rem,20vw,5.2rem)}
  .article-warning{grid-template-columns:40px 1fr;padding:17px}
  .article-warning>i{width:40px;height:40px;border-radius:12px}
  .verdict-box{grid-template-columns:48px 1fr;padding:19px}
  .verdict-icon{width:48px;height:48px;border-radius:15px}
  .test-record dl>div{grid-template-columns:1fr;gap:5px}
}
