/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
.portfolio-v2{--page:#11110f;--surface:#191917;--surface-raised:#20201d;--ink:#f3f1e9;--muted:#9c9b92;--line:rgba(243,241,233,0.13);--acid:#d3f36b;--violet:#9b84f7;--orange:#ff865c;min-height:100vh;overflow:clip;background:var(--page);color:var(--ink);font:16px/1.6 "DM Sans",sans-serif;-webkit-font-smoothing:antialiased;}.portfolio-v2 *,.portfolio-v2 *::before,.portfolio-v2 *::after{box-sizing:border-box;}.portfolio-v2 ::selection{color:var(--page);background:var(--acid);}.portfolio-v2 a{color:inherit;}.portfolio-v2 button{font:inherit;}.portfolio-v2 .section-wrap{width:min(1180px,calc(100% - 64px));margin-inline:auto;}.portfolio-v2 .skip-link{position:fixed;z-index:100;top:12px;left:12px;padding:11px 16px;color:var(--page);background:var(--acid);transform:translateY(-160%);}.portfolio-v2 .skip-link:focus{transform:translateY(0);}.portfolio-v2 :focus-visible{outline:2px solid var(--acid);outline-offset:4px;}.portfolio-v2 .site-nav{position:sticky;z-index:50;top:0;border-bottom:1px solid rgba(243,241,233,0.09);background:rgba(17,17,15,0.9);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);}.portfolio-v2 .nav-inner{display:flex;width:min(1320px,calc(100% - 64px));height:82px;margin-inline:auto;align-items:center;justify-content:space-between;}.portfolio-v2 .wordmark{display:inline-flex;align-items:center;gap:12px;color:var(--ink);font:600 0.72rem/1 "DM Mono",monospace;letter-spacing:0.12em;text-decoration:none;}.portfolio-v2 .wordmark-mark{display:grid;width:38px;height:38px;place-items:center;border:1px solid var(--line);border-radius:50%;font:600 0.82rem/1 "Space Grotesk",sans-serif;letter-spacing:-0.07em;}.portfolio-v2 .wordmark-mark span{color:var(--acid);}.portfolio-v2 .nav-links{display:flex;align-items:center;gap:clamp(20px,3vw,42px);}.portfolio-v2 .nav-links > a{color:#c1c0b8;font-size:0.83rem;text-decoration:none;transition:color 180ms ease;}.portfolio-v2 .nav-links > a:hover{color:var(--acid);}.portfolio-v2 .nav-links > .nav-cta{padding:11px 17px;border:1px solid rgba(211,243,107,0.55);border-radius:2px;color:var(--acid);}.portfolio-v2 .nav-cta span{margin-left:9px;}.portfolio-v2 .menu-toggle{display:none;}.portfolio-v2 .eyebrow,.portfolio-v2 .section-kicker,.portfolio-v2 .hero-meta,.portfolio-v2 .art-label,.portfolio-v2 .art-node strong,.portfolio-v2 .art-node > span,.portfolio-v2 .core-caption,.portfolio-v2 .project-type,.portfolio-v2 .tag-list,.portfolio-v2 .skill-group-head span,.portfolio-v2 .service-number,.portfolio-v2 .activity-card-top,.portfolio-v2 .contact-location,.portfolio-v2 .social-links,.portfolio-v2 .contact-bottom,.portfolio-v2 .site-footer .footer-inner > span,.portfolio-v2 .scroll-cue{font-family:"DM Mono",monospace;font-size:0.63rem;letter-spacing:0.1em;}.portfolio-v2 .hero{position:relative;display:grid;min-height:680px;grid-template-columns:1.03fr 0.97fr;align-items:center;padding-top:85px;padding-bottom:100px;}.portfolio-v2 .hero-copy{position:relative;z-index:2;padding:5px 0 25px;}.portfolio-v2 .eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:11px;margin:0 0 29px;color:#aaa99f;}.portfolio-v2 .status-dot,.portfolio-v2 .contact-location i,.portfolio-v2 .activity-card-top > span:first-child i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--acid);box-shadow:0 0 13px rgba(211,243,107,0.7);}.portfolio-v2 .eyebrow-divider{color:#55554e;}.portfolio-v2 .hero h1,.portfolio-v2 .intro-grid h2,.portfolio-v2 .section-heading h2,.portfolio-v2 .expertise-heading h2,.portfolio-v2 .activity-heading h2,.portfolio-v2 .contact-grid h2{margin:0;font:500 clamp(3.35rem,7.3vw,6.7rem)/0.99 "Space Grotesk",sans-serif;letter-spacing:-0.075em;}.portfolio-v2 .accent-word,.portfolio-v2 .intro-grid h2 em,.portfolio-v2 .section-heading h2 em,.portfolio-v2 .expertise-heading h2 em,.portfolio-v2 .activity-heading h2 em,.portfolio-v2 .contact-grid h2 em{color:var(--acid);font-style:normal;}.portfolio-v2 .outline-word{color:transparent;-webkit-text-stroke:1px rgba(243,241,233,0.58);}.portfolio-v2 .hero-intro{max-width:470px;margin:26px 0 0;color:#a7a69d;font-size:1.02rem;line-height:1.85;}.portfolio-v2 .hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:25px;margin-top:31px;}.portfolio-v2 .button{display:inline-flex;min-height:51px;align-items:center;justify-content:center;gap:22px;padding:0 19px;font-size:0.85rem;font-weight:700;text-decoration:none;transition:transform 180ms ease,background 180ms ease;}.portfolio-v2 .button:hover{transform:translateY(-3px);}.portfolio-v2 .button-primary{background:var(--acid);color:#171811;}.portfolio-v2 .button-primary:hover{background:#e2ff87;}.portfolio-v2 .text-link{color:var(--ink);font-size:0.81rem;text-decoration:none;}.portfolio-v2 .text-link span{margin-left:7px;color:var(--acid);}.portfolio-v2 .hero-meta{display:flex;align-items:center;gap:12px;margin-top:68px;color:#77776e;font-size:0.57rem;}.portfolio-v2 .meta-line{width:37px;height:1px;background:#55554d;}.portfolio-v2 .hero-art{position:relative;min-height:500px;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 51% 47%,rgba(116,95,205,0.17),transparent 42%),radial-gradient(ellipse at 50% 50%,rgba(211,243,107,0.06),transparent 70%);}.portfolio-v2 .art-grid{position:absolute;z-index:-1;inset:12% 3%;opacity:0.24;background-image:linear-gradient(rgba(243,241,233,0.12) 1px,transparent 1px),linear-gradient(90deg,rgba(243,241,233,0.12) 1px,transparent 1px);background-size:39px 39px;mask-image:radial-gradient(ellipse,#000 15%,transparent 76%);}.portfolio-v2 .art-orbit{position:absolute;top:50%;left:50%;border:1px solid rgba(243,241,233,0.14);border-radius:50%;transform:translate(-50%,-50%);}.portfolio-v2 .orbit-one{width:350px;height:350px;}.portfolio-v2 .orbit-two{width:485px;height:485px;border-color:rgba(243,241,233,0.08);}.portfolio-v2 .art-core{position:absolute;top:50%;left:50%;display:flex;width:177px;height:177px;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(211,243,107,0.47);border-radius:50%;background:radial-gradient(circle at 43% 34%,#28283b,#15151a 70%);box-shadow:0 0 65px rgba(133,112,224,0.17),inset 0 0 25px rgba(211,243,107,0.05);transform:translate(-50%,-50%);}.portfolio-v2 .core-halo{position:absolute;inset:-10px;border:1px solid rgba(211,243,107,0.15);border-radius:50%;}.portfolio-v2 .core-monogram{color:var(--ink);font:500 4rem/1 "Space Grotesk",sans-serif;letter-spacing:-0.1em;}.portfolio-v2 .core-caption{margin-top:9px;color:var(--acid);font-size:0.48rem;}.portfolio-v2 .art-node{position:absolute;display:flex;min-width:150px;flex-direction:column;gap:3px;padding:11px 14px;border:1px solid rgba(243,241,233,0.15);background:rgba(21,21,23,0.88);box-shadow:0 8px 26px rgba(0,0,0,0.22);}.portfolio-v2 .art-node > span{color:var(--violet);font-size:0.52rem;}.portfolio-v2 .art-node strong{color:#e7e5dd;font-size:0.55rem;}.portfolio-v2 .art-node i{color:#8e8d85;font-size:0.59rem;font-style:normal;}.portfolio-v2 .node-a{top:19%;left:1%;}.portfolio-v2 .node-b{top:43%;right:0;}.portfolio-v2 .node-c{bottom:14%;left:10%;}.portfolio-v2 .art-label{position:absolute;left:50%;display:flex;width:max-content;align-items:center;gap:9px;color:#797970;font-size:0.52rem;transform:translateX(-50%);}.portfolio-v2 .art-label-top{top:5%;}.portfolio-v2 .art-label-top strong{color:var(--acid);font-weight:500;}.portfolio-v2 .art-label-bottom{bottom:3%;}.portfolio-v2 .art-label-dot{width:6px;height:6px;border-radius:50%;background:var(--acid);}.portfolio-v2 .scroll-cue{position:absolute;bottom:25px;left:0;display:flex;align-items:center;gap:11px;color:#73736b;font-size:0.52rem;text-decoration:none;}.portfolio-v2 .scroll-cue-line{width:28px;height:1px;background:var(--acid);}.portfolio-v2 .intro-section{padding-top:99px;padding-bottom:119px;border-top:1px solid var(--line);}.portfolio-v2 .section-kicker{display:flex;align-items:center;gap:13px;color:#8b8b82;font-size:0.59rem;}.portfolio-v2 .section-kicker > span{color:var(--acid);}.portfolio-v2 .intro-grid{display:grid;grid-template-columns:1fr 0.74fr;align-items:end;gap:10%;margin-top:38px;}.portfolio-v2 .intro-grid h2,.portfolio-v2 .section-heading h2,.portfolio-v2 .expertise-heading h2,.portfolio-v2 .activity-heading h2{font-size:clamp(2.7rem,5.2vw,4.65rem);line-height:1.04;}.portfolio-v2 .intro-grid h2 em{color:var(--violet);}.portfolio-v2 .intro-copy{padding-bottom:4px;}.portfolio-v2 .intro-copy p{margin:0 0 17px;color:#a2a198;font-size:0.91rem;line-height:1.85;}.portfolio-v2 .intro-copy .text-link{display:inline-block;margin-top:5px;}.portfolio-v2 .service-strip{display:grid;grid-template-columns:repeat(3,1fr);margin-top:72px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}.portfolio-v2 .service-item{min-height:165px;padding:24px 24px 24px 0;}.portfolio-v2 .service-item + .service-item{padding-left:27px;border-left:1px solid var(--line);}.portfolio-v2 .service-number{color:#77776f;font-size:0.55rem;}.portfolio-v2 .service-item h3{margin:16px 0 6px;font:500 1.19rem/1.2 "Space Grotesk",sans-serif;}.portfolio-v2 .service-item p{max-width:290px;margin:0;color:#98978e;font-size:0.78rem;line-height:1.7;}.portfolio-v2 .work-section{padding:106px 0 111px;background:#181816;}.portfolio-v2 .section-heading,.portfolio-v2 .activity-heading{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:44px;}.portfolio-v2 .section-heading h2,.portfolio-v2 .activity-heading h2{margin-top:18px;}.portfolio-v2 .section-heading > p,.portfolio-v2 .activity-heading > p{max-width:330px;margin:0 0 5px;color:#9c9b92;font-size:0.84rem;line-height:1.8;}.portfolio-v2 .project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 25px;}.portfolio-v2 .project-card{position:relative;display:flex;min-width:0;flex-direction:column;border:1px solid rgba(243,241,233,0.11);background:#1d1d1a;transition:border-color 220ms ease,transform 220ms ease;}.portfolio-v2 .project-card:hover{border-color:rgba(211,243,107,0.45);transform:translateY(-5px);}.portfolio-v2 .project-art{position:relative;display:grid;min-height:290px;overflow:hidden;place-items:center;background:radial-gradient(ellipse at 25% 35%,rgba(106,92,176,0.3),transparent 49%),#242127;}.portfolio-v2 .project-art-link{position:absolute;inset:0;}.portfolio-v2 .project-art img{width:100%;height:100%;object-fit:cover;transition:transform 350ms ease;}.portfolio-v2 .project-card:hover .project-art img{transform:scale(1.035);}.portfolio-v2 .project-art-placeholder{display:grid;width:130px;height:130px;place-items:center;border:1px solid rgba(211,243,107,0.35);border-radius:50%;background:rgba(17,17,15,0.6);color:var(--ink);font:500 2.4rem "Space Grotesk",sans-serif;}.portfolio-v2 .project-art-placeholder span span{color:var(--acid);}.portfolio-v2 .project-index{position:absolute;bottom:17px;left:18px;color:#aaa99f;font:0.49rem "DM Mono",monospace;letter-spacing:0.09em;pointer-events:none;}.portfolio-v2 .project-copy{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:24px;}.portfolio-v2 .project-type{color:var(--acid);font-size:0.51rem;text-transform:uppercase;}.portfolio-v2 .project-copy h3{margin:12px 0 8px;font:500 1.45rem/1.2 "Space Grotesk",sans-serif;letter-spacing:-0.03em;}.portfolio-v2 .project-copy > p{margin:0 0 17px;color:#a2a198;font-size:0.8rem;line-height:1.75;}.portfolio-v2 .project-tags{display:flex;flex-wrap:wrap;gap:7px;margin:auto 0 18px;padding:0;list-style:none;}.portfolio-v2 .project-tags li{padding:5px 8px;border:1px solid var(--line);color:#aaa99f;font:0.47rem "DM Mono",monospace;}.portfolio-v2 .project-link{display:inline-flex;gap:9px;margin-top:5px;color:var(--acid);font-size:0.73rem;font-weight:600;text-decoration:none;}.portfolio-v2 .project-link span{transition:transform 180ms ease;}.portfolio-v2 .project-link:hover span{transform:translate(3px,-3px);}.portfolio-v2 .project-blog-link{color:#b6a6ff;}.portfolio-v2 .empty-state{color:#929188;font-size:0.84rem;}.portfolio-v2 .expertise-section{padding-top:107px;padding-bottom:116px;border-top:1px solid var(--line);}.portfolio-v2 .expertise-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-top:36px;}.portfolio-v2 .expertise-heading > p{max-width:355px;margin:0 0 5px;color:#9c9b92;font-size:0.84rem;line-height:1.8;}.portfolio-v2 .skills-layout{display:grid;grid-template-columns:1.2fr 0.8fr;gap:65px;margin-top:61px;}.portfolio-v2 .skill-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:15px;border-bottom:1px solid var(--line);}.portfolio-v2 .skill-group-head h3{margin:0;font:500 1.16rem "Space Grotesk",sans-serif;}.portfolio-v2 .skill-group-head span{color:#77776f;font-size:0.48rem;}.portfolio-v2 .skill-list,.portfolio-v2 .learning-list{display:flex;flex-wrap:wrap;gap:9px;margin:22px 0 0;padding:0;list-style:none;}.portfolio-v2 .skill-list li,.portfolio-v2 .learning-list li{padding:8px 11px;border:1px solid var(--line);color:#c1c0b8;font-size:0.72rem;}.portfolio-v2 .learning-list li{border-color:rgba(155,132,247,0.25);color:#bdb1f5;}.portfolio-v2 .learning-note{margin-top:21px;color:#89887f;font-size:0.68rem;}.portfolio-v2 .learning-note span{margin-right:7px;color:var(--violet);}.portfolio-v2 .activity-section{padding:105px 0 110px;background:#181816;}.portfolio-v2 .activity-heading > p a{color:var(--acid);text-decoration:none;}.portfolio-v2 .activity-card{min-height:150px;padding:21px;border:1px solid var(--line);background:#1d1d1a;}.portfolio-v2 #github-merged-activity .calendar-summary-items{display:flex;flex-direction:column;gap:5px;margin-bottom:24px;color:#aaa99f;}.portfolio-v2 #github-merged-activity .calendar-summary-item{margin:0;}.portfolio-v2 .activity-card-top{display:flex;justify-content:space-between;gap:15px;padding-bottom:16px;border-bottom:1px solid var(--line);color:#89887f;font-size:0.49rem;}.portfolio-v2 .activity-card-top > span:first-child{display:flex;align-items:center;gap:9px;color:#c1c0b8;}.portfolio-v2 .activity-card-top > span:first-child i{width:6px;height:6px;}.portfolio-v2 .activity-card .empty-state{margin:24px 0 5px;}.portfolio-v2 .contact-section{padding-top:110px;padding-bottom:111px;}.portfolio-v2 .contact-panel{position:relative;overflow:hidden;padding:55px 58px 25px;border:1px solid var(--line);background:#191917;isolation:isolate;}.portfolio-v2 .contact-orb{position:absolute;z-index:-1;top:-220px;right:-100px;width:500px;height:500px;border:1px solid rgba(155,132,247,0.19);border-radius:50%;box-shadow:0 0 0 38px rgba(155,132,247,0.025),0 0 0 88px rgba(155,132,247,0.02);}.portfolio-v2 .contact-grid{display:grid;grid-template-columns:1fr 0.8fr;gap:11%;margin-top:39px;}.portfolio-v2 .contact-grid h2{font-size:clamp(3.2rem,6vw,5.3rem);}.portfolio-v2 .contact-grid > div:first-child > p{max-width:440px;margin:19px 0 0;color:#9c9b92;font-size:0.84rem;line-height:1.8;}.portfolio-v2 .contact-actions{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;}.portfolio-v2 .contact-email{color:var(--ink);font:500 clamp(0.9rem,2vw,1.28rem) "Space Grotesk",sans-serif;text-decoration:none;}.portfolio-v2 .contact-email span{color:var(--acid);}.portfolio-v2 .contact-location{display:flex;align-items:center;gap:8px;margin-top:14px;color:#89887f;font-size:0.48rem;}.portfolio-v2 .contact-location i{width:5px;height:5px;}.portfolio-v2 .social-links{display:flex;flex-wrap:wrap;gap:17px;margin-top:26px;color:#9c9b91;font-size:0.53rem;}.portfolio-v2 .social-links a{text-decoration:none;}.portfolio-v2 .social-links a:hover,.portfolio-v2 .social-links span{color:var(--acid);}.portfolio-v2 .contact-bottom{position:relative;display:flex;justify-content:space-between;gap:12px;margin-top:72px;padding-top:17px;border-top:1px solid rgba(243,241,233,0.15);color:#828278;font-size:0.52rem;}.portfolio-v2 .site-footer{border-top:1px solid var(--line);}.portfolio-v2 .footer-inner{display:flex;min-height:88px;align-items:center;justify-content:space-between;gap:18px;}.portfolio-v2 .footer-inner .wordmark-mark{width:30px;height:30px;font-size:0.7rem;}.portfolio-v2 .site-footer .footer-inner > p{margin:0;color:#85847b;font-size:0.71rem;}.portfolio-v2 .site-footer .footer-inner > span{color:#77766e;font-size:0.51rem;}.portfolio-v2 .page-main{padding-top:74px;padding-bottom:90px;}.portfolio-v2 .region-header,.portfolio-v2 .region-footer,.portfolio-v2 .front-content-region{padding-block:20px;}.portfolio-v2 .journal-view{position:relative;left:50%;width:100vw;margin:-74px 0 -90px;transform:translateX(-50%);}.portfolio-v2 .journal-hero{display:grid;width:min(1120px,calc(100% - 64px));grid-template-columns:1.1fr 0.65fr;align-items:end;gap:8%;padding-top:clamp(76px,10vw,138px);padding-bottom:clamp(66px,8vw,104px);}.portfolio-v2 .journal-hero h1,.portfolio-v2 .article-header h1{margin:30px 0 0;font:500 clamp(3.35rem,7.3vw,6.4rem)/0.99 "Space Grotesk",sans-serif;letter-spacing:-0.075em;}.portfolio-v2 .journal-hero h1 em{color:var(--acid);font-style:normal;}.portfolio-v2 .journal-hero-aside{padding-bottom:8px;}.portfolio-v2 .journal-hero-aside > p{max-width:350px;margin:0;color:#a7a69d;font-size:0.95rem;line-height:1.85;}.portfolio-v2 .journal-stat{display:flex;justify-content:space-between;gap:12px;margin-top:32px;padding-top:14px;border-top:1px solid var(--line);color:#77776f;font:0.5rem/1.5 "DM Mono",monospace;letter-spacing:0.08em;}.portfolio-v2 .journal-stat span:first-child{color:var(--acid);}.portfolio-v2 .journal-entries{width:min(1120px,calc(100% - 64px));padding-top:25px;padding-bottom:115px;border-top:1px solid var(--line);}.portfolio-v2 .journal-section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;}.portfolio-v2 .visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%);}.portfolio-v2 .journal-entry-count,.portfolio-v2 .cover-index,.portfolio-v2 .cover-coordinate,.portfolio-v2 .journal-card-meta,.portfolio-v2 .journal-card-bottom > span,.portfolio-v2 .resource-label,.portfolio-v2 .article-aside-note > span,.portfolio-v2 .author-note{font-family:"DM Mono",monospace;letter-spacing:0.08em;}.portfolio-v2 .journal-entry-count{color:#77776f;font-size:0.55rem;}.portfolio-v2 .journal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;margin-top:26px;}.portfolio-v2 .journal-grid > .views-row{min-width:0;}.portfolio-v2 .journal-card{min-width:0;overflow:hidden;border:1px solid rgba(243,241,233,0.12);background:#191917;transition:border-color 220ms ease,transform 220ms ease;}.portfolio-v2 .journal-card:hover{border-color:rgba(211,243,107,0.42);transform:translateY(-4px);}.portfolio-v2 .journal-grid > .views-row:first-child{grid-column:1 / -1;}.portfolio-v2 .journal-grid > .views-row:first-child .journal-card{display:grid;grid-template-columns:1fr 0.92fr;min-height:370px;}.portfolio-v2 .journal-card-cover{position:relative;display:block;aspect-ratio:1.75;overflow:hidden;background:radial-gradient(ellipse at 52% 47%,rgba(116,95,205,0.28),transparent 43%),radial-gradient(ellipse at 50% 50%,rgba(211,243,107,0.08),transparent 70%),#1b1b1c;color:var(--ink);isolation:isolate;text-decoration:none;}.portfolio-v2 .journal-grid > .views-row:first-child .journal-card-cover{min-height:370px;aspect-ratio:auto;}.portfolio-v2 .journal-card-cover::before,.portfolio-v2 .article-cover::before,.portfolio-v2 .journal-cover-art::before{position:absolute;z-index:-1;inset:0;background-image:linear-gradient(rgba(243,241,233,0.07) 1px,transparent 1px),linear-gradient(90deg,rgba(243,241,233,0.07) 1px,transparent 1px);background-size:38px 38px;content:"";mask-image:radial-gradient(ellipse,#000 12%,transparent 76%);}.portfolio-v2 .journal-card-cover img{position:absolute;z-index:-1;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 500ms ease;}.portfolio-v2 .journal-card-cover:hover img{transform:scale(1.035);}.portfolio-v2 .journal-card-cover .cover-index,.portfolio-v2 .journal-card-cover .cover-coordinate{position:absolute;z-index:2;color:#aaa99f;font-size:0.52rem;}.portfolio-v2 .journal-card-cover .cover-index{top:24px;left:25px;}.portfolio-v2 .journal-card-cover .cover-coordinate{right:25px;bottom:23px;color:#cfcec3;}.portfolio-v2 .journal-cover-art{position:absolute;z-index:-1;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at 70% 45%,rgba(255,134,92,0.2),transparent 42%),#21201e;}.portfolio-v2 .journal-cover-art .cover-orbit,.portfolio-v2 .article-cover .cover-orbit{position:absolute;top:50%;left:61%;width:205px;aspect-ratio:1;border:1px solid rgba(243,241,233,0.2);border-radius:50%;transform:translate(-50%,-50%);}.portfolio-v2 .journal-cover-art .cover-orbit-two,.portfolio-v2 .article-cover .cover-orbit-two{width:285px;border-color:rgba(243,241,233,0.1);}.portfolio-v2 .cover-core{position:absolute;top:50%;left:61%;display:grid;width:94px;aspect-ratio:1;place-items:center;border:1px solid rgba(211,243,107,0.5);border-radius:50%;background:radial-gradient(circle at 43% 34%,#28283b,#15151a 70%);box-shadow:0 0 45px rgba(133,112,224,0.2);color:var(--ink);font:500 2rem/1 "Space Grotesk",sans-serif;letter-spacing:-0.1em;transform:translate(-50%,-50%);}.portfolio-v2 .cover-core span{color:var(--acid);}.portfolio-v2 .journal-card-copy{padding:25px 26px 28px;}.portfolio-v2 .journal-grid > .views-row:first-child .journal-card-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(28px,4vw,51px);}.portfolio-v2 .journal-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:#87867e;font-size:0.53rem;line-height:1.6;text-transform:uppercase;}.portfolio-v2 .journal-category{color:var(--acid);}.portfolio-v2 .journal-card-copy h2{margin:16px 0 13px;font:500 clamp(1.35rem,2.2vw,1.7rem)/1.13 "Space Grotesk",sans-serif;letter-spacing:-0.045em;}.portfolio-v2 .journal-grid > .views-row:first-child .journal-card-copy h2{margin-top:19px;font-size:clamp(1.55rem,2.8vw,2.3rem);}.portfolio-v2 .journal-card-copy h2 a{text-decoration:none;transition:color 180ms ease;}.portfolio-v2 .journal-card-copy h2 a:hover{color:var(--acid);}.portfolio-v2 .journal-card-copy > p{margin:0;color:#a2a198;font-size:0.82rem;line-height:1.8;}.portfolio-v2 .journal-read-link{display:inline-flex;align-items:center;gap:10px;margin-top:24px;color:var(--acid);font-size:0.75rem;font-weight:600;text-decoration:none;}.portfolio-v2 .journal-grid > .views-row:first-child .journal-read-link{margin-top:auto;padding-top:30px;}.portfolio-v2 .journal-read-link span{transition:transform 180ms ease;}.portfolio-v2 .journal-read-link:hover span{transform:translate(3px,-3px);}.portfolio-v2 .journal-empty{padding:60px 20px;border:1px solid var(--line);color:#929188;text-align:center;}.portfolio-v2 .journal-pager{margin-top:48px;}.portfolio-v2 .journal-pager ul{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;list-style:none;}.portfolio-v2 .journal-pager a,.portfolio-v2 .journal-pager .is-active{display:block;padding:10px 14px;border:1px solid var(--line);color:#c1c0b8;font-size:0.73rem;text-decoration:none;}.portfolio-v2 .journal-pager .is-active{border-color:var(--acid);color:var(--acid);}.portfolio-v2 .journal-article{padding-top:45px;padding-bottom:105px;}.portfolio-v2 .journal-back-link{display:inline-flex;align-items:center;gap:10px;color:#a2a198;font:0.58rem/1.5 "DM Mono",monospace;letter-spacing:0.07em;text-decoration:none;text-transform:uppercase;transition:color 180ms ease;}.portfolio-v2 .journal-back-link:hover{color:var(--acid);}.portfolio-v2 .article-header{max-width:900px;margin:75px auto 43px;}.portfolio-v2 .article-header h1{max-width:850px;margin-top:17px;font-size:clamp(3rem,7vw,5.85rem);line-height:1.02;}.portfolio-v2 .article-meta{display:flex;gap:11px;margin-top:32px;color:#8c8b82;font:0.57rem/1.5 "DM Mono",monospace;letter-spacing:0.06em;text-transform:uppercase;}.portfolio-v2 .article-deck{max-width:680px;margin:22px 0 0;color:#a7a69d;font-size:1.02rem;line-height:1.85;}.portfolio-v2 .article-author{display:flex;align-items:center;gap:13px;margin-top:35px;padding-top:21px;border-top:1px solid var(--line);}.portfolio-v2 .author-monogram{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border:1px solid rgba(211,243,107,0.4);border-radius:50%;color:var(--ink);font:500 0.85rem/1 "Space Grotesk",sans-serif;letter-spacing:-0.07em;}.portfolio-v2 .author-monogram span{color:var(--acid);}.portfolio-v2 .article-author strong,.portfolio-v2 .article-author small{display:block;}.portfolio-v2 .article-author strong{font-size:0.76rem;font-weight:600;}.portfolio-v2 .article-author small{margin-top:3px;color:#85847b;font-size:0.66rem;}.portfolio-v2 .author-note{margin-left:auto;color:#77776f;font-size:0.48rem;}.portfolio-v2 .article-cover{position:relative;display:grid;width:100%;min-height:clamp(260px,37vw,440px);overflow:hidden;place-items:center;background:radial-gradient(ellipse at 52% 47%,rgba(116,95,205,0.28),transparent 43%),radial-gradient(ellipse at 50% 50%,rgba(211,243,107,0.08),transparent 70%),#1b1b1c;isolation:isolate;}.portfolio-v2 .article-cover .cover-orbit{left:50%;width:min(29vw,330px);}.portfolio-v2 .article-cover .cover-orbit-two{width:min(42vw,485px);}.portfolio-v2 .article-cover .cover-core{left:50%;width:120px;font-size:2.6rem;}.portfolio-v2 .article-cover .cover-index{top:25px;left:26px;}.portfolio-v2 .article-cover .cover-coordinate{right:26px;bottom:24px;}.portfolio-v2 .article-cover--image img{position:absolute;z-index:-1;inset:0;width:100%;height:100%;object-fit:cover;}.portfolio-v2 .article-reading-layout{display:grid;grid-template-columns:195px minmax(0,680px);justify-content:center;gap:clamp(35px,7vw,100px);padding-top:65px;}.portfolio-v2 .article-aside{position:sticky;top:115px;align-self:start;}.portfolio-v2 .journal-resource{padding:17px;border:1px solid var(--line);background:#191917;}.portfolio-v2 .resource-label{display:block;margin-bottom:11px;color:#85847b;font-size:0.47rem;}.portfolio-v2 .journal-resource a{display:flex;justify-content:space-between;gap:12px;color:var(--acid);font-size:0.72rem;line-height:1.55;text-decoration:none;}.portfolio-v2 .journal-resource a span{flex:0 0 auto;}.portfolio-v2 .article-aside-note{margin-top:26px;padding-top:15px;border-top:1px solid var(--line);}.portfolio-v2 .article-aside-note > span{color:var(--acid);font-size:0.5rem;}.portfolio-v2 .article-aside-note p{margin:10px 0 0;color:#929188;font:500 0.95rem/1.55 "Space Grotesk",sans-serif;}.portfolio-v2 .journal-prose{max-width:680px;color:#c1c0b8;font-size:0.94rem;line-height:1.95;}.portfolio-v2 .journal-prose > :first-child{margin-top:0;}.portfolio-v2 .journal-prose p{margin:0 0 1.45em;}.portfolio-v2 .journal-prose p:first-child{color:#e4e2d9;font:500 1.28rem/1.7 "Space Grotesk",sans-serif;letter-spacing:-0.015em;}.portfolio-v2 .journal-prose .field--name-body > .field__item > p:first-child{color:#e4e2d9;font:500 1.28rem/1.7 "Space Grotesk",sans-serif;letter-spacing:-0.015em;}.portfolio-v2 .journal-prose h2,.portfolio-v2 .journal-prose h3{color:var(--ink);font-family:"Space Grotesk",sans-serif;font-weight:500;letter-spacing:-0.035em;line-height:1.2;}.portfolio-v2 .journal-prose h2{margin:2.4em 0 0.8em;font-size:1.8rem;}.portfolio-v2 .journal-prose h3{margin:2em 0 0.7em;font-size:1.25rem;}.portfolio-v2 .journal-prose strong{color:var(--ink);font-weight:600;}.portfolio-v2 .journal-prose a{color:var(--acid);}.portfolio-v2 .journal-prose ul,.portfolio-v2 .journal-prose ol{margin:0 0 1.6em;padding-left:1.45em;}.portfolio-v2 .journal-prose li{margin:0.45em 0;padding-left:0.25em;}.portfolio-v2 .journal-prose li::marker{color:var(--acid);}.portfolio-v2 .journal-prose code{padding:0.12em 0.35em;border:1px solid rgba(243,241,233,0.1);background:#1d1d1a;color:#e8c599;font:0.84em/1.5 "DM Mono",monospace;}.portfolio-v2 .journal-prose pre{overflow-x:auto;margin:1.6em 0 2em;padding:20px 22px;border:1px solid var(--line);background:#191917;color:#e8c599;font:0.78rem/1.8 "DM Mono",monospace;}.portfolio-v2 .journal-prose pre code{padding:0;border:0;background:transparent;color:inherit;}.portfolio-v2 .journal-prose blockquote{margin:1.8em 0;padding:17px 20px;border-left:2px solid var(--acid);background:#1a1b16;color:#c7c6bd;}.portfolio-v2 .journal-prose blockquote.warning{border-color:var(--orange);background:rgba(255,134,92,0.07);}.portfolio-v2 .journal-prose blockquote.success{border-color:#83c6a9;background:rgba(131,198,169,0.07);}.portfolio-v2 .article-footer{display:flex;max-width:875px;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:25px;margin:70px auto 0;padding-top:25px;border-top:1px solid var(--line);}.portfolio-v2 .article-tags{display:flex;flex-wrap:wrap;gap:8px;}.portfolio-v2 .article-tags .field__items{display:flex;flex-wrap:wrap;gap:8px;}.portfolio-v2 .article-tags .field__item a,.portfolio-v2 .article-tags > span{display:inline-block;padding:7px 10px;border:1px solid var(--line);color:#a7a69d;font:0.5rem/1 "DM Mono",monospace;letter-spacing:0.06em;text-decoration:none;text-transform:uppercase;}.portfolio-v2 .journal-article .field--name-field-tags{display:contents;}.portfolio-v2 .journal-pager .pager__item--active a{border-color:var(--acid);color:var(--acid);}@keyframes portfolio-v2-orbit{from{transform:translate(-50%,-50%) rotate(0deg);}to{transform:translate(-50%,-50%) rotate(360deg);}}@keyframes portfolio-v2-core-float{0%,100%{transform:translate(-50%,-50%);}50%{transform:translate(-50%,calc(-50% - 6px));}}@keyframes portfolio-v2-node-float{0%,100%{translate:0 0;}50%{translate:0 -5px;}}@keyframes portfolio-v2-fade-in{from{opacity:0;}to{opacity:1;}}.portfolio-v2 .hero-art .art-orbit{animation:portfolio-v2-orbit 42s linear infinite;}.portfolio-v2 .hero-art .orbit-one::after,.portfolio-v2 .hero-art .orbit-two::after{position:absolute;top:50%;right:-3px;width:6px;height:6px;border-radius:50%;background:var(--acid);box-shadow:0 0 13px rgba(211,243,107,0.8);content:"";transform:translateY(-50%);}.portfolio-v2 .hero-art .orbit-two::after{right:auto;left:-3px;width:4px;height:4px;background:var(--violet);box-shadow:0 0 12px rgba(155,132,247,0.8);}.portfolio-v2 .hero-art .art-core{animation:portfolio-v2-core-float 6s ease-in-out infinite,portfolio-v2-fade-in 900ms ease-out both;}.portfolio-v2 .hero-art .art-node{animation:portfolio-v2-node-float 7s ease-in-out infinite,portfolio-v2-fade-in 900ms ease-out both;}.portfolio-v2 .hero-art .node-b{animation-delay:-2.4s,180ms;}.portfolio-v2 .hero-art .node-c{animation-delay:-4.7s,320ms;}.portfolio-v2 .hero-art .art-label{animation:portfolio-v2-fade-in 900ms ease-out both;}.portfolio-v2 .hero-art .art-label-bottom{animation-delay:220ms;}@media (min-width:1500px){.portfolio-v2 .hero{min-height:740px;}}@media (max-width:900px){.portfolio-v2 .hero{min-height:610px;grid-template-columns:1fr 0.85fr;}.portfolio-v2 .hero-art{min-height:430px;transform:scale(0.93);transform-origin:center right;}.portfolio-v2 .hero h1{font-size:clamp(3.4rem,8.7vw,5.7rem);}.portfolio-v2 .art-node{min-width:132px;padding:9px 11px;}.portfolio-v2 .node-a,.portfolio-v2 .node-c{left:0;}.portfolio-v2 .skills-layout{grid-template-columns:1fr;gap:38px;}.portfolio-v2 .learning-list{column-gap:20px;}.portfolio-v2 .journal-hero{grid-template-columns:1fr 0.75fr;gap:6%;}.portfolio-v2 .journal-grid > .views-row:first-child .journal-card{grid-template-columns:1fr 1fr;}.portfolio-v2 .journal-cover-art .cover-orbit{left:65%;width:165px;}.portfolio-v2 .journal-cover-art .cover-orbit-two{width:235px;}.portfolio-v2 .journal-cover-art .cover-core{left:65%;width:80px;}}@media (max-width:680px){.portfolio-v2 .section-wrap{width:calc(100% - 40px);}.portfolio-v2 .nav-inner{width:calc(100% - 40px);height:68px;}.portfolio-v2 .wordmark{font-size:0.64rem;}.portfolio-v2 .wordmark-mark{width:34px;height:34px;}.portfolio-v2 .menu-toggle{display:flex;width:43px;height:43px;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;}.portfolio-v2 .menu-toggle span{width:17px;height:1px;background:var(--ink);transition:transform 180ms ease;}.portfolio-v2 .menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg);}.portfolio-v2 .menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg);}.portfolio-v2 .nav-links{position:absolute;top:68px;right:0;left:0;display:none;align-items:stretch;gap:0;padding:9px 20px 20px;border-bottom:1px solid var(--line);background:#151513;}.portfolio-v2 .nav-links.is-open{display:flex;flex-direction:column;}.portfolio-v2 .nav-links > a{padding:13px 0;border-bottom:1px solid rgba(243,241,233,0.08);font-size:0.9rem;}.portfolio-v2 .nav-links > .nav-cta{margin-top:11px;padding:12px 14px;border:1px solid rgba(211,243,107,0.5);}.portfolio-v2 .hero{min-height:initial;grid-template-columns:1fr;padding-top:77px;padding-bottom:73px;}.portfolio-v2 .eyebrow{gap:8px;margin-bottom:25px;font-size:0.53rem;}.portfolio-v2 .hero h1{font-size:clamp(3.3rem,13vw,5.45rem);}.portfolio-v2 .hero-intro{max-width:410px;margin-top:20px;font-size:0.93rem;}.portfolio-v2 .hero-actions{gap:17px;margin-top:24px;}.portfolio-v2 .button{min-height:48px;gap:13px;padding-inline:14px;font-size:0.78rem;}.portfolio-v2 .hero-actions .text-link{font-size:0.72rem;}.portfolio-v2 .hero-meta{margin-top:31px;font-size:0.48rem;}.portfolio-v2 .hero-art{min-height:335px;margin:27px -19px 0;transform:none;}.portfolio-v2 .orbit-one{width:260px;height:260px;}.portfolio-v2 .orbit-two{width:350px;height:350px;}.portfolio-v2 .art-core{width:136px;height:136px;}.portfolio-v2 .core-monogram{font-size:3rem;}.portfolio-v2 .art-node{min-width:118px;padding:8px 9px;}.portfolio-v2 .art-node strong{font-size:0.47rem;}.portfolio-v2 .art-node i{font-size:0.5rem;}.portfolio-v2 .node-a{top:16%;left:2%;}.portfolio-v2 .node-b{top:42%;right:1%;}.portfolio-v2 .node-c{bottom:10%;left:5%;}.portfolio-v2 .art-label{font-size:0.43rem;}.portfolio-v2 .scroll-cue{bottom:20px;}.portfolio-v2 .intro-section,.portfolio-v2 .expertise-section{padding-top:70px;padding-bottom:76px;}.portfolio-v2 .intro-grid{grid-template-columns:1fr;gap:26px;margin-top:28px;}.portfolio-v2 .intro-grid h2,.portfolio-v2 .section-heading h2,.portfolio-v2 .expertise-heading h2,.portfolio-v2 .activity-heading h2{font-size:clamp(2.6rem,10vw,4rem);}.portfolio-v2 .service-strip{grid-template-columns:1fr;margin-top:45px;}.portfolio-v2 .service-item{min-height:0;padding:20px 0;}.portfolio-v2 .service-item + .service-item{padding-left:0;border-top:1px solid var(--line);border-left:0;}.portfolio-v2 .work-section,.portfolio-v2 .activity-section{padding:72px 0;}.portfolio-v2 .section-heading,.portfolio-v2 .activity-heading{align-items:flex-start;flex-direction:column;gap:18px;margin-bottom:29px;}.portfolio-v2 .project-grid{grid-template-columns:1fr;gap:18px;}.portfolio-v2 .project-art{min-height:240px;}.portfolio-v2 .project-copy{padding:21px;}.portfolio-v2 .expertise-heading{align-items:flex-start;flex-direction:column;gap:19px;margin-top:27px;}.portfolio-v2 .skills-layout{gap:35px;margin-top:39px;}.portfolio-v2 .skill-group-head{align-items:flex-start;flex-direction:column;gap:7px;}.portfolio-v2 .skill-list li,.portfolio-v2 .learning-list li{font-size:0.66rem;}.portfolio-v2 .activity-card{padding:15px;}.portfolio-v2 .activity-card-top{flex-direction:column;gap:10px;}.portfolio-v2 .contact-section{padding-top:72px;padding-bottom:75px;}.portfolio-v2 .contact-panel{padding:31px 23px 20px;}.portfolio-v2 .contact-grid{grid-template-columns:1fr;gap:32px;margin-top:27px;}.portfolio-v2 .contact-grid h2{font-size:clamp(3.2rem,13vw,5.2rem);}.portfolio-v2 .contact-grid > div:first-child > p{margin-top:17px;font-size:0.83rem;}.portfolio-v2 .contact-email{font-size:1rem;}.portfolio-v2 .contact-bottom{margin-top:39px;font-size:0.44rem;}.portfolio-v2 .contact-orb{right:-210px;}.portfolio-v2 .footer-inner{min-height:115px;flex-wrap:wrap;justify-content:space-between;padding-block:18px;}.portfolio-v2 .site-footer .footer-inner > p{order:1;width:100%;font-size:0.66rem;}.portfolio-v2 .site-footer .footer-inner > span{font-size:0.44rem;}.portfolio-v2 .page-main{padding-top:45px;}.portfolio-v2 .journal-view{margin-block:-45px;margin-inline:0;}.portfolio-v2 .journal-hero,.portfolio-v2 .journal-entries{width:calc(100% - 40px);}.portfolio-v2 .journal-hero{grid-template-columns:1fr;gap:30px;padding-top:66px;padding-bottom:56px;}.portfolio-v2 .journal-hero h1{margin-top:24px;font-size:clamp(3.2rem,14vw,5.2rem);}.portfolio-v2 .journal-hero-aside > p{font-size:0.88rem;}.portfolio-v2 .journal-stat{margin-top:23px;}.portfolio-v2 .journal-entries{padding-bottom:75px;}.portfolio-v2 .journal-grid{grid-template-columns:1fr;gap:18px;margin-top:18px;}.portfolio-v2 .journal-grid > .views-row:first-child{grid-column:auto;}.portfolio-v2 .journal-grid > .views-row:first-child .journal-card{grid-template-columns:1fr;}.portfolio-v2 .journal-grid > .views-row:first-child .journal-card-cover{min-height:280px;aspect-ratio:auto;}.portfolio-v2 .journal-grid > .views-row:first-child .journal-card-copy{min-height:300px;padding:27px 23px;}.portfolio-v2 .journal-card-cover{aspect-ratio:1.7;}.portfolio-v2 .journal-cover-art .cover-orbit{left:68%;}.portfolio-v2 .journal-cover-art .cover-core{left:68%;}.portfolio-v2 .journal-card-copy{padding:22px;}.portfolio-v2 .journal-article{padding-top:31px;padding-bottom:72px;}.portfolio-v2 .article-header{margin:57px 0 30px;}.portfolio-v2 .article-header h1{font-size:clamp(2.75rem,12vw,4.5rem);}.portfolio-v2 .article-deck{font-size:0.9rem;}.portfolio-v2 .author-note{display:none;}.portfolio-v2 .article-cover{min-height:250px;}.portfolio-v2 .article-cover .cover-orbit{width:190px;}.portfolio-v2 .article-cover .cover-orbit-two{width:280px;}.portfolio-v2 .article-cover .cover-core{width:94px;}.portfolio-v2 .article-reading-layout{grid-template-columns:1fr;gap:36px;padding-top:42px;}.portfolio-v2 .article-aside{position:static;display:grid;grid-template-columns:1fr 1fr;gap:16px;}.portfolio-v2 .article-aside-note{margin-top:0;}.portfolio-v2 .journal-prose{font-size:0.9rem;}.portfolio-v2 .journal-prose h2{font-size:1.55rem;}.portfolio-v2 .journal-prose p:first-child{font-size:1.13rem;}.portfolio-v2 .article-footer{margin-top:48px;}}@media (min-width:681px){.portfolio-v2 #github-merged-activity .calendar-summary-items{flex-direction:row;align-items:center;gap:24px;}}@media (max-width:420px){.portfolio-v2 .hero h1{font-size:3.08rem;}.portfolio-v2 .hero-actions{align-items:flex-start;flex-direction:column;}.portfolio-v2 .hero-meta{gap:7px;font-size:0.42rem;}.portfolio-v2 .art-node{min-width:105px;}.portfolio-v2 .art-label{font-size:0.38rem;}.portfolio-v2 .journal-stat,.portfolio-v2 .article-aside{align-items:flex-start;flex-direction:column;}.portfolio-v2 .article-aside{display:grid;grid-template-columns:1fr;}.portfolio-v2 .article-cover .cover-index,.portfolio-v2 .article-cover .cover-coordinate{font-size:0.43rem;}}@media (prefers-reduced-motion:reduce){.portfolio-v2 *,.portfolio-v2 *::before,.portfolio-v2 *::after{scroll-behavior:auto !important;animation-duration:0.01ms !important;animation-delay:0ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;}}
