﻿:root,:root[data-theme="light"]{--bg:          #f1f1f1;--bg-raise:    #ffffff;--bg-soft:     #e7e7e7;--text:        #111;--text-soft:   #424242;--text-faint:  #4e4a4a;--line:        #cdcdcd;--azure:       #0404aa;--gold:        #e8cb0d;--accent:      var(--azure);--accent-ink:  #ffffff;--crystal-hi:  #3a3a3a;--crystal-lo:  #101010;--crystal-facet: rgba(255, 255, 255, .8);--scan-ink:    #131313;--footer-bg:   var(--bg);--syn-comment: #7a7d85;--syn-kw:      #0404aa;--syn-str:     #0a7d33;--syn-num:     #b5680a;--syn-name:    #6f42c1;--syn-var:     #b5680a;--syn-op:      #555a;--syn-prompt:  #9a9a9a;--shadow:      0 18px 50px -18px rgba(16, 16, 20, .25);--menu-blur:   7px;--menu-alpha:  .5;--header-bg:   rgba(241, 241, 241, var(--menu-alpha))}:root[data-theme="dark"]{--bg:          #242323;--bg-raise:    #2e2e2e;--bg-soft:     #1b1a1a;--text:        #f1f1f1;--text-soft:   #cdcdcd;--text-faint:  #8b8b92;--line:        #3a3838;--azure:       #4d4df0;--gold:        #e8cb0d;--accent:      var(--gold);--accent-ink:  #111;--crystal-hi:  #454443;--crystal-lo:  #0d0c0c;--crystal-facet: rgba(255, 255, 255, .32);--scan-ink:    #333231;--footer-bg:   var(--bg);--syn-comment: #8a8888;--syn-kw:      #7aa2ff;--syn-str:     #7bdc8a;--syn-num:     #e8cb0d;--syn-name:    #c8a6ff;--syn-var:     #e8cb0d;--syn-op:      #cdcdcd;--syn-prompt:  #9a9a9a;--shadow:      0 18px 50px -18px rgba(120, 120, 120, .35);--menu-alpha:  .72;--header-bg:   rgba(36, 35, 35, var(--menu-alpha))}@font-face{font-family:"Clear Sans";font-weight:100;font-display:swap;src:url("/fonts/ClearSans-Thin.woff2") format("woff2"),url("/fonts/ClearSans-Thin.woff") format("woff")}@font-face{font-family:"Clear Sans";font-weight:300;font-display:swap;src:url("/fonts/ClearSans-Light.woff2") format("woff2"),url("/fonts/ClearSans-Light.woff") format("woff")}@font-face{font-family:"Clear Sans";font-weight:400;font-display:swap;src:url("/fonts/ClearSans-Regular.woff2") format("woff2"),url("/fonts/ClearSans-Regular.woff") format("woff")}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;font-family:"Clear Sans","Helvetica Neue",Arial,system-ui,sans-serif;font-weight:300;font-size:1.0625rem;line-height:1.7;color:var(--text);background:var(--bg);transition:background-color .35s ease, color .35s ease}h1,h2,h3,h4{font-weight:300;line-height:1.15;margin:0 0 .5em;letter-spacing:-.01em;text-wrap:balance}h2{font-size:clamp(1.7rem, 4vw, 2.6rem)}h3{font-size:1.2rem;font-weight:400}p{margin:0 0 1em}a{color:var(--azure);text-decoration:none;transition:color .2s ease}a:hover{color:var(--accent)}img{max-width:100%;height:auto;display:block}dl,dd,dt,figure{margin:0}.mono{font-family:ui-monospace,"SF Mono","Cascadia Code",Consolas,"Liberation Mono",monospace;font-size:.78em;letter-spacing:.08em;text-transform:uppercase}::selection{background:var(--gold);color:#111}.skip-link{position:absolute;left:-200vw;top:0;z-index:200;padding:.6em 1em;background:var(--accent);color:var(--accent-ink)}.skip-link:focus{left:0}.btn{display:inline-block;padding:.8em 1.9em;border:1px solid transparent;border-radius:2em;font-weight:400;letter-spacing:.02em;transition:transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease;will-change:transform}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow)}.btn-primary:hover{color:var(--accent-ink);filter:brightness(1.08)}.btn-ghost{border-color:var(--line);color:var(--text)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.btn-big{padding:1em 2.6em;font-size:1.1rem}.link-more{font-weight:400;border-bottom:1px solid transparent}.link-more:hover{border-color:currentColor}body::before{content:"";position:fixed;top:0;left:0;right:0;height:41px;background:var(--scan-ink);-webkit-mask:url("/img/bgtop.png") repeat-x top;mask:url("/img/bgtop.png") repeat-x top;z-index:110;pointer-events:none}.scroll-progress{position:fixed;top:0;left:0;height:2px;width:100%;transform:scaleX(0);transform-origin:0 50%;background:linear-gradient(90deg, var(--azure), var(--gold));z-index:120;pointer-events:none}.container{width:100%;margin:0 auto;padding:1.5rem 1.25rem .5rem 1.25rem}@media (min-width: 48em){.container{width:80%;padding:2rem 2rem .5rem 2rem}}section{padding:3.5rem 0}.section-head{margin-bottom:2.5rem;max-width:38rem}.section-head .section-index{color:var(--text-faint);margin-bottom:.4rem}.section-head .section-index::after{content:"";display:inline-block;width:3em;height:1px;background:linear-gradient(90deg, var(--azure), var(--gold));vertical-align:middle;margin-left:.8em}.section-head .section-sub{color:var(--text-soft)}.page-hero{padding:6.5rem 0 2.5rem}@media (min-width: 48em){.page-hero{padding:9rem 0 3.5rem}}.page-hero .hero-kicker{color:var(--text-faint);margin-bottom:1rem}.page-hero .page-title{font-size:clamp(2.4rem, 7vw, 4.2rem);font-weight:100}.page-hero .page-lead{font-size:clamp(1.05rem, 2vw, 1.3rem);color:var(--text-soft);max-width:42rem}.prose{max-width:44rem}.err-mark{width:5.5rem;margin:0 auto 1.5rem}.site-header{position:fixed;inset:0 0 auto 0;z-index:100;border-bottom:1px solid transparent;transition:border-color .3s ease}.site-header::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--header-bg);-webkit-backdrop-filter:blur(var(--menu-blur));backdrop-filter:blur(var(--menu-blur))}.site-header.scrolled{border-color:var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:.8rem;height:4rem}@media (min-width: 48em){.header-inner{height:4.5rem}}.brand{display:flex;align-items:center;gap:.6rem;color:var(--text);font-size:1.15rem;letter-spacing:.02em;z-index:102}.brand .brand-name{font-weight:100}.brand .brand-name b{font-weight:400}.brand:hover{color:var(--text)}.brand:hover .brand-mark{transform:translateY(-2px)}.brand-mark{width:2rem;height:2rem;overflow:visible;transition:transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1)}.brand-mark .cl-body{fill:#111;stroke:#fff;stroke-width:4.5;stroke-linejoin:round;paint-order:stroke}.brand-mark .cl-facets{fill:#fff}.header-tools{display:flex;align-items:center;gap:.9rem;z-index:102}.lang-switcher{display:flex;gap:.55rem;font-family:ui-monospace,"SF Mono","Cascadia Code",Consolas,"Liberation Mono",monospace;font-size:.72rem;letter-spacing:.1em}.lang-switcher a{color:var(--text-faint)}.lang-switcher a:hover{color:var(--accent)}.lang-switcher .lang-current{color:var(--text);border-bottom:1px solid var(--gold)}.theme-toggle{display:grid;place-items:center;width:2.2rem;height:2.2rem;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--text);cursor:pointer;transition:border-color .25s ease, transform .25s ease}.theme-toggle:hover{border-color:var(--accent);transform:rotate(20deg)}.theme-toggle .sun-rays{transition:opacity .35s ease, transform .45s ease;transform-origin:center}.theme-toggle .moon-bite{transition:transform 0.5s cubic-bezier(0.45, 0.05, 0.25, 1);transform:translateX(var(--moon-out, 13px))}[data-theme="light"] .theme-toggle .sun-rays{opacity:1;transform:none}[data-theme="light"] .theme-toggle .moon-bite{transform:translateX(var(--moon-out, 13px))}[data-theme="dark"] .theme-toggle .sun-rays{opacity:0;transform:rotate(40deg) scale(0.45)}[data-theme="dark"] .theme-toggle .moon-bite{transform:translateX(var(--moon-x, -4px))}.nav-checkbox{position:absolute;width:1px;height:1px;opacity:0}.nav-burger{display:grid;gap:4px;padding:.5rem;cursor:pointer}.nav-burger span{display:block;width:22px;height:2px;border-radius:4px;background:var(--text);transition:transform .3s ease, opacity .3s ease}.nav-checkbox:checked~.site-header .nav-burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}.nav-checkbox:checked~.site-header .nav-burger span:nth-child(2){opacity:0}.nav-checkbox:checked~.site-header .nav-burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.site-nav{position:fixed;top:0;left:0;right:0;z-index:99;padding:5rem 1.25rem 1.6rem;background:var(--header-bg);-webkit-backdrop-filter:blur(var(--menu-blur));backdrop-filter:blur(var(--menu-blur));border-bottom:1px solid var(--line);transform:translateY(-105%);visibility:hidden;transition:transform 0.38s cubic-bezier(0.2, 0.7, 0.2, 1),visibility 0s linear 0.38s}.site-nav ul{display:grid;gap:.4rem;list-style:none;margin:0;padding:0}.site-nav a{display:block;text-align:center;color:var(--text-soft);font-size:1.35rem;font-weight:100;padding:.45em 0;position:relative}.site-nav a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:linear-gradient(90deg, var(--azure), var(--gold));transform:scaleX(0);transform-origin:0 50%;transition:transform .3s ease}.site-nav a:hover,.site-nav a[aria-current="page"]{color:var(--text)}.site-nav a:hover::after,.site-nav a[aria-current="page"]::after{transform:scaleX(1)}main{padding-bottom:10rem}main:has(.cta){padding-bottom:0}main,.site-footer{transition:transform 0.38s cubic-bezier(0.2, 0.7, 0.2, 1)}.nav-checkbox:checked~.site-header .site-nav{transform:translateY(0);visibility:visible;transition:transform 0.38s cubic-bezier(0.2, 0.7, 0.2, 1)}.nav-checkbox:checked~main,.nav-checkbox:checked~.site-footer{transform:translateY(20rem)}@media (min-width: 48em){.nav-burger{display:none}.site-nav{position:static;padding:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:0;transform:none;visibility:visible;transition:none}.site-nav ul{display:flex;gap:1rem}.site-nav a{font-size:.95rem;font-weight:300;padding:.3em 0}.nav-checkbox:checked~main,.nav-checkbox:checked~.site-footer{transform:none}}.hero{position:relative;min-height:92vh;display:flex;align-items:center;padding:6rem 0 3rem;overflow:hidden}.hero-inner{display:grid;gap:2.5rem;align-items:center;grid-template-columns:1fr}@media (min-width: 48em){.hero-inner{grid-template-columns:7fr 5fr}}.hero-kicker{color:var(--text-faint);margin-bottom:1.2rem}.hero-title{font-size:clamp(2.6rem, 8vw, 4.8rem);font-weight:100;letter-spacing:-.02em}.hero-title em,.hero-title strong{font-style:normal;font-weight:300;background:linear-gradient(100deg, var(--azure) 20%, var(--gold) 80%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-lead{font-size:clamp(1.05rem, 2.2vw, 1.35rem);color:var(--text-soft);max-width:34rem;margin-bottom:2rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.9rem}.hero-scroll{position:absolute;left:50%;bottom:1.2rem;transform:translateX(-50%);color:var(--text-faint);animation:bob 2.4s ease-in-out infinite;display:none}@media (min-width: 48em){.hero-scroll{display:block}}.hero-beams{position:absolute;inset:0;pointer-events:none}.hero-beams .beam{position:absolute;width:130vmax;height:38vmax;filter:blur(60px);opacity:.14;transform:rotate(-18deg)}[data-theme="dark"] .hero-beams .beam{opacity:.12}.hero-beams .beam-azure{top:-22vmax;right:-40vmax;background:radial-gradient(closest-side, var(--azure), transparent 70%)}.hero-beams .beam-gold{bottom:-24vmax;left:-45vmax;background:radial-gradient(closest-side, var(--gold), transparent 70%);transform:rotate(14deg)}.hero-crystal{display:flex;justify-content:center;order:-1}@media (min-width: 48em){.hero-crystal{order:0}}.orbit-scene{position:relative;width:clamp(260px, 78vw, 400px);aspect-ratio:1;perspective:900px;touch-action:pan-y}@media (min-width: 48em){.orbit-scene{width:clamp(340px, 38vw, 560px)}}.orbit-canvas{position:absolute;inset:0;width:100%;height:100%}.orbit-front{pointer-events:none}.crystal-wrap{position:absolute;inset:0;display:grid;place-items:center;animation:float 7s ease-in-out infinite;pointer-events:none}.crystal-hero{width:54%;overflow:visible;transition:transform .3s ease-out;will-change:transform;filter:drop-shadow(0 26px 44px rgba(0,0,0,0.3))}.crystal-hero .cl-body{stroke:#fff;stroke-width:2.6;stroke-linejoin:round;paint-order:stroke}.crystal-hero .cl-facets{fill:var(--crystal-facet)}.hero-forge{position:relative;min-height:92vh;display:flex;align-items:center;padding:6rem 0 3rem;overflow:hidden}.forge-stage{position:absolute;inset:0;z-index:0;pointer-events:none;perspective:1200px;-webkit-mask-image:radial-gradient(120% 100% at 70% 45%, #000 55%, transparent 100%);mask-image:radial-gradient(120% 100% at 70% 45%, #000 55%, transparent 100%)}.forge-machine{position:absolute;inset:0;width:100%;height:100%;z-index:1;will-change:transform}.forge-links{position:absolute;inset:0;width:100%;height:100%;z-index:2}.forge-world{position:absolute;inset:0;z-index:3;transform-style:preserve-3d}.hero-forge::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg, var(--bg) 16%, rgba(0,0,0,0) 62%),linear-gradient(0deg, var(--bg) 2%, rgba(0,0,0,0) 26%);opacity:.92}@media (min-width: 48em){.hero-forge::before{opacity:.8}}.hero-forge .hero-inner,.hero-forge .container{position:relative;z-index:3}.hero-forge .hero-inner{pointer-events:none}.hero-forge .hero-copy,.hero-forge .hero-scroll{pointer-events:auto}.hero-forge .hero-copy{max-width:38rem}.forge-node{position:absolute;top:0;left:0;width:clamp(122px, 12vw, 170px);transform-origin:0 0;will-change:transform, opacity;background:var(--bg-raise);border:1px solid var(--line);border-radius:.55rem;box-shadow:0 14px 34px -16px rgba(0,0,0,0.55);overflow:hidden;opacity:0;pointer-events:auto;touch-action:manipulation;cursor:pointer;transition:border-color .3s ease, box-shadow .3s ease}.forge-node .forge-bar{height:3px;background:var(--nc, var(--azure))}.forge-head{display:flex;align-items:center;gap:.4em;padding:.42em .6em .3em;font-family:ui-monospace,"SF Mono","Cascadia Code",Consolas,"Liberation Mono",monospace;font-size:.62rem;letter-spacing:.04em}.forge-head .forge-dot{width:.5em;height:.5em;border-radius:50%;background:var(--nc, var(--azure));box-shadow:0 0 6px var(--nc, var(--azure));flex:none}.forge-head .forge-type{color:var(--text-soft);text-transform:lowercase}.forge-head .forge-led{margin-left:auto;width:.42em;height:.42em;border-radius:50%;background:var(--text-faint);transition:background-color .3s ease, box-shadow .3s ease}.forge-node.is-active .forge-led,.forge-node.is-live .forge-led{background:var(--gold);box-shadow:0 0 7px var(--gold)}.forge-code{margin:0;padding:0 .6em .55em;font-family:ui-monospace,"SF Mono","Cascadia Code",Consolas,"Liberation Mono",monospace;font-size:.6rem;line-height:1.5;color:var(--text-soft);white-space:pre-wrap;word-break:break-word;min-height:2.6em}.forge-code .tk-kw{color:var(--syn-kw)}.forge-code .tk-fn{color:var(--syn-name)}.forge-code .tk-str{color:var(--syn-str)}.forge-code .tk-num{color:var(--syn-num)}.forge-code .tk-prop{color:var(--azure)}.forge-code .tk-com{color:var(--text-faint);font-style:italic}.forge-code .tk-punct{color:var(--text-faint)}.forge-caret{display:inline-block;width:.5em;margin-left:1px;border-bottom:0.12em solid var(--gold);animation:forge-blink 1s steps(1) infinite;transform:translateY(0.05em)}.forge-port{position:absolute;top:calc(50% + 4px);width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--bg);border:1.5px solid var(--nc, var(--azure))}.forge-port-in{left:-3px}.forge-port-out{right:-3px}.forge-node.is-active{border-color:var(--accent);box-shadow:0 16px 40px -14px rgba(0,0,0,0.6),0 0 0 1px var(--accent)}.forge-node.is-hover{border-color:var(--accent)}.forge-node.is-spawning{animation:forge-pop 0.5s cubic-bezier(0.2, 1.3, 0.5, 1) both}.forge-node.is-dying{animation:forge-die .45s ease forwards}@keyframes forge-blink{0%,50%{opacity:1}50.01%,100%{opacity:0}}@keyframes forge-pop{from{opacity:0}to{opacity:1}}@keyframes forge-die{to{opacity:0;filter:blur(3px)}}@media (prefers-reduced-motion: reduce){.forge-caret{animation:none}.forge-node.is-spawning,.forge-node.is-dying{animation:none}}.forge-fallback{position:absolute;inset:0;display:none}.stats{padding:1.5rem 0}.stats-row{display:grid;grid-template-columns:repeat(2, 1fr);gap:1.5rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.8rem 0}@media (min-width: 48em){.stats-row{grid-template-columns:repeat(4, 1fr)}}.stat dt{color:var(--text-faint);margin-bottom:.2rem}.stat dd{font-size:clamp(1.9rem, 4vw, 2.8rem);font-weight:100;line-height:1}.facet-grid{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width: 30em){.facet-grid{grid-template-columns:repeat(2, 1fr)}}@media (min-width: 64em){.facet-grid{grid-template-columns:repeat(3, 1fr)}}.facet-card{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1.6rem 1.4rem 1.3rem;background:var(--bg-raise);border:1px solid var(--line);border-radius:.9rem;color:var(--text);overflow:hidden;transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;clip-path:polygon(0 0, calc(100% - 1.6rem) 0, 100% 1.6rem, 100% 100%, 0 100%)}.facet-card::before{content:"";position:absolute;top:0;right:0;width:1.6rem;height:1.6rem;background:linear-gradient(135deg, var(--azure), var(--gold));clip-path:polygon(0 0, 100% 100%, 0 100%);opacity:.5;transition:opacity .3s ease}.facet-card .facet-num{color:var(--text-faint)}.facet-card h3{margin:0}.facet-card p{color:var(--text-soft);font-size:.92rem;margin:0;flex:1}.facet-card .facet-more{align-self:flex-end;color:var(--accent);transform:translateX(-6px);opacity:0;transition:transform .3s ease, opacity .3s ease}.facet-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--accent);color:var(--text)}.facet-card:hover::before{opacity:1}.facet-card:hover .facet-more{transform:none;opacity:1}.home-projects{padding-bottom:2rem;overflow:hidden}.strip-wrap{position:relative}.strip{display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.5rem 1.25rem 1.8rem;cursor:grab;scrollbar-width:thin;scrollbar-color:var(--line) transparent}@media (min-width: 48em){.strip{padding-left:max(2rem, calc((100vw - 72rem) / 2 + 2rem))}}.strip.dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}.strip-card{flex:0 0 78vw;scroll-snap-align:start}@media (min-width: 30em){.strip-card{flex-basis:21rem}}.strip-card-all{display:grid;place-content:center;gap:.6rem;text-align:center;border:1px dashed var(--line);border-radius:.9rem;font-weight:300;font-size:1.25rem;color:var(--text-soft);min-height:16rem;transition:border-color .3s ease, color .3s ease}.strip-card-all .strip-arrow{font-size:2rem;color:var(--accent);transition:transform .3s ease}.strip-card-all:hover{border-color:var(--accent);color:var(--text)}.strip-card-all:hover .strip-arrow{transform:translateX(8px)}@media (min-width: 64em){.story-inner{display:grid;grid-template-columns:1fr 2fr;gap:3rem}}.story-text{font-size:1.1rem;color:var(--text-soft);max-width:40rem}.story-text strong{color:var(--text);font-weight:400}.cta{margin:3rem 0 0;background:linear-gradient(120deg, rgba(4,4,170,0.06), transparent 50%),linear-gradient(300deg, rgba(232,203,13,0.07), transparent 50%),var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.cta-inner{text-align:center;max-width:38rem}.cta-inner h2{font-weight:100;font-size:clamp(1.9rem, 5vw, 3rem)}.cta-inner p{color:var(--text-soft);margin-bottom:2rem}.svc-group{padding:3rem 0;border-top:1px solid var(--line)}.svc-group:first-of-type{border-top:0}.svc-group-head{display:flex;align-items:baseline;gap:1.2rem;margin-bottom:2.2rem}.svc-group-head .svc-group-num{font-family:ui-monospace,"SF Mono","Cascadia Code",Consolas,"Liberation Mono",monospace;font-size:clamp(2.6rem, 7vw, 4.6rem);font-weight:100;line-height:1;color:transparent;-webkit-text-stroke:1px var(--text-faint)}.svc-group-head h2{margin-bottom:.2rem}.svc-group-head .section-sub{color:var(--text-soft);margin:0}.svc-grid{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width: 48em){.svc-grid{grid-template-columns:repeat(2, 1fr)}}@media (min-width: 64em){.svc-grid{grid-template-columns:repeat(3, 1fr)}}.svc-card{padding:1.7rem 1.5rem;background:var(--bg-raise);border:1px solid var(--line);border-radius:.9rem;transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease}.svc-card h3{margin:1rem 0 .4rem}.svc-card .svc-text{color:var(--text-soft);font-size:.95rem}.svc-card .svc-text p{margin:0 0 .6em}.svc-card .svc-text p:last-child{margin-bottom:0}.svc-card .svc-text ul{margin:.4em 0 0;display:grid;gap:.4em;list-style:none;padding-left:0}.svc-card .svc-text ul li{padding-left:1em;position:relative}.svc-card .svc-text ul li::before{content:"◆";position:absolute;left:0;font-size:.55em;top:.55em;color:var(--accent)}.svc-card .svc-note{margin-top:.9rem;color:var(--text-faint)}.svc-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--accent)}.svc-card:hover .line-icon{color:var(--accent)}.svc-icon{width:2.4rem;height:2.4rem;color:var(--text-soft)}.svc-icon .line-icon{width:100%;height:100%;transition:color .3s ease}.svc-card .line-icon :is(path, circle, rect, line, polyline, polygon, ellipse){stroke-dasharray:120;stroke-dashoffset:120}.svc-card.in-view .line-icon :is(path, circle, rect, line, polyline, polygon, ellipse){animation:draw 1.4s ease forwards;animation-delay:var(--d, 0ms)}.project-card{display:flex;flex-direction:column;background:var(--bg-raise);border:1px solid var(--line);border-radius:.9rem;overflow:hidden;color:var(--text);transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease}.project-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--accent);color:var(--text)}.project-card:hover .project-thumb img{transform:scale(1.04)}.project-card:hover h3{color:var(--accent)}.project-thumb{aspect-ratio:32 / 21;overflow:hidden;background:var(--bg-soft)}.project-thumb img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform 0.6s cubic-bezier(0.2, 0.6, 0.2, 1)}.project-thumb .project-thumb-empty{display:grid;place-items:center;height:100%}.project-thumb .project-thumb-empty .thumb-mark{width:4.5rem;opacity:.25}.project-thumb .project-thumb-empty .thumb-mark .cl-facets{fill:var(--bg-soft)}.project-card-body{display:flex;flex-direction:column;gap:.35rem;padding:1.2rem 1.3rem 1.1rem;flex:1}.project-card-body .project-tags{color:var(--text-faint)}.project-card-body h3{margin:0;transition:color .25s ease}.project-card-body .project-summary{color:var(--text-soft);font-size:.92rem;flex:1;margin:0}.project-card-body .project-year{color:var(--text-faint);margin-top:.5rem}.projects-flow{display:grid;gap:1.2rem;grid-template-columns:1fr}@media (min-width: 30em){.projects-flow{grid-template-columns:repeat(2, 1fr)}}@media (min-width: 64em){.projects-flow{grid-template-columns:repeat(3, 1fr)}}.card-link{color:var(--text)}.card-link::after{content:"";position:absolute;inset:0}.ext-url{position:relative;z-index:1;color:var(--text-faint)}.ext-url:hover{color:var(--accent)}.project-row{position:relative;grid-column:1 / -1;display:grid;overflow:hidden;background:var(--bg-raise);border:1px solid var(--line);border-radius:.9rem;transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease}@media (min-width: 48em){.project-row{grid-template-columns:minmax(0, 11fr) minmax(0, 9fr);min-height:21rem}}@media (min-width: 48em){.project-row:nth-child(even) .project-row-thumb{order:2}.project-row:nth-child(even) .project-row-body{order:1}}.project-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg, var(--azure), var(--gold));z-index:1}.project-row:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--accent)}.project-row:hover .project-row-thumb img{transform:scale(1.03)}.project-row:hover h3 a{color:var(--accent)}.project-row-thumb{overflow:hidden;background:var(--bg-soft);aspect-ratio:16 / 9}@media (min-width: 48em){.project-row-thumb{aspect-ratio:auto;height:100%}}.project-row-thumb img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform 0.6s cubic-bezier(0.2, 0.6, 0.2, 1)}.project-row-thumb .project-thumb-empty{display:grid;place-items:center;height:100%;min-height:14rem}.project-row-thumb .project-thumb-empty .thumb-mark{width:5rem;opacity:.25}.project-row-thumb .project-thumb-empty .thumb-mark .cl-facets{fill:var(--bg-soft)}.project-row-body{display:flex;flex-direction:column;gap:.6rem;padding:1.6rem 1.7rem 1.4rem}.project-row-body .project-tags{color:var(--text-faint);margin:0}.project-row-body h3{margin:0;font-size:clamp(1.3rem, 2.4vw, 1.7rem);font-weight:300}.project-row-body h3 a{transition:color .25s ease}.project-row-body .project-row-summary{color:var(--text-soft);flex:1;margin:0}.project-row-body .project-row-meta{display:flex;gap:1.6rem;color:var(--text-faint);margin:0}.project-mini{position:relative;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-raise);border:1px solid var(--line);border-radius:.9rem;transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease}.project-mini:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--accent)}.project-mini:hover h3 a{color:var(--accent)}.project-mini:hover .project-mini-thumb img{transform:scale(1.04)}.project-mini-thumb{aspect-ratio:8 / 5;overflow:hidden;background:var(--bg-soft)}.project-mini-thumb img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform 0.6s cubic-bezier(0.2, 0.6, 0.2, 1)}.project-mini-thumb .project-thumb-empty{display:grid;place-items:center;height:100%}.project-mini-thumb .project-thumb-empty .thumb-mark{width:3rem;opacity:.22}.project-mini-thumb .project-thumb-empty .thumb-mark .cl-facets{fill:var(--bg-soft)}.project-mini-body{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.1rem .95rem;flex:1}.project-mini-body h3{margin:0;font-size:1.05rem;font-weight:400}.project-mini-body h3 a{transition:color .25s ease}.project-mini-body .project-tags{color:var(--text-faint);margin:0;flex:1}.project-mini-body .project-mini-meta{display:flex;justify-content:space-between;gap:.8rem;flex-wrap:wrap;color:var(--text-faint);margin:.4rem 0 0}.project-hero{padding-bottom:1.5rem}.project-meta{display:flex;flex-wrap:wrap;gap:1.2rem 2.5rem;margin-top:1.5rem;padding:1rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.project-meta dt{color:var(--text-faint)}.project-meta dd{color:var(--text)}.project-body{padding-bottom:3rem}.project-text{max-width:44rem;font-size:1.05rem}.project-text h2,.project-text h3{margin-top:1.6em}.project-text ul,.project-text ol{padding-left:1.4em;margin:0 0 1em}.project-text li{margin:.3em 0}.md-figure{margin:1.8rem 0;border:1px solid var(--line);border-radius:.9rem;overflow:hidden;box-shadow:var(--shadow);background:var(--bg-raise)}.md-figure img{width:100%;height:auto}.md-figure figcaption{padding:.5rem .9rem;font-size:.8rem;color:var(--text-faint);border-top:1px solid var(--line)}.project-nav{display:flex;justify-content:space-between;gap:1rem;padding:1.5rem 1.25rem 0}.project-nav .project-nav-link{color:var(--text-soft);max-width:45%}.project-nav .project-nav-link:hover{color:var(--accent)}.project-nav .next{text-align:right;margin-left:auto}.link-list{list-style:none;margin:1.5rem 0;padding:0}.link-list li{margin:.3em 0}.blog-list{display:grid;list-style:none;margin:0;padding:0}.blog-item{display:grid;gap:.2rem 2rem;padding:1.4rem 0;border-bottom:1px solid var(--line)}@media (min-width: 48em){.blog-item{grid-template-columns:8rem 1fr}}.blog-item .blog-date{color:var(--text-faint)}.blog-item h2{font-size:1.35rem;font-weight:300;margin:0 0 .3rem}.blog-item .blog-excerpt{color:var(--text-soft);font-size:.95rem;margin:0;max-width:46rem}.blog-meta{color:var(--text-faint)}.prose.blog-prose,.generic-body .prose{padding-bottom:2rem;max-width:56rem}.prose.blog-prose>*:not(.highlight):not(pre):not(.md-figure),.generic-body .prose>*:not(.highlight):not(pre):not(.md-figure){max-width:44rem}.prose.blog-prose .highlight,.generic-body .prose .highlight{margin:1.4rem 0}.prose.blog-prose pre,.generic-body .prose pre{margin:0;background:var(--bg-soft);border:1px solid var(--line);border-radius:.6rem;padding:1rem 1.2rem;overflow-x:auto;font-size:.85rem;line-height:1.55}.prose.blog-prose code,.generic-body .prose code{font-family:ui-monospace,"SF Mono","Cascadia Code",Consolas,"Liberation Mono",monospace;font-size:.9em}.prose.blog-prose :not(pre)>code,.generic-body .prose :not(pre)>code{background:var(--bg-soft);border:1px solid var(--line);border-radius:.3em;padding:.08em .35em}.prose.blog-prose h2,.generic-body .prose h2{font-size:1.4rem;margin-top:1.8em}.prose.blog-prose ul,.prose.blog-prose ol,.generic-body .prose ul,.generic-body .prose ol{padding-left:1.4em;margin-bottom:1em}.prose.blog-prose li,.generic-body .prose li{margin:.25em 0}.about-grid{display:grid;gap:2.5rem}@media (min-width: 64em){.about-grid{grid-template-columns:3fr 2fr;align-items:start}}.about-text{max-width:44rem;font-size:1.08rem}.about-text h2{margin-top:1.6em;font-size:1.6rem}.about-text strong{font-weight:400}.about-text blockquote{margin:1.5em 0;padding-left:1.2em;border-left:2px solid var(--gold);color:var(--text-soft);font-size:1.15em;font-weight:100}.company-card{position:sticky;top:6rem;padding:1.6rem;background:var(--bg-raise);border:1px solid var(--line);border-radius:.9rem;box-shadow:var(--shadow);overflow:hidden}.company-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg, var(--azure), var(--gold))}.company-card .card-title{color:var(--text-faint);margin-bottom:1.1rem}.company-card .card-rows div{display:grid;grid-template-columns:9rem 1fr;gap:.6rem;padding:.45rem 0;border-bottom:1px dashed var(--line);font-size:.8rem}.company-card .card-rows div dt{color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em}.company-card .card-rows div dd{word-break:break-word}.company-card .card-qr{margin:1.2rem 0 .8rem;border-radius:.4rem;background:#fff;padding:.35rem}.company-card .card-motto{font-weight:100;font-size:1.05rem;color:var(--text-soft);margin:0}.timeline-wrap{border-top:1px solid var(--line)}.timeline{position:relative;margin-top:1rem;padding-left:1.6rem;list-style:none}.timeline::before{content:"";position:absolute;left:0;top:.4rem;bottom:.4rem;width:2px;background:linear-gradient(180deg, var(--azure), var(--gold));transform:scaleY(0);transform-origin:0 0;transition:transform 1.6s cubic-bezier(0.2, 0.6, 0.2, 1)}.timeline.in-view::before{transform:scaleY(1)}.timeline-item{position:relative;padding:0 0 2.2rem}.timeline-item::before{content:"";position:absolute;left:-1.6rem;top:.45rem;width:10px;height:10px;margin-left:-4px;background:var(--bg);border:2px solid var(--accent);transform:rotate(45deg)}.timeline-item .timeline-year{color:var(--accent)}.timeline-item h3{margin:.2rem 0 .3rem}.timeline-item p{color:var(--text-soft);max-width:36rem;margin:0}.about-timeline .section-head{margin-bottom:1.4rem}.about-timeline .about-intro{max-width:44rem;margin-bottom:1.6rem;color:var(--text-soft)}.timeline-text{color:var(--text-soft);max-width:42rem}.timeline-text>*{max-width:none}.timeline-text p{margin:0 0 .8em}.timeline-text p:last-child{margin-bottom:0}.timeline-text ul,.timeline-text ol{margin:.4em 0 .9em;padding-left:1.4em}.timeline-text li{margin:.2em 0}.timeline-text a{color:var(--accent)}.timeline-text strong{font-weight:400}.timeline-text blockquote{margin:.9em 0;padding-left:1em;border-left:2px solid var(--gold);color:var(--text-soft);font-weight:100}.about-media{display:none}@media (min-width: 64em){.about-media{display:block}}.about-media.is-parallax{position:sticky;top:5rem;height:calc(100vh - 7rem);overflow:hidden}.about-media-track{display:flex;flex-direction:column;gap:1.2rem;will-change:transform}.about-media-item{margin:0;aspect-ratio:4 / 3;display:grid;place-items:center}.about-media-item img{width:100%;height:100%;object-fit:contain}.contact-grid{display:grid;gap:2.5rem}@media (min-width: 64em){.contact-grid{grid-template-columns:3fr 2fr;align-items:start}}.contact-mega{display:block;font-size:clamp(1.4rem, 4.5vw, 2.6rem);font-weight:100;letter-spacing:-.01em;color:var(--text);margin-bottom:.4rem;width:fit-content;background-image:linear-gradient(90deg, var(--azure), var(--gold));background-repeat:no-repeat;background-position:0 100%;background-size:0% 2px;transition:background-size .45s ease, color .3s ease}.contact-mega:hover{color:var(--text);background-size:100% 2px}.contact-mega-phone{font-size:clamp(1.2rem, 3.5vw, 1.9rem);margin-bottom:2rem}.contact-text{color:var(--text-soft);max-width:38rem}.contact-text h2,.contact-text h3{font-size:1.25rem;margin-top:1.8em}.site-footer{position:relative;padding:2.6em 0 2.4em;text-align:center;background:var(--footer-bg);color:var(--text-faint);font-size:.95rem}.site-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:26px;background:var(--scan-ink);-webkit-mask:url("/img/bgbottom.png") repeat-x top;mask:url("/img/bgbottom.png") repeat-x top;pointer-events:none}.footer-lineage{margin:0}.footer-lineage .nobr{white-space:nowrap;margin:0 .45em}.footer-nav{margin-top:1.1em;display:flex;flex-wrap:wrap;justify-content:center;gap:.3em 1.5em;font-size:.82rem}.footer-nav a{color:var(--text-faint)}.footer-nav a:hover{color:var(--accent)}.chroma{color:var(--text)}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:var(--syn-comment);font-style:italic}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt{color:var(--syn-kw)}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:var(--syn-str)}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:var(--syn-num)}.chroma .na,.chroma .nb,.chroma .bp,.chroma .nc,.chroma .nd,.chroma .ni,.chroma .nf,.chroma .nl,.chroma .nn,.chroma .nx,.chroma .nt,.chroma .py{color:var(--syn-name)}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi{color:var(--syn-var)}.chroma .o,.chroma .ow{color:var(--syn-op)}.chroma .gp{color:var(--syn-prompt)}.chroma .go{color:var(--text-soft)}.chroma .gd{color:#c0392b}.chroma .gi{color:#1f9d55}.chroma .ge{font-style:italic}.chroma .gs{font-weight:bold}.chroma .err{color:inherit;background:none}.reveal{opacity:0;transform:translateY(26px);transition:opacity 0.8s ease,transform 0.8s cubic-bezier(0.2, 0.6, 0.2, 1);transition-delay:var(--d, 0ms)}.reveal.in-view{opacity:1;transform:none}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes bob{0%,100%{transform:translate(-50%, 0)}50%{transform:translate(-50%, 8px)}}@keyframes draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.crystal-wrap,.hero-scroll,.svc-card.in-view .line-icon :is(path, circle, rect, line, polyline, polygon, ellipse){animation:none !important}.svc-card .line-icon :is(path, circle, rect, line, polyline, polygon, ellipse){stroke-dasharray:none;stroke-dashoffset:0}.timeline::before{transition:none;transform:scaleY(1)}}
