/* Cornwill Ventures palette, sampled from the official CV logo:
   --green #2d4f46 (logo green), --gray #a6a6a6 (logo gray, decorative only: 2.4:1 on white)
   --tmwc #43543a (TMWC logo green). Text colors chosen for WCAG AA. */
:root{
  --green:#2d4f46; --green-dk:#1f3a33; --gray:#a6a6a6; --tmwc:#43543a;
  --ink:#16201d; --muted:#4f5a56; --paper:#ffffff; --band:#f4f6f5; --line:#dfe4e2;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --r:14px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 var(--sans)}
img{max-width:100%;height:auto;display:block}
a{color:var(--green)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.wrap{max-width:1080px;margin:0 auto;padding:0 22px}
.skip{position:absolute;left:-999px;top:8px;background:var(--green);color:#fff;padding:8px 12px;border-radius:8px;z-index:20}
.skip:focus{left:8px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.2;margin:0 0 .5em;color:var(--ink)}
h1{font-size:clamp(2rem,4.6vw,3.15rem);letter-spacing:-.01em}
.h2{font-size:clamp(1.6rem,3vw,2.2rem)}
.h3{font-size:1.3rem;margin-top:2.2rem}
.eyebrow{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--green);font-weight:700;margin:0 0 .8rem}
.lede{font-size:1.15rem;color:var(--muted)}
.narrow{max-width:46rem}
.quiet{color:var(--muted);font-size:.95rem}

/* header */
.top{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}
.top__in{display:flex;align-items:center;justify-content:space-between;height:64px;gap:16px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--green);font-family:var(--serif);font-weight:600;font-size:1.1rem}
.brand img{width:40px;height:auto}
nav{display:flex;align-items:center;gap:20px}
nav a{color:var(--ink);text-decoration:none;font-size:.95rem}
nav a:hover{color:var(--green);text-decoration:underline}
.nav__cta{font:inherit;font-size:.9rem;font-weight:600;background:var(--green);color:#fff;border:0;border-radius:999px;padding:8px 16px;cursor:pointer}
.nav__cta:hover{background:var(--green-dk)}
@media (max-width:760px){nav a{display:none}}

/* buttons */
.btn{display:inline-block;font:inherit;font-weight:600;background:var(--green);color:#fff;border:0;border-radius:999px;padding:13px 24px;text-decoration:none;cursor:pointer;transition:background .15s}
.btn:hover{background:var(--green-dk)}
.btn--light{background:#fff;color:var(--green)}
.btn--light:hover{background:#e9efed}
.link{color:var(--green);font-weight:600;text-decoration:none}
.link:hover{text-decoration:underline}
.link--btn{background:none;border:0;padding:0;font:inherit;font-weight:600;cursor:pointer;color:var(--green)}
.cta{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:1.8rem}

/* hero */
.hero{display:grid;grid-template-columns:220px 1fr;gap:56px;align-items:center;padding-top:72px;padding-bottom:80px}
.hero__logo{width:220px}
@media (max-width:760px){.hero{grid-template-columns:1fr;gap:28px;padding-top:40px;padding-bottom:56px}.hero__logo{width:150px}}

/* sections */
.section{padding:80px 0}
.band{background:var(--band);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media (max-width:760px){.grid2{grid-template-columns:1fr}.section{padding:56px 0}.card{padding:22px}}
@media (max-width:440px){.mark--pair{gap:12px}.mark__tmwc{height:28px}.mark__bakas{height:32px;padding-left:12px}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:30px}
.card h3{font-size:1.45rem}
.tag{font-weight:600;color:var(--ink)}
.mark{height:92px;display:flex;align-items:center;gap:18px;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.mark__tgd{height:78px;width:auto}
.mark__tmwc{height:40px;width:auto;min-width:0;flex:0 1 auto;object-fit:contain}
.mark__bakas{height:44px;width:auto;min-width:0;flex:0 1 auto;object-fit:contain;padding-left:18px;border-left:1px solid var(--line)}
.ticks{list-style:none;padding:0;margin:1rem 0}
.ticks li{position:relative;padding-left:24px;margin:.35rem 0}
.ticks li::before{content:"";position:absolute;left:2px;top:.62em;width:10px;height:6px;border-left:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(-45deg)}
.sub{margin:1.4rem 0;padding:20px 22px;background:var(--band);border-left:3px solid var(--green);border-radius:0 10px 10px 0}
.sub h4{font-size:1.1rem;margin:0 0 .3rem}
.sub p{margin:.2rem 0 .4rem;font-size:.97rem}
.sub .ticks{margin:.4rem 0 0;font-size:.96rem}
.note{margin-top:28px;color:var(--muted);max-width:52rem}

/* founder */
.founder__in{display:grid;grid-template-columns:340px 1fr;gap:56px;align-items:start}
.portrait img{border-radius:var(--r);width:100%;aspect-ratio:1;object-fit:cover}
@media (max-width:860px){.founder__in{grid-template-columns:1fr;gap:28px}.portrait{max-width:300px}}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:1.6rem 0}
.stats div{border-top:2px solid var(--green);padding-top:10px}
.stats dt{font-family:var(--serif);font-size:1.6rem;font-weight:600;color:var(--green)}
.stats dd{margin:0;color:var(--muted);font-size:.92rem}
.stats--big{grid-template-columns:repeat(4,1fr);margin:2rem 0}
.stats--big dt{font-size:2.1rem}
@media (max-width:760px){.stats,.stats--big{grid-template-columns:1fr 1fr}}
.social{display:flex;flex-wrap:wrap;gap:18px}
.social a{font-weight:600;text-decoration:none}
.social a:hover{text-decoration:underline}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gallery figure{margin:0}
.gallery img{border-radius:10px;aspect-ratio:4/3;object-fit:cover;width:100%}
.gallery figcaption{font-size:.88rem;color:var(--muted);margin-top:8px}
@media (max-width:760px){.gallery{grid-template-columns:1fr}}
.quote{margin:0;background:var(--band);border-radius:var(--r);padding:26px}
.quote blockquote{margin:0 0 12px;font-family:var(--serif);font-size:1.12rem}
.quote figcaption{color:var(--muted);font-size:.92rem;font-weight:600}

/* features */
.media{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:2rem}
@media (max-width:760px){.media{grid-template-columns:1fr}}
.media__item{margin:0}
.media__item figcaption{margin-top:10px}
.media__item figcaption strong{display:block;font-family:var(--serif);font-size:1.05rem;line-height:1.35}
.media__item figcaption span{display:block;color:var(--muted);font-size:.9rem;margin-top:3px}
.yt,.yt-frame{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;border-radius:12px;overflow:hidden;background:#000;cursor:pointer}
.yt img{width:100%;height:100%;object-fit:cover;transition:opacity .2s}
.yt:hover img{opacity:.85}
.yt__play{position:absolute;left:50%;top:50%;width:68px;height:48px;margin:-24px 0 0 -34px;background:rgba(0,0,0,.72);border-radius:14px;transition:background .15s}
.yt__play::after{content:"";position:absolute;left:27px;top:14px;border-style:solid;border-width:10px 0 10px 17px;border-color:transparent transparent transparent #fff}
.yt:hover .yt__play,.yt:focus-visible .yt__play{background:#c00}
.yt-frame iframe{width:100%;height:100%;border:0}
.pod{width:100%;border:0;border-radius:12px;overflow:hidden;background:#fff}
.article{display:block;margin-top:28px;padding:22px 24px;background:#fff;border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink)}
.article:hover{border-color:var(--green)}
.article strong{display:block;font-family:var(--serif);font-size:1.15rem;margin:4px 0}
.article__k{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green);font-weight:700}

/* products */
.products{list-style:none;padding:0;margin:1rem 0 1.4rem;display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.products a{display:block;text-decoration:none;color:var(--ink);font-size:.92rem;font-weight:600;line-height:1.35}
.products img{border-radius:10px;border:1px solid var(--line);aspect-ratio:1;object-fit:cover;width:100%;margin-bottom:8px;transition:transform .2s}
.products a:hover img{transform:translateY(-2px)}
.products a:hover span{text-decoration:underline}
@media (max-width:900px){.products{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.products{grid-template-columns:1fr 1fr}}

/* contact & footer */
.contact{background:var(--green);color:#fff}
.contact .h2{color:#fff}
.contact .lede,.contact .quiet{color:#dbe6e2}
.contact a{color:#fff}
.foot{padding:36px 0;border-top:1px solid var(--line)}
.foot__in{display:flex;gap:18px;align-items:flex-start}
.foot__in img{width:40px;flex:none;margin-top:4px}
.legal{font-size:.92rem;margin:0 0 .4rem}
.foot .quiet{font-size:.85rem;margin:0}

/* modal */
.modal{border:0;padding:0;border-radius:18px;width:min(560px,calc(100% - 32px));max-height:calc(100% - 48px);color:var(--ink);box-shadow:0 24px 64px rgba(0,0,0,.28)}
.modal::backdrop{background:rgba(15,26,22,.55);backdrop-filter:blur(2px)}
.modal[open]{animation:pop .18s ease-out}
@keyframes pop{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.modal__form{display:flex;flex-direction:column;max-height:inherit}
.modal__head{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 12px;border-bottom:1px solid var(--line)}
.modal__head h2{font-size:1.4rem;margin:0}
.modal__x{font-size:1.8rem;line-height:1;background:none;border:0;color:var(--muted);cursor:pointer;width:40px;height:40px;border-radius:50%}
.modal__x:hover{background:var(--band);color:var(--ink)}
.modal__body{padding:16px 24px 24px;overflow:auto}
.field{margin:0 0 14px}
.field label{display:block;font-weight:600;font-size:.92rem;margin-bottom:5px}
.opt{font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1.5px solid #c5cdca;border-radius:10px;padding:11px 12px}
.field textarea{resize:vertical;min-height:110px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 3px rgba(45,79,70,.2)}
.field [aria-invalid="true"]{border-color:#b3261e}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form__err{color:#b3261e;background:#fdecea;border-radius:8px;padding:10px 12px;font-size:.93rem}
.modal__foot{display:flex;align-items:center;gap:20px;margin-top:6px}
.btn[disabled]{opacity:.65;cursor:progress}
.modal__done{text-align:center;padding:36px 24px}
.modal__done .modal__foot{justify-content:center}
.done__icon{width:56px;height:56px;margin:0 auto 12px;border-radius:50%;background:#e3ede9;color:var(--green);font-size:1.7rem;line-height:56px;font-weight:700}
@media (max-width:600px){
  .modal{width:100%;max-width:100%;height:100%;max-height:100%;margin:0;border-radius:0}
  .modal__form{height:100%}
  .modal__body{flex:1}
  .modal[open]{animation:sheet .22s ease-out}
  @keyframes sheet{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
}
body.modal-open{overflow:hidden}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* TikTok click-to-load */
.tts{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:1.4rem 0 1.6rem}
@media (max-width:900px){.tts{grid-template-columns:repeat(2,1fr)}}
@media (max-width:420px){.tts{gap:12px}}
.tt{margin:0}
.tt__btn,.tt__frame{position:relative;display:block;width:100%;aspect-ratio:9/16;border:0;padding:0;border-radius:12px;overflow:hidden;background:#000;cursor:pointer}
.tt__btn img{width:100%;height:100%;object-fit:cover;transition:opacity .2s}
.tt__btn:hover img{opacity:.85}
.tt__play{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:rgba(0,0,0,.6);border:2px solid rgba(255,255,255,.9)}
.tt__play::after{content:"";position:absolute;left:21px;top:16px;border-style:solid;border-width:11px 0 11px 17px;border-color:transparent transparent transparent #fff}
.tt__btn:hover .tt__play,.tt__btn:focus-visible .tt__play{background:#000}
.tt__frame iframe{width:100%;height:100%;border:0}
.tt figcaption{margin-top:8px;font-size:.9rem;line-height:1.35}
.tt figcaption strong{display:block;margin:2px 0 3px}
.tt figcaption span{color:var(--muted)}
.tt__cat{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--green)!important}
