
:root{--ink:#0b0d0f;--paper:#f4f4ef;--paper-2:#ecece7;--muted:#6d7479;--line:rgba(11,13,14,.12);--dark-line:rgba(255,255,255,.12);--mint:#01f7b6;--container:1180px;--nav-h:68px;--ease:cubic-bezier(.22,.8,.24,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h)}body{margin:0;background:var(--paper);color:var(--ink);font-family:Poppins,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body.no-scroll{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}img{max-width:100%}ul{margin:0;padding:0}p,h1,h2,h3,h4,h5,h6{margin:0}
.container{width:min(var(--container),calc(100% - 56px));margin:0 auto}.eyebrow,.section-heading h6{font-family:"Fjalla One",sans-serif;font-size:10px;letter-spacing:.18em;text-transform:uppercase}.section{padding:128px 0}.section-light{background:var(--paper)}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:62px}.section-heading h6{margin-bottom:14px;color:#7e8488}.section-heading h2{font-size:clamp(48px,6.5vw,84px);line-height:.93;letter-spacing:-.055em;font-weight:800}.kicker{max-width:410px;margin:0;color:var(--muted);line-height:1.8;font-size:13px}.section-dark .section-heading .kicker{color:#98a1a4}
/* loader */
.site-loader{position:fixed;inset:0;z-index:4000;background:#090b0d;color:#fff;display:grid;place-items:center;transition:opacity .55s ease,visibility .55s ease}.site-loader.is-done{opacity:0;visibility:hidden;pointer-events:none}.loader-circuit{position:relative;width:150px;height:150px}.loader-circuit .chip{position:absolute;left:39px;top:39px;width:72px;height:72px;border:1px solid rgba(1,247,182,.58);display:grid;place-items:center;box-shadow:0 0 30px rgba(1,247,182,.08)}.loader-circuit .chip b{font-size:13px;letter-spacing:.16em}.loader-circuit .chip i{position:absolute;width:3px;height:3px;background:var(--mint);box-shadow:0 0 10px rgba(1,247,182,.65)}.loader-circuit .chip i:nth-child(2){top:-2px;left:18px}.loader-circuit .chip i:nth-child(3){right:-2px;top:18px}.loader-circuit .chip i:nth-child(4){bottom:-2px;right:18px}.loader-circuit .chip i:nth-child(5){left:-2px;bottom:18px}.trace{position:absolute;background:rgba(255,255,255,.12);overflow:hidden}.trace::after{content:"";position:absolute;background:var(--mint);box-shadow:0 0 12px rgba(1,247,182,.4);animation:loaderTrace 1.5s linear infinite}.trace-a{width:44px;height:1px;left:0;top:56px}.trace-a::after{width:18px;height:1px;left:-18px;top:0}.trace-b{width:1px;height:44px;right:56px;top:0}.trace-b::after{width:1px;height:18px;left:0;top:-18px;animation-delay:.24s}.trace-c{width:44px;height:1px;right:0;bottom:56px}.trace-c::after{width:18px;height:1px;left:-18px;top:0;animation-delay:.48s}.trace-d{width:1px;height:44px;left:56px;bottom:0}.trace-d::after{width:1px;height:18px;left:0;top:-18px;animation-delay:.72s}.node{position:absolute;width:6px;height:6px;border:1px solid var(--mint);background:#090b0d}.node-1{left:0;top:53px}.node-2{right:53px;top:0}.node-3{right:0;bottom:53px}.node-4{left:53px;bottom:0}@keyframes loaderTrace{0%{transform:translateX(0);opacity:0}15%{opacity:1}75%{opacity:1}100%{transform:translateX(44px);opacity:0}}.trace-b::after,.trace-d::after{animation-name:loaderTraceY}@keyframes loaderTraceY{0%{transform:translateY(0);opacity:0}15%{opacity:1}75%{opacity:1}100%{transform:translateY(44px);opacity:0}}.loader-text{position:absolute;bottom:42px;left:0;right:0;text-align:center}.loader-text span{display:block;font-family:"Fjalla One",sans-serif;font-size:11px;letter-spacing:.2em}.loader-text small{display:block;margin-top:9px;color:rgba(255,255,255,.42);font-size:8px;letter-spacing:.18em}
/* nav */
.site-navbar{position:fixed;inset:0 0 auto;z-index:1000;height:var(--nav-h);padding:0 28px;display:flex;align-items:center;justify-content:space-between;color:#fff;background:linear-gradient(180deg,rgba(6,8,9,.82),rgba(6,8,9,.12));transition:background .32s ease,box-shadow .32s ease,backdrop-filter .32s ease}.site-navbar.is-scrolled{background:rgba(8,10,12,.72);backdrop-filter:blur(16px) saturate(120%);box-shadow:0 1px 0 rgba(255,255,255,.07)}.site-navbar .brand{display:inline-flex;align-items:center;gap:10px;min-width:60px}.site-navbar .brand img{width:48px;height:48px;object-fit:contain}.site-navbar .brand span{display:none!important}.site-navbar .nav-right{display:flex;align-items:center;gap:18px}.site-navbar .nav-links{display:flex;align-items:center;gap:4px;list-style:none}.site-navbar .nav-links a{position:relative;display:inline-flex;align-items:center;min-height:40px;padding:0 10px;font-family:"Fjalla One",sans-serif;font-size:11px;letter-spacing:.15em;color:rgba(255,255,255,.7);transition:color .22s ease,transform .22s ease}.site-navbar .nav-links a::after{content:"";position:absolute;left:10px;right:10px;bottom:4px;height:1px;background:var(--mint);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}.site-navbar .nav-links a:hover{color:#fff;transform:translateY(-2px)}.site-navbar .nav-links a:focus-visible{outline:1px solid var(--mint);outline-offset:4px}.site-navbar .nav-links a.is-clicked{color:var(--mint);transform:translateY(-2px) scale(.98)}.site-navbar .nav-links a.is-active{color:#fff}.site-navbar .nav-links a.is-active::after{transform:scaleX(1)}.menu-button{display:inline-flex;align-items:center;gap:11px;border:0;background:transparent;color:#fff;padding:7px 0;cursor:pointer;font-family:"Fjalla One",sans-serif;font-size:10px;letter-spacing:.18em}.menu-button .hamburger{display:grid;gap:5px;width:25px}.menu-button .hamburger span{display:block;height:1px;background:#fff;transition:transform .24s var(--ease),opacity .24s ease,width .24s ease}.menu-button:hover .hamburger span:nth-child(2){width:70%}.menu-button.is-open .hamburger span:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-button.is-open .hamburger span:nth-child(2){opacity:0}.menu-button.is-open .hamburger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.scroll-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:rgba(255,255,255,.07);overflow:hidden}.scroll-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--mint),rgba(1,247,182,.4));box-shadow:0 0 12px rgba(1,247,182,.35)}
.navigation-drawer{position:fixed;top:calc(var(--nav-h) - 2px);right:22px;z-index:990;width:min(360px,calc(100% - 34px));max-height:calc(100vh - var(--nav-h) - 28px);overflow:auto;background:rgba(10,13,15,.96);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.11);box-shadow:0 26px 80px rgba(0,0,0,.35);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-10px) scale(.98);transform-origin:top right;transition:opacity .24s ease,visibility .24s ease,transform .24s var(--ease)}.navigation-drawer.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:none}.drawer-inner{padding:20px}.drawer-kicker{font-family:"Fjalla One",sans-serif;color:var(--mint);font-size:9px;letter-spacing:.18em;margin-bottom:14px}.navigation-drawer ul{list-style:none;display:grid;gap:4px}.navigation-drawer li a{display:flex;align-items:center;min-height:44px;padding:0 10px;color:rgba(255,255,255,.84);font-size:13px;letter-spacing:.06em;transition:background .2s ease,color .2s ease,transform .2s ease}.navigation-drawer li a:hover{background:rgba(255,255,255,.045);color:#fff;transform:translateX(4px)}.drawer-footer{display:flex;justify-content:space-between;gap:16px;margin-top:18px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.34);font-size:8px;letter-spacing:.12em;text-transform:uppercase}
/* hero */
.site-hero{position:relative;min-height:100svh;display:flex;align-items:center;background:#0b0d0f url('../images/bg-main.webp') center/cover no-repeat;color:#fff;overflow:hidden}.site-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,rgba(5,7,8,.80) 4%,rgba(5,7,8,.48) 55%,rgba(5,7,8,.60) 100%);z-index:0}.site-hero::after{content:"";position:absolute;inset:-10%;background-image:repeating-linear-gradient(90deg,transparent 0 11.5%,rgba(255,255,255,.028) 11.6%,transparent 11.75%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E");background-size:auto,180px 180px;mix-blend-mode:screen;opacity:.62;pointer-events:none;z-index:1}.hero-shell{position:relative;z-index:2;width:min(980px,calc(100% - 72px));margin-left:max(72px,calc((100% - var(--container))/2 + 50px));padding:130px 0 100px}.hero-topline{display:flex;align-items:center;gap:14px;margin-bottom:18px;color:rgba(255,255,255,.74);font-family:"Fjalla One",sans-serif;font-size:12px;letter-spacing:.18em;text-transform:uppercase}.hero-topline::before{content:"";width:34px;height:1px;background:var(--mint)}.hero-title{margin:0;font-size:clamp(64px,10vw,145px);line-height:.84;letter-spacing:-.055em;font-weight:800}.hero-title span{display:block;margin-left:4vw;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.9)}.hero-copy{max-width:720px;margin:36px 0 0;color:rgba(255,255,255,.76);font-size:16px;line-height:1.85}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.action{display:inline-flex;align-items:center;gap:10px;justify-content:center;min-height:48px;padding:0 22px;border:1px solid rgba(255,255,255,.24);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;transition:transform .25s var(--ease),border-color .25s ease,background .25s ease,color .25s ease;position:relative;overflow:hidden}.action b,.outline-button b{font-size:14px;font-weight:500;transition:transform .25s var(--ease)}.action.primary{border-color:var(--mint);background:var(--mint);color:#07110e}.action.primary::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.35),transparent 65%);transform:translateX(-130%);transition:transform .55s var(--ease)}.action.primary:hover::before{transform:translateX(130%)}.action:hover{transform:translateY(-2px);border-color:var(--mint)}.action:hover b,.outline-button:hover b{transform:translateX(4px)}.hero-meta{display:flex;flex-wrap:wrap;gap:22px;margin-top:58px;color:rgba(255,255,255,.5);font-family:"Fjalla One",sans-serif;font-size:10px;letter-spacing:.14em;text-transform:uppercase}.hero-meta strong{color:#fff;font-weight:500}.left-rail{position:absolute;left:0;top:50%;z-index:3;transform:translate(-16px,-50%) rotate(-90deg);display:flex;gap:18px;color:rgba(255,255,255,.66);font-family:"Fjalla One",sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.left-rail a{transition:color .2s ease}.left-rail a:hover{color:var(--mint)}.hero-note{position:absolute;right:28px;bottom:42px;z-index:3;writing-mode:vertical-rl;transform:rotate(180deg);color:rgba(255,255,255,.44);font-family:"Fjalla One",sans-serif;font-size:10px;letter-spacing:.18em;text-transform:uppercase}.scroll-down{position:absolute;left:24px;bottom:0;z-index:3;display:flex;flex-direction:column;align-items:center;gap:12px;color:#fff}.scroll-down small{writing-mode:vertical-rl;transform:rotate(180deg);font-family:"Fjalla One",sans-serif;font-size:10px;letter-spacing:.18em}.scroll-down .line{position:relative;width:1px;height:74px;overflow:hidden;background:rgba(255,255,255,.16)}.scroll-down .line::before{content:"";position:absolute;left:0;top:-24px;width:1px;height:24px;background:#fff;box-shadow:0 0 8px rgba(255,255,255,.55);animation:scrollTrace 1.55s cubic-bezier(.77,0,.18,1) infinite}@keyframes scrollTrace{0%{transform:translateY(0);opacity:0}15%{opacity:1}70%{opacity:1}100%{transform:translateY(100px);opacity:0}}
/* about */
.about-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.8fr);gap:72px;align-items:end}.about-lead p{margin:0;color:#34383c;font-size:18px;line-height:1.95}.about-lead p+p{margin-top:22px}.about-meta{border-top:1px solid var(--line)}.about-meta .meta-row{display:flex;justify-content:space-between;gap:20px;padding:17px 0;border-bottom:1px solid var(--line)}.about-meta span{font-size:10px;letter-spacing:.15em;color:#868b90}.about-meta strong{font-size:12px;text-align:right}.experience-strip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:58px}.experience-strip article{padding:24px 20px 22px;border-right:1px solid var(--line)}.experience-strip article:last-child{border-right:0}.experience-strip small{display:block;color:#8a8f94;font-size:9px;letter-spacing:.15em;text-transform:uppercase;margin-bottom:8px}.experience-strip strong{display:block;font-size:13px;line-height:1.5}.experience-strip p{margin:5px 0 0;color:#71777c;font-size:11px;line-height:1.5}.link-line{display:inline-flex;align-items:center;gap:15px;margin-top:46px;font-family:"Fjalla One",sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.link-line .lines{display:flex;width:42px}.link-line .lines span{height:1px;background:currentColor;transition:.25s ease}.link-line .lines span:first-child{width:100%}.link-line .lines span:last-child{width:0}.link-line:hover .lines span:first-child{width:0}.link-line:hover .lines span:last-child{width:100%}.link-line.inverse{color:#fff}
/* proficiency */
.proficiency-section{padding:132px 0;background:#101315;color:#fff;position:relative;overflow:hidden}.proficiency-section::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(1,247,182,.055),transparent 45%,rgba(255,255,255,.022));pointer-events:none}.proficiency-section::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 20%,rgba(1,247,182,.07),transparent 22%),radial-gradient(circle at 90% 70%,rgba(255,255,255,.04),transparent 20%);pointer-events:none}.proficiency-section .section-heading .kicker{color:rgba(255,255,255,.56)}.skill-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1)}.skill-card{min-height:320px;padding:32px;background:#101315;transition:transform .28s var(--ease),background .28s ease}.skill-card:hover{background:#151a1d;transform:translateY(-2px)}.skill-index{color:var(--mint);font-family:"Fjalla One",sans-serif;font-size:17px;margin-bottom:30px}.skill-card h3{margin:0 0 22px;font-size:22px;letter-spacing:-.02em}.skill-card ul{list-style:none}.skill-card li{position:relative;padding:7px 0 7px 17px;color:rgba(255,255,255,.74);font-size:13px;line-height:1.45}.skill-card li::before{content:"";position:absolute;left:0;top:14px;width:4px;height:4px;background:var(--mint)}.skill-card em{font-style:normal;color:rgba(255,255,255,.42)}
/* research */
.focus-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.focus-card{border-top:2px solid var(--ink);padding:25px 0 0}.focus-card .num{font-family:"Fjalla One",sans-serif;font-size:14px;opacity:.45}.focus-card h3{margin:18px 0 13px;font-size:27px;line-height:1.05}.focus-card p{margin:0;max-width:380px;color:var(--muted);line-height:1.8}.publications{margin-top:84px;padding-top:74px;border-top:1px solid var(--line)}.publications-head{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;margin-bottom:28px}.publications-head h3{margin:0;font-size:30px}.publications-head p{max-width:440px;margin:0;color:var(--muted);line-height:1.75;font-size:13px}.publication-showcase{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:16px}.publication-feature{min-height:430px;padding:38px;background:#111416;color:#fff;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.publication-feature::before{content:"";position:absolute;inset:20px;border:1px solid rgba(255,255,255,.09);pointer-events:none}.publication-feature::after{content:"";position:absolute;right:-60px;bottom:-60px;width:220px;height:220px;border:1px solid rgba(1,247,182,.16);border-radius:50%;box-shadow:0 0 0 24px rgba(1,247,182,.02),0 0 0 48px rgba(1,247,182,.012);pointer-events:none}.pub-feature-top,.pub-feature-foot{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px}.pub-type{font-family:"Fjalla One",sans-serif;color:var(--mint);font-size:10px;letter-spacing:.17em;text-transform:uppercase}.pub-date{color:rgba(255,255,255,.45);font-family:"Fjalla One",sans-serif;font-size:9px;letter-spacing:.12em;text-transform:uppercase}.publication-feature h4{position:relative;z-index:1;max-width:720px;margin:28px 0 18px;font-size:clamp(25px,3vw,40px);line-height:1.08;letter-spacing:-.03em}.publication-feature p{position:relative;z-index:1;margin:0;color:rgba(255,255,255,.64);font-size:12px;line-height:1.75}.publication-feature p+p{margin-top:15px;color:rgba(255,255,255,.48)}.pub-feature-foot{padding-top:20px;border-top:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.35);font-family:"Fjalla One",sans-serif;font-size:9px;letter-spacing:.12em;text-transform:uppercase}.publication-list{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);max-height:430px;overflow:auto}.publication-item{display:block;width:100%;border:0;text-align:left;padding:20px 22px;background:#fff;color:var(--ink);cursor:pointer;transition:background .2s ease,transform .2s ease,box-shadow .2s ease}.publication-item:hover{background:#f1f1ec}.publication-item.is-selected{background:#e9ede9;box-shadow:inset 3px 0 0 var(--mint)}.publication-item span,.publication-item small{display:block;color:#8a9095;font-size:9px;letter-spacing:.13em;text-transform:uppercase}.publication-item strong{display:block;margin:8px 0;font-size:15px;line-height:1.4;font-weight:700}.publication-item small{color:#70767b;line-height:1.55;letter-spacing:.03em;text-transform:none}.publication-item:focus-visible{outline:2px solid var(--mint);outline-offset:-2px}
/* projects */
.projects-section{background:var(--paper-2);padding:130px 0}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.project-card{background:#fff;border:1px solid rgba(11,13,14,.09);min-width:0;overflow:hidden;transition:transform .28s var(--ease)}.project-card:hover{transform:translateY(-4px)}.project-media{position:relative;aspect-ratio:16/10;background:#111;overflow:hidden}.project-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .55s var(--ease)}.project-card:hover .project-media img{transform:scale(1.025)}.project-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.38));pointer-events:none}.project-body{padding:24px 26px 28px}.project-label{display:block;color:#7c8287;font-size:9px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:11px}.project-body h3{margin:0;font-size:28px;line-height:1.05;letter-spacing:-.03em}.project-body p{margin:12px 0 18px;color:#6b7177;font-size:12px;line-height:1.7}.project-link{font-family:"Fjalla One",sans-serif;font-size:10px;letter-spacing:.13em;text-transform:uppercase}.project-link b{transition:transform .2s ease;display:inline-block;font-size:14px;font-weight:500}.project-card a:hover .project-link b{transform:translateX(4px)}.project-card--open{background:#0c1114;color:#fff;border-color:#0c1114}.project-card--open .project-body p{color:rgba(255,255,255,.55)}.bot-visual{position:relative;aspect-ratio:16/10;background:radial-gradient(circle at center,rgba(1,247,182,.09),transparent 32%),linear-gradient(135deg,#0b1114,#18252a 60%,#0f493d);overflow:hidden}.bot-visual::before,.bot-visual::after{content:"";position:absolute;inset:24px;border:1px solid rgba(255,255,255,.13)}.bot-visual::after{inset:0;background:linear-gradient(90deg,transparent 49.5%,rgba(1,247,182,.14) 50%,transparent 50.5%),linear-gradient(0deg,transparent 49.5%,rgba(1,247,182,.12) 50%,transparent 50.5%);border:0}.bot-visual .bot-label{position:absolute;left:28px;top:24px;z-index:1;color:var(--mint);font-family:"Fjalla One",sans-serif;font-size:11px;letter-spacing:.18em;text-transform:uppercase}.bot-visual .bot-name{position:absolute;left:28px;bottom:24px;z-index:1;font-size:42px;font-weight:800;letter-spacing:-.05em}.bot-visual .bot-meta{position:absolute;right:28px;bottom:28px;z-index:1;color:rgba(255,255,255,.5);font-size:9px;letter-spacing:.14em;text-align:right;text-transform:uppercase}.section-action{display:flex;justify-content:center;margin-top:44px}.outline-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border:1px solid rgba(11,13,14,.24);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;transition:transform .25s var(--ease),background .25s ease,border-color .25s ease,color .25s ease}.outline-button:hover{background:var(--ink);border-color:var(--ink);color:#fff;transform:translateY(-2px)}
/* collaboration */
.collaboration-section{background:var(--paper)}.collab-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.collab-card{min-height:160px;background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:22px;text-align:center;transition:transform .25s var(--ease),box-shadow .25s ease}.collab-card:hover{transform:translateY(-3px);box-shadow:0 14px 35px rgba(12,15,16,.08)}.collab-logo{width:84px;height:58px;display:flex;align-items:center;justify-content:center}.collab-logo img{width:100%;height:100%;object-fit:contain}.collab-wordmark{font-size:22px;font-weight:800;letter-spacing:-.05em}.collab-card small{font-family:"Fjalla One",sans-serif;font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:#83888d}
/* footer */
.site-footer{position:relative;background:#0b0d0f url('../images/x.webp') center/cover no-repeat;color:#fff;padding:110px 0 28px;overflow:hidden}.site-footer::before{content:"";position:absolute;inset:0;background:rgba(6,8,9,.91)}.site-footer::after{content:"";position:absolute;inset:0;background:url('../images/bg-lines.png') center/auto 1px repeat-y;opacity:.08;pointer-events:none}.site-footer .container{position:relative;z-index:1}.footer-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(160px,.65fr) minmax(180px,.75fr);gap:70px;padding-bottom:62px;border-bottom:1px solid var(--dark-line)}.footer-intro h2{margin:0 0 22px;font-size:clamp(46px,6vw,78px);line-height:.93;letter-spacing:-.05em}.footer-intro h2 span{color:var(--mint)}.footer-intro p{max-width:500px;color:rgba(255,255,255,.6);font-size:13px;line-height:1.8}.footer-contact-row{display:flex;align-items:center;gap:14px;margin-top:10px}.footer-email{display:inline-block;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:6px;color:#fff;transition:color .22s ease,border-color .22s ease,transform .22s var(--ease)}.footer-email:hover{color:var(--mint);border-color:var(--mint);transform:translateY(-2px)}.footer-email:focus-visible{outline:1px solid var(--mint);outline-offset:5px}.footer-email.is-clicked{color:var(--mint);transform:translateY(-1px) scale(.99)}.footer-arrow{display:grid;place-items:center;width:36px;height:36px;border:1px solid rgba(255,255,255,.16);transition:transform .2s ease,border-color .2s ease,color .2s ease}.footer-arrow:hover{transform:translateY(-2px);border-color:var(--mint);color:var(--mint)}.footer-links h3{margin:0 0 16px;font-family:"Fjalla One",sans-serif;color:var(--mint);font-size:12px;letter-spacing:.15em;text-transform:uppercase}.footer-links a{position:relative;display:block;width:max-content;max-width:100%;padding:6px 0;color:rgba(255,255,255,.72);font-size:12px;transition:transform .22s var(--ease),color .22s ease}.footer-links a::after{content:"";position:absolute;left:0;bottom:3px;width:100%;height:1px;background:var(--mint);transform:scaleX(0);transform-origin:left;transition:transform .24s var(--ease)}.footer-links a b{font-size:11px;transition:transform .2s ease;display:inline-block}.footer-links a:hover{color:#fff;transform:translateX(4px)}.footer-links a:hover::after,.footer-links a:focus-visible::after{transform:scaleX(1)}.footer-links a:hover b{transform:translateX(3px)}.footer-links a:focus-visible{outline:1px solid var(--mint);outline-offset:4px}.footer-links a.is-clicked{color:var(--mint);transform:translateX(2px) scale(.98)}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-top:22px;color:rgba(255,255,255,.38);font-family:"Fjalla One",sans-serif;font-size:9px;letter-spacing:.1em;text-transform:uppercase}
/* detail pages */
.detail-hero{position:relative;min-height:76svh;display:flex;align-items:flex-end;background:#0b0d0f url('../images/bg-main.webp') center/cover no-repeat;color:#fff;overflow:hidden}.detail-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(5,7,8,.95),rgba(5,7,8,.6) 60%,rgba(5,7,8,.8))}.detail-hero::after{content:"";position:absolute;inset:-10%;background:repeating-linear-gradient(90deg,transparent 0 11.5%,rgba(255,255,255,.028) 11.6%,transparent 11.75%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E");background-size:auto,180px 180px;opacity:.72}.detail-hero-inner{position:relative;z-index:2;width:min(var(--container),calc(100% - 72px));margin:auto;padding:150px 0 94px}.detail-hero-inner h1{margin:0;font-size:clamp(58px,8.8vw,126px);line-height:.88;letter-spacing:-.05em;font-weight:800}.detail-hero-inner h1 span{display:block;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.88);margin-left:3vw}.detail-hero-inner p:not(.eyebrow){max-width:700px;margin:30px 0 0;color:rgba(255,255,255,.7);line-height:1.85;font-size:15px}.project-detail{padding:118px 0;border-bottom:1px solid var(--line)}.detail-light{background:var(--paper)}.detail-dark{background:#111416;color:#fff}.detail-grid{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:64px;align-items:start}.detail-copy{min-width:0;position:sticky;top:100px;align-self:start}.detail-copy h6{margin:0 0 16px;font-family:"Fjalla One",sans-serif;font-size:11px;letter-spacing:.18em;opacity:.48}.detail-copy h2{margin:0;font-size:clamp(44px,5.4vw,76px);line-height:.96;letter-spacing:-.045em}.detail-copy p{margin:24px 0 0;max-width:540px;color:#60676c;line-height:1.82;font-size:14px}.detail-dark .detail-copy p{color:rgba(255,255,255,.62)}.project-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:24px}.project-meta span{padding:8px 10px;border:1px solid var(--line);font-family:"Fjalla One",sans-serif;font-size:8px;letter-spacing:.12em}.detail-dark .project-meta span{border-color:rgba(255,255,255,.14)}.detail-media{min-width:0}.media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}.media-grid>a,.media-grid>.video-frame{display:block;min-width:0;aspect-ratio:4/3;background:#0d1012;overflow:hidden}.media-grid .media-wide{grid-column:1/-1;aspect-ratio:16/9}.media-grid img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s var(--ease)}.media-grid a:hover img{transform:scale(1.02)}.video-frame{position:relative}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.single-media{min-width:0;aspect-ratio:16/10;background:#0d1012;overflow:hidden}.single-media a,.single-media img{display:block;width:100%;height:100%}.single-media img{object-fit:cover}.pcb-grid>a:nth-last-child(1){grid-column:1/-1}.opensoccerbot-project{background:#0d1215;color:#fff}.opensoccerbot-project .detail-copy p{color:rgba(255,255,255,.64)}.opensoccerbot-project .project-meta span{border-color:rgba(255,255,255,.16)}.open-source-embed{position:relative;aspect-ratio:16/10;min-width:0;background:#fff;border:1px solid rgba(255,255,255,.12);overflow:hidden}.open-source-embed iframe{display:block;width:100%;height:100%;border:0;background:#fff}.open-source-links{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px}.open-source-links a{display:inline-flex;align-items:center;min-height:42px;padding:0 13px;border:1px solid rgba(255,255,255,.18);color:#fff;font-family:"Fjalla One",sans-serif;font-size:9px;letter-spacing:.12em;transition:transform .2s ease,border-color .2s ease,color .2s ease}.open-source-links a:hover{transform:translateY(-2px);border-color:var(--mint);color:var(--mint)}.reference-project{background:#e8e8e3}.reference-block{border:1px dashed rgba(11,13,14,.25);padding:42px;background:rgba(255,255,255,.45)}.reference-block h3{margin:0 0 10px;font-size:26px}.reference-block p{margin:0;color:#6b7176;line-height:1.8;max-width:760px}.reference-code{margin-top:26px;padding:20px;background:#111416;color:#cfd6d6;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.75;overflow:auto}
/* lightbox / motion */
.site-lightbox{position:fixed;inset:0;z-index:2500;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(5,6,7,.94);opacity:0;visibility:hidden;transition:.2s ease}.site-lightbox.is-open{opacity:1;visibility:visible}.site-lightbox img{max-width:min(1200px,92vw);max-height:88vh;object-fit:contain;box-shadow:0 20px 80px rgba(0,0,0,.5)}.site-lightbox button{position:absolute;top:16px;right:20px;border:0;background:none;color:#fff;font-size:38px;cursor:pointer}.lightbox-link{cursor:zoom-in}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s var(--ease)}.reveal.is-visible{opacity:1;transform:none}
@media (max-width:1100px){.container{width:min(var(--container),calc(100% - 48px))}.hero-shell{width:calc(100% - 120px);margin-left:90px}.nav-links{display:none}.about-grid{grid-template-columns:1fr;gap:40px}.experience-strip{grid-template-columns:repeat(2,1fr)}.experience-strip article:nth-child(2){border-right:0}.experience-strip article:nth-child(-n+2){border-bottom:1px solid var(--line)}.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.focus-grid{grid-template-columns:1fr;gap:36px}.publication-showcase{grid-template-columns:1fr}.publication-list{max-height:none}.collab-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.footer-grid{grid-template-columns:1fr 1fr;gap:44px}.footer-intro{grid-column:1/-1}.detail-grid{grid-template-columns:1fr;gap:42px}.detail-copy{position:static}.detail-media{width:100%}}
@media (max-width:760px){:root{--nav-h:60px}.container{width:min(calc(100% - 34px),var(--container))}.site-navbar{padding:0 17px}.site-navbar .brand img{width:44px;height:44px}.menu-button{font-size:9px}.navigation-drawer{right:14px;width:calc(100% - 28px)}.drawer-inner{padding:18px}.navigation-drawer li a{min-height:42px;font-size:12px}.hero-shell{width:calc(100% - 34px);margin:0 auto;padding:110px 0 100px}.hero-topline{font-size:9px;letter-spacing:.14em}.hero-title{font-size:clamp(56px,16vw,92px)}.hero-copy{font-size:14px;line-height:1.75;margin-top:25px}.hero-actions{gap:9px}.action{min-height:44px;padding:0 17px}.hero-meta{gap:10px 18px;margin-top:40px;font-size:8px}.left-rail,.hero-note{display:none}.scroll-down{left:11px}.section,.proficiency-section,.projects-section{padding:92px 0}.section-heading{display:block;margin-bottom:42px}.section-heading h2{font-size:clamp(40px,12vw,58px)}.section-heading .kicker{margin-top:16px}.about-lead p{font-size:16px;line-height:1.8}.experience-strip{grid-template-columns:1fr}.experience-strip article,.experience-strip article:nth-child(2){border-right:0;border-bottom:1px solid var(--line)}.experience-strip article:last-child{border-bottom:0}.skill-grid{grid-template-columns:1fr}.skill-card{min-height:auto}.publication-feature{min-height:370px;padding:26px}.publication-list{overflow:visible}.publication-item{padding:18px}.project-grid{grid-template-columns:1fr}.project-body{padding:21px 21px 24px}.project-body h3{font-size:25px}.collab-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.collab-card{min-height:145px;padding:16px}.collab-logo{width:72px;height:52px}.footer-grid{grid-template-columns:1fr;gap:36px}.footer-intro{grid-column:auto}.footer-bottom{align-items:flex-start;flex-direction:column}.detail-hero-inner{width:min(calc(100% - 34px),var(--container));padding:120px 0 78px}.detail-hero-inner h1{font-size:clamp(56px,16vw,90px)}.project-detail{padding:88px 0}.detail-grid{gap:34px}.media-grid{grid-template-columns:1fr}.media-grid>a,.media-grid>.video-frame,.media-grid .media-wide{grid-column:auto;aspect-ratio:16/10}.single-media{aspect-ratio:4/3}.open-source-embed{aspect-ratio:4/3}.reference-block{padding:28px 22px}.site-loader .loader-text{bottom:32px}.reveal{transform:translateY(12px)}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.site-navbar,.navigation-drawer,.project-card,.collab-card,.media-grid img,.site-lightbox,.reveal,.action,.outline-button,.footer-links a{transition:none!important}.scroll-down .line::before{animation:none}.project-card:hover,.collab-card:hover{transform:none}.site-loader{transition:none}}

/* v4 link feedback */
a[href^="https://github.com"],a[href*="linkedin.com"],a[href^="mailto:"]{transition:color .22s ease,transform .22s var(--ease),border-color .22s ease,background .22s ease,box-shadow .22s ease}.left-rail a:hover{color:var(--mint);transform:translateX(4px)}.left-rail a:focus-visible{outline:1px solid var(--mint);outline-offset:5px}.left-rail a.is-clicked{color:var(--mint);transform:translateX(3px) scale(.98)}
.action:focus-visible,.outline-button:focus-visible,.link-line:focus-visible,.open-source-links a:focus-visible{outline:1px solid var(--mint);outline-offset:5px}.action.is-clicked,.outline-button.is-clicked,.link-line.is-clicked,.open-source-links a.is-clicked{transform:translateY(-1px) scale(.98);color:var(--mint);border-color:var(--mint)}
.open-source-links a{position:relative;overflow:hidden}.open-source-links a::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,rgba(1,247,182,.10) 50%,transparent 80%);transform:translateX(-120%);transition:transform .38s var(--ease)}.open-source-links a:hover::before{transform:translateX(120%)}
/* dedicated OpenSoccerBot detail layout */
.opensoccerbot-project{position:relative;overflow:hidden}.opensoccerbot-shell{display:grid;gap:34px}.opensoccerbot-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.42fr);gap:42px;align-items:end}.opensoccerbot-intro .detail-copy{position:static}.opensoccerbot-intro-note{align-self:end;padding:18px 18px 20px;border-left:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.55);font-size:11px;line-height:1.75}.opensoccerbot-intro-note strong{display:block;margin-bottom:6px;color:#fff;font-family:"Fjalla One",sans-serif;font-size:9px;letter-spacing:.16em}.opensoccerbot-stage{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:16px;align-items:stretch}.open-source-embed{min-height:clamp(560px,48vw,760px);aspect-ratio:auto;position:relative;background:#fff;border:1px solid rgba(255,255,255,.12);overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.22)}.open-source-embed iframe{display:block;width:100%;height:100%;min-height:inherit;border:0;background:#fff}.open-source-aside{display:flex;flex-direction:column;gap:16px;min-width:0}.open-source-card{padding:20px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.025)}.open-source-card h3{margin:0 0 9px;font-family:"Fjalla One",sans-serif;font-size:10px;letter-spacing:.16em;color:var(--mint)}.open-source-card p{margin:0;color:rgba(255,255,255,.56);font-size:11px;line-height:1.75}.open-source-status{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.5);font-size:9px;letter-spacing:.08em;text-transform:uppercase}.open-source-status::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--mint);box-shadow:0 0 12px rgba(1,247,182,.6)}
@media (max-width:1100px){.opensoccerbot-intro{grid-template-columns:1fr}.opensoccerbot-intro-note{max-width:620px}.opensoccerbot-stage{grid-template-columns:1fr}.open-source-aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.open-source-embed{min-height:clamp(520px,68vw,720px)}}
@media (max-width:760px){.opensoccerbot-stage{gap:12px}.open-source-embed{min-height:620px}.open-source-aside{grid-template-columns:1fr}.opensoccerbot-intro-note{padding-left:14px}}

/* v5 finishing pass */
.site-navbar{height:72px}
.site-navbar .brand{min-width:72px;gap:11px}
.site-navbar .brand img{width:54px;height:54px;filter:drop-shadow(0 4px 14px rgba(0,0,0,.18))}
.site-navbar .brand:hover img{transform:translateY(-1px) scale(1.025);filter:drop-shadow(0 6px 18px rgba(1,247,182,.18))}
.site-navbar .brand img{transition:transform .22s var(--ease),filter .22s ease}
.social-link{position:relative;display:inline-flex!important;align-items:center;gap:9px!important}
.social-link>span{display:inline-grid;place-items:center;min-width:21px;height:21px;padding:0 4px;border:1px solid rgba(255,255,255,.2);border-radius:50%;font-family:"Fjalla One",sans-serif;font-size:8px;line-height:1;letter-spacing:0;color:rgba(255,255,255,.78);transition:transform .22s var(--ease),background .22s ease,border-color .22s ease,color .22s ease}
.footer-links .social-link{width:max-content;min-width:132px;padding:7px 10px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.018);border-radius:2px}
.footer-links .social-link:hover,.footer-links .social-link:focus-visible{border-color:rgba(1,247,182,.42);background:rgba(1,247,182,.055);transform:translateX(4px)}
.social-link:hover>span,.social-link:focus-visible>span{transform:scale(1.08);background:var(--mint);border-color:var(--mint);color:#06110f}
.social-link.is-clicked{border-color:var(--mint)!important;background:rgba(1,247,182,.09)!important;color:var(--mint)!important}
.left-rail .social-link>span{display:none}
.left-rail .social-link{letter-spacing:.08em}
.detail-media{max-width:760px;width:100%;margin-left:auto}
.media-grid>a,.media-grid>.video-frame{aspect-ratio:16/10}
.single-media{aspect-ratio:16/9;max-height:430px}
.single-media img{object-position:center}
.media-grid .media-wide{aspect-ratio:16/9}
@media (max-width:760px){
  :root{--nav-h:62px}
  .site-navbar{height:62px}
  .site-navbar .brand img{width:48px;height:48px}
  .footer-links .social-link{min-width:150px}
  .detail-media{max-width:none}
  .single-media{aspect-ratio:16/10;max-height:none}
}

/* v6 finishing pass: navigation, hero contact rail, and project-detail rhythm */
@media (min-width:1101px){
  :root{--nav-h:76px}
  .site-navbar{padding:0 30px;background:linear-gradient(180deg,rgba(5,7,8,.88),rgba(5,7,8,.18))}
  .site-navbar.is-scrolled{background:rgba(8,10,12,.84);backdrop-filter:blur(18px) saturate(125%)}
  .site-navbar .brand{gap:0;min-width:0;padding:0;border:0!important;outline:0!important;box-shadow:none!important;background:transparent;border-radius:0;transition:transform .24s var(--ease)}
  .site-navbar .brand:hover{background:rgba(1,247,182,.04);transform:translateY(-1px)}

  .site-navbar .nav-right{gap:16px}
  .site-navbar .nav-links{gap:2px;padding:4px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:rgba(255,255,255,.026);box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
  .site-navbar .nav-links a{min-height:38px;padding:0 14px;border-radius:999px;color:rgba(255,255,255,.62);transition:color .22s ease,background .22s ease,transform .22s var(--ease),box-shadow .22s ease}
  .site-navbar .nav-links a::after{left:15px;right:15px;bottom:3px}
  .site-navbar .nav-links a:hover{background:rgba(255,255,255,.055);color:#fff;transform:translateY(-1px)}
  .site-navbar .nav-links a.is-active{background:rgba(1,247,182,.08);color:#fff;box-shadow:inset 0 0 0 1px rgba(1,247,182,.10)}
  .site-navbar .nav-links a.is-active::after{transform:scaleX(.72);background:var(--mint)}
  .menu-button{min-height:40px;padding:0 13px 0 14px;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:rgba(255,255,255,.025);transition:color .22s ease,border-color .22s ease,background .22s ease,transform .22s var(--ease)}
  .menu-button:hover{border-color:rgba(1,247,182,.28);background:rgba(1,247,182,.04);transform:translateY(-1px)}
}

.left-rail{left:22px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:7px;width:112px;padding:7px;background:rgba(8,11,13,.42);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.09);box-shadow:0 18px 42px rgba(0,0,0,.18);border-radius:12px}
.left-rail::before{content:"CONNECT";padding:4px 8px 3px;color:rgba(255,255,255,.34);font-family:"Fjalla One",sans-serif;font-size:8px;letter-spacing:.18em}
.left-rail .social-link{position:relative;display:flex;align-items:center;gap:9px!important;width:100%;min-height:34px;padding:0 8px;border:1px solid transparent;border-radius:7px;overflow:hidden;color:rgba(255,255,255,.68);font-family:"Fjalla One",sans-serif;letter-spacing:.08em;transition:transform .22s var(--ease),color .22s ease,border-color .22s ease,background .22s ease}
.left-rail .social-link>span{display:inline-grid!important;place-items:center;min-width:22px;height:22px;padding:0 3px;border:1px solid rgba(255,255,255,.16);border-radius:50%;font-size:8px;color:rgba(255,255,255,.78);background:rgba(255,255,255,.015);transition:transform .22s var(--ease),border-color .22s ease,background .22s ease,color .22s ease}
/*.left-rail .social-link::after{content:"↗";margin-left:auto;flex:0 0 auto;color:rgba(255,255,255,.22);font-size:11px;transform:translateX(0);transition:color .22s ease,transform .22s var(--ease)}
*/
.left-rail .social-link:hover,.left-rail .social-link:focus-visible{color:#fff;background:rgba(255,255,255,.045);border-color:rgba(1,247,182,.22);transform:translateX(1px)}
.left-rail .social-link:hover>span,.left-rail .social-link:focus-visible>span{background:var(--mint);border-color:var(--mint);color:#06110f;transform:scale(1.06)}
.left-rail .social-link:hover::after,.left-rail .social-link:focus-visible::after{color:var(--mint);transform:translateX(-1px)}
.left-rail .social-link.is-clicked{color:var(--mint);background:rgba(1,247,182,.08);border-color:rgba(1,247,182,.32);transform:translateX(2px) scale(.99)}
.project-detail:not(.opensoccerbot-project):not(.reference-project){padding:136px 0}
.project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-grid{grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);gap:88px}
.project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-copy{padding:8px 18px 0 0}
.project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-copy h6{margin-bottom:18px}
.project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-copy h2{max-width:560px;font-size:clamp(42px,4.7vw,68px);line-height:.98}
.project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-copy p{max-width:500px;margin-top:30px;line-height:1.9;font-size:14px}
.project-detail:not(.opensoccerbot-project):not(.reference-project) .project-meta{margin-top:28px}
.project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-media{max-width:660px;margin-left:auto}
.project-detail:not(.opensoccerbot-project):not(.reference-project) .media-grid{gap:14px}
.project-detail:not(.opensoccerbot-project):not(.reference-project) .media-grid>a,.project-detail:not(.opensoccerbot-project):not(.reference-project) .media-grid>.video-frame{aspect-ratio:16/10}
.project-detail:not(.opensoccerbot-project):not(.reference-project) .media-grid .media-wide{aspect-ratio:16/9}
.project-detail:not(.opensoccerbot-project):not(.reference-project) .single-media{max-width:660px;aspect-ratio:16/9;margin-left:auto}

@media (max-width:1100px){
  .site-navbar .nav-links{display:none}
  .site-navbar .brand{min-width:0;padding:0;border:0;border-radius:0;background:transparent}
 
  .menu-button{padding:0 12px;min-height:38px;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:rgba(255,255,255,.025)}
  .left-rail{left:16px;width:104px}
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-grid{gap:56px}
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-media{max-width:760px}
}

@media (max-width:760px){
  .site-navbar .brand{min-width:0;padding:0}
  .site-navbar .brand span{display:none}
  .left-rail{display:none}
  .project-detail:not(.opensoccerbot-project):not(.reference-project){padding:92px 0}
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-grid{gap:38px}
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-copy{padding-right:0}
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-copy h2{font-size:clamp(40px,11.5vw,60px)}
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-copy p{margin-top:24px}
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-media,.project-detail:not(.opensoccerbot-project):not(.reference-project) .single-media{max-width:none}
}

@media (prefers-reduced-motion:reduce){
  .site-navbar .brand,.site-navbar .nav-links a,.menu-button,.left-rail .social-link,.left-rail .social-link>span,.left-rail .social-link::after{transition:none!important}
}

/* Final logo cleanup: the header shows the logo mark only. */
.site-navbar .brand{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important}
.site-navbar .brand::before,.site-navbar .brand::after{display:none!important}
.left-rail{width:124px}
.left-rail .social-link{padding-right:28px}
.left-rail .social-link::after{position:absolute;right:8px;top:50%;margin:0;transform:translateY(-50%);opacity:.9}
.left-rail .social-link:hover::after,.left-rail .social-link:focus-visible::after{transform:translate(-1px,-50%);color:var(--mint);opacity:1}
@media (max-width:1100px) and (min-width:761px){.left-rail{width:114px}}

/* Final logo sizing: compact anchor, natural logo ratio, no unused hit-area width. */
.site-navbar .brand{
  min-width:0!important;
  width:auto!important;
  max-width:max-content!important;
  padding:0!important;
  margin:0!important;
  gap:0!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:transparent!important;
  flex:0 0 auto!important;
}
.site-navbar .brand img{
  display:block!important;
  width:88px!important;
  height:auto!important;
  max-height:none!important;
  object-fit:contain!important;
}
.site-navbar .brand:hover,
.site-navbar .brand:focus-visible{
  background:transparent!important;
  outline:0!important;
  box-shadow:none!important;
}
@media (max-width:760px){
  .site-navbar .brand img{width:78px!important}
}
@media (max-width:480px){
  .site-navbar .brand img{width:70px!important}
}


/* v11 interaction + media refinement
   - compact vertical glass contact rail on desktop
   - mobile-friendly project video lightbox
   - stronger CV button treatment
*/
.left-rail{
  left:18px;
  top:54%;
  width:auto;
  padding:7px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  background:rgba(8,11,13,.34);
  backdrop-filter:blur(16px) saturate(118%);
  -webkit-backdrop-filter:blur(16px) saturate(118%);
  border:1px solid rgba(255,255,255,.09);
  border-radius:12px;
  box-shadow:0 16px 46px rgba(0,0,0,.18);
  transform:translateY(-50%);
}
.left-rail::before{
  content:"CONNECT";
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  padding:6px 2px 7px;
  color:rgba(255,255,255,.34);
  font-family:"Fjalla One",sans-serif;
  font-size:7px;
  letter-spacing:.18em;
}
.left-rail .social-link{
  width:38px!important;
  min-width:38px!important;
  height:88px;
  min-height:88px!important;
  padding:7px 5px!important;
  margin:0!important;
  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px!important;
  border:1px solid rgba(255,255,255,.08);
  border-radius:8px;
  overflow:hidden;
  background:rgba(255,255,255,.025);
  color:rgba(255,255,255,.72);
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  transform-origin:center;
  font-family:"Fjalla One",sans-serif;
  font-size:9px;
  letter-spacing:.08em;
  transition:transform .22s var(--ease),border-color .22s ease,background .22s ease,color .22s ease,box-shadow .22s ease;
}
.left-rail .social-link>span{
  display:inline-grid!important;
  place-items:center;
  width:22px;
  min-width:22px;
  height:22px;
  padding:0;
  border:1px solid rgba(255,255,255,.14);
  border-radius:50%;
  background:rgba(255,255,255,.02);
  color:rgba(255,255,255,.8);
  font-size:7px;
  line-height:1;
  writing-mode:horizontal-tb;
  transform:none!important;
}
/*.left-rail .social-link::after{
  content:"↗";
  position:static;
  margin:0;
  color:rgba(255,255,255,.3);
  font-size:10px;
  opacity:1;
  transform:none;
  writing-mode:horizontal-tb;
} */
.left-rail .social-link:hover,
.left-rail .social-link:focus-visible{
  color:#fff;
  border-color:rgba(1,247,182,.34);
  background:rgba(1,247,182,.06);
  box-shadow:0 10px 22px rgba(0,0,0,.15),inset 0 0 0 1px rgba(1,247,182,.05);
  transform:rotate(180deg) translateY(-2px);
}
.left-rail .social-link:hover>span,
.left-rail .social-link:focus-visible>span{
  background:var(--mint);
  border-color:var(--mint);
  color:#06110f;
}
.left-rail .social-link:hover::after,
.left-rail .social-link:focus-visible::after{
  color:var(--mint);
}
.left-rail .social-link.is-clicked{
  background:rgba(1,247,182,.10);
  border-color:rgba(1,247,182,.44);
  color:var(--mint);
  transform:rotate(180deg) translateY(-1px) scale(.985);
}
.footer-links .social-link--cv{
  width:max-content;
  min-width:132px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.018);
  border-radius:2px;
}
.footer-links .social-link--cv:hover,
.footer-links .social-link--cv:focus-visible{
  border-color:rgba(1,247,182,.42);
  background:rgba(1,247,182,.055);
  transform:translateX(4px);
}
.footer-links .social-link--cv>span{
  display:inline-grid;
  place-items:center;
  min-width:22px;
  height:21px;
  padding:0 4px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:50%;
  font-family:"Fjalla One",sans-serif;
  font-size:7px;
  line-height:1;
  letter-spacing:0;
  color:rgba(255,255,255,.78);
  transition:transform .22s var(--ease),background .22s ease,border-color .22s ease,color .22s ease;
}
.footer-links .social-link--cv:hover>span,
.footer-links .social-link--cv:focus-visible>span{
  transform:scale(1.08);
  background:var(--mint);
  border-color:var(--mint);
  color:#06110f;
}
.footer-links .social-link--cv.is-clicked{
  border-color:var(--mint)!important;
  background:rgba(1,247,182,.09)!important;
  color:var(--mint)!important;
}

/* Video cards become explicit controls so tapping a project video opens a proper in-site player. */
.video-frame{
  position:relative;
  isolation:isolate;
}
.video-frame iframe{
  pointer-events:none;
}
.video-open{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  align-items:flex-end;
  justify-content:flex-start;
  padding:16px;
  border:0;
  background:linear-gradient(180deg,transparent 42%,rgba(0,0,0,.54) 100%);
  color:#fff;
  cursor:pointer;
  text-align:left;
}
.video-open span{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border:1px solid rgba(255,255,255,.3);
  border-radius:50%;
  background:rgba(8,11,13,.38);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  font-size:13px;
  transition:transform .22s var(--ease),background .22s ease,border-color .22s ease,color .22s ease;
}
.video-open b{
  margin-left:10px;
  font-family:"Fjalla One",sans-serif;
  font-size:9px;
  letter-spacing:.15em;
  font-weight:400;
  opacity:.86;
}
.video-open:hover span,
.video-open:focus-visible span{
  transform:translateY(-2px) scale(1.05);
  background:var(--mint);
  border-color:var(--mint);
  color:#06110f;
}
.video-open:focus-visible{
  outline:1px solid var(--mint);
  outline-offset:-5px;
}
.video-lightbox{
  position:fixed;
  inset:0;
  z-index:2600;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(5,6,7,.95);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease,visibility .22s ease;
}
.video-lightbox.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.video-lightbox-frame{
  width:min(1200px,94vw);
  aspect-ratio:16/9;
  background:#000;
  box-shadow:0 24px 90px rgba(0,0,0,.55);
}
.video-lightbox-frame iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
}
.video-lightbox-close{
  position:absolute;
  top:15px;
  right:18px;
  width:44px;
  height:44px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(8,11,13,.55);
  color:#fff;
  font-size:30px;
  cursor:pointer;
}
.video-lightbox-close:hover,
.video-lightbox-close:focus-visible{
  border-color:var(--mint);
  color:var(--mint);
}
@media (max-width:760px){
  .video-frame,
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .media-grid>.video-frame{
    aspect-ratio:16/9;
    min-height:230px;
  }
  .video-open{padding:13px}
  .video-open span{width:38px;height:38px;font-size:11px}
  .video-lightbox{padding:12px}
  .video-lightbox-frame{width:100%;aspect-ratio:16/9}
  .video-lightbox-close{top:10px;right:10px;width:40px;height:40px;font-size:27px}
}
@media (prefers-reduced-motion:reduce){
  .left-rail .social-link,
  .left-rail .social-link>span,
  .left-rail .social-link::after,
  .video-open span,
  .footer-links .social-link--cv,
  .footer-links .social-link--cv>span{transition:none!important}
}

/* v12 mobile media refinement: show project images clearly instead of forcing crops. */
@media (max-width:760px){
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .media-grid{
    grid-template-columns:1fr;
    gap:16px;
  }
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .media-grid > .lightbox-link,
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .media-grid > .media-wide{
    aspect-ratio:auto;
    height:auto;
    min-height:0;
    display:block;
    background:#0d1012;
    border:1px solid rgba(0,0,0,.08);
    overflow:hidden;
  }
  .project-detail.detail-dark:not(.opensoccerbot-project):not(.reference-project) .media-grid > .lightbox-link,
  .project-detail.detail-dark:not(.opensoccerbot-project):not(.reference-project) .media-grid > .media-wide{
    border-color:rgba(255,255,255,.08);
  }
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .media-grid > .lightbox-link img,
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .media-grid > .media-wide img{
    width:100%;
    height:auto;
    max-height:none;
    object-fit:contain;
    object-position:center;
    background:#0d1012;
  }
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .media-grid > .lightbox-link:not(.media-wide){
    padding:0;
  }
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .single-media{
    aspect-ratio:auto;
    height:auto;
    max-height:none;
    background:#0d1012;
    overflow:hidden;
  }
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .single-media a{
    display:block;
    height:auto;
  }
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .single-media img{
    display:block;
    width:100%;
    height:auto;
    max-height:none;
    object-fit:contain;
    object-position:center;
    background:#0d1012;
  }
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-copy + .detail-media{
    margin-top:2px;
  }
}
@media (max-width:500px){
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-grid,
  .detail-grid{
    display:block!important;
    width:100%;
  }

  .project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-copy,
  .detail-copy{
    position:static!important;
    width:100%;
    max-width:none;
    margin:0 0 34px;
    padding:0!important;
  }

  .project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-media,
  .detail-media{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
  }

  .media-grid{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:8px!important;
    width:100%;
  }

  .media-grid>a,
  .media-grid>.video-frame{
    grid-column:auto!important;
    width:100%;
    min-width:0;
    aspect-ratio:1/1!important;
    max-height:none!important;
  }

  /* Feature media spans the full gallery width. */
  .media-grid .media-wide{
    grid-column:1/-1!important;
    aspect-ratio:16/9!important;
  }

  /* Videos remain wide enough to show their controls/content instead of becoming tiny squares. */
  .media-grid>.video-frame{
    grid-column:span 2!important;
    aspect-ratio:16/9!important;
  }

  .media-grid .media-wide.video-frame{
    grid-column:1/-1!important;
  }

  .media-grid img{
    object-fit:cover;
    object-position:center;
  }

  .video-open{
    padding:10px;
  }

  .video-open span{
    width:36px;
    height:36px;
  }

  .video-open b{
    font-size:8px;
    margin-left:7px;
  }

  .single-media{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    aspect-ratio:4/3!important;
  }

  .project-detail:not(.opensoccerbot-project):not(.reference-project){
    padding:72px 0;
  }

  .project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-copy h2{
    font-size:clamp(38px,12vw,54px);
    line-height:.98;
  }

  .project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-copy p{
    max-width:none;
    font-size:13px;
    line-height:1.8;
  }
}

@media (max-width:360px){
  .media-grid{gap:6px!important}
  .media-grid>.video-frame{grid-column:1/-1!important}
}
@media (max-width:760px){
  .site-hero .hero-shell{padding-bottom:145px;}
  .site-hero .scroll-down{
    left:50%;
    bottom:14px;
    transform:translateX(-50%);
    flex-direction:row;
    gap:9px;
    pointer-events:none;
    opacity:.72;
  }
  .site-hero .scroll-down small{
    writing-mode:initial;
    transform:none;
    font-size:8px;
    letter-spacing:.16em;
  }
  .site-hero .scroll-down .line{
    width:42px;
    height:1px;
  }
  .site-hero .scroll-down .line::before{
    top:0;
    left:-14px;
    width:14px;
    height:1px;
    animation-name:scrollTraceX;
  }
}
@keyframes scrollTraceX{0%{transform:translateX(0);opacity:0}15%{opacity:1}70%{opacity:1}100%{transform:translateX(56px);opacity:0}}
@media (max-width:760px){
  .site-hero .left-rail{
    display:none!important;
  }

  /* Give work-single content a deliberate mobile gutter so media never hugs the viewport edge. */
  .project-detail .container.detail-grid,
  .project-detail.opensoccerbot-project .container,
  .project-detail.reference-project .container{
    width:calc(100% - 32px)!important;
    max-width:none!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  .project-detail:not(.opensoccerbot-project):not(.reference-project) .detail-media,
  .project-detail:not(.opensoccerbot-project):not(.reference-project) .single-media{
    width:100%!important;
  }

  .project-detail:not(.opensoccerbot-project):not(.reference-project) .media-grid{
    width:100%!important;
  }
}

@media (max-width:500px){
  .project-detail .container.detail-grid,
  .project-detail.opensoccerbot-project .container,
  .project-detail.reference-project .container{
    width:calc(100% - 28px)!important;
  }
}


/* v16 final mobile interaction refinement
   - mobile CONNECT rail becomes a compact horizontal glass dock with labels always visible
   - OpenSoccerBot embed gets a wider internal viewport on small screens
   - CV uses the same connect-button treatment on both pages
   - footer metadata stays on one row
*/
.footer-links .social-link--cv{
  border:1px solid rgba(255,255,255,.10);
  border-radius:2px;
  padding:7px 9px!important;
  margin-top:3px;
  background:rgba(255,255,255,.018);
}
.footer-links .social-link--cv:hover,
.footer-links .social-link--cv:focus-visible{
  border-color:rgba(1,247,182,.42);
  background:rgba(1,247,182,.055);
  transform:translateX(4px);
}
.footer-links .social-link--cv::after{display:none}
.footer-bottom{
  flex-direction:row!important;
  align-items:center!important;
  justify-content:space-between!important;
  flex-wrap:nowrap!important;
}
@media (max-width:760px){
  .site-hero .left-rail{
    display:flex!important;
    position:absolute!important;
    left:50%!important;
    right:auto!important;
    top:auto!important;
    bottom:48px!important;
    width:auto!important;
    max-width:calc(100% - 28px)!important;
    height:auto!important;
    padding:5px!important;
    flex-direction:row!important;
    align-items:stretch!important;
    justify-content:center!important;
    gap:5px!important;
    transform:translateX(-50%)!important;
    border-radius:11px!important;
    background:rgba(8,11,13,.42)!important;
    backdrop-filter:blur(16px) saturate(125%)!important;
    -webkit-backdrop-filter:blur(16px) saturate(125%)!important;
  }
  .site-hero .left-rail::before{
    content:"CONNECT";
    writing-mode:horizontal-tb!important;
    transform:none!important;
    display:flex!important;
    align-items:center!important;
    padding:0 7px!important;
    font-size:7px!important;
    letter-spacing:.14em!important;
    white-space:nowrap!important;
  }
  .site-hero .left-rail .social-link{
    width:auto!important;
    min-width:0!important;
    height:38px!important;
    min-height:38px!important;
    padding:5px 8px!important;
    flex:0 0 auto!important;
    flex-direction:row!important;
    justify-content:center!important;
    gap:6px!important;
    writing-mode:horizontal-tb!important;
    transform:none!important;
    border-radius:7px!important;
    font-size:8px!important;
    letter-spacing:.06em!important;
    white-space:nowrap!important;
  }
  .site-hero .left-rail .social-link>span{
    width:21px!important;
    min-width:21px!important;
    height:21px!important;
    flex:0 0 21px!important;
    font-size:7px!important;
  }
  .site-hero .left-rail .social-link::after{
    position:static!important;
    display:inline!important;
    font-size:9px!important;
    margin:0!important;
    transform:none!important;
    color:rgba(255,255,255,.52)!important;
  }
  .site-hero .left-rail .social-link:hover,
  .site-hero .left-rail .social-link:focus-visible{
    transform:translateY(-1px)!important;
  }
  .site-hero .scroll-down{
    bottom:10px!important;
  }

  /* Give the embedded OpenSoccerBot page more internal viewport while keeping the frame contained. */
  .open-source-embed{
    min-height:610px!important;
    overflow:hidden!important;
  }
  .open-source-embed iframe{
    width:135%!important;
    height:135%!important;
    min-height:0!important;
    transform:scale(.74075)!important;
    transform-origin:top left!important;
  }

  .footer-bottom{
    font-size:7px!important;
    letter-spacing:.08em!important;
    gap:10px!important;
    white-space:nowrap!important;
  }
  .footer-bottom span{min-width:0!important}
}
@media (max-width:360px){
  .site-hero .left-rail{
    max-width:calc(100% - 18px)!important;
    gap:3px!important;
    padding:4px!important;
  }
  .site-hero .left-rail::before{padding:0 4px!important;font-size:6px!important}
  .site-hero .left-rail .social-link{
    padding:4px 6px!important;
    gap:4px!important;
    font-size:7px!important;
  }
  .site-hero .left-rail .social-link>span{width:19px!important;height:19px!important;min-width:19px!important}
  .footer-bottom{font-size:6.5px!important;gap:6px!important}
}


/* selected project archive */
.project-grid{transition:opacity .2s ease}
.project-card[hidden]{display:none}
.project-card--revealing{animation:projectCardReveal .46s var(--ease) both;animation-delay:var(--project-delay,0ms)}
.project-card--collapsing{animation:projectCardCollapse .24s ease both}
@keyframes projectCardReveal{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes projectCardCollapse{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-8px) scale(.99)}}
.project-actions{display:flex;align-items:stretch;justify-content:center;gap:12px;margin-top:30px}
.project-more,.project-details-button{min-height:52px;padding:0 16px;display:inline-flex;align-items:center;justify-content:space-between;gap:20px;text-transform:uppercase;letter-spacing:.13em;font-family:"Fjalla One",sans-serif;font-size:9px;text-decoration:none;cursor:pointer;transition:transform .25s var(--ease),background .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease}
.project-more{min-width:220px;border:1px solid #111;background:#111;color:#fff;text-align:left}
.project-more-main{display:inline-flex;align-items:center;gap:13px}
.project-more-main b,.project-details-button b{font-size:15px;font-weight:500;transition:transform .25s var(--ease)}
.project-more small{padding-left:12px;border-left:1px solid rgba(255,255,255,.22);color:rgba(255,255,255,.52);font-size:8px;letter-spacing:.12em}
.project-more:hover{transform:translateY(-2px);background:#202426;box-shadow:0 10px 24px rgba(10,12,13,.16)}
.project-more:hover .project-more-main b{transform:translateY(3px)}
.project-more.is-expanded:hover .project-more-main b{transform:translateY(-3px)}
.project-more:focus-visible,.project-details-button:focus-visible{outline:2px solid var(--mint);outline-offset:4px}
.project-more[hidden]{display:none}
.project-details-button{min-width:230px;border:1px solid rgba(10,12,13,.2);background:transparent;color:#111}
.project-details-button span{position:relative}
.project-details-button span::after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:1px;background:var(--mint);transition:right .28s var(--ease)}
.project-details-button:hover{transform:translateY(-2px);border-color:#111;background:#fff;box-shadow:0 10px 24px rgba(10,12,13,.08)}
.project-details-button:hover span::after{right:0}
.project-details-button:hover b{transform:translate(3px,-3px)}
.project-actions[hidden]{display:none}
@media (max-width:760px){
  .project-actions{flex-direction:column;align-items:stretch;gap:9px;margin-top:24px}
  .project-more,.project-details-button{width:100%;min-width:0;min-height:50px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* public coverage */
.coverage-section{background:#f7f7f5}
.coverage-grid{display:grid;grid-template-columns:1.06fr .94fr;grid-template-areas:"featured side" "wide1 wide2";gap:16px}
.coverage-card{background:#fff;border:1px solid var(--line);min-width:0;overflow:hidden;display:flex;flex-direction:column;transition:transform .28s var(--ease),box-shadow .28s var(--ease),border-color .28s ease}
.coverage-card:hover{transform:translateY(-4px);box-shadow:0 18px 48px rgba(10,12,13,.09);border-color:rgba(10,12,13,.16)}
.coverage-card--featured{grid-area:featured;display:grid;grid-template-columns:1.03fr .97fr}
.coverage-card--news{grid-area:side}
.coverage-card--program{grid-area:wide1}
.coverage-card--video{grid-area:wide2}
.coverage-card--extra[hidden]{display:none}
.coverage-media{position:relative;display:block;min-height:248px;background:#111;overflow:hidden}
.coverage-card--featured .coverage-media{height:100%;min-height:100%}
.coverage-card:not(.coverage-card--featured) .coverage-media{aspect-ratio:16/9;min-height:0}
.coverage-media img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.88) contrast(1.02);transition:transform .55s var(--ease),filter .4s ease}
.coverage-card:hover .coverage-media img{transform:scale(1.025);filter:saturate(.98) contrast(1.03)}
.coverage-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,10,12,.02) 44%,rgba(7,10,12,.55))}
.coverage-media-tag{position:absolute;left:16px;top:14px;z-index:2;font-family:"Fjalla One",sans-serif;font-size:8px;line-height:1;letter-spacing:.16em;text-transform:uppercase;padding:7px 9px;color:#fff;background:rgba(10,13,15,.74);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.coverage-media-arrow{position:absolute;right:16px;top:14px;z-index:2;width:30px;height:30px;display:grid;place-items:center;color:#fff;background:rgba(10,13,15,.64);border:1px solid rgba(255,255,255,.16);font-size:13px;transition:transform .22s ease,background .22s ease}
.coverage-card:hover .coverage-media-arrow{transform:translate(2px,-2px);background:rgba(1,247,182,.16)}
.coverage-play{position:absolute;left:50%;top:50%;z-index:2;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;display:grid;place-items:center;color:#0b0d0f;background:var(--mint);font-size:15px;padding-left:2px;box-shadow:0 0 0 7px rgba(1,247,182,.13);transition:transform .25s ease,box-shadow .25s ease}
.coverage-card:hover .coverage-play{transform:translate(-50%,-50%) scale(1.05);box-shadow:0 0 0 10px rgba(1,247,182,.13)}
.coverage-body{padding:24px 26px 27px}
.coverage-card--featured .coverage-body{padding:30px;display:flex;flex-direction:column;justify-content:center}
.coverage-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px;color:#7e8488;font-family:"Fjalla One",sans-serif;font-size:8px;letter-spacing:.13em;text-transform:uppercase}
.coverage-meta span:first-child{color:#4f575c}
.coverage-meta span:last-child{white-space:nowrap}
.coverage-body h3{margin:0;font-size:24px;line-height:1.06;letter-spacing:-.035em}
.coverage-card--featured .coverage-body h3{font-size:34px}
.coverage-body p{margin:12px 0 19px;color:#6b7177;font-size:12px;line-height:1.72}
.coverage-link{display:inline-flex;align-items:center;justify-content:space-between;gap:16px;align-self:flex-start;min-width:148px;padding:10px 12px 9px;border:1px solid rgba(10,12,13,.18);background:rgba(255,255,255,.72);font-family:"Fjalla One",sans-serif;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#111;transition:background .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease}
.coverage-link b{font-size:14px;font-weight:500;transition:transform .2s ease}
.coverage-link:hover{background:#111;color:#fff;border-color:#111;transform:translateY(-1px);box-shadow:0 8px 18px rgba(10,12,13,.10)}
.coverage-link:hover b{transform:translate(3px,-2px)}
.coverage-link:focus-visible{outline:2px solid var(--mint);outline-offset:3px}
.coverage-more[hidden]{display:none}
.coverage-more{display:flex;align-items:center;justify-content:center;gap:14px;min-height:46px;margin:25px auto 0;padding:0 18px;border:1px solid rgba(10,12,13,.18);background:transparent;color:#111;font-family:"Fjalla One",sans-serif;font-size:9px;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.coverage-more:hover{background:#111;color:#fff;border-color:#111;transform:translateY(-1px)}
.coverage-more:focus-visible{outline:2px solid var(--mint);outline-offset:3px}
.coverage-more b{font-size:15px;font-weight:500;transition:transform .2s ease}
.coverage-more:hover b{transform:translateY(3px)}
.coverage-note{margin-top:25px;color:#83888d;font-family:"Fjalla One",sans-serif;font-size:8px;letter-spacing:.16em;text-transform:uppercase;text-align:right}
.coverage-note span{color:#111;margin-right:8px}
@media (max-width:1100px){
  .coverage-grid{grid-template-columns:1fr 1fr}
  .coverage-card--featured{grid-template-columns:1fr;display:flex}
  .coverage-card--featured .coverage-media{min-height:0;aspect-ratio:16/9}
  .coverage-card--featured .coverage-body{padding:24px 26px 27px}
  .coverage-card--featured .coverage-body h3{font-size:29px}
}
@media (max-width:760px){
  .coverage-grid{grid-template-columns:1fr;grid-template-areas:"featured" "side" "wide1" "wide2"}
  .coverage-card--featured{display:flex}
  .coverage-card--featured .coverage-media,
  .coverage-card:not(.coverage-card--featured) .coverage-media{aspect-ratio:16/10}
  .coverage-card--featured .coverage-body{padding:22px 21px 24px}
  .coverage-body{padding:21px 21px 24px}
  .coverage-card--featured .coverage-body h3{font-size:27px}
  .coverage-body h3{font-size:22px}
  .coverage-more{width:100%;margin-top:20px}
  .coverage-note{text-align:left;margin-top:20px}
}
/* v22 loader + project archive tag refinement: CPU architecture language. */
.loader-circuit.loader-cpu{width:184px;height:184px;position:relative;filter:drop-shadow(0 0 24px rgba(1,247,182,.05))}
.loader-cpu .cpu-grid{position:absolute;inset:9px;border:1px solid rgba(255,255,255,.055);background:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:11px 11px;mask-image:linear-gradient(to bottom,#000 0 74%,transparent 100%);opacity:.55}
.loader-cpu .cpu-package{position:absolute;width:27px;height:27px;border:1px solid rgba(255,255,255,.12);background:rgba(12,16,17,.72);box-shadow:inset 0 0 11px rgba(255,255,255,.02),0 0 12px rgba(1,247,182,.03)}
.loader-cpu .cpu-package::before,.loader-cpu .cpu-package::after{content:"";position:absolute;background:rgba(1,247,182,.35)}
.loader-cpu .cpu-package::before{left:5px;right:5px;top:8px;height:1px;box-shadow:0 5px 0 rgba(255,255,255,.07),0 10px 0 rgba(1,247,182,.16)}
.loader-cpu .cpu-package::after{top:-4px;bottom:-4px;left:6px;width:1px;box-shadow:14px 0 0 rgba(1,247,182,.18)}
.loader-cpu .cpu-package-a{left:18px;top:18px}.loader-cpu .cpu-package-b{right:18px;top:18px}.loader-cpu .cpu-package-c{right:18px;bottom:18px}.loader-cpu .cpu-package-d{left:18px;bottom:18px}
.loader-cpu .cpu-bus{position:absolute;background:rgba(255,255,255,.1);overflow:hidden}
.loader-cpu .cpu-bus::after{content:"";position:absolute;background:linear-gradient(90deg,transparent,var(--mint),transparent);box-shadow:0 0 12px rgba(1,247,182,.5);animation:cpuBusPulse 1.9s cubic-bezier(.6,0,.2,1) infinite}
.loader-cpu .cpu-bus-h1{left:33px;right:33px;top:72px;height:1px}.loader-cpu .cpu-bus-h2{left:33px;right:33px;top:111px;height:1px}
.loader-cpu .cpu-bus-v1{top:33px;bottom:33px;left:72px;width:1px}.loader-cpu .cpu-bus-v2{top:33px;bottom:33px;left:111px;width:1px}
.loader-cpu .cpu-bus-v1::after,.loader-cpu .cpu-bus-v2::after{animation-name:cpuBusPulseY}
.loader-cpu .cpu-bus-h2::after{animation-delay:.45s}.loader-cpu .cpu-bus-v1::after{animation-delay:.22s}.loader-cpu .cpu-bus-v2::after{animation-delay:.67s}
.loader-cpu .cpu-bus-diag{width:47px;height:1px;left:69px;top:91px;transform-origin:0 50%;background:rgba(255,255,255,.07);overflow:visible}
.loader-cpu .cpu-bus-diag::after{content:"";position:absolute;left:0;top:-1px;width:10px;height:3px;background:linear-gradient(90deg,transparent,var(--mint),transparent);box-shadow:0 0 10px rgba(1,247,182,.45);animation:cpuDiagPulse 2.2s linear infinite}
.loader-cpu .cpu-bus-diag-a{transform:rotate(-34deg);animation-delay:.1s}.loader-cpu .cpu-bus-diag-b{transform:rotate(34deg);animation-delay:.42s}.loader-cpu .cpu-bus-diag-c{transform:rotate(146deg);animation-delay:.74s}.loader-cpu .cpu-bus-diag-d{transform:rotate(214deg);animation-delay:1.06s}
.loader-cpu .cpu-core{position:absolute;left:54px;top:54px;width:76px;height:76px;border:1px solid rgba(1,247,182,.56);background:rgba(7,12,13,.94);display:grid;place-items:center;align-content:center;box-shadow:0 0 28px rgba(1,247,182,.08),inset 0 0 26px rgba(1,247,182,.045);isolation:isolate}
.loader-cpu .cpu-core::before{content:"";position:absolute;inset:8px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(90deg,transparent 49%,rgba(1,247,182,.09) 50%,transparent 51%),linear-gradient(0deg,transparent 49%,rgba(255,255,255,.07) 50%,transparent 51%);background-size:15px 15px}
.loader-cpu .cpu-core::after{content:"";position:absolute;inset:-5px;border:1px solid rgba(1,247,182,.12);pointer-events:none}
.loader-cpu .cpu-core b{position:relative;z-index:2;font-size:15px;letter-spacing:.18em;color:#fff;text-indent:.18em}
.loader-cpu .cpu-core small{position:relative;z-index:2;margin-top:4px;color:rgba(255,255,255,.4);font-family:"Fjalla One",sans-serif;font-size:6px;letter-spacing:.24em}
.loader-cpu .cpu-core i{position:absolute;z-index:2;width:3px;height:3px;background:var(--mint);box-shadow:0 0 9px rgba(1,247,182,.62)}
.loader-cpu .cpu-core i:nth-of-type(1){top:13px;left:18px}.loader-cpu .cpu-core i:nth-of-type(2){top:13px;right:18px}.loader-cpu .cpu-core i:nth-of-type(3){bottom:13px;right:18px}.loader-cpu .cpu-core i:nth-of-type(4){bottom:13px;left:18px}
.loader-cpu .cpu-unit{position:absolute;width:10px;height:10px;border:1px solid rgba(1,247,182,.46);background:#0a0e10;box-shadow:0 0 10px rgba(1,247,182,.08)}
.loader-cpu .cpu-unit::after{content:"";position:absolute;inset:3px;background:var(--mint);opacity:.6}
.loader-cpu .cpu-unit-1{left:42px;top:67px}.loader-cpu .cpu-unit-2{left:42px;top:105px}.loader-cpu .cpu-unit-3{right:42px;top:67px}.loader-cpu .cpu-unit-4{right:42px;top:105px}
.loader-cpu .cpu-unit-5{left:67px;top:42px}.loader-cpu .cpu-unit-6{right:67px;top:42px}.loader-cpu .cpu-unit-7{left:67px;bottom:42px}.loader-cpu .cpu-unit-8{right:67px;bottom:42px}
.loader-cpu .cpu-pulse{position:absolute;width:4px;height:4px;background:var(--mint);box-shadow:0 0 11px rgba(1,247,182,.72);opacity:0}
.loader-cpu .cpu-pulse-1{left:34px;top:72px;animation:cpuPacketX 1.8s linear infinite}.loader-cpu .cpu-pulse-2{left:150px;top:111px;animation:cpuPacketXReverse 1.8s .46s linear infinite}.loader-cpu .cpu-pulse-3{left:111px;top:34px;animation:cpuPacketY 1.7s .22s linear infinite}.loader-cpu .cpu-pulse-4{left:72px;top:150px;animation:cpuPacketYReverse 1.7s .7s linear infinite}
.loader-cpu .cpu-pin{position:absolute;width:8px;height:2px;background:rgba(255,255,255,.14)}
.loader-cpu .cpu-pin::after{content:"";position:absolute;right:-3px;top:-1px;width:3px;height:3px;background:rgba(1,247,182,.68);box-shadow:0 0 8px rgba(1,247,182,.36)}
.loader-cpu .cpu-pin-n1{left:63px;top:0}.loader-cpu .cpu-pin-n2{right:63px;top:0}.loader-cpu .cpu-pin-s1{left:63px;bottom:0;transform:rotate(180deg)}.loader-cpu .cpu-pin-s2{right:63px;bottom:0;transform:rotate(180deg)}
.loader-cpu .cpu-pin-e1{right:0;top:63px;transform:rotate(90deg)}.loader-cpu .cpu-pin-e2{right:0;bottom:63px;transform:rotate(90deg)}.loader-cpu .cpu-pin-w1{left:0;top:63px;transform:rotate(-90deg)}.loader-cpu .cpu-pin-w2{left:0;bottom:63px;transform:rotate(-90deg)}
.loader-text{z-index:2}
.project-meta span{position:relative;display:inline-flex;align-items:center;min-height:27px;padding:7px 10px 6px;border:1px solid rgba(11,13,14,.14);background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(244,245,242,.82));box-shadow:0 2px 0 rgba(11,13,14,.04),0 6px 14px rgba(11,13,14,.045);transform:translateY(-1px);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease}
.project-meta span:hover{transform:translateY(-2px);border-color:rgba(11,13,14,.24);box-shadow:0 4px 0 rgba(11,13,14,.045),0 9px 18px rgba(11,13,14,.07)}
.detail-dark .project-meta span{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.035);box-shadow:0 2px 0 rgba(0,0,0,.18),0 7px 16px rgba(0,0,0,.12)}
.detail-dark .project-meta span:hover{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.05)}
.project-meta span.project-meta--important{border-color:rgba(1,247,182,.58);background:linear-gradient(180deg,rgba(1,247,182,.13),rgba(1,247,182,.045));color:#12221f;box-shadow:0 2px 0 rgba(1,247,182,.12),0 0 0 2px rgba(1,247,182,.05),0 9px 20px rgba(1,247,182,.09);transform:translateY(-2px)}
.project-meta span.project-meta--important::before{content:"";width:4px;height:4px;margin-right:7px;background:var(--mint);box-shadow:0 0 8px rgba(1,247,182,.6)}
.detail-dark .project-meta span.project-meta--important{color:#effffc;border-color:rgba(1,247,182,.52);background:rgba(1,247,182,.08);box-shadow:0 2px 0 rgba(1,247,182,.08),0 0 0 2px rgba(1,247,182,.04),0 9px 20px rgba(1,247,182,.08)}
@keyframes cpuBusPulse{0%{transform:translateX(-14px);opacity:0}20%{opacity:1}78%{opacity:.95}100%{transform:translateX(calc(100vw + 20px));opacity:0}}
@keyframes cpuBusPulseY{0%{transform:translateY(-14px);opacity:0}20%{opacity:1}78%{opacity:.95}100%{transform:translateY(calc(100vh + 20px));opacity:0}}
@keyframes cpuDiagPulse{0%{left:0;opacity:0}18%{opacity:1}80%{opacity:1}100%{left:calc(100% - 10px);opacity:0}}
@keyframes cpuPacketX{0%{transform:translateX(0);opacity:0}18%{opacity:1}82%{opacity:1}100%{transform:translateX(58px);opacity:0}}
@keyframes cpuPacketXReverse{0%{transform:translateX(0);opacity:0}18%{opacity:1}82%{opacity:1}100%{transform:translateX(-58px);opacity:0}}
@keyframes cpuPacketY{0%{transform:translateY(0);opacity:0}18%{opacity:1}82%{opacity:1}100%{transform:translateY(58px);opacity:0}}
@keyframes cpuPacketYReverse{0%{transform:translateY(0);opacity:0}18%{opacity:1}82%{opacity:1}100%{transform:translateY(-58px);opacity:0}}
@media (max-width:560px){.loader-circuit.loader-cpu{width:164px;height:164px}.loader-cpu .cpu-package{transform:scale(.92)}.loader-cpu .cpu-core{left:48px;top:48px}.site-loader .loader-text{bottom:32px}}
@media (prefers-reduced-motion:reduce){.loader-cpu .cpu-bus::after,.loader-cpu .cpu-bus-diag::after,.loader-cpu .cpu-pulse{animation:none!important;opacity:.5}.project-meta span,.project-meta span:hover{transition:none!important;transform:none}.project-meta span.project-meta--important{transform:translateY(-1px)}.project-meta span.project-meta--important::before{box-shadow:none}}
.opensoccerbot-project .project-meta.opensoccerbot-meta span{
  color:#e8f1ef;
  border-color:rgba(1,247,182,.22);
  background:linear-gradient(180deg,rgba(12,20,21,.98),rgba(9,14,16,.92));
  box-shadow:0 2px 0 rgba(0,0,0,.20),0 7px 16px rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.035);
}
.opensoccerbot-project .project-meta.opensoccerbot-meta span:hover{
  color:#fff;
  border-color:rgba(1,247,182,.46);
  background:linear-gradient(180deg,rgba(14,27,28,.98),rgba(10,17,18,.96));
  box-shadow:0 3px 0 rgba(0,0,0,.22),0 10px 19px rgba(1,247,182,.08),inset 0 1px 0 rgba(255,255,255,.045);
}

.opensource-reference-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.opensource-reference-card{position:relative;min-height:360px;padding:22px;border:1px solid rgba(11,13,14,.12);background:#f4f5f2;color:#0b0d0f;overflow:hidden;isolation:isolate}
.opensource-reference-card::after{content:"";position:absolute;inset:10px;border:1px solid rgba(11,13,14,.05);pointer-events:none}
.opensource-ref-top{display:flex;justify-content:space-between;gap:14px;align-items:center;position:relative;z-index:2;font-family:"Fjalla One",sans-serif;font-size:10px;letter-spacing:.14em}
.opensource-ref-top small{opacity:.45;font-size:9px}
.opensource-ref-body{position:absolute;left:22px;right:22px;bottom:22px;z-index:2;max-width:470px}.opensource-ref-body h3{margin:0 0 10px;font-size:28px;line-height:1.04}.opensource-ref-body p{margin:0 0 18px;max-width:430px;font-size:12px;line-height:1.8;color:rgba(11,13,14,.64)}.opensource-ref-body a{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border:1px solid rgba(11,13,14,.18);font-family:"Fjalla One",sans-serif;font-size:9px;letter-spacing:.14em;color:#0b0d0f;text-decoration:none}
.opensource-ref-screen{position:absolute;left:22px;right:22px;top:72px;height:150px;padding:18px;border:1px solid rgba(1,247,182,.20);background:#091012;color:#dffef7;font-family:monospace;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;z-index:1}.opensource-ref-screen span{color:rgba(1,247,182,.7);font-size:10px}.opensource-ref-screen strong{font-family:"Poppins",sans-serif;font-size:22px;letter-spacing:.06em}.opensource-ref-screen em{font-style:normal;color:rgba(223,254,247,.42);font-size:10px}
.opensource-ref--terminal{background:#101719;color:#eef9f6;border-color:rgba(1,247,182,.18)}.opensource-ref--terminal::after{border-color:rgba(1,247,182,.06)}.opensource-ref--terminal .opensource-ref-body p{color:rgba(238,249,246,.56)}.opensource-ref--terminal .opensource-ref-body a{color:#eef9f6;border-color:rgba(255,255,255,.14)}
.opensource-ref-blueprint{position:absolute;inset:62px 22px 118px;border:1px solid rgba(11,83,97,.20);background:repeating-linear-gradient(0deg,transparent 0 20px,rgba(19,112,133,.07) 20px 21px),repeating-linear-gradient(90deg,transparent 0 20px,rgba(19,112,133,.07) 20px 21px),#e9f0ef;display:grid;place-items:center;z-index:1}.opensource-ref-blueprint span{position:absolute;font:10px "Fjalla One",sans-serif;letter-spacing:.12em;color:#175361}.opensource-ref-blueprint span:nth-child(1){top:22px;left:28px}.opensource-ref-blueprint span:nth-child(2){top:50%;left:50%;transform:translate(-50%,-50%);font-size:16px}.opensource-ref-blueprint span:nth-child(3){right:26px;bottom:22px}.opensource-ref-blueprint::before,.opensource-ref-blueprint::after{content:"";position:absolute;background:#175361;opacity:.55}.opensource-ref-blueprint::before{width:72%;height:1px}.opensource-ref-blueprint::after{height:72%;width:1px}.opensource-ref-blueprint i{position:absolute;width:8px;height:8px;border:1px solid #175361;background:#dbe7e5}.opensource-ref-blueprint i:nth-of-type(1){left:26%;top:26%}.opensource-ref-blueprint i:nth-of-type(2){right:24%;top:39%}.opensource-ref-blueprint i:nth-of-type(3){left:37%;bottom:21%}
.opensource-ref--editorial{background:#fff;color:#0b0d0f}.opensource-ref-number{position:absolute;right:18px;top:68px;font:180px/.8 "Fjalla One",sans-serif;color:rgba(11,13,14,.055);letter-spacing:-.05em}.opensource-ref--editorial .opensource-ref-body::before{content:"OPEN / DOCUMENTED / REUSABLE";display:block;margin-bottom:12px;font:9px "Fjalla One",sans-serif;letter-spacing:.14em;color:rgba(11,13,14,.42)}
.opensource-ref-signal{position:absolute;left:22px;right:22px;top:68px;height:156px;border:1px solid rgba(11,13,14,.14);background:linear-gradient(135deg,#eef3f2,#dde6e4);overflow:hidden}.opensource-ref-signal::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 22px,rgba(11,13,14,.06) 22px 23px),repeating-linear-gradient(0deg,transparent 0 22px,rgba(11,13,14,.06) 22px 23px)}.opensource-ref-signal b,.opensource-ref-signal strong,.opensource-ref-signal em{position:absolute;z-index:2;font:9px "Fjalla One",sans-serif;letter-spacing:.14em}.opensource-ref-signal b{left:14px;top:13px;color:#5c6b68}.opensource-ref-signal strong{left:50%;top:50%;transform:translate(-50%,-50%);font:26px "Poppins",sans-serif;letter-spacing:.06em;color:#0b0d0f}.opensource-ref-signal em{right:14px;bottom:13px;color:#5c6b68;font-style:normal}.opensource-ref-signal i{position:absolute;z-index:2;width:6px;height:6px;border-radius:50%;background:#1f3a3a;box-shadow:0 0 0 2px rgba(31,58,58,.08)}.opensource-ref-signal i:nth-of-type(1){left:21%;top:28%}.opensource-ref-signal i:nth-of-type(2){right:25%;top:39%}.opensource-ref-signal i:nth-of-type(3){left:36%;bottom:24%}
@media (max-width:760px){.opensource-reference-grid{grid-template-columns:1fr}.opensource-reference-card{min-height:330px}}

/* v25 motion + paint refinement: stable project-card rendering and scroll updates */
.project-card{
  box-shadow:0 10px 28px rgba(10,12,13,.055);
  transition:transform .32s var(--ease),border-color .24s ease,background-color .24s ease;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}
.project-card:hover{
  transform:translate3d(0,-4px,0);
  box-shadow:0 10px 28px rgba(10,12,13,.055);
}
.project-card--revealing{animation:projectCardReveal .46s var(--ease) both;animation-delay:var(--project-delay,0ms)}
.project-card--collapsing{animation:projectCardCollapse .24s ease both}
.scroll-progress span{
  width:100%!important;
  transform:scaleX(0);
  transform-origin:left center;
  will-change:transform;
}
@media (prefers-reduced-motion:reduce){
  .project-card,.project-card:hover{transition:none!important;transform:none!important;box-shadow:0 10px 28px rgba(10,12,13,.055)}
  .scroll-progress span{will-change:auto;transform:none!important}
}



/* v26 publication-list responsiveness.
   Keep the publication selector scrollable at smaller widths so future entries
   remain reachable without pushing the feature description out of view. */
@media (max-width:1100px){
  .publication-list{
    max-height:min(430px,55vh);
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    scrollbar-color:rgba(11,13,14,.28) transparent;
    scrollbar-gutter:stable;
  }
}
@media (max-width:760px){
  .publication-list{
    max-height:min(380px,52vh);
    overflow-y:auto;
    scrollbar-color:rgba(11,13,14,.34) transparent;
  }
  .publication-list::-webkit-scrollbar{width:6px}
  .publication-list::-webkit-scrollbar-track{background:transparent}
  .publication-list::-webkit-scrollbar-thumb{
    background:rgba(11,13,14,.28);
    border-radius:999px;
  }
  .publication-list::-webkit-scrollbar-thumb:hover{
    background:rgba(11,13,14,.42);
  }
}

/* v36 floating back-to-top: intentionally quiet until the page has been scrolled. */
.back-to-top{
  position:fixed;
  right:20px;
  bottom:calc(18px + env(safe-area-inset-bottom, 0px));
  z-index:120;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(255,255,255,.10);
  border-radius:50%;
  background:rgba(9,13,14,.64);
  color:rgba(255,255,255,.50);
  font:16px/1 "Fjalla One",sans-serif;
  text-decoration:none;
  opacity:0;
  transform:translate3d(0,8px,0);
  pointer-events:none;
  visibility:hidden;
  backdrop-filter:blur(12px) saturate(115%);
  -webkit-backdrop-filter:blur(12px) saturate(115%);
  transition:opacity .24s ease,transform .24s ease,color .2s ease,border-color .2s ease,background-color .2s ease,visibility 0s linear .24s;
  box-shadow:0 8px 22px rgba(0,0,0,.10);
}
.back-to-top.is-visible{
  opacity:.38;
  transform:translate3d(0,0,0);
  pointer-events:auto;
  visibility:visible;
  transition-delay:0s;
}
.back-to-top:hover,
.back-to-top:focus-visible{
  opacity:1;
  color:var(--mint);
  border-color:rgba(1,247,182,.46);
  background:rgba(10,17,18,.84);
  transform:translate3d(0,-2px,0);
  outline:none;
}
.back-to-top:focus-visible{
  box-shadow:0 0 0 3px rgba(1,247,182,.10),0 8px 22px rgba(0,0,0,.14);
}
@media (max-width:760px){
  .back-to-top{
    right:14px;
    bottom:calc(16px + env(safe-area-inset-bottom, 0px));
    width:38px;
    height:38px;
    font-size:15px;
  }
}
@media (prefers-reduced-motion:reduce){
  .back-to-top{transition:none!important;transform:none!important}
}


/* v39 project personality layer: MoneyLog and OpenSoccerBot intentionally use different visual languages. */
.project-card--moneylog{background:#101513;color:#f3f7f4;border-color:#101513}
.project-card--moneylog .project-body p{color:rgba(255,255,255,.58)}
.moneylog-visual--dashboard{position:relative;aspect-ratio:16/10;overflow:hidden;padding:14px;background:linear-gradient(145deg,#f1f3ee 0%,#dfe7de 55%,#c8d8cd 100%);color:#10201a}
.moneylog-visual--dashboard::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 0 56%,rgba(255,255,255,.30) 62%,transparent 71%);pointer-events:none}
.moneylog-windowbar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:7px 9px;border:1px solid rgba(16,32,26,.10);background:rgba(255,255,255,.60);font:8px "Fjalla One",sans-serif;letter-spacing:.12em;text-transform:uppercase}
.moneylog-windowbar strong{font-size:10px;letter-spacing:.07em}.moneylog-windowbar span{color:rgba(16,32,26,.48)}
.moneylog-dashboard{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .85fr;gap:8px;margin-top:9px;height:calc(100% - 29px)}
.moneylog-balance{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:5px;padding:12px;border:1px solid rgba(16,32,26,.10);background:rgba(255,255,255,.68);overflow:hidden}
.moneylog-balance::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:#1b7f67}.moneylog-balance small{font:7px "Fjalla One",sans-serif;letter-spacing:.15em;color:rgba(16,32,26,.52)}.moneylog-balance b{font:18px "Poppins",sans-serif;letter-spacing:-.04em}.moneylog-balance i{width:68px;height:18px;border-top:1px solid rgba(27,127,103,.58);border-right:1px solid rgba(27,127,103,.32);transform:skewX(-35deg);align-self:flex-end;margin-top:-8px}
.moneylog-chart{position:relative;border:1px solid rgba(16,32,26,.10);background:rgba(255,255,255,.44);display:flex;align-items:flex-end;gap:5px;padding:12px 11px}.moneylog-chart::before{content:"";position:absolute;inset:12px 11px;background:repeating-linear-gradient(0deg,transparent 0 17px,rgba(16,32,26,.06) 17px 18px)}.moneylog-chart span{position:relative;z-index:2;width:10px;background:rgba(27,127,103,.25)}.moneylog-chart span:nth-child(1){height:26%}.moneylog-chart span:nth-child(2){height:48%}.moneylog-chart span:nth-child(3){height:34%}.moneylog-chart span:nth-child(4){height:72%}.moneylog-chart span:nth-child(5){height:56%}.moneylog-chart span:nth-child(6){height:86%;background:rgba(27,127,103,.72)}.moneylog-chart b{position:absolute;z-index:3;left:24px;top:28px;width:55px;height:19px;border-top:1px solid #1b7f67;transform:skewY(-14deg)}
.moneylog-ledger{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.moneylog-ledger div{display:flex;align-items:center;justify-content:space-between;padding:8px 9px;border:1px solid rgba(16,32,26,.09);background:rgba(255,255,255,.56)}.moneylog-ledger span{font:7px "Fjalla One",sans-serif;letter-spacing:.12em;color:rgba(16,32,26,.52)}.moneylog-ledger b{width:19px;height:4px;background:rgba(16,32,26,.13);box-shadow:0 6px 0 rgba(16,32,26,.08)}
.moneylog-showcase--product{position:relative;aspect-ratio:16/10;min-width:0;overflow:hidden;padding:18px;border:1px solid rgba(16,32,26,.10);background:linear-gradient(145deg,#eef1ec,#dce5de 60%,#cad9cf);color:#10201a;box-shadow:0 24px 70px rgba(9,20,14,.12)}
.moneylog-showcase--product::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 0 60%,rgba(255,255,255,.34) 67%,transparent 75%);pointer-events:none}.moneylog-topline{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding-bottom:11px;border-bottom:1px solid rgba(16,32,26,.10);font:9px "Fjalla One",sans-serif;letter-spacing:.16em}.moneylog-topline small{color:rgba(16,32,26,.48)}
.moneylog-ui{position:relative;z-index:2;display:grid;grid-template-columns:1fr 120px;gap:10px;margin-top:12px;height:calc(100% - 32px)}.moneylog-ui-main{display:grid;grid-template-rows:1fr .9fr;gap:10px}.moneylog-ui-card{padding:18px;border:1px solid rgba(16,32,26,.10);background:rgba(255,255,255,.56)}.moneylog-ui-card--primary{position:relative;overflow:hidden}.moneylog-ui-card--primary::after{content:"";position:absolute;right:-10px;bottom:-30px;width:150px;height:150px;border:20px solid rgba(27,127,103,.08);border-radius:50%}.moneylog-ui-card small{display:block;font:8px "Fjalla One",sans-serif;letter-spacing:.15em;color:rgba(16,32,26,.46)}.moneylog-ui-card b{display:block;margin-top:12px;font:28px "Poppins",sans-serif;letter-spacing:-.04em}.moneylog-ui-card span{display:block;margin-top:4px;font-size:10px;color:rgba(16,32,26,.5)}.moneylog-ui-chart{position:relative;display:flex;align-items:flex-end;gap:8px;padding:14px;border:1px solid rgba(16,32,26,.10);background:rgba(255,255,255,.42)}.moneylog-ui-chart::before{content:"";position:absolute;inset:14px;background:repeating-linear-gradient(0deg,transparent 0 24px,rgba(16,32,26,.06) 24px 25px)}.moneylog-ui-chart i{position:relative;z-index:2;width:13px;background:rgba(27,127,103,.22)}.moneylog-ui-chart i:nth-child(1){height:24%}.moneylog-ui-chart i:nth-child(2){height:55%}.moneylog-ui-chart i:nth-child(3){height:42%}.moneylog-ui-chart i:nth-child(4){height:68%}.moneylog-ui-chart i:nth-child(5){height:52%}.moneylog-ui-chart i:nth-child(6){height:86%;background:#1b7f67}.moneylog-ui-chart b{position:absolute;right:12px;top:24px;width:85px;height:32px;border-top:1px solid #1b7f67;transform:skewY(-14deg)}.moneylog-ui-rail{display:grid;grid-template-rows:repeat(4,1fr);gap:8px}.moneylog-ui-rail span{display:flex;align-items:flex-end;padding:12px;border:1px solid rgba(16,32,26,.10);background:rgba(255,255,255,.46);font:8px "Fjalla One",sans-serif;letter-spacing:.13em;color:rgba(16,32,26,.50)}
.project-card--opensoccer{background:#0b1116;color:#fff;border-color:#0b1116}.project-card--opensoccer .project-body p{color:rgba(255,255,255,.58)}
.opensoccer-card-visual{position:relative;aspect-ratio:16/10;overflow:hidden;padding:18px 20px;background:radial-gradient(circle at 72% 26%,rgba(1,247,182,.11),transparent 22%),linear-gradient(145deg,#091016,#101b23 58%,#102d31);color:#fff}.opensoccer-card-visual::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.7%,rgba(255,255,255,.055) 50%,transparent 50.3%),linear-gradient(0deg,transparent 49.7%,rgba(255,255,255,.04) 50%,transparent 50.3%);pointer-events:none}.opensoccer-card-kicker{position:relative;z-index:3;font:8px "Fjalla One",sans-serif;letter-spacing:.15em;color:rgba(1,247,182,.68)}.opensoccer-field{position:absolute;left:16%;right:16%;top:19%;bottom:18%;border:1px solid rgba(255,255,255,.16);border-radius:2px}.opensoccer-field::before{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1px solid rgba(255,255,255,.12)}.opensoccer-field::after{content:"";position:absolute;left:50%;top:50%;width:36px;height:36px;border:1px solid rgba(255,255,255,.12);border-radius:50%;transform:translate(-50%,-50%)}.field-half{position:absolute;left:0;right:0;top:50%;border-top:1px solid rgba(255,255,255,.08)}.field-center{display:none}.field-box{position:absolute;top:28%;bottom:28%;width:14%;border:1px solid rgba(255,255,255,.10)}.field-box-a{left:0;border-left:0}.field-box-b{right:0;border-right:0}.robot-node{position:absolute;width:13px;height:13px;border:2px solid rgba(1,247,182,.75);border-radius:50%;background:#0c171c;box-shadow:0 0 0 4px rgba(1,247,182,.06),0 0 15px rgba(1,247,182,.16)}.robot-node-a{left:21%;top:34%}.robot-node-b{right:25%;top:48%}.robot-node-c{left:42%;bottom:18%}.ball-node{position:absolute;left:57%;top:38%;color:#fff;font-size:12px;font-style:normal;text-shadow:0 0 8px rgba(255,255,255,.4)}.route{position:absolute;height:1px;background:linear-gradient(90deg,rgba(1,247,182,.7),transparent);transform-origin:left center}.route-a{left:24%;top:39%;width:33%;transform:rotate(8deg)}.route-b{left:42%;top:57%;width:20%;transform:rotate(-22deg)}.route-c{left:28%;top:47%;width:35%;transform:rotate(1deg);opacity:.35}.opensoccer-mode-row{position:absolute;left:20px;bottom:18px;display:flex;gap:5px;z-index:3}.opensoccer-mode-row span{padding:5px 7px;border:1px solid rgba(255,255,255,.12);background:rgba(5,10,14,.45);font:7px "Fjalla One",sans-serif;letter-spacing:.13em}.opensoccer-card-visual>strong{position:absolute;right:20px;bottom:17px;z-index:3;font:700 28px/.95 "Poppins",sans-serif;letter-spacing:-.045em}.opensoccerbot-project .project-meta span{border-color:rgba(255,255,255,.16)}.opensoccerbot-intro-note--tactical{padding:16px;border-left:1px solid rgba(255,255,255,.16);background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(1,247,182,.03))}.opensoccer-specs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:14px}.opensoccer-specs span{display:flex;flex-direction:column;gap:4px;padding:10px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.018)}.opensoccer-specs b{font:15px "Poppins",sans-serif}.opensoccer-specs small{font-size:8px;letter-spacing:.10em;color:rgba(255,255,255,.45)}.opensoccer-tactical-mini{position:relative;aspect-ratio:16/7;margin-top:12px;border:1px solid rgba(255,255,255,.08);overflow:hidden;background:linear-gradient(90deg,transparent 49.6%,rgba(255,255,255,.06) 50%,transparent 50%),linear-gradient(0deg,transparent 49.6%,rgba(255,255,255,.05) 50%,transparent 50%)}.opensoccer-tactical-mini::before{content:"";position:absolute;inset:12px;border:1px solid rgba(255,255,255,.09)}.opensoccer-tactical-mini i{position:absolute;width:7px;height:7px;border:1px solid var(--mint);border-radius:50%}.opensoccer-tactical-mini i:nth-child(1){left:24%;top:34%}.opensoccer-tactical-mini i:nth-child(2){right:24%;top:58%}.opensoccer-tactical-mini b{position:absolute;width:25%;height:1px;left:26%;top:37%;background:var(--mint);transform:rotate(12deg);transform-origin:left center}.opensoccer-tactical-mini em{position:absolute;width:18%;height:1px;left:47%;top:51%;background:rgba(255,255,255,.55);transform:rotate(-22deg);transform-origin:left center}

/* v39 future-reference templates: intentionally inactive until copied from the commented HTML blocks. */
.opensource-card-visual--hud{position:relative;aspect-ratio:16/10;overflow:hidden;background:#0b1113}.opensource-card-visual--hud img{width:100%;height:100%;object-fit:cover;display:block;filter:contrast(1.05) saturate(.85)}.opensource-card-visual--hud::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(4,9,12,.10),rgba(4,9,12,.55))}.hud-corner{position:absolute;z-index:2;font:8px "Fjalla One",sans-serif;letter-spacing:.14em;color:#fff}.hud-corner--tl{left:17px;top:15px}.hud-corner--br{right:17px;bottom:15px;color:var(--mint)}.hud-reticle{position:absolute;z-index:2;left:50%;top:50%;width:60px;height:60px;border:1px solid rgba(1,247,182,.72);border-radius:50%;transform:translate(-50%,-50%)}.hud-reticle::before,.hud-reticle::after{content:"";position:absolute;background:var(--mint)}.hud-reticle::before{left:-10px;right:-10px;top:50%;height:1px}.hud-reticle::after{top:-10px;bottom:-10px;left:50%;width:1px}
.opensource-card-visual--poster{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:20px;background:linear-gradient(135deg,#111416 0%,#1d2824 52%,#b8c5bd 52%,#dfe6e0 100%);color:#fff;overflow:hidden}.opensource-card-visual--poster::before{content:"";position:absolute;right:-24px;top:-38px;width:150px;height:150px;border:24px solid rgba(1,247,182,.14);border-radius:50%}.opensource-card-visual--poster span{font:8px "Fjalla One",sans-serif;letter-spacing:.16em;color:rgba(255,255,255,.5)}.opensource-card-visual--poster strong{position:relative;z-index:2;font:700 31px/.86 "Poppins",sans-serif;letter-spacing:-.04em}.opensource-card-visual--poster small{color:#20352e;font:8px "Fjalla One",sans-serif;letter-spacing:.15em;text-transform:uppercase}
.opensource-card-visual--terminal-wave{position:relative;aspect-ratio:16/10;padding:14px 16px;background:#070c0f;color:#dffef7;font:9px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.terminal-bar{display:flex;align-items:center;gap:4px;color:rgba(223,254,247,.40)}.terminal-bar span{width:6px;height:6px;border-radius:50%;background:rgba(223,254,247,.20)}.terminal-bar b{margin-left:5px;font:8px "Fjalla One",sans-serif;letter-spacing:.13em}.opensource-card-visual--terminal-wave p{margin:8px 0 0;color:rgba(223,254,247,.70)}.opensource-card-visual--terminal-wave .terminal-ok{color:var(--mint)}.opensource-card-visual--terminal-wave i{position:absolute;left:16px;right:16px;bottom:18px;height:34px;border-bottom:1px solid rgba(1,247,182,.30);background:linear-gradient(168deg,transparent 0 40%,rgba(1,247,182,.08) 41% 44%,transparent 45%),linear-gradient(180deg,transparent 0 68%,rgba(255,255,255,.06) 68% 69%,transparent 69%);clip-path:polygon(0 70%,14% 62%,29% 71%,41% 40%,58% 59%,72% 33%,86% 49%,100% 16%,100% 100%,0 100%)}
.opensource-card-visual--schematic{position:relative;aspect-ratio:16/10;overflow:hidden;background:#dfe8e4}.opensource-card-visual--schematic img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(.4) contrast(.85) brightness(1.1)}.opensource-card-visual--schematic::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 23px,rgba(13,75,70,.13) 23px 24px),repeating-linear-gradient(90deg,transparent 0 23px,rgba(13,75,70,.13) 23px 24px);mix-blend-mode:multiply}.schematic-overlay{position:absolute;z-index:2;inset:0;font:8px "Fjalla One",sans-serif;letter-spacing:.13em;color:#124d47}.schematic-overlay span{position:absolute}.schematic-overlay span:nth-child(1){left:13px;top:13px}.schematic-overlay span:nth-child(2){left:50%;top:50%;transform:translate(-50%,-50%);padding:8px 10px;border:1px solid rgba(18,77,71,.45);background:rgba(232,240,237,.72)}.schematic-overlay span:nth-child(3){right:13px;bottom:13px}.schematic-overlay i{position:absolute;width:8px;height:8px;border:1px solid #124d47;background:#dfe8e4}.schematic-overlay i:nth-child(4){left:26%;top:24%}.schematic-overlay i:nth-child(5){right:28%;top:61%}.schematic-overlay i:nth-child(6){left:42%;bottom:20%}
.opensource-card-visual--fieldnote{position:relative;aspect-ratio:16/10;padding:13px;background:#a6b1a4;overflow:hidden}.opensource-card-visual--fieldnote::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.10),transparent 50%),repeating-linear-gradient(0deg,rgba(8,22,14,.05) 0 1px,transparent 1px 20px)}.fieldnote-paper{position:relative;z-index:2;width:72%;height:86%;margin:0 auto;padding:15px;background:#f1efe6;box-shadow:8px 8px 0 rgba(8,22,14,.12);transform:rotate(-2deg);color:#1b2520}.fieldnote-paper small{font:8px "Fjalla One",sans-serif;letter-spacing:.14em;color:#6d766f}.fieldnote-paper strong{display:block;margin-top:20px;font:700 22px/1 "Poppins",sans-serif;letter-spacing:-.03em}.fieldnote-paper p{margin:8px 0;font-size:9px;color:#6b736d}.fieldnote-paper img{display:block;width:100%;height:62px;object-fit:cover;margin-top:12px;filter:grayscale(.75)}
.opensource-card-visual--glass{position:relative;aspect-ratio:16/10;overflow:hidden;background:#0b1113}.opensource-card-visual--glass img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(.8) saturate(.5) brightness(.65)}.opensource-card-visual--glass::after{content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(1,247,182,.08),transparent 46%,rgba(255,255,255,.08))}.glass-panel{position:absolute;z-index:2;left:18px;bottom:17px;width:64%;padding:13px 14px;border:1px solid rgba(255,255,255,.18);background:rgba(10,15,17,.38);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff}.glass-panel span,.glass-panel small{display:block;font:8px "Fjalla One",sans-serif;letter-spacing:.14em;color:rgba(255,255,255,.50)}.glass-panel strong{display:block;margin:6px 0 4px;font:700 19px "Poppins",sans-serif;letter-spacing:-.03em}.glass-chip{position:absolute;z-index:3;right:15px;padding:5px 7px;border:1px solid rgba(1,247,182,.35);background:rgba(5,12,14,.50);backdrop-filter:blur(7px);font:7px "Fjalla One",sans-serif;letter-spacing:.13em;color:var(--mint)}.glass-chip-a{top:16px}.glass-chip-b{bottom:15px}
.future-work-visual--hud,.future-work-visual--research,.future-work-visual--blueprint-image{position:relative;min-height:320px;overflow:hidden;border:1px solid rgba(11,13,14,.12)}.future-work-visual--hud{background:#0b1113;color:#fff}.future-work-visual--hud img,.future-work-visual--research img,.future-work-visual--blueprint-image img{display:block;width:100%;height:100%;object-fit:cover}.future-work-visual--hud::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(4,9,12,.10),rgba(4,9,12,.60))}.future-work-visual--hud span,.future-work-visual--hud b{position:absolute;z-index:2;font:9px "Fjalla One",sans-serif;letter-spacing:.14em}.future-work-visual--hud span{left:18px;top:18px}.future-work-visual--hud b{right:18px;bottom:18px;color:var(--mint)}.future-work-visual--hud i{position:absolute;z-index:2;left:50%;top:50%;width:74px;height:74px;border:1px solid rgba(1,247,182,.65);border-radius:50%;transform:translate(-50%,-50%)}.future-work-visual--research{background:#f0efe8}.future-work-visual--research span,.future-work-visual--research b{position:absolute;z-index:2;font:9px "Fjalla One",sans-serif;letter-spacing:.14em;color:#34433c}.future-work-visual--research span{left:18px;top:18px}.future-work-visual--research b{right:18px;bottom:18px}.future-work-visual--research::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(18,35,28,.08))}.future-work-console{height:100%;min-height:320px;padding:24px;background:linear-gradient(150deg,#091012,#111b1d);display:grid;grid-template-columns:repeat(3,1fr);gap:1px;color:#e6f0ec}.future-work-console>div{display:flex;flex-direction:column;justify-content:flex-end;gap:9px;padding:18px;border:1px solid rgba(1,247,182,.08);background:rgba(255,255,255,.025)}.future-work-console small{font:8px "Fjalla One",sans-serif;letter-spacing:.13em;color:rgba(1,247,182,.56)}.future-work-console strong{font:22px "Poppins",sans-serif}.future-work-console>span{grid-column:1/-1;height:1px;background:linear-gradient(90deg,var(--mint),transparent);align-self:end}.future-work-console>span:last-child{margin-top:-26px;opacity:.3}.future-work-visual--blueprint-image{background:#e4ece7}.future-work-visual--blueprint-image::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 24px,rgba(14,68,62,.10) 24px 25px),repeating-linear-gradient(90deg,transparent 0 24px,rgba(14,68,62,.10) 24px 25px);mix-blend-mode:multiply}.future-work-visual--blueprint-image>span{position:absolute;z-index:2;font:9px "Fjalla One",sans-serif;color:#154d47}.future-work-visual--blueprint-image>span:nth-of-type(1){left:15px;top:15px}.future-work-visual--blueprint-image>span:nth-of-type(2){right:15px;bottom:15px}.future-work-visual--blueprint-image i{position:absolute;z-index:2;width:9px;height:9px;border:1px solid #154d47;background:#e4ece7}.future-work-visual--blueprint-image i:nth-of-type(1){left:22%;top:25%}.future-work-visual--blueprint-image i:nth-of-type(2){right:25%;top:43%}.future-work-visual--blueprint-image i:nth-of-type(3){left:42%;bottom:20%}.future-work-strip{height:100%;min-height:320px;display:grid;grid-template-columns:1.25fr .9fr .9fr;gap:6px;background:#0b1113}.future-work-strip img{width:100%;height:100%;object-fit:cover;min-height:0;filter:saturate(.8);display:block}.future-work-open{height:100%;min-height:320px;padding:18px;background:#081013;color:#dffef7;border:1px solid rgba(1,247,182,.10);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.future-work-open-top{display:flex;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08);font:8px "Fjalla One",sans-serif;letter-spacing:.13em}.future-work-open-top b{color:var(--mint)}.future-work-open pre{margin:24px 0 20px;font:11px/1.9 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:rgba(223,254,247,.64)}.future-work-open a{display:inline-flex;padding:9px 11px;border:1px solid rgba(1,247,182,.32);color:var(--mint);font:8px "Fjalla One",sans-serif;letter-spacing:.13em}
@media (max-width:760px){.moneylog-dashboard{grid-template-columns:1fr 1fr}.moneylog-balance b{font-size:14px}.moneylog-ledger{gap:4px}.moneylog-ledger div{padding:7px}.moneylog-windowbar span{display:none}.moneylog-showcase--product{aspect-ratio:4/3}.moneylog-ui{grid-template-columns:1fr 86px}.moneylog-ui-card b{font-size:22px}.opensoccer-field{left:10%;right:10%}.opensoccer-card-visual>strong{font-size:24px}.opensource-card-visual--glass .glass-panel{width:72%}.future-work-console{grid-template-columns:1fr 1fr;min-height:260px}.future-work-console>div:last-of-type{grid-column:1/-1}.future-work-strip{grid-template-columns:1.2fr .9fr .9fr;min-height:260px}.future-work-open{min-height:260px}}



/* v40 project/work expansion: additional future template library + MoneyLog live demo */
.moneylog-media-stack{display:flex;flex-direction:column;gap:18px}
.moneylog-actions{gap:10px;align-items:stretch}
.moneylog-actions a{min-height:46px;padding:0 15px;justify-content:space-between}
.moneylog-actions .moneylog-live-button{background:#0d211a;border-color:#0d211a;color:#f4fff9;box-shadow:0 10px 28px rgba(7,30,20,.12)}
.moneylog-actions .moneylog-live-button:hover{background:#143c2f;border-color:#143c2f;color:#fff;box-shadow:0 14px 34px rgba(7,30,20,.18)}
.moneylog-actions .moneylog-source-button{background:#fff;border-color:#19352c;color:#10201a;box-shadow:0 7px 18px rgba(12,26,19,.07)}
.moneylog-actions .moneylog-source-button:hover{background:#eef8f3;border-color:#1b7f67;color:#123126;box-shadow:0 12px 28px rgba(12,26,19,.12)}
.moneylog-demo-shell{overflow:hidden;border:1px solid rgba(16,32,26,.12);background:#0e1412;box-shadow:0 20px 50px rgba(9,20,14,.10)}
.moneylog-demo-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;background:#121a17;color:#f1f6f3;border-bottom:1px solid rgba(255,255,255,.08)}
.moneylog-demo-head div{display:flex;align-items:center;gap:12px}.moneylog-demo-head span{font:8px "Fjalla One",sans-serif;letter-spacing:.15em;color:#6be4bf}.moneylog-demo-head strong{font:10px "Fjalla One",sans-serif;letter-spacing:.14em}.moneylog-demo-head a{font:8px "Fjalla One",sans-serif;letter-spacing:.13em;color:#f1f6f3;text-decoration:none;border:1px solid rgba(1,247,182,.30);padding:7px 9px}.moneylog-demo-head a:hover{color:var(--mint);border-color:var(--mint)}
.moneylog-demo-frame{position:relative;aspect-ratio:16/10;background:#fff;overflow:hidden}.moneylog-demo-frame iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.moneylog-project .detail-copy{position:sticky}
/* FUTURE PROJECT CARD TEMPLATES 07-18 */
.opensource-card-visual--die,.opensource-card-visual--radar,.opensource-card-visual--control,.opensource-card-visual--archive-poster,.opensource-card-visual--pcb,.opensource-card-visual--orbit,.opensource-card-visual--telemetry,.opensource-card-visual--split,.opensource-card-visual--architect,.opensource-card-visual--mono,.opensource-card-visual--matrix,.opensource-card-visual--pulse{position:relative;aspect-ratio:16/10;overflow:hidden}
.opensource-card-visual--die{display:grid;place-items:center;background:radial-gradient(circle at 50% 50%,#17332d 0 15%,#0c1715 16% 43%,#07100f 44% 100%);color:#dffff4}.opensource-card-visual--die::before{content:"";position:absolute;inset:14px;background:repeating-linear-gradient(90deg,transparent 0 14px,rgba(1,247,182,.10) 14px 15px),repeating-linear-gradient(0deg,transparent 0 14px,rgba(1,247,182,.10) 14px 15px);opacity:.65}.opensource-card-visual--die i{position:absolute;width:9px;height:9px;border:1px solid rgba(1,247,182,.55);background:#08110f}.opensource-card-visual--die i:nth-of-type(1){left:22px;top:22px}.opensource-card-visual--die i:nth-of-type(2){right:22px;top:22px}.opensource-card-visual--die i:nth-of-type(3){left:22px;bottom:22px}.opensource-card-visual--die i:nth-of-type(4){right:22px;bottom:22px}.die-core{position:relative;z-index:2;width:42%;height:52%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(1,247,182,.48);background:linear-gradient(145deg,#142b26,#09110f);box-shadow:0 0 0 7px rgba(1,247,182,.05),0 18px 40px rgba(0,0,0,.35)}.die-core span{font:7px "Fjalla One",sans-serif;letter-spacing:.18em;color:rgba(223,254,247,.45)}.die-core strong{margin-top:8px;font:700 26px "Poppins",sans-serif;letter-spacing:-.05em}.opensource-card-visual--die>b{position:absolute;right:15px;bottom:14px;font:7px "Fjalla One",sans-serif;letter-spacing:.16em;color:rgba(223,254,247,.42)}
.opensource-card-visual--radar{background:#06110f;color:#e5fff8}.radar-ring{position:absolute;border:1px solid rgba(1,247,182,.18);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.radar-ring.r1{width:54%;aspect-ratio:1}.radar-ring.r2{width:30%;aspect-ratio:1}.radar-sweep{position:absolute;left:50%;top:50%;width:40%;height:1px;background:linear-gradient(90deg,var(--mint),transparent);transform-origin:left center;animation:futureRadar 5s linear infinite}.radar-sweep::after{content:"";position:absolute;right:0;top:-2px;width:5px;height:5px;border-radius:50%;background:var(--mint);box-shadow:0 0 12px rgba(1,247,182,.65)}.radar-dot{position:absolute;width:6px;height:6px;border-radius:50%;background:#dffef7;box-shadow:0 0 10px rgba(223,254,247,.5)}.radar-dot.d1{left:64%;top:32%}.radar-dot.d2{left:34%;top:59%}.radar-dot.d3{left:73%;top:67%}.opensource-card-visual--radar>span{position:absolute;left:14px;top:13px;font:7px "Fjalla One",sans-serif;letter-spacing:.16em;color:rgba(223,254,247,.42)}
.opensource-card-visual--control{display:grid;grid-template-columns:1.1fr .9fr;gap:8px;padding:12px;background:linear-gradient(145deg,#111815,#1a251f);color:#f0f9f5}.opensource-card-visual--control>div:first-child{display:flex;flex-direction:column;justify-content:center;padding:15px;border:1px solid rgba(1,247,182,.12);background:rgba(255,255,255,.03)}.opensource-card-visual--control small{font:7px "Fjalla One",sans-serif;letter-spacing:.16em;color:rgba(223,254,247,.38)}.opensource-card-visual--control strong{margin:7px 0;font:700 22px "Poppins",sans-serif;letter-spacing:-.04em;color:var(--mint)}.opensource-card-visual--control span{font:7px "Fjalla One",sans-serif;letter-spacing:.13em;color:rgba(223,254,247,.46)}.control-bars{display:flex!important;align-items:flex-end;gap:5px;padding:10px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025)}.control-bars i{flex:1;background:linear-gradient(180deg,var(--mint),rgba(1,247,182,.18));height:var(--h);opacity:.78}.control-bars i:nth-child(1){--h:31%}.control-bars i:nth-child(2){--h:62%}.control-bars i:nth-child(3){--h:48%}.control-bars i:nth-child(4){--h:79%}.control-bars i:nth-child(5){--h:56%}.opensource-card-visual--control>b{position:absolute;right:12px;top:10px;font:7px "Fjalla One",sans-serif;letter-spacing:.15em;color:rgba(223,254,247,.35)}
.opensource-card-visual--archive-poster{background:#0b0f11}.opensource-card-visual--archive-poster img{width:100%;height:100%;object-fit:cover;filter:grayscale(.72) contrast(1.04) brightness(.55);transform:scale(1.06)}.opensource-card-visual--archive-poster::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,8,9,.68),rgba(4,8,9,.12) 65%,rgba(4,8,9,.62))}.opensource-card-visual--archive-poster span,.opensource-card-visual--archive-poster strong,.opensource-card-visual--archive-poster>b{position:absolute;z-index:2}.opensource-card-visual--archive-poster span{left:15px;top:13px;font:7px "Fjalla One",sans-serif;letter-spacing:.14em;color:rgba(255,255,255,.5)}.opensource-card-visual--archive-poster strong{left:15px;bottom:24px;font:700 29px/.87 "Poppins",sans-serif;letter-spacing:-.04em;color:#fff}.opensource-card-visual--archive-poster>b{right:15px;bottom:15px;font:7px "Fjalla One",sans-serif;letter-spacing:.14em;color:var(--mint)}
.opensource-card-visual--pcb{background:#d8e6df}.opensource-card-visual--pcb img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.66) brightness(1.05)}.pcb-traces{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 33px,rgba(1,247,182,.18) 33px 34px),repeating-linear-gradient(0deg,transparent 0 25px,rgba(0,80,70,.12) 25px 26px);mix-blend-mode:multiply}.opensource-card-visual--pcb span,.opensource-card-visual--pcb>b{position:absolute;font:7px "Fjalla One",sans-serif;letter-spacing:.12em;color:#0f4f43;background:rgba(235,246,240,.78);padding:4px 5px;border:1px solid rgba(15,79,67,.20)}.opensource-card-visual--pcb span:nth-of-type(1){left:10px;top:10px}.opensource-card-visual--pcb span:nth-of-type(2){right:10px;top:45%}.opensource-card-visual--pcb span:nth-of-type(3){left:43%;bottom:10px}.opensource-card-visual--pcb>b{right:10px;bottom:10px}
.opensource-card-visual--orbit{display:grid;place-items:center;background:radial-gradient(circle at 50% 50%,#152a27 0 11%,transparent 12%),radial-gradient(circle at 50% 50%,#0c1716 0 35%,#07100f 36% 100%);color:#e7fff9}.opensource-card-visual--orbit::before{content:"";position:absolute;width:64%;height:40%;border:1px solid rgba(1,247,182,.25);border-radius:50%;transform:rotate(-20deg)}.opensource-card-visual--orbit::after{content:"";position:absolute;width:42%;height:26%;border:1px dashed rgba(255,255,255,.12);border-radius:50%;transform:rotate(24deg)}.orbit-core{position:relative;z-index:3;width:54px;height:54px;border:1px solid rgba(1,247,182,.56);display:grid;place-items:center;background:#0b1513;box-shadow:0 0 20px rgba(1,247,182,.08)}.orbit-core strong{font:11px "Fjalla One",sans-serif;letter-spacing:.12em;color:var(--mint)}.opensource-card-visual--orbit i{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 8px rgba(1,247,182,.45)}.opensource-card-visual--orbit i:nth-of-type(1){left:24%;top:32%}.opensource-card-visual--orbit i:nth-of-type(2){right:20%;top:46%}.opensource-card-visual--orbit i:nth-of-type(3){left:35%;bottom:22%}.opensource-card-visual--orbit span,.opensource-card-visual--orbit>b{position:absolute;z-index:4;font:7px "Fjalla One",sans-serif;letter-spacing:.15em}.opensource-card-visual--orbit span{left:13px;top:12px;color:rgba(231,255,249,.4)}.opensource-card-visual--orbit>b{right:13px;bottom:12px;color:var(--mint)}
.opensource-card-visual--telemetry{background:#081112;color:#dffef7}.opensource-card-visual--telemetry>span{position:absolute;left:14px;top:12px;font:7px "Fjalla One",sans-serif;letter-spacing:.15em;color:rgba(223,254,247,.42);z-index:2}.opensource-card-visual--telemetry svg{position:absolute;inset:18% 6% 12%;width:88%;height:70%;z-index:2;overflow:visible}.opensource-card-visual--telemetry polyline{fill:none;stroke:var(--mint);stroke-width:2}.telemetry-grid{position:absolute;inset:20% 7% 15%;background:repeating-linear-gradient(0deg,transparent 0 18px,rgba(255,255,255,.05) 18px 19px),repeating-linear-gradient(90deg,transparent 0 30px,rgba(255,255,255,.04) 30px 31px)}.opensource-card-visual--telemetry>b{position:absolute;right:14px;bottom:12px;font:700 18px "Poppins",sans-serif;color:#fff}
.opensource-card-visual--split{display:grid;grid-template-columns:1fr 1fr;background:#0b1113}.split-terminal{padding:14px;border-right:1px solid rgba(255,255,255,.09);font:9px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#dffef7}.split-terminal small{display:block;font:7px "Fjalla One",sans-serif;letter-spacing:.13em;color:rgba(223,254,247,.42);margin-bottom:18px}.split-terminal span{display:block;margin:8px 0;color:rgba(223,254,247,.68)}.split-terminal .ok{color:var(--mint)}.opensource-card-visual--split img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.55) brightness(.68)}
.opensource-card-visual--architect{background:#0a0f11;color:#fff}.opensource-card-visual--architect>img{width:100%;height:100%;object-fit:cover;filter:brightness(.56) saturate(.55)}.opensource-card-visual--architect::after{content:"";position:absolute;inset:0;background:linear-gradient(125deg,rgba(1,247,182,.08),transparent 48%,rgba(255,255,255,.08))}.architect-panel{position:absolute;z-index:2;left:14px;bottom:14px;width:72%;padding:12px;border:1px solid rgba(255,255,255,.18);background:rgba(8,13,14,.45);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}.architect-panel small{display:block;font:7px "Fjalla One",sans-serif;letter-spacing:.15em;color:rgba(255,255,255,.44)}.architect-panel strong{display:block;margin:6px 0 4px;font:700 18px "Poppins",sans-serif}.architect-panel span{font:7px "Fjalla One",sans-serif;letter-spacing:.10em;color:var(--mint)}.opensource-card-visual--architect>b{position:absolute;z-index:3;right:14px;top:13px;font:7px "Fjalla One",sans-serif;letter-spacing:.15em;color:var(--mint)}
.opensource-card-visual--mono{background:#0b0d0f}.opensource-card-visual--mono img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.12) brightness(.66)}.opensource-card-visual--mono>div{position:absolute;left:0;top:0;bottom:0;width:7px;background:var(--mint);z-index:2}.opensource-card-visual--mono span,.opensource-card-visual--mono strong{position:absolute;z-index:3;left:15px;color:#fff}.opensource-card-visual--mono span{top:14px;font:7px "Fjalla One",sans-serif;letter-spacing:.15em;color:rgba(255,255,255,.44)}.opensource-card-visual--mono strong{bottom:18px;font:700 24px/.88 "Poppins",sans-serif;letter-spacing:-.04em}
.opensource-card-visual--matrix{display:grid;place-items:center;background:#091012;color:#dcfff6}.opensource-card-visual--matrix>div{width:80%;height:64%;display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:5px;border:1px solid rgba(1,247,182,.15);background:rgba(255,255,255,.018)}.opensource-card-visual--matrix span{display:grid;place-items:center;border:1px solid rgba(255,255,255,.07);font:9px "Fjalla One",sans-serif;color:rgba(223,254,247,.36);transition:background .2s ease,color .2s ease}.opensource-card-visual--matrix span:nth-child(3n){background:rgba(1,247,182,.10);color:var(--mint)}.opensource-card-visual--matrix>b{position:absolute;left:14px;top:12px;font:7px "Fjalla One",sans-serif;letter-spacing:.15em;color:rgba(223,254,247,.40)}
.opensource-card-visual--pulse{background:#0a1012;color:#eafff9}.opensource-card-visual--pulse>span{position:absolute;left:14px;top:13px;font:7px "Fjalla One",sans-serif;letter-spacing:.15em;color:rgba(223,254,247,.42)}.pulse-wave{position:absolute;left:9%;right:9%;top:52%;height:1px;background:var(--mint);box-shadow:0 0 15px rgba(1,247,182,.35)}.pulse-wave::before{content:"";position:absolute;left:0;right:0;top:-34px;height:68px;background:linear-gradient(90deg,transparent 0 3%,rgba(1,247,182,.05) 3% 4%,transparent 4% 22%,rgba(1,247,182,.07) 22% 23%,transparent 23% 49%,rgba(1,247,182,.06) 49% 50%,transparent 50% 76%,rgba(1,247,182,.07) 76% 77%,transparent 77%);clip-path:polygon(0 55%,8% 55%,11% 22%,14% 78%,22% 78%,25% 37%,28% 66%,38% 66%,40% 49%,43% 64%,52% 64%,55% 16%,58% 84%,68% 84%,71% 42%,74% 66%,84% 66%,87% 30%,90% 74%,100% 74%,100% 78%,0 78%)}.pulse-node{position:absolute;width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 12px rgba(255,255,255,.55);top:calc(52% - 3px)}.pn1{left:28%}.pn2{left:73%}.opensource-card-visual--pulse>strong{position:absolute;right:14px;bottom:12px;font:8px "Fjalla One",sans-serif;letter-spacing:.15em;color:var(--mint)}
@keyframes futureRadar{to{transform:rotate(360deg)}}

/* FUTURE WORK TEMPLATES 07-18 */
.future-command{position:relative;min-height:320px;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(1,247,182,.12),transparent 34%),#07100f;border:1px solid rgba(1,247,182,.14);color:#e8fff9}.future-command-scan{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 27px,rgba(1,247,182,.06) 27px 28px),repeating-linear-gradient(90deg,transparent 0 38px,rgba(1,247,182,.05) 38px 39px)}.future-command-tag{position:absolute;left:18px;top:16px;font:8px "Fjalla One",sans-serif;letter-spacing:.15em;color:rgba(223,254,247,.45)}.future-command strong{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:700 30px "Poppins",sans-serif;letter-spacing:.10em;color:var(--mint)}.future-command i{position:absolute;left:50%;top:50%;width:100px;height:100px;border:1px solid rgba(1,247,182,.42);border-radius:50%;transform:translate(-50%,-50%)}.future-command b,.future-command em{position:absolute;font:8px "Fjalla One",sans-serif;letter-spacing:.13em}.future-command b{left:18px;bottom:18px;color:rgba(223,254,247,.42)}.future-command em{right:18px;bottom:18px;color:var(--mint);font-style:normal}
.future-die{position:relative;min-height:320px;display:grid;place-items:center;overflow:hidden;background:#080f0e;border:1px solid rgba(1,247,182,.12);color:#e9fff8}.future-die::before{content:"";position:absolute;inset:20px;background:repeating-linear-gradient(90deg,transparent 0 20px,rgba(1,247,182,.06) 20px 21px),repeating-linear-gradient(0deg,transparent 0 20px,rgba(1,247,182,.06) 20px 21px)}.future-die span{position:absolute;left:18px;top:16px;font:8px "Fjalla One",sans-serif;letter-spacing:.16em;color:rgba(223,254,247,.42)}.future-die b{position:relative;z-index:3;width:138px;height:138px;display:grid;place-items:center;border:1px solid rgba(1,247,182,.55);background:#0d1916;box-shadow:0 0 0 12px rgba(1,247,182,.035),0 0 50px rgba(1,247,182,.08);font:700 26px "Poppins",sans-serif;letter-spacing:-.05em}.future-die i{position:absolute;width:10px;height:10px;border:1px solid rgba(1,247,182,.45);background:#07100e}.future-die i:nth-of-type(1){left:17%;top:23%}.future-die i:nth-of-type(2){right:20%;top:34%}.future-die i:nth-of-type(3){left:28%;bottom:22%}.future-die i:nth-of-type(4){right:16%;bottom:18%}.future-die em{position:absolute;width:62%;height:32%;border:1px solid rgba(255,255,255,.08);border-radius:50%;transform:rotate(-17deg)}
.future-split{height:100%;min-height:320px;display:grid;grid-template-columns:1.25fr .85fr;background:#e9ebe6}.future-split-image{overflow:hidden}.future-split-image img{width:100%;height:100%;object-fit:cover;filter:grayscale(.38) contrast(.98)}.future-split-panel{display:flex;flex-direction:column;justify-content:space-between;padding:22px;background:#101615;color:#fff}.future-split-panel small{font:8px "Fjalla One",sans-serif;letter-spacing:.15em;color:var(--mint)}.future-split-panel strong{font:700 32px/.88 "Poppins",sans-serif;letter-spacing:-.05em}.future-split-panel span{font-size:10px;line-height:1.6;color:rgba(255,255,255,.46)}
.future-timeline{min-height:320px;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding:16px;background:#07100f;color:#e8fff8}.future-timeline>div{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding:16px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.02)}.future-timeline b{font:9px "Fjalla One",sans-serif;color:rgba(223,254,247,.40)}.future-timeline span{font:10px "Fjalla One",sans-serif;letter-spacing:.13em}.future-timeline em{position:absolute;left:16px;right:16px;bottom:12px;height:1px;background:rgba(1,247,182,.16)}.future-timeline .is-current{border-color:rgba(1,247,182,.28);box-shadow:inset 0 0 0 1px rgba(1,247,182,.04)}.future-timeline .is-current b,.future-timeline .is-current span{color:var(--mint)}
.future-schematic{position:relative;min-height:320px;overflow:hidden;background:#e1ebe5;border:1px solid rgba(11,45,39,.13)}.future-schematic img{width:100%;height:100%;object-fit:cover;filter:grayscale(.4) brightness(1.06)}.future-schematic::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 25px,rgba(14,68,62,.10) 25px 26px),repeating-linear-gradient(90deg,transparent 0 25px,rgba(14,68,62,.10) 25px 26px);mix-blend-mode:multiply}.future-schematic .pin{position:absolute;z-index:2;padding:5px 6px;border:1px solid rgba(17,78,69,.38);background:rgba(232,242,236,.82);font:7px "Fjalla One",sans-serif;color:#124c43;letter-spacing:.10em}.future-schematic .p1{left:12%;top:18%}.future-schematic .p2{right:18%;top:37%}.future-schematic .p3{left:52%;bottom:16%}.future-schematic i{position:absolute;z-index:3;width:8px;height:8px;border:1px solid #124c43;background:#e1ebe5}.future-schematic i:nth-of-type(1){left:23%;top:26%}.future-schematic i:nth-of-type(2){right:28%;top:52%}.future-schematic i:nth-of-type(3){left:59%;bottom:23%}.future-schematic>b{position:absolute;z-index:3;right:14px;bottom:12px;font:7px "Fjalla One",sans-serif;letter-spacing:.14em;color:#134d43}
.future-theater{min-height:320px;background:#080d0e;padding:14px;color:#fff}.future-theater-screen{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,#162321,#050808);border:1px solid rgba(255,255,255,.10);display:grid;place-items:center;overflow:hidden}.future-theater-screen::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(1,247,182,.08),transparent 48%,rgba(255,255,255,.04))}.future-play{position:relative;z-index:2;width:58px;height:58px;border:1px solid rgba(1,247,182,.45);border-radius:50%;display:grid;place-items:center;color:var(--mint);font-size:15px;padding-left:3px}.future-theater-screen span{position:absolute;z-index:2;left:12px;bottom:12px;font:7px "Fjalla One",sans-serif;letter-spacing:.14em;color:rgba(255,255,255,.42)}.future-theater-strip{display:flex;align-items:center;gap:9px;margin-top:10px}.future-theater-strip span{height:3px;flex:1;background:linear-gradient(90deg,var(--mint) 0 38%,rgba(255,255,255,.10) 38%)}.future-theater-strip b{font:7px "Fjalla One",sans-serif;letter-spacing:.12em;color:rgba(255,255,255,.36)}
.future-repo{min-height:320px;background:#0a1110;border:1px solid rgba(1,247,182,.10);padding:16px;color:#dffef7;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.future-repo-top{display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:10px;font:8px "Fjalla One",sans-serif;letter-spacing:.13em}.future-repo-top b{color:var(--mint)}.future-repo-graph{height:120px;margin:20px 0;display:grid;grid-template-columns:repeat(8,1fr);align-items:end;gap:7px;padding:10px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02)}.future-repo-graph i{height:var(--bar);background:linear-gradient(180deg,var(--mint),rgba(1,247,182,.12));display:block}.future-repo-graph i:nth-child(1){--bar:26%}.future-repo-graph i:nth-child(2){--bar:40%}.future-repo-graph i:nth-child(3){--bar:34%}.future-repo-graph i:nth-child(4){--bar:56%}.future-repo-graph i:nth-child(5){--bar:48%}.future-repo-graph i:nth-child(6){--bar:74%}.future-repo-graph i:nth-child(7){--bar:62%}.future-repo-graph i:nth-child(8){--bar:88%}.future-repo-files{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;font-size:8px;color:rgba(223,254,247,.48)}.future-repo-files span{padding:7px;border:1px solid rgba(255,255,255,.06)}
.future-labbook{min-height:320px;position:relative;overflow:hidden;background:repeating-linear-gradient(0deg,#a7b6a9 0 21px,#a1b1a5 21px 22px)}.future-lab-sheet{position:absolute;left:13%;top:9%;width:66%;height:82%;padding:16px;background:#f3f0e5;box-shadow:10px 14px 0 rgba(11,24,18,.12);transform:rotate(-2.2deg);color:#18231e}.future-lab-sheet small{font:7px "Fjalla One",sans-serif;letter-spacing:.15em;color:#6a736d}.future-lab-sheet strong{display:block;margin-top:16px;font:700 23px "Poppins",sans-serif;letter-spacing:-.04em}.future-lab-sheet span{display:block;margin-top:9px;padding-bottom:5px;border-bottom:1px dashed rgba(24,35,30,.18);font-size:9px}.future-lab-sheet img{width:48%;height:64px;object-fit:cover;margin-top:12px;filter:grayscale(.8)}.future-lab-pencil{position:absolute;right:9%;bottom:16%;width:86px;height:7px;background:#2b332f;transform:rotate(-19deg);box-shadow:14px 2px 0 #bfb2a0}
.future-metrics{min-height:320px;display:grid;grid-template-columns:repeat(2,1fr);gap:1px;padding:16px;background:#091110;color:#fff}.future-metrics>div{display:flex;flex-direction:column;justify-content:flex-end;padding:18px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025)}.future-metrics small{font:8px "Fjalla One",sans-serif;letter-spacing:.14em;color:rgba(223,254,247,.38)}.future-metrics b{margin-top:7px;font:700 26px "Poppins",sans-serif;letter-spacing:-.05em}.future-metrics span{margin-top:5px;font:8px "Fjalla One",sans-serif;letter-spacing:.12em;color:var(--mint)}
.future-annotation{position:relative;min-height:320px;overflow:hidden;background:#0c1112}.future-annotation img{width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(.96) brightness(.72)}.future-annotation::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(4,8,9,.40))}.future-annotation .callout{position:absolute;z-index:3;padding:6px 7px;border:1px solid rgba(1,247,182,.42);background:rgba(5,12,13,.62);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);font:7px "Fjalla One",sans-serif;letter-spacing:.13em;color:var(--mint)}.future-annotation .c1{left:10%;top:19%}.future-annotation .c2{right:11%;top:45%}.future-annotation .c3{left:34%;bottom:16%}.future-annotation i{position:absolute;z-index:2;width:26px;height:26px;border-left:1px solid var(--mint);border-bottom:1px solid var(--mint)}.future-annotation i:nth-of-type(1){left:17%;top:28%}.future-annotation i:nth-of-type(2){right:19%;top:50%}.future-annotation i:nth-of-type(3){left:41%;bottom:23%}
.future-stack{position:relative;min-height:320px;background:linear-gradient(145deg,#09100f,#101919);padding:26px 24px;color:#fff;overflow:hidden}.future-stack::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 27px,rgba(255,255,255,.035) 27px 28px)}.future-stack-layer{position:absolute;left:12%;right:12%;height:76px;padding:13px 15px;border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.04);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.future-stack-layer small{font:7px "Fjalla One",sans-serif;letter-spacing:.15em;color:rgba(223,254,247,.36)}.future-stack-layer strong{display:block;margin:4px 0 2px;font:700 16px "Poppins",sans-serif}.future-stack-layer span{font:7px "Fjalla One",sans-serif;letter-spacing:.10em;color:rgba(223,254,247,.46)}.layer-a{top:13%;transform:translateX(-12px);border-color:rgba(1,247,182,.24)}.layer-b{top:39%;transform:translateX(14px)}.layer-c{top:65%;transform:translateX(-3px);border-color:rgba(255,255,255,.15)}
.future-embed{min-height:320px;border:1px solid rgba(13,36,29,.12);background:#f3f4ef;overflow:hidden}.future-embed-bar{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid rgba(13,36,29,.10);font:8px "Fjalla One",sans-serif;letter-spacing:.13em;color:#234039}.future-embed-bar b{color:#1b7f67}.future-embed-screen{position:relative;min-height:270px;display:grid;place-items:center;background:radial-gradient(circle at 50% 50%,rgba(27,127,103,.08),transparent 42%),#edf1ed}.future-embed-grid{position:absolute;inset:26px;background:repeating-linear-gradient(0deg,transparent 0 23px,rgba(14,68,62,.07) 23px 24px),repeating-linear-gradient(90deg,transparent 0 23px,rgba(14,68,62,.07) 23px 24px)}.future-embed-screen strong{position:relative;z-index:2;font:700 20px "Poppins",sans-serif;letter-spacing:-.03em;color:#25443c}
@media (max-width:760px){.moneylog-actions{flex-direction:column}.moneylog-actions a{width:100%}.moneylog-demo-head{align-items:flex-start}.moneylog-demo-head div{flex-direction:column;align-items:flex-start;gap:4px}.moneylog-demo-frame{aspect-ratio:4/3}.opensource-card-visual--control{grid-template-columns:1fr}.future-split{grid-template-columns:1fr}.future-theater-screen{aspect-ratio:4/3}.future-timeline{grid-template-columns:1fr 1fr}.future-repo-graph{height:100px}.future-stack-layer{left:7%;right:7%}}
@media (prefers-reduced-motion:reduce){.radar-sweep{animation:none}}
