@font-face{font-family:Gambetta;src:url(/fonts/Gambetta-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Matter;src:url(/fonts/MatterRegular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Matter;src:url(/fonts/MatterMedium.woff2)format("woff2");font-weight:500;font-display:swap}:root{--dark:#333;--light:#a3a3a3;--radius:12px;--bg:#faf8f4;--bg-elevated:#f5f5f5;--shadow:0 16px 64px #00000014, 0 4px 24px #0000000d;--hover-bg:#00000008;--hover-bg-strong:#0000000d;--shadow-quote:0 4px 10px #0000000d, 0 4px 15px #00000008;--hover-bg-disabled:#0000000f;--border-light:#2020200a;--z-base:1;--z-content:2;--z-preview:3;--z-fade:5;--z-scroll-fade:8;--z-overlay:10;--z-nav:11;--z-sheet:20;--z-modal:101}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}::selection{color:inherit;background-color:#e8e8e8}html{scrollbar-width:thin;scrollbar-color:#9e9e9e66 transparent;overflow:hidden auto}html::-webkit-scrollbar{width:4px}html::-webkit-scrollbar-track{background:0 0}html::-webkit-scrollbar-thumb{background:#9e9e9e66;border-radius:4px}html::-webkit-scrollbar-thumb:hover{background:#9e9e9eb3}body,#app{overflow-x:hidden}html,body,#app{background:var(--bg);height:100%;color:var(--dark);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Matter,sans-serif;font-size:14px;font-weight:400}#app{isolation:isolate}.page-transition{min-height:100%;animation:.6s forwards page-fade}@keyframes page-fade{0%{opacity:0}to{opacity:1}}@keyframes content-fade{0%{opacity:0}to{opacity:1}}@keyframes itemIn{0%{opacity:0;filter:blur(4px);transform:translateY(18px)}to{opacity:var(--end-opacity,1);filter:blur();transform:translateY(0)}}.animate{opacity:0;will-change:opacity, transform, filter;animation:1s cubic-bezier(.215,.61,.355,1) forwards itemIn}@keyframes musicItemIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.music-row.animate{animation-name:musicItemIn;animation-duration:.6s}@media (prefers-reduced-motion:reduce){.animate,.page-transition{opacity:var(--end-opacity,1);filter:none;animation:none;transform:none}}.split{min-height:100%;display:flex}.left{background:#708238;justify-content:center;align-items:center;width:50%;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.project-preview{z-index:var(--z-preview);object-fit:contain;pointer-events:none;opacity:0;filter:drop-shadow(0 24px 48px #0000004d);max-width:85%;max-height:70%;transition:opacity .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1);position:absolute;transform:scale(.98)}.project-preview.active{opacity:1;transform:scale(1)}.left-label{z-index:var(--z-content);color:#ccc;letter-spacing:0;text-transform:uppercase;pointer-events:none;font-size:12px;font-weight:500;transition:opacity .3s;position:absolute}@keyframes grain{0%{background-position:0 0}to{background-position:256px 256px}}.grain-overlay{z-index:var(--z-base);pointer-events:none;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px;animation:8s linear infinite grain;position:absolute;inset:0}.right{flex-direction:column;width:50%;min-height:100dvh;margin-left:50%;display:flex}.work-footer{margin-top:auto;padding:0 76px 24px}.footer-row{justify-content:space-between;align-items:center;width:100%;display:flex}.footer-item{color:var(--light);white-space:nowrap;font-size:12px;font-weight:400}.visitor-time{font-variant-numeric:tabular-nums}.back-btn{width:fit-content;color:var(--light);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#0000000d;border:none;border-radius:50%;justify-content:center;align-items:center;margin-bottom:32px;padding:8px;display:flex;position:relative}.back-btn:after{content:"";min-width:40px;min-height:40px;position:absolute;inset:-4px}@media (hover:hover) and (width>=1251px){.back-btn{transition:color .15s,background .15s}.back-btn:hover{color:var(--dark);background:#00000014}}.home-nav{justify-content:flex-end;padding:40px 76px 0;display:flex}.home-nav-links{gap:24px;display:flex;position:relative}.nav-active-layer{display:none}.nav-inactive-layer{gap:24px;display:flex}.home-nav-links button{color:var(--light);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:0;font-family:inherit;font-size:14px;font-weight:500;transition:color .15s}@media (hover:hover) and (width>=1251px){.home-nav-links button:hover{color:var(--dark)}}.home-nav-links button.active{color:var(--dark);font-weight:500}.home-content{flex-direction:column;flex:1;display:flex;overflow:clip}.header{flex-direction:column;gap:8px;margin-bottom:64px;padding:96px 76px 0;display:flex}.header h1{color:var(--dark);text-wrap:balance;font-size:14px;font-weight:500}.header p{color:var(--dark);text-wrap:pretty;font-size:14px;font-weight:400}.projects{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.project{flex-direction:row;align-items:center;gap:10px;height:56px;padding:0 76px;transition:background .15s,opacity .2s;display:flex}.project:has(.project-link){height:auto;padding:0}.project-link{height:56px;color:inherit;flex-direction:row;flex:1;align-items:center;gap:10px;padding:0 76px;text-decoration:none;display:flex}@media (hover:hover) and (width>=1251px){.project:hover{background:var(--hover-bg)}.project.disabled:hover{background:var(--hover-bg-disabled)}}.notes-group{grid-template-columns:160px 1fr;gap:0 40px;width:100%;display:grid}.notes-group-label{color:var(--dark);white-space:nowrap;padding-top:14px;font-size:14px;font-weight:500}.notes-group-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.notes-group-item{cursor:pointer;align-items:center;gap:16px;width:fit-content;padding:14px 0;transition:opacity .15s;display:flex}.notes-group-date{color:var(--light);white-space:nowrap;flex-shrink:0;font-size:14px;font-weight:400}.notes-group-title{color:var(--dark);font-size:14px;font-weight:400;transition:opacity .15s}.notes-group-item.disabled:not(.animate){opacity:.3}@media (hover:hover) and (width>=1251px){.notes-group-list:has(.notes-group-item:hover) .notes-group-item:not(:hover){opacity:.2}}.project.dim{cursor:not-allowed}@media (hover:hover) and (width>=1251px){.projects:has(.project:hover) .project:not(:hover){opacity:.2!important}}.project.disabled:not(.animate){opacity:.3}.project-name{color:var(--dark);white-space:nowrap;flex-shrink:0;font-size:14px;font-weight:400;transition:color .15s}.project-desc{color:var(--light);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:400;overflow:hidden}.project-year{color:var(--light);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;font-size:14px;font-weight:400}.project-leader{border-bottom:1px solid var(--border-light);flex:1;align-self:center;min-width:20px;margin-bottom:-3px}.page{flex-direction:column;min-height:100%;display:flex;overflow:clip}.page-content{flex-direction:column;align-items:flex-start;gap:40px;width:100%;max-width:640px;margin:0 auto;padding:36px 0 160px;display:flex}.page-heading{color:var(--dark);text-wrap:balance;font-size:14px;font-weight:500}.about-text{color:var(--dark);text-wrap:pretty;flex-direction:column;gap:16px;font-size:14px;font-weight:400;line-height:1.6;display:flex}.about-links{flex-direction:row;gap:24px;display:flex}.about-links a{color:var(--light);text-decoration:underline;-webkit-text-decoration-color:var(--border-light);text-decoration-color:var(--border-light);text-underline-offset:3px;font-size:14px;font-weight:400;transition:color .15s,text-decoration-color .15s}.about-links a:hover{color:var(--dark);-webkit-text-decoration-color:var(--dark);text-decoration-color:var(--dark)}.note-layout{background:var(--bg);min-height:100%;display:flex}.note-sidebar{width:300px;height:100dvh;z-index:var(--z-sheet);flex-direction:column;padding:140px 32px 48px 140px;display:flex;position:fixed;top:0;left:0}.note-breadcrumb{flex-direction:column;align-items:flex-start;margin-bottom:32px;display:flex}.note-back{color:var(--light);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;align-items:center;padding:0;font-family:Matter,sans-serif;font-size:14px;font-weight:400;line-height:1;transition:color .15s;display:inline-flex}.note-back:hover{color:var(--dark)}.quote-list{flex-direction:column;gap:40px;display:flex}.quote-block{transition:opacity .2s}.quote-text{color:var(--dark);text-wrap:pretty;font-family:Gambetta,serif;font-size:16px;font-style:italic;line-height:1.75}.quote-attr{color:var(--light);margin-top:10px;font-size:13px}.quote-attr a{color:var(--light);text-decoration:underline;-webkit-text-decoration-color:var(--border-light);text-decoration-color:var(--border-light);text-underline-offset:2px;transition:color .15s,text-decoration-color .15s}.quote-attr a:hover{color:var(--dark);-webkit-text-decoration-color:var(--dark);text-decoration-color:var(--dark)}.quote-avatar{max-width:180px;box-shadow:var(--shadow-quote);z-index:var(--z-overlay);pointer-events:none;opacity:0;touch-action:none;border-radius:12px;transition:opacity .15s ease-out,transform .15s ease-out;position:fixed;overflow:hidden;transform:translateY(4px)}.quote-avatar.visible{opacity:1;transform:translateY(0)}@media (width<=1250px){.quote-avatar{opacity:1;transition:none;transform:none}}.quote-avatar-img{object-fit:cover;object-position:center;border-radius:inherit;width:180px;height:101px;display:block}.note-sidebar-crumb{opacity:0;pointer-events:none;flex-direction:row;align-items:center;gap:6px;margin-top:-36px;margin-bottom:16px;transition:opacity .4s;display:flex}.note-sidebar-crumb.visible{opacity:1;pointer-events:auto}.note-toc{flex-direction:column;gap:6px;display:flex}.note-toc-item{color:var(--light);white-space:nowrap;font-size:14px;font-weight:400;line-height:1.4;text-decoration:none;transition:color .15s}.note-toc-item:hover,.note-toc-item.active{color:var(--dark)}.note-article{flex-direction:column;gap:40px;width:100%;max-width:640px;margin:0 auto;padding:140px 0 50vh;animation:.6s forwards content-fade;display:flex}.page-content>.page-heading+*{margin-top:-24px}.page-content>.page-heading+.note-date{margin-top:-36px}.note-date{color:var(--light);font-size:14px}.note-date+*{margin-top:-24px}.note-section{flex-direction:column;gap:16px;scroll-margin-top:140px;display:flex}.note-section-heading{color:var(--dark);font-size:14px;font-weight:500}.note-body{color:var(--dark);text-wrap:pretty;font-size:14px;font-weight:400;line-height:1.75}.note-body+.note-body{margin-top:-24px}.note-image-wrap{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.note-image-inner{border-radius:var(--radius);width:100%;position:relative}.note-image-inner .grain-overlay{border-radius:var(--radius)}.note-image-caption{color:var(--light);text-align:center;font-size:12px;font-weight:400}.note-image-caption a{color:var(--light);text-decoration:underline;-webkit-text-decoration-color:var(--border-light);text-decoration-color:var(--border-light);text-underline-offset:2px;transition:color .15s,text-decoration-color .15s}.note-image-caption a:hover{color:var(--dark);-webkit-text-decoration-color:var(--dark);text-decoration-color:var(--dark)}.project-meta{padding:32px 0 40px}.project-meta-header{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.project-meta-title{color:var(--dark);margin:0;font-size:14px;font-weight:500}.project-meta-tagline{color:var(--light);margin:0;font-size:14px}.project-meta-separator{background:var(--border-light);width:100%;height:1px;margin-bottom:46px}.project-meta-grid{grid-template-columns:1fr 1fr;gap:32px 40px;display:grid}.project-meta-field{flex-direction:column;gap:8px;display:flex}.project-meta-label{color:var(--light);font-size:13px}.project-meta-value{color:var(--dark);font-size:14px;line-height:1.8}.note-image-placeholder{aspect-ratio:16/9;width:100%;box-shadow:0 0 0 1px var(--border-light);border-radius:var(--radius);background:#00000026}img.note-image-placeholder{background:0 0;display:block}.music-page{background:var(--bg);min-height:100dvh;overflow:clip}.music-heading{padding:0;display:none}@media (width<=480px){.music-heading{display:block}}.music-page .page-content{gap:8px;padding-bottom:16px}.music-page .page-content>.page-heading+*{margin-top:0}.music-col-headers{background:var(--bg);width:100%;z-index:var(--z-overlay);flex-shrink:0}.top-fade{pointer-events:none;height:64px;z-index:var(--z-fade);background:linear-gradient(to bottom, var(--bg) 0%, transparent 100%);position:fixed;top:0;left:0;right:12px}.music-top-btn{z-index:var(--z-overlay);color:var(--light);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#0000000d;border:none;border-radius:50%;justify-content:center;align-items:center;margin:24px auto 40px;padding:8px;display:flex;position:relative}.music-top-btn:after{content:"";min-width:40px;min-height:40px;position:absolute;inset:-4px}@media (hover:hover) and (width>=1251px){.music-top-btn{transition:color .15s,background .15s}.music-top-btn:hover{color:var(--dark);background:#00000014}}.music-scroll-fade{pointer-events:none;height:120px;z-index:var(--z-scroll-fade);background:linear-gradient(to bottom, transparent 0%, var(--bg) 100%);position:fixed;bottom:0;left:0;right:12px}.music-col-headers-row{border-bottom:1px solid var(--border-light);color:var(--light);grid-template-columns:2fr 2fr 1fr;align-items:center;margin:0 -8px;padding:0 8px 16px;font-size:12px;font-weight:400;display:grid}.music-col-headers-row button{font-family:inherit;font-size:inherit;font-weight:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;width:fit-content;margin:0;padding:0;transition:color .15s}@media (hover:hover) and (width>=1251px){.music-col-headers-row button:hover{color:var(--dark)}}.music-scroll{width:100%}.music-rows{width:100%;padding-top:12px;padding-bottom:20px}.music-row{cursor:pointer;color:inherit;border-radius:12px;grid-template-columns:2fr 2fr 1fr;align-items:center;margin:0 -8px;padding:8px;text-decoration:none;transition:opacity .15s,background .15s;display:grid}@media (hover:hover) and (width>=1251px){.music-row:hover{background:var(--hover-bg)}.music-rows:has(.music-row:hover) .music-row:not(:hover){opacity:.2}}.music-row span{color:var(--dark);text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:0;font-size:13px;font-weight:400;overflow:hidden}.music-row .music-song-name{color:var(--dark);text-overflow:ellipsis;white-space:nowrap;min-width:0;padding-right:24px;overflow:hidden}.music-row .music-artist{color:var(--light);padding-right:24px}@media (hover:hover) and (width>=1251px){.music-row:hover .music-artist,.music-row:hover .music-col-date{color:var(--dark)}}.music-row .music-col-date{text-align:left;color:var(--light);white-space:nowrap}.music-title-cell{align-items:center;gap:10px;min-width:0;display:flex}.music-thumb{border-radius:8px;flex-shrink:0;width:34px;height:34px}.music-track-info{flex:1;min-width:0;display:flex}.music-artist-sub{display:none}.music-empty{color:var(--light);font-size:13px}.sites-rows{width:100%;padding-top:12px}.sites-row{cursor:pointer;color:inherit;border-radius:12px;justify-content:space-between;align-items:center;margin:0 -8px;padding:8px;text-decoration:none;transition:opacity .15s,background .15s;display:flex}.sites-address{color:var(--light);white-space:nowrap;flex-shrink:0;font-size:14px;font-weight:400}@media (hover:hover) and (width>=1251px){.sites-row:hover{background:var(--hover-bg)}.sites-rows:has(.sites-row:hover) .sites-row:not(:hover){opacity:.2}}.sites-title-cell{align-items:center;gap:10px;min-width:0;display:flex}.sites-thumb-wrap{background:#0000000d;border-radius:8px;flex-shrink:0;width:34px;height:34px;overflow:hidden}.sites-thumb{object-fit:cover;width:100%;height:100%;display:block}.sites-thumb-fallback{width:100%;height:100%;display:block}.sites-text{flex-direction:column;min-width:0;display:flex}.sites-name{color:var(--dark);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:400;overflow:hidden}.sites-address-sub{color:var(--light);font-size:13px;font-weight:400;display:none}.music-connect{border:1px solid var(--border-light);color:var(--dark);cursor:pointer;background:0 0;border-radius:6px;padding:8px 16px;font-family:Matter,sans-serif;font-size:13px;transition:border-color .15s}.music-connect:hover{border-color:var(--light)}@media (width<=1250px){.left{display:none}.right{width:100%;margin-left:0}.home-nav{padding:0 24px max(24px, env(safe-area-inset-bottom));z-index:var(--z-modal);pointer-events:auto;justify-content:center;position:fixed;bottom:0;left:0;right:0}.home-nav-links{background:#f5f5f5;border:1px solid #fff;border-radius:72px;gap:8px;padding:6px;box-shadow:0 8px 28px #0000000f}.home-nav-links button{border-radius:72px;padding:10px 22px;font-size:13px}.nav-inactive-layer{gap:8px;display:flex}.nav-active-layer{pointer-events:none;background:#fdfdfd;border-radius:72px;gap:8px;padding:6px;display:flex;position:absolute;inset:0;box-shadow:0 8px 28px #00000017}.nav-active-layer button{color:var(--dark);pointer-events:auto;background:0 0}.home-content{width:100%;max-width:640px;margin:0 auto}.header{margin-bottom:32px;padding:96px 0 0}.project,.project-link{padding:0}.work-footer{width:100%;max-width:640px;margin:auto auto 0;padding:0 0 88px}.page-content{padding:64px 0 120px}.note-sidebar{display:none}.note-article{padding:96px 24px 50vh}.page-content{padding-top:96px!important}.notes-group{grid-template-columns:1fr;gap:0}.notes-group-label{padding-top:0;padding-bottom:8px}.notes-group+.notes-group{margin-top:16px}.note-back:hover,.note-toc-item:hover:not(.active){color:var(--light)!important}.about-links a:hover,.quote-attr a:hover,.note-image-caption a:hover{color:var(--light)!important;-webkit-text-decoration-color:var(--border-light)!important;text-decoration-color:var(--border-light)!important}.music-connect:hover{border-color:var(--border-light)!important}}@media (width<=480px){.header{padding:96px 24px 0}.work-footer{margin-top:120px;padding:0 24px 88px}.project,.project-link{flex-direction:column;align-items:flex-start;gap:4px;height:auto;padding:16px 24px}.project:has(.project-link){padding:0}.project-desc{color:var(--light)}.project-leader,.project-year{display:none}.page-content{padding:60px 24px 100px}.note-article{padding:96px 24px 50vh}.music-col-date,.music-col-headers{display:none}.music-page{position:static;overflow-y:auto}.music-scroll{flex:none;overflow-y:visible;padding-bottom:20px!important}.music-heading{padding:0}.music-row{grid-template-columns:1fr}.music-artist-col{display:none}.music-artist-sub{display:block}.music-track-info{flex-direction:column;gap:0}.music-track-info span{padding:0;line-height:1.4}.music-title-cell{padding:6px 0}.music-thumb{width:42px;height:42px}.sites-address{display:none}.sites-address-sub{display:block}}
