:root{--bg:#080606;--fg:#f4f1ec;--muted:#a9a4a0;--accent:#a71919;--line:rgba(244,241,236,.18);--card:#110d0d;--max:1440px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--fg);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}.muted{color:var(--muted)}main{background:var(--bg);color:var(--fg)}.offline,main{min-height:100vh}.offline{display:grid;place-content:center;text-align:center;grid-gap:8px;gap:8px;padding:32px}.topbar{position:fixed;z-index:30;top:0;left:0;right:0;height:76px;padding:0 max(28px,4vw);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{font-size:26px;font-weight:900;letter-spacing:-.06em}.brand span{color:var(--accent)}.topbar nav{display:flex;gap:28px;text-transform:uppercase;font-size:12px;letter-spacing:.14em}.topbar nav a:hover{color:var(--accent)}.pill-link{justify-self:end;border:1px solid var(--fg);padding:12px 18px;border-radius:999px;font-size:11px;letter-spacing:.12em}.pill-link:hover{background:var(--fg);color:var(--bg)}.hero{min-height:100svh;padding:116px max(28px,4vw) 38px;max-width:var(--max);margin:auto;display:flex;flex-direction:column}.hero-meta{display:grid;grid-template-columns:1fr 1fr 1fr;text-transform:uppercase;font-size:11px;letter-spacing:.16em;color:var(--muted);grid-gap:20px;gap:20px}.hero-meta span:nth-child(2){text-align:center}.hero-meta span:nth-child(3){text-align:right}.hero h1{font-size:clamp(84px,15.5vw,238px);line-height:.72;letter-spacing:-.085em;text-transform:uppercase;margin:7vh 0 6vh;font-weight:900}.hero h1 span{display:block}.hero h1 span:last-child{text-align:right;color:transparent;-webkit-text-stroke:1px var(--fg)}.hero-bottom{margin-top:auto;display:grid;grid-template-columns:minmax(260px,.75fr) 1.25fr;align-items:end;grid-gap:7vw;gap:7vw}.hero-bottom>p{font-size:clamp(24px,3.2vw,52px);letter-spacing:-.045em;line-height:1.02;margin:0 0 18px;max-width:760px}.portrait-wrap{height:min(48vh,590px);background:#171111;overflow:hidden;position:relative;border-radius:2px}.portrait-wrap img{width:100%;height:100%;object-fit:cover;filter:grayscale(100%);transition:.5s}.portrait-wrap:hover img{filter:grayscale(0)}.portrait-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 70% 30%,#3a1717,transparent 45%),linear-gradient(135deg,#160e0e,#080606);color:var(--muted);gap:14px}.portrait-placeholder span{font-size:clamp(80px,10vw,160px);font-weight:900;letter-spacing:-.08em;color:rgba(244,241,236,.1)}.portrait-placeholder small{font-size:10px;letter-spacing:.18em}.scroll-note{margin-top:30px;font-size:10px;letter-spacing:.2em;color:var(--muted)}.section{max-width:var(--max);margin:auto;padding:110px max(28px,4vw);border-top:1px solid var(--line)}.section-kicker{display:grid;grid-template-columns:70px 1fr 1fr;grid-gap:20px;gap:20px;font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin-bottom:70px}.section-kicker span:first-child{color:var(--accent)}.section-kicker span:last-child{text-align:right}.section-grid{display:grid;grid-template-columns:1.05fr .95fr;grid-gap:9vw;gap:9vw;align-items:start}.section h2{font-size:clamp(48px,6.6vw,104px);line-height:.92;letter-spacing:-.065em;margin:0;text-transform:uppercase}.lead{font-size:clamp(20px,2vw,30px);line-height:1.25;letter-spacing:-.025em;margin:0;color:#d5d0ca}.mini-links{display:flex;gap:18px;flex-wrap:wrap;margin-top:34px}.mini-links a{border-bottom:1px solid var(--line);padding-bottom:4px;font-size:13px;text-transform:uppercase;letter-spacing:.12em}.mini-links a:hover{color:var(--accent)}.rows{border-top:1px solid var(--line)}.row{display:grid;grid-template-columns:1fr 1.3fr .35fr;grid-gap:50px;gap:50px;padding:36px 0;border-bottom:1px solid var(--line)}.row small{color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.row h3{font-size:clamp(28px,3vw,48px);letter-spacing:-.045em;margin:12px 0 0}.row strong{font-size:18px}.row p{color:#c7c1bc;line-height:1.55;margin:8px 0}.row>span{text-transform:uppercase;text-align:right;font-size:10px;letter-spacing:.18em;color:var(--muted)}.projects-section .section-grid{margin-bottom:60px}.project-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px}.project-card{background:#0e0b0b;border:1px solid var(--line);overflow:hidden}.project-card.featured{grid-column:span 2}.project-card>img,.project-image-placeholder{width:100%;aspect-ratio:16/10;object-fit:cover}.project-image-placeholder{display:grid;place-content:center;background:linear-gradient(145deg,#171111,#0a0707);color:#5b5351;letter-spacing:.2em;font-size:11px}.project-copy{padding:26px}.project-copy small{color:var(--muted);letter-spacing:.14em}.project-copy h3{font-size:clamp(30px,4vw,58px);margin:12px 0;letter-spacing:-.05em}.project-copy p{font-size:17px;line-height:1.5;color:#c8c1bc}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.tags span{border:1px solid var(--line);border-radius:999px;padding:8px 11px;font-size:11px}.project-links{display:flex;gap:18px;margin-top:24px;text-transform:uppercase;font-size:11px;letter-spacing:.14em}.project-links a:hover{color:var(--accent)}.empty-public{padding:56px;border:1px dashed var(--line);color:var(--muted);font-size:11px;letter-spacing:.16em;text-align:center}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.skills-grid article{padding:32px 24px 42px 0;border-bottom:1px solid var(--line)}.skills-grid small{color:var(--accent);text-transform:uppercase;letter-spacing:.14em}.skills-grid h3{font-size:clamp(26px,3vw,48px);margin:10px 0;letter-spacing:-.05em}.language-list{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line)}.language-list>div{display:flex;justify-content:space-between;align-items:baseline;padding:30px 0;border-bottom:1px solid var(--line)}.language-list h3{font-size:clamp(34px,5vw,70px);margin:0;letter-spacing:-.05em}.language-list span{color:var(--muted);text-transform:uppercase;font-size:11px;letter-spacing:.14em}.credentials-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:7vw;gap:7vw}.credentials-grid h2{font-size:clamp(38px,5vw,72px);margin-bottom:30px}.credential{display:grid;grid-template-columns:1fr auto;grid-gap:5px 24px;gap:5px 24px;padding:22px 0;border-top:1px solid var(--line)}.credential strong{font-size:18px}.credential p,.credential span{grid-column:1;color:#c6bfba}.credential small{grid-row:1;grid-column:2;color:var(--muted)}.credential p{margin:5px 0 0}.ai-section{background:var(--accent)}.ai-section .lead,.ai-section .section-kicker{color:rgba(255,255,255,.8)}.ai-section .section-kicker span:first-child,.large-cta{color:white}.large-cta{margin-top:35px;background:transparent;border:1px solid rgba(255,255,255,.7);border-radius:999px;padding:16px 22px;letter-spacing:.12em;font-size:11px}.large-cta:hover{background:white;color:var(--accent)}.footer{max-width:var(--max);margin:auto;padding:90px max(28px,4vw) 40px}.footer>small{color:var(--accent);letter-spacing:.16em}.email-big{display:block;font-size:clamp(38px,7vw,108px);letter-spacing:-.065em;line-height:1;margin:30px 0 70px;word-break:break-word}.email-big:hover{color:var(--accent)}.footer-bottom{border-top:1px solid var(--line);padding-top:25px;display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:20px;gap:20px;color:var(--muted);font-size:12px}.footer-bottom div{text-align:right;display:flex;justify-content:flex-end;gap:16px}.chat-fab{bottom:24px;z-index:50;width:58px;height:58px;border-radius:50%;border:1px solid var(--fg);background:var(--fg);color:var(--bg);font-weight:900}.chat-fab,.chat-panel{position:fixed;right:24px}.chat-panel{bottom:94px;z-index:49;width:min(390px,calc(100vw - 32px));height:min(610px,calc(100vh - 130px));background:#f2eee9;color:#151111;border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.45);display:flex;flex-direction:column;overflow:hidden}.chat-head{display:flex;justify-content:space-between;align-items:center;padding:18px;border-bottom:1px solid #d7d0ca}.chat-head div{display:flex;flex-direction:column;gap:3px}.chat-head small{font-size:9px;letter-spacing:.15em;color:#847b76}.chat-head button{border:0;background:transparent;font-size:28px}.chat-messages{padding:16px;overflow:auto;flex:1 1;display:flex;flex-direction:column;gap:10px}.chat-msg{max-width:85%;padding:11px 13px;border-radius:10px;font-size:14px;line-height:1.4}.chat-msg.assistant{background:#ded8d2;align-self:flex-start}.chat-msg.user{background:#171111;color:white;align-self:flex-end}.quick-prompts{display:flex;gap:6px;overflow:auto;padding:0 12px 10px}.quick-prompts button{white-space:nowrap;border:1px solid #cfc8c2;background:transparent;border-radius:999px;padding:7px 9px;font-size:10px}.chat-input{display:flex;border-top:1px solid #d7d0ca}.chat-input input{flex:1 1;border:0;background:transparent;padding:15px;outline:none}.chat-input button{border:0;background:#171111;color:white;padding:0 18px}.dashboard-shell{min-height:100vh;background:#f3f0eb;color:#171313;display:grid;grid-template-columns:260px 1fr}.dashboard-sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;background:#171313;color:#f3f0eb;padding:25px;display:flex;flex-direction:column}.dashboard-sidebar h1{font-size:25px;letter-spacing:-.04em;margin:0 0 4px}.dashboard-sidebar>small{color:#a9a09a;margin-bottom:30px}.dashboard-nav{display:grid;grid-gap:5px;gap:5px}.dashboard-nav button{border:0;text-align:left;padding:11px 12px;background:transparent;color:#d6d0ca;border-radius:6px}.dashboard-nav button.active,.dashboard-nav button:hover{background:#2a2323;color:white}.sidebar-actions{margin-top:auto;display:grid;grid-gap:8px;gap:8px}.sidebar-actions a,.sidebar-actions button{padding:11px;border:1px solid #504747;background:transparent;color:white;border-radius:5px;text-align:center}.dashboard-main{padding:42px max(32px,5vw) 100px;color:#080606;max-width:1250px;width:100%}.dashboard-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.dashboard-top h2{font-size:42px;letter-spacing:-.05em;margin:0}.save-status{font-size:12px;color:#6f6864}.admin-card{background:white;border:1px solid #ddd6d1;border-radius:10px;padding:24px;margin-bottom:18px}.admin-card h3{margin:0 0 18px}.field-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:15px;gap:15px}.field.full{grid-column:1/-1}.field label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#766e69;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;border:1px solid #d8d1cb;background:#faf8f5;border-radius:6px;padding:11px;outline:none}.field textarea{min-height:110px;resize:vertical}.field input:focus,.field textarea:focus{border-color:#171313}.item-card{background:white;border:1px solid #ddd6d1;border-radius:10px;margin-bottom:14px;overflow:hidden}.item-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:#faf8f5;border-bottom:1px solid #e4ddd8}.item-head strong{font-size:14px}.item-actions{display:flex;gap:6px}.item-actions button{border:1px solid #d4ccc6;background:white;border-radius:5px;padding:7px 9px;font-size:11px}.item-actions button.danger{color:#9a1c1c}.item-body{padding:18px}.add-button,.save-button{border:0;background:#171313;color:white;border-radius:7px;padding:12px 16px}.save-button{background:#8c1919}.dashboard-top .save-button{min-width:120px}.checkbox-field{display:flex;align-items:center;gap:8px}.checkbox-field input{width:auto}.image-uploader{display:grid;grid-gap:9px;gap:9px}.image-uploader img{width:170px;height:120px;object-fit:cover;border-radius:6px;border:1px solid #ddd6d1}.upload-row{display:flex;gap:8px;align-items:center}.upload-row input[type=file]{font-size:12px}.upload-row button{border:1px solid #ccc3bd;background:white;border-radius:5px;padding:8px 10px}.login-page{min-height:100vh;background:#0b0808;color:#f5f1ec;display:grid;place-items:center;padding:24px}.login-card{width:min(430px,100%);border:1px solid #382e2e;background:#120e0e;padding:34px}.login-card h1{font-size:42px;letter-spacing:-.06em;margin:0 0 6px}.login-card p{color:#aaa19c;line-height:1.5}.login-card label{display:block;margin:18px 0 6px;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.login-card input{width:100%;background:#0a0707;color:white;border:1px solid #463b3b;padding:12px}.login-card button{width:100%;margin-top:20px;border:0;background:#a71919;color:white;padding:13px}.login-error{color:#ff9b9b;font-size:13px}@media(max-width:900px){.topbar{grid-template-columns:1fr auto}.topbar nav{display:none}.hero-meta{grid-template-columns:1fr}.hero-meta span:nth-child(n){text-align:left}.hero h1{margin-top:11vh}.credentials-grid,.hero-bottom,.section-grid{grid-template-columns:1fr}.portrait-wrap{height:52vw;min-height:300px}.section-kicker{grid-template-columns:50px 1fr}.section-kicker span:last-child{display:none}.row{grid-template-columns:1fr;gap:16px}.row>span{text-align:left}.project-grid{grid-template-columns:1fr}.project-card.featured{grid-column:auto}.skills-grid{grid-template-columns:1fr 1fr}.footer-bottom{grid-template-columns:1fr}.footer-bottom div{justify-content:flex-start;text-align:left}.dashboard-shell{grid-template-columns:1fr}.dashboard-sidebar{position:static;height:auto}.dashboard-nav{grid-template-columns:repeat(2,1fr)}.sidebar-actions{margin-top:20px;grid-template-columns:1fr 1fr}.field-grid{grid-template-columns:1fr}.dashboard-main{padding:28px 18px 80px}}@media(max-width:560px){.topbar{padding:0 18px}.pill-link{padding:10px 13px}.footer,.hero,.section{padding-left:18px;padding-right:18px}.hero h1{font-size:20vw}.hero-bottom>p{font-size:28px}.section{padding-top:75px;padding-bottom:75px}.section-kicker{margin-bottom:44px}.language-list,.skills-grid{grid-template-columns:1fr}.project-copy{padding:18px}.footer{padding-top:70px}.chat-fab{right:16px;bottom:16px}.chat-panel{right:16px;bottom:84px}.dashboard-top{align-items:flex-start;gap:12px;flex-direction:column}.dashboard-nav{grid-template-columns:1fr 1fr 1fr}.dashboard-nav button{font-size:12px;padding:8px}.field-grid{grid-template-columns:1fr}}.rich-editor{border:1px solid #d8d1cb;border-radius:8px;background:#fff;overflow:hidden}.rich-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:9px;border-bottom:1px solid #e2dcd7;background:#f7f4f1;position:-webkit-sticky;position:sticky;top:0;z-index:2}.rich-tool,.rich-toolbar select{width:auto!important;min-height:34px;border:1px solid #d4ccc6!important;background:#fff!important;color:#211b1b;border-radius:5px;padding:7px 9px!important;font-size:12px;cursor:pointer}.rich-tool.active{background:#211b1b!important;color:#fff}.rich-tool:disabled{opacity:.55;cursor:wait}.rich-editor-content{min-height:360px;padding:28px;outline:none;font-size:16px;line-height:1.75;color:#201a1a}.rich-editor-content p{margin:0 0 1.15em}.rich-editor-content h2{font-size:32px;line-height:1.15;letter-spacing:-.035em;margin:1.4em 0 .55em}.rich-editor-content h3{font-size:24px;line-height:1.2;letter-spacing:-.025em;margin:1.3em 0 .5em}.rich-editor-content ol,.rich-editor-content ul{padding-left:24px;margin:0 0 1.2em}.rich-editor-content blockquote{border-left:3px solid #8c1919;margin:1.5em 0;padding:4px 0 4px 18px;color:#625955}.rich-editor-content a{color:#8c1919;text-decoration:underline}.rich-editor-content img{display:block;max-width:100%;height:auto;margin:30px auto;border-radius:6px}.rich-editor-content hr{border:0;border-top:1px solid #ddd6d1;margin:32px 0}.rich-editor-footer{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;border-top:1px solid #e2dcd7;background:#faf8f5;color:#7a716c;font-size:11px}.rich-editor-loading{padding:30px;border:1px solid #d8d1cb;border-radius:8px;color:#766e69}.project-detail-page{min-height:100vh;background:var(--bg);color:var(--fg);padding:0 max(24px,5vw) 100px}.project-detail-nav{height:82px;border-bottom:1px solid #2a2222;display:flex;align-items:center;justify-content:space-between;text-transform:uppercase;font-size:11px;letter-spacing:.14em}.project-detail-nav a:hover{color:var(--accent)}.project-detail{width:min(1100px,100%);margin:0 auto;padding-top:86px}.project-detail-kicker{display:flex;justify-content:space-between;border-top:1px solid #2a2222;padding-top:14px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.16em}.project-detail h1{font-size:clamp(62px,10vw,150px);line-height:.86;letter-spacing:-.07em;margin:50px 0 35px;max-width:1000px}.project-detail-summary{font-size:clamp(22px,3vw,40px);line-height:1.22;letter-spacing:-.035em;color:#d2cbc6;max-width:850px;margin:0 0 38px}.project-detail-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:52px}.project-detail-cover{width:100%;max-height:720px;object-fit:cover;margin-bottom:80px;background:#120e0e}.project-article{width:min(780px,100%);margin:0 auto;font-size:18px;line-height:1.8;color:#d0c9c4}.project-article p{margin:0 0 1.5em}.project-article h2{font-size:clamp(34px,5vw,62px);line-height:1;letter-spacing:-.05em;color:var(--fg);margin:1.4em 0 .55em}.project-article h3{font-size:clamp(26px,3.5vw,40px);line-height:1.1;letter-spacing:-.035em;color:var(--fg);margin:1.3em 0 .5em}.project-article ol,.project-article ul{padding-left:24px;margin:0 0 1.5em}.project-article li{margin:.45em 0}.project-article blockquote{font-size:1.35em;line-height:1.5;border-left:3px solid var(--accent);padding-left:24px;margin:2.2em 0;color:var(--fg)}.project-article a{color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:4px}.project-article img{display:block;width:calc(100% + min(14vw,180px));max-width:none;margin:70px 0 70px 50%;transform:translateX(-50%);height:auto}.project-article hr{border:0;border-top:1px solid #302727;margin:60px 0}.project-article pre{overflow:auto;background:#100d0d;border:1px solid #2d2525;padding:18px;margin:28px 0}.project-article code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}@media(max-width:700px){.rich-editor-content{padding:18px;min-height:300px}.project-detail{padding-top:55px}.project-detail h1{margin-top:35px}.project-detail-meta{align-items:flex-start;flex-direction:column}.project-detail-cover{margin-bottom:52px}.project-article{font-size:16px}.project-article img{width:100%;margin:42px auto;transform:none}}