*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--ink:#111;--ink-2:#464646;--ink-3:#8d8d8d;--paper:#f7f6f3;--paper-2:#fff;--surface:#f0efec;--surface-2:#e9e7e2;--night:#101010;--night-2:#1a1a1a;--accent:#bd9b5f;--accent-soft:#bd9b5f26;--accent-blue:#3a6ea5;--line:#1111111a;--line-d:#ffffff1c;--glass:#ffffffad;--glass-d:#ffffff13;--shadow-soft:0 18px 50px #11111114;--shadow-hover:0 22px 70px #11111121;--font-display:"DM Serif Display", Georgia, serif;--font-body:"DM Sans", system-ui, sans-serif;--max-w:1200px;--max-narrow:720px;--nav-h:64px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.45, 0, .55, 1)}html{scroll-behavior:smooth;font-size:16px}body{background:linear-gradient(180deg, #fbfaf7 0%, var(--paper) 42%, #f1f0ec 100%);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:geometricprecision;font-weight:300;line-height:1.7;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}ol,ul{list-style:none}.container{max-width:var(--max-w);margin:0 auto;padding:0 32px}.container-narrow{max-width:var(--max-narrow);margin:0 auto;padding:0 32px}@media (prefers-reduced-motion:no-preference){.reveal-up{opacity:0;transition:opacity .7s var(--ease-out) var(--d,0s), transform .7s var(--ease-out) var(--d,0s);transform:translateY(24px)}.reveal-up.is-visible{opacity:1;transform:translateY(0)}}#navbar{z-index:100;-webkit-backdrop-filter:blur(22px)saturate(1.35);background:#f7f6f3b8;border:1px solid #11111113;border-radius:8px;justify-content:space-between;align-items:center;height:56px;padding:0 22px;transition:background .3s,box-shadow .3s,border-color .3s;display:flex;position:fixed;top:12px;left:24px;right:24px;box-shadow:0 14px 44px #1111}#navbar.scrolled{background:#ffffffc7;border-color:#1111111a;box-shadow:0 18px 58px #1111111a}.nav-logo{font-family:var(--font-display);letter-spacing:.04em;width:36px;height:36px;color:var(--paper);background:#111111eb;border-radius:8px;justify-content:center;align-items:center;font-size:1.25rem;display:inline-flex}.nav-links{letter-spacing:.01em;gap:8px;font-size:.875rem;font-weight:400;display:flex}.nav-links a{opacity:.68;border-radius:999px;padding:7px 12px;transition:opacity .2s,background .2s,color .2s;position:relative}.nav-links a:after{display:none}.nav-links a:hover,.nav-links a.active{opacity:1;background:#11111112}.nav-toggle{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:6px;padding:4px;display:none}.nav-toggle span{background:var(--ink);width:22px;height:1.5px;transition:transform .3s,opacity .3s;display:block}.nav-toggle.open span:first-child{transform:translateY(7.5px)rotate(45deg)}.nav-toggle.open span:last-child{transform:translateY(-7.5px)rotate(-45deg)}.mobile-menu{-webkit-backdrop-filter:blur(24px);z-index:90;opacity:0;pointer-events:none;background:#f7f6f3f0;flex-direction:column;justify-content:center;align-items:center;gap:40px;transition:opacity .3s;display:none;position:fixed;inset:0}.mobile-menu.open{opacity:1;pointer-events:all}.mobile-menu a{font-family:var(--font-display);opacity:.8;font-size:2.5rem}.hero{min-height:100svh;padding:calc(var(--nav-h) + 48px) 32px 120px;background:linear-gradient(90deg,#bd9b5f1f 0 1px,#0000 1px) 0 0/25% 100%,linear-gradient(#fbfaf7 0%,#f7f6f3 58%,#f0efec 100%);align-items:center;display:flex;position:relative;overflow:hidden}.hero:after{content:"";background:linear-gradient(90deg,#0000,#0e0e0e47);width:min(34vw,420px);height:1px;position:absolute;bottom:96px;right:32px}.hero-inner{max-width:var(--max-w);width:100%;margin:0 auto}.hero-tag{letter-spacing:.14em;text-transform:uppercase;color:#735b32;background:#ffffff9e;border:1px solid #11111112;border-radius:999px;margin-bottom:28px;padding:6px 10px;font-size:.8125rem;display:inline-flex;box-shadow:0 10px 32px #1111110b}.hero-title{font-family:var(--font-display);letter-spacing:0;max-width:980px;margin-bottom:32px;font-size:clamp(3.5rem,8vw,7.5rem);line-height:1.04}.hero-title .line{display:block}.hero-title .italic-word{font-style:italic}.hero-sub{color:var(--ink-2);max-width:600px;margin-bottom:48px;font-size:clamp(1rem,1.5vw,1.175rem);line-height:1.7}.hero-cta{flex-wrap:wrap;gap:16px;display:flex}.hero-scroll{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);flex-direction:column;align-items:center;gap:12px;font-size:.6875rem;display:flex;position:absolute;bottom:40px;left:32px}.scroll-line{background:var(--ink-3);transform-origin:top;width:1px;height:48px;animation:scrollDrop 1.8s var(--ease-out) 1.2s infinite}@keyframes scrollDrop{0%{opacity:1;transform:scaleY(0)}60%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(1)}}.btn-primary,.btn-ghost{font-family:var(--font-body);letter-spacing:.02em;cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:14px 28px;font-size:.875rem;font-weight:400;transition:background .22s,color .22s,border-color .22s,transform .22s,box-shadow .22s;display:inline-flex}.btn-primary{background:var(--ink);color:var(--paper);border:1px solid var(--ink);box-shadow:0 12px 28px #11111121}.btn-primary:hover{color:var(--paper);background:#242424;border-color:#242424;transform:translateY(-2px);box-shadow:0 18px 36px #1111112e}.btn-ghost{color:var(--ink);border:1px solid var(--line);background:#ffffff80}.btn-ghost:hover{color:var(--ink);background:#ffffffd1;border-color:#1111112e;transform:translateY(-2px);box-shadow:0 14px 34px #11111114}.marquee-wrap{border-top:1px solid var(--line);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);background:#ffffff8f;padding:18px 0;overflow:hidden}.marquee-track{white-space:nowrap;will-change:transform;gap:0;animation:28s linear infinite marquee;display:flex}.marquee-track span{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding:0 20px;font-size:.8125rem}.marquee-track .dot{padding:0 4px}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.marquee-track{animation:none}}.section{padding:112px 0}.section-dark{background:linear-gradient(180deg, #ffffff0a 0%, transparent 22%), linear-gradient(180deg, var(--night) 0%, #151515 100%);color:#f0ede8;--line:var(--line-d)}.section-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;margin-bottom:56px;padding-bottom:16px;display:flex}.section-label{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-size:.75rem}.section-label:before{content:"";vertical-align:middle;opacity:.58;background:currentColor;width:28px;height:1px;margin-right:12px;display:inline-block}.section-label.light{color:#f5f3efa8}.section-link{color:var(--ink-2);font-size:.875rem;transition:color .2s}.section-link:hover{color:var(--ink)}.posts-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.posts-grid-2{grid-template-columns:repeat(2,1fr)}.post-card{background:linear-gradient(180deg, #ffffffeb, #ffffffbd), var(--paper-2);cursor:pointer;border:1px solid #11111113;border-radius:8px;flex-direction:column;gap:16px;padding:32px;transition:background .25s,border-color .25s,transform .25s,box-shadow .25s;display:flex;box-shadow:0 12px 38px #1111110e}.post-card:hover{background:linear-gradient(180deg, #fff, #ffffffd6), var(--paper-2);box-shadow:var(--shadow-hover);border-color:#bd9b5f61;transform:translateY(-4px)}.post-meta{align-items:center;gap:12px;display:flex}.post-tag{letter-spacing:.1em;text-transform:uppercase;color:#70572f;background:var(--accent-soft);border:1px solid #bd9b5f57;border-radius:999px;padding:3px 8px;font-size:.6875rem}.post-date{color:var(--ink-3);font-size:.75rem}.post-title{font-family:var(--font-display);flex:1;font-size:clamp(1.1rem,1.4vw,1.35rem);line-height:1.25}.post-excerpt{color:var(--ink-2);font-size:.875rem;line-height:1.65}.post-read{color:#6c552b;background:#bd9b5f1f;border:1px solid #bd9b5f61;border-radius:999px;justify-content:center;align-self:flex-start;align-items:center;margin-top:auto;padding:7px 12px;font-size:.8125rem;transition:color .2s,background .2s,border-color .2s,transform .2s;display:inline-flex}.post-card:hover .post-read{color:var(--ink);background:#bd9b5f33;border-color:#bd9b5f94;transform:translateY(-2px)}#writings-preview,.small-notes-preview,#work{padding:72px 0}#writings-preview .section-header,.small-notes-preview .section-header,#work .section-header{margin-bottom:24px;padding-bottom:12px}.projects-list{flex-direction:column;display:flex}#work .project-item:first-child{padding-top:32px}#work .project-item:last-child{padding-bottom:32px}.project-item{border-bottom:1px solid var(--line-d);background:#ffffff05;border-radius:8px;grid-template-columns:64px 1fr auto;align-items:start;gap:32px;margin:0 -28px 10px;padding:40px 28px;transition:background .25s,border-color .25s,transform .25s,box-shadow .25s;display:grid}.project-item:hover{background:#ffffff12;border-bottom-color:#c8a96e61;transform:translate(6px);box-shadow:0 22px 64px #00000038}.project-number{font-family:var(--font-display);color:var(--accent);padding-top:2px;font-size:1.4rem}.project-tags{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.project-tags span{letter-spacing:.08em;text-transform:uppercase;color:#f5f3efd1;background:#f5f3ef0b;border:1px solid #f5f3ef47;border-radius:999px;padding:4px 10px;font-size:.6875rem}.project-title{font-family:var(--font-display);color:#f0ede8;margin-bottom:14px;font-size:clamp(1.4rem,2.5vw,2rem);line-height:1.15}.project-title-row{align-items:center;gap:12px;margin-bottom:14px;display:flex}.project-title-row .project-title{margin-bottom:0}.project-icon{background:#c8a96e24;border:1px solid #c8a96e61;border-radius:8px;flex:0 0 32px;width:32px;height:32px;position:relative}.project-icon:before{content:"";background:var(--accent);-webkit-mask:var(--project-icon) center / contain no-repeat;mask:var(--project-icon) center / contain no-repeat;-webkit-mask:var(--project-icon) center / contain no-repeat;position:absolute;inset:6px}.momentum-grids-icon{--project-icon:url(/momentum-grids-icon.svg)}.project-desc{color:#f5f3efc7;max-width:640px;font-size:.975rem;line-height:1.72}.project-links{flex-direction:column;gap:8px;padding-top:6px;display:flex}.project-link{min-width:112px;color:var(--paper);white-space:nowrap;background:#f5f3ef0e;border:1px solid #f5f3ef47;border-radius:999px;justify-content:center;align-items:center;padding:8px 12px;font-size:.8125rem;transition:color .2s,background .2s,border-color .2s,transform .2s;display:inline-flex}.project-link:hover{color:var(--night);background:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.about-grid{grid-template-columns:1fr 1.3fr;align-items:start;gap:80px;display:grid}.about-title{font-family:var(--font-display);letter-spacing:0;margin-top:16px;font-size:clamp(2.5rem,4vw,3.75rem);line-height:1.1}.about-title em{font-style:italic}#about{color:var(--paper);background:linear-gradient(#ffffff09 0%,#0000 32%),#111;border-top:1px solid #f5f3ef14}#about .section-label{color:#f5f3efa3}#about .about-title{color:var(--paper);max-width:560px}.about-right p{color:var(--ink-2);margin-bottom:20px;font-size:1.075rem;line-height:1.75}#about .about-right p{color:#f5f3efc7}#about .about-right p strong{color:var(--paper);font-weight:500}.about-right p strong{color:var(--ink);font-weight:500}.about-links{flex-wrap:wrap;gap:16px;margin-top:40px;display:flex}#about .btn-primary{background:var(--paper);color:var(--night);border-color:var(--paper)}#about .btn-primary:hover{background:var(--paper-2);border-color:var(--paper-2)}#about .btn-ghost{color:var(--paper);border-color:#f5f3ef47}#about .btn-ghost:hover{border-color:#f5f3efc2}.page-header{padding:calc(var(--nav-h) + 80px) 0 64px;border-bottom:1px solid var(--line);background:linear-gradient(#ffffffb8,#f7f6f333),0 0}.page-title{font-family:var(--font-display);letter-spacing:0;margin:16px 0 20px;font-size:clamp(3rem,6vw,5.5rem);line-height:1.06}.page-title em{font-style:italic}.page-sub{color:var(--ink-2);max-width:560px;margin-bottom:36px;font-size:1.075rem;line-height:1.7}.page-sub a{text-underline-offset:3px;text-decoration:underline}.filter-bar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);background:#ffffff80;padding:0}.filters{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:0;display:flex;overflow-x:auto}.filters::-webkit-scrollbar{display:none}.filter-btn{font-family:var(--font-body);letter-spacing:.03em;color:var(--ink-3);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:14px 22px;font-size:.8125rem;font-weight:400;transition:color .2s,background .2s}.filter-btn:hover{color:var(--ink)}.filter-btn.active{color:var(--ink);background:#11111114}.writing-updates{padding:40px 0 8px}.writing-updates-card{background:linear-gradient(180deg, #ffffffe0, #ffffffa3), var(--paper-2);border:1px solid #11111113;border-left:5px solid var(--accent);box-shadow:var(--shadow-soft);border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(320px,.88fr);align-items:center;gap:32px;padding:28px;display:grid}.writing-updates-copy h2{font-family:var(--font-display);margin-bottom:10px;font-size:clamp(1.45rem,2.2vw,2rem);line-height:1.18}.writing-updates-copy p{color:var(--ink-2);max-width:520px;font-size:.9375rem;line-height:1.65}.writing-updates-cta{border:1px solid #bd9b5f61;border-left:5px solid var(--accent);background:#f7f3eadb;border-radius:8px;padding:22px;box-shadow:0 16px 40px #11111112}.writing-updates-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:#6c552b;margin-bottom:6px;font-size:.6875rem;display:block}.writing-updates-cta h3{font-family:var(--font-display);color:var(--ink);margin-bottom:8px;font-size:clamp(1.15rem,1.5vw,1.45rem);line-height:1.18}.writing-updates-cta p{color:var(--ink-2);margin-bottom:18px;font-size:.9rem;line-height:1.6}.writing-updates-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.writings-list{padding:56px 0 72px}.writing-row{cursor:pointer;background:#ffffff8f;border:1px solid #1111;border-radius:8px;grid-template-columns:200px 1fr 48px;align-items:start;gap:32px;margin-bottom:10px;padding:30px 24px;transition:background .22s,border-color .22s,box-shadow .22s,transform .22s;display:grid}.writing-row:hover{background:#ffffffdb;border-color:#bd9b5f47;transform:translateY(-2px);box-shadow:0 16px 42px #11111113}.writing-row.hidden{display:none}.writing-meta{flex-direction:column;gap:8px;padding-top:6px;display:flex}.writing-title{font-family:var(--font-display);margin-bottom:12px;font-size:clamp(1.3rem,2vw,1.75rem);line-height:1.2}.writing-excerpt{color:var(--ink-2);font-size:.9rem;line-height:1.65}.writing-arrow{color:var(--ink-3);padding-top:6px;font-size:1.25rem;transition:transform .2s}.writing-row:hover .writing-arrow{transform:translate(4px,-4px)}.writing-section-heading{border-bottom:1px solid var(--line);margin-bottom:24px;padding-bottom:12px}.small-notes-section{padding:56px 0 72px}.small-notes-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.small-note-card{background:linear-gradient(180deg, #ffffffdb, #ffffff9e), var(--paper-2);border:1px solid #1111;border-radius:8px;min-height:180px;padding:28px;transition:background .25s,border-color .25s,transform .25s,box-shadow .25s;display:block;box-shadow:0 12px 34px #1111110b}a.small-note-card:hover{background:linear-gradient(180deg, #fff, #ffffffd1), var(--paper-2);box-shadow:var(--shadow-hover);border-color:#bd9b5f57;transform:translateY(-3px)}.small-note-kicker{letter-spacing:.1em;text-transform:uppercase;color:#6c552b;background:var(--accent-soft);border:1px solid #c8a96e61;border-radius:999px;margin-bottom:18px;padding:3px 8px;font-size:.6875rem;display:inline-block}.small-note-card h2{font-family:var(--font-display);margin-bottom:12px;font-size:clamp(1.25rem,1.8vw,1.65rem);line-height:1.22}.small-note-card p{color:var(--ink-2);max-width:560px;font-size:.9375rem;line-height:1.7}.small-note-card-empty{grid-column:1/-1}.reading-progress{background:var(--ink);z-index:200;width:0%;height:2px;transition:width .1s linear;position:fixed;top:0;left:0}.post-header{padding:calc(var(--nav-h) + 64px) 0 56px;border-bottom:1px solid var(--line);background:linear-gradient(#ffffffa6,#f7f6f300)}.back-link{color:var(--ink-3);background:#ffffff94;border:1px solid #11111112;border-radius:999px;margin-bottom:32px;padding:7px 12px;font-size:.875rem;transition:color .2s,background .2s,border-color .2s;display:inline-block}.back-link:hover{color:var(--ink);background:#ffffffe0;border-color:#1111111f}.post-header-meta{align-items:center;gap:16px;margin-bottom:24px;display:flex}.post-heading{font-family:var(--font-display);letter-spacing:0;margin-bottom:24px;font-size:clamp(2.2rem,4.5vw,3.75rem);line-height:1.1}.post-lede{color:var(--ink-2);max-width:600px;font-size:1.125rem;line-height:1.7}.post-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.post-content{padding:72px 0}.post-content h2{font-family:var(--font-display);margin:56px 0 20px;font-size:clamp(1.6rem,2.5vw,2.2rem);line-height:1.2}.post-content h2:first-child{margin-top:0}.post-content p{color:var(--ink-2);margin-bottom:20px;font-size:1.0625rem;line-height:1.8}.post-content ol,.post-content ul{margin-bottom:20px;padding-left:24px;list-style:decimal}.post-content ul{list-style:outside}.post-content ol li,.post-content ul li{color:var(--ink-2);margin-bottom:12px;padding-left:8px;font-size:1.0625rem;line-height:1.8}.post-content code{background:#ffffffc2;border:1px solid #11111112;border-radius:6px;padding:2px 6px;font-family:SF Mono,Fira Mono,monospace;font-size:.875em}.spotify-link{color:#1f7a3a;text-underline-offset:4px;background:#1ed7601f;border:1px solid #1ed76047;border-radius:999px;align-items:center;gap:6px;padding:1px 9px 1px 5px;font-weight:500;text-decoration:underline;text-decoration-thickness:1px;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.spotify-link:hover{color:#0f5f2a;background:#1ed76033;border-color:#1ed76075}.spotify-mark{background:url(/spotify-logo.png) 50%/cover no-repeat;border-radius:50%;flex:0 0 18px;width:18px;height:18px;display:inline-block}.callout{background:linear-gradient(180deg, #ffffffe0, #ffffff9e), var(--paper-2);border:1px solid #11111112;border-left:4px solid var(--accent);color:var(--ink-2);border-radius:8px;margin:32px 0;padding:20px 24px;font-size:.9375rem;line-height:1.7;box-shadow:0 14px 40px #1111110e}.callout strong{color:var(--ink)}.math-symbol{color:#6c552b;background:var(--accent-soft);vertical-align:.08em;border:1px solid #c8a96e61;border-radius:50%;justify-content:center;align-items:center;width:1.45em;height:1.45em;margin-right:.2em;font-family:Georgia,serif;font-size:.8em;line-height:1;display:inline-flex}.pdf-attachment{border:1px solid #bd9b5f5c;border-left:5px solid var(--accent);box-shadow:var(--shadow-soft);background:#f7f3eae6;border-radius:8px;grid-template-columns:72px 1fr;align-items:center;gap:20px;margin:44px 0 32px;padding:24px;display:grid}.pdf-icon{background:var(--paper);border:1px solid #0e0e0e29;border-radius:6px;justify-content:center;align-items:flex-end;width:64px;height:76px;padding-bottom:10px;display:flex;position:relative}.pdf-icon:before{content:"";clip-path:polygon(0 0,100% 0,100% 100%);background:#d8c79f;border-bottom:1px solid #0e0e0e29;border-left:1px solid #0e0e0e29;width:18px;height:18px;position:absolute;top:-1px;right:-1px}.pdf-icon span{letter-spacing:.08em;color:var(--ink);font-size:.7rem;font-weight:500}.post-content .pdf-attachment h2{font-family:var(--font-body);letter-spacing:0;color:var(--ink);margin:0 0 6px;font-size:1rem;font-weight:500}.pdf-attachment p{margin-bottom:12px;font-size:.95rem;line-height:1.6}.pdf-attachment a{color:#6c552b;text-underline-offset:4px;font-size:.925rem;font-weight:500;text-decoration:underline;display:inline-flex}.related-link-card{background:linear-gradient(180deg, #ffffffe6, #ffffffad), var(--paper-2);border:1px solid #11111113;border-radius:8px;margin:48px 0 8px;padding:28px;box-shadow:0 14px 42px #1111110e}.post-content .related-link-card h2{font-family:var(--font-display);color:var(--ink);margin:0 0 14px;font-size:clamp(1.4rem,2vw,1.9rem);line-height:1.22}.related-link-card p{max-width:680px}.related-link-card .btn-primary{margin-top:6px}.related-writing-actions{justify-content:center;align-items:stretch;max-width:560px;margin-left:auto;margin-right:auto}.related-writing-actions .btn-primary,.related-writing-actions .btn-ghost{text-align:center;flex:230px;justify-content:center;min-width:230px;margin-top:6px}.related-posts{border-top:1px solid var(--line);padding:80px 0}.cv-body{padding:72px 0 100px}.cv-section{margin-bottom:72px}.cv-section-title{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--line);margin-bottom:32px;padding-bottom:12px;font-size:.75rem}.cv-item{background:#ffffff80;border:1px solid #1111;border-radius:8px;margin-bottom:44px;padding:22px 24px;box-shadow:0 10px 32px #1111110a}.cv-item-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.cv-role{font-family:var(--font-display);font-size:1.25rem;line-height:1.3}.cv-company{color:var(--ink-3);margin-top:2px;font-size:.875rem;display:block}.cv-period{color:var(--ink-3);white-space:nowrap;font-size:.8125rem}.cv-desc{color:var(--ink-2);margin-bottom:12px;font-size:.9375rem;line-height:1.7}.cv-list{color:var(--ink-2);padding-left:20px;font-size:.9375rem;line-height:1.7;list-style:outside}.cv-list li{margin-bottom:6px}.cv-list-standalone{margin-top:-8px}.cv-skills-inline{flex-wrap:wrap;gap:8px;display:flex}.cv-skills-inline span{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);background:#ffffff8f;border:1px solid #1111111a;border-radius:999px;padding:3px 8px;font-size:.6875rem}.cv-tags{flex-wrap:wrap;gap:10px;display:flex}.cv-tags span{letter-spacing:.06em;text-transform:uppercase;color:#6c552b;background:var(--accent-soft);border:1px solid #c8a96e61;border-radius:999px;padding:5px 10px;font-size:.75rem}.skills-grid{grid-template-columns:repeat(3,1fr);gap:32px 40px;display:grid}.skill-group{background:#ffffff80;border:1px solid #1111;border-radius:8px;padding:20px}.skill-group h4{letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin-bottom:8px;font-size:.75rem;font-weight:500}.skill-group p{color:var(--ink-2);font-size:.9375rem;line-height:1.65}.music-page{padding:72px 0 100px}.music-platforms{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.music-card{background:linear-gradient(180deg, #ffffffeb, #ffffffad), var(--paper-2);border:1px solid #11111113;border-top:4px solid var(--platform);border-radius:8px;flex-direction:column;gap:22px;min-height:320px;padding:32px;transition:transform .25s,box-shadow .25s,border-color .25s;display:flex;box-shadow:0 14px 42px #1111110e}.music-card:hover{box-shadow:var(--shadow-hover);border-color:color-mix(in srgb, var(--platform) 42%, #0e0e0e14);transform:translateY(-4px)}.spotify-card{--platform:#1ed760}.deezer-card{--platform:#a238ff}.youtube-card{--platform:#f03}.music-logo{background:var(--platform);width:56px;height:56px;box-shadow:0 14px 34px color-mix(in srgb, var(--platform) 22%, transparent);border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:relative}.spotify-logo{background:url(/spotify-logo.png) 50%/cover no-repeat}.deezer-logo{border-radius:8px;gap:3px}.deezer-logo i{background:#f5f3ef;border-radius:1px;width:7px;display:block}.deezer-logo i:first-child{height:14px}.deezer-logo i:nth-child(2){height:24px}.deezer-logo i:nth-child(3){height:32px}.deezer-logo i:nth-child(4){height:20px}.youtube-logo{border-radius:8px}.youtube-logo:before{content:"";border-top:10px solid #0000;border-bottom:10px solid #0000;border-left:16px solid #f5f3ef;width:0;height:0;margin-left:4px}.music-kicker{letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb, var(--platform) 74%, var(--ink));margin-bottom:10px;font-size:.6875rem;display:block}.music-card h2{font-family:var(--font-display);margin-bottom:10px;font-size:clamp(1.35rem,2vw,1.8rem);line-height:1.2}.music-card p{color:var(--ink-2);font-size:.9375rem;line-height:1.7}.music-card-action{color:var(--ink);border:1px solid color-mix(in srgb, var(--platform) 45%, #0e0e0e24);background:color-mix(in srgb, var(--platform) 13%, transparent);border-radius:999px;align-self:flex-start;margin-top:auto;padding:8px 12px;font-size:.8125rem;transition:background .2s,transform .2s;display:inline-flex}.music-card:hover .music-card-action{background:color-mix(in srgb, var(--platform) 24%, transparent);transform:translateY(-2px)}.not-found-page{min-height:calc(100svh - 105px);padding:calc(var(--nav-h) + 72px) 0 72px;background:linear-gradient(90deg,#bd9b5f1c 0 1px,#0000 1px) 0 0/25% 100%,linear-gradient(#fbfaf7 0%,#f7f6f3 58%,#f0efec 100%);align-items:center;display:flex}.not-found-shell{width:100%}.not-found-card{background:linear-gradient(180deg, #ffffffe6, #ffffffad), var(--paper-2);border:1px solid #11111113;border-left:5px solid var(--accent);max-width:760px;box-shadow:var(--shadow-soft);border-radius:8px;margin:0 auto;padding:clamp(28px,5vw,48px)}.not-found-status{color:var(--ink-2);background:#11111109;border:1px solid #11111112;border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-bottom:28px;padding:12px 14px;font-family:SF Mono,Fira Mono,monospace;font-size:.8rem;display:grid}.not-found-status span,.not-found-status em{color:var(--ink-3);font-style:normal}.not-found-status strong{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.not-found-card h1{max-width:620px;font-family:var(--font-display);letter-spacing:0;margin:0 0 18px;font-size:clamp(2.4rem,6vw,4.9rem);line-height:1.05}.not-found-copy{max-width:520px;color:var(--ink-2);font-size:clamp(1rem,1.4vw,1.125rem);line-height:1.7}.not-found-note{background:#f7f3eae0;border:1px solid #bd9b5f5c;border-radius:8px;margin:32px 0;padding:20px 22px}.not-found-note-label{color:#6c552b;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;font-size:.6875rem;display:block}.not-found-note p{max-width:610px;color:var(--ink-2);font-size:.95rem;line-height:1.7}.not-found-actions{flex-wrap:wrap;gap:12px;display:flex}.footer{border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);background:#ffffff9e;padding:40px 0}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;display:flex}.footer-name{font-family:var(--font-display);font-size:1rem}.footer-links{color:var(--ink-3);gap:28px;font-size:.875rem;display:flex}.footer-links a{transition:color .2s}.footer-links a:hover{color:var(--ink)}.footer-copy{color:var(--ink-3);font-size:.75rem}@media (max-width:900px){.posts-grid{grid-template-columns:1fr 1fr}.about-grid{grid-template-columns:1fr;gap:40px}.project-item{grid-template-columns:48px 1fr}.project-links{flex-direction:row;grid-column:2}.writing-row{grid-template-columns:160px 1fr 36px;gap:20px}.writing-updates-card{grid-template-columns:1fr}.skills-grid{grid-template-columns:repeat(2,1fr)}.music-platforms{grid-template-columns:1fr}}@media (max-width:680px){.container,.container-narrow{padding:0 20px}.hero{padding:calc(var(--nav-h) + 32px) 20px 100px}#navbar{padding:0 16px;top:10px;left:12px;right:12px}.nav-links{display:none}.nav-toggle,.mobile-menu{display:flex}.posts-grid,.posts-grid-2,.small-notes-grid{grid-template-columns:1fr}.writing-row{grid-template-rows:auto auto auto;grid-template-columns:1fr;gap:12px}.writing-arrow{display:none}.writing-updates-card{padding:24px}.writing-updates-actions .btn-primary{justify-content:center;width:100%}.project-item{grid-template-columns:1fr;gap:16px;margin:0;padding:36px 0}.project-item:hover{transform:none}.project-number{display:none}.pdf-attachment{grid-template-columns:1fr;gap:16px}.skills-grid{grid-template-columns:1fr}.hero-scroll{display:none}.section{padding:64px 0}.not-found-page{min-height:auto;padding:calc(var(--nav-h) + 48px) 0 56px}.not-found-status{grid-template-columns:1fr;gap:4px}.not-found-actions .btn-primary,.not-found-actions .btn-ghost{justify-content:center;width:100%}}
