*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:#0b0f0d;color:#e7e9e5;font:15px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:24px 24px}a{color:inherit;text-decoration:none}a:hover{color:#9ee56d}.site-header,.site-footer,.wrap,.admin{max-width:1180px;margin:auto;padding:24px}.site-header{display:flex;justify-content:space-between;gap:24px;align-items:center;border-bottom:1px dashed #2b332e}.brand{display:flex;gap:14px;align-items:center}.brand>b,.prompt,.buildlog,.eyebrow{color:#8edc62}.brand strong{display:block;font-size:28px;letter-spacing:.02em}.brand small{display:block;color:#89c869}.site-header nav{display:flex;gap:24px;flex-wrap:wrap}.section-head{display:flex;justify-content:space-between;margin:22px 0 16px;color:#91df65}.activity{font-size:12px;color:#abb4ad;border:1px solid #27302a;padding:7px 10px}.activity i{display:inline-block;width:8px;height:8px;background:#79cf53;border-radius:50%}.chips{display:flex;gap:10px;overflow:auto;padding-bottom:14px}.chip{border:1px solid #2c342f;border-radius:5px;padding:8px 12px;white-space:nowrap;background:#151a17}.chip.active{border-color:#87d35d;background:#182216}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.project-card{border:1px solid #29312c;background:linear-gradient(135deg,#151a17,#111512);border-radius:8px;overflow:hidden;display:grid;grid-template-columns:42% 1fr;min-height:245px}.project-img img{width:100%;height:100%;object-fit:cover;display:block}.project-body{padding:18px}.card-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.card-title-row h2{font-size:17px;margin:0}.status{font-size:11px;border:1px solid #4c682f;padding:3px 6px;border-radius:5px;color:#9ee56d;background:#1b2916}.status-broken{color:#ff816f;border-color:#6d3028}.status-wip{color:#e5aa45;border-color:#6d5122}.meta{font-size:12px;color:#a7aea9;margin:9px 0}.meta a{color:#8edc62}.project-body p{color:#b7beb9}.buildlog{font-size:13px}.project-page,.page{max-width:850px;margin:auto}.project-hero{padding:35px 0;border-bottom:1px dashed #2c342f}.project-hero h1,.page h1{font-size:38px;margin:.2em 0}.update{padding:30px 0;border-bottom:1px dashed #2c342f}.update-date{color:#8edc62;font-size:12px}.prose{font-family:system-ui,sans-serif;color:#d4d8d5}.prose code{font-family:ui-monospace,monospace;background:#171d19;padding:2px 5px;border:1px solid #29312c}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.gallery img{width:100%;border-radius:6px;border:1px solid #29312c}.gallery figure{margin:0}.gallery figcaption{color:#8e9891;font-size:12px}.site-footer{margin-top:35px;border-top:1px dashed #2b332e;display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;color:#8e9891}.admin-nav{padding:16px 24px;border-bottom:1px solid #29312c;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.admin-nav nav{display:flex;gap:15px;flex-wrap:wrap}.admin{max-width:900px}.narrow{max-width:480px;margin-top:8vh}.admin-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.stack{display:grid;gap:16px}.stack label,label{display:grid;gap:6px;color:#aeb6b0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}input,textarea,select{width:100%;background:#101511;border:1px solid #354037;color:#edf0ed;padding:11px;border-radius:5px;font:inherit}button,.button{background:#172416;border:1px solid #79c851;color:#a6ec79;padding:10px 14px;border-radius:5px;font:inherit;cursor:pointer}.check{display:flex;grid-template-columns:auto 1fr;align-items:center}.check input{width:auto}.admin-list{display:grid;gap:8px;margin-top:20px}.admin-list>div{border:1px solid #29312c;padding:13px;display:grid;grid-template-columns:1fr auto auto;gap:15px;align-items:center}.admin-list span{color:#8e9891;font-size:12px}.admin-list nav{display:flex;gap:12px}.inline-form{display:grid;grid-template-columns:1fr 100px auto;gap:10px}.link{border:0;background:none;padding:0}.danger{color:#ff816f}.hint{font-size:12px;color:#8e9891}.error{color:#ff816f}@media(max-width:760px){.site-header{align-items:flex-start}.site-header nav{gap:12px;font-size:12px}.brand strong{font-size:20px}.project-grid{grid-template-columns:1fr}.project-card{grid-template-columns:110px 1fr;min-height:135px}.project-body{padding:12px}.project-body p{display:none}.card-title-row h2{font-size:14px}.status{font-size:9px}.meta{font-size:10px}.site-footer{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}.section-head .activity{display:none}.admin-list>div{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr}.project-hero h1,.page h1{font-size:29px}}.empty-state{border:1px dashed #354037;padding:24px;margin:12px 0 18px;color:#aeb6b0;background:#101511}.project-intro{padding:24px 0;border-bottom:1px dashed #2c342f}.success{color:#9ee56d}.error-page{padding:50px 0}.admin-list nav form{display:inline}.admin-list nav{align-items:center}.project-card:not(:has(.project-img)){grid-template-columns:1fr}

