/* 07i: accent switched from sunset orange to Number Nine blue #4F7FBF (text tint #8FB6EA) */
/* "Two coasts" — tory.expert redesign 2026-11-07f. Loads after Base.20c0bb54.css.
   Base is kept only for the footer sun + Sunny Run dialog. Everything else is tc-*. */
@font-face{font-family:"Bricolage";src:url(/_astro/bricolage-grotesque-std.20261107.woff2) format("woff2");font-weight:200 800;font-stretch:75% 100%;font-display:swap}
@font-face{font-family:"Onest";src:url(/_astro/onest-var.20261107.woff2) format("woff2");font-weight:100 900;font-display:swap}

:root{
  --tide:#0B2230; --deep:#071A25; --shell:#EAF0F2; --body:#C3D2DA; --mist:#8FA6B3;
  --sun:#4F7FBF; --sun-text:#8FB6EA; --glass:#8FD0C6; --line:rgba(234,240,242,.13);
  --gut:clamp(1.1rem,4.5vw,4.5rem); --max:84rem;
  --display:"Bricolage","Plus Jakarta Sans",system-ui,sans-serif;
  color-scheme:dark;
}
html{scroll-behavior:smooth;background:var(--tide)}
body.tc{background:var(--tide);color:var(--body);font-family:"Onest",system-ui,sans-serif;font-size:1.0625rem;line-height:1.6;
  font-feature-settings:"ss01";-webkit-font-smoothing:antialiased}
body.tc ::selection{background:var(--sun);color:#fff}
body.tc a{color:inherit}
body.tc :focus-visible{outline:2px solid var(--sun);outline-offset:3px;border-radius:4px}
body.tc ul,body.tc ol{list-style:none;margin:0;padding:0}
body.tc h1,body.tc h2,body.tc h3,body.tc h4,body.tc h5{font-family:var(--display);color:var(--shell);margin:0;font-weight:650;letter-spacing:-.02em;line-height:1.1}
body.tc p{margin:0}
body.tc .skip{background:var(--sun-text);color:var(--deep)}
body.tc main{display:block}
[id]{scroll-margin-top:4.5rem}

/* ---------- nav ---------- */
.tc-nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.7rem var(--gut);background:rgba(7,26,37,.72);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);
  border-bottom:1px solid var(--line);transform:translateY(-100%);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.tc-nav.is-on{transform:none}
.tc-nav a{text-decoration:none;font-size:.9rem}
.tc-nav-name{font-family:var(--display);font-weight:700;color:var(--shell);font-stretch:85%;font-size:1.05rem!important;letter-spacing:-.01em}
.tc-nav-links{display:flex;gap:clamp(.9rem,2.5vw,2rem)}
.tc-nav-links a{color:var(--mist);transition:color .2s}
.tc-nav-links a:hover,.tc-nav-links a.is-active{color:var(--shell)}
.tc-nav-links a.is-active{box-shadow:0 2px 0 var(--sun)}
@media (max-width:560px){.tc-nav-name{display:none}.tc-nav{justify-content:center}}

/* ---------- hero ---------- */
.tc-hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.tc-hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%;z-index:-2;
  transform:scale(1.08);animation:tc-settle 2.4s cubic-bezier(.2,.7,.2,1) both}
.tc-hero-shade{position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(180deg,rgba(11,34,48,.35) 0%,rgba(11,34,48,0) 26%,rgba(11,34,48,.15) 50%,rgba(11,34,48,.86) 80%,var(--tide) 100%),
    linear-gradient(90deg,rgba(11,34,48,.55) 0%,rgba(11,34,48,0) 60%)}
.tc-hero-inner{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gut) clamp(2.5rem,6vh,5rem);
  display:grid;grid-template-columns:1fr minmax(16rem,22rem);align-items:end;gap:2rem 3rem}
.tc-name{font-size:clamp(4.5rem,15.5vw,15rem)!important;font-weight:800!important;font-stretch:76%;line-height:.8!important;letter-spacing:-.035em!important;
  color:var(--shell);margin-left:-.04em!important;text-wrap:balance}
