refs breazu/breazu#1 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
478 lines
32 KiB
HTML
478 lines
32 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>breazu</title>
|
|
<meta name="description" content="Professional eyes on software estimates: proposal audit for buyers, proposal engineering for vendors, independent estimates for in-house teams.">
|
|
<link rel="icon" href="assets/app_icon_light.svg" type="image/svg+xml">
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Outfit:wght@500;600;700&family=Figtree:wght@400;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap">
|
|
<style>
|
|
:root {
|
|
--paper: #FFFFFF;
|
|
--surface: #F4F7FC;
|
|
--ink: #011B3E;
|
|
--muted: #4A5B75;
|
|
--line: #DCE4F0;
|
|
--brand: #0863FD;
|
|
--brand-ink: #0550D6;
|
|
--brand-soft: #E8F0FE;
|
|
--warn: #FE7228;
|
|
--warn-soft: #FFEFE4;
|
|
--crit: #DC3D43;
|
|
--crit-soft: #FCE9EA;
|
|
--panel: #FFFFFF;
|
|
--shadow: 0 10px 30px rgba(1, 27, 62, 0.07);
|
|
}
|
|
@media (prefers-color-scheme: dark) {
|
|
:root:not([data-theme="light"]) {
|
|
--paper: #0A1428;
|
|
--surface: #101D36;
|
|
--ink: #EAF0FA;
|
|
--muted: #93A5C1;
|
|
--line: #26385C;
|
|
--brand: #4C8DFF;
|
|
--brand-ink: #7FAEFF;
|
|
--brand-soft: #14294D;
|
|
--warn: #FF8A47;
|
|
--warn-soft: #3A2210;
|
|
--crit: #F26A6F;
|
|
--crit-soft: #3B1A1D;
|
|
--panel: #101D36;
|
|
--shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
|
|
}
|
|
}
|
|
:root[data-theme="dark"] {
|
|
--paper: #0A1428;
|
|
--surface: #101D36;
|
|
--ink: #EAF0FA;
|
|
--muted: #93A5C1;
|
|
--line: #26385C;
|
|
--brand: #4C8DFF;
|
|
--brand-ink: #7FAEFF;
|
|
--brand-soft: #14294D;
|
|
--warn: #FF8A47;
|
|
--warn-soft: #3A2210;
|
|
--crit: #F26A6F;
|
|
--crit-soft: #3B1A1D;
|
|
--panel: #101D36;
|
|
--shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
|
|
}
|
|
* { box-sizing: border-box; margin: 0; }
|
|
body { background: var(--paper); color: var(--ink); font-family: 'Figtree', 'Segoe UI', sans-serif; font-size: 17px; line-height: 1.6; }
|
|
.display { font-family: 'Outfit', 'Segoe UI', sans-serif; }
|
|
.mono { font-family: 'JetBrains Mono', Menlo, monospace; }
|
|
.wrap { max-width: 1020px; margin: 0 auto; padding: 0 28px; }
|
|
a { color: var(--brand-ink); }
|
|
|
|
/* logo theme switch */
|
|
.logo-light { display: block; }
|
|
.logo-dark { display: none; }
|
|
@media (prefers-color-scheme: dark) {
|
|
:root:not([data-theme="light"]) .logo-light { display: none; }
|
|
:root:not([data-theme="light"]) .logo-dark { display: block; }
|
|
}
|
|
:root[data-theme="dark"] .logo-light { display: none; }
|
|
:root[data-theme="dark"] .logo-dark { display: block; }
|
|
|
|
/* ── nav ── */
|
|
nav { border-bottom: 1px solid var(--line); position: relative; z-index: 10; background: var(--paper); }
|
|
.nav-in { display: flex; align-items: center; justify-content: space-between; padding: 14px 0; gap: 18px; flex-wrap: wrap; }
|
|
.logo-link { display: inline-flex; align-items: center; text-decoration: none; }
|
|
.logo-link img { height: 40px; width: auto; display: block; }
|
|
.nav-links { display: flex; gap: 4px; font-size: 15.5px; align-items: center; flex-wrap: wrap; font-family: 'Outfit', sans-serif; font-weight: 500; }
|
|
.nav-links > a, .drop > button {
|
|
color: var(--muted); text-decoration: none; background: none; border: none; font: inherit;
|
|
padding: 8px 12px; border-radius: 999px; cursor: pointer;
|
|
}
|
|
.nav-links > a:hover, .drop > button:hover, .nav-links > a:focus-visible, .drop > button:focus-visible { color: var(--ink); background: var(--surface); }
|
|
.drop { position: relative; }
|
|
.drop > button::after { content: " \25BE"; font-size: 11px; color: var(--brand); }
|
|
.menu {
|
|
position: absolute; top: calc(100% + 8px); left: 0; min-width: 264px;
|
|
background: var(--panel); border: 1px solid var(--line); border-radius: 14px;
|
|
box-shadow: var(--shadow); padding: 8px;
|
|
opacity: 0; visibility: hidden; transform: translateY(-4px); transition: 0.14s ease;
|
|
}
|
|
.drop:hover .menu, .drop:focus-within .menu { opacity: 1; visibility: visible; transform: none; }
|
|
.menu a { display: block; padding: 10px 12px; border-radius: 9px; text-decoration: none; color: var(--ink); font-size: 15px; font-weight: 600; }
|
|
.menu a:hover, .menu a:focus-visible { background: var(--brand-soft); }
|
|
.menu a small { display: block; color: var(--muted); font-size: 12.5px; line-height: 1.35; font-weight: 400; font-family: 'Figtree', sans-serif; }
|
|
|
|
/* ── shared ── */
|
|
section { padding: 56px 0; }
|
|
section.alt { background: var(--surface); }
|
|
h1 { font-family: 'Outfit', sans-serif; font-size: clamp(34px, 5.2vw, 52px); line-height: 1.08; font-weight: 700; letter-spacing: -0.02em; margin: 14px 0 18px; text-wrap: balance; }
|
|
h2 { font-family: 'Outfit', sans-serif; font-size: clamp(24px, 3.4vw, 32px); font-weight: 700; letter-spacing: -0.015em; line-height: 1.15; margin-bottom: 10px; text-wrap: balance; }
|
|
.eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--brand); font-weight: 500; }
|
|
.sub { color: var(--muted); max-width: 60ch; }
|
|
.sec-sub { color: var(--muted); max-width: 62ch; margin-bottom: 26px; }
|
|
.btn { display: inline-block; text-decoration: none; font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 16px; padding: 13px 26px; border-radius: 999px; border: 1.5px solid var(--brand); transition: 0.15s; }
|
|
.btn-primary { background: var(--brand); color: #FFFFFF; border-color: var(--brand); }
|
|
.btn-primary:hover, .btn-primary:focus-visible { background: var(--brand-ink); border-color: var(--brand-ink); transform: translateY(-1px); }
|
|
:root[data-theme="dark"] .btn-primary, :root:not([data-theme="light"]) .btn-primary { color: #0A1428; }
|
|
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) .btn-primary { color: #FFFFFF; } }
|
|
.btn-ghost { color: var(--brand-ink); background: transparent; }
|
|
.btn-ghost:hover, .btn-ghost:focus-visible { background: var(--brand-soft); }
|
|
.cta-row { display: flex; gap: 12px; margin-top: 26px; flex-wrap: wrap; }
|
|
.cta-note { font-size: 13.5px; color: var(--muted); margin-top: 10px; }
|
|
|
|
.hero { padding: 64px 0; }
|
|
.hero-grid { display: grid; grid-template-columns: 1.12fr 1fr; gap: 44px; align-items: start; }
|
|
|
|
/* exhibit — аудиторская правка */
|
|
.exhibit { border: 1px solid var(--line); border-radius: 16px; background: var(--panel); overflow: hidden; box-shadow: var(--shadow); }
|
|
.exhibit-head { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: 0.09em; text-transform: uppercase; color: var(--muted); padding: 11px 18px; border-bottom: 1px solid var(--line); background: var(--surface); display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
|
|
.exhibit-row { padding: 13px 18px; border-bottom: 1px solid var(--line); font-size: 14.5px; }
|
|
.exhibit-row:last-child { border-bottom: none; }
|
|
.exhibit-line { display: flex; justify-content: space-between; gap: 14px; align-items: baseline; }
|
|
.exhibit-line .val { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; white-space: nowrap; font-size: 13.5px; }
|
|
.strike { text-decoration: line-through; text-decoration-color: var(--warn); text-decoration-thickness: 1.5px; color: var(--muted); }
|
|
.corr { color: var(--warn); font-weight: 600; }
|
|
.margin-note { font-family: 'JetBrains Mono', monospace; font-size: 11.5px; color: var(--warn); margin-top: 4px; }
|
|
.margin-note.ok { color: var(--brand-ink); }
|
|
.exhibit-foot { padding: 11px 18px; font-size: 13px; color: var(--muted); background: var(--surface); }
|
|
|
|
/* doors */
|
|
.doors { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
|
|
.door { display: block; text-decoration: none; color: var(--ink); background: var(--panel); border: 1px solid var(--line); border-radius: 16px; padding: 22px; transition: 0.15s; }
|
|
.door:hover, .door:focus-visible { border-color: var(--brand); transform: translateY(-3px); box-shadow: var(--shadow); }
|
|
.door svg { display: block; margin-bottom: 14px; }
|
|
.door h3 { font-family: 'Outfit', sans-serif; font-size: 19px; font-weight: 600; margin-bottom: 6px; }
|
|
.door p { font-size: 14.5px; color: var(--muted); }
|
|
.door .go { display: inline-block; margin-top: 12px; font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 14px; color: var(--brand-ink); }
|
|
|
|
/* services */
|
|
.svc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
|
|
.svc { background: var(--panel); border: 1px solid var(--line); border-radius: 16px; padding: 20px 22px; }
|
|
.svc.flag { border: 1.5px solid var(--brand); background: var(--brand-soft); }
|
|
.svc h3 { font-family: 'Outfit', sans-serif; font-size: 17.5px; font-weight: 600; }
|
|
.svc .price { font-family: 'JetBrains Mono', monospace; font-size: 13.5px; color: var(--brand-ink); margin: 5px 0 8px; }
|
|
.svc p { font-size: 14.5px; color: var(--muted); }
|
|
|
|
/* method */
|
|
.method { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
|
|
.method-card { border: 1px solid var(--line); border-radius: 16px; background: var(--panel); padding: 18px 20px; }
|
|
.method-card h3 { font-family: 'Outfit', sans-serif; font-size: 15.5px; font-weight: 600; margin-bottom: 6px; }
|
|
.method-card h3 .mono { color: var(--brand); font-size: 12px; }
|
|
.method-card p { font-size: 14px; color: var(--muted); }
|
|
|
|
/* pledge */
|
|
.pledge { display: flex; gap: 18px; background: var(--panel); border: 1.5px solid var(--brand); border-radius: 16px; padding: 22px 26px; align-items: flex-start; box-shadow: var(--shadow); }
|
|
.pledge .mark { flex-shrink: 0; width: 34px; height: 34px; border-radius: 10px; background: var(--brand-soft); display: flex; align-items: center; justify-content: center; color: var(--brand-ink); font-family: 'Outfit', sans-serif; font-weight: 700; font-size: 18px; }
|
|
.pledge h3 { font-family: 'Outfit', sans-serif; font-size: 18px; font-weight: 600; margin-bottom: 6px; }
|
|
.pledge p { font-size: 15px; color: var(--muted); max-width: 74ch; }
|
|
|
|
/* steps */
|
|
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; counter-reset: st; }
|
|
.step { background: var(--panel); border: 1px solid var(--line); border-radius: 16px; padding: 18px 20px; counter-increment: st; }
|
|
.step::before { content: counter(st, decimal-leading-zero); font-family: 'JetBrains Mono', monospace; color: var(--brand); font-weight: 600; font-size: 12.5px; letter-spacing: 0.08em; }
|
|
.step h3 { font-family: 'Outfit', sans-serif; font-size: 16px; font-weight: 600; margin: 6px 0 4px; }
|
|
.step p { font-size: 14px; color: var(--muted); }
|
|
|
|
/* pages */
|
|
.page-hero { padding: 56px 0 46px; }
|
|
.crumb { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--muted); margin-bottom: 6px; }
|
|
.crumb a { color: var(--muted); }
|
|
.deliv { border: 1px solid var(--line); border-radius: 16px; background: var(--panel); overflow: hidden; margin-top: 8px; }
|
|
.deliv-row { display: flex; gap: 14px; padding: 14px 20px; border-bottom: 1px solid var(--line); font-size: 15px; }
|
|
.deliv-row:last-child { border-bottom: none; }
|
|
.deliv-row .mono { color: var(--brand); font-size: 11.5px; padding-top: 4px; white-space: nowrap; font-weight: 500; }
|
|
.faq details { border-bottom: 1px solid var(--line); padding: 13px 0; }
|
|
.faq summary { font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 16px; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 10px; }
|
|
.faq summary::after { content: "+"; font-family: 'JetBrains Mono', monospace; color: var(--brand); }
|
|
.faq details[open] summary::after { content: "\2212"; }
|
|
.faq summary:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; border-radius: 4px; }
|
|
.faq p { font-size: 15px; color: var(--muted); padding-top: 8px; max-width: 62ch; }
|
|
|
|
footer { border-top: 1px solid var(--line); padding: 26px 0 44px; color: var(--muted); font-size: 13px; background: var(--surface); }
|
|
.foot-in { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; align-items: center; }
|
|
.foot-in img { height: 28px; display: block; }
|
|
|
|
.spread-fig { margin-top: 30px; }
|
|
.spread-fig figcaption { font-size: 13px; color: var(--muted); margin-top: 8px; max-width: 72ch; }
|
|
|
|
@media (max-width: 880px) {
|
|
.hero-grid { grid-template-columns: 1fr; gap: 32px; }
|
|
.doors, .method, .steps { grid-template-columns: 1fr; }
|
|
.svc-grid { grid-template-columns: 1fr; }
|
|
.menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: none; padding: 0 0 0 12px; display: none; }
|
|
.drop:focus-within .menu, .drop:hover .menu { display: block; }
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<nav><div class="wrap nav-in">
|
|
<a class="logo-link" href="#/" aria-label="breazu — home">
|
|
<img class="logo-light" src="assets/logo_with_name_transparentbg.svg" alt="breazu">
|
|
<img class="logo-dark" src="assets/logo_with_name_transparentbg_dark.svg" alt="breazu">
|
|
</a>
|
|
<div class="nav-links">
|
|
<div class="drop">
|
|
<button type="button" aria-haspopup="true">Services</button>
|
|
<div class="menu" role="menu">
|
|
<a href="#/buyers">Proposal audit<small>read a vendor’s proposal before you sign it</small></a>
|
|
<a href="#/vendors">Proposal engineering<small>we build your proposal — estimate, defence, document</small></a>
|
|
<a href="#/inhouse">Independent estimate<small>a second number to test the internal one</small></a>
|
|
<a href="#services">Technical oversight<small>your eyes on the project after signature</small></a>
|
|
</div>
|
|
</div>
|
|
<div class="drop">
|
|
<button type="button" aria-haspopup="true">For whom</button>
|
|
<div class="menu" role="menu">
|
|
<a href="#/buyers">Buyers of development<small>2–3 proposals on the desk, signature ahead</small></a>
|
|
<a href="#/vendors">Vendors & agencies<small>tenders to answer, presale hours to save</small></a>
|
|
<a href="#/inhouse">In-house teams<small>budget owners checking their own number</small></a>
|
|
</div>
|
|
</div>
|
|
<a href="report.html">Sample report</a>
|
|
<a href="mailto:hello@breazu.com">Contact</a>
|
|
</div>
|
|
</div></nav>
|
|
|
|
<!-- ════════ HOME ════════ -->
|
|
<div id="page-home">
|
|
|
|
<header class="hero"><div class="wrap hero-grid">
|
|
<div>
|
|
<h1 style="max-width: 16ch;">We read and write development estimates for a living.</h1>
|
|
<p class="sub" style="font-size: 19px;">A proposal is a financial instrument written by one side. breazu puts professional eyes on it — whichever side of the table you sit on. Never both sides of the same deal.</p>
|
|
<div class="cta-row">
|
|
<a class="btn btn-primary" href="#who">Who we work for</a>
|
|
<a class="btn btn-ghost" href="report.html">Read a sample audit</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="exhibit" aria-label="Example of an audited estimate line">
|
|
<div class="exhibit-head"><span>Vendor estimate · as received</span><span>audited</span></div>
|
|
<div class="exhibit-row">
|
|
<div class="exhibit-line"><span>Project management, phase 1</span><span class="val"><span class="strike">164 h</span> <span class="corr">140 h</span></span></div>
|
|
<div class="margin-note">F-01 · 24 phantom hours · €1,248 attributed to nobody</div>
|
|
</div>
|
|
<div class="exhibit-row">
|
|
<div class="exhibit-line"><span>Warranty support</span><span class="val"><span class="strike">“separate agreement”</span></span></div>
|
|
<div class="margin-note">F-04 · norm: 3 months included · hidden €14–18k</div>
|
|
</div>
|
|
<div class="exhibit-row">
|
|
<div class="exhibit-line"><span>Verdict</span><span class="val" style="color:var(--brand-ink);font-weight:600">SIGN WITH AMENDMENTS</span></div>
|
|
<div class="margin-note ok">€84–112k exposure found on a €284,600 contract</div>
|
|
</div>
|
|
<div class="exhibit-foot">From the <a href="report.html">sample audit report</a> — synthetic proposal, real defect patterns.</div>
|
|
</div>
|
|
</div></header>
|
|
|
|
<section id="who" class="alt"><div class="wrap">
|
|
<h2>Three chairs at the same table</h2>
|
|
<div class="doors">
|
|
<a class="door" href="#/buyers">
|
|
<svg width="44" height="34" viewBox="0 0 44 34" aria-hidden="true"><rect x="1.5" y="4" width="27" height="28" rx="6" fill="none" stroke="var(--muted)" stroke-width="1.6"/><line x1="8" y1="12" x2="23" y2="12" stroke="var(--muted)" stroke-width="1.6" stroke-linecap="round"/><line x1="8" y1="18" x2="23" y2="18" stroke="var(--muted)" stroke-width="1.6" stroke-linecap="round"/><line x1="8" y1="24" x2="17" y2="24" stroke="var(--muted)" stroke-width="1.6" stroke-linecap="round"/><circle cx="33" cy="21" r="8" fill="none" stroke="var(--brand)" stroke-width="2.4"/><line x1="38.6" y1="26.6" x2="43" y2="31" stroke="var(--brand)" stroke-width="2.6" stroke-linecap="round"/></svg>
|
|
<h3>I’m buying development</h3>
|
|
<p>Proposals on the desk differ by 2× and the contract reads smoothly. Audit before signature.</p>
|
|
<span class="go">Proposal audit →</span>
|
|
</a>
|
|
<a class="door" href="#/vendors">
|
|
<svg width="44" height="34" viewBox="0 0 44 34" aria-hidden="true"><rect x="1.5" y="4" width="27" height="28" rx="6" fill="none" stroke="var(--muted)" stroke-width="1.6"/><line x1="8" y1="12" x2="23" y2="12" stroke="var(--muted)" stroke-width="1.6" stroke-linecap="round"/><line x1="8" y1="18" x2="23" y2="18" stroke="var(--muted)" stroke-width="1.6" stroke-linecap="round"/><path d="M28 26 L40 8" stroke="var(--warn)" stroke-width="2.6" stroke-linecap="round"/><path d="M40 8 l1.8 5.4 M40 8 l-5.4 1.8" stroke="var(--warn)" stroke-width="2.2" stroke-linecap="round" fill="none"/></svg>
|
|
<h3>I’m selling development</h3>
|
|
<p>Tenders keep coming and every proposal burns senior hours. We build the estimate and the document — you keep selling.</p>
|
|
<span class="go">Proposal engineering →</span>
|
|
</a>
|
|
<a class="door" href="#/inhouse">
|
|
<svg width="44" height="34" viewBox="0 0 44 34" aria-hidden="true"><rect x="1.5" y="4" width="18" height="28" rx="5" fill="none" stroke="var(--muted)" stroke-width="1.6"/><rect x="24.5" y="4" width="18" height="28" rx="5" fill="none" stroke="var(--brand)" stroke-width="2"/><line x1="6.5" y1="13" x2="14.5" y2="13" stroke="var(--muted)" stroke-width="1.6" stroke-linecap="round"/><line x1="6.5" y1="19" x2="14.5" y2="19" stroke="var(--muted)" stroke-width="1.6" stroke-linecap="round"/><line x1="29.5" y1="13" x2="37.5" y2="13" stroke="var(--brand)" stroke-width="1.8" stroke-linecap="round"/><line x1="29.5" y1="19" x2="37.5" y2="19" stroke="var(--brand)" stroke-width="1.8" stroke-linecap="round"/></svg>
|
|
<h3>We build in-house</h3>
|
|
<p>The team says nine months; the board asks who checked. An independent estimate gives the internal number something to argue with.</p>
|
|
<span class="go">Independent estimate →</span>
|
|
</a>
|
|
</div>
|
|
|
|
<figure class="spread-fig">
|
|
<svg viewBox="0 0 720 150" width="100%" style="max-width:720px; height:auto; display:block;" role="img" aria-label="Three proposals for the same scope: 121, 164 and 243 thousand euros">
|
|
<line x1="120" y1="122" x2="700" y2="122" stroke="var(--line)" stroke-width="1.5"/>
|
|
<text x="10" y="43" font-family="JetBrains Mono, monospace" font-size="13" fill="var(--muted)">Proposal A</text>
|
|
<rect x="120" y="30" width="196" height="20" rx="6" fill="var(--brand)" opacity="0.45"/>
|
|
<text x="324" y="45" font-family="JetBrains Mono, monospace" font-size="13" fill="var(--ink)">€121k</text>
|
|
<text x="10" y="78" font-family="JetBrains Mono, monospace" font-size="13" fill="var(--muted)">Proposal B</text>
|
|
<rect x="120" y="65" width="266" height="20" rx="6" fill="var(--brand)" opacity="0.7"/>
|
|
<text x="394" y="80" font-family="JetBrains Mono, monospace" font-size="13" fill="var(--ink)">€164k</text>
|
|
<text x="10" y="113" font-family="JetBrains Mono, monospace" font-size="13" fill="var(--muted)">Proposal C</text>
|
|
<rect x="120" y="100" width="394" height="20" rx="6" fill="var(--brand)"/>
|
|
<text x="522" y="115" font-family="JetBrains Mono, monospace" font-size="13" fill="var(--ink)">€243k</text>
|
|
<path d="M326 40 C 420 16, 495 55, 516 96" fill="none" stroke="var(--warn)" stroke-width="1.8" stroke-dasharray="5 4"/>
|
|
<text x="420" y="24" font-family="JetBrains Mono, monospace" font-size="13" fill="var(--warn)">2× — why?</text>
|
|
</svg>
|
|
<figcaption>The same scope, priced by three vendors. The spread is not noise — it is scope cuts, padded hours and parked risk.</figcaption>
|
|
</figure>
|
|
</div></section>
|
|
|
|
<section id="services"><div class="wrap">
|
|
<h2>Services</h2>
|
|
<div class="svc-grid" style="margin-top: 20px;">
|
|
<div class="svc"><h3>Proposal audit</h3><div class="price">express €600–900 · 48h | full €2,500–4,000 · 5 days</div><p>Up to three proposals brought to one base: findings with euros at risk, amendment language, a verdict. <a href="#/buyers">For buyers →</a></p></div>
|
|
<div class="svc"><h3>Proposal engineering</h3><div class="price">from €1,900 per proposal · 3–5 days</div><p>Your proposal: line-by-line estimate, two pricing passes, defence notes for the pitch. <a href="#/vendors">For vendors →</a></p></div>
|
|
<div class="svc"><h3>Independent estimate</h3><div class="price">€2,000–3,500 · 5 days</div><p>A second number for scope your team priced — built blind, then reconciled line by line. <a href="#/inhouse">For in-house teams →</a></p></div>
|
|
<div class="svc flag"><h3>Technical oversight</h3><div class="price">€1,500–2,500 / month</div><p>After signature: demo attendance, delivery vs. paid scope, change-request control.</p></div>
|
|
</div>
|
|
</div></section>
|
|
|
|
<section class="alt"><div class="wrap">
|
|
<h2>One method behind every service</h2>
|
|
<div class="method" style="margin-top: 20px;">
|
|
<div class="method-card"><h3><span class="mono">A ·</span> Craft invariants</h3><p>Every estimate recomputed and tested against observed ranges: granularity, QA and management shares, rate grids.</p></div>
|
|
<div class="method-card"><h3><span class="mono">B ·</span> Unit benchmarks</h3><p>Hours per service, per integration, per app channel.</p></div>
|
|
<div class="method-card"><h3><span class="mono">C ·</span> Both sides of the table</h3><p>Eight years writing winning proposals; a benchmark built on 12+ proposals we’ve written or audited.</p></div>
|
|
</div>
|
|
<div class="pledge" style="margin-top: 20px;">
|
|
<div class="mark">✓</div>
|
|
<div>
|
|
<h3>The conflict rule</h3>
|
|
<p>We never work for both sides of the same deal, never audit a proposal we wrote, and take no referral fees.</p>
|
|
</div>
|
|
</div>
|
|
</div></section>
|
|
|
|
<section style="padding: 64px 0;"><div class="wrap">
|
|
<h2 class="display">Send us the proposal on your desk.</h2>
|
|
<div class="cta-row">
|
|
<a class="btn btn-primary" href="mailto:hello@breazu.com?subject=breazu">Write to us — reply within one business day</a>
|
|
</div>
|
|
</div></section>
|
|
</div>
|
|
|
|
<!-- ════════ BUYERS ════════ -->
|
|
<div id="page-buyers" hidden>
|
|
<header class="page-hero"><div class="wrap">
|
|
<div class="crumb"><a href="#/">breazu</a> / for buyers</div>
|
|
<h1 style="max-width: 18ch;">Know what you’re signing.</h1>
|
|
<p class="sub" style="font-size: 18px;">You’re about to commit €50k–2m on documents written by the other side. We recompute every line, test the price against benchmarks, and read the contract the way it will be read in a dispute — then hand you the amendments.</p>
|
|
<div class="cta-row">
|
|
<a class="btn btn-primary" href="mailto:hello@breazu.com?subject=Express%20check">Express check — from €600 · 48 hours</a>
|
|
<a class="btn btn-ghost" href="report.html">Read a sample report</a>
|
|
</div>
|
|
</div></header>
|
|
|
|
<section class="alt"><div class="wrap">
|
|
<h2>What the report answers</h2>
|
|
<div class="deliv" style="max-width: 780px;">
|
|
<div class="deliv-row"><span class="mono">01</span><span>Does the estimate add up — hours, rates, totals, blocks against the cover price?</span></div>
|
|
<div class="deliv-row"><span class="mono">02</span><span>Where does the attractive price come from — efficiency, or QA and management priced at zero?</span></div>
|
|
<div class="deliv-row"><span class="mono">03</span><span>Which exclusions will return as change requests, and at what probable cost?</span></div>
|
|
<div class="deliv-row"><span class="mono">04</span><span>Which promises have no delivering line in the estimate?</span></div>
|
|
<div class="deliv-row"><span class="mono">05</span><span>Does the contract protect you — acceptance, warranty, delays, IP — and if not, the exact amendment language?</span></div>
|
|
<div class="deliv-row"><span class="mono">06</span><span>What will it cost to own after go-live?</span></div>
|
|
</div>
|
|
</div></section>
|
|
|
|
<section><div class="wrap">
|
|
<h2>How it works</h2>
|
|
<div class="steps" style="margin-top: 18px;">
|
|
<div class="step"><h3>Send what you have</h3><p>Proposal, estimate, draft contract — any format. Vendor names can be redacted.</p></div>
|
|
<div class="step"><h3>We audit</h3><p>48 hours for one proposal express; five business days for a full audit of up to three, brought to one comparable base.</p></div>
|
|
<div class="step"><h3>You decide, armed</h3><p>Findings with money at risk, paste-ready amendments, and a 60-minute call before you reply to vendors.</p></div>
|
|
</div>
|
|
<p class="cta-note" style="margin-top:16px;">Full audit €2,500–4,000. If the express check finds nothing worth going deeper, we say so.</p>
|
|
</div></section>
|
|
|
|
<section class="alt"><div class="wrap">
|
|
<h2>Questions buyers ask</h2>
|
|
<div class="faq" style="max-width: 720px; margin-top: 10px;">
|
|
<details><summary>Won’t this sour the vendor relationship?</summary><p>Serious vendors accept most of the amendments — defined acceptance criteria protect them too.</p></details>
|
|
<details><summary>Our documents are confidential.</summary><p>NDA before documents, reports addressed to you alone, nothing you send is reused in any form.</p></details>
|
|
<details><summary>Can you just pick the vendor for us?</summary><p>The audit ends in a verdict per proposal: sign / sign with listed amendments / don’t sign, with reasons.</p></details>
|
|
</div>
|
|
<div class="cta-row"><a class="btn btn-primary" href="mailto:hello@breazu.com?subject=Proposal%20audit">Send your proposal</a></div>
|
|
</div></section>
|
|
</div>
|
|
|
|
<!-- ════════ VENDORS ════════ -->
|
|
<div id="page-vendors" hidden>
|
|
<header class="page-hero"><div class="wrap">
|
|
<div class="crumb"><a href="#/">breazu</a> / for vendors & agencies</div>
|
|
<h1 style="max-width: 20ch;">Your proposal, built while your seniors keep building.</h1>
|
|
<p class="sub" style="font-size: 18px;">Every tender answer costs you 40–80 senior hours — architect, lead, PM — pulled off billable work, with no guarantee of winning. We produce the estimate and the proposal document, built by people who audit proposals for buyers.</p>
|
|
<div class="cta-row">
|
|
<a class="btn btn-primary" href="mailto:hello@breazu.com?subject=Proposal%20engineering">Discuss your tender — reply in one business day</a>
|
|
</div>
|
|
</div></header>
|
|
|
|
<section class="alt"><div class="wrap">
|
|
<h2>What you receive</h2>
|
|
<div class="deliv" style="max-width: 780px;">
|
|
<div class="deliv-row"><span class="mono">01</span><span>Line-by-line estimate: hours per role, scope boundaries per line (“included / explicitly not included”), options separated from base scope.</span></div>
|
|
<div class="deliv-row"><span class="mono">02</span><span>Two pricing passes: an honest engineering estimate, then a competitive pass — staged delivery, reuse, production-model options — with every cut documented, never hidden in quality.</span></div>
|
|
<div class="deliv-row"><span class="mono">03</span><span>The proposal document itself: budget and timeline, team, phased plan, risks with mitigations, assumptions and client questions — presentation-grade.</span></div>
|
|
<div class="deliv-row"><span class="mono">04</span><span>Defence notes: the questions a sharp client (or their auditor) will ask, and the answers.</span></div>
|
|
</div>
|
|
<p class="cta-note" style="margin-top:14px;">From €1,900 per proposal · 3–5 business days. Volume pricing for agencies with steady tender flow.</p>
|
|
</div></section>
|
|
|
|
<section><div class="wrap">
|
|
<h2>The line we don’t cross</h2>
|
|
<p class="sec-sub">We never sit on both sides of the same deal, and we never audit a proposal we wrote. If your client hires us to audit it, we disclose and step aside.</p>
|
|
<div class="faq" style="max-width: 720px;">
|
|
<details><summary>Will you work under our brand?</summary><p>Yes — the deliverable is yours, white-label.</p></details>
|
|
<details><summary>Our rates and margins are sensitive.</summary><p>NDA first, and your commercial data never enters our benchmark base.</p></details>
|
|
<details><summary>What do you need from us to start?</summary><p>The RFP/brief, your rate card and team model, and 60 minutes with whoever owns the deal. First draft of the estimate in 48 hours.</p></details>
|
|
</div>
|
|
<div class="cta-row"><a class="btn btn-primary" href="mailto:hello@breazu.com?subject=Proposal%20engineering">Send the tender brief</a></div>
|
|
</div></section>
|
|
</div>
|
|
|
|
<!-- ════════ IN-HOUSE ════════ -->
|
|
<div id="page-inhouse" hidden>
|
|
<header class="page-hero"><div class="wrap">
|
|
<div class="crumb"><a href="#/">breazu</a> / for in-house teams</div>
|
|
<h1 style="max-width: 20ch;">A second number the board can trust.</h1>
|
|
<p class="sub" style="font-size: 18px;">When the only estimate is the team’s own, the budget owner has nothing to test it against. We build an independent estimate of the same scope — blind — then reconcile the two numbers in one working session.</p>
|
|
<div class="cta-row">
|
|
<a class="btn btn-primary" href="mailto:hello@breazu.com?subject=Independent%20estimate">Get a second number — €2,000–3,500 · 5 days</a>
|
|
</div>
|
|
<p class="cta-note">NDA before documents, as on every engagement.</p>
|
|
</div></header>
|
|
|
|
<section class="alt"><div class="wrap">
|
|
<h2>What you receive</h2>
|
|
<div class="deliv" style="max-width: 780px;">
|
|
<div class="deliv-row"><span class="mono">01</span><span>An independent estimate built from your scope documents: hours per role, granularity ≤100h per line, benchmarked against our proposal base.</span></div>
|
|
<div class="deliv-row"><span class="mono">02</span><span>Line-by-line reconciliation with the internal estimate: whose assumption drives each gap.</span></div>
|
|
<div class="deliv-row"><span class="mono">03</span><span>A one-page summary the budget owner can take to the board: the number, its range, and what would change it.</span></div>
|
|
</div>
|
|
</div></section>
|
|
|
|
<section><div class="wrap">
|
|
<h2>Both directions welcome</h2>
|
|
<p class="sec-sub">Commissioned by budget owners testing a number — and by teams defending one. The method is the same either way.</p>
|
|
<div class="faq" style="max-width: 720px;">
|
|
<details><summary>Won’t the team see this as distrust?</summary><p>In practice the reconciliation session often ends with the team adopting the parts that make their own number defensible.</p></details>
|
|
<details><summary>We also got vendor quotes — can you compare all of it?</summary><p>Yes: internal estimate, vendor proposals and our independent number on one base — that’s the full audit service.</p></details>
|
|
</div>
|
|
<div class="cta-row"><a class="btn btn-primary" href="mailto:hello@breazu.com?subject=Independent%20estimate">Send your scope</a></div>
|
|
</div></section>
|
|
</div>
|
|
|
|
<footer><div class="wrap foot-in">
|
|
<a class="logo-link" href="#/" aria-label="breazu">
|
|
<img class="logo-light" src="assets/logo_with_name_transparentbg.svg" alt="breazu">
|
|
<img class="logo-dark" src="assets/logo_with_name_transparentbg_dark.svg" alt="breazu">
|
|
</a>
|
|
<span>Independent eyes on software estimates.</span>
|
|
<span class="mono">hello@breazu.com · EU</span>
|
|
</div></footer>
|
|
|
|
<script>
|
|
(function () {
|
|
var pages = ['home', 'buyers', 'vendors', 'inhouse'];
|
|
function route() {
|
|
var h = location.hash.replace(/^#\/?/, '') || 'home';
|
|
if (pages.indexOf(h) === -1) return; /* обычные якоря (#who, #services) не трогаем */
|
|
pages.forEach(function (p) {
|
|
document.getElementById('page-' + p).hidden = (p !== h);
|
|
});
|
|
window.scrollTo(0, 0);
|
|
}
|
|
window.addEventListener('hashchange', route);
|
|
route();
|
|
})();
|
|
</script>
|
|
</body>
|
|
</html>
|