Tuesday, September 01, 2026

BridgeText test

 <!doctype html>

<html lang="en">

<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1">


<meta name="description"

content="BridgeText — new media publishing for ebooks, illustrated books and hybrid digital storytelling.">


<title>BridgeText — New Media Publishing</title>


<link rel="preconnect" href="https://fonts.googleapis.com">

<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;650;750;800;850&display=swap" rel="stylesheet">


<style>


/* ================================

   BRIDGETEXT — GLOBAL STYLES

================================ */


:root {

  --ink: #171327;

  --muted: #625d70;

  --paper: #fbfafc;

  --white: #ffffff;


  --purple: #6d35d9;

  --magenta: #cf1686;

  --blue: #143bba;

  --orange: #f18b21;


  --line: #e8e4ee;


  --shadow: 0 20px 60px rgba(38,20,74,.12);


  --radius: 24px;


  /* height of the sticky nav, used for scroll offsetting anchor links */

  --nav-height: 76px;

}


* {

  box-sizing: border-box;

}


html {

  scroll-behavior: smooth;

}


body {

  margin: 0;

  background: var(--paper);

  color: var(--ink);


  font-family:

    Inter,

    ui-sans-serif,

    system-ui,

    -apple-system,

    BlinkMacSystemFont,

    "Segoe UI",

    sans-serif;


  line-height: 1.55;

}


a {

  color: inherit;

  text-decoration: none;

}


.container {

  width: min(1160px, calc(100% - 40px));

  margin: auto;

}


/* Anchor targets: offset scroll position so content isn't hidden

   under the sticky nav bar when jumping to #books, #publishing, etc. */

section[id] {

  scroll-margin-top: var(--nav-height);

}



/* ================================

   NAVIGATION

================================ */


nav {

  position: sticky;

  top: 0;

  z-index: 20;


  background: rgba(251,250,252,.88);


  -webkit-backdrop-filter: blur(16px);

  backdrop-filter: blur(16px);


  border-bottom: 1px solid rgba(232,228,238,.8);

}


.nav-inner {

  height: var(--nav-height);


  display: flex;

  align-items: center;

  justify-content: space-between;


  gap: 24px;

}


.wordmark {

  font-weight: 800;

  font-size: 25px;

  letter-spacing: -1px;

  color: var(--purple);

}


.wordmark span {

  font-weight: 400;

  color: var(--ink);

}


.navlinks {

  display: flex;

  gap: 28px;


  font-size: 14px;

  font-weight: 600;


  color: #403b4b;

}


.navlinks a:hover {

  color: var(--purple);

}



/* ================================

   BUTTONS

================================ */


.cta {

  display: inline-flex;

  align-items: center;

  justify-content: center;


  gap: 8px;


  padding: 12px 18px;


  border-radius: 999px;


  font-weight: 750;

  font-size: 14px;


  background: var(--ink);

  color: white;


  transition:

    .2s transform,

    .2s box-shadow;

}


.cta:hover {

  transform: translateY(-2px);


  box-shadow:

    0 10px 25px rgba(23,19,39,.18);

}


.cta:focus-visible {

  outline: 2px solid var(--purple);

  outline-offset: 2px;

}


.cta.primary {

  background:

    linear-gradient(

      100deg,

      var(--purple),

      var(--magenta)

    );

}


.cta.secondary {

  background: #fff;

  color: var(--ink);

  border: 1px solid var(--line);

}



/* ================================

   HERO

================================ */


.hero {

  padding: 76px 0 88px;

  overflow: hidden;

}


.hero-grid {

  display: grid;


  grid-template-columns:

    1.03fr

    .97fr;


  align-items: center;


  gap: 55px;

}


.eyebrow {

  display: inline-flex;

  align-items: center;


  gap: 9px;


  padding: 7px 12px;


  border: 1px solid #ddd6e9;


  border-radius: 999px;


  background: #fff;


  font-size: 12px;

  font-weight: 800;


  letter-spacing: .08em;


  text-transform: uppercase;


  color: var(--purple);

}


.eyebrow i {

  width: 7px;

  height: 7px;


  border-radius: 50%;


  background: var(--magenta);


  display: inline-block;

}


h1 {

  font-size: clamp(48px, 7vw, 82px);


  line-height: .98;


  letter-spacing: -.055em;


  margin: 22px 0;

}


.gradient-text {

  background:

    linear-gradient(

      100deg,

      var(--purple),

      var(--magenta),

      var(--orange)

    );


  -webkit-background-clip: text;

  background-clip: text;


  color: transparent;

  -webkit-text-fill-color: transparent;

}