.permalink{display:inline-block;margin-top:1rem;font-size:.78rem;color:var(--muted);text-decoration:none}
.permalink:hover{color:var(--green)}
.update-date a,.update h2 a{color:inherit;text-decoration:none}
.update-date a:hover,.update h2 a:hover{color:var(--green)}

/* Project status vocabulary */
.status-screwed{color:#ff6b6b;border-color:#8b3232;background:#291313}.status-broken{color:#ff9b72;border-color:#7b4632;background:#241914}.status-some-screws-missing{color:#e9bd60;border-color:#705b2e;background:#231e12}.status-in-the-wild{color:#7fd7ff;border-color:#35697f;background:#102129}.status-flushed{color:#a9b0ab;border-color:#4b514d;background:#181b19}.status-working{color:#9ee56d;border-color:#4c682f;background:#1b2916}.status-wip{color:#e5aa45;border-color:#6d5122;background:#241d10}.status-finished{color:#b7e89e;border-color:#547446;background:#182116}.status-abandoned{color:#9a9f9b;border-color:#474b48;background:#171918}

/* Admin deployment health check */
.health-summary{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid #354037;border-radius:7px;padding:14px 16px;margin:18px 0 26px;background:#101511}.health-summary span{font-size:12px;color:#aeb6b0}.health-good{border-color:#4c682f}.health-warn{border-color:#6d5122}.health-bad{border-color:#6d3028}.health-checks{display:grid;gap:8px;margin:12px 0 28px}.health-check{display:grid;grid-template-columns:12px 1fr auto;gap:12px;align-items:start;border:1px solid #29312c;padding:12px 14px;border-radius:6px;background:#101511}.health-check p{margin:4px 0 0;color:#8e9891;font-size:12px}.health-check>b{font-size:10px;letter-spacing:.08em}.health-dot{width:9px;height:9px;margin-top:5px;border-radius:50%;background:#79cf53}.health-warn .health-dot{background:#e5aa45}.health-fail .health-dot{background:#ff816f}.health-ok>b{color:#9ee56d}.health-warn>b{color:#e5aa45}.health-fail>b{color:#ff816f}.health-rollup{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 24px}.health-rollup>div{border:1px solid #29312c;border-radius:6px;padding:14px;background:#101511}.health-rollup span{display:block;color:#8e9891;font-size:11px}.health-rollup strong{display:block;margin-top:4px;font-size:24px;color:#e7e9e5}@media(max-width:760px){.health-summary{align-items:flex-start;flex-direction:column}.health-check{grid-template-columns:12px 1fr}.health-check>b{grid-column:2}.health-rollup{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.2.4 social presentation */
.site-header{display:grid;grid-template-columns:minmax(250px,1fr) auto auto}
.primary-nav{display:flex;gap:22px;flex-wrap:wrap;align-items:center}
.social-nav{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.social-link{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #2c342f;border-radius:6px;background:#111612;color:#aab3ac;transition:border-color .15s ease,color .15s ease,transform .15s ease}
.social-link:hover{color:#9ee56d;border-color:#54743d;transform:translateY(-1px)}
.social-icon{display:block;flex:none}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.social-admin-name{display:flex;align-items:center;gap:8px}
@media(max-width:860px){.site-header{grid-template-columns:1fr auto}.primary-nav{grid-column:1/-1;grid-row:2}.social-nav{grid-column:2;grid-row:1}.site-header nav{gap:10px}}
@media(max-width:520px){.site-header{grid-template-columns:1fr}.social-nav{grid-column:1;grid-row:2}.primary-nav{grid-column:1;grid-row:3}.social-link{width:32px;height:32px}}

/* v0.2.5 media library + structured About page */
.media-upload{border:1px dashed #354037;padding:18px;border-radius:7px;background:#101511;margin-bottom:24px}.media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.media-card{border:1px solid #29312c;border-radius:7px;overflow:hidden;background:#101511}.media-card>a{display:block;aspect-ratio:4/3;background:#090c0a}.media-card img{width:100%;height:100%;object-fit:cover;display:block}.media-card-body{padding:12px;display:grid;gap:7px}.media-card-body strong{font-size:12px;overflow-wrap:anywhere}.media-card-body span{font-size:10px;color:#8e9891}.media-card-body p{margin:0;color:#b8c0ba;font-size:12px}.media-card-body nav{display:flex;gap:12px;font-size:12px}.media-edit-preview{display:block;max-width:100%;max-height:520px;object-fit:contain;border:1px solid #29312c;border-radius:7px;margin:12px 0 20px}.about-admin-block{border:1px solid #29312c;border-radius:7px;padding:18px;background:#101511;display:grid;gap:14px}.about-admin-block h2{margin:0}.about-admin-preview{max-width:240px;max-height:170px;object-fit:cover;border:1px solid #29312c;border-radius:6px}.about-page{max-width:980px;margin:auto}.about-blocks{display:grid;gap:0}.about-block{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:34px;align-items:center;padding:42px 0;border-bottom:1px dashed #2c342f}.about-block-reverse figure{order:2}.about-block figure{margin:0}.about-block figure img{width:100%;max-height:500px;object-fit:cover;display:block;border:1px solid #29312c;border-radius:8px}.about-block figcaption{font-size:11px;color:#8e9891;margin-top:7px}.about-block h2{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:26px;margin:.3em 0 .7em}.copyright{display:block;margin-top:7px;color:#737d76;font-size:11px}
@media(max-width:760px){.media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-block{grid-template-columns:1fr;gap:18px;padding:28px 0}.about-block-reverse figure{order:0}}
@media(max-width:460px){.media-grid{grid-template-columns:1fr}}

/* v0.2.6 project thumbnails + latest image wall */
.thumbnail-admin{display:grid;grid-template-columns:minmax(0,180px) 1fr;gap:16px;align-items:start;border:1px solid #29312c;padding:14px;border-radius:7px;background:#101511}.thumbnail-admin>img{width:180px;height:120px;object-fit:cover;border:1px solid #354037;border-radius:5px}.thumbnail-admin>label:only-child{grid-column:1/-1}.latest-images-section{margin-top:38px;padding-top:6px;border-top:1px dashed #2b332e}.latest-images-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:8px}.latest-image{position:relative;aspect-ratio:1;overflow:hidden;border:1px solid #29312c;border-radius:6px;background:#111512}.latest-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .18s ease}.latest-image:hover img{transform:scale(1.04)}.latest-image span{position:absolute;inset:auto 0 0;padding:20px 7px 6px;background:linear-gradient(transparent,rgba(0,0,0,.88));display:grid;gap:1px}.latest-image strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.latest-image small{font-size:9px;color:#b7beb9}
@media(max-width:1050px){.latest-images-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:700px){.latest-images-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.latest-image span{display:none}.thumbnail-admin{grid-template-columns:1fr}.thumbnail-admin>img{width:100%;height:auto;max-height:240px}}
@media(max-width:430px){.latest-images-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.latest-images-grid{grid-template-columns:repeat(auto-fit,minmax(140px,200px));justify-content:start}
@media(max-width:700px){.latest-images-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:430px){.latest-images-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}


/* v0.2.7 phone-first update composer */
.post-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:4px}.post-actions button{min-height:48px;font-weight:700}.button-secondary{background:#121714;border-color:#465148;color:#c5ccc7}.button-secondary:hover{border-color:#6a756d;color:#fff}.mobile-post-form input[type=file]{padding:14px;min-height:54px}.mobile-post-form textarea{min-height:220px}
@media(max-width:600px){.mobile-post-form{gap:14px}.mobile-post-form textarea{min-height:38vh;font-size:16px}.mobile-post-form input,.mobile-post-form select{font-size:16px}.post-actions{position:sticky;bottom:0;z-index:10;background:linear-gradient(transparent,#0b0f0d 20%);padding:18px 0 8px;margin-top:0}.post-actions button{min-height:54px;font-size:15px}}

.health-image-test{display:flex;gap:18px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:10px;background:var(--panel);margin-bottom:24px}.health-image-test img{width:200px;height:200px;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:#080d0a}.health-image-test p{margin:.35rem 0 1rem}@media(max-width:620px){.health-image-test{align-items:flex-start;flex-direction:column}.health-image-test img{width:200px;height:200px}}

/* v0.2.9 image presentation */
.project-title-row{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.project-title-row>div{min-width:0}.project-title-row .status{flex:none;margin-top:12px}.project-cover{margin:26px 0 8px;padding:0;border:1px solid #29312c;border-radius:10px;overflow:hidden;background:#070a08;box-shadow:0 14px 40px rgba(0,0,0,.22)}.project-cover>a{display:block;max-height:620px;background:radial-gradient(circle at center,#151b17,#080b09 72%)}.project-cover picture{display:block;height:100%}.project-cover img{display:block;width:100%;max-height:620px;object-fit:contain;margin:auto}.project-cover figcaption{padding:9px 12px;border-top:1px solid #29312c;color:#8e9891;font-size:11px;background:#101511}.no-updates{color:#8e9891}.no-updates .prompt{margin-right:7px}.update-head{display:flex;justify-content:space-between;gap:18px;align-items:start}.update-head .permalink{margin-top:0}.gallery{margin-top:22px;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.gallery figure{overflow:hidden;border:1px solid #29312c;border-radius:8px;background:#0a0d0b}.gallery figure>a{display:block;overflow:hidden;background:#080b09}.gallery img{display:block;width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;border:0;border-radius:0;transition:transform .18s ease}.gallery figure:hover img{transform:scale(1.015)}.gallery figcaption{padding:8px 10px;border-top:1px solid #29312c}.gallery-count-1{grid-template-columns:1fr}.gallery-count-1 img{aspect-ratio:auto;max-height:720px;object-fit:contain}.gallery-count-3 figure:first-child,.gallery-count-4 figure:first-child{grid-column:span 2}.gallery-count-3 figure:first-child img,.gallery-count-4 figure:first-child img{aspect-ratio:16/9}

/* Make project cards feel more photographic without overpowering the text. */
.project-img{display:block;position:relative;overflow:hidden;background:#080b09}.project-img:after{content:"";position:absolute;inset:0;box-shadow:inset -18px 0 28px -24px rgba(0,0,0,.75);pointer-events:none}.project-img img{transition:transform .2s ease,filter .2s ease}.project-card:hover .project-img img{transform:scale(1.018);filter:brightness(1.04)}

/* Latest images: fixed 200px desktop tiles, compact responsive wall on phones. */
.latest-images-section{margin-top:44px;padding-top:18px}.latest-images-grid{display:grid;grid-template-columns:repeat(auto-fill,200px);gap:10px;justify-content:start}.latest-image{display:block;width:200px;height:200px;aspect-ratio:auto;isolation:isolate;box-shadow:0 8px 24px rgba(0,0,0,.12)}.latest-image:after{content:"↗";position:absolute;z-index:3;right:7px;top:7px;width:24px;height:24px;border:1px solid rgba(255,255,255,.22);border-radius:5px;background:rgba(5,8,6,.72);display:grid;place-items:center;color:#9ee56d;font-size:11px;opacity:0;transform:translateY(-2px);transition:.16s ease}.latest-image:hover:after{opacity:1;transform:none}.latest-image img{position:absolute;inset:0}.latest-image span{z-index:2;display:grid!important;gap:1px;padding:42px 9px 8px;background:linear-gradient(transparent,rgba(4,7,5,.94));pointer-events:none}.latest-image strong{font-size:10px;line-height:1.2}.latest-image small{font-size:9px}

@media(max-width:760px){.project-title-row{display:block}.project-title-row .status{display:inline-block;margin-top:6px}.project-cover{margin-top:18px;border-radius:7px}.project-cover>a,.project-cover img{max-height:68vh}.gallery,.gallery-count-3,.gallery-count-4{grid-template-columns:1fr}.gallery-count-3 figure:first-child,.gallery-count-4 figure:first-child{grid-column:auto}.gallery img,.gallery-count-3 figure:first-child img,.gallery-count-4 figure:first-child img{aspect-ratio:auto;max-height:72vh;object-fit:contain}.update-head{display:block}.update-head .permalink{display:inline-block;margin-top:8px}.latest-images-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.latest-image{width:100%;height:auto;aspect-ratio:1}.latest-image span{display:none!important}.latest-image:after{display:none}}
@media(max-width:520px){.latest-images-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-card{grid-template-columns:120px 1fr}.project-img:after{box-shadow:none}}

/* v0.3.0 inline post/image editing + logged-in edit controls */
.public-edit-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}.public-edit-actions a,.logged-edit{display:inline-flex;align-items:center;gap:5px;border:1px solid #426136;background:#142013;color:#9ee56d;border-radius:5px;padding:6px 9px;font-size:11px}.public-edit-actions a:hover,.logged-edit:hover{border-color:#7bc755;background:#192817;color:#c9ffab}.card-edit{margin-left:12px}.update-links{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.update-links .permalink{white-space:nowrap}.button-link{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border:1px solid #465148;border-radius:5px}.admin-head-wrap{align-items:flex-start}.admin-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.admin-head.compact{align-items:flex-start;margin-bottom:10px}.admin-head.compact h2{margin:0}.mini-actions{display:flex;gap:12px;flex-wrap:wrap;margin:7px 0;font-size:11px}.editor-panel{border:1px solid #29312c;background:rgba(16,21,17,.88);border-radius:9px;padding:18px;display:grid;gap:15px}.editor-panel>h2{margin:0}.update-image-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.update-image-editor-card{border:1px solid #303a33;background:#0d120f;border-radius:8px;overflow:hidden}.update-image-preview{display:block;aspect-ratio:4/3;background:#070a08}.update-image-preview img{width:100%;height:100%;object-fit:cover;display:block}.update-image-fields{display:grid;gap:10px;padding:12px}.image-card-meta{display:flex;justify-content:space-between;gap:9px;align-items:center}.mini-badge{font-size:9px;padding:2px 5px;border:1px solid #4c682f;border-radius:4px;color:#9ee56d;background:#182216}.image-inline-options{display:grid;grid-template-columns:80px 1fr;gap:8px 12px;align-items:end}.image-inline-options .check{align-self:center}.danger-check{color:#ff9585}.tiny-link{font-size:10px;color:#8e9891}.add-images-box{border:1px dashed #3a473e;border-radius:7px;padding:14px;background:#0c100e;display:grid;gap:10px}.admin-project-list nav{flex-wrap:wrap}.admin-project-list>div{grid-template-columns:minmax(180px,1fr) auto minmax(250px,auto)}
@media(max-width:760px){.public-edit-actions a,.logged-edit{min-height:38px;padding:8px 10px}.card-edit{margin:10px 0 0;display:flex;width:max-content}.update-links{justify-content:flex-start;margin-top:9px}.admin-head-wrap{display:grid;grid-template-columns:1fr}.admin-actions{justify-content:flex-start;width:100%}.admin-actions a{flex:1;min-width:130px}.update-image-editor-grid{grid-template-columns:1fr}.image-inline-options{grid-template-columns:80px 1fr}.admin-project-list>div{grid-template-columns:1fr}.admin-project-list nav{gap:10px}.editor-panel{padding:13px}.update-image-preview{aspect-ratio:auto;max-height:54vh}.update-image-preview img{height:auto;max-height:54vh;object-fit:contain}.update-image-fields input{font-size:16px}}
@media(max-width:480px){.image-inline-options{grid-template-columns:1fr}.admin-actions a{width:100%;flex-basis:100%}.post-actions{grid-template-columns:1fr 1fr}}

/* v0.3.1 smaller project cover + newest-update marker */
.project-cover{width:min(100%,620px);margin:22px 0 8px}.project-cover>a{max-height:420px}.project-cover img{max-height:420px}.update-date{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.latest-badge{display:inline-flex;align-items:center;border:1px solid #79c851;background:#172416;color:#b7f58f;border-radius:4px;padding:2px 6px;font-size:9px;font-weight:700;letter-spacing:.08em;line-height:1.3}.latest-update{position:relative}.latest-update::before{content:'';position:absolute;left:-12px;top:30px;width:3px;height:28px;border-radius:3px;background:#79c851;box-shadow:0 0 14px rgba(121,200,81,.3)}
@media(max-width:760px){.project-cover{width:100%;margin-top:16px}.project-cover>a,.project-cover img{max-height:48vh}.latest-update::before{left:-7px}}
