:root{--font-sans:"IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--font-display:"Oswald", ui-sans-serif, sans-serif;--bg:#121211;--surface:#1a1917;--surface-2:#23221e;--fg:#f2efe8;--muted:#8e8a82;--faint:#5c5852;--primary:#e8e4db;--primary-fg:#161513;--border:#2e2c28;--success:#7d9a82;--danger:#c45c4a;--warn:#c4a574;--ring:#e8e4db;--ease:cubic-bezier(.22, 1, .36, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100dvh}body{font-family:var(--font-sans);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}img{max-width:100%;display:block}.grain{pointer-events:none;z-index:50;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.app-shell{min-height:100dvh;position:relative}.header{z-index:40;border-bottom:1px solid color-mix(in srgb, var(--border) 80%, transparent);background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0}.header-inner{align-items:center;gap:.75rem;max-width:72rem;height:4rem;margin:0 auto;padding:0 1rem;display:flex}.logo{flex-shrink:0;align-items:center;gap:.5rem;display:inline-flex}.logo-mark{width:2rem;height:2rem;color:var(--primary)}.logo-text{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;font-size:1.125rem}.region{text-transform:uppercase;letter-spacing:.18em;color:var(--faint);flex:1;justify-content:center;font-size:.75rem;display:none}@media (width>=768px){.region{display:flex}}.nav{align-items:center;gap:.25rem;margin-left:auto;display:flex}.btn{white-space:nowrap;cursor:pointer;transition:color .15s var(--ease), background .15s var(--ease), transform .15s var(--ease), opacity .15s var(--ease);border:none;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;font-weight:500;display:inline-flex}.btn:active{transform:scale(.98)}.btn:focus-visible{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--ring);outline:none}.btn:disabled{opacity:.4;pointer-events:none}.btn-ghost{color:var(--fg);background:0 0;height:2.25rem;padding:0 .75rem;font-size:.75rem}.btn-ghost:hover,.btn-ghost.active{background:var(--surface-2)}.btn-primary{background:var(--primary);color:var(--primary-fg);height:2.25rem;padding:0 .75rem;font-size:.75rem}.btn-primary:hover{background:color-mix(in srgb, var(--primary) 90%, white)}.btn-primary.lg,.btn.lg{height:2.75rem;padding:0 1.25rem;font-size:.875rem}.btn-outline{color:var(--fg);border:1px solid var(--border);background:0 0;height:2.75rem;padding:0 1rem;font-size:.875rem}.btn-outline:hover{background:var(--surface-2)}.btn-danger{background:color-mix(in srgb, var(--danger) 20%, var(--surface));color:#f0c4bc;border:1px solid color-mix(in srgb, var(--danger) 40%, var(--border));height:2.5rem;padding:0 1rem;font-size:.8125rem}.main{width:100%;max-width:72rem;margin:0 auto;padding:1.5rem 1rem 6rem}@media (width>=640px){.main{padding-bottom:3rem}}.hero{gap:1.5rem;margin-bottom:2rem;display:grid}@media (width>=1024px){.hero{grid-template-columns:1.2fr .8fr;align-items:end}}.eyebrow{text-transform:uppercase;letter-spacing:.22em;color:var(--muted);margin:0;font-size:.75rem}.hero h1{max-width:36rem;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;margin:.5rem 0 0;font-size:clamp(2.25rem,5vw,3rem);font-weight:600;line-height:1.05}.hero-lead{max-width:32rem;color:var(--muted);margin:1rem 0 0;font-size:.875rem;line-height:1.625}.stats{border:1px solid var(--border);background:var(--surface);border-radius:1rem;grid-template-columns:repeat(3,1fr);gap:.75rem;padding:1rem;display:grid}.stats .n{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--primary);margin:0;font-size:1.5rem}.stats .l{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:.25rem 0 0;font-size:.6875rem}.notice{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:.75rem;margin:0 0 2rem;padding:.75rem 1rem;font-size:.875rem}.notice strong{color:var(--fg);font-weight:500}.filters{flex-direction:column;gap:.75rem;margin-bottom:1.25rem;display:flex}.search{flex:1;position:relative}.search svg{width:1rem;height:1rem;color:var(--faint);pointer-events:none;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.input,.select,.textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--fg);box-shadow:none;border-radius:.5rem;padding:0 .75rem;font-size:.875rem;transition:box-shadow .15s}.input,.select{height:2.75rem}.input.pl{padding-left:2.5rem}.textarea{resize:vertical;min-height:7rem;padding:.75rem}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{box-shadow:0 0 0 2px var(--ring);outline:none}.chip-row{scrollbar-width:none;gap:.5rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.chip-row::-webkit-scrollbar{display:none}.chip{border:1px solid var(--border);background:var(--surface);height:2rem;color:var(--muted);cursor:pointer;border-radius:999px;flex-shrink:0;padding:0 .75rem;font-size:.75rem;transition:background .15s,color .15s,border-color .15s}.chip:hover{color:var(--fg)}.chip.active{background:var(--primary);color:var(--primary-fg);border-color:var(--primary)}.job-grid{gap:1rem;display:grid}@media (width>=640px){.job-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.job-grid{grid-template-columns:repeat(3,1fr)}}.job-card{border:1px solid var(--border);background:var(--surface);transition:border-color .15s, transform .15s var(--ease);border-radius:1rem;flex-direction:column;display:flex;overflow:hidden}.job-card:hover{border-color:color-mix(in srgb, var(--primary) 35%, var(--border));transform:translateY(-1px)}.job-card .thumb{aspect-ratio:16/10;object-fit:cover;background:var(--surface-2);width:100%}.job-card .body{flex-direction:column;flex:1;gap:.5rem;padding:1rem;display:flex}.meta-row{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);flex-wrap:wrap;gap:.35rem .75rem;font-size:.6875rem;display:flex}.job-card h2{font-family:var(--font-display);letter-spacing:.03em;text-transform:uppercase;margin:0;font-size:1.125rem;font-weight:500;line-height:1.25}.budget{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--primary);margin:0;font-size:1.125rem}.card-foot{color:var(--faint);justify-content:space-between;align-items:center;gap:.5rem;margin-top:auto;font-size:.75rem;display:flex}.badge{text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--border);background:var(--surface-2);color:var(--muted);border-radius:999px;align-items:center;gap:.35rem;padding:.15rem .55rem;font-size:.6875rem;display:inline-flex}.badge.success{color:#b8d0bc;border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 15%, var(--surface))}.badge.warn{color:#e0c9a0;border-color:color-mix(in srgb, var(--warn) 45%, var(--border));background:color-mix(in srgb, var(--warn) 15%, var(--surface))}.badge.danger{color:#f0c4bc;border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 15%, var(--surface))}.how{border:1px solid var(--border);background:var(--surface);border-radius:1rem;gap:1.5rem;margin-top:3rem;padding:1.5rem;display:grid}@media (width>=640px){.how{grid-template-columns:repeat(3,1fr)}}.how .n{font-family:var(--font-display);letter-spacing:.16em;color:var(--faint);margin:0;font-size:.875rem}.how h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;margin:.35rem 0;font-size:1.125rem;font-weight:500}.how p{color:var(--muted);margin:0;font-size:.875rem;line-height:1.5}.empty{border:1px dashed var(--border);background:var(--surface);text-align:center;color:var(--muted);border-radius:1rem;padding:2.5rem 1.5rem}.page-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;margin:0 0 .5rem;font-size:clamp(1.75rem,4vw,2.25rem);font-weight:600}.page-sub{color:var(--muted);margin:0 0 1.5rem;font-size:.875rem}.form{gap:1rem;max-width:36rem;display:grid}.field{gap:.4rem;display:grid}.field label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.75rem}.field-row{gap:.75rem;display:grid}@media (width>=480px){.field-row{grid-template-columns:1fr 1fr}}.hint{color:var(--faint);font-size:.75rem}.detail-layout{gap:1.5rem;display:grid}@media (width>=900px){.detail-layout{grid-template-columns:1.4fr .9fr;align-items:start}}.panel{border:1px solid var(--border);background:var(--surface);border-radius:1rem;overflow:hidden}.panel .hero-img{aspect-ratio:16/9;object-fit:cover;background:var(--surface-2);width:100%}.panel .pad{padding:1.25rem}.panel h1{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;margin:.5rem 0;font-size:clamp(1.5rem,3vw,2rem);font-weight:600;line-height:1.15}.desc{color:var(--muted);white-space:pre-wrap;margin:.75rem 0 0;font-size:.9375rem;line-height:1.625}.escrow-box{border:1px solid var(--border);background:var(--surface);border-radius:1rem;padding:1.25rem}.escrow-box h2,.bids-box h2{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;margin:0 0 .75rem;font-size:1rem;font-weight:500}.escrow-amount{font-family:var(--font-display);font-variant-numeric:tabular-nums;margin:.25rem 0;font-size:1.75rem}.fee-line{color:var(--muted);margin:.25rem 0 0;font-size:.8125rem}.actions{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.bids-box{border:1px solid var(--border);background:var(--surface);border-radius:1rem;margin-top:1rem;padding:1.25rem}.bid{border-top:1px solid var(--border);gap:.5rem;padding:1rem 0;display:grid}.bid:first-of-type{border-top:none;padding-top:0}.bid-head{align-items:center;gap:.75rem;display:flex}.avatar{background:var(--surface-2);border:1px solid var(--border);width:2.5rem;height:2.5rem;font-family:var(--font-display);letter-spacing:.04em;color:var(--primary);border-radius:.65rem;flex-shrink:0;place-items:center;font-size:.875rem;display:grid}.bid-name{margin:0;font-weight:500}.bid-meta{color:var(--faint);margin:.1rem 0 0;font-size:.75rem}.bid-amt{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--primary);margin-left:auto;font-size:1.125rem}.bid-msg{color:var(--muted);margin:0;font-size:.875rem;line-height:1.5}.tab-bar{flex-wrap:wrap;gap:.35rem;margin-bottom:1.25rem;display:flex}.mobile-nav{z-index:40;border-top:1px solid var(--border);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:.35rem .5rem calc(.35rem + env(safe-area-inset-bottom));grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}@media (width>=640px){.mobile-nav{display:none}.nav .hide-sm{display:inline-flex}}.nav .hide-sm{display:none}.mobile-nav a{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);border-radius:.5rem;flex-direction:column;align-items:center;gap:.15rem;padding:.5rem;font-size:.6875rem;display:flex}.mobile-nav a.active,.mobile-nav a:hover{color:var(--fg);background:var(--surface-2)}.back{color:var(--muted);align-items:center;gap:.35rem;margin-bottom:1rem;font-size:.8125rem;display:inline-flex}.back:hover{color:var(--fg)}.section-list{gap:.75rem;display:grid}.section-label{text-transform:uppercase;letter-spacing:.14em;color:var(--faint);margin:1.5rem 0 .75rem;font-size:.75rem}.me-row{border:1px solid var(--border);background:var(--surface);border-radius:.85rem;align-items:center;gap:.75rem;padding:.75rem;transition:border-color .15s;display:flex}.me-row:hover{border-color:color-mix(in srgb, var(--primary) 35%, var(--border))}.me-row img{object-fit:cover;background:var(--surface-2);border-radius:.5rem;flex-shrink:0;width:4.5rem;height:3.25rem}.me-row h3{margin:0;font-size:.9375rem;font-weight:500}.me-row p{color:var(--muted);margin:.2rem 0 0;font-size:.75rem}