.lead {

  font-size: 20px;


  color: var(--muted);


  max-width: 620px;

}


.actions {

  display: flex;


  flex-wrap: wrap;


  gap: 12px;


  margin-top: 30px;

}



/* ================================

   HERO IMAGE

================================ */


.hero-art {

  position: relative;


  display: flex;


  justify-content: center;

}


.hero-art:before {

  content: "";


  position: absolute;


  width: 85%;


  aspect-ratio: 1;


  border-radius: 50%;


  background:

    radial-gradient(

      circle,

      #eee7ff 0%,

      #f7f3ff 48%,

      transparent 70%

    );


  z-index: -1;


  filter: blur(4px);

}


.hero-art svg,

.hero-art img {

  width: min(100%, 520px);


  height: auto;


  border-radius: 28px;


  box-shadow: var(--shadow);


  display: block;

}



/* ================================

   SECTIONS

================================ */


.section {

  padding: 86px 0;

}


.section.alt {

  background: #fff;

}


.section-head {

  display: flex;


  align-items: end;


  justify-content: space-between;


  gap: 30px;


  margin-bottom: 34px;

}


.kicker {

  color: var(--purple);


  font-size: 12px;


  font-weight: 850;


  letter-spacing: .12em;


  text-transform: uppercase;

}


h2 {

  font-size: clamp(34px, 5vw, 54px);


  line-height: 1.02;


  letter-spacing: -.045em;


  margin: 9px 0 0;

}


.section-head p {

  max-width: 500px;


  color: var(--muted);


  margin: 0;

}



/* ================================

   BOOK CATALOGUE

================================ */


.books {

  display: grid;


  grid-template-columns:

    repeat(3, 1fr);


  gap: 20px;

}


.book {

  background: var(--paper);


  border: 1px solid var(--line);


  border-radius: var(--radius);


  padding: 20px;


  transition:

    .2s transform,

    .2s box-shadow;

}


.book:hover {

  transform: translateY(-5px);


  box-shadow: var(--shadow);

}


.cover {

  height: 270px;


  border-radius: 16px;


  display: grid;


  place-items: center;


  text-align: center;


  padding: 25px;


  overflow: hidden;

}


.cover.one {

  background:

    linear-gradient(

      145deg,

      #23125f,

      #7c2bcf 52%,

      #f08b23

    );

}


.cover.two {

  background:

    linear-gradient(

      145deg,

      #0c2269,

      #1255c5 48%,

      #df1b82

    );

}


.cover.three {

  background:

    linear-gradient(

      145deg,

      #19152a,

      #cf1686 55%,

      #ffad29

    );

}


.cover strong {

  color: white;


  font-size: 27px;


  line-height: 1.03;


  letter-spacing: -.04em;

}


.cover small {

  display: block;


  color: rgba(255,255,255,.8);


  margin-top: 14px;


  font-weight: 650;

}


.book-meta {

  padding: 18px 2px 2px;

}


.book-meta h3 {

  margin: 0 0 5px;


  font-size: 20px;

}


.book-meta p {

  margin: 0;


  color: var(--muted);


  font-size: 14px;

}


.pill {

  display: inline-block;


  margin-top: 13px;


  padding: 5px 9px;


  border-radius: 999px;


  background: #eee8fb;


  color: var(--purple);


  font-size: 11px;


  font-weight: 800;

}



/* ================================

   FEATURES

================================ */


.features {

  display: grid;


  grid-template-columns:

    repeat(3, 1fr);


  gap: 18px;

}


.feature {

  padding: 28px;


  border: 1px solid var(--line);


  border-radius: var(--radius);


  background: #fff;

}


.icon {

  width: 45px;

  height: 45px;


  border-radius: 14px;


  display: grid;


  place-items: center;


  background:

    linear-gradient(

      135deg,

      #eee7ff,

      #ffe8f4

    );


  font-size: 21px;


  margin-bottom: 20px;

}


.feature h3 {

  margin: 0 0 8px;


  font-size: 20px;

}


.feature p {

  margin: 0;


  color: var(--muted);


  font-size: 15px;

}



/* ================================

   ABOUT / BRIDGE SECTION

================================ */


.bridge {

  display: grid;


  grid-template-columns:

    .9fr

    1.1fr;


  gap: 60px;


  align-items: center;

}


.bridge-copy p {

  color: var(--muted);


  font-size: 17px;

}


