:root{--bg:#faf7f2;--ink:#1a1712;--muted:#8a8275;--line:#e4ddd0;--accent:#9a4a1f;--edu:#6f6247}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:Inter,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit}nav.site{position:fixed;top:0;left:0;right:0;z-index:20;background:rgba(250,247,242,.85);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}nav.site .nav-inner{max-width:1200px;margin:0 auto;padding:0 32px;height:72px;display:flex;justify-content:space-between;align-items:center}.monogram{font-family:Fraunces,serif;font-size:22px;font-weight:600;letter-spacing:.02em}.monogram i{font-style:normal;color:var(--accent)}.tabs{display:flex;gap:6px;list-style:none}.tabs a{font-size:13.5px;font-weight:500;color:var(--muted);padding:8px 16px;border-radius:999px;transition:.2s;cursor:pointer}.tabs a:hover{color:var(--ink)}.tabs a.active{background:var(--ink);color:var(--bg)}nav.site.photo{background:linear-gradient(180deg,rgba(0,0,0,.42),transparent);-webkit-backdrop-filter:none;backdrop-filter:none}nav.site.photo .monogram{color:#fdfbf6;text-shadow:0 1px 8px rgba(0,0,0,.4)}nav.site.photo .monogram i{color:#f2b98a}nav.site.photo .tabs a{color:rgba(255,255,255,.78);text-shadow:0 1px 6px rgba(0,0,0,.35)}nav.site.photo .tabs a:hover{color:#fff}nav.site.photo .tabs a.active{background:#fdfbf6;color:var(--ink);text-shadow:none}main{min-height:100vh}.page-pad{padding-top:72px}footer.site{text-align:center;font-size:12px;color:var(--muted);padding:26px;letter-spacing:.06em}.hero-bg{background:url(/dexter.png) 62% 20%/cover no-repeat;z-index:0}.hero-bg,.hero-scrim{position:fixed;inset:0}.hero-scrim{z-index:1;background:linear-gradient(0deg,rgba(12,14,10,.78) 0,rgba(12,14,10,.3) 34%,rgba(12,14,10,.08) 55%,rgba(12,14,10,.38)),linear-gradient(100deg,rgba(12,14,10,.42),transparent 45%)}.hero-content{position:relative;z-index:2;min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;max-width:1280px;margin:0 auto;padding:0 44px 68px}.hero-content h1{font-family:Fraunces,serif;font-weight:300;font-size:clamp(56px,8.5vw,116px);line-height:.98;letter-spacing:-.015em;color:#fdfbf6;text-shadow:0 2px 24px rgba(0,0,0,.45)}.hero-content h1 b{font-weight:600}.hero-content .line{font-family:Fraunces,serif;font-style:italic;font-weight:300;font-size:clamp(17px,2vw,23px);color:rgba(255,255,255,.88);margin:20px 0 38px;max-width:460px;text-shadow:0 1px 12px rgba(0,0,0,.5)}.icon-row{display:flex;gap:14px}.icon-btn{width:54px;height:54px;border:1.5px solid rgba(255,255,255,.9);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.2s;color:#fff;background:rgba(0,0,0,.18);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.icon-btn:hover{background:#fdfbf6;border-color:#fdfbf6;color:var(--ink);transform:translateY(-3px)}.icon-btn svg{width:20px;height:20px;fill:currentColor}.wrap{max-width:880px;margin:0 auto;padding:56px 32px 120px}.page-title{font-family:Fraunces,serif;font-weight:300;font-size:clamp(38px,5vw,60px);margin-bottom:8px}.page-title b{font-weight:600}.page-sub{color:var(--muted);font-size:15px;margin-bottom:48px;font-style:italic;font-family:Fraunces,serif}.col-heads{display:flex;justify-content:space-between;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:-30px 0 14px}.jt{position:relative;--spine:50%}.jt svg.wires{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.jt .spine{top:0;bottom:0;width:3px;background:var(--ink);border-radius:2px}.jt .end-label,.jt .spine{position:absolute;left:var(--spine);transform:translateX(-50%)}.jt .end-label{font-size:10.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}.jt .end-label.top{top:-24px}.jt .end-label.bottom{bottom:-24px;color:var(--muted)}.jt .ytick{left:var(--spine);width:9px;height:2px;background:var(--muted);opacity:.7}.jt .ylabel,.jt .ytick{position:absolute;transform:translateY(-50%)}.jt .ylabel{left:calc(var(--spine) + 13px);font-size:10px;color:var(--muted);letter-spacing:.08em}.jt .vbar{position:absolute;width:8px;border-radius:99px;transform:translateX(-50%);z-index:2}.jt .jnode{left:var(--spine);width:14px;height:14px;border-radius:50%;border:2.5px solid var(--bg)}.jt .cnode,.jt .jnode{position:absolute;transform:translate(-50%,-50%);z-index:3}.jt .cnode{left:calc(var(--spine) - 15px);width:12px;height:12px;border-radius:50%;background:var(--edu);box-shadow:0 0 0 3px rgba(111,98,71,.15)}.jcard{position:absolute;background:#fffdf9;border:1px solid var(--line);border-radius:12px;padding:11px 14px;z-index:4;transition:box-shadow .15s}.jcard:hover{box-shadow:0 5px 16px rgba(26,23,18,.12)}.jcard.right{left:calc(var(--spine) + 76px);width:calc(100% - var(--spine) - 96px)}.jcard.left{right:calc(100% - var(--spine) + 44px);width:calc(var(--spine) - 64px);text-align:right}.jcard .c-dates{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--accent)}.jcard.left .c-dates{color:var(--edu)}.jcard h3{font-weight:600;font-size:17.5px;line-height:1.2;margin:3px 0 2px}.jcard .c-fn,.jcard h3{font-family:Fraunces,serif}.jcard .c-fn{font-style:italic;color:var(--muted);font-size:13px;line-height:1.35}@media(max-width:640px){.jt{--spine:31%}.jcard.right{left:calc(var(--spine) + 58px);width:calc(100% - var(--spine) - 64px)}.jcard.left{right:calc(100% - var(--spine) + 24px);width:calc(var(--spine) - 28px);padding:8px 10px}.jcard.left h3{font-size:13px}.jcard.left .c-fn{display:none}.jcard.left .c-dates{font-size:9.5px;letter-spacing:.08em}.jcard.right h3{font-size:15.5px}.jcard.right .c-fn{font-size:12px}.jt .ylabel{display:none}}.w-item{display:grid;grid-template-columns:96px 1fr;grid-gap:22px;gap:22px;align-items:center;padding:20px 8px;border-bottom:1px solid var(--line);transition:.25s}.w-item:hover{padding-left:20px;background:rgba(154,74,31,.03)}.w-thumb{width:96px;height:68px;object-fit:cover;border-radius:6px;border:1px solid var(--line);background:#efe9de}.w-date{font-size:12px;letter-spacing:.16em;color:var(--accent);font-weight:600}.w-date,.w-tag{text-transform:uppercase}.w-tag{display:inline-block;font-size:10.5px;letter-spacing:.08em;border:1px solid var(--line);border-radius:999px;padding:2px 10px;color:var(--muted);margin-left:10px;vertical-align:1px;background:rgba(154,74,31,.04)}.w-item h3{font-family:Fraunces,serif;font-weight:600;font-size:clamp(17px,2.2vw,22px);margin:5px 0 3px;line-height:1.25}.w-item p{color:var(--muted);font-size:14px;max-width:560px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}article.post{max-width:720px;margin:0 auto;padding:48px 24px 96px}article.post .kicker{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:18px}article.post h1{font-family:Fraunces,serif;font-weight:600;font-size:clamp(30px,4.6vw,44px);line-height:1.12;margin-bottom:18px}article.post .meta{font-size:13.5px;color:var(--muted);padding-bottom:28px;border-bottom:1px solid var(--line);margin-bottom:36px}.post-body p{font-size:16.5px;margin-bottom:20px}.post-body h2{font-size:26px;margin:40px 0 14px}.post-body h2,.post-body h3{font-family:Fraunces,serif;font-weight:600}.post-body h3{font-size:21px;margin:32px 0 12px}.post-body figure{margin:30px 0}.post-body img{width:100%;border-radius:8px;border:1px solid var(--line);background:#fff}.post-body figcaption{font-size:13px;color:var(--muted);text-align:center;margin-top:10px;font-style:italic}.post-body blockquote{font-family:Fraunces,serif;font-style:italic;font-size:20px;border-left:3px solid var(--accent);padding:4px 0 4px 22px;margin:28px 0;color:#4a4438}.post-body ol,.post-body ul{margin:0 0 20px 26px}.post-body li{font-size:16.5px;margin-bottom:8px}.post-body pre{background:#f1ece2;border:1px solid var(--line);border-radius:8px;padding:16px;overflow-x:auto;font-size:13.5px;margin-bottom:20px}.post-body a{color:var(--accent)}.post-body a:hover{text-decoration:underline}.contact-inner{max-width:1200px;margin:0 auto;padding:120px 32px 90px;width:100%;text-align:center}.contact-inner h1{font-family:Fraunces,serif;font-weight:300;font-size:clamp(40px,6vw,76px);line-height:1.05;margin-bottom:16px}.contact-inner h1 b{font-weight:600}.contact-inner .sub{font-family:Fraunces,serif;font-style:italic;color:var(--muted);font-size:19px;margin-bottom:48px}.big-links{display:flex;flex-direction:column;max-width:560px;margin:0 auto}.big-link{display:flex;justify-content:space-between;align-items:center;padding:22px 10px;border-bottom:1px solid var(--line);font-size:16px;transition:.25s}.big-link:first-child{border-top:1px solid var(--line)}.big-link:hover{padding-left:24px;color:var(--accent)}.big-link .k{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.admin-wrap{max-width:980px;margin:0 auto;padding:110px 24px 90px}.admin-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;flex-wrap:wrap;gap:14px}.admin-head h1{font-family:Fraunces,serif;font-weight:600;font-size:32px}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:9px;font-size:14px;font-weight:600;border:1px solid var(--ink);color:var(--ink);background:transparent;cursor:pointer;transition:.15s}.btn:hover{background:var(--ink);color:var(--bg)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#7c3a17}.btn.danger{border-color:#b3402a;color:#b3402a}.btn.danger:hover{background:#b3402a;color:#fff}.btn.small{padding:6px 12px;font-size:12.5px}.admin-table{width:100%;border-collapse:collapse;background:#fffdf9;border:1px solid var(--line);border-radius:12px;overflow:hidden}.admin-table th{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:left}.admin-table td,.admin-table th{padding:12px 14px;border-bottom:1px solid var(--line)}.admin-table td{font-size:14px;vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.pub{display:inline-block;font-size:11px;font-weight:600;border-radius:999px;padding:3px 12px;cursor:pointer;border:1px solid var(--line)}.pub.on{background:#e3edda;color:#3d5c2a;border-color:#c6d9b7}.pub.off{background:#f3e9e2;color:#8a5a3a}.field{margin-bottom:18px}.field label{display:block;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:6px}.field input[type=date],.field input[type=text],.field select,.field textarea{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:9px;background:#fffdf9;font-family:Inter,sans-serif;font-size:15px;color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(154,74,31,.35)}.field-row{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:16px;gap:16px}@media(max-width:700px){.field-row{grid-template-columns:1fr}}.login-box{max-width:400px;margin:22vh auto 0;background:#fffdf9;border:1px solid var(--line);border-radius:14px;padding:36px}.login-box h1{font-family:Fraunces,serif;font-size:28px;font-weight:600;margin-bottom:20px}.err{color:#b3402a;font-size:13.5px;margin-top:10px}.editor-shell{border:1px solid var(--line);border-radius:12px;background:#fffdf9;overflow:hidden}.editor-toolbar{display:flex;flex-wrap:wrap;gap:2px;padding:8px;border-bottom:1px solid var(--line);background:#f5f0e6;position:-webkit-sticky;position:sticky;top:0;z-index:5}.editor-toolbar button{border:none;background:transparent;border-radius:6px;min-width:32px;height:30px;padding:0 8px;font-size:13.5px;cursor:pointer;color:var(--ink);font-weight:500}.editor-toolbar button:hover{background:#e9e1d1}.editor-toolbar button.active{background:var(--ink);color:var(--bg)}.editor-toolbar .sep{width:1px;background:var(--line);margin:4px 6px}.tiptap{min-height:420px;padding:22px 26px;font-size:16px;outline:none}.tiptap p{margin-bottom:14px}.tiptap h2{font-size:25px;margin:26px 0 10px}.tiptap h2,.tiptap h3{font-family:Fraunces,serif}.tiptap h3{font-size:20px;margin:20px 0 8px}.tiptap blockquote{border-left:3px solid var(--accent);padding-left:16px;font-style:italic;margin:16px 0;color:#4a4438}.tiptap ol,.tiptap ul{margin:0 0 14px 24px}.tiptap pre{background:#f1ece2;border-radius:8px;padding:12px;font-size:13px;margin-bottom:14px}.tiptap img{max-width:100%;border-radius:8px;border:1px solid var(--line)}.tiptap a{color:var(--accent);text-decoration:underline}.tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--muted);float:left;height:0;pointer-events:none;font-style:italic}