*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:44 38% 97%;--foreground:200 30% 10%;--card:0 0% 100%;--card-foreground:200 30% 10%;--popover:0 0% 100%;--popover-foreground:200 30% 10%;--primary:199 66% 19%;--primary-foreground:45 45% 97%;--secondary:42 36% 90%;--secondary-foreground:200 30% 10%;--muted:42 28% 92%;--muted-foreground:205 12% 38%;--accent:158 42% 27%;--accent-foreground:45 45% 97%;--destructive:0 72% 45%;--destructive-foreground:45 45% 97%;--border:42 18% 82%;--input:42 18% 82%;--ring:199 66% 19%;--radius:.5rem;--ink:#15252e;--ink-soft:#41535c;--muted-ink:#5a6a72;--paper:#f7f3ea;--line:#1234431f;--line-strong:#12344338;--teal:#103a4d;--teal-bright:#1f6178;--green:#2f7457;--rust:#bd611f;--rust-soft:#c87a3a;--font-serif:"Source Serif 4", Georgia, "Times New Roman", serif;--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{border-color:hsl(var(--border))}html{scroll-behavior:smooth}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-sans);font-feature-settings:"cv05" 1, "ss01" 1;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}a{color:inherit;text-decoration:none}img,video,iframe{max-width:100%;display:block}.tabular{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.inset-0{inset:0}.left-\[50\%\]{left:50%}.right-4{right:1rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-50{z-index:50}.ml-2{margin-left:.5rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-9{height:2.25rem}.w-10{width:2.5rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-full{width:100%}.max-w-lg{max-width:32rem}.translate-x-\[-50\%\]{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-center{align-items:center}.justify-center{justify-content:center}.gap-4{gap:1rem}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.whitespace-nowrap{white-space:nowrap}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-input{border-color:hsl(var(--input))}.bg-background{background-color:hsl(var(--background))}.bg-background\/80{background-color:hsl(var(--background) / .8)}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.p-0{padding:0}.p-6{padding:1.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pt-0{padding-top:0}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.underline-offset-4{text-underline-offset:4px}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline{outline-style:solid}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0), var(--tw-enter-translate-y,0), 0) scale3d(var(--tw-enter-scale,1), var(--tw-enter-scale,1), var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0), var(--tw-exit-translate-y,0), 0) scale3d(var(--tw-exit-scale,1), var(--tw-exit-scale,1), var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-200{animation-duration:.2s}.paused{animation-play-state:paused}[data-reveal]{opacity:0;transition:opacity .7s,transform .7s cubic-bezier(.22,.65,.3,1);transition-delay:var(--reveal-delay,0s);will-change:opacity, transform;transform:translateY(18px)}[data-reveal].in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto}[data-reveal]{opacity:1;transition:none;transform:none}}.scroll-progress{height:3px;transform:scaleX(var(--p,0));transform-origin:0;background:linear-gradient(90deg, var(--rust), var(--green) 60%, var(--teal-bright));z-index:60;position:fixed;inset:0 0 auto}.pulse{background:#7fe0b0;border-radius:50%;width:.5rem;height:.5rem;animation:2.4s ease-in-out infinite pulse;display:inline-block;position:relative}@keyframes pulse{0%{box-shadow:0 0 #7fe0b08c}70%{box-shadow:0 0 0 7px #7fe0b000}to{box-shadow:0 0 #7fe0b000}}@media (prefers-reduced-motion:reduce){.pulse{animation:none}}.site-shell{background:radial-gradient(120% 90% at 92% -10%,#1f617814,#0000 60%),linear-gradient(#f8f5ed 0%,#f6f1e6 55%,#eef3ef 100%);min-height:100vh;position:relative}.site-nav{z-index:40;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f8f5edd1;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem clamp(1rem,4vw,3rem);display:flex;position:sticky;top:0}.brand-lockup{align-items:center;gap:.65rem;min-width:max-content;display:inline-flex}.brand-lockup span{width:2.25rem;height:2.25rem;color:var(--paper);background:var(--teal);letter-spacing:.02em;border-radius:9px;place-items:center;font-size:.72rem;font-weight:800;display:grid}.brand-lockup strong{letter-spacing:-.01em;font-size:.95rem}.site-nav nav{scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:.15rem;max-width:100%;display:flex;overflow-x:auto}.site-nav nav::-webkit-scrollbar{display:none}.site-nav nav a{color:#4d5a62;border-radius:999px;flex:none;padding:.45rem .8rem;font-size:.88rem;font-weight:600;transition:color .2s,background .2s;position:relative}.site-nav nav a:hover{color:var(--teal);background:#123a4d12}.site-nav nav a.is-active{color:var(--teal)}.site-nav nav a.is-active:after{content:"";background:var(--green);border-radius:2px;height:2px;position:absolute;bottom:.12rem;left:.8rem;right:.8rem}.hero-section,.section-band,.about-section,.site-footer{width:min(1180px,100% - 2rem);margin:0 auto}#projects,#method,#highlights,#media,#publications,#contact{scroll-margin-top:5.75rem}.hero-section{grid-template-columns:minmax(0,1fr) minmax(380px,.82fr);align-items:center;gap:clamp(1.5rem,4vw,4rem);padding:clamp(3.25rem,7vw,5.75rem) 0 clamp(2.75rem,6vw,4.5rem);display:grid}.hero-copy{max-width:780px}.eyebrow{color:var(--green);letter-spacing:.13em;text-transform:uppercase;margin:0 0 .85rem;font-size:.76rem;font-weight:700}.hero-copy h1{max-width:15ch;font-family:var(--font-serif);font-optical-sizing:auto;letter-spacing:-.018em;color:var(--ink);margin:0;font-size:clamp(2.9rem,5.4vw,4.7rem);font-weight:600;line-height:1.02}.hero-copy h1 em{color:var(--teal-bright);font-style:italic}.hero-deck{max-width:640px;color:var(--ink-soft);margin:1.4rem 0 0;font-size:clamp(1.05rem,1.7vw,1.28rem);line-height:1.55}.hero-invitation{max-width:640px;color:var(--muted-ink);margin:1rem 0 0;font-size:.94rem;font-weight:600;line-height:1.5}.hero-quick-links{scrollbar-width:none;flex-wrap:nowrap;gap:.55rem;max-width:100%;margin-top:.9rem;padding-bottom:.1rem;display:flex;overflow-x:auto}.hero-quick-links::-webkit-scrollbar{display:none}.hero-quick-links a{border:1px solid var(--line);color:#154f71;white-space:nowrap;background:#ffffff8c;border-radius:999px;flex:none;align-items:center;gap:.38rem;padding:.38rem .62rem;font-size:.83rem;font-weight:700;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.hero-quick-links a:hover{border-color:var(--line-strong);color:var(--rust);background:#ffffffe0}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.9rem;display:flex}.hero-trust{color:var(--muted-ink);letter-spacing:.01em;margin-top:1.6rem;font-size:.84rem;font-weight:500}.hero-trust strong{color:var(--ink-soft);font-weight:700}.hero-board{background:linear-gradient(155deg,#0d2c3af5,#14494ef0),url(https://assets.tfwelch.com/images/header-background.jpg) 50%/cover;border:1px solid #ffffff24;border-radius:14px;align-self:stretch;overflow:hidden;box-shadow:0 30px 70px #14252e42}.board-head{background:#ffffff0a;border-bottom:1px solid #ffffff1f;justify-content:space-between;align-items:center;padding:.95rem 1.15rem;display:flex}.board-live{color:#d9f2e6;letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:.5rem;font-size:.74rem;font-weight:700;display:inline-flex}.board-meta{color:#e8f0ee99;letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:600}.board-stats{flex-direction:column;display:flex}.board-stat{border-bottom:1px solid #ffffff17;grid-template-columns:auto 1fr;align-items:baseline;gap:.1rem .9rem;padding:.95rem 1.15rem;transition:background .2s;display:grid;position:relative}.board-stat:last-child{border-bottom:0}.board-stat:hover{background:#ffffff0f}.board-stat strong{text-align:right;color:#fbf8f1;letter-spacing:-.02em;grid-row:1/span 2;align-self:center;min-width:5.4rem;font-size:clamp(1.9rem,3vw,2.5rem);font-weight:800;line-height:1}.board-stat>span{color:#f4efe4;font-size:.92rem;font-weight:700}.board-stat small{color:#e8f0eea8;font-size:.78rem;font-weight:500;line-height:1.35}.board-stat-arrow{color:#e8f0ee8c;opacity:0;width:1rem;height:1rem;transition:opacity .2s,transform .2s;position:absolute;top:.95rem;right:1.1rem;transform:translate(-3px,3px)}.board-stat:hover .board-stat-arrow{opacity:1;transform:none}.section-band{padding:clamp(3.25rem,6vw,5.5rem) 0}.section-heading{max-width:720px;margin-bottom:1.75rem}.section-heading h2,.about-copy h2{font-family:var(--font-serif);font-optical-sizing:auto;letter-spacing:-.015em;color:var(--ink);margin:0;font-size:clamp(2rem,4vw,3.3rem);font-weight:600;line-height:1.05}.section-heading p:not(.eyebrow),.about-copy p{color:var(--ink-soft);margin:.9rem 0 0;font-size:1.02rem;line-height:1.6}.section-heading-row{justify-content:space-between;align-items:end;gap:1.5rem;max-width:none;display:flex}.section-heading-row>p{max-width:380px}.filter-row{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;display:flex}.featured-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem;display:grid}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem;display:grid}.project-card{border-color:var(--line);background:#ffffffe6;border-radius:14px;transition:transform .25s,box-shadow .25s,border-color .25s;display:flex;overflow:hidden;box-shadow:0 16px 40px #1f2d3312}.project-card>div{flex-direction:column;width:100%;display:flex}.project-card:hover{border-color:var(--line-strong);transform:translateY(-4px);box-shadow:0 26px 60px #1f2d3326}.project-preview{border-bottom:1px solid var(--line);background:#dfe6e2;height:210px;position:relative;overflow:hidden}.project-card-large .project-preview{height:230px}.project-image,.project-video{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:transform .5s}.project-card:hover .project-image,.project-card:hover .project-video{transform:scale(1.04)}.project-glyph{place-items:center;padding:0;display:grid}.project-glyph svg{width:100%;height:100%}.project-glyph-access{background:linear-gradient(140deg,#bfd8df,#eef3ef)}.project-glyph-safety,.project-glyph-fatalities{background:linear-gradient(140deg,#f0d5bd,#f8f0e4)}.project-glyph-cycling,.project-glyph-network{background:linear-gradient(140deg,#bcdccd,#edf6ef)}.project-glyph-warp{background:linear-gradient(140deg,#b9d0dd,#f2efe3)}.project-glyph-trees{background:linear-gradient(140deg,#bcd6bb,#edf4e7)}.project-body{flex-direction:column;flex:1;padding:1.25rem 1.3rem 1.3rem;display:flex}.project-kicker{justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.55rem;display:flex}.project-eyebrow{color:var(--green);letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;font-weight:700}.status-pill{border:1px solid var(--line);color:var(--ink-soft);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;background:#fff9;border-radius:999px;align-items:center;gap:.4rem;padding:.22rem .6rem .22rem .5rem;font-size:.68rem;font-weight:700;display:inline-flex}.status-pill i{background:var(--muted-ink);border-radius:50%;width:.45rem;height:.45rem}.status-live i{background:#2bb673;box-shadow:0 0 0 3px #2bb6732e}.status-beta i{background:var(--rust-soft);box-shadow:0 0 0 3px #c87a3a2e}.status-deploy i{background:var(--teal-bright);box-shadow:0 0 0 3px #1f61782e}.project-body h3{font-family:var(--font-serif);font-optical-sizing:auto;letter-spacing:-.01em;color:var(--ink);margin:0;font-size:1.42rem;font-weight:600;line-height:1.12}.project-card-large .project-body h3{font-size:1.5rem}.project-body>p{color:var(--ink-soft);margin:.6rem 0 0;font-size:.95rem;line-height:1.55}.spec-row{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem 1rem;margin-top:1.15rem;padding-top:1rem;display:grid}.spec-row>div{min-width:0}.spec-label{color:var(--muted-ink);letter-spacing:.07em;text-transform:uppercase;font-size:.64rem;font-weight:700;display:block}.spec-value{color:var(--ink);overflow-wrap:anywhere;margin-top:.25rem;font-size:.92rem;font-weight:650;line-height:1.25;display:block}.tag-row{flex-wrap:wrap;gap:.4rem;margin-top:1rem;display:flex}.tag-row span{color:var(--muted-ink);background:#1234430d;border-radius:999px;padding:.24rem .6rem;font-size:.74rem;font-weight:550}.project-actions{justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;padding-top:1.2rem;display:flex}.project-domain{color:var(--muted-ink);letter-spacing:.01em;font-variant-numeric:tabular-nums;font-size:.76rem;font-weight:600}.method-band{border-block:1px solid var(--line);background:linear-gradient(#ffffff59,#eef3ef80)}.method-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 2.25rem;margin-top:.5rem;display:grid}.principle{border-top:2px solid #12344329;padding-top:1.1rem}.principle-num{font-family:var(--font-serif);color:var(--rust);font-size:1.1rem;font-weight:500}.principle h3{font-family:var(--font-serif);letter-spacing:-.01em;color:var(--ink);margin:.5rem 0 0;font-size:1.3rem;font-weight:600;line-height:1.2}.principle p{color:var(--ink-soft);margin:.55rem 0 0;font-size:.96rem;line-height:1.58}.principle p b{color:var(--teal);font-weight:700}.archive-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem;display:grid}.archive-card{border-color:var(--line);background:#ffffffd1;border-radius:12px;transition:transform .25s,box-shadow .25s;overflow:hidden}.archive-card:hover{transform:translateY(-3px);box-shadow:0 18px 44px #1f2d331f}.archive-media{background:#dbe2df;height:155px;overflow:hidden}.archive-media img,.archive-media video{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.archive-body{padding:1.05rem 1.1rem 1.15rem}.archive-body h3{font-family:var(--font-serif);color:var(--ink);margin:0;font-size:1.16rem;font-weight:600;line-height:1.18}.archive-body p{color:var(--ink-soft);margin:.5rem 0 0;font-size:.9rem;line-height:1.5}.archive-body a,.article-card a,.publication-item,.about-links a,.footer-links a{color:#154f71;align-items:center;gap:.35rem;font-size:.86rem;font-weight:700;display:inline-flex}.archive-body a{margin-top:.8rem}.archive-body a:hover,.article-card a:hover{color:var(--rust)}.about-section{grid-template-columns:320px minmax(0,1fr);align-items:center;gap:clamp(1.5rem,4vw,3.25rem);padding:clamp(3.25rem,6vw,5.5rem) 0;display:grid}.about-photo{border-radius:14px;overflow:hidden;box-shadow:0 26px 60px #1f2d332e}.about-photo img{aspect-ratio:4/5;-o-object-fit:cover;object-fit:cover;width:100%}.about-links{flex-wrap:wrap;gap:.85rem;margin-top:1.25rem;display:flex}.about-links a:hover{color:var(--rust)}.social-icon-row{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.social-icon-row a{border:1px solid var(--line);color:#154f71;background:#ffffffb8;border-radius:999px;place-items:center;width:2.35rem;height:2.35rem;transition:background .2s,color .2s,transform .2s,border-color .2s;display:inline-grid}.social-icon-row a:hover{border-color:var(--line-strong);color:var(--rust);background:#fffffff2;transform:translateY(-2px)}.social-icon-row img{-o-object-fit:contain;object-fit:contain;width:1rem;height:1rem}.snapshot-band{border-block:1px solid var(--line);background:#ffffff4d}.snapshot-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;display:grid}.snapshot-item{border:1px solid var(--line);background:#ffffffbd;border-radius:12px;grid-template-columns:2.25rem minmax(0,1fr);gap:.8rem;min-height:9rem;padding:1rem;display:grid}.snapshot-item>svg{width:2.25rem;height:2.25rem;color:var(--paper);background:var(--green);border-radius:8px;padding:.45rem}.snapshot-item strong{color:var(--ink);font-size:.96rem;line-height:1.25;display:block}.snapshot-item em{color:var(--muted-ink);margin-top:.45rem;font-size:.86rem;font-style:normal;line-height:1.5;display:block}.impact-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem;margin-bottom:1.15rem;display:grid}.impact-stat{border:1px solid var(--line);background:#ffffffc7;border-radius:12px;padding:1.25rem 1.3rem}.impact-stat strong{color:var(--teal);letter-spacing:-.02em;font-size:clamp(2.1rem,3.6vw,3.1rem);font-weight:800;line-height:1;display:block}.impact-stat>span{color:var(--ink);margin-top:.6rem;font-size:.92rem;font-weight:750;display:block}.impact-stat p{color:var(--muted-ink);margin:.4rem 0 0;font-size:.86rem;line-height:1.45}.impact-detail-grid{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);align-items:start;gap:1.15rem;margin-bottom:1.15rem;display:grid}.impact-card{border-color:var(--line);background:#ffffffc2;border-radius:12px}.impact-card .p-6{padding:1.2rem}.impact-card-label{color:var(--green);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .85rem;font-size:.72rem;font-weight:800}.ranked-list{gap:.4rem;display:grid}.ranked-list a{background:#f4efe4a6;border-radius:9px;grid-template-columns:2.1rem minmax(0,1fr);gap:.15rem .75rem;padding:.7rem .75rem;transition:background .2s;display:grid}.ranked-list a:hover{background:#2f74571a}.ranked-list span{font-family:var(--font-serif);color:var(--rust);grid-row:span 2;align-self:center;font-size:1.05rem;font-weight:500}.ranked-list strong{color:var(--ink);font-size:.92rem;font-weight:650;line-height:1.25}.ranked-list em{color:var(--muted-ink);font-variant-numeric:tabular-nums;font-size:.77rem;font-style:normal;font-weight:600}.publisher-list{gap:.2rem;display:grid}.publisher-list div{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:baseline;gap:.75rem;padding:.55rem 0;display:grid}.publisher-list div:last-child{border-bottom:0}.publisher-list span{color:var(--ink-soft);font-size:.9rem;font-weight:650}.publisher-list strong{color:var(--teal);font-variant-numeric:tabular-nums;font-weight:800}.publisher-bar{background:linear-gradient(90deg, var(--teal-bright), var(--green));transform-origin:0;border-radius:4px;grid-column:1/-1;height:4px;margin-top:.35rem}.video-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.15rem;margin-top:.4rem;display:grid}.video-card{border:1px solid var(--line);background:#fffc;border-radius:12px;transition:transform .22s,box-shadow .22s;display:block;overflow:hidden}.video-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px #1f2d3321}.media-thumb{background:#dfe8e3;height:132px;overflow:hidden}.media-thumb img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.media-fallback{height:100%;color:var(--paper);background:linear-gradient(145deg,#123a4d,#2f7457);flex-direction:column;justify-content:space-between;padding:.95rem;display:flex}.media-fallback span{letter-spacing:.05em;text-transform:uppercase;border:1px solid #f8f5ed59;border-radius:999px;align-self:flex-start;padding:.26rem .45rem;font-size:.68rem;font-weight:800}.media-fallback-podcast,.media-fallback-radio{background:linear-gradient(145deg,#6b4f1d,#9a6b2b)}.media-fallback-source{background:linear-gradient(145deg,#26364a,#556b83)}.video-card>span{padding:.85rem .9rem .95rem;display:block}.video-card strong{color:var(--ink);font-size:.9rem;font-weight:650;line-height:1.25;display:block}.video-card em,.article-meta{color:var(--muted-ink);margin-top:.35rem;font-size:.77rem;font-style:normal;font-weight:600;display:block}.article-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem;margin-top:1.15rem;display:grid}.article-card{border-color:var(--line);background:#ffffffc2;border-radius:12px;transition:transform .22s,box-shadow .22s}.article-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px #1f2d331f}.article-card .p-6{padding:1.2rem}.article-icon{width:2rem;height:2rem;color:var(--paper);background:var(--green);border-radius:8px;place-items:center;display:grid}.article-card h3{font-family:var(--font-serif);color:var(--ink);margin:.85rem 0 0;font-size:1.16rem;font-weight:600;line-height:1.2}.article-card p{color:var(--ink-soft);margin:.55rem 0 0;font-size:.9rem;line-height:1.5}.article-card a{margin-top:.9rem}.publication-actions{flex-wrap:wrap;justify-content:flex-end;gap:.55rem;display:flex}.academic-paper-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.15rem;margin-bottom:1.25rem;display:grid}.paper-card{border-color:var(--line);background:#ffffffc2;border-radius:12px;transition:transform .22s,box-shadow .22s}.paper-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px #1f2d331f}.paper-card .p-6{padding:1.15rem}.paper-citation{color:var(--rust);align-items:baseline;gap:.35rem;margin-bottom:.85rem;display:inline-flex}.paper-citation strong{letter-spacing:-.02em;font-size:1.75rem;font-weight:800;line-height:1}.paper-citation>span{letter-spacing:.05em;text-transform:uppercase;font-size:.72rem;font-weight:800}.paper-card h3{color:var(--ink);margin:0;font-size:.96rem;font-weight:700;line-height:1.28}.paper-card p{color:var(--muted-ink);margin:.6rem 0 0;font-size:.82rem;line-height:1.4}.paper-card em{color:var(--muted-ink);font-variant-numeric:tabular-nums;margin-top:.65rem;font-size:.78rem;font-style:normal;font-weight:800;display:block}.subsection-heading{justify-content:space-between;align-items:end;gap:1rem;margin:1.5rem 0 .8rem;display:flex}.subsection-heading h3{font-family:var(--font-serif);color:var(--ink);margin:0;font-size:1.2rem;font-weight:600}.subsection-heading p{max-width:520px;color:var(--muted-ink);margin:0;font-size:.85rem}.publication-note{color:#8a4d18;margin:-.4rem 0 1rem;font-size:.88rem;font-weight:600}.publication-list{gap:.55rem;display:grid}.publication-item{border:1px solid var(--line);background:#ffffffc7;border-radius:10px;align-items:start;gap:1rem;padding:1rem 1.1rem;transition:border-color .2s,background .2s}.publication-item:hover{border-color:var(--line-strong);background:#fffffff2}.publication-item span{min-width:3.4rem;font-family:var(--font-serif);color:var(--rust);font-variant-numeric:tabular-nums;font-size:.92rem;font-weight:500}.publication-item strong{color:var(--ink);font-size:.98rem;font-weight:650;line-height:1.3}.publication-item em{color:var(--muted-ink);margin-top:.25rem;font-size:.83rem;font-style:normal;font-weight:550;display:block}.work-band{border-top:1px solid var(--line);grid-template-columns:minmax(0,.85fr) minmax(380px,1fr);align-items:start;gap:clamp(1.5rem,4vw,3rem);display:grid}.work-copy{max-width:560px}.work-copy h2{font-family:var(--font-serif);font-optical-sizing:auto;color:var(--ink);margin:0;font-size:clamp(1.9rem,3.4vw,2.8rem);font-weight:600;line-height:1.08}.work-copy p:not(.eyebrow){color:var(--ink-soft);margin:.9rem 0 0;font-size:1rem;line-height:1.6}.work-actions{flex-wrap:wrap;gap:.7rem;margin-top:1.35rem;display:flex}.work-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.work-item{border:1px solid var(--line);background:#ffffffc7;border-radius:12px;grid-template-columns:2.35rem minmax(0,1fr);gap:.85rem;min-height:8.4rem;padding:1rem;transition:transform .22s,box-shadow .22s,border-color .22s;display:grid}.work-item:hover{border-color:var(--line-strong);transform:translateY(-3px);box-shadow:0 18px 40px #1f2d331f}.work-item>svg{width:2.35rem;height:2.35rem;color:var(--paper);background:var(--teal);border-radius:8px;padding:.45rem;display:grid}.work-item span{display:block}.work-item strong{color:var(--ink);font-size:.98rem;line-height:1.25;display:block}.work-item em{color:var(--muted-ink);margin-top:.45rem;font-size:.86rem;font-style:normal;line-height:1.5;display:block}.site-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1.5rem;padding:2.25rem 0 3rem;display:flex}.site-footer>div:first-child{flex-direction:column;gap:.2rem;display:flex}.site-footer strong{font-family:var(--font-serif);color:var(--ink);font-size:1.05rem;font-weight:600}.site-footer span{color:var(--muted-ink);font-size:.85rem}.footer-socials{margin-top:.65rem}.footer-links{flex-wrap:wrap;justify-content:flex-end;gap:.85rem;display:flex}.footer-links a:hover{color:var(--rust)}@media (width<=1040px){.hero-section,.about-section{grid-template-columns:1fr}.featured-grid,.archive-grid,.article-grid,.snapshot-grid,.academic-paper-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.impact-detail-grid,.work-band{grid-template-columns:1fr}.video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-photo{width:min(320px,100%)}}@media (width<=760px){#projects,#method,#highlights,#media,#publications,#contact{scroll-margin-top:9.5rem}.site-nav{flex-direction:column;align-items:flex-start;gap:.5rem}.site-nav nav{justify-content:flex-start;width:100%}.site-nav nav a{padding:.42rem .62rem;font-size:.85rem}.hero-section{padding-top:2.5rem}.hero-copy h1{font-size:clamp(2.7rem,12vw,3.8rem)}.section-heading-row{flex-direction:column;align-items:flex-start}.filter-row{justify-content:flex-start}.featured-grid,.project-grid,.archive-grid,.method-grid,.article-grid,.snapshot-grid,.academic-paper-grid,.impact-grid,.video-grid{grid-template-columns:1fr}.subsection-heading{flex-direction:column;align-items:flex-start}.publication-actions{justify-content:flex-start}.work-list{grid-template-columns:1fr}.spec-row{grid-template-columns:repeat(2,minmax(0,1fr))}.project-preview,.project-card-large .project-preview{height:190px}.site-footer{flex-direction:column;align-items:flex-start}.footer-links{justify-content:flex-start}}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[state\=open\]\:animate-in[data-state=open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[state\=closed\]\:animate-out[data-state=closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}@media (width>=640px){.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}