.quote {

  padding: 35px;


  border-radius: 28px;


  background:

    linear-gradient(

      135deg,

      #f0eaff,

      #fff1f8

    );


  border: 1px solid #e5dcef;

}


.quote p {

  font-size: 26px;


  line-height: 1.2;


  letter-spacing: -.025em;


  margin: 0 0 18px;

}


.quote small {

  color: var(--muted);


  font-weight: 700;

}



/* ================================

   NEWSLETTER

================================ */


.subscribe {

  border-radius: 32px;


  padding: 55px;


  background:

    linear-gradient(

      115deg,

      #201052 0%,

      #6d35d9 48%,

      #c91583 100%

    );


  color: white;


  display: grid;


  grid-template-columns:

    1fr

    1fr;


  gap: 40px;


  align-items: center;

}


.subscribe h2 {

  color: white;

}


.subscribe p {

  color: rgba(255,255,255,.78);

}


.form {

  display: flex;


  gap: 10px;

}


input {

  width: 100%;


  border: 0;


  border-radius: 999px;


  padding: 15px 18px;


  font: inherit;


  outline: none;

}


input:focus-visible {

  outline: 2px solid white;

  outline-offset: 2px;

}


.form .cta {

  background: white;


  color: var(--ink);


  border: 0;


  white-space: nowrap;

}



/* ================================

   FOOTER

================================ */


footer {

  padding: 38px 0;


  border-top: 1px solid var(--line);


  color: var(--muted);


  font-size: 13px;

}


.footer-inner {

  display: flex;


  justify-content: space-between;


  gap: 20px;


  align-items: center;

}



/* ================================

   REDUCED MOTION

================================ */


@media (prefers-reduced-motion: reduce) {

  html {

    scroll-behavior: auto;

  }


  .cta,

  .book {

    transition: none;

  }

}



/* ================================

   MOBILE

================================ */


@media(max-width:820px) {


  .navlinks {

    display: none;

  }


  .hero {

    padding-top: 50px;

  }


  .hero-grid,

  .bridge,

  .subscribe {

    grid-template-columns: 1fr;

  }


  .hero-art {

    order: -1;

  }


  .books,

  .features {

    grid-template-columns: 1fr;

  }


  .section-head {

    display: block;

  }


  .section-head p {

    margin-top: 14px;

  }


  .subscribe {

    padding: 35px 25px;

  }

}



/* ================================

   SMALL PHONES

================================ */


@media(max-width:520px) {


  .container {

    width: min(100% - 28px, 1160px);

  }


  .nav-inner {

    height: 68px;

  }


  .nav-inner > .cta {

    display: none;

  }


  h1 {

    font-size: 50px;

  }


  .lead {

    font-size: 17px;

  }


  .hero-art img,

  .hero-art svg {

    border-radius: 20px;

  }


  .form {

    flex-direction: column;

  }


}


</style>

</head>



<body>



<!-- =====================================

     NAVIGATION

====================================== -->


<nav>


  <div class="container nav-inner">


    <a class="wordmark" href="#">

      Bridge<span>Text</span>

    </a>


    <div class="navlinks">


      <a href="#books">Books</a>


      <a href="#publishing">Publishing</a>


      <a href="#about">About</a>


      <a href="#contact">Contact</a>


    </div>


    <a class="cta primary" href="#publishing">

      Publish with us

    </a>


  </div>


</nav>




<!-- =====================================

     MAIN

====================================== -->


<main>



<!-- =====================================

     HERO

====================================== -->


<section class="hero">


  <div class="container hero-grid">



    <div>


      <div class="eyebrow">

        <i aria-hidden="true"></i>

        New media publishing

      </div>



      <h1>

        Books that

        <span class="gradient-text">

          cross the bridge.

        </span>

      </h1>



      <p class="lead">

        BridgeText publishes ebooks and illustrated digital

        works that connect literature, visual storytelling

        and the possibilities of new media.

      </p>



      <div class="actions">


        <a class="cta primary" href="#books">

          Explore the catalogue →

        </a>


        <a class="cta secondary" href="#publishing">

          How BridgeText works

        </a>


      </div>


    </div>



    <!-- BRIDGETEXT GRAPHIC

         Placeholder inline SVG — swap for your real artwork by

         replacing this <svg> block with an <img src="..." alt="..."> tag. -->


    <div class="hero-art">


      <svg viewBox="0 0 520 400" role="img" aria-label="BridgeText open-book logo with the words New media publishing">

        <defs>

          <linearGradient id="bt-grad" x1="0%" y1="0%" x2="100%" y2="100%">

            <stop offset="0%" stop-color="#6d35d9"/>

            <stop offset="55%" stop-color="#cf1686"/>

            <stop offset="100%" stop-color="#f18b21"/>

          </linearGradient>

        </defs>

        <rect width="520" height="400" rx="28" fill="#171327"/>

        <path d="M60 260 C130 210 190 210 260 240 C330 210 390 210 460 260"

              fill="none" stroke="url(#bt-grad)" stroke-width="10" stroke-linecap="round"/>

        <path d="M60 220 L260 200 L260 280 L60 300 Z" fill="url(#bt-grad)" opacity="0.85"/>

        <path d="M460 220 L260 200 L260 280 L460 300 Z" fill="url(#bt-grad)" opacity="0.55"/>

        <text x="260" y="345" text-anchor="middle" font-family="Inter, sans-serif" font-weight="800" font-size="30" fill="#ffffff">BridgeText</text>

        <text x="260" y="372" text-anchor="middle" font-family="Inter, sans-serif" font-weight="600" font-size="14" fill="#c9bdf0">New media publishing</text>

      </svg>


    </div>



  </div>