.tc-line{display:block;overflow:hidden;padding-bottom:.24em;margin-bottom:-.24em}
.tc-line>span{display:block;animation:tc-rise 1.15s cubic-bezier(.16,.84,.24,1) both}
.tc-line+.tc-line>span{animation-delay:.12s}
.tc-line>span{background:linear-gradient(180deg,#F5F8F9 10%,#C9DDF5 120%);-webkit-background-clip:text;background-clip:text;color:transparent}
.tc-hero-aside{padding-bottom:.6rem;border-left:2px solid var(--sun);padding-left:1.25rem;animation:tc-fade 1s ease .75s both}
.tc-role-line{font-family:var(--display);font-weight:650;font-size:1.3rem;line-height:1.2;color:var(--shell);letter-spacing:-.01em}
.tc-hero-lede{margin-top:.6rem!important;color:var(--body);font-size:1rem;max-width:30ch}
.tc-clocks{display:flex;gap:1.75rem;margin:1.4rem 0 0}
.tc-clocks dt{font-size:.82rem;color:var(--mist)}
.tc-clocks dd{margin:0;font-family:var(--display);font-weight:600;font-size:1.55rem;color:var(--shell);font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1.2}
.tc-clocks dd small{font-size:.62em;color:var(--mist);font-weight:500;margin-left:.2em}
@keyframes tc-rise{from{transform:translateY(102%)}to{transform:none}}
@keyframes tc-fade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes tc-settle{from{transform:scale(1.16)}to{transform:scale(1.08)}}
@media (max-width:820px){
  .tc-hero-inner{grid-template-columns:1fr;gap:1.6rem}
  .tc-name{font-size:clamp(4rem,32vw,11rem)!important}
  .tc-hero-photo{object-position:62% 40%}
}

/* ---------- sections ---------- */
.tc-sec{max-width:var(--max);margin:0 auto;padding:clamp(4.5rem,11vw,9rem) var(--gut) 0;width:100%;box-sizing:border-box}
.tc-h2{font-size:clamp(2.2rem,5vw,3.6rem)!important;font-weight:750!important;font-stretch:82%;letter-spacing:-.03em!important;margin-bottom:clamp(1.8rem,4vw,3rem)!important}

/* ventures: editorial rows, each wearing its own brand colour on hover */
.tc-vlist{border-top:1px solid var(--line)}
.tc-v{--vc:#4F7FBF}
.tc-v--belloise{--vc:#5FB4E6}.tc-v--nine{--vc:#4F7FBF}.tc-v--sunny{--vc:#F6A33B}.tc-v--citizens{--vc:#58B58F}
.tc-v-link{position:relative;display:grid;grid-template-columns:minmax(9rem,15rem) 1fr auto;align-items:center;gap:clamp(1.2rem,3.5vw,3rem);
  padding:clamp(1.1rem,2.2vw,1.6rem) 0;border-bottom:1px solid var(--line);text-decoration:none;isolation:isolate}
.tc-v-link::before{content:"";position:absolute;inset:0 calc(-1 * min(var(--gut),2rem));z-index:-1;border-radius:1.25rem;
  background:linear-gradient(90deg,color-mix(in srgb,var(--vc) 22%,transparent),color-mix(in srgb,var(--vc) 4%,transparent) 70%);
  opacity:0;transform:scaleY(.85);transition:opacity .35s ease,transform .45s cubic-bezier(.2,.8,.2,1)}
.tc-v-link:hover::before,.tc-v-link:focus-visible::before{opacity:1;transform:none}
.tc-v-mark{display:block;aspect-ratio:3/2;border-radius:.9rem;overflow:hidden;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.28)}
.tc-v-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.tc-v-link:hover .tc-v-img{transform:scale(1.05)}
.tc-v-name{display:block;font-family:var(--display);font-weight:700;font-stretch:84%;font-size:clamp(1.7rem,3.8vw,3rem);letter-spacing:-.03em;line-height:1.02;color:var(--shell);transition:color .3s}
.tc-v-link:hover .tc-v-name{color:color-mix(in srgb,var(--vc) 60%,#fff)}
.tc-v-sum{display:block;margin-top:.45rem;max-width:52ch;color:var(--body)}
.tc-v-url{font-size:.92rem;color:var(--mist);white-space:nowrap;padding:.5rem .95rem;border:1px solid var(--line);border-radius:999px;transition:border-color .3s,color .3s,background .3s}
.tc-v-link:hover .tc-v-url{color:var(--deep);background:var(--vc);border-color:var(--vc)}
@media (max-width:760px){
  .tc-v-link{grid-template-columns:7.5rem 1fr;align-items:start}
  .tc-v-url{grid-column:2;justify-self:start;margin-top:-.4rem}
  .tc-v-sum{font-size:.95rem}
}

/* about */
.tc-about{display:grid;grid-template-columns:minmax(14rem,26rem) 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.tc-about-photo{position:relative}
.tc-about-photo::after{content:"";position:absolute;inset:auto -1rem -1rem auto;width:62%;height:62%;border-radius:1.6rem;background:#4F7FBF;z-index:-1;opacity:.9}
.tc-about-photo{isolation:isolate}
.tc-portrait{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:1.6rem}
body.tc .tc-about-copy p{max-width:60ch;margin-top:1rem}
.tc-statement{font-family:var(--display);font-weight:500;font-size:clamp(1.35rem,2.4vw,1.9rem);line-height:1.3;color:var(--shell);letter-spacing:-.015em;margin-top:0!important;max-width:30ch!important}
.tc-linkedin{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.6rem;text-decoration:none;color:var(--shell)!important;font-weight:500;
  padding:.6rem 1rem;border:1px solid var(--line);border-radius:999px;transition:border-color .2s,background .2s}
.tc-linkedin:hover{border-color:var(--sun);background:rgba(79,127,191,.1)}
@media (max-width:820px){.tc-about{grid-template-columns:1fr}.tc-about-photo{max-width:20rem}}

/* experience */
.tc-timeline{border-top:1px solid var(--line)}
.tc-role{display:grid;grid-template-columns:minmax(9rem,13rem) 1fr;gap:1rem clamp(1.5rem,4vw,4rem);padding:clamp(1.6rem,3vw,2.4rem) 0;border-bottom:1px solid var(--line)}
.tc-when{font-family:var(--display);font-weight:550;color:var(--mist);font-variant-numeric:tabular-nums;font-size:1rem;padding-top:.35rem}
.tc-role.is-current>.tc-when{color:var(--sun-text)}
.tc-title{font-size:clamp(1.4rem,2.6vw,2rem)!important;font-weight:700!important;font-stretch:88%;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .8rem}
.tc-now{display:inline-flex;align-items:center;gap:.4rem;font-family:"Onest",sans-serif;font-size:.8rem;font-weight:600;letter-spacing:0;color:var(--glass);
  padding:.2rem .65rem;border-radius:999px;background:rgba(143,208,198,.12)}
.tc-now::before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:var(--glass);animation:tc-ping 2.2s ease-out infinite}
@keyframes tc-ping{0%{box-shadow:0 0 0 0 rgba(143,208,198,.55)}70%,100%{box-shadow:0 0 0 8px rgba(143,208,198,0)}}
.tc-org{color:var(--shell);font-size:1.1rem;margin-top:.3rem!important}
.tc-place{color:var(--mist);font-size:.92rem;margin-top:.1rem!important}
.tc-note{margin-top:.8rem!important;max-width:62ch}
.tc-points{margin-top:.6rem!important}
.tc-points li{position:relative;padding-left:1.1rem;margin-top:.4rem;max-width:64ch}
.tc-points li::before{content:"";position:absolute;left:0;top:.72em;width:.4rem;height:2px;background:var(--sun);border-radius:2px}
.tc-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.5rem 2.5rem;margin-top:1.6rem}
.tc-glabel{font-size:1rem!important;font-weight:650!important;color:var(--shell)}
.tc-groups .tc-points li{font-size:.97rem}
.tc-more{margin-top:.8rem}
.tc-more summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:.5rem;color:var(--mist);font-size:.92rem;transition:color .2s}
.tc-more summary::-webkit-details-marker{display:none}
.tc-more summary::before{content:"+";display:inline-grid;place-items:center;width:1.3rem;height:1.3rem;border:1px solid var(--line);border-radius:50%;font-size:.95rem;line-height:1;transition:transform .3s,border-color .2s}
.tc-more summary:hover{color:var(--shell)}
.tc-more[open] summary{font-size:0}
.tc-more[open] summary::after{content:"Hide details";font-size:.92rem}
.tc-more[open] summary::before{transform:rotate(45deg);border-color:var(--sun)}
.tc-subroles{margin-top:.6rem!important}
.tc-subroles .tc-role{grid-template-columns:minmax(8rem,11rem) 1fr;padding:1.1rem 0;border-bottom:1px dashed var(--line)}
.tc-subroles .tc-role:last-child{border-bottom:0;padding-bottom:0}
.tc-subroles .tc-title{font-size:1.2rem!important}
.tc-subroles .tc-when{font-size:.9rem}
@media (max-width:720px){
  .tc-role,.tc-subroles .tc-role{grid-template-columns:1fr;gap:.3rem}
  .tc-when{padding-top:0}
}

/* Sunny Central */
.tc-portal{margin-top:2.2rem;padding:clamp(1.4rem,3vw,2.4rem);border-radius:1.5rem;background:
  radial-gradient(90% 120% at 100% 0%,rgba(79,127,191,.16),transparent 55%),var(--deep);
  border:1px solid rgba(79,127,191,.22)}
.tc-portal-h{font-size:clamp(1.3rem,2.4vw,1.75rem)!important;font-weight:700!important;font-stretch:88%}
.tc-portal-sub{color:var(--mist);margin-top:.4rem!important;max-width:56ch}
.tc-portal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:1.4rem 2rem;margin-top:1.6rem}
.tc-pc h5{font-size:.98rem!important;font-weight:650!important;color:var(--sun-text);margin-bottom:.4rem!important}
.tc-pc li{font-size:.9rem;color:var(--body);padding:.22rem 0;border-top:1px solid rgba(234,240,242,.07)}

/* credentials */
.tc-creds{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem clamp(2rem,4vw,4rem)}
.tc-cred h3{font-size:1.35rem!important;font-weight:700!important;font-stretch:88%;padding-bottom:.8rem;border-bottom:2px solid var(--sun);margin-bottom:.4rem!important}
.tc-cred li{padding:.75rem 0;border-bottom:1px solid var(--line)}
.tc-cn{color:var(--shell);font-weight:550}
.tc-cred li p:not(.tc-cn):not(.tc-cy){font-size:.93rem;margin-top:.2rem}
.tc-cy{color:var(--mist);font-size:.88rem;font-variant-numeric:tabular-nums;margin-top:.15rem!important}
.tc-skills{grid-column:1/-1}
.tc-skills ul{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem!important}
.tc-skills li{border:1px solid var(--line);border-radius:999px;padding:.38rem .9rem;font-size:.9rem;color:var(--body);transition:border-color .2s,color .2s}
.tc-skills li:hover{border-color:var(--sun);color:var(--shell)}
@media (max-width:820px){.tc-creds{grid-template-columns:1fr}}

/* contact */
.tc-contact{max-width:var(--max);margin:0 auto;width:100%;box-sizing:border-box;padding:clamp(6rem,14vw,11rem) var(--gut) clamp(3rem,6vw,5rem)}
.tc-big{font-size:clamp(3.4rem,11vw,10rem)!important;font-weight:800!important;font-stretch:76%;line-height:.86!important;letter-spacing:-.035em!important;max-width:12ch}
.tc-contact p{margin-top:1.6rem!important;font-size:1.15rem}
.tc-mail{display:inline-block;margin-top:1rem;font-family:var(--display);font-weight:650;font-size:clamp(1.5rem,3.6vw,2.6rem);letter-spacing:-.02em;color:var(--sun-text)!important;
  text-decoration:none;background:linear-gradient(var(--sun-text),var(--sun-text)) 0 100%/100% 2px no-repeat;padding-bottom:.15rem;transition:background-size .35s,color .3s}
.tc-mail:hover{color:var(--shell)!important;background-size:100% 100%;background-image:linear-gradient(rgba(79,127,191,.2),rgba(79,127,191,.2))}

/* footer: keep the sun + game, sit it on the tide */
body.tc .site-footer{background:var(--deep)!important;color:var(--mist);border-top:1px solid var(--line);padding-top:1.5rem}
body.tc .site-footer p{color:var(--mist)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .tc-hero-photo,.tc-line>span,.tc-hero-aside,.tc-now::before{animation:none}
  .tc-nav,.tc-v-link::before,.tc-v-img{transition:none}
}

/* 07g: Sunny Central grew to ten areas, so flow them as balanced columns */
.tc-portal-grid{display:block;columns:3 15rem;column-gap:2.4rem}
.tc-pc{break-inside:avoid;margin-bottom:1.6rem}
.tc-pc:last-child{margin-bottom:0}

/* 07k: descenders (the y in Tory) were clipped by the line mask and by the text-clipped gradient box; give both room below the baseline */
.tc-line>span{padding-bottom:.24em;margin-bottom:-.24em}
