/* mod-mc.net — "Overworld": grass-block header, sky hero with block clouds, Minecraft GUI panels (bevelled grey),
   inventory-slot icons, emerald download buttons, deepslate footer. Headings: Pixelify Sans · body: Bricolage Grotesque. */
:root{--sky1:#7fb8ff;--sky2:#b9dcff;--gui:#c6c6c6;--gui-hi:#ffffff;--gui-lo:#555555;--slot:#8b8b8b;--ink:#1f1f1f;--muted:#4a4a4a;
--paper:#eef0e6;--em:#17a34a;--em2:#22c55e;--em-lo:#0b6b2f;--gold:#f2c94c;--px:'Pixelify Sans','Bricolage Grotesque',system-ui,sans-serif}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;color:var(--ink);font:400 16px/1.55 'Bricolage Grotesque',system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--paper) url(/assets/tx-stone.svg) 0 0/96px 96px}
body::before{content:"";position:fixed;inset:0;background:rgba(238,240,230,.9);z-index:-1}
a{color:#1d5fbf;text-decoration:none}a:hover{color:var(--em-lo)}
img{max-width:100%;height:auto}
h1,h2,h3{font-family:var(--px);font-weight:700;letter-spacing:.01em;line-height:1.15;margin:0 0 .5em}
.wrap{max-width:1180px;margin:0 auto;padding:0 16px}
/* Minecraft GUI bevel */
.row,.filters,.proj-h,.proj-body section,.meta,.deps,.links,.tbl,.static,.empty,.block-h,.sorts,.pager a,.pager span{
background:var(--gui);border:3px solid;border-color:var(--gui-hi) var(--gui-lo) var(--gui-lo) var(--gui-hi);box-shadow:0 0 0 2px #1f1f1f;border-radius:2px}
/* header = grass block */
.top{position:sticky;top:0;z-index:20;background:url(/assets/tx-dirt.svg) 0 0/64px 64px;image-rendering:pixelated;border-bottom:3px solid #3b2a1c}
.top::before{content:"";position:absolute;left:0;right:0;top:0;height:24px;background:url(/assets/tx-grass.svg) 0 0/64px 24px repeat-x;pointer-events:none}
.top-in{position:relative;display:flex;align-items:center;gap:16px;height:66px;image-rendering:auto}
.brand{display:flex;align-items:center;gap:9px;color:#fff;font:700 26px/1 var(--px);text-shadow:2px 2px 0 #2a1d12}
.brand b{color:var(--gold);font-weight:700}.brand:hover{color:#fff}
.brand svg{filter:drop-shadow(2px 2px 0 #2a1d12)}
.types{display:flex;gap:4px;flex:1;overflow-x:auto;scrollbar-width:none}.types::-webkit-scrollbar{display:none}
.types a{color:#fff;padding:6px 10px;font:600 16px/1 var(--px);white-space:nowrap;text-shadow:2px 2px 0 #2a1d12;border:2px solid transparent}
.types a:hover,.types a.on{background:rgba(0,0,0,.35);border-color:rgba(255,255,255,.55)}
.q{display:flex;width:290px;background:#000;border:2px solid #a0a0a0}
.q:focus-within{border-color:#fff}
.q input{flex:1;border:0;background:none;padding:8px 12px;font:inherit;font-size:14px;color:#fff;outline:0;min-width:0}
.q input::placeholder{color:#9a9a9a}
.q button{border:0;background:var(--em);color:#fff;font-size:18px;padding:0 13px;cursor:pointer;border-left:2px solid #a0a0a0}
.menu{display:none;background:rgba(0,0,0,.35);border:2px solid rgba(255,255,255,.5);color:#fff;font-size:22px;cursor:pointer;padding:2px 9px}
main.wrap{padding-top:22px;padding-bottom:40px;min-height:60vh}
.crumbs{font-size:14px;color:var(--muted);margin:0 0 14px}.crumbs a{color:#2e5c9a}.crumbs span{color:var(--ink)}
/* hero = sky + block clouds + grass ground; the form is a GUI panel */
.finder{position:relative;overflow:hidden;background:linear-gradient(#5aa2f5,var(--sky1) 45%,var(--sky2));color:#fff;padding:30px 28px 46px;
display:grid;grid-template-columns:1.1fr 1.6fr;gap:20px 28px;align-items:center;margin-bottom:28px;border:3px solid #1f1f1f}
.finder::before{content:"";position:absolute;width:24px;height:12px;left:6%;top:24px;background:#fff;opacity:.95;
box-shadow:24px 0 #fff,48px 0 #fff,12px -12px #fff,36px -12px #fff,520px 18px #fff,544px 18px #fff,568px 18px #fff,592px 18px #fff,556px 6px #fff,580px 6px #fff,860px -4px #f4f8ff,884px -4px #f4f8ff,872px -16px #f4f8ff}
.finder::after{content:"";position:absolute;left:0;right:0;bottom:0;height:30px;background:url(/assets/tx-grass.svg) 0 0/64px 24px repeat-x,url(/assets/tx-dirt.svg) 0 6px/64px 64px;image-rendering:pixelated}
.finder>*{position:relative;z-index:1}
.finder h1{font-size:36px;color:#fff;margin:0 0 6px;text-shadow:3px 3px 0 #1e3f73}.finder p{margin:0;color:#f1f7ff;text-shadow:1px 1px 0 #1e3f73;font-weight:600}
.finder-f{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;background:var(--gui);border:3px solid;border-color:var(--gui-hi) var(--gui-lo) var(--gui-lo) var(--gui-hi);box-shadow:0 0 0 2px #1f1f1f;padding:12px}
.finder-f label{display:flex;flex-direction:column;font:600 14px/1 var(--px);color:#3f3f3f;gap:6px;flex:1;min-width:120px}
.finder-f select{font:15px 'Bricolage Grotesque',sans-serif;padding:8px 10px;border:2px solid;border-color:#373737 #fff #fff #373737;background:#8b8b8b;color:#fff;border-radius:0}
.vchips{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.vchips a{background:rgba(0,0,0,.4);color:#fff;padding:5px 10px;font:600 15px/1 var(--px);border:2px solid rgba(255,255,255,.6)}
.vchips a:hover{background:var(--em);border-color:#fff;color:#fff}
/* Minecraft buttons: grey stone, blue-ish hover; emerald = primary */
.finder-f button,.btn-s,.btn-dl{font:700 16px/1 var(--px);cursor:pointer;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.45);border:3px solid;border-radius:0;display:inline-block}
.btn-s,.finder-f button{background:#7a7a7a;border-color:#b5b5b5 #3f3f3f #3f3f3f #b5b5b5;box-shadow:0 0 0 2px #111;padding:8px 14px;margin-top:4px}
.btn-s:hover{background:#7c8bd6;border-color:#c6cdf5 #3d4680 #3d4680 #c6cdf5;color:#fff}
.finder-f button,.btn-s.go,.btn-dl{background:var(--em);border-color:#7ee2a2 var(--em-lo) var(--em-lo) #7ee2a2}
.finder-f button:hover,.btn-s.go:hover,.btn-dl:hover{background:var(--em2);border-color:#a8f0c1 var(--em-lo) var(--em-lo) #a8f0c1;color:#fff}
/* blocks + rows */
.home-grid>*,.list-grid>*,.proj-grid>*{min-width:0}
.home-grid,.list-grid,.proj-grid{display:grid;gap:26px}
.home-grid{grid-template-columns:1fr 300px}.list-grid{grid-template-columns:250px 1fr}.proj-grid{grid-template-columns:1fr 300px}
.block{margin-bottom:28px}
.block-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding:7px 12px;background:#3c3c3c;border-color:#6b6b6b #1c1c1c #1c1c1c #6b6b6b}
.block-h h2{font-size:22px;margin:0;color:#fff;text-shadow:2px 2px 0 #000}.block-h a{font:600 15px/1 var(--px);color:var(--gold)}
.row{display:grid;grid-template-columns:72px 1fr auto;gap:14px;align-items:center;padding:10px 12px;margin-bottom:12px;transition:transform .12s}
.row:hover{transform:translateY(-2px);background:#d2d2d2}
.row-ic,.proj-h>img,.mini img{background:var(--slot);border:3px solid;border-color:#373737 #fff #fff #373737;display:block}
.row-ic{width:72px;height:72px;padding:2px}.row-ic img{width:100%;height:100%;display:block;object-fit:cover}
.row-main{min-width:0}.row h3{font-size:20px;margin:0 0 2px}.row h3 a{color:#1f1f1f}.row h3 a:hover{color:var(--em-lo)}
.by{font:400 13px/1 'Bricolage Grotesque',sans-serif;color:var(--muted)}
.row p{margin:0 0 6px;color:#2f2f2f;font-size:15px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.row-tags{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.chip{display:inline-block;font:600 12px/1 'Bricolage Grotesque',sans-serif;padding:4px 8px;background:#e9e9e9;color:#333;border:2px solid #555}
.chip.type{background:#3c3c3c;color:#fff;border-color:#1c1c1c}.chip.warn{background:var(--gold);color:#4a3500;border-color:#8a6d00}
.l-fabric{background:#efe4c8;color:#5b4718;border-color:#a8935e}.l-forge{background:#dbe2ea;color:#22303f;border-color:#6d7d8f}.l-neo{background:#ffd8b8;color:#8a3a00;border-color:#d07a35}
.l-quilt{background:#ead9f5;color:#55286f;border-color:#9d6bbd}.l-iris{background:#d9e1ff;color:#273a99;border-color:#7186e0}.l-of{background:#ffd6d6;color:#8f1a1a;border-color:#d56b6b}
.mc{font:600 13px/1 var(--px);color:#3d6b1f}
.row-num{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.row-num b{font:700 21px/1 var(--px);color:#1f1f1f}.row-num span{font-size:12px;color:var(--muted)}
.mini{list-style:none;margin:0;padding:0}.mini li{border-bottom:2px solid #a8a8a8}.mini li:last-child{border-bottom:0}
.mini a{display:flex;gap:10px;align-items:center;padding:8px 4px;color:var(--ink)}.mini img{width:42px;height:42px;padding:1px;object-fit:cover}
.mini span{display:flex;flex-direction:column;min-width:0}.mini b{font:600 16px/1.2 var(--px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini small{color:var(--muted);font-size:12px}
.side-col{position:sticky;top:84px;align-self:start}
.side-col .block,.proj-side .block{background:var(--gui);border:3px solid;border-color:var(--gui-hi) var(--gui-lo) var(--gui-lo) var(--gui-hi);box-shadow:0 0 0 2px #1f1f1f;padding:0 10px 6px}
.side-col .block-h,.proj-side .block-h{margin:0 -10px 6px;box-shadow:none;border-width:0 0 3px}
.empty{padding:30px;text-align:center;color:var(--muted)}
/* filters */
.filters{align-self:start;position:sticky;top:84px;padding:12px;max-height:calc(100vh - 104px);overflow:auto}
.filters h3{font-size:20px;margin:0 0 8px;color:#3d6b1f}
.fgroup{border-top:2px solid #8b8b8b;padding:10px 0}.fgroup h4{margin:0 0 6px;font:600 15px/1 var(--px);color:#3f3f3f}
.fgroup>a{display:flex;justify-content:space-between;padding:5px 8px;color:var(--ink);font-size:15px;border:2px solid transparent}
.fgroup a i{font-style:normal;color:#555;font-size:12px}.fgroup>a:hover{background:#d6d6d6;border-color:#8b8b8b}
.fgroup>a.on{background:#3c3c3c;color:#fff;border-color:#1c1c1c}.fgroup a.on i{color:#ccc}
.vgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.vgrid a{text-align:center;padding:5px 2px;font:600 14px/1 var(--px);color:#fff;background:var(--slot);border:2px solid;border-color:#373737 #fff #fff #373737}
.vgrid a.on{background:var(--em);border-color:var(--em-lo) #7ee2a2 #7ee2a2 var(--em-lo)}.vgrid a:hover{background:#a0a0a0;color:#fff}
.list-h{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.list-h h1{font-size:32px;margin:0}
.count{background:var(--em);color:#fff;font:700 14px/1 var(--px);padding:5px 10px;border:2px solid var(--em-lo)}
.sorts{margin-left:auto;display:flex;padding:0;overflow:hidden}
.sorts a{padding:7px 12px;font:600 15px/1 var(--px);color:var(--ink)}.sorts a.on{background:#3c3c3c;color:#fff}
.pager{display:flex;gap:8px;justify-content:center;margin:22px 0}.pager a,.pager span{min-width:40px;text-align:center;padding:7px 10px;font:700 15px/1 var(--px);color:var(--ink)}
.pager span.on{background:#3c3c3c;color:#fff}
/* project */
.proj-h{display:grid;grid-template-columns:110px 1fr auto;gap:18px;align-items:center;padding:16px 18px;margin-bottom:22px}
.proj-h>img{width:110px;height:110px;padding:3px;object-fit:cover}
.proj-h h1{font-size:36px;margin:0}.proj-h .tl{font-size:17px;margin:6px 0 10px;color:#2f2f2f}.proj-h .by{margin:2px 0 0;font-size:14px}
.proj-h.small{grid-template-columns:72px 1fr}.proj-h.small>img{width:72px;height:72px}.proj-h.small h1{font-size:28px}
.btn-dl{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:22px;padding:14px 24px;box-shadow:0 0 0 2px #111;white-space:nowrap}
.btn-dl{max-width:100%;min-width:0}.btn-dl small{font:600 12px/1 "Bricolage Grotesque",sans-serif;opacity:.95;text-shadow:none;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.proj-body section{padding:16px 20px;margin-bottom:18px}
.proj-body h2{font-size:24px;color:#2b2b2b}
.proj-body h2::before{content:"";display:inline-block;width:16px;height:16px;margin-right:9px;vertical-align:-1px;image-rendering:pixelated;border:1px solid #2a1d12;
background:url(/assets/tx-grass.svg) 0 0/16px 6px no-repeat,url(/assets/tx-dirt.svg) 0 0/16px 16px}
.proj-body p{margin:0 0 .8em}
.feat{margin:0;padding:0;list-style:none}.feat li{padding:7px 0 7px 28px;position:relative;border-bottom:2px dotted #9a9a9a}
.feat li::before{content:"";position:absolute;left:4px;top:13px;width:12px;height:12px;background:var(--em);border:2px solid var(--em-lo)}
.tips{background:#d7e7c6!important;border-color:#eff8e6 #5c7a42 #5c7a42 #eff8e6!important}.tips ul{margin:0;padding-left:20px}.tips li{margin:4px 0}
.steps{margin:0;padding:0;list-style:none;counter-reset:s}.steps li{counter-increment:s;padding:8px 0 8px 44px;position:relative}
.steps li::before{content:counter(s);position:absolute;left:0;top:5px;width:30px;height:30px;background:var(--slot);color:#fff;font:700 16px/1 var(--px);display:grid;place-items:center;
border:3px solid;border-color:#373737 #fff #fff #373737;text-shadow:1px 1px 0 #000}
details{border-top:2px solid #9a9a9a;padding:10px 0}details summary{font:600 17px/1.3 var(--px);cursor:pointer}details p{margin:8px 0 0}
.shots{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}
.shots figure{margin:0;flex:0 0 min(520px,85%);scroll-snap-align:start}.shots img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#8b8b8b;border:3px solid #1f1f1f}
.shots figcaption{font-size:13px;color:var(--muted);margin-top:4px}
.proj-side{align-self:start;position:sticky;top:84px}
.meta{padding:6px 14px;margin:0 0 16px;display:grid;grid-template-columns:auto 1fr;gap:0 12px}
.meta dt,.meta dd{padding:8px 0;border-bottom:2px dotted #9a9a9a;margin:0;font-size:14px}.meta dt{color:#444}.meta dt::first-letter{text-transform:uppercase}.meta dd{text-align:right;font-weight:600}
.meta dt:nth-last-child(2),.meta dd:last-child{border-bottom:0}
.deps,.links{padding:12px 14px;margin-bottom:16px}.deps h3{font-size:17px;margin:0 0 4px}.deps p{margin:0}
.links{display:flex;flex-direction:column;gap:6px;font-weight:600}
/* download */
.note{background:#fff7d6;border:3px solid;border-color:#fffbe8 #b8950f #b8950f #fffbe8;box-shadow:0 0 0 2px #1f1f1f;padding:10px 14px}
.dl-filter{display:flex;gap:14px;align-items:center;margin:16px 0;font:600 15px/1 var(--px)}.dl-filter select{font:15px 'Bricolage Grotesque',sans-serif;padding:6px 10px;border:2px solid #555;background:#fff}
.cd{font:700 16px/1 var(--px);color:var(--em-lo)}
.tbl{overflow-x:auto;padding:0}
.files{width:100%;border-collapse:collapse;font-size:15px}.files th{text-align:left;font:600 14px/1 var(--px);color:#fff;background:#3c3c3c;padding:10px 12px;white-space:nowrap}
.files td{padding:10px 12px;border-bottom:2px dotted #9a9a9a;vertical-align:middle}.files td small{display:block;color:var(--muted);font-size:12px}
.files tbody tr:hover{background:#d2d2d2}
.files .acts{text-align:right;white-space:nowrap}.files .acts a{margin-left:6px}.files .mcs i{color:var(--muted);font-style:normal;font-size:12px}
.small{font-size:13px;color:var(--muted)}
.ad{margin:14px auto;text-align:center;overflow:hidden}
.static{max-width:760px;padding:22px 26px;margin:0 auto}
/* footer = deepslate */
.foot{background:url(/assets/tx-deep.svg) 0 0/64px 64px;image-rendering:pixelated;color:#d6d6dc;padding:28px 0 14px;margin-top:24px;border-top:3px solid #111}
.foot>*{image-rendering:auto}
.foot-in{display:grid;grid-template-columns:1.4fr 1fr auto;gap:22px;align-items:start}.foot p{margin:8px 0 0;font-size:14px;max-width:440px;text-shadow:1px 1px 0 #000}
.foot-links{display:flex;flex-wrap:wrap;gap:8px 18px;font:600 16px/1.2 var(--px)}.foot a{color:#fff;text-shadow:1px 1px 0 #000}.foot a:hover{color:var(--gold)}
.langs{display:flex;gap:6px}.langs a{padding:4px 8px;font:700 14px/1 var(--px);background:rgba(0,0,0,.45);border:2px solid #777}.langs a.on{background:var(--em);border-color:#7ee2a2}
.foot p.fine{font-size:12px;opacity:.75;margin:18px auto 0;max-width:1180px}
/* responsive */
@media (max-width:980px){.home-grid,.proj-grid{grid-template-columns:1fr}.side-col,.proj-side{position:static}.finder{grid-template-columns:1fr}.q{width:200px}}
@media (max-width:760px){
.list-grid{grid-template-columns:1fr}.filters{position:static;max-height:none}
.top-in{height:58px;gap:10px}.types{display:none;position:absolute;top:58px;left:-16px;right:-16px;background:url(/assets/tx-dirt.svg) 0 0/64px 64px;image-rendering:pixelated;flex-direction:column;padding:8px 16px 14px;border-bottom:3px solid #3b2a1c}
.nav-open .types{display:flex}.menu{display:block;margin-left:auto}.q{flex:1;width:auto;min-width:0}
.brand span{display:none}
.finder{padding:22px 16px 46px}.finder h1{font-size:28px}.finder::before{display:none}
.row{grid-template-columns:58px 1fr;gap:10px;padding:10px}.row-ic{width:58px;height:58px}
.row-num{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;border-top:2px dotted #9a9a9a;padding-top:8px}
.row-num .btn-s{margin:0}
.proj-h{grid-template-columns:72px 1fr;padding:12px}.proj-h>img{width:72px;height:72px}.proj-h h1{font-size:28px}.btn-dl{grid-column:1/-1}
.proj-body section{padding:14px}.foot-in{grid-template-columns:1fr}.sorts{margin-left:0}
.files th:nth-child(3),.files td:nth-child(3),.files th:nth-child(5),.files td:nth-child(5){display:none}
}