</section>




<!-- =====================================

     BOOK CATALOGUE

====================================== -->


<section class="section alt" id="books">


  <div class="container">



    <div class="section-head">


      <div>


        <div class="kicker">

          The catalogue

        </div>


        <h2>

          Stories in more than one form.

        </h2>


      </div>



      <p>

        Discover fiction, literary works, visual books

        and hybrid projects designed for contemporary readers.

      </p>


    </div>




    <div class="books">



      <!-- BOOK 1 -->


      <article class="book">


        <div class="cover one">


          <div>


            <strong>

              THE<br>

              BUSINESS<br>

              ARMY

            </strong>


            <small>

              An illustrated historical novel

            </small>


          </div>


        </div>



        <div class="book-meta">


          <h3>

            The Business Army

          </h3>


          <p>

            History · Fiction · Illustrated

          </p>


          <span class="pill">

            Coming soon

          </span>


        </div>


      </article>




      <!-- BOOK 2 -->


      <article class="book">


        <div class="cover two">


          <div>


            <strong>

              THE<br>

              GREEN<br>

              DIARIES

            </strong>


            <small>

              A literary environmental project

            </small>


          </div>


        </div>



        <div class="book-meta">


          <h3>

            The Green Diaries

          </h3>


          <p>

            Literature · Environment · Multimedia

          </p>


          <span class="pill">

            Featured project

          </span>


        </div>


      </article>




      <!-- BOOK 3 -->


      <article class="book">


        <div class="cover three">


          <div>


            <strong>

              NEW<br>

              VOICES

            </strong>


            <small>

              Short works for a digital age

            </small>


          </div>


        </div>



        <div class="book-meta">


          <h3>

            BridgeText Editions

          </h3>


          <p>

            Literary fiction · Essays · Poetry

          </p>


          <span class="pill">

            Explore

          </span>


        </div>


      </article>



    </div>


  </div>


</section>




<!-- =====================================

     PUBLISHING MODEL

====================================== -->


<section class="section" id="publishing">


  <div class="container">



    <div class="section-head">


      <div>


        <div class="kicker">

          The BridgeText model

        </div>


        <h2>

          Publishing, reimagined.

        </h2>


      </div>



      <p>

        A lightweight digital-first approach lets ambitious

        books reach readers without requiring a traditional

        publishing infrastructure.

      </p>


    </div>




    <div class="features">



      <article class="feature">


        <div class="icon" aria-hidden="true">

          ◈

        </div>


        <h3>

          Digital first

        </h3>


        <p>

          Beautiful ebooks and web-native editions built

          for phones, tablets and desktops.

        </p>


      </article>




      <article class="feature">


        <div class="icon" aria-hidden="true">

          ✦

        </div>


        <h3>

          Visual storytelling

        </h3>


        <p>

          Illustration, photography, video and motion can

          become part of the reading experience.

        </p>


      </article>




      <article class="feature">


        <div class="icon" aria-hidden="true">

          ↗

        </div>


        <h3>

          Audience connected

        </h3>


        <p>

          Books can live alongside trailers, author videos,

          social media and other forms of discovery.

        </p>


      </article>



    </div>


  </div>


</section>




<!-- =====================================

     ABOUT

====================================== -->


