:root{--paper:#F6F1E6;--paper-deep:#EDE5D3;--paper-card:#FBF8F1;--ink:#1B1712;--ink-soft:#3A342C;--ink-70:rgba(27,23,18,.68);--ink-50:rgba(27,23,18,.62);--ink-30:rgba(27,23,18,.28);--rule:rgba(27,23,18,.14);--rule-soft:rgba(27,23,18,.08);--up:#1F7A4D;--up-dim:rgba(31,122,77,.12);--brick:#B23A2E;--brick-deep:#8C2A21;--brick-dim:rgba(178,58,46,.12);--gold:#C9932E;--gold-dim:rgba(201,147,46,.16);--night:#1B1712;--night-card:#231E17;--on-night:#F6F1E6;--on-night-70:rgba(246,241,230,.68);--on-night-50:rgba(246,241,230,.46);--radius:4px;--radius-lg:6px;--accent:var(--up);--accent-deep:#175E3B;--accent-dim:var(--up-dim);--maxw:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:NaNs!important;animation-iteration-count:1!important;transition-duration:NaNs!important;scroll-behavior:auto!important}}body{margin:0;background:repeating-linear-gradient(180deg,rgba(27,23,18,.028) 0,rgba(27,23,18,.028) 1px,transparent 1px,transparent 34px),var(--paper);color:var(--ink);font-family:Inter,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0)}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.mono{font-family:'IBM Plex Mono',monospace}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;box-sizing:border-box}@media (max-width:860px){.wrap{padding-left:28px;padding-right:28px}.nav-inner{padding-left:28px;padding-right:28px}}@media (max-width:640px){.wrap{padding-left:24px;padding-right:24px}.nav-inner{padding-left:24px;padding-right:24px}}h1,h2,h3,h4{font-family:Fraunces,serif;font-weight:600;margin:0;letter-spacing:-.01em;color:var(--ink)}h1{font-size:clamp(40px,6.4vw,78px);line-height:.98;font-weight:700;letter-spacing:-.025em}h2{font-size:clamp(28px,3.6vw,42px);line-height:1.1;font-weight:700;letter-spacing:-.015em}h3{font-size:19px;line-height:1.3}h4{font-size:15px;line-height:1.4}p{margin:0 0 16px;line-height:1.7;color:var(--ink-70)}p:last-child{margin-bottom:0}em{font-style:italic}::selection{background:var(--up);color:var(--paper)}:focus-visible{outline:2px solid var(--up);outline-offset:3px;border-radius:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-48px;left:12px;z-index:1000;background:var(--ink);color:var(--paper);padding:10px 18px;border-radius:var(--radius);font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;text-decoration:none;transition:top .15s ease}.skip-link:focus{top:12px}.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(246,241,230,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}.nav-inner{max-width:var(--maxw);margin:0 auto;padding:15px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative}.brand{display:flex;align-items:center;gap:10px;font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.brand-mark{width:28px;height:28px;border-radius:2px;background:var(--ink);display:flex;align-items:center;justify-content:center;color:var(--paper);flex:none}.nav-links{display:flex;gap:2px;list-style:none;margin:0;padding:0}.nav-links a{font-size:13px;color:var(--ink-70);transition:color .2s,background .2s;position:relative;padding:8px 12px;border-radius:2px;font-family:'IBM Plex Mono',monospace;letter-spacing:.01em}.nav-links a:hover{color:var(--ink);background:var(--rule-soft)}.nav-right{display:flex;align-items:center;gap:14px}.lang-toggle{display:flex;border:1px solid var(--ink);border-radius:2px;overflow:hidden;font-family:'IBM Plex Mono',monospace;font-size:11px}.lang-toggle a{background:0 0;border:none;color:var(--ink-50);padding:7px 12px;cursor:pointer;font-family:inherit;font-size:11px;letter-spacing:.05em;transition:all .2s;font-weight:600;display:inline-block;text-decoration:none}.lang-toggle a.active{background:var(--ink);color:var(--paper)}.nav-cta{display:none}.menu-btn{display:none;background:0 0;border:1px solid var(--ink);color:var(--ink);border-radius:2px;padding:8px 10px;cursor:pointer}@media (max-width:860px){.nav-links{position:absolute;top:calc(100% + 10px);right:0;left:auto;bottom:auto;background:var(--paper-card);border:1px solid var(--ink);border-radius:2px;flex-direction:column;padding:8px;gap:2px;font-size:15px;width:230px;max-height:70vh;overflow-y:auto;box-shadow:6px 6px 0 var(--ink);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease,visibility .2s;z-index:10}.nav-links.open{opacity:1;visibility:visible;transform:translateY(0)}.nav-links li{width:100%;list-style:none}.nav-links a{display:block;padding:12px 14px;border-radius:2px;transition:background .2s,color .2s}.nav-links a:hover{background:var(--paper-deep)}.menu-btn{display:block}}.hero{padding:150px 0 50px;position:relative;overflow:hidden}.hero::before{content:'';position:absolute;top:0;left:0;right:0;height:100%;background-image:linear-gradient(rgba(27,23,18,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(27,23,18,.05) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 78% 20%,#000 0%,transparent 72%);mask-image:radial-gradient(ellipse 70% 60% at 78% 20%,#000 0%,transparent 72%);pointer-events:none}.hero-inner{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;position:relative}.hero-copy{min-width:0}.eyebrow{color:var(--up);font-size:12.5px;letter-spacing:.06em;margin:0 0 18px;text-transform:uppercase;font-weight:700;display:inline-flex;align-items:center;gap:9px}.eyebrow::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--up);box-shadow:0 0 0 3px var(--up-dim);flex:none;animation:blip 2.2s ease-in-out infinite}@keyframes blip{0%,100%{opacity:1}50%{opacity:.35}}.hero h1{color:var(--ink)}.hero h1 em{color:var(--up);font-weight:700;font-style:normal;position:relative;white-space:nowrap}.hero h1 em::after{content:'';position:absolute;left:-2px;right:-2px;bottom:.06em;height:.22em;background:var(--gold-dim);z-index:-1}.contact h2 .excl{color:var(--up);font-style:normal}.role-marquee{margin:20px 0 24px;font-size:13px;color:var(--ink-70);letter-spacing:.02em;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:11px 0}.role-track{display:flex;width:max-content;gap:0;animation:role-scroll 24s linear infinite}.role-track:hover{animation-play-state:paused}.role-item{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:0 18px;font-family:'IBM Plex Mono',monospace;font-weight:500}.role-item svg{flex:none;color:var(--brick)}.role .sep{color:var(--gold);padding:0 8px}@keyframes role-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}@media (prefers-reduced-motion:reduce){.role-track{animation:none}}.lede{font-size:17.5px;color:var(--ink-70);max-width:520px;margin:0 0 34px}.hero-cta{display:flex;gap:12px;flex-wrap:wrap}.back-to-top{position:static;z-index:60;width:46px;height:46px;border-radius:2px;background:var(--ink);border:1px solid var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:4px 4px 0 var(--rule);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s ease,transform .25s ease,visibility .25s,background .2s}.back-to-top.show{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{background:var(--up);border-color:var(--up)}.back-to-top svg{pointer-events:none}@media (max-width:640px){.back-to-top{width:42px;height:42px}}.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:2px;font-size:13.5px;font-weight:700;cursor:pointer;border:1.5px solid var(--ink);transition:transform .15s,background .2s,border-color .2s,color .2s,box-shadow .15s;font-family:'IBM Plex Mono',monospace;letter-spacing:.01em;text-transform:uppercase}.btn:hover{transform:translate(-2px,-2px);box-shadow:3px 3px 0 var(--ink)}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:var(--up);border-color:var(--up);box-shadow:3px 3px 0 var(--accent-deep)}.btn-ghost{background:0 0;color:var(--ink)}.btn-ghost:hover{background:var(--paper-card)}.hero-visual{position:relative;display:flex;justify-content:center;align-items:center;min-height:360px;margin-bottom:40px}.photo-frame{width:270px;height:330px;border-radius:2px;overflow:hidden;position:relative;border:1.5px solid var(--ink);box-shadow:10px 10px 0 var(--gold-dim),0 20px 45px -25px rgba(27,23,18,.4);filter:grayscale(.15) contrast(1.03)}.photo-frame img{width:100%;height:100%;object-fit:cover}.serp-card{position:absolute;bottom:-30px;left:-42px;width:252px;background:var(--night);color:var(--on-night);border-radius:2px;padding:16px 18px;box-shadow:6px 6px 0 var(--gold);border:1px solid var(--night)}.serp-card .serp-title{font-size:13.5px;color:var(--on-night);margin:3px 0 5px;font-weight:600;line-height:1.3;font-family:Fraunces,serif}.serp-card .serp-desc{font-size:11.5px;color:var(--on-night-70);line-height:1.5}.ticker{position:absolute;top:-22px;right:-18px;background:var(--paper-card);border:1.5px solid var(--ink);border-radius:2px;padding:10px 14px;box-shadow:4px 4px 0 var(--up);display:flex;align-items:center;gap:10px}.ticker-label{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.06em;color:var(--ink-50);text-transform:uppercase;line-height:1.3}.ticker-num{font-family:'IBM Plex Mono',monospace;font-size:26px;font-weight:700;color:var(--up);line-height:1;display:flex;align-items:baseline;gap:4px}.ticker-num .arrow{font-size:14px}@media (max-width:900px){.hero-inner{grid-template-columns:1fr}.hero-visual{margin-top:96px;order:-1;min-height:auto}.serp-card{left:50%;transform:translateX(-50%);bottom:-30px}.ticker{right:auto;left:50%;transform:translateX(38px);top:-42px}}@media (max-width:420px){.ticker{transform:translateX(20px);top:-38px;padding:7px 10px}.ticker-num{font-size:19px}.ticker-label{font-size:8.5px}}section{padding:104px 0;position:relative}.section-head{max-width:640px;margin:0 0 52px}.section-tag{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--up);letter-spacing:.1em;display:flex;align-items:center;gap:10px;margin-bottom:14px;text-transform:uppercase;font-weight:700}.section-tag::before{content:'';width:22px;height:2px;background:var(--brick)}.section-head h2{color:var(--ink)}.section-head p{color:var(--ink-70);margin-top:14px;font-size:15.5px}.about-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:56px;align-items:start}.about-copy p{color:var(--ink-70);font-size:16px;margin:0 0 18px}.about-heading{margin-bottom:26px;color:var(--ink)}.gbp-card{background:var(--paper-card);color:var(--ink);border-radius:2px;padding:26px 26px 22px;border:1.5px solid var(--ink);box-shadow:8px 8px 0 var(--rule)}.gbp-top{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px}.gbp-avatar{width:52px;height:52px;border-radius:2px;overflow:hidden;flex:none;border:1.5px solid var(--ink)}.gbp-avatar img{width:100%;height:100%;object-fit:cover}.gbp-name{display:flex;align-items:center;gap:6px;font-weight:700;font-size:16.5px}.gbp-name svg{flex:none}.gbp-cat{font-size:12.5px;color:var(--ink-50);margin-top:2px;font-family:'IBM Plex Mono',monospace}.gbp-rating{display:flex;align-items:center;gap:6px;margin:14px 0 18px;font-size:13px;color:var(--ink-70)}.gbp-rating .stars{color:var(--gold);letter-spacing:2px;font-size:14px}.gbp-rows{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--rule);padding-top:14px}.gbp-row{display:flex;align-items:center;gap:12px;padding:9px 4px;border-radius:2px;transition:background .2s;font-size:13.5px}.gbp-row:hover{background:var(--paper-deep)}.gbp-row svg{flex:none;color:var(--brick)}.gbp-row a,.gbp-row span{color:var(--ink-soft);word-break:break-word}.skill-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:34px}.skill-card{border:1.5px solid var(--ink);border-radius:2px;padding:28px;background:var(--paper-card);position:relative}.skill-card h3{color:var(--ink);font-size:19px;margin-bottom:6px}.skill-card .skill-sub{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.05em;margin-bottom:18px;display:inline-block}.skill-card.seo{box-shadow:6px 6px 0 var(--up-dim)}.skill-card.seo .skill-sub{color:var(--up)}.skill-card.writer{box-shadow:6px 6px 0 var(--brick-dim)}.skill-card.writer .skill-sub{color:var(--brick)}.chip-row{display:flex;flex-wrap:wrap;gap:9px}.chip{border:1px solid var(--ink);border-radius:2px;padding:7px 13px;font-size:12.5px;color:var(--ink-70);font-family:'IBM Plex Mono',monospace;background:var(--paper)}.skill-card.seo .chip{border-color:rgba(31,122,77,.4)}.skill-card.writer .chip{border-color:rgba(178,58,46,.4)}.tools-row{display:flex;flex-wrap:wrap;gap:10px}.tool-card{display:flex;align-items:center;gap:12px;font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--ink-70);border:1px solid var(--ink);border-radius:2px;padding:11px 16px;background:var(--paper-card);transition:box-shadow .2s,transform .2s}.tool-card:hover{box-shadow:3px 3px 0 var(--up);transform:translate(-1px,-1px)}.tool-icon{position:relative;width:28px;height:28px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:2px;overflow:hidden;background:var(--paper-deep)}.tool-icon img{width:28px;height:28px;object-fit:contain;border-radius:2px}.tool-fallback{display:none;width:28px;height:28px;border-radius:2px;background:var(--up-dim);color:var(--up);font-size:13px;font-weight:700;align-items:center;justify-content:center;font-family:Inter,sans-serif}.timeline{display:flex;flex-direction:column}.tl-item{display:grid;grid-template-columns:150px 1fr;gap:30px;padding:28px 0;border-top:1px solid var(--rule);position:relative}.tl-item::before{content:'';position:absolute;left:142px;top:34px;width:9px;height:9px;border-radius:50%;background:var(--up);border:2px solid var(--paper);box-shadow:0 0 0 1px var(--ink);display:none}@media (min-width:701px){.tl-item::before{display:block}}.tl-item:last-child{border-bottom:1px solid var(--rule)}.tl-date{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--up);padding-top:4px;font-weight:700;letter-spacing:.02em}.tl-company{font-size:21px;color:var(--ink);margin-bottom:4px;font-family:Fraunces,serif;font-weight:700}.tl-role{font-size:12.5px;color:var(--brick);margin-bottom:12px;font-weight:700;letter-spacing:.03em;font-family:'IBM Plex Mono',monospace;text-transform:uppercase}.tl-subrole{padding-top:14px;margin-top:14px;border-top:1px dashed var(--rule)}.tl-subrole:first-of-type{padding-top:0;margin-top:0;border-top:none}.tl-role-period{color:var(--ink-50);font-weight:400;font-size:11.5px;display:inline-block;margin-left:4px}.tl-points{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.tl-points li{position:relative;padding-left:18px;color:var(--ink-70);font-size:14.5px}.tl-points li::before{content:'–';position:absolute;left:0;top:0;color:var(--ink-30);font-size:13px}@media (max-width:700px){.tl-item{grid-template-columns:1fr;gap:8px}}.toggle-wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:14px}.segmented{display:inline-flex;background:var(--paper-card);border:1.5px solid var(--ink);border-radius:2px;padding:4px}.segmented button{border:none;background:0 0;color:var(--ink-70);font-family:'IBM Plex Mono',monospace;font-size:12.5px;padding:10px 20px;border-radius:2px;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.segmented button.active{background:var(--ink);color:var(--paper)}.portfolio-intro{color:var(--ink-70);font-size:15px;max-width:560px;margin:18px 0 44px;transition:opacity .25s}.port-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.port-grid[data-theme=seo]{grid-template-columns:repeat(2,1fr)}@media (max-width:980px){.port-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:680px){.skill-cols{grid-template-columns:1fr}.about-grid{grid-template-columns:1fr}}.pf-card{border:1.5px solid var(--ink);border-radius:2px;background:var(--paper-card);padding:24px;display:flex;flex-direction:column;gap:14px;transition:box-shadow .2s,transform .2s}.pf-card:hover{transform:translate(-3px,-3px);box-shadow:5px 5px 0 var(--accent)}.pf-logo{height:24px;display:flex;align-items:center}.pf-logo img{height:100%;width:auto;object-fit:contain;filter:grayscale(1) contrast(1.6) brightness(.3);opacity:.85}.pf-logo.color img{filter:none;opacity:1}.pf-role{font-size:11.5px;color:var(--accent);font-family:'IBM Plex Mono',monospace;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.pf-desc{font-size:14px;color:var(--ink-70);flex:1}.pf-tags{display:flex;flex-wrap:wrap;gap:7px}.pf-tags span{font-size:11px;border:1px solid var(--rule);border-radius:2px;padding:4px 8px;color:var(--ink-50);font-family:'IBM Plex Mono',monospace}.pf-link{font-size:13px;font-weight:700;color:var(--accent);display:inline-flex;align-items:center;gap:6px;margin-top:4px;font-family:'IBM Plex Mono',monospace}.pf-badge{position:absolute;top:18px;right:18px;background:var(--gold);color:var(--ink);font-size:10px;font-family:'IBM Plex Mono',monospace;font-weight:700;padding:4px 9px;border-radius:2px;text-transform:uppercase;letter-spacing:.02em}.pf-card{position:relative}.li-carousel{position:relative;margin-top:8px}.li-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x proximity;padding:4px 4px 18px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ink-30) transparent}.li-track::-webkit-scrollbar{height:6px}.li-track::-webkit-scrollbar-thumb{background:var(--ink-30);border-radius:99px}.li-card{flex:0 0 250px;scroll-snap-align:start;text-align:left;cursor:pointer;border:1.5px solid var(--ink);border-radius:2px;background:var(--paper-card);padding:0 0 20px;overflow:hidden;display:flex;flex-direction:column;gap:12px;color:inherit;font:inherit;transition:box-shadow .2s,transform .2s}.li-card:hover{transform:translate(-3px,-3px);box-shadow:5px 5px 0 var(--accent)}.li-card-img{width:100%;aspect-ratio:1/1;background:var(--paper-deep);overflow:hidden;flex:none;display:flex;align-items:center;justify-content:center;border-bottom:1.5px solid var(--ink)}.li-card-img img{width:100%;height:100%;object-fit:contain;display:block}.li-card-title{font-family:Fraunces,serif;font-size:16px;line-height:1.3;color:var(--ink);margin:0;padding:0 20px}.li-card-desc{font-size:13px;color:var(--ink-70);flex:1;margin:0;line-height:1.55;padding:0 20px}.li-card-cta{font-size:12px;font-weight:700;color:var(--accent);font-family:'IBM Plex Mono',monospace;padding:0 20px;text-transform:uppercase;letter-spacing:.02em}.li-modal-overlay{position:fixed;inset:0;background:rgba(27,23,18,.72);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:200;padding:24px}.li-modal-overlay.open{display:flex}.li-modal{width:100%;max-width:560px;max-height:88vh;background:var(--paper-card);border:1.5px solid var(--ink);border-radius:2px;padding:20px;display:flex;flex-direction:column;gap:14px;overflow:hidden;box-shadow:8px 8px 0 var(--gold)}.li-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex:none}.li-modal-head h3{font-size:17px;color:var(--ink)}.li-modal-close{flex:none;width:32px;height:32px;border-radius:2px;border:1.5px solid var(--ink);background:0 0;color:var(--ink-70);font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.li-modal-close:hover{background:var(--ink);color:var(--paper)}.li-modal-body{flex:1;min-height:0;overflow-y:auto;border-radius:2px;background:var(--paper-deep);border:1px solid var(--rule)}.li-modal-body .li-preview-img{width:100%;max-height:38vh;object-fit:contain;background:var(--paper-deep);display:block}.li-modal-body .li-preview-desc{font-size:14.5px;color:var(--ink-70);line-height:1.65;padding:16px 20px 20px;margin:0}.li-modal-open-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--ink);color:var(--paper);font-weight:700;font-size:13px;padding:13px 18px;border-radius:2px;transition:background .2s;font-family:'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.02em}.li-modal-open-btn:hover{background:var(--up)}@media (max-width:560px){.li-card{flex-basis:220px}}.view-modal-overlay{position:fixed;inset:0;background:rgba(27,23,18,.72);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:210;padding:24px}.view-modal-overlay.open{display:flex}.view-modal{width:min(760px,94vw);height:min(78vh,640px);min-width:280px;min-height:240px;max-width:96vw;max-height:94vh;background:var(--paper-card);border:1.5px solid var(--ink);border-radius:2px;display:flex;flex-direction:column;overflow:auto;resize:both;box-shadow:8px 8px 0 var(--gold)}.view-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid var(--rule);flex:none;background:var(--paper-card);position:sticky;top:0;z-index:2}.view-modal-head h3{font-size:13.5px;color:var(--ink);font-family:'IBM Plex Mono',monospace;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.view-modal-actions{display:flex;align-items:center;gap:8px;flex:none}.view-modal-open{font-size:10.5px;font-weight:700;color:var(--accent);font-family:'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.02em;border:1px solid var(--ink);border-radius:2px;padding:7px 10px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;transition:background .2s,color .2s}.view-modal-open:hover{background:var(--ink);color:var(--paper)}.view-modal-close{flex:none;width:30px;height:30px;border-radius:2px;border:1.5px solid var(--ink);background:0 0;color:var(--ink-70);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.view-modal-close:hover{background:var(--ink);color:var(--paper)}.view-modal-body{flex:1;min-height:0;overflow:auto;background:var(--paper-deep)}.view-modal-body img{width:100%;height:auto;display:block}.view-modal-body iframe{width:100%;height:100%;border:0;display:block;min-height:360px;background:#fff}.view-card{display:flex;flex-direction:column;gap:16px;padding:22px;height:100%;box-sizing:border-box;justify-content:center}.view-card-top{display:flex;align-items:center;gap:12px}.view-card-logo{flex:none;width:56px;height:56px;border-radius:8px;background:var(--paper-card);border:1px solid var(--rule);display:flex;align-items:center;justify-content:center;overflow:hidden}.view-card-logo img{width:100%;height:100%;object-fit:contain;padding:6px}.view-card-pub{font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:13.5px;color:var(--ink)}.view-card-role{font-size:11.5px;color:var(--ink-50);text-transform:uppercase;letter-spacing:.04em}.view-card-desc{font-size:14.5px;line-height:1.65;color:var(--ink-70);margin:0}.view-card-tags{display:flex;flex-wrap:wrap;gap:6px}.view-card-tags span{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--ink-70);background:var(--paper-card);border:1px solid var(--rule);border-radius:20px;padding:4px 10px}.view-card-note{font-size:11.5px;color:var(--ink-50);line-height:1.55;border-top:1px dashed var(--rule);padding-top:14px}.view-card-cta{margin-top:4px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.03em;background:var(--accent);color:var(--paper);border:1.5px solid var(--ink);border-radius:2px;padding:14px 18px;transition:background .2s,color .2s,transform .2s}.view-card-cta:hover{background:var(--ink);transform:translate(-2px,-2px)}.view-modal-hint{font-size:10px;color:var(--ink-50);font-family:'IBM Plex Mono',monospace;padding:7px 14px;border-top:1px dashed var(--rule);flex:none}.seo-card{border:1.5px solid var(--ink);border-radius:2px;background:var(--paper-card);padding:26px;display:flex;flex-direction:column;gap:16px;transition:box-shadow .2s,transform .2s;position:relative}.seo-card:hover{transform:translate(-3px,-3px);box-shadow:5px 5px 0 var(--up)}.seo-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.seo-head h3{color:var(--ink);font-size:19px;margin-bottom:3px}.seo-cat{font-size:12.5px;color:var(--ink-50)}.seo-period{flex:none;white-space:nowrap;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--up);padding-top:3px;font-weight:700}.seo-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:14px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.seo-stat b{display:block;font-family:'IBM Plex Mono',monospace;font-size:17px;color:var(--ink)}.seo-stat span{font-size:10.5px;color:var(--ink-50);text-transform:uppercase;letter-spacing:.04em}.kw-list{display:flex;flex-direction:column;gap:8px}.kw-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;gap:10px}.kw-name{color:var(--ink-70);flex:1}.kw-move{font-family:'IBM Plex Mono',monospace;color:var(--ink-50);white-space:nowrap}.kw-delta{font-family:'IBM Plex Mono',monospace;color:var(--up);font-weight:700;background:var(--up-dim);border-radius:2px;padding:2px 7px;white-space:nowrap}.seo-highlight{font-size:13px;color:var(--ink-70);border-left:2px solid var(--up);padding-left:12px;font-style:italic}.seo-report-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:2px;padding:11px 18px;border-radius:2px;border:1.5px solid var(--ink);background:var(--paper);color:var(--ink-70);font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .2s,color .2s}.seo-report-btn:hover{background:var(--ink);color:var(--paper)}.seo-report-btn svg{width:15px;height:15px;flex:none}@media (max-width:520px){.seo-stats{grid-template-columns:repeat(2,1fr)}}.contact{background:var(--night);border-top:1px solid var(--ink);color:var(--on-night)}.contact-inner{text-align:center;padding-top:88px;padding-bottom:64px}.contact h2{font-size:clamp(34px,6vw,64px);color:var(--on-night);margin-bottom:22px}.contact h2 em{color:var(--up);font-style:normal}.contact-email{display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:clamp(16px,2.6vw,22px);color:var(--up);border-bottom:1px solid var(--up);padding-bottom:4px;margin-bottom:44px;font-weight:600}.contact-links{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:70px}.clink{border:1.5px solid rgba(246,241,230,.25);border-radius:2px;padding:12px 20px;font-size:13px;display:flex;align-items:center;gap:9px;transition:border-color .2s,background .2s;font-family:'IBM Plex Mono',monospace;color:var(--on-night-70)}.clink:hover{border-color:var(--up);background:rgba(31,122,77,.12);color:var(--on-night)}.footer-bar{display:flex;justify-content:space-between;align-items:center;padding-top:26px;border-top:1px solid rgba(246,241,230,.14);font-size:12px;color:var(--on-night-50);flex-wrap:wrap;gap:10px;font-family:'IBM Plex Mono',monospace}.footer-bar .mono{font-size:11.5px}.footer-legal a{color:var(--on-night-50);text-decoration:underline;text-underline-offset:2px}.footer-legal a:hover{color:var(--on-night)}.reveal{opacity:.01;transform:translateY(22px);transition:opacity .6s cubic-bezier(.2,.7,.3,1),transform .6s cubic-bezier(.2,.7,.3,1)}.reveal.in{opacity:1;transform:translateY(0)}.hero-visible,.hero-visible .photo-frame,.hero-visible img{opacity:1!important;transform:none!important;visibility:visible!important}[data-theme=writer]{--accent:var(--brick);--accent-deep:var(--brick-deep);--accent-dim:var(--brick-dim)}@media (max-width:480px){.wrap{padding-left:24px;padding-right:24px}.nav-inner{padding:12px 24px}.brand{font-size:11px}.hero{padding:120px 0 52px}section{padding:56px 0}.page-hero{padding-top:92px;padding-bottom:20px}.page-section{padding:24px 0 56px}.lang-toggle a{padding:6px 9px}.serp-card{width:calc(100% - 48px);max-width:250px}.ticker{padding:8px 11px}.ticker-num{font-size:21px}.kw-row{flex-wrap:wrap;row-gap:4px}.kw-name{flex:1 1 100%}.contact-links{gap:10px}.clink{padding:10px 16px;font-size:12.5px}.footer-bar{justify-content:center;text-align:center;gap:8px}.btn{padding:12px 18px;font-size:12.5px}h1{font-size:clamp(30px,8.5vw,44px);line-height:1.08}.page-hero h1{max-width:100%}.lede{font-size:15.5px}.section-tag{margin-bottom:8px}.breadcrumb{margin-bottom:8px}}@media (max-width:720px){.port-grid.port-grid--home,.port-grid:not(.is-split-carousel){display:flex!important;flex-direction:column!important;align-items:center!important;gap:16px!important;margin-left:0!important;margin-right:0!important;padding:0!important;overflow:visible!important}.port-grid.port-grid--home>.card-link,.port-grid:not(.is-split-carousel)>.card-link{width:100%;max-width:420px;margin-left:auto;margin-right:auto;box-sizing:border-box}}.page-hero{padding-top:120px;padding-bottom:40px}.page-hero .lede{font-size:17px;max-width:560px;margin-top:16px;color:var(--ink-70)}.breadcrumb{font-size:12px;color:var(--ink-50);margin:0 0 10px;font-family:'IBM Plex Mono',monospace;display:flex;flex-wrap:wrap;align-items:center;list-style:none;padding:0}.breadcrumb li{display:inline-flex;align-items:center}.breadcrumb a{color:var(--ink-70)}.breadcrumb a:hover{color:var(--ink)}.breadcrumb .sep{margin:0 8px;opacity:.45;user-select:none}.breadcrumb [aria-current=page]{color:var(--ink)}.nav-links a.active{color:var(--ink);background:var(--rule-soft)}section.page-section{padding:40px 0 80px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:28px}@media(max-width:760px){.grid-2{grid-template-columns:1fr}}.card-link{display:block;border:1px solid var(--rule);background:var(--paper-card);padding:28px;border-radius:var(--radius);transition:border-color .2s,transform .2s,box-shadow .2s}.card-link:hover{border-color:var(--up);transform:translateY(-2px);box-shadow:0 10px 28px rgba(27,23,18,.08)}.card-link h3{margin-bottom:8px}.card-link p{font-size:14.5px;margin:0}.article-block{border-top:1px solid var(--rule);padding:36px 0}.article-block h2{font-size:clamp(22px,3vw,30px);margin-bottom:12px}.article-meta{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-50);margin-bottom:16px}.company-desc{font-size:13.5px;color:var(--ink-50);font-style:italic;margin:6px 0 10px;border-left:2px solid var(--rule);padding-left:12px}.contact-form{display:grid;gap:14px;max-width:520px}.contact-form input,.contact-form textarea{width:100%;padding:12px 14px;border:1px solid var(--rule);background:var(--paper-card);color:var(--ink);font-family:inherit;font-size:14.5px;border-radius:var(--radius)}.contact-form textarea{min-height:120px;resize:vertical}.contact-form button{justify-self:start}.form-status{margin:0;font-size:13.5px;line-height:1.5}.form-status.is-ok{color:var(--up)}.form-status.is-err{color:var(--brick)}.contact-form.is-sending button{opacity:.65;pointer-events:none}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.skill-card{border:1px solid var(--rule);background:var(--paper-card);padding:18px;border-radius:var(--radius)}.skill-card h4{margin-bottom:8px}.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.tool-pill{border:1px solid var(--rule);background:var(--paper-card);padding:12px 14px;border-radius:var(--radius);font-size:13px;text-align:center;font-family:'IBM Plex Mono',monospace}.footer-simple{border-top:1px solid var(--rule);padding:28px 0;margin-top:40px;font-size:13px;color:var(--ink-50);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}a.brand{color:inherit}.hero-meta{margin-top:22px;font-size:12.5px;color:var(--ink-50);display:flex;flex-wrap:wrap;gap:8px;align-items:center}.port-grid,.seo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.li-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.skill-card{border:1px solid var(--rule);background:var(--paper-card);padding:14px 16px;border-radius:var(--radius);font-size:14px}.tool-card{border:1px solid var(--rule);background:var(--paper-card);padding:14px 10px;border-radius:var(--radius);text-align:center;font-size:12px;font-family:'IBM Plex Mono',monospace;display:flex;flex-direction:column;align-items:center;gap:8px}.tool-card img{width:36px;height:36px;object-fit:contain}.photo-frame{border:1px solid var(--rule);padding:8px;background:var(--paper-card);border-radius:var(--radius);box-shadow:4px 4px 0 rgba(27,23,18,.08)}.photo-frame img{width:100%;height:auto;display:block;border-radius:2px;object-fit:cover}.tl-company-row{display:flex;align-items:center;gap:12px;margin-bottom:6px}.tl-logo,.writer-logo{width:56px;height:56px;object-fit:contain;border-radius:8px;background:var(--paper-card);border:1px solid var(--rule);flex-shrink:0;padding:6px}.company-desc{font-size:13.5px;color:var(--ink-50);font-style:italic;margin:6px 0 12px;border-left:2px solid var(--rule);padding-left:12px}.li-card{border:1px solid var(--rule);background:var(--paper-card);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}.li-card-img{width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--paper-deep)}.li-card-body{padding:14px 16px 18px}.li-card-title{font-size:16px;margin-bottom:8px}.li-card-desc{font-size:13.5px;color:var(--ink-70);margin:0 0 10px}.li-card-cta{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;color:var(--up)}.page-hero{padding-top:120px;padding-bottom:36px}.page-section{padding:24px 0 64px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:28px}@media(max-width:760px){.grid-2{grid-template-columns:1fr}.hero-inner{grid-template-columns:1fr}}.card-link{display:block;border:1px solid var(--rule);background:var(--paper-card);padding:28px;border-radius:var(--radius);transition:border-color .2s,transform .2s,box-shadow .2s}.card-link:hover{border-color:var(--up);transform:translateY(-2px);box-shadow:0 10px 28px rgba(27,23,18,.08)}.article-block{border-top:1px solid var(--rule);padding:36px 0}.article-block h2{font-size:clamp(22px,3vw,30px);margin-bottom:12px}.article-meta{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-50);margin-bottom:16px}.contact-form{display:grid;gap:14px}.contact-form input,.contact-form textarea{width:100%;padding:12px 14px;border:1px solid var(--rule);background:var(--paper-card);color:var(--ink);font-family:inherit;font-size:14.5px;border-radius:var(--radius)}.contact-form textarea{min-height:120px;resize:vertical}.breadcrumb{font-size:12px;color:var(--ink-50);margin:0 0 10px;font-family:'IBM Plex Mono',monospace;display:flex;flex-wrap:wrap;align-items:center;list-style:none;padding:0}.breadcrumb li{display:inline-flex;align-items:center}.breadcrumb a{color:var(--ink-70)}.breadcrumb a:hover{color:var(--ink)}.breadcrumb .sep{margin:0 8px;opacity:.45}.breadcrumb [aria-current=page]{color:var(--ink)}.nav-links a.active{color:var(--ink);background:var(--rule-soft)}a.brand{color:inherit}[hidden]{display:none!important}.seo-narrative{font-size:14px;line-height:1.7;color:var(--ink-70);margin:12px 0 14px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.jobdesk-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--up);margin:16px 0 8px;font-weight:700}.seo-card .kw-list{margin-top:8px}.view-modal{position:relative;resize:both;overflow:auto}.view-modal.is-dragging{opacity:.96;user-select:none}.view-modal-head{cursor:move;touch-action:none}.view-modal-body{flex:1;min-height:0;overflow:auto;background:var(--paper-deep)}.view-modal-body img{width:100%;height:auto;display:block}.view-modal-body iframe{width:100%;height:100%;border:0;display:block;min-height:360px;background:#fff}.view-modal-hint{font-size:11px;color:var(--ink-50);padding:8px 14px;font-family:'IBM Plex Mono',monospace;border-top:1px solid var(--rule)}button.li-card-cta,button.seo-report-btn{font:inherit;cursor:pointer;background:0 0;border:none;padding:0;color:inherit;text-align:left}button.seo-report-btn{display:inline-flex;align-items:center;gap:6px;font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--up);border:1px solid var(--ink)!important;border-radius:2px;padding:8px 12px!important;margin-top:auto;background:var(--paper-card)!important;transition:background .2s,color .2s}button.seo-report-btn:hover{background:var(--ink)!important;color:var(--paper)!important}button.li-card-cta{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;color:var(--up)}.view-modal.article-mode{width:min(640px,94vw);height:auto;max-height:90vh;min-height:0}.view-modal.article-mode .view-modal-body{background:var(--paper);overflow:auto}.article-preview{padding:28px 28px 24px}.article-preview-brand{display:flex;align-items:center;gap:14px;margin-bottom:18px}.article-preview-logo{width:56px;height:56px;border-radius:10px;background:var(--paper-card);border:1px solid var(--rule);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;box-shadow:0 1px 3px rgba(27,23,18,.06)}.article-preview-logo img{width:40px;height:40px;object-fit:contain}.article-preview-brand h4{margin:0;font-size:18px;color:var(--ink)}.article-preview-kicker{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-50);margin-top:3px}.article-preview-desc{font-size:15px;line-height:1.65;color:var(--ink-70);margin:0 0 16px}.article-preview-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}.article-preview-tags span{display:inline-block;padding:6px 12px;border-radius:999px;background:var(--paper-deep);border:1px solid var(--rule);font-size:12.5px;color:var(--ink-soft)}.article-preview-note{font-size:13px;line-height:1.55;color:var(--ink-50);margin:0 0 16px;padding-top:16px;border-top:1px dashed var(--rule)}.article-preview-cta{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px 18px;border-radius:4px;background:var(--up);color:#fff!important;font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-align:center;transition:background .2s,transform .15s;border:none;cursor:pointer;text-decoration:none}.article-preview-cta:hover{background:var(--accent-deep);transform:translateY(-1px)}.view-modal-open.ghost{font-size:10.5px;font-weight:700;color:var(--up);font-family:'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.02em;border:1px solid var(--ink);border-radius:2px;padding:7px 10px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;background:0 0}.view-modal-open.ghost:hover{background:var(--ink);color:var(--paper)}.update-card{padding:0;overflow:hidden}button.update-card-hit{display:flex;flex-direction:column;width:100%;height:100%;border:none;background:0 0;padding:0;margin:0;text-align:left;cursor:pointer;font:inherit;color:inherit}button.update-card-hit:hover .li-card-cta{color:var(--ink)}button.update-card-hit:focus-visible{outline:2px solid var(--up);outline-offset:2px}.update-modal-body{padding:8px 4px 12px}.update-modal-body p{margin:0 0 14px;font-size:15px;line-height:1.7;color:var(--ink-70)}.update-modal-body p:last-child{margin-bottom:0}.update-modal-img{width:100%;max-height:220px;object-fit:cover;display:block;border-bottom:1px solid var(--rule)}.seo-carousel-row{display:contents}@media (max-width:720px){.port-grid.is-split-carousel,.seo-grid.is-split-carousel{display:flex!important;flex-direction:column!important;gap:14px!important;overflow:visible!important;margin-left:-24px!important;margin-right:-24px!important;padding:4px 0 12px!important}.port-grid.is-split-carousel .seo-carousel-row,.seo-grid.is-split-carousel .seo-carousel-row{display:flex!important;flex-wrap:nowrap!important;gap:12px!important;overflow-x:auto!important;overflow-y:hidden!important;padding:4px 11vw 10px!important;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;scroll-padding-left:11vw;scroll-padding-right:11vw}.port-grid.is-split-carousel .seo-carousel-row::-webkit-scrollbar,.seo-grid.is-split-carousel .seo-carousel-row::-webkit-scrollbar{display:none}.port-grid.is-split-carousel .card-link,.port-grid.is-split-carousel .pf-card,.port-grid.is-split-carousel .seo-card,.seo-grid.is-split-carousel .card-link,.seo-grid.is-split-carousel .pf-card,.seo-grid.is-split-carousel .seo-card{flex:0 0 min(78%,300px)!important;width:min(78%,300px)!important;max-width:300px;min-width:0;scroll-snap-align:center}.seo-card{padding:14px 12px;gap:8px}.seo-card .seo-narrative{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;line-height:1.5}.seo-card .kw-list{display:none}.seo-period{font-size:10px}.seo-head h3{font-size:14px;line-height:1.3}.seo-cat{font-size:11px}.seo-highlight{font-size:12px;padding-left:10px}.seo-report-btn{padding:9px 12px;font-size:11px;width:100%}.li-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;overflow:visible!important}.li-card{min-width:0}.li-card-desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}}@media (max-width:420px){.port-grid.is-split-carousel .seo-carousel-row,.seo-grid.is-split-carousel .seo-carousel-row{padding-left:9vw!important;padding-right:9vw!important;scroll-padding-left:9vw;scroll-padding-right:9vw}.port-grid.is-split-carousel .card-link,.port-grid.is-split-carousel .pf-card,.port-grid.is-split-carousel .seo-card,.seo-grid.is-split-carousel .card-link,.seo-grid.is-split-carousel .pf-card,.seo-grid.is-split-carousel .seo-card{flex-basis:min(82%,280px)!important;width:min(82%,280px)!important}.li-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.seo-card{padding:12px 10px}.seo-head h3{font-size:13px}}.seo-narrative{font-size:14px;line-height:1.55;color:var(--ink-70)}.seo-report-btn{margin-top:auto}.seo-read-more{display:inline-block;margin:2px 0 4px;padding:0;border:0;background:0 0;color:var(--up);font-family:'IBM Plex Mono',monospace;font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;text-align:left}.seo-read-more:hover{text-decoration:underline}.seo-read-more:focus-visible{outline:2px solid var(--up);outline-offset:2px}.view-modal.article-mode .view-modal-body,.view-modal.text-mode .view-modal-body{padding:0}.view-modal.text-mode{max-width:520px;max-height:80vh}.narrative-preview{padding:20px 22px 24px}.narrative-preview p{margin:0 0 12px;font-size:15px;line-height:1.7;color:var(--ink-70)}.narrative-preview p:last-child{margin-bottom:0}.clink svg{flex-shrink:0;opacity:.9}.clink span{line-height:1}.li-card-img{aspect-ratio:16/10;width:100%;object-fit:cover;object-position:center center;display:block}.li-card-img--lower{object-position:center 62%}html[data-theme=dark] .li-card-img--lower{object-position:center 62%}.updates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.updates-grid .li-card{display:flex;flex-direction:column;overflow:hidden;background:var(--paper);border:1px solid var(--rule);border-radius:4px}.updates-grid .update-card-hit{display:flex;flex-direction:column;height:100%;width:100%;border:0;background:0 0;padding:0;margin:0;text-align:left;cursor:pointer;font:inherit;color:inherit}.updates-grid .li-card-img{width:100%;height:168px;object-fit:cover;object-position:center center;display:block;flex-shrink:0;background:var(--paper-deep)}.updates-grid .li-card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1}.updates-grid .li-card-title{font-size:16px;line-height:1.35;margin:0}.updates-grid .li-card-desc{font-size:13px;line-height:1.5;color:var(--ink-70);margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.updates-grid .li-card-cta{margin-top:auto;font-size:11px;font-family:'IBM Plex Mono',monospace;color:var(--up);letter-spacing:.04em;text-transform:uppercase}@media (max-width:720px){.updates-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.updates-grid .li-card-img{height:130px}}@media (max-width:720px){.wrap{padding-left:20px;padding-right:20px}.nav-inner{padding-left:20px;padding-right:20px}.page-hero{padding-top:100px;padding-bottom:24px}.page-hero nav{margin:0;padding:0}.page-hero .breadcrumb{margin:0 0 12px;padding:0;line-height:1.4;font-size:12px}.page-hero .section-tag{margin:0 0 12px}.page-hero h1{margin:0;max-width:100%}.page-hero .lede{margin-top:14px}}@media (max-width:480px){.wrap{padding-left:18px;padding-right:18px}.nav-inner{padding-left:18px;padding-right:18px}.page-hero{padding-top:92px;padding-bottom:20px}.page-hero .breadcrumb{margin:0 0 10px;font-size:11.5px}.page-hero .section-tag{margin:0 0 10px}.page-hero h1{margin:0}}.stats-strip{padding:0 0 8px}.section-tight{padding:56px 0 64px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1.5px solid var(--ink);border-radius:2px;background:var(--paper-card);box-shadow:6px 6px 0 var(--rule)}.stat-item{padding:26px 18px;border-left:1px solid var(--rule);text-align:center}.stat-item:first-child{border-left:none}.stat-num{font-family:Fraunces,serif;font-size:clamp(20px,2.4vw,28px);font-weight:700;color:var(--up);line-height:1;margin-bottom:8px;letter-spacing:-.01em}.stat-label{font-size:11.5px;color:var(--ink-70);line-height:1.4}@media (max-width:760px){.stats-grid{grid-template-columns:repeat(2,1fr);box-shadow:4px 4px 0 var(--rule)}.stat-item{border-left:1px solid var(--rule)}.stat-item:nth-child(odd){border-left:none}.stat-item:nth-child(n+3){border-top:1px solid var(--rule)}}.card-stat{margin-top:12px;font-size:11px;color:var(--up);letter-spacing:.02em;font-family:'IBM Plex Mono',monospace}.logo-marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:18px 0}.logo-track{display:flex;width:max-content;animation:logo-scroll 32s linear infinite}.logo-track:hover{animation-play-state:paused}.logo-chip{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;padding:0 26px;font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--ink-70);border-right:1px solid var(--rule)}.logo-chip img{width:22px;height:22px;object-fit:contain;flex:none}@keyframes logo-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}@media (prefers-reduced-motion:reduce){.logo-track{animation:none;flex-wrap:wrap;width:auto}}.spotlight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}.spotlight-card{display:grid;grid-template-columns:220px 1fr;border:1.5px solid var(--ink);border-radius:2px;background:var(--paper-card);overflow:hidden;box-shadow:6px 6px 0 var(--up-dim);transition:transform .2s,box-shadow .2s}.spotlight-grid .spotlight-card{grid-template-columns:1fr;display:flex;flex-direction:column;height:100%}.spotlight-grid .spotlight-number{padding:20px 16px;flex:none}.spotlight-card:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--up)}.spotlight-number{display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:clamp(22px,2.8vw,32px);font-weight:700;color:var(--up);background:var(--up-dim);padding:28px 16px;text-align:center;line-height:1.15}.spotlight-body{padding:26px 28px;display:flex;flex-direction:column;flex:1;min-height:0}.spotlight-grid .spotlight-body{padding:20px 22px}.spotlight-name{font-family:Fraunces,serif;font-size:19px;font-weight:700;color:var(--ink);margin-bottom:4px}.spotlight-cat{font-size:11.5px;color:var(--ink-50);margin-bottom:12px;text-transform:uppercase;letter-spacing:.03em}.spotlight-desc{font-size:14.5px;color:var(--ink-70);margin:0 0 14px;line-height:1.65;flex:1}.spotlight-link{font-family:'IBM Plex Mono',monospace;font-size:12.5px;font-weight:700;color:var(--up);text-transform:uppercase;letter-spacing:.02em;margin-top:auto;padding-top:4px}@media (max-width:640px){.spotlight-card{grid-template-columns:1fr}.spotlight-number{padding:20px 16px}}@media (max-width:900px){.spotlight-grid{grid-template-columns:1fr}}.mini-timeline{display:flex;flex-direction:column;border-top:1px solid var(--rule)}.mini-tl-item{display:flex;align-items:center;gap:16px;padding:18px 4px;border-bottom:1px solid var(--rule)}.mini-tl-logo{width:48px;height:48px;object-fit:contain;border-radius:8px;flex:none;background:var(--paper-card);border:1px solid var(--rule);padding:6px}.mini-tl-role{font-family:Fraunces,serif;font-size:16px;font-weight:600;color:var(--ink)}.mini-tl-company{font-size:12px;color:var(--ink-50);margin-top:3px;font-family:'IBM Plex Mono',monospace}a.li-card{cursor:pointer}a.li-card:hover{transform:translate(-3px,-3px);box-shadow:5px 5px 0 var(--accent)}.updates-carousel{position:relative}.carousel-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:2px 2px 12px;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.carousel-track::-webkit-scrollbar{display:none;height:0}.carousel-track>.li-card{scroll-snap-align:start;flex:0 0 320px}.carousel-btn{position:absolute;top:calc(50% - 19px);width:38px;height:38px;border-radius:2px;border:1.5px solid var(--ink);background:var(--paper-card);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;box-shadow:3px 3px 0 var(--rule);color:var(--ink);transition:background .2s,color .2s,box-shadow .2s,transform .15s}.carousel-btn:hover{background:var(--ink);color:var(--paper);box-shadow:3px 3px 0 var(--up);transform:translateY(-1px)}.carousel-btn.prev{left:-19px}.carousel-btn.next{right:-19px}@media (max-width:960px){.carousel-btn{display:none}}@media (max-width:640px){.carousel-track{padding-left:10vw;padding-right:10vw;scroll-padding-left:10vw;scroll-padding-right:10vw}.carousel-track>.li-card{flex-basis:80vw;max-width:320px;scroll-snap-align:center}}@media (max-width:640px){.mini-tl-logo{width:40px;height:40px}.mini-tl-role{font-size:14.5px}.spotlight-body{padding:20px 20px}}.u-mt16{margin-top:16px}.u-mt24{margin-top:24px}.u-mt26{margin-top:26px}.u-mt28{margin-top:28px}.u-mt48{margin-top:48px}.u-mt56{margin-top:56px}.u-photo-frame-sm{max-width:320px;margin:0 auto}.u-fs13-mb12{font-size:13px;margin-bottom:12px}.u-fs13-mt28{font-size:13px;margin:28px 0 12px}.u-flex-start12{display:flex;gap:12px;align-items:flex-start}.u-hidden{display:none}html[data-theme=dark]{--paper:#12100e;--paper-deep:#1a1714;--paper-card:#1e1a16;--ink:#f3ebe0;--ink-soft:#e8dfd2;--ink-70:rgba(243,235,224,.72);--ink-50:rgba(243,235,224,.55);--ink-30:rgba(243,235,224,.28);--rule:rgba(243,235,224,.14);--rule-soft:rgba(243,235,224,.08);--up:#3dba72;--up-dim:rgba(61,186,114,.16);--brick:#e85a4f;--brick-deep:#c94a40;--brick-dim:rgba(232,90,79,.16);--gold:#e0b04a;--gold-dim:rgba(224,176,74,.18);--night:#0c0b0a;--night-card:#161310;--on-night:#f3ebe0;--on-night-70:rgba(243,235,224,.72);--on-night-50:rgba(243,235,224,.48);--accent:var(--up);--accent-deep:#2e9a5c;--accent-dim:var(--up-dim);color-scheme:dark}html[data-theme=dark] body{background:repeating-linear-gradient(180deg,rgba(243,235,224,.03) 0,rgba(243,235,224,.03) 1px,transparent 1px,transparent 34px),var(--paper)}html[data-theme=dark] .nav{background:rgba(18,16,14,.92);border-bottom-color:var(--rule)}html[data-theme=dark] .photo-frame{border-color:var(--rule);box-shadow:8px 8px 0 var(--gold-dim),0 20px 45px -25px rgba(0,0,0,.55);filter:grayscale(.1) contrast(1.05) brightness(.95)}html[data-theme=dark] .btn-primary{background:var(--up);color:#0c0b0a;border-color:var(--up)}html[data-theme=dark] .btn-primary:hover{background:var(--accent-deep);border-color:var(--accent-deep)}html[data-theme=dark] .article-preview-logo,html[data-theme=dark] .mini-tl-logo,html[data-theme=dark] .tl-logo,html[data-theme=dark] .view-card-logo,html[data-theme=dark] .writer-logo{background:#fff;border-color:rgba(243,235,224,.2)}html[data-theme=dark] .logo-chip img,html[data-theme=dark] .tool-card img{filter:none}html[data-theme=dark] ::selection{background:var(--up);color:#0c0b0a}html[data-theme=dark] .card-link:hover,html[data-theme=dark] a.li-card:hover{box-shadow:5px 5px 0 var(--up-dim)}@media (prefers-reduced-motion:no-preference){html.theme-transitioning,html.theme-transitioning body{transition:background-color .95s cubic-bezier(.4, 0, .2, 1),color .95s cubic-bezier(.4, 0, .2, 1)}html.theme-transitioning .article-card,html.theme-transitioning .article-preview-logo,html.theme-transitioning .brand-mark,html.theme-transitioning .btn,html.theme-transitioning .btn-ghost,html.theme-transitioning .btn-primary,html.theme-transitioning .card,html.theme-transitioning .eyebrow,html.theme-transitioning .hero,html.theme-transitioning .lang-toggle a,html.theme-transitioning .lede,html.theme-transitioning .li-card,html.theme-transitioning .logo-chip,html.theme-transitioning .menu-btn,html.theme-transitioning .mini-tl-logo,html.theme-transitioning .nav,html.theme-transitioning .nav-links,html.theme-transitioning .photo-frame,html.theme-transitioning .role-item,html.theme-transitioning .section,html.theme-transitioning .seo-card,html.theme-transitioning .sep,html.theme-transitioning .tl-logo,html.theme-transitioning .tool-card,html.theme-transitioning .update-card,html.theme-transitioning .view-card,html.theme-transitioning .view-card-logo,html.theme-transitioning .writer-logo,html.theme-transitioning a,html.theme-transitioning footer,html.theme-transitioning h1,html.theme-transitioning h2,html.theme-transitioning h3,html.theme-transitioning h4,html.theme-transitioning p{transition:background-color .95s cubic-bezier(.4, 0, .2, 1),color .95s cubic-bezier(.4, 0, .2, 1),border-color .95s cubic-bezier(.4, 0, .2, 1),box-shadow .95s cubic-bezier(.4, 0, .2, 1),filter .95s cubic-bezier(.4, 0, .2, 1),fill .95s cubic-bezier(.4, 0, .2, 1),stroke .95s cubic-bezier(.4, 0, .2, 1)}}.greeting-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:24px;pointer-events:none;background:rgba(12,11,10,.22);opacity:0;transition:opacity .38s cubic-bezier(.4,0,.2,1),background-color .38s cubic-bezier(.4,0,.2,1)}html[data-theme=dark] .greeting-overlay{background:rgba(0,0,0,.4)}@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)){.greeting-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}}.greeting-overlay.is-visible{opacity:1}.greeting-overlay.is-leaving{opacity:0}.greeting-card{font-family:Fraunces,serif;font-size:28px;font-weight:600;letter-spacing:.01em;color:var(--ink);background:var(--paper-card);border:1.5px solid var(--rule);border-radius:2px;padding:26px 42px;box-shadow:6px 6px 0 var(--up-dim),0 24px 48px -20px rgba(0,0,0,.35);opacity:0;transform:scale(.92);transition:opacity .38s cubic-bezier(.4,0,.2,1),transform .38s cubic-bezier(.4,0,.2,1);max-width:min(90vw,420px);text-align:center;white-space:nowrap}.greeting-overlay.is-visible .greeting-card{opacity:1;transform:scale(1)}@media (max-width:640px){.greeting-card{font-size:20px;padding:18px 26px;white-space:normal}}@media (prefers-reduced-motion:reduce){.greeting-card,.greeting-overlay{transition:opacity .01s linear;transform:none}}@media (max-width:640px){.spotlight-grid{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;padding:2px 10vw 12px;scroll-padding-left:10vw;scroll-padding-right:10vw;align-items:stretch}.spotlight-grid::-webkit-scrollbar{display:none;height:0}.spotlight-grid .spotlight-card{flex:0 0 80vw;max-width:320px;scroll-snap-align:center;grid-template-columns:1fr;box-shadow:4px 4px 0 var(--up-dim);display:flex;flex-direction:column;align-self:stretch;height:auto;min-height:100%}.spotlight-grid .spotlight-card:hover{transform:none;box-shadow:4px 4px 0 var(--up-dim)}.spotlight-grid .spotlight-number{padding:16px 14px;font-size:clamp(20px,5.5vw,26px)}.spotlight-grid .spotlight-body{padding:16px 16px 18px}.spotlight-grid .spotlight-name{font-size:17px;margin-bottom:3px}.spotlight-grid .spotlight-cat{font-size:11px;margin-bottom:8px}.spotlight-grid .spotlight-desc{font-size:13.5px;margin:0 0 10px;line-height:1.55}.spotlight-grid .spotlight-link{font-size:12px}}@media (max-width:420px){.spotlight-grid{padding-left:9vw;padding-right:9vw;scroll-padding-left:9vw;scroll-padding-right:9vw}.spotlight-grid .spotlight-card{flex-basis:min(82%,280px);max-width:280px}}@media (max-width:640px){.updates-carousel .carousel-track>.li-card{flex-basis:72vw;max-width:260px}.updates-carousel .li-card-img,.updates-carousel a.li-card>img.li-card-img{aspect-ratio:16/10!important;height:auto!important;max-height:140px;object-fit:cover;object-position:center top;width:100%}.updates-carousel .li-card-body{padding:10px 12px 12px}.updates-carousel .li-card-title{font-size:13.5px;line-height:1.3;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.updates-carousel .li-card-desc{font-size:12px;line-height:1.4;margin:0 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.updates-carousel .li-card-cta{font-size:11px}}@media (max-width:420px){.updates-carousel .carousel-track>.li-card{flex-basis:min(78%,240px);max-width:240px}.updates-carousel .li-card-img,.updates-carousel a.li-card>img.li-card-img{max-height:120px;aspect-ratio:16/10!important}.updates-carousel .li-card-body{padding:9px 11px 11px}.updates-carousel .li-card-title{font-size:13px}.updates-carousel .li-card-desc{font-size:11.5px;-webkit-line-clamp:2}}.fab-stack{position:fixed;right:26px;bottom:26px;z-index:60;display:flex;align-items:center;gap:12px}@media (max-width:640px){.fab-stack{right:16px;bottom:16px;gap:10px}}.ai-chat-fab{position:static;display:flex;align-items:center;gap:9px;padding:12px 14px 12px 18px;border-radius:999px;background:var(--ink);border:1px solid var(--ink);color:var(--paper);cursor:pointer;box-shadow:4px 4px 0 var(--rule);font-family:'IBM Plex Mono',monospace;font-size:12.5px;font-weight:700;letter-spacing:.01em;text-transform:uppercase;transition:opacity .2s ease,transform .2s ease,visibility .2s,background .2s}.ai-chat-fab:hover{background:var(--up);border-color:var(--up)}.ai-chat-fab.is-hidden{opacity:0;visibility:hidden;transform:translateY(12px);pointer-events:none}.ai-chat-fab svg{flex:none;order:2}.ai-chat-fab-label{order:1}@media (max-width:640px){.ai-chat-fab{padding:12px}.ai-chat-fab-label{display:none}}.ai-chat-panel{position:fixed;right:26px;bottom:86px;z-index:70;width:min(360px,calc(100vw - 32px));max-height:min(520px,calc(100vh - 112px));display:flex;flex-direction:column;background:var(--paper-card);border:1.5px solid var(--ink);border-radius:var(--radius-lg);box-shadow:6px 6px 0 var(--rule);opacity:0;visibility:hidden;transform:translateY(16px) scale(.98);transition:opacity .22s ease,transform .22s ease,visibility .22s}.ai-chat-panel.is-open{opacity:1;visibility:visible;transform:translateY(0) scale(1)}@media (max-width:640px){.ai-chat-panel{left:16px;right:16px;bottom:70px;width:auto;max-height:min(480px,calc(100vh - 96px))}}.ai-chat-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--rule);font-family:'IBM Plex Mono',monospace;font-size:12.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--ink)}.ai-chat-close{background:0 0;border:none;color:var(--ink-50);cursor:pointer;font-size:14px;line-height:1;padding:4px}.ai-chat-close:hover{color:var(--brick)}.ai-chat-messages{flex:1;min-height:180px;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.ai-chat-msg{max-width:86%;padding:9px 12px;border-radius:10px;font-size:13.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.ai-chat-msg--assistant{align-self:flex-start;background:var(--paper-deep);color:var(--ink);border-bottom-left-radius:3px}.ai-chat-msg--user{align-self:flex-end;background:var(--up);color:var(--paper);border-bottom-right-radius:3px}.ai-chat-msg--typing{opacity:.6;font-style:italic}.ai-chat-msg p{margin:0 0 8px 0}.ai-chat-msg p:last-child{margin-bottom:0}.ai-chat-msg strong{font-weight:700}.ai-chat-msg em{font-style:italic}.ai-chat-msg ol,.ai-chat-msg ul{margin:2px 0 8px 0;padding-left:20px}.ai-chat-msg ol:last-child,.ai-chat-msg ul:last-child{margin-bottom:0}.ai-chat-msg li{margin-bottom:3px}.ai-chat-msg li:last-child{margin-bottom:0}.ai-chat-msg h1,.ai-chat-msg h2,.ai-chat-msg h3,.ai-chat-msg h4,.ai-chat-msg h5,.ai-chat-msg h6{font-size:1em;font-weight:700;margin:0 0 6px 0;line-height:1.4}.ai-chat-msg code{background:rgba(0,0,0,.08);padding:1px 5px;border-radius:4px;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:.9em}.ai-chat-msg pre{background:rgba(0,0,0,.08);padding:9px 10px;border-radius:8px;overflow-x:auto;margin:0 0 8px 0;white-space:pre}.ai-chat-msg pre code{background:0 0;padding:0}.ai-chat-msg blockquote{border-left:2px solid currentColor;opacity:.85;margin:0 0 8px 0;padding-left:10px}.ai-chat-msg a{color:inherit;text-decoration:underline;text-underline-offset:2px}html[data-theme=dark] .ai-chat-msg code,html[data-theme=dark] .ai-chat-msg pre{background:rgba(255,255,255,.1)}.ai-chat-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--rule)}.ai-chat-input{flex:1;padding:10px 12px;border:1.5px solid var(--rule);border-radius:6px;background:var(--paper);color:var(--ink);font-family:Inter,sans-serif;font-size:13.5px}.ai-chat-input:focus{outline:0;border-color:var(--up)}.ai-chat-send{padding:10px 16px;border-radius:6px;border:1.5px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:700;text-transform:uppercase}.ai-chat-send:hover{background:var(--up);border-color:var(--up)}html[data-theme=dark] .ai-chat-fab{background:var(--night-card);border-color:var(--rule);color:var(--on-night)}html[data-theme=dark] .ai-chat-fab:hover{background:var(--up);border-color:var(--up);color:var(--on-night)}html[data-theme=dark] .ai-chat-panel{background:var(--night-card);border-color:var(--rule)}html[data-theme=dark] .ai-chat-head{color:var(--on-night);border-color:var(--rule)}html[data-theme=dark] .ai-chat-close{color:var(--on-night-50)}html[data-theme=dark] .ai-chat-msg--assistant{background:var(--night);color:var(--on-night)}html[data-theme=dark] .ai-chat-input{background:var(--night);color:var(--on-night);border-color:var(--rule)}