@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap";:root{--bg: #ffffff;--text: #111111;--muted: #888888;--border: #e8e8e8;--tray-bg: #fafafa;--font: "Inter", system-ui, -apple-system, sans-serif;--size: 13px;--lh: 1.6;--gutter: clamp(1.5rem, 4vw, 3rem);--tray-w: 420px;--ease: .25s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth}body{font-family:var(--font);font-size:var(--size);color:var(--text);background:var(--bg);line-height:var(--lh)}a{color:inherit}button{font-family:var(--font)}img{display:block;max-width:100%}.nav{position:sticky;top:0;z-index:100;display:flex;flex-direction:column;background:var(--bg)}.nav-inner{display:flex;justify-content:space-between;align-items:center;padding:1.1rem var(--gutter)}.nav-rule{height:1px;background:#222;margin:0 var(--gutter)}.nav-name{font-size:var(--size);font-weight:400;text-decoration:none;letter-spacing:-.01em}.nav-right{display:flex;gap:1.75rem;align-items:center}.nav-btn{font-size:var(--size);color:var(--text);background:none;border:none;cursor:pointer;padding:0;letter-spacing:-.01em;transition:opacity var(--ease)}.nav-btn:hover{opacity:.45}.hero{padding:4rem var(--gutter) 3.5rem;max-width:52rem}.hero-pop{font-size:clamp(1.7rem,3.5vw,2.6rem);font-weight:300;letter-spacing:-.03em;line-height:1.18;margin-bottom:1.5rem}.hero-body{color:var(--muted);max-width:52ch;line-height:1.7}.hero-body a{text-decoration:underline;text-underline-offset:2px;color:var(--muted)}.inline-contact-btn{background:none;border:none;padding:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.feed{padding:0 var(--gutter) 5rem}.feed-label{display:flex;justify-content:space-between;align-items:center;padding:.85rem 0;font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);position:relative}.feed-label-left{display:flex;align-items:center;gap:.75rem}.view-toggle{display:flex;align-items:center;gap:.2rem}.view-btn{background:none;border:none;padding:2px;cursor:pointer;color:var(--muted);display:flex;align-items:center;font-size:15px;line-height:1;transition:color var(--ease)}.view-btn:hover,.view-btn.is-active{color:var(--text)}#project-feed.view-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem}#project-feed.view-grid .feed-item{grid-template-columns:1fr;gap:calc(var(--gutter) * .2);margin:0;padding:0}#project-feed.view-grid .feed-tags{display:none}.feed-field{display:none;color:var(--muted);font-weight:300;margin-left:.4rem}#project-feed.view-grid .feed-field{display:inline}.filter-select-btn{font-family:var(--font);font-size:11px;font-weight:400;color:var(--muted);background:none;border:none;cursor:pointer;padding:0;letter-spacing:.06em;text-transform:uppercase;display:flex;align-items:center;gap:.3rem;transition:color var(--ease)}.filter-select-btn:hover,.filter-select-btn.is-active{color:var(--text)}.filter-caret{font-size:8px;line-height:1}.filter-dropdown{position:absolute;left:0;right:0;top:100%;background:var(--bg);border:1px solid var(--border);z-index:50;display:none}.filter-dropdown.is-open{display:block}.filter-option{display:block;width:100%;font-family:var(--font);font-size:11px;color:var(--muted);background:none;border:none;cursor:pointer;padding:.4rem .75rem;text-align:left;letter-spacing:.06em;text-transform:uppercase;transition:color var(--ease)}.filter-option:hover{color:var(--text)}.filter-option.is-active{color:var(--text);font-weight:500}.filter-domain-row{display:flex;flex-wrap:wrap;padding:.15rem .25rem}.filter-domain-row .filter-option{width:auto;white-space:nowrap}#filter-pills{display:flex;align-items:center;gap:.75rem}.search-wrap{position:relative;display:flex;flex-direction:row-reverse;align-items:center;gap:4px}.search-btn{background:none;border:none;cursor:pointer;padding:2px;color:var(--muted);display:flex;align-items:center;line-height:1;transition:color var(--ease)}.search-btn:hover,.search-wrap.is-open .search-btn{color:var(--text)}.search-input-wrap{overflow:hidden;max-width:0;transition:max-width .3s var(--ease)}.search-wrap.is-open .search-input-wrap{max-width:160px}.search-input{font-family:var(--font);font-size:11px;font-weight:400;color:var(--text);background:transparent;border:none;border-bottom:1px solid var(--border);outline:none;padding:2px 4px;width:150px;letter-spacing:.03em}.search-input::placeholder{color:var(--muted)}.search-autocomplete{position:absolute;top:calc(100% + 8px);right:0;background:var(--bg);border:1px solid var(--border);min-width:180px;z-index:200;display:none}.search-autocomplete.is-open{display:block}.search-suggestion{padding:.4rem .75rem;font-family:var(--font);font-size:11px;font-weight:400;letter-spacing:.04em;color:var(--muted);cursor:pointer;white-space:nowrap;transition:color var(--ease)}.search-suggestion:hover{color:var(--text)}.search-suggestion-company{color:var(--muted)}.feed-item{display:grid;grid-template-columns:4fr 1fr;gap:var(--gutter);padding:12px;margin:0 -12px 50px;text-decoration:none;color:inherit;transition:opacity var(--ease)}.feed-item:hover{opacity:1}.feed-item:focus-visible{outline:2px solid #ccc;outline-offset:4px}.feed-item.is-coming-soon{cursor:default;pointer-events:none}.feed-coming-soon-label{display:inline-flex;align-items:center;padding:1.5px 4.5px;background:#ccc;color:#666;font-size:10px;font-weight:300;letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;line-height:1}.feed-badges{display:flex;gap:.3rem;margin-bottom:.4rem}.feed-item.is-private{cursor:default;pointer-events:none;opacity:.4}.feed-item.is-static{cursor:default}.feed-item.is-static:hover{opacity:1}.feed-thumb{position:relative;aspect-ratio:16/9;background:#efefed;overflow:hidden}.feed-thumb img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:filter .4s ease,transform .4s ease,opacity .7s cubic-bezier(.4,0,.2,1)}.img-credit{position:absolute;bottom:.4rem;left:.5rem;font-size:9px;color:#999;letter-spacing:.03em;pointer-events:none;z-index:1}.feed-item:hover .feed-thumb img{filter:grayscale(0);transform:scale(1.01)}.feed-item.is-static .feed-thumb img{filter:grayscale(0)}.feed-item.is-static:hover .feed-thumb img{transform:none}.feed-thumb.is-pair,.feed-thumb.is-trio{aspect-ratio:auto;background:none;overflow:visible;display:grid;gap:4px}.feed-thumb.is-pair{grid-template-columns:1fr 1fr}.feed-thumb.is-trio{grid-template-columns:1fr 1fr 1fr}.feed-thumb-item{position:relative;overflow:hidden}.feed-thumb-item img{width:100%;height:100%;object-fit:cover;display:block}.feed-thumb.is-pair .feed-thumb-item{aspect-ratio:1/1}.feed-thumb.is-trio .feed-thumb-item{aspect-ratio:2/3}@media(max-width:480px){.feed-thumb.is-trio{grid-template-columns:1fr 1fr}.feed-thumb.is-trio .feed-thumb-item{aspect-ratio:1/1}.feed-thumb.is-trio .feed-thumb-item:last-child{grid-column:1 / -1;aspect-ratio:16/9}}.feed-meta{display:flex;flex-direction:column;gap:.45rem;padding-top:.15rem}.feed-meta-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.feed-title{font-size:var(--size);font-weight:600;letter-spacing:-.01em}.feed-arrow{font-size:13px;opacity:.4;flex-shrink:0;line-height:1.6}.feed-desc{color:var(--muted);flex:1;line-height:1.6}.feed-tags{display:flex;flex-wrap:wrap;gap:.2rem;margin-top:auto;padding-top:.25rem}.feed-tag{font-size:11px;color:var(--muted);letter-spacing:.01em}.feed-tag:before{content:"#"}.project-hero-meta{position:sticky;top:var(--nav-h, 56px);z-index:99;background:var(--bg);display:flex;justify-content:space-between;align-items:center;padding:.75rem var(--gutter)}.project-close{font-size:1.1rem;color:var(--muted);text-decoration:none;line-height:1;flex-shrink:0;transition:color var(--ease)}.project-close:hover{color:var(--text)}.project-hero{display:grid;grid-template-columns:1fr auto;gap:var(--gutter);align-items:start;padding:2rem var(--gutter) 2.5rem}.project-subtitle{font-size:var(--size);color:var(--muted);letter-spacing:-.01em}.project-pop{font-size:clamp(1.4rem,2.8vw,2.1rem);font-weight:300;letter-spacing:-.03em;line-height:1.22;max-width:22ch}.project-skills{text-align:right;padding-top:.1rem;flex-shrink:0}.project-skills-label{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.6rem}.project-skills-list{list-style:none;display:flex;flex-direction:column;gap:.2rem}.project-skills-list li{font-size:var(--size);color:var(--muted)}.project-hero.has-recognition{grid-template-columns:1fr auto auto}.project-recognition{text-align:right;padding-top:.1rem;flex-shrink:0}.project-recognition-label{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.6rem}.project-recognition-list{list-style:none;display:flex;flex-direction:column;gap:.2rem}.project-recognition-list li a,.project-recognition-list li span{font-size:var(--size);color:var(--muted);text-decoration:none;transition:color var(--ease)}.project-recognition-list li a:hover{color:var(--text)}.project-hero-img{padding:2.5rem var(--gutter)}.project-hero-img .img-wrap{position:relative;aspect-ratio:16/9;background:#efefed;overflow:hidden;width:100%}.project-hero-img img{width:100%;height:100%;object-fit:cover}.project-body{display:grid;grid-template-columns:1fr 1fr;gap:var(--gutter);padding:2.5rem var(--gutter)}.project-body p{color:var(--muted);line-height:1.7}.activity-feed{padding:0 var(--gutter) 3rem}.activity-feed .feed-item:last-child{margin-bottom:0}.acknowledgements{padding:2.5rem var(--gutter)}.acknowledgements-text{color:var(--muted);max-width:52rem}.section-rule{height:1px;background:var(--border);margin:0 var(--gutter)}.section-label{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:1.25rem}.project-nav{display:grid;grid-template-columns:1fr 1fr}.project-nav-item{display:block;padding:2.5rem var(--gutter);text-decoration:none;color:inherit;transition:opacity var(--ease)}.project-nav-item:hover{opacity:.5}.project-nav-item.is-next{text-align:right}.project-nav-label{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.6rem}.project-nav-title{font-weight:500;margin-bottom:1rem;letter-spacing:-.01em}.project-nav-thumb{aspect-ratio:16/9;background:#efefed;overflow:hidden}.project-nav-thumb img{width:100%;height:100%;object-fit:cover}.tray{position:fixed;top:0;right:0;width:var(--tray-w);max-width:100%;height:100%;background:var(--tray-bg);border-left:1px solid var(--border);z-index:200;transform:translate(105%);transition:transform var(--ease);overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;padding:1.5rem 1.75rem 3rem}.tray.is-open{transform:translate(0)}.tray__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2.5rem}.tray__title{font-size:var(--size);font-weight:500;letter-spacing:-.01em}.tray__close{font-size:1.25rem;color:var(--text);background:none;border:none;cursor:pointer;padding:0;line-height:1;opacity:.35;transition:opacity var(--ease)}.tray__close:hover{opacity:1}.cv-photo{aspect-ratio:1/1;background:#efefed;width:100%;margin-bottom:1rem;overflow:hidden}.cv-photo img{width:100%;height:100%;object-fit:cover}.cv-bio{font-size:11px;color:var(--muted);line-height:1.65;margin-bottom:2rem}.cv-section{margin-bottom:2rem}.cv-section-title{font-size:10px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding-bottom:.4rem;border-bottom:1px solid var(--border);margin-bottom:.75rem}.cv-entry{margin-bottom:.75rem}.cv-entry-title{font-size:11px;font-weight:500;letter-spacing:-.01em;margin-bottom:.1rem}.cv-entry-meta{font-size:11px;color:var(--muted);line-height:1.5}.cv-skills-list{list-style:none;display:flex;flex-direction:column;gap:.2rem}.cv-skills-list li{font-size:11px;color:var(--muted)}.cv-download{display:inline-block;margin-top:2rem;font-size:11px;color:var(--muted);text-decoration:none;transition:color var(--ease)}.cv-download:hover{color:var(--text)}.tray__form{display:flex;flex-direction:column;flex:1}.contact-type-section{margin-bottom:1.5rem}.contact-type-header{font-size:10px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding-bottom:.4rem;border-bottom:1px solid var(--border);margin-bottom:.75rem}.contact-type-options{display:flex;flex-wrap:wrap;gap:6px}.contact-type-option{padding:5px 10px;background:transparent;border:1px solid var(--border);border-radius:0;font-family:var(--font);font-size:11px;font-weight:400;color:var(--muted);cursor:pointer;transition:all var(--ease);letter-spacing:.02em}.contact-type-option:hover{border-color:var(--text);color:var(--text)}.contact-type-option.active{background:var(--text);border-color:var(--text);color:var(--bg)}.form-group{border-bottom:1px solid var(--border);padding:11px 0}.tray__form label{display:none}.tray__form input,.tray__form textarea{width:100%;font-family:var(--font);font-size:var(--size);padding:0;border:none;background:transparent;color:var(--text);outline:none;resize:vertical}.tray__form input::placeholder,.tray__form textarea::placeholder{color:var(--muted);font-size:var(--size)}.tray__form textarea{min-height:100px;padding-top:6px}.tray__form .btn{font-family:var(--font);font-size:11px;color:var(--muted);background:none;border:none;cursor:pointer;padding:0;margin-top:1.5rem;align-self:flex-start;transition:color var(--ease)}.tray__form .btn:hover{color:var(--text)}.contact-mailto{display:block;margin-top:.75rem;font-size:11px;color:var(--muted);text-decoration:none}.contact-mailto:hover{color:var(--text)}.backdrop{position:fixed;inset:0;background:#0000002e;z-index:150;opacity:0;visibility:hidden;transition:opacity var(--ease),visibility var(--ease)}.backdrop.is-visible{opacity:1;visibility:visible}.nda-teaser{padding:2.5rem var(--gutter);display:flex;align-items:center;gap:1.5rem}.nda-teaser-message{color:var(--muted);font-size:.875rem;margin:0}.wip-badge{display:inline-flex;align-items:center;padding:.15em .45em;background:#e0e8ff;color:#222;font-size:10px;font-weight:300;letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;line-height:1}.nda-badge{display:inline-flex;align-items:center;padding:.15em .45em;background:#fff176;color:#222;font-size:10px;font-weight:300;letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;line-height:1}.feed-title-group{display:flex;align-items:center;gap:.5rem}.project-subtitle-group{display:flex;align-items:center;gap:.75rem}.lazy-fade{opacity:0;transition:opacity .7s cubic-bezier(.4,0,.2,1)}.lazy-fade.is-visible{opacity:1}.log-empty{font-size:11px;color:var(--muted)}.log-feed{display:flex;flex-direction:column}.log-post{display:flex;gap:.75rem;align-items:flex-start;width:100%;padding:.9rem 0;border:none;border-bottom:1px solid var(--border);background:none;font-family:var(--font);text-align:left;color:inherit;cursor:pointer;transition:opacity var(--ease)}.log-post:first-child{border-top:1px solid var(--border)}.log-post:hover{opacity:.55}.log-detail-view{display:flex;flex-direction:column}.log-back-btn{background:none;border:none;padding:0;font-family:var(--font);font-size:11px;color:var(--muted);cursor:pointer;letter-spacing:.02em;transition:color var(--ease);margin-bottom:1.25rem;text-align:left}.log-back-btn:hover{color:var(--text)}.log-detail-img{aspect-ratio:16/9;background:#efefed;overflow:hidden;margin-bottom:1.25rem}.log-detail-img img{width:100%;height:100%;object-fit:cover;display:block}.log-detail-meta{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.5rem}.log-detail-title{font-size:clamp(1rem,3.5vw,1.35rem);font-weight:300;letter-spacing:-.02em;line-height:1.22}.log-detail-excerpt{font-size:11px;color:var(--muted);line-height:1.65;margin-top:.25rem}.log-go-to-post{display:inline-block;align-self:flex-start;font-family:var(--font);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-decoration:none;border:1px solid var(--border);padding:.45rem .85rem;transition:color var(--ease),border-color var(--ease)}.log-go-to-post:hover{color:var(--text);border-color:var(--text)}.log-post-thumb{width:56px;height:56px;flex-shrink:0;background:#efefed;overflow:hidden}.log-post-thumb img{width:100%;height:100%;object-fit:cover;display:block}.log-post-body{flex:1;min-width:0}.log-post-header{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.25rem}.log-post-title{font-size:var(--size);font-weight:500;letter-spacing:-.01em}.log-post-date{font-size:10px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);white-space:nowrap;flex-shrink:0}.log-post-excerpt{font-size:11px;color:var(--muted);line-height:1.55}.log-post-tags{display:flex;flex-wrap:wrap;gap:.2rem;margin-top:.4rem}.log-post-tag{font-size:10px;color:var(--muted);letter-spacing:.03em}.log-post-tag:before{content:"#"}.loading-state,.error-state{padding:4rem var(--gutter);color:var(--muted)}@media(max-width:768px){.view-toggle{display:none}#project-feed.view-grid{display:block;grid-template-columns:unset}#project-feed.view-grid .feed-item{grid-template-columns:4fr 1fr;margin:0 -12px 50px;padding:12px}#project-feed.view-grid .feed-tags{display:flex}.feed-item,.project-hero,.project-hero.has-recognition{grid-template-columns:1fr}.project-skills,.project-recognition{text-align:left}.project-body,.project-nav{grid-template-columns:1fr}.project-nav-item.is-next{text-align:left}}@media(max-width:480px){.hero-pop{font-size:1.5rem}.tray{width:100%}}@media(prefers-reduced-motion:reduce){.feed-thumb img{transition:filter .4s ease}.feed-item:hover .feed-thumb img,.feed-item.is-static:hover .feed-thumb img{transform:none}.lazy-fade{opacity:1;transition:none}.feed-thumb img.lazy-fade{opacity:1;transition:filter .4s ease}}@media(min-width:1440px){#project-feed{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--gutter);align-items:start}#project-feed .feed-item{grid-template-columns:1fr;gap:0;margin-left:0;margin-right:0}#project-feed .feed-meta{display:grid;grid-template-columns:1fr auto;column-gap:1.5rem;padding-top:.75rem}#project-feed .feed-meta-top,#project-feed .feed-badges,#project-feed .feed-desc{grid-column:1}#project-feed .feed-meta-top{justify-content:flex-start;max-width:350px}#project-feed .feed-desc{max-width:350px}#project-feed .feed-tags{grid-column:2;grid-row:1 / span 4;align-self:end;flex-direction:row;flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;max-width:250px;margin-top:0;padding-top:0}}
