/* Tortuga Pacific: the shop's estimate book.
   Every page is a sheet off a carbon-copy invoice pad: warm canary
   paper on a darker desk, feint ledger-blue rules, one red margin
   line. Red is the only accent and it is spent like ledger red: the
   margin, the current tab, the primary action, NOTE labels, totals.
   The printed boilerplate (Libre Franklin, the rules) stays machine
   perfect; the filled-in layer (Special Elite typewriter, the stamp)
   sits slightly off the grid the way typed entries really do. Square
   corners; paper has no border-radius. Zero JavaScript. */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
  --paper:#f6f0df;
  --desk:#e6dcc1;
  --carbon:#ede4cc;
  --ink:#272218;
  --soft:#3d3729;
  --pencil:#6f6755;
  --rule:rgba(73,98,125,.28);
  --rule2:rgba(73,98,125,.5);
  --red:#a23527;
  --red-soft:rgba(162,53,39,.5);
  --type:'Special Elite','Courier New',Courier,monospace;
}

html{font-size:16px}
body{
  font-family:'Libre Franklin',Georgia,serif;
  background:var(--desk);
  color:var(--soft);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
/* paper grain over everything */
body::before{
  content:"";position:fixed;inset:0;z-index:9;pointer-events:none;
  opacity:.05;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.6'/></svg>");
}

a{color:inherit}
.t{font-family:var(--type)}

/* the sheet: real paper on the desk, tone never quite even */
.sheet{
  max-width:860px;margin:0 auto;position:relative;
  padding:34px 28px 56px 104px;min-height:100vh;
  background-color:var(--paper);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='560' height='560'><filter id='m'><feTurbulence type='fractalNoise' baseFrequency='0.022' numOctaves='2' seed='7' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%25' height='100%25' filter='url(%23m)' opacity='0.18'/></svg>");
  background-blend-mode:multiply;
  border-right:1px solid rgba(39,34,24,.16);
  border-bottom:1px solid rgba(39,34,24,.2);
}
.sheet::before{ /* the red margin rule: printed, so it is perfect */
  content:"";position:absolute;top:0;bottom:0;left:68px;width:1px;
  background:var(--red-soft);
}
.sheetno{
  position:absolute;top:16px;right:28px;
  font-size:.66rem;letter-spacing:.1em;color:var(--pencil);
  transform:rotate(.4deg);
}

/* letterhead */
.lh{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding:18px 0 14px;border-bottom:1px solid var(--rule2);
}
.mark{display:block;line-height:0;text-decoration:none}
.stamp{transform:rotate(-2.5deg)}
.wm-wrap{display:flex;flex-direction:column;gap:2px}
.wm{
  font-weight:800;font-size:.95rem;letter-spacing:.15em;
  color:var(--ink);text-decoration:none;
}
.wm-sub{font-size:.62rem;letter-spacing:.08em;color:var(--pencil);transform:rotate(-.2deg);transform-origin:left}
.nav{margin-left:auto;display:flex;gap:18px;flex-wrap:wrap}
.nav a{
  font-size:.7rem;font-weight:600;letter-spacing:.1em;
  text-decoration:none;color:var(--pencil);
  padding-bottom:2px;border-bottom:2px solid transparent;
  transition:color .12s;
}
.nav a:hover{color:var(--ink)}
.nav a.here{color:var(--red);border-bottom-color:var(--red)}

/* headings as form print (machine perfect) */
h1{font-weight:700;font-size:1.5rem;color:var(--ink);margin:38px 0 10px;letter-spacing:-.01em}
h2{
  font-weight:700;font-size:.76rem;letter-spacing:.14em;color:var(--ink);
  margin:44px 0 14px;padding-bottom:7px;border-bottom:1px solid var(--rule);
}
h3{font-weight:700;font-size:1rem;color:var(--ink);margin-bottom:6px}
p{max-width:600px;margin-bottom:14px;font-size:.95rem}
.lead{font-size:1rem}
.pencil{color:var(--pencil)}
.aside{font-size:.8rem;letter-spacing:.02em;color:var(--pencil);transform:rotate(-.25deg);transform-origin:left}
strong{color:var(--ink);font-weight:700}
.body-link{color:var(--red);text-decoration:none;border-bottom:1px solid var(--red-soft)}
.body-link:hover{border-bottom-color:var(--red)}

/* ruled definition list (services, values, basics) */
.svc{list-style:none;max-width:640px}
.svc li{padding:13px 0;border-top:1px solid var(--rule)}
.svc li:first-child{border-top:none}
.svc b{display:block;font-size:.95rem;color:var(--ink);margin-bottom:2px}
.svc span{font-size:.9rem;color:var(--soft)}

/* sheet index (homepage) */
.idx{list-style:none;max-width:640px}
.idx li{display:flex;gap:14px;align-items:baseline;padding:10px 0;border-top:1px solid var(--rule)}
.idx li:first-child{border-top:none}
.idx .no{font-size:.7rem;color:var(--pencil);letter-spacing:.04em;flex:0 0 72px}
.idx li:nth-child(odd) .no{transform:rotate(-.3deg) translateY(-.3px)}
.idx li:nth-child(even) .no{transform:rotate(.25deg) translateY(.3px)}
.idx a{font-weight:700;font-size:.9rem;color:var(--ink);text-decoration:none;flex:0 0 92px}
.idx a:hover{color:var(--red)}
.idx span{font-size:.85rem;color:var(--pencil)}

/* carbon-copy note block */
.carbon{
  background:var(--carbon);border:1px solid var(--rule);
  padding:16px 18px;max-width:640px;margin:26px 0;
}
.carbon .lbl{display:inline-block;font-size:.7rem;letter-spacing:.1em;color:var(--red);margin-right:8px;transform:rotate(-.5deg)}
.carbon p{margin:0;font-size:.9rem}

/* typed lines: dates, prices, tech lists, meta. Typed entries never
   sit perfectly on the printed grid; fractions of a degree only. */
.kick{display:inline-block;font-size:.68rem;letter-spacing:.1em;color:var(--red);margin-bottom:4px;transform:rotate(-.35deg)}
.tags-t{font-size:.72rem;letter-spacing:.04em;color:var(--pencil);margin-top:10px}
.typedline{font-size:.82rem;letter-spacing:.02em;color:var(--pencil)}

/* work entries, journal posts */
.entry{padding:26px 0;border-top:1px solid var(--rule);max-width:640px}
.entry:first-of-type{border-top:none}
.entry p{margin-bottom:8px}
.entry:nth-of-type(even) .kick{transform:rotate(.3deg)}
.date{display:inline-block;font-size:.72rem;letter-spacing:.08em;color:var(--pencil);margin-bottom:6px;transform:rotate(-.3deg)}
.entry:nth-of-type(even) .date{transform:rotate(.25deg) translateY(.4px)}

/* estimate columns (pricing tiers) */
.est-grid{display:grid;grid-template-columns:repeat(3,1fr);max-width:860px;margin:8px 0 10px}
.est{padding:6px 22px 18px 0}
.est + .est{border-left:1px solid var(--rule);padding-left:22px}
.est .tname{display:inline-block;font-size:.68rem;letter-spacing:.12em;color:var(--pencil);margin-bottom:8px}
.est:nth-child(1) .tname{transform:rotate(-.3deg)}
.est:nth-child(2) .tname{transform:rotate(.25deg) translateY(.3px)}
.est:nth-child(3) .tname{transform:rotate(-.2deg) translateY(-.3px)}
.est .price{display:inline-block;font-family:var(--type);font-size:1.4rem;color:var(--ink);transform:rotate(-.3deg) translateY(.5px)}
.est:nth-child(2) .price{transform:rotate(.25deg)}
.est .price small{font-size:.8rem;color:var(--pencil)}
.est .tdesc{font-size:.85rem;color:var(--soft);margin:8px 0 12px;line-height:1.55}
.est ul{list-style:none;margin-bottom:18px}
.est li{font-size:.84rem;padding:5px 0 5px 16px;position:relative;color:var(--soft)}
.est li::before{content:"+";position:absolute;left:0;color:var(--red);font-weight:700}

/* buttons: square, typed label, set a touch off true */
.cta{
  display:inline-block;font-family:var(--type);
  font-size:.76rem;letter-spacing:.06em;
  padding:10px 16px;border:1px solid var(--ink);color:var(--ink);
  text-decoration:none;background:transparent;
  transform:rotate(-.25deg);
  transition:background .12s,color .12s;
}
.cta:hover{background:var(--ink);color:var(--paper)}
.cta.red{border-color:var(--red);color:var(--red)}
.cta.red:hover{background:var(--red);color:var(--paper)}

/* add-on ledger rows with dotted leaders */
.row{display:flex;align-items:baseline;max-width:640px;padding:8px 0}
.row .leader{flex:1;border-bottom:1px dotted var(--rule2);margin:0 10px;transform:translateY(-4px)}
.row .item{font-size:.9rem;color:var(--ink)}
.row .amt{display:inline-block;font-family:var(--type);font-size:.9rem;color:var(--ink)}
.row:nth-child(odd) .amt{transform:rotate(.3deg) translateY(-.4px)}
.row:nth-child(even) .amt{transform:rotate(-.25deg) translateY(.4px)}

/* totals close with a double rule */
.dbl{max-width:640px;border-top:3px double var(--rule2);margin-top:8px;padding-top:10px}

/* FAQ */
.faq-item{padding:18px 0;border-top:1px solid var(--rule);max-width:640px}
.faq-item:first-of-type{border-top:none}
.faq-item h3{font-size:.92rem}
.faq-item p{margin:0;font-size:.88rem}

footer{
  margin-top:64px;padding-top:14px;border-top:3px double var(--rule2);
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  font-family:var(--type);font-size:.7rem;
  letter-spacing:.04em;color:var(--pencil);
}
footer a{color:var(--pencil);text-decoration:none}
footer a:hover{color:var(--red)}

@media (max-width:720px){
  .sheet{padding:24px 18px 44px 40px}
  .sheet::before{left:22px}
  .sheetno{display:none}
  .nav{margin-left:0;gap:14px}
  .est-grid{grid-template-columns:1fr}
  .est{padding:18px 0}
  .est + .est{border-left:none;border-top:1px solid var(--rule);padding-left:0}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important}
}