<section class="section alt" id="about">


  <div class="container bridge">



    <div class="bridge-copy">


      <div class="kicker">

        Why BridgeText?

      </div>


      <h2>

        The bridge is the idea.

      </h2>



      <p>

        Traditional publishing and new media do not have

        to be separate worlds. BridgeText brings text,

        image, film and digital distribution together

        while keeping the book at the centre.

      </p>



      <p>

        We are interested in distinctive voices, strong

        ideas and projects that benefit from crossing formats.

      </p>



      <a class="cta primary" href="#contact">

        Start a conversation →

      </a>


    </div>




    <div class="quote">


      <p>

        “A book can be a doorway into an entire media world.”

      </p>


      <small>

        BRIDGETEXT · NEW MEDIA PUBLISHING

      </small>


    </div>



  </div>


</section>




<!-- =====================================

     NEWSLETTER

====================================== -->


<section class="section" id="contact">


  <div class="container">



    <div class="subscribe">



      <div>


        <div

          class="kicker"

          style="color:#fff"

        >

          Stay connected

        </div>



        <h2>

          New books. New forms. New readers.

        </h2>



        <p>

          Join the BridgeText list for announcements,

          new releases and featured projects.

        </p>


      </div>




      <form

        class="form"

        onsubmit="

          event.preventDefault();

          this.querySelector('button').textContent='Thank you ✓';

        "

      >


        <input

          type="email"

          name="email"

          id="subscribe-email"

          aria-label="Email address"

          placeholder="Your email address"

          required

        >


        <button

          class="cta"

          type="submit"

        >

          Subscribe

        </button>


      </form>



    </div>


  </div>


</section>



</main>




<!-- =====================================

     FOOTER

====================================== -->


<footer>


  <div class="container footer-inner">


    <div>


      <strong style="color:var(--ink)">

        BridgeText

      </strong>


      · New media publishing


    </div>



    <div>

      © 2026 BridgeText · All rights reserved

    </div>


  </div>


</footer>



</body>

</html>


Sunday, February 15, 2026

Monday, February 09, 2026

Tuesday, February 03, 2026

Tuesday, January 27, 2026

How can literature AI proof itself?

How can literature AI-proof itself?
https://youtu.be/aUJ9wr0C3os

Saturday, January 24, 2026

Trump vs. NATO

Trump and his insults against NATO soldiers. What should other countries do in response? 

#trump #nato
https://youtube.com/shorts/JD3wAyDiWnk?feature=share

Thursday, January 22, 2026

Carney at Davos


Mark Carney and the end of the “rules based order” that benefits big nations. What will replace it?

Sunday, January 18, 2026

CanLit and geopolitics



 

Canadian publishing produces very few works of fiction about the gritty, brutal world of bare knuckles geopolitics. The result is a somewhat limited sense of national self; we’re perceived as a nice country, but also a naive one. Can Canadian fiction improve in this regard?

Wednesday, January 14, 2026

Sunday, January 11, 2026

Insects’ World

Insects' World- Baram CXL
https://youtu.be/INoBL09TNtY — We assumed bad days would pass…

Monday, January 05, 2026

Remembering my brother

 



My dad phoned me on January 6th, 2013, to tell me my brother had died at Montreal General Hospital.


It was a messy ending: my mom, senile and delusional, either thought Richard just needed to “escape” the hospital in order to live, or that palliative care would bring about some kind of cure. 


The hospital staff was eager to clear his bed, and repeatedly took him off medication in order that his failing liver would finish him off. I argued with the hospital that my mom — who was frequently in Montreal — should not be main decision maker because of her dementia. 


They relented on that issue but didn’t listen to me anyway. Three times they took richard off antibiotics on a Friday night, then told my dad and me they could only reinstate antibiotics with permission from the attending doctor. When my dad and I asked them to contact the doctor, the staff said they couldn’t because it was the weekend.


Richard left behind no computer disks that I could find, countless unpaginated printouts all randomly thrown together, and old drawings on fraying paper. 


Since then, I’ve been making videopoems based on his work. Ultimately, I’ll scan the printouts and assemble them into book volumes (I’ve done this with one volume already, entitled Happyland). His work isn’t for everyone. But he was a poet who genuinely found his voice before he died. That’s a kind of solace. 


Below are two very early readings from his own chapbook Death Haiku. RIP. I still miss him so much it hurts.


Death Haiku statement:


https://youtu.be/WAJ6ZGR1a3g?si=GnlCrXPQBSUoZ0Ab

Friday, January 02, 2026

The Return of the Nerd

Literary fiction aimed at teens and young adults should, theoretically, include many male protagonists who are bookish, physically plain, and awkward with girls. However….
The Return of the Nerd?
https://youtu.be/AWKG3XmDp2w