:root{--bg:#eef2f7;--panel:#fff;--ink:#14213d;--muted:#4f5d78;--line:#c6d1e2;--accent:#c8102e;--on-accent:#fff;--display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--body:"IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#0f1729;--panel:#16203a;--ink:#e8edf7;--muted:#9aa7c0;--line:#26324d;--accent:#ff5a6e;--on-accent:#0f1729;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1729;--panel:#16203a;--ink:#e8edf7;--muted:#9aa7c0;--line:#26324d;--accent:#ff5a6e;--on-accent:#0f1729;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:4.5rem}body{background:var(--bg);color:var(--ink);font:400 1.0625rem/1.65 var(--body);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.wrap{width:min(100% - 2.5rem,62rem);margin-inline:auto}.skip{background:var(--accent);color:var(--on-accent);z-index:40;padding:.5rem 1rem;position:absolute;left:-999px}.skip:focus{top:.5rem;left:.5rem}.bar{z-index:10;background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);align-items:center;gap:1.5rem;height:3.75rem;padding:0 1.25rem;display:flex;position:fixed;inset:0 0 auto}.brand{font:800 1.25rem var(--display);margin-right:auto;text-decoration:none}.bar nav{gap:1.25rem;display:flex}.bar nav a{color:var(--muted);font-weight:500;text-decoration:none}.bar nav a:hover{color:var(--accent)}.icon{cursor:pointer;border:1px solid var(--line);background:var(--panel);width:2.5rem;height:2.5rem;color:var(--ink);border-radius:50%;font-size:1.1rem;line-height:1}.icon:hover{border-color:var(--accent)}.hero{background:radial-gradient(34rem circle at var(--mx,70%) var(--my,30%), color-mix(in srgb, var(--accent) 16%, transparent), transparent 70%);align-items:center;min-height:100svh;padding:6rem 0 12rem;display:flex;position:relative;overflow:hidden}h1{font:800 clamp(3.2rem, 11vw, 8.5rem)/.95 var(--display);letter-spacing:-.03em;margin:0}h1 span{display:block}h1 span:last-child{color:var(--accent)}.aka{color:var(--muted);margin:1.25rem 0 0;font-weight:500}.lead{max-width:30rem;color:var(--muted);margin:1rem 0 2rem;font-size:1.3rem}.actions{flex-wrap:wrap;gap:.85rem;display:flex}.btn{border:1.5px solid var(--ink);border-radius:999px;padding:.75rem 1.4rem;font-weight:500;text-decoration:none;transition:transform .2s}.btn:hover{transform:translateY(-2px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.ridge{width:100%;height:11rem;position:absolute;bottom:0;left:0}.ridge path{fill:none;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:2.4s ease-out forwards draw}.ridge .far{stroke:var(--line);stroke-width:2px;vector-effect:non-scaling-stroke}.ridge .near{stroke:var(--accent);stroke-width:2.5px;vector-effect:non-scaling-stroke;animation-delay:.5s}@keyframes draw{to{stroke-dashoffset:0}}.section{padding:6rem 0 2rem}h2{font:800 clamp(2rem, 5vw, 3rem)/1.1 var(--display);letter-spacing:-.02em;margin:0 0 .5rem}.intro{color:var(--muted);max-width:36rem;margin:0 0 2.25rem}.list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.project{border-bottom:1px solid var(--line)}.row{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(8rem,15rem) 1fr 2rem;align-items:center;gap:1rem;padding:1.5rem .25rem;display:grid}.name{font:800 1.6rem/1.2 var(--display);transition:color .2s}.sum{color:var(--muted)}.row:hover .name{color:var(--accent)}.mark{justify-self:end;width:1.2rem;height:1.2rem;position:relative}.mark:before,.mark:after{content:"";background:currentColor;height:2px;transition:transform .3s;position:absolute;inset:50% 0 auto}.mark:after{transform:rotate(90deg)}.project.open .mark:after{transform:rotate(0)}.panel{grid-template-rows:0fr;transition:grid-template-rows .35s;display:grid}.project.open .panel{grid-template-rows:1fr}.inner{padding:0 .25rem;overflow:hidden}.inner>p:first-child{max-width:42rem;margin-top:0}dl{grid-template-columns:7rem 1fr;gap:.5rem 1rem;margin:1.25rem 0;display:grid}dt{color:var(--muted)}dd{margin:0}.link{color:var(--accent);margin:.25rem 0 1.75rem;font-weight:500;display:inline-block}.shots{scroll-snap-type:x proximity;gap:.9rem;padding:.25rem 0 1.25rem;display:flex;overflow-x:auto}.shot{border:1px solid var(--line);background:var(--panel);cursor:zoom-in;scroll-snap-align:start;border-radius:1.1rem;flex:none;padding:0;transition:transform .2s;overflow:hidden}.shot:hover{transform:translateY(-3px)}.shot img{width:auto;height:22rem;display:block}.lightbox{z-index:30;cursor:zoom-out;background:#080c18e6;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.lightbox img{border-radius:1rem;max-width:100%;max-height:88svh}.close{color:#fff;font:inherit;cursor:pointer;background:0 0;border:1px solid #fff;border-radius:999px;padding:.5rem 1rem;position:absolute;top:1rem;right:1rem}.job-head,.edu p{flex-wrap:wrap;gap:.25rem 1rem;margin:0 0 .75rem;display:flex}.job-head .dates,.edu .dates{color:var(--muted);margin-left:auto}.job ul{max-width:46rem;margin:0 0 2rem;padding-left:1.2rem}.job li{margin-bottom:.5rem}.edu{border-top:1px solid var(--line);max-width:46rem;padding-top:1.5rem}.skills{gap:1.1rem;max-width:46rem;display:grid}.skills h3{font:500 .95rem var(--body);color:var(--muted);margin:0 0 .4rem}.skills p{flex-wrap:wrap;gap:.5rem;margin:0;display:flex}.chip{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:.25rem .8rem;font-size:.95rem}.about{max-width:40rem}.about p:first-child{font:500 1.5rem/1.4 var(--display);margin-top:0}.contact{border-top:1px solid var(--line);max-width:46rem;margin:0;padding:0;list-style:none}.contact li{border-bottom:1px solid var(--line)}.contact a{grid-template-columns:7rem 1fr auto;align-items:center;gap:1rem;padding:1.25rem .25rem;text-decoration:none;display:grid}.contact .label{color:var(--muted)}.contact .value{font:800 clamp(1.15rem, 3.6vw, 1.7rem)/1.25 var(--display);word-break:break-word;transition:color .2s}.contact .arrow{color:var(--accent);transition:transform .2s}.contact a:hover .value{color:var(--accent)}.contact a:hover .arrow{transform:translate(4px)}.foot{color:var(--muted);padding:5rem 0 2.5rem}.reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(14px)}.reveal.in{opacity:1;transform:none}@media (max-width:40rem){.bar nav{gap:.9rem;font-size:.95rem}.row{grid-template-columns:1fr 2rem}.sum{grid-area:2/1}.mark{grid-area:1/2}dl{grid-template-columns:1fr;gap:0}dd{margin-bottom:.75rem}.shot img{height:18rem}.job-head .dates,.edu .dates{width:100%;margin-left:0}.contact a{grid-template-columns:1fr auto}.contact .label{grid-column:1/-1;font-size:.9rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.ridge path{stroke-dashoffset:0}.reveal{opacity:1;transform:none}}
