:root{--deep: #041f28;--bg: #06303c;--surface: #0e4453;--surface-hi: #14586b;--plum: #9d446a;--line: #456e66;--shadow: rgba(3, 20, 26, .7);--text-dim: #b3a599;--text: #d6c3b6;--text-bright: #fdfbd4;--text-max: #fdfbd4;--accent: #f67989;--accent-tint: rgba(246, 121, 137, .14);--font-sans: "NTR", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif: "Libre Baskerville", Georgia, serif;--easing: cubic-bezier(.645, .045, .355, 1)}html{box-sizing:border-box;overflow-x:hidden;scroll-behavior:smooth;scroll-padding-top:92px}*,*:before,*:after{box-sizing:inherit}body{margin:0;width:100%;min-height:100vh;background-color:var(--bg);color:var(--text-bright);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent);text-decoration:none;transition:color .2s var(--easing)}a:hover{color:var(--text-bright)}ul{margin-left:-40px;list-style:none}.content{padding:0 24px}.nav-bar{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;gap:30px;height:70px;padding:0 34px;background-color:var(--deep);border-bottom:1px solid transparent;transition:background-color .3s var(--easing),border-color .3s var(--easing)}.nav-bar.scrolled{background-color:#03141aeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom-color:#456e6659}.nav-left{display:flex;align-items:center;gap:26px;min-width:0}.nav-name{color:var(--text-bright);font-size:23px;font-weight:700;white-space:nowrap;transition:color .25s var(--easing)}.nav-name:hover{color:var(--accent)}.nav-list{display:flex;align-items:center;gap:22px;margin:0;padding:0;list-style:none}.nav-list a{position:relative;color:var(--text);font-size:19px;white-space:nowrap;text-transform:capitalize;padding-bottom:3px;transition:color .25s var(--easing)}.nav-list a:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1.5px;background-color:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--easing)}.nav-list a:hover,.nav-list a.active{color:var(--accent)}.nav-list a:hover:after,.nav-list a.active:after{transform:scaleX(1)}.nav-socials{display:flex;align-items:center;gap:20px;margin-left:auto;color:var(--text)}.nav-socials a{display:flex;color:inherit;transition:color .25s var(--easing),transform .25s var(--easing)}.nav-socials a:hover{color:var(--accent);transform:translateY(-2px)}.nav-toggle{display:none;position:relative;width:30px;height:30px;padding:0;background:none;border:none;cursor:pointer}.nav-toggle-bar,.nav-toggle-bar:before,.nav-toggle-bar:after{position:absolute;left:3px;width:24px;height:2px;border-radius:2px;background-color:var(--accent);transition:all .3s var(--easing)}.nav-toggle-bar{top:14px}.nav-toggle-bar:before,.nav-toggle-bar:after{content:"";left:0}.nav-toggle-bar:before{top:-7px}.nav-toggle-bar:after{top:7px}.nav-toggle-bar.open{background-color:transparent}.nav-toggle-bar.open:before{top:0;transform:rotate(45deg)}.nav-toggle-bar.open:after{top:0;transform:rotate(-45deg)}@media only screen and (max-width: 900px){.nav-bar{padding:0 20px;gap:16px}.nav-toggle{display:block;z-index:70}.nav-socials{gap:16px;margin-left:auto;margin-right:14px}.nav-list{position:fixed;inset:70px 0 auto 0;flex-direction:column;align-items:flex-start;gap:22px;padding:28px 24px 32px;background-color:#03141afa;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid rgba(69,110,102,.35);transform:translateY(-120%);transition:transform .35s var(--easing)}.nav-list.open{transform:translateY(0)}.nav-list a{font-size:21px}}@media only screen and (max-width: 560px){.nav-socials a:nth-child(n+4){display:none}}#intro{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:4vw;width:100%;min-height:90vh;padding:100px 5vw 0}.intro-block{display:flex;flex-direction:column;align-items:flex-start;text-align:left;max-width:620px}.intro-title{color:var(--text-bright);font-size:72px;line-height:1.05}.intro-cursor{display:inline-block;margin-left:4px;color:var(--accent);font-weight:300;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.intro-name{color:var(--accent);font-size:80px;font-weight:700;line-height:1.05}.intro-subtitle{color:var(--text-dim);font-size:44px;font-weight:300;line-height:1.15;padding-top:4px}.intro-desc{color:var(--text-dim);font-size:22px;line-height:1.5;max-width:100%;padding-top:12px;padding-bottom:40px}.intro-contact{display:inline-flex;align-items:center;gap:6px;padding:12px 32px;border:1px solid var(--accent);border-radius:4px;font-size:16px;font-weight:700;cursor:pointer;transition:all .25s var(--easing)}.intro-contact:hover{background-color:var(--accent-tint);color:var(--accent);transform:translateY(-3px)}.intro-simulation{display:flex;align-items:center;justify-content:center}.waveform{border:1px solid var(--line);border-radius:12px;padding:16px;background-color:#0e445366;box-shadow:0 20px 40px -24px var(--shadow)}.waveform canvas{display:block;max-width:100%}.waveform-caption{margin-top:10px;color:var(--text-dim);font-size:14px;letter-spacing:2px;text-transform:uppercase}.portrait-canvas{display:block;cursor:crosshair;touch-action:none}.section-header{display:flex;align-items:center;justify-content:space-between}.section-title{color:var(--text-bright);font-family:var(--font-sans);font-size:46px;font-weight:700}.section-header:after{content:"";display:block;order:1;flex-grow:1;width:auto;max-width:300px;height:1px;margin-top:8px;margin-left:20px;background-color:var(--line)}.explore-link{order:2;display:flex;align-items:center;margin-left:20px;color:var(--accent);font-size:18px;white-space:nowrap;transition:all .25s var(--easing)}.explore-link:after{content:"→";margin-left:8px;font-size:20px}.explore-link:hover{transform:translate(5px);color:var(--text-bright)}#about{max-width:1000px;margin:auto;padding:80px 0}.about-content{display:flex;flex-direction:row}.about-description{color:var(--text-dim);font-family:var(--font-sans);font-size:22px;max-width:600px;margin:0}.about-description p{margin:0 0 18px}.about-description a,.about-description b{font-size:21px;font-weight:700}.about-description ul{display:grid;grid-template-columns:repeat(2,minmax(140px,1fr));padding-top:20px;padding-bottom:10px;list-style-type:none}.about-description li{position:relative;padding-left:20px;color:var(--text-dim);font-size:18px}.about-description li:before{content:"▹";position:absolute;left:0;color:var(--accent)}.about-image{padding-left:40px}.about-image img{max-width:300px;height:auto;margin-left:30px;border:none;border-radius:10px;box-shadow:6px 13px 23px -5px #00000075;transition:transform .25s var(--easing)}.about-image:hover img{transform:translateY(-7px)}#experience{max-width:1000px;margin:auto;padding:80px 0}.timeline{position:relative;margin:40px 0 0;padding:0 0 0 34px;list-style:none}.timeline:before{content:"";position:absolute;left:5px;top:10px;bottom:10px;width:1px;background:linear-gradient(to bottom,var(--accent),var(--line) 30%,var(--line))}.tl-item{position:relative;padding:0;border-bottom:1px solid rgba(69,110,102,.6)}.tl-item:last-child{border-bottom:none}.tl-dot{position:absolute;left:-33px;top:26px;width:11px;height:11px;border-radius:50%;border:2px solid var(--line);background-color:var(--bg);transition:all .3s var(--easing)}.tl-item.current .tl-dot{border-color:var(--accent);background-color:var(--accent);box-shadow:0 0 0 4px #f6798924}.tl-item.open .tl-dot{border-color:var(--accent);transform:scale(1.2)}.tl-head{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;padding:20px 8px 20px 0;background:none;border:none;text-align:left;cursor:pointer;font-family:var(--font-sans);transition:all .25s var(--easing)}.tl-head:hover{padding-left:8px}.tl-head-main{display:flex;flex-direction:column;gap:2px;min-width:0}.tl-role{color:var(--text-bright);font-size:24px;font-weight:700;line-height:1.2;transition:color .25s var(--easing)}.tl-head:hover .tl-role,.tl-item.open .tl-role{color:var(--accent)}.tl-org{color:var(--text-dim);font-size:19px}.tl-meta{display:flex;align-items:center;gap:14px;flex-shrink:0}.tl-now{font-size:13px;letter-spacing:1px;text-transform:uppercase;color:var(--accent);padding:3px 10px;border:1px solid rgba(246,121,137,.4);border-radius:20px;background-color:var(--accent-tint);animation:soft-pulse 2.4s ease-in-out infinite}@keyframes soft-pulse{0%,to{opacity:1}50%{opacity:.55}}.tl-dates{color:var(--text-dim);font-size:16px;white-space:nowrap}.tl-length{color:var(--line);font-size:15px;white-space:nowrap}.tl-chevron{width:9px;height:9px;border-right:2px solid var(--text-dim);border-bottom:2px solid var(--text-dim);transform:rotate(45deg);margin-top:-4px;transition:transform .3s var(--easing),border-color .25s var(--easing)}.tl-item.open .tl-chevron{transform:rotate(-135deg);margin-top:4px;border-color:var(--accent)}.tl-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--easing)}.tl-item.open .tl-body{grid-template-rows:1fr}.tl-body-inner{overflow:hidden}.tl-blurb{max-width:68ch;margin:0 0 18px;color:var(--text-dim);font-size:21px;line-height:1.6}.tl-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding-bottom:24px}.tl-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.tl-tag{font-size:16px;color:var(--text);padding:4px 12px;border:1px solid var(--line);border-radius:20px;transition:all .25s var(--easing)}.tl-item.open .tl-tag:hover{color:var(--accent);border-color:var(--accent)}.tl-links{display:flex;align-items:center;gap:18px;font-size:15px}.tl-loc{color:var(--line)}.tl-repo,.tl-site{display:inline-flex;align-items:center;gap:6px;color:var(--accent);transition:transform .2s var(--easing)}.tl-repo:hover,.tl-site:hover{transform:translate(3px)}.tl-site:after{content:"↗"}@media only screen and (max-width: 800px){#experience{padding:60px 0}.timeline{padding-left:26px}.tl-dot{left:-25px}.tl-head{flex-direction:column;align-items:flex-start;gap:10px}.tl-role{font-size:20px}.tl-org{font-size:17px}.tl-meta{flex-wrap:wrap;gap:10px}.tl-chevron{display:none}.tl-blurb{font-size:17px}.tl-footer{flex-direction:column;align-items:flex-start}}#projects,#startups{--accent: #fdfbd4;--accent-tint: rgba(253, 251, 212, .1)}#projects,#startups,#writing{max-width:1220px;margin:auto;padding:80px 0 40px}.collection-top{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:18px;margin-top:18px;margin-bottom:34px}.section-blurb{max-width:520px;margin:0;color:var(--text-dim);font-size:21px;line-height:1.5}.collection-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.view-toggle{display:inline-flex;padding:3px;border:1px solid var(--line);border-radius:20px;background-color:#0e445399}.view-btn{font-family:var(--font-sans);font-size:15px;padding:5px 16px;border:none;border-radius:16px;background:transparent;color:var(--text-dim);cursor:pointer;transition:all .25s var(--easing)}.view-btn:hover{color:var(--accent)}.view-btn.active{color:var(--accent);background-color:var(--accent-tint)}.constellation{margin-top:4px;border-radius:20px;overflow:hidden;background:linear-gradient(150deg,#85c6c81a,#0e44538c 45%,#06303c66);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border:1px solid rgba(69,110,102,.16);box-shadow:inset 0 1px #ffffff24,0 12px 34px -20px #03141ae6}.cx-key{display:flex;align-items:center;flex-wrap:wrap;gap:8px 22px;padding:16px 22px;border-bottom:1px solid rgba(69,110,102,.14);color:var(--text-dim);font-size:17px}.cx-key-line{display:inline-flex;align-items:center;gap:9px}.cx-key-node{width:13px;height:13px;border-radius:50%;border:1.5px solid var(--text);background-color:#0e4453e6}.cx-key-edge{width:26px;height:2px;border-radius:2px;background-color:var(--text)}.cx-key-edge.thick{height:5px}.cx-key-langs{display:inline-flex;align-items:center;gap:16px;margin-left:auto}.cx-key-lang{display:inline-flex;align-items:center;gap:7px}.cx-edge-label{fill:var(--text-bright);font-family:var(--font-sans);font-size:15px;paint-order:stroke;stroke:#06303ceb;stroke-width:5px;stroke-linejoin:round;pointer-events:none}.cx-sublabel{fill:var(--accent);font-family:var(--font-sans);font-size:14px;pointer-events:none}.cx-cap-lead{color:var(--text)}.cx-cap-tag{display:inline-block;margin:0 4px;padding:2px 10px;border:1px solid rgba(253,251,212,.4);border-radius:4px;color:var(--accent);font-size:14.5px}.cx-cap-names{color:var(--text-dim)}.constellation-svg{display:block;width:100%;height:auto;background:radial-gradient(circle at 50% 42%,rgba(253,251,212,.05),transparent 64%)}.cx-edge{transition:opacity .25s var(--easing),stroke .25s var(--easing)}.cx-node{cursor:pointer;transition:opacity .25s var(--easing)}.cx-node:focus{outline:none}.cx-node:focus-visible .cx-star{fill:var(--accent)}.cx-star,.cx-star-inner,.cx-bloom{transition:opacity .3s var(--easing),filter .3s var(--easing)}.cx-star-spin{transform-box:fill-box;transform-origin:center;transition:transform .45s var(--easing)}.cx-node.is-hover .cx-star-spin{transform:scale(1.18) rotate(45deg)}.cx-node.is-hover .cx-star{filter:drop-shadow(0 0 10px currentColor)}.cx-bloom{filter:blur(14px)}.cx-key-star{width:17px;height:17px;display:block;flex-shrink:0}.cx-label{fill:var(--text-bright);font-family:var(--font-sans);font-size:17px;pointer-events:none}.cx-node:hover .cx-label{fill:var(--accent)}.constellation-caption{margin:0;padding:16px 22px;border-top:1px solid rgba(69,110,102,.14);background-color:#03141a4d;color:var(--text-dim);font-size:18px;line-height:1.5;min-height:52px}.filter-row{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-sans);font-size:15px;padding:6px 14px;border:1px solid var(--line);border-radius:20px;background:transparent;color:var(--text-dim);cursor:pointer;transition:all .25s var(--easing)}.filter-chip:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.filter-chip.active{color:var(--accent);border-color:var(--accent);background-color:var(--accent-tint)}.filter-count{font-size:13px;color:var(--line)}.filter-chip.active .filter-count,.filter-chip:hover .filter-count{color:var(--accent);opacity:.7}.lang-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px;margin-left:0;padding-left:0;align-items:start}.projects-card{position:relative;display:flex;flex-direction:column;height:100%;padding:28px 26px 24px;border-radius:20px;overflow:hidden;isolation:isolate;background:linear-gradient(150deg,#85c6c81a,#0e4453b8 42%,#06303c9e);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border:1px solid rgba(69,110,102,.16);box-shadow:inset 0 1px #ffffff24,inset 0 -1px #ffffff0a,0 12px 34px -20px #03141ae6;transition:transform .35s var(--easing),border-color .35s var(--easing),box-shadow .35s var(--easing)}.projects-card:after{content:"";position:absolute;top:-40%;right:-60%;bottom:-40%;left:-60%;z-index:-1;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.09) 47%,rgba(253,251,212,.16) 52%,transparent 62%);transform:translate(-38%);opacity:0;transition:transform .9s var(--easing),opacity .4s var(--easing);pointer-events:none}.projects-card:hover:after{transform:translate(38%);opacity:1}.projects-card.expandable{cursor:pointer}.projects-card:hover{transform:translateY(-7px);border-color:#fdfbd457;box-shadow:inset 0 1px #fff3,0 22px 46px -22px #03141af2,0 0 26px -12px #fdfbd459}.projects-card.open{border-color:#fdfbd473}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.card-lang{display:inline-flex;align-items:center;gap:8px;font-size:17px;color:var(--text)}.external-links{display:flex;align-items:center;gap:12px;color:var(--text)}.external-links a{display:flex;transition:color .2s var(--easing),transform .2s var(--easing)}.external-links a:hover{color:var(--accent);transform:translateY(-2px)}.card-title{margin:0 0 10px;color:var(--text-bright);font-size:27px;font-weight:700;line-height:1.2;transition:color .25s var(--easing)}.projects-card:hover .card-title{color:var(--accent)}.card-tagline{margin:0 0 14px;color:var(--accent);font-size:21px;line-height:1.4}.card-desc{margin:0;color:var(--text);font-size:21px;line-height:1.62}.card-more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--easing)}.projects-card.open .card-more{grid-template-rows:1fr}.card-more-inner{overflow:hidden}.card-detail{margin:14px 0 0;padding-top:14px;border-top:1px solid var(--line);color:var(--text);font-size:20px;line-height:1.65}.card-foot{margin-top:auto;padding-top:22px}.card-tech{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;padding:0;list-style:none}.tech-chip{font-size:16px;color:var(--text);padding:4px 11px;border:1px solid var(--line);border-radius:4px;transition:all .25s var(--easing)}.projects-card:hover .tech-chip{color:var(--text);border-color:#fdfbd44d}.card-foot-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:16px}.card-live{display:inline-flex;align-items:center;gap:5px;color:var(--accent);transition:transform .2s var(--easing)}.card-live:before{content:"";width:6px;height:6px;border-radius:50%;background-color:var(--accent);box-shadow:0 0 7px var(--accent);animation:soft-pulse 2s ease-in-out infinite}.card-live:hover{transform:translate(2px)}.card-updated{margin-left:auto;color:var(--text-dim)}.card-expand{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:16px;color:var(--text);transition:color .25s var(--easing)}.card-expand svg{transition:transform .3s var(--easing)}.projects-card:hover .card-expand{color:var(--accent)}.projects-card.open .card-expand svg{transform:rotate(180deg)}@media (max-width: 1100px){#projects,#startups,#writing{max-width:1000px}}@media only screen and (max-width: 700px){.projects-grid{grid-template-columns:minmax(0,1fr)}.collection-top{flex-direction:column;align-items:flex-start}.section-blurb{font-size:17px}}.companies{display:flex;flex-direction:column;gap:22px;margin-bottom:44px}.company{max-width:none;margin:0;padding:32px 34px 28px;border-radius:20px;background:linear-gradient(150deg,#85c6c81a,#0e4453b8 42%,#06303c9e);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border:1px solid rgba(69,110,102,.16);box-shadow:inset 0 1px #ffffff24,0 12px 34px -20px #03141ae6}.company-head{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid rgba(69,110,102,.14)}.company-logo{display:flex;align-items:center;justify-content:center;width:62px;height:62px;flex-shrink:0;border-radius:14px;border:1px solid var(--line);background-color:#03141a66;overflow:hidden}.company-logo img{width:100%;height:100%;object-fit:contain;padding:9px;display:block}.company-logo.bleed{border:none;background:none}.company-logo.bleed img{object-fit:cover;padding:0}.company-wordmark{color:var(--accent);font-size:17px;font-weight:700;letter-spacing:.16em}.company-id{display:flex;flex-direction:column;gap:3px;min-width:0}.company-name{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0;color:var(--text-bright);font-size:30px;font-weight:700;line-height:1.15}.company-badge{padding:3px 11px;border:1px solid rgba(253,251,212,.4);border-radius:20px;background-color:var(--accent-tint);color:var(--accent);font-size:15px;font-weight:400;letter-spacing:.04em}.company-role{margin-top:18px;color:var(--text-dim);font-size:17px;letter-spacing:.1em;text-transform:uppercase}.company-what{color:var(--accent);font-size:19px}.company-site{margin-left:auto;padding:9px 22px;border:1px solid var(--accent);border-radius:4px;color:var(--accent);font-size:17px;transition:all .25s var(--easing)}.company-site:hover{background-color:var(--accent-tint);color:var(--accent);transform:translateY(-2px)}.company-desc{margin:12px 0 26px;color:var(--text);font-size:21px;line-height:1.65}.company-marks{display:flex;align-items:center;flex-wrap:wrap;gap:44px;margin:4px 0 0;padding:0;list-style:none}.mark{display:flex;align-items:center;margin:0}.mark img{height:72px;width:auto;max-width:230px;object-fit:contain;display:block;opacity:.88;transition:opacity .25s var(--easing),transform .25s var(--easing)}.mark:hover img{opacity:1;transform:translateY(-3px)}@media only screen and (max-width: 700px){.company{padding:26px 20px 22px}.company-name{font-size:25px}.company-what{font-size:17px}.company-desc{font-size:19px}.company-site{margin-left:0}.company-marks{gap:28px}.mark img{height:52px;max-width:160px}}.section-split.has-aside{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.62fr);gap:46px;align-items:start}.split-main{min-width:0}.split-aside{min-width:0;position:sticky;top:110px}@media only screen and (max-width: 1000px){.section-split.has-aside{grid-template-columns:minmax(0,1fr);gap:30px}.split-aside{position:static}}.photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 18px;margin:0;padding:6px 0 26px;list-style:none}.photo{margin:0;transition:transform .4s var(--easing)}.photo:nth-child(4n+1){transform:translateY(0) rotate(-1.8deg)}.photo:nth-child(4n+2){transform:translateY(34px) rotate(1.5deg)}.photo:nth-child(4n+3){transform:translateY(-14px) rotate(1.2deg)}.photo:nth-child(4n+4){transform:translateY(20px) rotate(-1.1deg)}.photo:hover{transform:translateY(-8px) rotate(0) scale(1.04);z-index:2}.photo-frame{position:relative;aspect-ratio:4 / 3;border-radius:14px;overflow:hidden;background-color:#0e44538c;border:1px solid rgba(69,110,102,.16);box-shadow:0 18px 38px -22px #03141af2;transition:border-color .35s var(--easing),box-shadow .35s var(--easing)}.photo:hover .photo-frame{border-color:#fdfbd457;box-shadow:0 26px 46px -20px #03141af2}.photo-frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--easing)}.photo:hover .photo-frame img{transform:scale(1.05)}.photo.is-empty .photo-frame{border-style:dashed;border-color:var(--line);background-color:#0e44534d}.photo-drop{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:14px;text-align:center}.photo-drop-icon{position:relative;width:26px;height:22px;border:2px solid var(--line);border-radius:4px}.photo-drop-icon:after{content:"";position:absolute;left:3px;right:3px;bottom:3px;height:8px;border-radius:2px;background-color:var(--line)}.photo-drop code{color:var(--text-dim);font-size:14px;font-family:ui-monospace,Menlo,monospace;word-break:break-all;line-height:1.4}.photo-caption{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding-top:12px}.photo-label{color:var(--text-bright);font-size:18px}.photo-note{color:var(--accent);font-size:15px;padding:2px 10px;border:1px solid rgba(253,251,212,.4);border-radius:20px}@media only screen and (max-width: 700px){.photos{grid-template-columns:repeat(2,1fr);gap:16px;padding:8px 0 20px}.photo:nth-child(n){grid-column:span 1;transform:none}.photo:nth-child(2n){transform:translateY(20px)}.photo-label{font-size:16px}}.feed{margin:0 0 20px;max-width:none}.feed-head{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--line)}.feed-title{margin:0;color:var(--text-bright);font-size:26px;font-weight:700;line-height:1.2}.feed-handle{color:var(--text-dim);font-size:18px;transition:color .2s var(--easing)}.feed-handle:hover{color:var(--accent)}.feed-pitch{margin:18px 0 8px;color:var(--text);font-size:23px;line-height:1.6}.feed-list{margin:0;padding:0;list-style:none}.post{display:block;padding:26px 0;border-bottom:1px solid var(--line);color:inherit}.post-title{margin:0 0 8px;color:var(--text-bright);font-size:25px;font-weight:700;line-height:1.3;transition:color .2s var(--easing)}.post:hover .post-title{color:var(--accent)}.post-sub{margin:0 0 10px;color:var(--text);font-size:22px;line-height:1.55}.post-date{color:var(--text-dim);font-size:17px}.feed-more{display:inline-block;margin-top:22px;color:var(--accent);font-size:19px;transition:transform .2s var(--easing)}.feed-more:after{content:"→";margin-left:8px}.feed-more:hover{transform:translate(4px)}@media only screen and (max-width: 700px){.feed-title{font-size:23px}.post-title{font-size:22px}.post-sub{font-size:18px}.feed-pitch{font-size:19px}}.shelf{margin-top:8px}.shelf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:26px 16px;margin:0;padding:10px 0 8px;list-style:none}.book{margin:0;transition:transform .4s var(--easing)}.book:nth-child(6n+1){transform:translateY(16px) rotate(-2.4deg)}.book:nth-child(6n+2){transform:translateY(-12px) rotate(1.6deg)}.book:nth-child(6n+3){transform:translateY(24px) rotate(2deg)}.book:nth-child(6n+4){transform:translateY(-18px) rotate(-1.4deg)}.book:nth-child(6n+5){transform:translateY(10px) rotate(2.4deg)}.book:nth-child(6n+6){transform:translateY(-6px) rotate(-2deg)}.book:nth-child(6n+2),.book:nth-child(6n+5){scale:1.1;z-index:2}.book:hover{transform:translateY(-12px) rotate(0);z-index:3}.book-cover{aspect-ratio:2 / 3;border-radius:6px;overflow:hidden;background-color:var(--surface);box-shadow:0 14px 28px -14px #03141af2;transition:box-shadow .35s var(--easing)}.book:hover .book-cover{box-shadow:0 26px 44px -16px #03141af2}.book-cover img{width:100%;height:100%;object-fit:cover;display:block}.book-title{margin-top:14px;color:var(--text-bright);font-size:17px;line-height:1.3}.book-author{margin-top:2px;color:var(--text-dim);font-size:15px}@media only screen and (max-width: 900px){.shelf-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 20px}}@media only screen and (max-width: 520px){.shelf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px;padding-top:20px}.book:nth-child(n){scale:1}}.site-footer{display:flex;flex-direction:column;align-items:center;gap:14px;padding:40px 20px 30px;color:var(--text-dim)}.footer-socials{display:flex;gap:22px}.footer-socials a{color:var(--text);display:flex;transition:all .2s var(--easing)}.footer-socials a:hover{color:var(--accent);transform:translateY(-3px)}.footer-text{font-size:16px}.fade-in-section{opacity:0;transform:translateY(20px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);height:100%}.fade-in-section.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.fade-in-section{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}@media only screen and (max-width: 1024px){#intro{gap:3vw}.intro-title,.intro-name{font-size:64px}.intro-subtitle{font-size:34px}.waveform canvas{width:340px;height:260px}}@media only screen and (max-width: 900px){.nav-bar{padding:0 24px}.nav-toggle{display:block;z-index:60}.nav-links{position:fixed;top:0;right:0;bottom:0;width:min(75vw,340px);flex-direction:column;justify-content:center;gap:34px;background-color:var(--surface);box-shadow:-10px 0 30px -15px var(--shadow);transform:translate(100%);transition:transform .3s var(--easing)}.nav-links.open{transform:translate(0)}.nav-list{flex-direction:column;gap:26px}.nav-list a{font-size:22px}}@media only screen and (max-width: 768px){#intro{flex-direction:column;justify-content:center;gap:24px;min-height:80dvh;padding:110px 8px 40px}.intro-block{align-items:flex-start;max-width:100%}.intro-title,.intro-name{font-size:52px}.intro-subtitle{font-size:26px}.intro-desc{font-size:17px;padding-bottom:28px}.waveform canvas{width:100%;max-width:380px;height:200px}.section-title{font-size:34px}.about-content{flex-direction:column}.about-image{padding-left:0;padding-top:30px}.about-image img{margin-left:0;max-width:220px}.about-description{font-size:18px}.about-description a,.about-description b{font-size:17px}#about,#experience,#projects,#startups,#writing{padding:60px 0}.section-blurb{font-size:17px}}@media only screen and (max-width: 480px){.content{padding:0 16px}.intro-title,.intro-name{font-size:40px}.intro-subtitle{font-size:21px}.about-description ul{grid-template-columns:1fr}.section-header:after{max-width:120px}.section-header{flex-wrap:wrap;justify-content:flex-start}.section-header:after{display:none}.explore-link{width:100%;margin-top:5px;margin-left:0}}.domains{margin-top:46px}.domain-equation{display:flex;align-items:baseline;gap:14px;font-family:var(--font-sans);font-size:56px;font-weight:700;line-height:1.1;color:var(--text-bright)}.domain-plus{color:var(--text-dim);font-weight:300}.domain-blank{display:inline-flex;align-items:baseline;min-width:3ch;color:var(--accent);border-bottom:3px solid var(--accent);padding-bottom:2px}.domain-caret{display:inline-block;width:2px;height:.85em;margin-left:3px;background-color:var(--accent);animation:blink 1s step-end infinite}.domain-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.domain-tab{position:relative;overflow:hidden;font-family:var(--font-sans);font-size:18px;padding:10px 24px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--text-dim);cursor:pointer;transition:all .25s var(--easing)}.domain-tab:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.domain-tab.active{color:#fff;border-color:var(--plum);background-color:var(--plum);transform:none}.domain-tab.active:hover{color:#fff;background-color:#b84a6b;border-color:#b84a6b;transform:translateY(-2px)}.domain-timer{position:absolute;left:0;bottom:0;height:2px;width:100%;background-color:var(--accent);transform-origin:left;animation-name:drain;animation-timing-function:linear}@keyframes drain{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.domain-panel{margin-top:30px;padding:30px 32px;border:1px solid var(--line);border-radius:14px;background-color:#0e445373;animation:panel-in .45s var(--easing)}@keyframes panel-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.domain-tech{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 26px;padding:0;list-style:none}.domain-chip{font-size:17px;color:var(--accent);padding:5px 14px;border:1px solid rgba(246,121,137,.35);border-radius:4px;background-color:#f679890f;animation:chip-in .45s var(--easing) both;transition:transform .2s var(--easing),background-color .2s var(--easing)}.domain-chip:hover{transform:translateY(-2px);background-color:#f6798924}@keyframes chip-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.domain-highlights{margin:0;padding:0;list-style:none}.domain-highlight{position:relative;margin-bottom:12px;border-radius:10px;animation:chip-in .5s var(--easing) both}.domain-highlight:last-child{margin-bottom:0}.domain-highlight>a,.domain-highlight>span,.domain-highlight>.domain-highlight-text{display:block;padding:16px 18px 16px 34px;border:1px solid transparent;border-radius:10px;color:var(--text);transition:all .25s var(--easing)}.domain-highlight:before{content:"▹";position:absolute;left:16px;top:16px;color:var(--accent);z-index:1;pointer-events:none}.domain-highlight-text{font-size:21px;line-height:1.6}.domain-highlight.linked>a:hover{border-color:var(--line);background-color:#f679890d;color:var(--text);transform:translate(4px)}.domain-repo{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-size:15px;color:var(--accent);opacity:.85;transition:opacity .2s var(--easing),transform .2s var(--easing)}.domain-highlight.linked>a:hover .domain-repo{opacity:1;transform:translate(2px)}.domain-repo:after{content:"↗";font-size:14px}.about-closing{max-width:700px;margin-top:44px;color:var(--text-dim);font-size:22px;line-height:1.5}@media only screen and (max-width: 768px){.domain-equation{font-size:38px}.domain-tab{font-size:16px;padding:8px 18px}.domain-panel{padding:22px 18px}.domain-highlight-text{font-size:18px}.domain-highlight>a,.domain-highlight>span{padding:14px 14px 14px 30px}.about-closing{font-size:18px}}@media only screen and (max-width: 480px){.domain-equation{font-size:30px;gap:10px}}
