*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a0a;--fg:#f0ede8;--dim:#3a3a3a}html,body,#root{background:var(--bg);width:100%;height:100%;color:var(--fg);overflow:hidden}.dot-canvas{z-index:0;display:block;position:fixed;inset:0}.screentime-section{gap:1.4rem}.st-header{align-items:baseline;gap:1rem;display:flex}.st-title{color:var(--fg);font-family:Cormorant Garamond,Georgia,serif;font-size:1.1rem;font-weight:300}.st-sub{letter-spacing:.15em;text-transform:uppercase;color:var(--dim);font-family:Courier Prime,monospace;font-size:.63rem}.st-wrap{flex-direction:column;gap:2px;display:flex}.st-months{align-items:flex-end;display:flex}.st-dow-spacer{flex-shrink:0;width:16px}.st-month-row{gap:1px;display:flex}.st-month-cell{letter-spacing:.04em;width:9px;color:var(--dim);white-space:nowrap;font-family:Courier Prime,monospace;font-size:.55rem;overflow:visible}.st-grid-row{gap:4px;display:flex}.st-dow-col{flex-direction:column;flex-shrink:0;gap:2px;width:12px;display:flex}.st-dow-label{height:9px;color:var(--dim);text-align:right;font-family:Courier Prime,monospace;font-size:.55rem;line-height:9px}.st-grid{gap:1px;display:flex}.st-col{flex-direction:column;gap:1px;display:flex}.st-cell{cursor:default;border-radius:2px;width:9px;height:9px;transition:opacity .15s}.st-cell:hover{opacity:.75}.st-legend{align-items:center;gap:3px;margin-top:4px;display:flex}.st-legend-label{color:var(--dim);letter-spacing:.06em;margin:0 2px;font-family:Courier Prime,monospace;font-size:.58rem}.st-tooltip{z-index:100;pointer-events:none;letter-spacing:.06em;color:var(--fg);white-space:nowrap;background:#141414eb;border:1px solid #3a3a3a99;padding:.3rem .6rem;font-family:Courier Prime,monospace;font-size:.68rem}.glass-shell{z-index:1;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.glass-panel{background:#0c0c0ef5;border:1px solid #3a3a3a66;grid-template-columns:200px 1fr;width:min(780px,92vw);height:min(480px,88vh);animation:1s cubic-bezier(.16,1,.3,1) .15s both rise;display:grid}.glass-sidebar{border-right:1px solid #3a3a3a66;flex-direction:column;padding:2.8rem 1.8rem;display:flex}.sidebar-name{flex-direction:column;margin-bottom:2.8rem;display:flex}.sidebar-first{letter-spacing:.01em;color:var(--fg);font-family:Cormorant Garamond,Georgia,serif;font-size:1.35rem;font-weight:300;line-height:1.25}.sidebar-last{letter-spacing:.01em;color:var(--fg);font-family:Cormorant Garamond,Georgia,serif;font-size:1.35rem;font-style:italic;font-weight:300;line-height:1.25}.sidebar-nav{flex-direction:column;gap:.15rem;display:flex}.sidebar-link{letter-spacing:.18em;text-transform:uppercase;color:var(--dim);cursor:pointer;text-align:left;background:0 0;border:none;padding:.5rem .65rem;font-family:Courier Prime,monospace;font-size:.7rem;transition:color .2s,background .2s}.sidebar-link:hover{color:var(--fg)}.sidebar-link--active{color:var(--fg);background:#f0ede80d}.glass-content{scroll-behavior:smooth;padding:2.8rem 2.6rem;position:relative;overflow-y:auto;-webkit-mask-image:linear-gradient(#000 75%,#0000 100%);mask-image:linear-gradient(#000 75%,#0000 100%)}.glass-content::-webkit-scrollbar{width:2px}.glass-content::-webkit-scrollbar-track{background:0 0}.glass-content::-webkit-scrollbar-thumb{background:var(--dim)}.glass-content::-webkit-scrollbar-thumb:hover{background:var(--fg)}.default-content{flex-direction:column;justify-content:flex-end;gap:1rem;height:100%;display:flex}.default-bio{color:var(--fg);max-width:380px;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.3rem,2.2vw,1.75rem);font-style:italic;font-weight:300;line-height:1.5}.default-tagline{letter-spacing:.18em;text-transform:uppercase;color:var(--dim);font-family:Courier Prime,monospace;font-size:.7rem}.section-content{flex-direction:column;gap:2rem;animation:.5s cubic-bezier(.16,1,.3,1) both rise;display:flex}.project-list{flex-direction:column;display:flex}.project-rule{background:var(--dim);opacity:.3;height:1px}.project-meta{align-items:baseline;gap:1rem;padding:1.1rem 0 .4rem;display:flex}.project-num{letter-spacing:.1em;color:var(--dim);flex-shrink:0;font-family:Courier Prime,monospace;font-size:.68rem}.project-title{letter-spacing:-.01em;flex:1;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.4rem,2.2vw,1.9rem);font-weight:300;transition:opacity .2s}.project-row:hover .project-title{opacity:.4}.project-link{color:inherit;text-decoration:none}.project-year{color:var(--dim);letter-spacing:.1em;flex-shrink:0;font-family:Courier Prime,monospace;font-size:.68rem}.project-role{letter-spacing:.15em;color:var(--dim);text-transform:uppercase;padding-bottom:1.1rem;font-family:Courier Prime,monospace;font-size:.68rem}.about-bio{color:var(--fg);font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.05rem,1.6vw,1.3rem);font-weight:300;line-height:1.65}.spec-row{gap:3.5rem;display:flex}.spec-group{flex-direction:column;gap:.4rem;display:flex}.spec-heading{letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin-bottom:.2rem;font-family:Courier Prime,monospace;font-size:.63rem}.spec-group span:not(.spec-heading){letter-spacing:.04em;color:var(--fg);font-family:Courier Prime,monospace;font-size:.78rem}.contact-email{letter-spacing:-.01em;color:var(--fg);font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.5rem,2.5vw,2.2rem);font-style:italic;font-weight:300;text-decoration:none;transition:opacity .2s}.contact-email:hover{opacity:.45}.contact-links{flex-direction:column;gap:.75rem;display:flex}.contact-link{letter-spacing:.18em;text-transform:uppercase;color:var(--dim);width:fit-content;font-family:Courier Prime,monospace;font-size:.7rem;text-decoration:none;transition:color .2s}.contact-link:hover{color:var(--fg)}.blog-section{gap:0}.blog-list{flex-direction:column;gap:.85rem;list-style:none;display:flex}.blog-entry{align-items:baseline;gap:.65rem;display:flex}.blog-date{letter-spacing:.06em;color:var(--dim);flex-shrink:0;font-family:Courier Prime,monospace;font-size:.68rem}.blog-dash{color:var(--dim);flex-shrink:0;font-family:Courier Prime,monospace;font-size:.68rem}.blog-title{letter-spacing:.04em;color:var(--fg);cursor:pointer;background:0 0;border:none;padding:0;font-family:Courier Prime,monospace;font-size:.78rem;transition:opacity .2s}.blog-title:hover{opacity:.4}.blog-post-header{justify-content:space-between;align-items:baseline;display:flex}.blog-back{letter-spacing:.12em;color:var(--dim);cursor:pointer;background:0 0;border:none;width:fit-content;padding:0;font-family:Courier Prime,monospace;font-size:.68rem;transition:color .2s}.blog-back:hover{color:var(--fg)}.blog-post{flex-direction:column;gap:.75rem;display:flex}.blog-post-title{letter-spacing:.06em;color:var(--fg);font-family:Courier Prime,monospace;font-size:.85rem;font-weight:400}.blog-post-rule{background:var(--dim);opacity:.3;height:1px}.blog-post-body{letter-spacing:.03em;color:var(--fg);opacity:.75;white-space:pre-wrap;font-family:Courier Prime,monospace;font-size:.78rem;line-height:1.8}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
